CbmRoot
CbmLitTrackFinderBranch.h
Go to the documentation of this file.
1 
11 #ifndef CBMLITTRACKFINDERBASEBRANCH_H_
12 #define CBMLITTRACKFINDERBASEBRANCH_H_
13 
14 #include "base/CbmLitHitData.h"
15 #include "base/CbmLitPtrTypes.h"
17 
18 #include <map>
19 #include <set>
20 
22 class CbmLitTrackUpdate;
23 class CbmLitTrackFitter;
24 
25 using std::map;
26 using std::set;
27 
29 public:
34 
38  virtual ~CbmLitTrackFinderBranch();
39 
44  TrackPtrVector& trackSeeds,
46 
47  /* Setters */
48  void SetFinalSelection(TrackSelectionPtr finalSelection) {
49  fFinalSelection = finalSelection;
50  }
51  void SetSeedSelection(TrackSelectionPtr seedSelection) {
52  fSeedSelection = seedSelection;
53  }
54  void SetFilter(TrackUpdatePtr filter) { fFilter = filter; }
55  void SetPropagator(TrackPropagatorPtr propagator) {
56  fPropagator = propagator;
57  }
58  void SetNofStations(Int_t nofStations) { fNofStations = nofStations; }
59  void SetNofIterations(Int_t nofIterations) { fNofIterations = nofIterations; }
60  void SetMaxNofMissingHits(const vector<Int_t>& maxNofMissingHits) {
61  fMaxNofMissingHits = maxNofMissingHits;
62  }
63  void SetPDG(const vector<Int_t>& pdg) { fPDG = pdg; }
64  void SetChiSqStripHitCut(const vector<litfloat>& chiSqStripHitCut) {
65  fChiSqStripHitCut = chiSqStripHitCut;
66  }
67  void SetChiSqPixelHitCut(const vector<litfloat>& chiSqPixelHitCut) {
68  fChiSqPixelHitCut = chiSqPixelHitCut;
69  }
70  void SetSigmaCoef(const vector<litfloat>& sigmaCoef) {
71  fSigmaCoef = sigmaCoef;
72  }
73 
74 protected:
75  void ArrangeHits(HitPtrIterator itBegin, HitPtrIterator itEnd);
76 
83 
87  void FollowTracks(TrackPtrIterator itBegin, TrackPtrIterator itEnd);
88 
94  void RemoveHits(TrackPtrIterator itBegin, TrackPtrIterator itEnd);
95 
102  void CopyToOutput(TrackPtrIterator itBegin,
103  TrackPtrIterator itEnd,
105 
106 private:
107  CbmLitHitData fHitData; // Hit storage.
108  std::set<Int_t> fUsedHitsSet; // Sets with hits that have been used.
109  std::set<Int_t> fUsedSeedsSet; // Set with track seeds that have been used.
110 
111  TrackPtrVector fTracks; // Local storage of tracks
112 
113  TrackSelectionPtr fSeedSelection; // Track seed selection tool
114  TrackSelectionPtr fFinalSelection; // Final track selection tool
115  TrackPropagatorPtr fPropagator; // Track propagation tool
116  TrackUpdatePtr fFilter; // Kalman Filter track update tool
117 
118  Int_t fNofStations; // Number of tracking stations.
119  Int_t fNofIterations; // Number of tracking iterations
120  Int_t fIteration; // Current tracking iteration
121 
122  // Tracking parameters for each iteration
123  Int_t
124  fMaxNofHitsInValidationGate; // Maximum number of hits in the validation
125  // gate for which a separate branch is created
126  Int_t fMaxNofBranches; // Maximum number of branches for one input track seed
127  vector<Int_t>
128  fMaxNofMissingHits; // Maximum number of acceptable missing hits.
129  vector<Int_t> fPDG; // Particle hypothesis for tracking.
130  vector<litfloat> fChiSqStripHitCut; // Chi-square cut for strip hits.
131  vector<litfloat> fChiSqPixelHitCut; // Chi-square cut for pixel hits.
132  vector<litfloat>
133  fSigmaCoef; // Sigma coefficient for preliminary hit selection
134 };
135 
136 #endif /*CBMLITTRACKFINDERBASEBRANCH_H_*/
CbmLitTrackFinderBranch
Definition: CbmLitTrackFinderBranch.h:28
CbmLitTrackFinderBranch::RemoveHits
void RemoveHits(TrackPtrIterator itBegin, TrackPtrIterator itEnd)
Write already used hits to a used hits set.
Definition: CbmLitTrackFinderBranch.cxx:273
TrackSelectionPtr
boost::shared_ptr< CbmLitTrackSelection > TrackSelectionPtr
Definition: CbmTofPtrTypes.h:25
CbmLitTrackFinderBranch::SetNofStations
void SetNofStations(Int_t nofStations)
Definition: CbmLitTrackFinderBranch.h:58
CbmLitTrackFinderBranch::SetSeedSelection
void SetSeedSelection(TrackSelectionPtr seedSelection)
Definition: CbmLitTrackFinderBranch.h:51
CbmLitTrackFinderBranch::fUsedHitsSet
std::set< Int_t > fUsedHitsSet
Definition: CbmLitTrackFinderBranch.h:108
CbmLitTrackFinderBranch::fSeedSelection
TrackSelectionPtr fSeedSelection
Definition: CbmLitTrackFinderBranch.h:113
TrackPropagatorPtr
boost::shared_ptr< CbmLitTrackPropagator > TrackPropagatorPtr
Definition: CbmTofPtrTypes.h:23
CbmLitTrackFinderBranch::fNofIterations
Int_t fNofIterations
Definition: CbmLitTrackFinderBranch.h:119
CbmLitTrackFinderBranch::SetNofIterations
void SetNofIterations(Int_t nofIterations)
Definition: CbmLitTrackFinderBranch.h:59
CbmLitTrackFinderBranch::fMaxNofBranches
Int_t fMaxNofBranches
Definition: CbmLitTrackFinderBranch.h:126
TrackUpdatePtr
boost::shared_ptr< CbmLitTrackUpdate > TrackUpdatePtr
Definition: CbmTofPtrTypes.h:26
CbmLitTrackFinderBranch::SetFilter
void SetFilter(TrackUpdatePtr filter)
Definition: CbmLitTrackFinderBranch.h:54
CbmLitTrackFinderBranch::fFilter
TrackUpdatePtr fFilter
Definition: CbmLitTrackFinderBranch.h:116
CbmLitTrackFinderBranch::fFinalSelection
TrackSelectionPtr fFinalSelection
Definition: CbmLitTrackFinderBranch.h:114
CbmLitTrackFinderBranch::CopyToOutput
void CopyToOutput(TrackPtrIterator itBegin, TrackPtrIterator itEnd, TrackPtrVector &tracks)
Copy tracks to output array.
Definition: CbmLitTrackFinderBranch.cxx:284
CbmLitTrackFinderBranch::fIteration
Int_t fIteration
Definition: CbmLitTrackFinderBranch.h:120
CbmLitTrackFinderBranch::fUsedSeedsSet
std::set< Int_t > fUsedSeedsSet
Definition: CbmLitTrackFinderBranch.h:109
CbmLitTrackFinderBranch::fChiSqStripHitCut
vector< litfloat > fChiSqStripHitCut
Definition: CbmLitTrackFinderBranch.h:130
CbmLitTrackFinder
CbmLitTrackFinder.h.
Definition: CbmLitTrackFinder.h:20
CbmLitTrackFinderBranch::fMaxNofHitsInValidationGate
Int_t fMaxNofHitsInValidationGate
Definition: CbmLitTrackFinderBranch.h:124
CbmLitTrackFinder.h
CbmLitTrackFinderBranch::DoFind
LitStatus DoFind(HitPtrVector &hits, TrackPtrVector &trackSeeds, TrackPtrVector &tracks)
Inherited from CbmLitTrackFinder.
Definition: CbmLitTrackFinderBranch.cxx:48
TrackPtrIterator
std::vector< CbmTofTrack * >::iterator TrackPtrIterator
Definition: CbmTofTypes.h:21
CbmLitTrackFitter
Interface for track fitter algorithm.
Definition: CbmLitTrackFitter.h:20
CbmLitTrackFinderBranch::fNofStations
Int_t fNofStations
Definition: CbmLitTrackFinderBranch.h:118
TrackPtrVector
std::vector< CbmTofTrack * > TrackPtrVector
Definition: CbmTofTypes.h:22
tracks
TClonesArray * tracks
Definition: Analyze_matching.h:17
HitPtrIterator
std::vector< CbmTofHit * >::iterator HitPtrIterator
Definition: CbmTofTypes.h:17
CbmLitTrackFinderBranch::FollowTracks
void FollowTracks(TrackPtrIterator itBegin, TrackPtrIterator itEnd)
Main track following procedure.
Definition: CbmLitTrackFinderBranch.cxx:109
CbmLitTrackUpdate
Interface for track update algorithm.
Definition: CbmLitTrackUpdate.h:23
CbmLitTrackFinderBranch::ArrangeHits
void ArrangeHits(HitPtrIterator itBegin, HitPtrIterator itEnd)
Definition: CbmLitTrackFinderBranch.cxx:77
CbmLitTrackFinderBranch::fChiSqPixelHitCut
vector< litfloat > fChiSqPixelHitCut
Definition: CbmLitTrackFinderBranch.h:131
CbmLitTrackSelection
Interface for track selection algorithm.
Definition: CbmLitTrackSelection.h:20
CbmLitTrackFinderBranch::SetChiSqPixelHitCut
void SetChiSqPixelHitCut(const vector< litfloat > &chiSqPixelHitCut)
Definition: CbmLitTrackFinderBranch.h:67
CbmLitTrackFinderBranch::fPDG
vector< Int_t > fPDG
Definition: CbmLitTrackFinderBranch.h:129
CbmLitTrackFinderBranch::fMaxNofMissingHits
vector< Int_t > fMaxNofMissingHits
Definition: CbmLitTrackFinderBranch.h:128
CbmLitHitData.h
Class for accessing the hits in the track reconstruction.
CbmLitTrackFinderBranch::SetPropagator
void SetPropagator(TrackPropagatorPtr propagator)
Definition: CbmLitTrackFinderBranch.h:55
CbmLitTrackFinderBranch::SetChiSqStripHitCut
void SetChiSqStripHitCut(const vector< litfloat > &chiSqStripHitCut)
Definition: CbmLitTrackFinderBranch.h:64
CbmLitTrackFinderBranch::fPropagator
TrackPropagatorPtr fPropagator
Definition: CbmLitTrackFinderBranch.h:115
CbmLitTrackFinderBranch::~CbmLitTrackFinderBranch
virtual ~CbmLitTrackFinderBranch()
Destructor.
Definition: CbmLitTrackFinderBranch.cxx:46
CbmLitTrackFinderBranch::SetFinalSelection
void SetFinalSelection(TrackSelectionPtr finalSelection)
Definition: CbmLitTrackFinderBranch.h:48
CbmLitTrackFinderBranch::fHitData
CbmLitHitData fHitData
Definition: CbmLitTrackFinderBranch.h:107
CbmLitTrackFinderBranch::InitTrackSeeds
void InitTrackSeeds(TrackPtrIterator itBegin, TrackPtrIterator itEnd)
Initialize track seeds.
Definition: CbmLitTrackFinderBranch.cxx:87
CbmLitTrackFinderBranch::SetMaxNofMissingHits
void SetMaxNofMissingHits(const vector< Int_t > &maxNofMissingHits)
Definition: CbmLitTrackFinderBranch.h:60
CbmLitHitData
Definition: CbmLitHitData.h:25
CbmLitTrackFinderBranch::SetPDG
void SetPDG(const vector< Int_t > &pdg)
Definition: CbmLitTrackFinderBranch.h:63
hits
static vector< vector< QAHit > > hits
Definition: CbmTofHitFinderTBQA.cxx:114
CbmLitTrackFinderBranch::fTracks
TrackPtrVector fTracks
Definition: CbmLitTrackFinderBranch.h:111
CbmLitPtrTypes.h
Typedefs for algorithm interfaces.
LitStatus
LitStatus
Definition: CbmLitEnums.h:23
CbmLitTrackFinderBranch::SetSigmaCoef
void SetSigmaCoef(const vector< litfloat > &sigmaCoef)
Definition: CbmLitTrackFinderBranch.h:70
CbmLitTrackFinderBranch::fSigmaCoef
vector< litfloat > fSigmaCoef
Definition: CbmLitTrackFinderBranch.h:133
CbmLitTrackFinderBranch::CbmLitTrackFinderBranch
CbmLitTrackFinderBranch()
Constructor.
Definition: CbmLitTrackFinderBranch.cxx:26
HitPtrVector
std::vector< CbmTofHit * > HitPtrVector
Definition: CbmTofTypes.h:14