20 #ifndef PNDSTTCELLTRACKLETGENERATOR_H_ 21 #define PNDSTTCELLTRACKLETGENERATOR_H_ 53 std::cout <<
"startId: " << startID <<
", endId: " << endID <<
", maxId: " << maxID <<
", straight: " << straight <<
", #hits: " << hitIDs.size()
54 <<
", numSkewed: " << numSkewed << std::endl;
57 std::cout <<
", RiemannTrack created error: " << error <<
", #wrong hits: " << numErrHits <<
" ";
59 std::cout << std::endl;
70 std::cout <<
"combined tracklets: ";
71 for (std::set<int>::iterator it = tracklets.begin(); it != tracklets.end(); ++it) {
72 std::cout << *it <<
", ";
74 std::cout << std::endl;
82 : fTimeStamps(20), fVerbose(0), fBz(2.), fCalcFirstTrackletInf(false), fCalcWithCorrectedHits(false), fTUBE_RADIUS(0.5005), fUseGPU(false), fDev_tubeNeighborings(nullptr),
83 fHits(data->GetHits()), fCombinedSkewedHits(data->GetCombinedSkewedHits()), fStrawMap(data->GetStrawMap()), fMapTubeIdToHit(data->GetMapTubeIdToHit()),
84 fMapTubeIdToPos(data->GetMapTubeIdToPos()), fMapHitToFairLink(data->GetMapHitToFairLink()), fHitNeighbors(data->GetHitNeighbors()), fSeparations(data->GetSeparations())
96 void SetCorrectedHits(std::map<int, FairHit *> correctedHits);
127 void SetBz(Double_t val) { fBz = val; };
132 std::vector<Double_t> fTimeStamps;
136 bool fCalcFirstTrackletInf;
137 bool fCalcWithCorrectedHits;
141 int *fDev_tubeNeighborings;
143 std::vector<FairHit *> fHits;
144 std::multimap<int, PndSttSkewedHit *> fCombinedSkewedHits;
147 std::map<int, int> fMapTubeIdToHit;
148 std::map<int, TVector3> fMapTubeIdToPos;
149 std::map<int, FairLink> fMapHitToFairLink;
151 map<int, vector<int>> fHitNeighbors;
152 map<int, vector<int>> fSeparations;
154 map<int, int> fStates;
155 map<int, std::set<int>> fMultiStates;
157 map<int, TrackletInf_t> fStartTracklets;
158 map<int, TrackletInf_t> fShortTracklets;
161 std::vector<PndTrackCand> fFirstTrackCand;
162 std::vector<PndRiemannTrack> fFirstRiemannTrack;
165 std::vector<std::set<int>> fStateCombinations;
166 std::vector<Combination_t> fCombinedData;
167 std::vector<int> fTrackletsWithoutCombi;
169 std::vector<PndTrackCand> fCombiTrackCand;
170 std::vector<PndRiemannTrack> fCombiRiemannTrack;
171 std::vector<PndTrack> fCombiTrack;
173 std::map<int, FairHit *> fCorrectedHits;
177 void CreatePndTrackCands();
180 void GenerateTracklets();
183 void GenerateTrackletsGPU();
186 void EvaluateState();
189 void EvaluateMultiState();
193 void InitStartTracklets();
197 void CombineTrackletsMultiStages();
200 void CombineTrackletsMultiStagesRecursive(
int stateToCombine, std::set<int> currentCombi);
203 void InsertCombination(std::set<int> combination);
211 void AssignAmbiguousHits();
215 void AddRemainingHits();
220 bool AddHitToBestCombi(
int hitID);
226 std::set<std::pair<int, int>> CreatePairCombis(
int firstState, std::set<int> values);
239 bool IsEndTubeOfTracklet(
int tubeID);
void SetCalcWithCorrectedHits(bool calcWithCorrectedHits=true)
unsigned int getNumHits()
void SetDevTubeNeighboringsPointer(int *dev_pointer)
std::vector< PndTrackCand > GetFirstTrackCands()
std::vector< PndRiemannTrack > GetCombiRiemannTracks()
std::set< int > tracklets
int GetNumPrimaryTracklets()
TrackletInf_t trackletInf
int * EvaluateAllStates(int *, int *, int, int, int *)
std::vector< Double_t > GetTimeStamps()
std::vector< int > hitIDs
PndSttCellTrackletGenerator(const PndSttCellTrackFinderData *data)
std::vector< PndTrackCand > GetCombiTrackCands()
PndRiemannTrack riemannTrack
bool CalcWithCorrectedHits()
void SetVerbose(Int_t val)
virtual ~PndSttCellTrackletGenerator()
void SetUseGPU(Bool_t val)
std::vector< PndRiemannTrack > GetFirstRiemannTracks()
std::vector< PndTrack > GetCombiTracks()
void SetCalcFirstTrackletInf(Bool_t val)