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"
37 #include "marlin/Global.h"
38 #include "gear/GEAR.h"
39 #include <gear/ZPlanarParameters.h>
40 #include <gear/ZPlanarLayerLayout.h>
41 #include "gear/BField.h"
44 #include "marlin/VerbosityLevels.h"
46 #include "MarlinTrk/Factory.h"
47 #include "MarlinTrk/IMarlinTrack.h"
48 #include "MarlinTrk/MarlinTrkUtils.h"
49 #include "MarlinTrk/HelixTrack.h"
53 using namespace KiTrack;
55 class IMarlinTrkSystem ;
64 virtual marlin::Processor* newProcessor() {
return new ExtrToSIT ; }
75 virtual void processRunHeader( lcio::LCRunHeader* run ) ;
79 virtual void processEvent( lcio::LCEvent * evt ) ;
82 virtual void check( lcio::LCEvent * evt ) ;
89 void SelectBestCandidate(EVENT::TrackerHitVec &HitsInLayer,
const float* &pivot, EVENT::TrackerHit* &BestHit,
bool &BestHitFound,
int &pointer) ;
91 void SelectBestCandidateLimited(EVENT::TrackerHitVec &HitsInLayer,
const float* &pivot, EVENT::TrackerHit* &BestHit,
const FloatVec& covLCIO,
double& radius,
bool &BestHitFound,
double &sigma,
int &pointer,
int &PossibleHits,
float &dU,
float &dV,
double &DimDist, TrackerHitVec &usedSiHits) ;
93 int FitInit( std::vector < TrackerHit* > trackerHits , MarlinTrk::IMarlinTrack* _marlinTrk ) ;
94 int FitInit2( Track* track , MarlinTrk::IMarlinTrack* _marlinTrk ) ;
97 bool operator()( EVENT::TrackerHit* a, EVENT::TrackerHit* b)
const {
98 double r_a_sqd = a->getPosition()[0] * a->getPosition()[0] + a->getPosition()[1] * a->getPosition()[1] ;
99 double r_b_sqd = b->getPosition()[0] * b->getPosition()[0] + b->getPosition()[1] * b->getPosition()[1] ;
100 return ( r_a_sqd < r_b_sqd ) ;
109 lcio::LCCollection* GetCollection( lcio::LCEvent * evt, std::string colName ) ;
112 lcio::LCRelationNavigator* GetRelations(lcio::LCEvent * evt, std::string RelName ) ;
146 std::string _mcParticleCollectionName ;
153 double _Max_Chi2_Incr ;
158 double _searchSigma ;
159 bool _isSpacePoints ;
165 int SITHitsNonFitted ;
169 float _maxChi2PerHit;
172 StringVec _colNamesTrackerHitRelations ;
std::string _output_track_rel_name
Output track relations name for refitting.
Definition: ExtrToSIT.h:136
Definition: ExtrToSIT.h:96
Definition: ExtrToSIT.h:59
std::string _input_track_rel_name
Input track relations name for refitting.
Definition: ExtrToSIT.h:120
std::string _siTrkColName
Output silicon track collection.
Definition: ExtrToSIT.h:140
std::string _vxdColName
Input VXD tracker summer hit collection.
Definition: ExtrToSIT.h:128
std::string _output_track_col_name
refitted track collection name.
Definition: ExtrToSIT.h:132
std::string _sitColName
Input SIT tracker summer hit collection.
Definition: ExtrToSIT.h:124
MarlinTrk::IMarlinTrkSystem * _trksystem
pointer to the IMarlinTrkSystem instance
Definition: ExtrToSIT.h:144
std::string _input_track_col_name
Input track collection name for refitting.
Definition: ExtrToSIT.h:116