CbmRoot
LitTrackFinderNN.h
Go to the documentation of this file.
1 
8 #ifndef LITTRACKFINDERNN_H_
9 #define LITTRACKFINDERNN_H_
10 
11 #include "LitDetectorLayout.h"
12 #include "LitHitData.h"
13 #include <set>
14 #include <vector>
15 
16 using std::set;
17 using std::vector;
18 
19 #include "LitScalPixelHit.h"
20 #include "LitScalTrack.h"
21 
22 namespace lit {
23  namespace parallel {
24 
26  public:
31 
35  virtual ~LitTrackFinderNN();
36 
43  void DoFind(const vector<lit::parallel::LitScalPixelHit*>& hits,
44  const vector<lit::parallel::LitScalTrack*>& trackSeeds,
45  vector<lit::parallel::LitScalTrack*>& tracks);
46 
47 
48  /* Setters */
50  fLayout = layout;
51  }
52  void SetNofIterations(int nofIterations) {
53  fNofIterations = nofIterations;
54  }
55  void SetMaxNofMissingHits(const vector<int>& maxNofMissingHits) {
56  fMaxNofMissingHits = maxNofMissingHits;
57  }
58  void SetPDG(const vector<int>& pdg) { fPDG = pdg; }
59  void SetChiSqStripHitCut(const vector<fscal>& chiSqStripHitCut) {
60  fChiSqStripHitCut = chiSqStripHitCut;
61  }
62  void SetChiSqPixelHitCut(const vector<fscal>& chiSqPixelHitCut) {
63  fChiSqPixelHitCut = chiSqPixelHitCut;
64  }
65  void SetSigmaCoef(const vector<fscal>& sigmaCoef) {
66  fSigmaCoef = sigmaCoef;
67  }
68 
69  protected:
70  void ArrangeHits(const vector<lit::parallel::LitScalPixelHit*>& hits);
71 
75  void
76  InitTrackSeeds(const vector<lit::parallel::LitScalTrack*>& trackSeeds);
77 
79 
80  void PropagateToStation(unsigned char stationId, LitTrackParamScal& par);
81 
85  void FollowTracks();
86 
87  void SelectTracks();
88 
92  void RemoveHits();
93 
97  void CopyToOutput(vector<lit::parallel::LitScalTrack*>& tracks);
98 
99  private:
100  vector<lit::parallel::LitScalTrack*> fTracks; // Local copy of tracks.
101  LitHitData fHitData; // Hit storage.
102  set<int> fUsedHitsSet; // Sets with hits that have been used.
103  set<int> fUsedSeedsSet; // Set with track seeds that have been used.
104 
105  LitDetectorLayoutScal fLayout; // Detector layout
106  int fNofIterations; // Number of tracking iterations
107  int fIteration; // Current tracking iteration
108  // Tracking parameters for each iteration
109  vector<int>
110  fMaxNofMissingHits; // Maximum number of acceptable missing hits.
111  vector<int> fPDG; // Particle hypothesis for tracking.
112  vector<fscal> fChiSqStripHitCut; // Chi-square cut for strip hits.
113  vector<fscal> fChiSqPixelHitCut; // Chi-square cut for pixel hits.
114  vector<fscal>
115  fSigmaCoef; // Sigma coefficient for preliminary hit selection
116  };
117 
118  } // namespace parallel
119 } // namespace lit
120 #endif /* LITTRACKFINDERNN_H_ */
lit::parallel::LitTrackFinderNN::fHitData
LitHitData fHitData
Definition: LitTrackFinderNN.h:101
lit::parallel::LitTrackFinderNN::PropagateToStation
void PropagateToStation(unsigned char stationId, LitTrackParamScal &par)
Definition: LitTrackFinderNN.cxx:142
lit::parallel::LitTrackFinderNN::SetNofIterations
void SetNofIterations(int nofIterations)
Definition: LitTrackFinderNN.h:52
lit::parallel::LitTrackFinderNN::LitTrackFinderNN
LitTrackFinderNN()
Constructor.
Definition: LitTrackFinderNN.cxx:26
lit::parallel::LitTrackFinderNN
Definition: LitTrackFinderNN.h:25
lit::parallel::LitTrackFinderNN::SelectTracks
void SelectTracks()
Definition: LitTrackFinderNN.cxx:289
lit::parallel::LitTrackFinderNN::FollowTracks
void FollowTracks()
Follow tracks through detector.
Definition: LitTrackFinderNN.cxx:193
lit::parallel::LitTrackFinderNN::SetChiSqStripHitCut
void SetChiSqStripHitCut(const vector< fscal > &chiSqStripHitCut)
Definition: LitTrackFinderNN.h:59
lit::parallel::LitTrackFinderNN::SetMaxNofMissingHits
void SetMaxNofMissingHits(const vector< int > &maxNofMissingHits)
Definition: LitTrackFinderNN.h:55
lit::parallel::LitTrackFinderNN::fUsedHitsSet
set< int > fUsedHitsSet
Definition: LitTrackFinderNN.h:102
lit::parallel::LitTrackFinderNN::PropagateVirtualStations
void PropagateVirtualStations(LitTrackParamScal &par)
Definition: LitTrackFinderNN.cxx:103
lit::parallel::LitTrackFinderNN::fNofIterations
int fNofIterations
Definition: LitTrackFinderNN.h:106
lit::parallel::LitDetectorLayout< fscal >
lit::parallel::LitTrackParam< fscal >
lit::parallel::LitHitData
Class for accessing hits in track reconstruction.
Definition: LitHitData.h:36
lit::parallel::LitTrackFinderNN::CopyToOutput
void CopyToOutput(vector< lit::parallel::LitScalTrack * > &tracks)
Copy tracks to output array.
Definition: LitTrackFinderNN.cxx:309
lit::parallel::LitTrackFinderNN::fChiSqStripHitCut
vector< fscal > fChiSqStripHitCut
Definition: LitTrackFinderNN.h:112
LitHitData.h
Class for accessing hits in track reconstruction.
lit::parallel::LitTrackFinderNN::SetPDG
void SetPDG(const vector< int > &pdg)
Definition: LitTrackFinderNN.h:58
tracks
TClonesArray * tracks
Definition: Analyze_matching.h:17
lit::parallel::LitTrackFinderNN::SetChiSqPixelHitCut
void SetChiSqPixelHitCut(const vector< fscal > &chiSqPixelHitCut)
Definition: LitTrackFinderNN.h:62
lit::parallel::LitTrackFinderNN::fTracks
vector< lit::parallel::LitScalTrack * > fTracks
Definition: LitTrackFinderNN.h:100
LitScalTrack.h
Scalar track data class.
LitScalPixelHit.h
Base class for scalar pixel hits.
lit::parallel::LitTrackFinderNN::SetSigmaCoef
void SetSigmaCoef(const vector< fscal > &sigmaCoef)
Definition: LitTrackFinderNN.h:65
lit::parallel::LitTrackFinderNN::DoFind
void DoFind(const vector< lit::parallel::LitScalPixelHit * > &hits, const vector< lit::parallel::LitScalTrack * > &trackSeeds, vector< lit::parallel::LitScalTrack * > &tracks)
Main function for track reconstruction.
Definition: LitTrackFinderNN.cxx:42
lit::parallel::LitTrackFinderNN::ArrangeHits
void ArrangeHits(const vector< lit::parallel::LitScalPixelHit * > &hits)
Definition: LitTrackFinderNN.cxx:71
LitDetectorLayout.h
Detector layout class.
lit::parallel::LitTrackFinderNN::fPDG
vector< int > fPDG
Definition: LitTrackFinderNN.h:111
lit::parallel::LitTrackFinderNN::fUsedSeedsSet
set< int > fUsedSeedsSet
Definition: LitTrackFinderNN.h:103
lit::parallel::LitTrackFinderNN::fMaxNofMissingHits
vector< int > fMaxNofMissingHits
Definition: LitTrackFinderNN.h:110
lit::parallel::LitTrackFinderNN::fLayout
LitDetectorLayoutScal fLayout
Definition: LitTrackFinderNN.h:105
lit::parallel::LitTrackFinderNN::fSigmaCoef
vector< fscal > fSigmaCoef
Definition: LitTrackFinderNN.h:115
lit::parallel::LitTrackFinderNN::SetDetectorLayout
void SetDetectorLayout(const LitDetectorLayoutScal &layout)
Definition: LitTrackFinderNN.h:49
hits
static vector< vector< QAHit > > hits
Definition: CbmTofHitFinderTBQA.cxx:114
lit::parallel::LitTrackFinderNN::InitTrackSeeds
void InitTrackSeeds(const vector< lit::parallel::LitScalTrack * > &trackSeeds)
Initialize track seeds and copy to local array.
Definition: LitTrackFinderNN.cxx:82
lit::parallel::LitTrackFinderNN::~LitTrackFinderNN
virtual ~LitTrackFinderNN()
Destructor.
Definition: LitTrackFinderNN.cxx:40
lit::parallel::LitTrackFinderNN::fChiSqPixelHitCut
vector< fscal > fChiSqPixelHitCut
Definition: LitTrackFinderNN.h:113
lit::parallel::LitTrackFinderNN::fIteration
int fIteration
Definition: LitTrackFinderNN.h:107
lit::parallel::LitTrackFinderNN::RemoveHits
void RemoveHits()
Write already used hits to a used hits set.
Definition: LitTrackFinderNN.cxx:298
lit
Definition: LitTrackFinderNNVecElectron.h:19