CbmRoot
Loading...
Searching...
No Matches
LitTrackFinderNN.h
Go to the documentation of this file.
1/* Copyright (C) 2013-2014 GSI/JINR-LIT, Darmstadt/Dubna
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Andrey Lebedev [committer] */
4
12#ifndef LITTRACKFINDERNN_H_
13#define LITTRACKFINDERNN_H_
14
15#include "LitDetectorLayout.h"
16#include "LitHitData.h"
17
18#include <set>
19#include <vector>
20
21using std::set;
22using std::vector;
23
24#include "LitScalPixelHit.h"
25#include "LitScalTrack.h"
26
27namespace lit
28{
29 namespace parallel
30 {
31
33 public:
38
42 virtual ~LitTrackFinderNN();
43
50 void DoFind(const vector<lit::parallel::LitScalPixelHit*>& hits,
51 const vector<lit::parallel::LitScalTrack*>& trackSeeds, vector<lit::parallel::LitScalTrack*>& tracks);
52
53
54 /* Setters */
55 void SetDetectorLayout(const LitDetectorLayoutScal& layout) { fLayout = layout; }
56 void SetNofIterations(int nofIterations) { fNofIterations = nofIterations; }
57 void SetMaxNofMissingHits(const vector<int>& maxNofMissingHits) { fMaxNofMissingHits = maxNofMissingHits; }
58 void SetPDG(const vector<int>& pdg) { fPDG = pdg; }
59 void SetChiSqStripHitCut(const vector<fscal>& chiSqStripHitCut) { fChiSqStripHitCut = chiSqStripHitCut; }
60 void SetChiSqPixelHitCut(const vector<fscal>& chiSqPixelHitCut) { fChiSqPixelHitCut = chiSqPixelHitCut; }
61 void SetSigmaCoef(const vector<fscal>& sigmaCoef) { fSigmaCoef = sigmaCoef; }
62
63 protected:
64 void ArrangeHits(const vector<lit::parallel::LitScalPixelHit*>& hits);
65
69 void InitTrackSeeds(const vector<lit::parallel::LitScalTrack*>& trackSeeds);
70
72
73 void PropagateToStation(unsigned char stationId, LitTrackParamScal& par);
74
78 void FollowTracks();
79
80 void SelectTracks();
81
85 void RemoveHits();
86
90 void CopyToOutput(vector<lit::parallel::LitScalTrack*>& tracks);
91
92 private:
93 vector<lit::parallel::LitScalTrack*> fTracks; // Local copy of tracks.
94 LitHitData fHitData; // Hit storage.
95 set<int> fUsedHitsSet; // Sets with hits that have been used.
96 set<int> fUsedSeedsSet; // Set with track seeds that have been used.
97
98 LitDetectorLayoutScal fLayout; // Detector layout
99 int fNofIterations; // Number of tracking iterations
100 int fIteration; // Current tracking iteration
101 // Tracking parameters for each iteration
102 vector<int> fMaxNofMissingHits; // Maximum number of acceptable missing hits.
103 vector<int> fPDG; // Particle hypothesis for tracking.
104 vector<fscal> fChiSqStripHitCut; // Chi-square cut for strip hits.
105 vector<fscal> fChiSqPixelHitCut; // Chi-square cut for pixel hits.
106 vector<fscal> fSigmaCoef; // Sigma coefficient for preliminary hit selection
107 };
108
109 } // namespace parallel
110} // namespace lit
111#endif /* LITTRACKFINDERNN_H_ */
TClonesArray * tracks
static vector< vector< QAHit > > hits
Detector layout class.
Class for accessing hits in track reconstruction.
Base class for scalar pixel hits.
Scalar track data class.
Class for accessing hits in track reconstruction.
Definition LitHitData.h:42
virtual ~LitTrackFinderNN()
Destructor.
void CopyToOutput(vector< lit::parallel::LitScalTrack * > &tracks)
Copy tracks to output array.
void SetSigmaCoef(const vector< fscal > &sigmaCoef)
void SetChiSqStripHitCut(const vector< fscal > &chiSqStripHitCut)
void SetChiSqPixelHitCut(const vector< fscal > &chiSqPixelHitCut)
void PropagateVirtualStations(LitTrackParamScal &par)
vector< lit::parallel::LitScalTrack * > fTracks
void SetDetectorLayout(const LitDetectorLayoutScal &layout)
void ArrangeHits(const vector< lit::parallel::LitScalPixelHit * > &hits)
void RemoveHits()
Write already used hits to a used hits set.
void DoFind(const vector< lit::parallel::LitScalPixelHit * > &hits, const vector< lit::parallel::LitScalTrack * > &trackSeeds, vector< lit::parallel::LitScalTrack * > &tracks)
Main function for track reconstruction.
void SetNofIterations(int nofIterations)
void SetPDG(const vector< int > &pdg)
void InitTrackSeeds(const vector< lit::parallel::LitScalTrack * > &trackSeeds)
Initialize track seeds and copy to local array.
void FollowTracks()
Follow tracks through detector.
void PropagateToStation(unsigned char stationId, LitTrackParamScal &par)
void SetMaxNofMissingHits(const vector< int > &maxNofMissingHits)