1 #ifndef ForwardTracking_h
2 #define ForwardTracking_h 1
6 #include "marlin/Processor.h"
8 #include "EVENT/TrackerHit.h"
9 #include "EVENT/Track.h"
10 #include "IMPL/TrackImpl.h"
11 #include "MarlinTrk/IMarlinTrkSystem.h"
12 #include "gear/BField.h"
14 #include "KiTrack/Segment.h"
15 #include "KiTrack/ITrack.h"
16 #include "Criteria/Criteria.h"
17 #include "ILDImpl/SectorSystemFTD.h"
19 using namespace lcio ;
20 using namespace marlin ;
21 using namespace KiTrack;
22 using namespace KiTrackMarlin;
26 typedef std::vector< IHit* > RawTrack;
119 virtual void init() ;
123 virtual void processRunHeader( LCRunHeader* run ) ;
178 virtual void processEvent( LCEvent * evt ) ;
181 virtual void check( LCEvent * evt ) ;
203 std::map< IHit* , std::vector< IHit* > > getOverlapConnectionMap(
const std::map<
int , std::vector< IHit* > > & map_sector_hits,
204 const SectorSystemFTD* secSysFTD,
216 std::vector < RawTrack > getRawTracksPlusOverlappingHits( RawTrack rawTrack , std::map< IHit* , std::vector< IHit* > >& map_hitFront_hitsBack );
222 void finaliseTrack( TrackImpl* trackImpl );
241 bool setCriteria(
unsigned round );
245 std::string getInfo_map_sector_hits();
279 double _HNN_ActivationThreshold;
307 const SectorSystemFTD* _sectorSystemFTD;
327 unsigned _nTrackCandidates;
328 unsigned _nTrackCandidatesPlus;
332 MarlinTrk::IMarlinTrkSystem* _trkSystem;
334 std::string _trkSystemName ;
336 bool _getTrackStateAtCaloFace ;
341 static const int _output_track_col_quality_GOOD;
342 static const int _output_track_col_quality_FAIR;
343 static const int _output_track_col_quality_POOR;
354 inline bool operator()( ITrack* trackA, ITrack* trackB ){
357 std::vector< IHit* > hitsA = trackA->getHits();
358 std::vector< IHit* > hitsB = trackB->getHits();
361 for(
unsigned i=0; i < hitsA.size(); i++){
363 for(
unsigned j=0; j < hitsB.size(); j++){
365 if ( hitsA[i] == hitsB[j] )
return false;
383 inline double operator()( ITrack* track ){
return track->getChi2Prob(); }
398 inline double operator()( ITrack* track ){
400 if( track->getHits().size() > 3 ){
402 return track->getChi2Prob()/2. +0.5;
407 return track->getChi2Prob()/2.;
std::vector< std::string > _criteriaNames
Names of the used criteria.
Definition: ForwardTracking.h:286
double _overlappingHitsDistMax
the maximum distance of two hits from overlapping petals to be considered as possible part of one tra...
Definition: ForwardTracking.h:313
std::string _bestSubsetFinder
The method used to find the best subset of tracks.
Definition: ForwardTracking.h:325
std::map< std::string, std::vector< float > > _critMaxima
Map containing the name of a criterion and a vector of the maximum cut offs for it.
Definition: ForwardTracking.h:292
int _output_track_col_quality
The quality of the output track collection.
Definition: ForwardTracking.h:339
double _helixFitMax
Cut for the Helix fit ( chi squared / degrees of freedom )
Definition: ForwardTracking.h:265
int _maxHitsPerSector
If this number of hits in a sector is surpassed for any sector, the hits in the sector will be droppe...
Definition: ForwardTracking.h:274
std::vector< ICriterion * > _crit3Vec
A vector of criteria for 3 hits (2 2-hit segments)
Definition: ForwardTracking.h:301
double _chi2ProbCut
Cut for the Kalman Fit (the chi squared probability)
Definition: ForwardTracking.h:262
std::map< int, std::vector< IHit * > > _map_sector_hits
A map to store the hits according to their sectors.
Definition: ForwardTracking.h:283
int _hitsPerTrackMin
Minimum number of hits a track has to have in order to be stored.
Definition: ForwardTracking.h:295
std::map< std::string, std::vector< float > > _critMinima
Map containing the name of a criterion and a vector of the minimum cut offs for it.
Definition: ForwardTracking.h:289
Standallone Forward Tracking Processor for Marlin.
Definition: ForwardTracking.h:107
std::vector< std::string > _FTDHitCollections
Input collection names.
Definition: ForwardTracking.h:249
bool _takeBestVersionOfTrack
true = when adding hits from overlapping petals, store only the best track; false = store all track...
Definition: ForwardTracking.h:318
double _Bz
B field in z direction.
Definition: ForwardTracking.h:259
A functor to return whether two tracks are compatible: The criterion is if they share a Hit or more...
Definition: DDForwardTracking.h:372
std::vector< ICriterion * > _crit4Vec
A vector of criteria for 4 hits (2 3-hit segments)
Definition: ForwardTracking.h:304
A functor to return the quality of a track, which is currently the chi2 probability.
Definition: DDForwardTracking.h:401
int _maxConnectionsAutomaton
the maximum number of connections that are allowed in the automaton, if this value is surpassed...
Definition: ForwardTracking.h:322
std::vector< ICriterion * > _crit2Vec
A vector of criteria for 2 hits (2 1-hit segments)
Definition: ForwardTracking.h:298
std::string _ForwardTrackCollection
Output collection name.
Definition: ForwardTracking.h:252
A functor to return the quality of a track.
Definition: DDForwardTracking.h:416