1 #ifndef DDForwardTracking_h 
    2 #define DDForwardTracking_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" 
   18 #include "ILDImpl/SectorSystemVXD.h" 
   19 #include "SectorSystemEndcap.h" 
   20 #include "EndcapHitSimple.h" 
   22 using namespace lcio ;
 
   23 using namespace marlin ;
 
   24 using namespace KiTrack;
 
   25 using namespace KiTrackMarlin;
 
   29 typedef std::vector< IHit* > RawTrack;
 
  122   virtual void init() ;
 
  126   virtual void processRunHeader( LCRunHeader* run ) ;
 
  181   virtual void processEvent( LCEvent * evt ) ; 
 
  184   virtual void check( LCEvent * evt ) ; 
 
  209    std::map< IHit* , std::vector< IHit* > > getOverlapConnectionMap( 
const std::map< 
int , std::vector< IHit* > > & map_sector_hits, 
 
  222    std::vector < RawTrack > getRawTracksPlusOverlappingHits( RawTrack rawTrack , std::map< IHit* , std::vector< IHit* > >& map_hitFront_hitsBack );
 
  228    void finaliseTrack( TrackImpl* trackImpl );
 
  247    bool setCriteria( 
unsigned round );
 
  250    void getCellID0Info(LCCollection*& col );
 
  252    void getCellID0AndPositionInfo(LCCollection*& col );
 
  260    std::string getInfo_map_sector_hits();
 
  270    int _nDivisionsInPhi;
 
  271    int _nDivisionsInTheta;
 
  300    double _HNN_ActivationThreshold;
 
  349    unsigned _nTrackCandidates;
 
  350    unsigned _nTrackCandidatesPlus;
 
  354    MarlinTrk::IMarlinTrkSystem* _trkSystem;
 
  356    std::string _trkSystemName ;
 
  358   bool _getTrackStateAtCaloFace ;
 
  363    static const int _output_track_col_quality_GOOD;
 
  364    static const int _output_track_col_quality_FAIR;
 
  365    static const int _output_track_col_quality_POOR;
 
  376    inline bool operator()( ITrack* trackA, ITrack* trackB ){
 
  379       std::vector< IHit* > hitsA = trackA->getHits();
 
  380       std::vector< IHit* > hitsB = trackB->getHits();
 
  383       for( 
unsigned i=0; i < hitsA.size(); i++){
 
  385          for( 
unsigned j=0; j < hitsB.size(); j++){
 
  387             if ( hitsA[i] == hitsB[j] ) 
return false;      
 
  405    inline double operator()( ITrack* track ){ 
return track->getChi2Prob(); }
 
  420    inline double operator()( ITrack* track ){ 
 
  422       if( track->getHits().size() > 3 ){
 
  424          return track->getChi2Prob()/2. +0.5; 
 
  429          return track->getChi2Prob()/2.;
 
  445   inline double operator()( ITrack* track ){ 
return track->getHits().size(); }
 
Standallone Forward Tracking Processor for Marlin. 
Definition: DDForwardTracking.h:110
int _maxHitsPerSector
If this number of hits in a sector is surpassed for any sector, the hits in the sector will be droppe...
Definition: DDForwardTracking.h:295
int _output_track_col_quality
The quality of the output track collection. 
Definition: DDForwardTracking.h:361
std::vector< ICriterion * > _crit3Vec
A vector of criteria for 3 hits (2 2-hit segments) 
Definition: DDForwardTracking.h:322
std::vector< ICriterion * > _crit4Vec
A vector of criteria for 4 hits (2 3-hit segments) 
Definition: DDForwardTracking.h:325
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: DDForwardTracking.h:310
bool _takeBestVersionOfTrack
true = when adding hits from overlapping petals, store only the best track;   false = store all track...
Definition: DDForwardTracking.h:340
A hit. 
Definition: EndcapHitSimple.h:15
double _chi2ProbCut
Cut for the Kalman Fit (the chi squared probability) 
Definition: DDForwardTracking.h:283
std::string _bestSubsetFinder
The method used to find the best subset of tracks. 
Definition: DDForwardTracking.h:347
int _maxConnectionsAutomaton
the maximum number of connections that are allowed in the automaton, if this value is surpassed...
Definition: DDForwardTracking.h:344
double _helixFitMax
Cut for the Helix fit ( chi squared / degrees of freedom ) 
Definition: DDForwardTracking.h:286
double _Bz
B field in z direction. 
Definition: DDForwardTracking.h:280
int _hitsPerTrackMin
Minimum number of hits a track has to have in order to be stored. 
Definition: DDForwardTracking.h:316
std::string _ForwardTrackCollection
Output collection name. 
Definition: DDForwardTracking.h:267
Definition: DDForwardTracking.h:441
A Sector System class for the Forward Tracking Disks FTD in the ILD. 
Definition: SectorSystemEndcap.h:29
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: DDForwardTracking.h:313
std::vector< ICriterion * > _crit2Vec
A vector of criteria for 2 hits (2 1-hit segments) 
Definition: DDForwardTracking.h:319
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< std::string > _FTDHitCollections
Input collection names. 
Definition: DDForwardTracking.h:264
double _overlappingHitsDistMax
the maximum distance of two hits from overlapping petals to be considered as possible part of one tra...
Definition: DDForwardTracking.h:335
A functor to return the quality of a track, which is currently the chi2 probability. 
Definition: DDForwardTracking.h:401
std::vector< std::string > _criteriaNames
Names of the used criteria. 
Definition: DDForwardTracking.h:307
std::map< int, std::vector< IHit * > > _map_sector_hits
A map to store the hits according to their sectors. 
Definition: DDForwardTracking.h:304
A functor to return the quality of a track. 
Definition: DDForwardTracking.h:416