1 #ifndef ExtrToTracker_h
2 #define ExtrToTracker_h 1
4 #include <marlin/Processor.h>
15 #include <UTIL/LCRelationNavigator.h>
16 #include <UTIL/BitField64.h>
17 #include <UTIL/ILDConf.h>
18 #include <UTIL/BitSet32.h>
20 #include <EVENT/TrackerHit.h>
21 #include <EVENT/SimTrackerHit.h>
22 #include <EVENT/TrackerHitPlane.h>
23 #include <IMPL/TrackerHitImpl.h>
24 #include <EVENT/LCCollection.h>
25 #include <EVENT/LCRelation.h>
26 #include <IMPL/LCCollectionVec.h>
27 #include <IMPL/LCFlagImpl.h>
28 #include <IMPL/LCRelationImpl.h>
29 #include <EVENT/Track.h>
30 #include <IMPL/TrackStateImpl.h>
31 #include <IMPL/TrackImpl.h>
33 #include "KiTrack/SubsetHopfieldNN.h"
34 #include "KiTrack/SubsetSimple.h"
36 #include "marlin/Global.h"
44 #include "DDRec/Surface.h"
45 #include "DDRec/SurfaceManager.h"
49 #include "marlin/VerbosityLevels.h"
51 #include "MarlinTrk/Factory.h"
52 #include "MarlinTrk/IMarlinTrack.h"
53 #include "MarlinTrk/MarlinTrkUtils.h"
54 #include "MarlinTrk/HelixTrack.h"
61 using namespace KiTrack;
63 class IMarlinTrkSystem ;
73 virtual marlin::Processor* newProcessor() {
return new ExtrToTracker ; }
84 virtual void processRunHeader( lcio::LCRunHeader* run ) ;
88 virtual void processEvent( lcio::LCEvent * evt ) ;
91 virtual void check( lcio::LCEvent * evt ) ;
98 int FitInit2( Track* track , MarlinTrk::IMarlinTrack* _marlinTrk ) ;
101 bool operator()( EVENT::TrackerHit* a, EVENT::TrackerHit* b)
const {
102 double r_a_sqd = a->getPosition()[0] * a->getPosition()[0] + a->getPosition()[1] * a->getPosition()[1] ;
103 double r_b_sqd = b->getPosition()[0] * b->getPosition()[0] + b->getPosition()[1] * b->getPosition()[1] ;
104 return ( r_a_sqd < r_b_sqd ) ;
115 TrackerHitPlane* getSiHit(std::vector<TrackerHitPlane* >& hitsOnDetEl, MarlinTrk::IMarlinTrack*& marlin_trk);
117 TrackerHitPlane* getSiHit(std::vector<int >& vecElID, std::map<
int , std::vector<TrackerHitPlane* > >& mapElHits, MarlinTrk::IMarlinTrack*& marlin_trk);
119 void getNeighbours(
int elID, std::vector<int >& vecIDs, std::string cellIDEcoding, std::map<int , int > mapLayerNModules);
122 void fillMapElHits(std::vector<LCCollection* >& vecHitCol, std::vector<std::map<
int , std::vector<TrackerHitPlane* > > >& vecMaps);
128 void fillVecSubdet(lcio::LCEvent*& evt);
137 lcio::LCCollection* GetCollection( lcio::LCEvent * evt, std::string colName ) ;
168 double _Max_Chi2_Incr ;
169 double _searchSigma ;
174 int SITHitsNonFitted ;
178 float _maxChi2PerHit;
181 bool _performFinalRefit ;
184 const DD4hep::DDRec::SurfaceMap* _map ;
190 StringVec _vecDigiHits;
191 StringVec _vecSubdetName;
192 std::vector<int > _vecSubdetNLayers;
193 std::vector<int > _vecSubdetID;
194 std::vector<LCCollection* > _vecDigiHitsCol;
195 std::vector<std::map<int , int > > _vecMapLayerNModules;
197 std::vector<std::map<int , std::vector<TrackerHitPlane* > > > _vecMapsElHits;
std::string _output_track_col_name
output track collection name.
Definition: ExtrToTracker.h:153
std::string _input_track_col_name
Input track collection name for refitting.
Definition: ExtrToTracker.h:144
std::string _output_track_rel_name
Output track relations name for refitting.
Definition: ExtrToTracker.h:157
std::string _output_not_used_col_name
output collection name for the not used hits.
Definition: ExtrToTracker.h:149
Definition: ExtrToTracker.h:100
MarlinTrk::IMarlinTrkSystem * _trksystem
pointer to the IMarlinTrkSystem instance
Definition: ExtrToTracker.h:161
Definition: ExtrToTracker.h:67