1 #ifndef TrackFinderFTF_h
2 #define TrackFinderFTF_h 1
4 #include "marlin/Processor.h"
8 #include <UTIL/LCRelationNavigator.h>
10 #include <EVENT/TrackerHit.h>
12 #include <UTIL/BitField64.h>
13 #include <UTIL/ILDConf.h>
17 class IMarlinTrkSystem ;
22 class TrackFindingParameters ;
44 virtual marlin::Processor* newProcessor() {
return new TrackFinderFTF ; }
62 virtual void check( lcio::LCEvent * evt ) ;
71 bool operator()( EVENT::TrackerHit* a, EVENT::TrackerHit* b)
const {
77 return ( a == b ?
false :
78 ( a->getPosition()[0] * a->getPosition()[0] + a->getPosition()[1] * a->getPosition()[1] ) <
79 ( b->getPosition()[0] * b->getPosition()[0] + b->getPosition()[1] * b->getPosition()[1] ) ) ;
84 bool operator()( EVENT::TrackerHit* a, EVENT::TrackerHit* b)
const {
90 return ( a == b ?
false :
91 ( a->getPosition()[0] * a->getPosition()[0] + a->getPosition()[1] * a->getPosition()[1] ) >
92 ( b->getPosition()[0] * b->getPosition()[0] + b->getPosition()[1] * b->getPosition()[1] ) ) ;
101 UTIL::BitField64* _encoder;
102 int getDetectorID(TrackerHit* hit) { _encoder->setValue(hit->getCellID0());
return (*_encoder)[lcio::ILDCellID0::subdet]; }
103 int getSideID(TrackerHit* hit) { _encoder->setValue(hit->getCellID0());
return (*_encoder)[lcio::ILDCellID0::side]; };
104 int getLayerID(TrackerHit* hit) { _encoder->setValue(hit->getCellID0());
return (*_encoder)[lcio::ILDCellID0::layer]; };
105 int getModuleID(TrackerHit* hit) { _encoder->setValue(hit->getCellID0());
return (*_encoder)[lcio::ILDCellID0::module]; };
106 int getSensorID(TrackerHit* hit) { _encoder->setValue(hit->getCellID0());
return (*_encoder)[lcio::ILDCellID0::sensor]; };
110 lcio::LCCollection* GetCollection( lcio::LCEvent * evt, std::string colName ) ;
112 double angular_range_2PI(
double phi )
const ;
147 lcio::LCCollection* _input_vxd_hits_col;
148 lcio::LCCollection* _input_sit_hits_col;
149 lcio::LCCollection* _input_ftd_pxl_hits_col;
150 lcio::LCCollection* _input_ftd_spp_hits_col;
162 std::map<int, TrackerHit*> hitmap;
176 float _initialTrackError_d0;
177 float _initialTrackError_phi0;
178 float _initialTrackError_omega;
179 float _initialTrackError_z0;
180 float _initialTrackError_tanL;
182 double _maxChi2PerHit;
184 bool _runMarlinTrkDiagnostics;
185 std::string _MarlinTrkDiagnosticsName;
virtual void processRunHeader(lcio::LCRunHeader *run)
Called for every run.
Definition: TrackFinderFTF.cc:297
Definition: TrackFinder.h:20
virtual void end()
Called after data processing for clean up.
Definition: TrackFinderFTF.cc:668
virtual void init()
Called at the begin of the job before anything is read.
Definition: TrackFinderFTF.cc:198
Definition: TrackFindingParameters.h:15
MarlinTrk::IMarlinTrkSystem * _trksystem
pointer to the IMarlinTrkSystem instance
Definition: TrackFinderFTF.h:170
std::string _input_ftd_pixel_hits_col_name
Input ftd pixel tracker hit collection name.
Definition: TrackFinderFTF.h:127
std::string _input_sit_hits_col_name
Input sit tracker hit collection name.
Definition: TrackFinderFTF.h:123
Track Finder using FTF processor for marlin.
Definition: TrackFinderFTF.h:40
std::string _input_ftd_spacepoint_hits_col_name
Input ftd spacepoint tracker hit collection name.
Definition: TrackFinderFTF.h:131
std::string _output_track_col_name
Input set tracker hit collection name.
Definition: TrackFinderFTF.h:144
virtual void processEvent(lcio::LCEvent *evt)
Called for every event - the working horse.
Definition: TrackFinderFTF.cc:302
Definition: TrackFinderFTF.h:70
std::string _input_vxd_hits_col_name
Input tpc tracker hit collection name.
Definition: TrackFinderFTF.h:119
Definition: TrackFinderFTF.h:83