CbmRoot
LitTrackFinderNNVecMuon.h
Go to the documentation of this file.
1 
8 #ifndef LITTRACKFINDERNNVECMUON_H_
9 #define LITTRACKFINDERNNVECMUON_H_
10 
11 #include "LitDetectorLayoutMuon.h"
12 #include "LitHitDataMuon.h"
13 
14 #include <map>
15 #include <vector>
16 
17 namespace lit {
18  namespace parallel {
19 
33  public:
38 
42  virtual ~LitTrackFinderNNVecMuon();
43 
50  virtual void DoFind(const PixelHitArray& hits,
51  const TrackArray& trackSeeds,
52  TrackArray& tracks);
53 
59  fLayout = layout;
60  fHitData.SetDetectorLayout(layout);
61  }
62 
63  private:
64  void ArrangeHits(const PixelHitArray& hits);
65 
66  /* Initializes the track seeds
67  * @param itBegin Iterator to the first track seed.
68  * @param itEnd iterator to the last track seed. */
69  void InitTrackSeeds(const TrackArray& trackSeeds);
70 
71  /* Follows tracks through the detector
72  * @param itBegin Iterator to the first track.
73  * @param itEnd Iterator to the last track. */
74  void FollowTracks();
75 
76  /* TODO: Add comments
77  *
78  */
79  void PropagateThroughAbsorber(const std::vector<unsigned int>& tracksId1,
80  const LitAbsorber<fvec>& absorber);
81 
82  /* TODO: Add comments
83  *
84  */
85  inline void PropagateThroughAbsorber(const TrackArray& tracks,
86  const LitAbsorber<fvec>& absorber);
87 
88  /*
89  * TODO Add comments
90  */
91  void CollectHits(std::vector<LitTrackParamScal>& par,
92  LitScalTrack* track,
93  unsigned char stationGroup,
94  unsigned char station,
95  unsigned char nofSubstations);
96 
97  /*
98  * TODO Add comments
99  */
100  void ProcessStation(const std::vector<unsigned int>& tracksId1,
101  unsigned char stationGroup,
102  unsigned char station);
103 
104  /* TODO: Add comment
105  *
106  */
107  inline void ProcessStation(const TrackArray& tracks,
108  unsigned char stationGroup,
109  unsigned char station);
110 
111  /* Adds the nearest hit to the track.
112  * @param track Pointer to the track.
113  * @param hits Reference to hit vector from which the nearest hit will be attached.
114  * @return True if the hit was attached to track.
115  */
116  bool AddNearestHit(LitScalTrack* track,
117  const PixelHitArray& hits,
118  const std::vector<LitTrackParamScal*>& pars,
119  unsigned int nofHits);
120 
121  /*
122  *
123  */
124  void MinMaxIndex(const LitTrackParamScal* par,
125  const PixelHitArray& hits,
126  fscal maxErr,
127  PixelHitConstIterator& first,
128  PixelHitConstIterator& last);
129 
130  private:
131  TrackArray fTracks; // Local copy of tracks
132  LitDetectorLayoutMuon<fvec> fLayout; // Detector geometry
133  LitHitDataMuon<fvec> fHitData; // Arranged hits
134  unsigned char fMaxNofMissingHits; // Maximum number of missing hits
135  bool
136  fIsProcessSubstationsTogether; // If true than hits from all substations are gathered together and hit selection is done over all this hits at a time
137  fscal fSigmaCoef; // Sigma coefficient for fast hit search
138  fscal fMaxCovSq; // Maximum covariance value
139  fvec fChiSqPixelHitCut; // Chi square cut for pixel hits
140  };
141 
142  } // namespace parallel
143 } // namespace lit
144 #endif /* LITTRACKFINDERNNVECMUON_H_ */
lit::parallel::LitTrackFinderNNVecMuon::~LitTrackFinderNNVecMuon
virtual ~LitTrackFinderNNVecMuon()
Destructor.
Definition: LitTrackFinderNNVecMuon.cxx:34
fscal
float fscal
Definition: L1/vectors/P4_F32vec4.h:250
lit::parallel::LitTrackFinderNNVecMuon::fLayout
LitDetectorLayoutMuon< fvec > fLayout
Definition: LitTrackFinderNNVecMuon.h:132
F32vec4
Definition: L1/vectors/P4_F32vec4.h:47
lit::parallel::LitTrackFinderNNVecMuon::PropagateThroughAbsorber
void PropagateThroughAbsorber(const std::vector< unsigned int > &tracksId1, const LitAbsorber< fvec > &absorber)
Definition: LitTrackFinderNNVecMuon.cxx:130
lit::parallel::LitDetectorLayoutMuon
Muon detector layout.
Definition: LitDetectorLayoutMuon.h:31
lit::parallel::LitTrackFinderNNVecMuon::fMaxCovSq
fscal fMaxCovSq
Definition: LitTrackFinderNNVecMuon.h:138
lit::parallel::LitTrackFinderNNVecMuon::fHitData
LitHitDataMuon< fvec > fHitData
Definition: LitTrackFinderNNVecMuon.h:133
lit::parallel::LitHitDataMuon
Definition: LitHitDataMuon.h:28
lit::parallel::LitTrackFinderNNVecMuon::CollectHits
void CollectHits(std::vector< LitTrackParamScal > &par, LitScalTrack *track, unsigned char stationGroup, unsigned char station, unsigned char nofSubstations)
Definition: LitTrackFinderNNVecMuon.cxx:293
lit::parallel::LitScalTrack
Scalar track data class.
Definition: LitScalTrack.h:33
lit::parallel::LitTrackFinderNNVecMuon::fChiSqPixelHitCut
fvec fChiSqPixelHitCut
Definition: LitTrackFinderNNVecMuon.h:139
lit::parallel::LitTrackFinderNNVecMuon::InitTrackSeeds
void InitTrackSeeds(const TrackArray &trackSeeds)
Definition: LitTrackFinderNNVecMuon.cxx:75
lit::parallel::LitTrackParam< fscal >
LitDetectorLayoutMuon.h
Classes for muon geometry description of CBM.
tracks
TClonesArray * tracks
Definition: Analyze_matching.h:17
lit::parallel::LitTrackFinderNNVecMuon::MinMaxIndex
void MinMaxIndex(const LitTrackParamScal *par, const PixelHitArray &hits, fscal maxErr, PixelHitConstIterator &first, PixelHitConstIterator &last)
Definition: LitTrackFinderNNVecMuon.cxx:432
lit::parallel::LitTrackFinderNNVecMuon::LitTrackFinderNNVecMuon
LitTrackFinderNNVecMuon()
Constructor.
Definition: LitTrackFinderNNVecMuon.cxx:24
lit::parallel::LitTrackFinderNNVecMuon::fIsProcessSubstationsTogether
bool fIsProcessSubstationsTogether
Definition: LitTrackFinderNNVecMuon.h:136
lit::parallel::LitTrackFinderNNVecMuon::AddNearestHit
bool AddNearestHit(LitScalTrack *track, const PixelHitArray &hits, const std::vector< LitTrackParamScal * > &pars, unsigned int nofHits)
Definition: LitTrackFinderNNVecMuon.cxx:338
first
bool first
Definition: LKFMinuit.cxx:143
lit::parallel::LitTrackFinderNNVecMuon::ArrangeHits
void ArrangeHits(const PixelHitArray &hits)
Definition: LitTrackFinderNNVecMuon.cxx:64
lit::parallel::LitTrackFinderNNVecMuon
Definition: LitTrackFinderNNVecMuon.h:32
lit::parallel::LitTrackFinderNNVecMuon::fMaxNofMissingHits
unsigned char fMaxNofMissingHits
Definition: LitTrackFinderNNVecMuon.h:134
lit::parallel::LitTrackFinderNNVecMuon::fSigmaCoef
fscal fSigmaCoef
Definition: LitTrackFinderNNVecMuon.h:137
lit::parallel::LitAbsorber
Absorber in muon detector layout.
Definition: LitAbsorber.h:23
hits
static vector< vector< QAHit > > hits
Definition: CbmTofHitFinderTBQA.cxx:114
lit::parallel::LitTrackFinderNNVecMuon::ProcessStation
void ProcessStation(const std::vector< unsigned int > &tracksId1, unsigned char stationGroup, unsigned char station)
Definition: LitTrackFinderNNVecMuon.cxx:202
lit::parallel::LitTrackFinderNNVecMuon::FollowTracks
void FollowTracks()
Definition: LitTrackFinderNNVecMuon.cxx:88
lit::parallel::LitTrackFinderNNVecMuon::DoFind
virtual void DoFind(const PixelHitArray &hits, const TrackArray &trackSeeds, TrackArray &tracks)
Main function for tracking.
Definition: LitTrackFinderNNVecMuon.cxx:36
LitHitDataMuon.h
Class for accessing hits in the track reconstruction.
lit::parallel::LitTrackFinderNNVecMuon::SetDetectorLayout
void SetDetectorLayout(const LitDetectorLayoutMuon< fvec > &layout)
Sets detector layout for the tracking.
Definition: LitTrackFinderNNVecMuon.h:58
lit::parallel::LitTrackFinderNNVecMuon::fTracks
TrackArray fTracks
Definition: LitTrackFinderNNVecMuon.h:131
lit
Definition: LitTrackFinderNNVecElectron.h:19