8 #ifndef PNDSTTCELLTRACKLETGENERATOR_H_ 9 #define PNDSTTCELLTRACKLETGENERATOR_H_ 41 std::cout <<
"startId: " << startID <<
", endId: " << endID <<
", maxId: " << maxID <<
", straight: " << straight <<
", #hits: " << hitIDs.size()
42 <<
", numSkewed: " << numSkewed << std::endl;
45 std::cout <<
", RiemannTrack created error: " << error <<
", #wrong hits: " << numErrHits <<
" ";
47 std::cout << std::endl;
58 std::cout <<
"combined tracklets: ";
59 for (std::set<int>::iterator it = tracklets.begin(); it != tracklets.end(); ++it) {
60 std::cout << *it <<
", ";
62 std::cout << std::endl;
70 : fTimeStamps(20), fVerbose(0), fBz(2.), fCalcFirstTrackletInf(false), fCalcWithCorrectedHits(false), fTUBE_RADIUS(0.5005), fUseGPU(false), fDev_tubeNeighborings(nullptr),
71 fHits(data->GetHits()), fCombinedSkewedHits(data->GetCombinedSkewedHits()), fStrawMap(data->GetStrawMap()), fMapTubeIdToHit(data->GetMapTubeIdToHit()),
72 fMapTubeIdToPos(data->GetMapTubeIdToPos()), fMapHitToFairLink(data->GetMapHitToFairLink()), fHitNeighbors(data->GetHitNeighbors()), fSeparations(data->GetSeparations())
84 void SetCorrectedHits(std::map<int, FairHit *> correctedHits);
115 void SetBz(Double_t val) { fBz = val; };
120 std::vector<Double_t> fTimeStamps;
124 bool fCalcFirstTrackletInf;
125 bool fCalcWithCorrectedHits;
129 int *fDev_tubeNeighborings;
131 std::vector<FairHit *> fHits;
132 std::multimap<int, PndSttSkewedHit *> fCombinedSkewedHits;
135 std::map<int, int> fMapTubeIdToHit;
136 std::map<int, TVector3> fMapTubeIdToPos;
137 std::map<int, FairLink> fMapHitToFairLink;
139 map<int, vector<int>> fHitNeighbors;
140 map<int, vector<int>> fSeparations;
142 map<int, int> fStates;
143 map<int, std::set<int>> fMultiStates;
145 map<int, TrackletInf_t> fStartTracklets;
146 map<int, TrackletInf_t> fShortTracklets;
149 std::vector<PndTrackCand> fFirstTrackCand;
150 std::vector<PndRiemannTrack> fFirstRiemannTrack;
153 std::vector<std::set<int>> fStateCombinations;
154 std::vector<Combination_t> fCombinedData;
155 std::vector<int> fTrackletsWithoutCombi;
157 std::vector<PndTrackCand> fCombiTrackCand;
158 std::vector<PndRiemannTrack> fCombiRiemannTrack;
159 std::vector<PndTrack> fCombiTrack;
161 std::map<int, FairHit *> fCorrectedHits;
165 void CreatePndTrackCands();
168 void GenerateTracklets();
171 void GenerateTrackletsGPU();
174 void EvaluateState();
177 void EvaluateMultiState();
181 void InitStartTracklets();
185 void CombineTrackletsMultiStages();
188 void CombineTrackletsMultiStagesRecursive(
int stateToCombine, std::set<int> currentCombi);
191 void InsertCombination(std::set<int> combination);
199 void AssignAmbiguousHits();
203 void AddRemainingHits();
208 bool AddHitToBestCombi(
int hitID);
214 std::set<std::pair<int, int>> CreatePairCombis(
int firstState, std::set<int> values);
227 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)