16 #ifndef PndHoughTrackFinder_H_ 17 #define PndHoughTrackFinder_H_ 35 PndHoughTrackFinder(TClonesArray *tubeArray) : fNbins1(450), fNbins2(450), fNBinsSeg(90.), fBz(2.), fCutMergeByHoughSpace(5.), fWithGPU(kFALSE), fWithGhostReduction(kTRUE)
39 fCATrackFinder =
new PndSttCA(tubeArray);
40 ioman = FairRootManager::Instance();
47 delete fCATrackFinder;
49 delete fPndHoughTransformation;
50 delete fPndHoughPreprocessing;
51 delete fPndHoughMerge;
52 delete fPndHoughSegment;
53 delete fPndHoughUtilities;
54 delete fPndHoughTrackCorrection;
64 virtual void SetBz(
double B) { fBz = B; };
76 fData->
Init(fNbins1, fNbins2);
86 fCATrackFinder->
Reset();
88 fPreselectedTrackCands.clear();
89 fPreselectedTrackCircles.clear();
93 void AddHits(TClonesArray *hits, TString branchName);
141 FairRootManager *ioman =
nullptr;
152 TClonesArray *fCombinedSkewed =
nullptr;
153 std::vector<std::vector<TVector3>> fHoughSpacesToTracks;
154 std::vector<PndTrackCand> fHoughSpacesToTrackCands;
155 std::vector<PndTrackCand> fHoughSpacesToTrackCandTots;
157 std::vector<FairLink> fFoundHits;
159 std::vector<PndTrackCand> fPreselectedTrackCands;
160 std::vector<TVector3> fPreselectedTrackCircles;
161 std::vector<PndTrack> fApolloniusMergedTracks;
162 std::vector<PndTrackCand> fApolloniusMergedTrackCands;
165 float fCutMergeByHoughSpace;
170 bool fWithGhostReduction;
171 double fDistanceThresholdSTTCombinedSkewed = 1.;
172 std::map<FairLink, FairHit *> fMapFairLinktoFairHit;
173 std::map<FairLink, double> fMapFairLinktoIsochrone;
virtual void SetWithGhostReduction(bool ghostred)
Sets a bool for deciding to use a ghost reduction.
PndTrack GetMergedTrack(int i)
Returns a specific found track.
int GetNumMergedTracks()
Returns the number of found tracks.
void CreateSTTNeighborhoodData()
For all STT hits all other STT neighbors are counted and stored in a map.
int GetNumPreselectedTrackCircles()
Returns the number of preselected circles for track candidates.
int GetNumMergedTracks()
Returns a specific merged track candidate.
void Reset()
Resets the data for a new event.
std::map< FairLink, FairHit * > GetMapFairLinktoFairHit() const
Returns the map linking FairLinks to FairHits.
void Preselection()
Here all data are preselected in smaller tracklets.
void Init()
Initializes the data structure and the Hough space of the HoughtrackFinder.
virtual void SetCutMergeByHoughSpace(float cut)
Sets the cut value for the distance of two maxima in the Hough space which have to be merged...
virtual void SetPreselectedTrackCands(std::vector< PndTrackCand > cands)
virtual void SetNBinsSeg(Int_t n)
Sets the number of bins used for the segmentation preselection algorithm.
TVector3 GetPreselectedTrackCircles(int i)
Returns a the corresponding circle for a specific preselected track candidate.
virtual void SetWithGPU(bool cuda)
Sets a bool for deciding to use cuda.
virtual void SetBinningY(double bin)
Sets the number of bins in y direction for the Hough space.
void CreateNeighborhood()
Creates the neighborhood parameters for all investigated hits.
virtual ~PndHoughTrackFinder()
void Init(int NBins1=450, int NBins2=450)
Initializes the Hough space.
int GetNumPreselectedTrackCands()
Returns the number of preselected track candidates.
virtual void SetCombinedSkewed(TClonesArray *skewed)
void clear()
Clears all data maps.
void AddSkewedHits(int i)
std::map< FairLink, FairHit * > GetMapFairLinktoFairHit()
Returns a specific found track candidate.
void FindHoughMaxima()
Performs a Hough transformation for all preselected tracklets. The found track parameters are stored ...
PndTrack GetMergedTrack(int i)
Returns a specific merged track.
PndHoughData * GetData()
Returns the data class of the HoughTrackFinder.
PndTrackCand GetPreselectedTrackCand(int i)
Returns a specific preselected track candidate.
PndHoughTrackFinder(TClonesArray *tubeArray)
virtual void SetBz(double B)
Sets the z component of the magnetic field.
void AddHits(TClonesArray *hits, TString branchName)
Adds hits to the data structure of the HoughTrackFinder.
void FindTracks()
Main function of the HoughTrackFinder, which finds the tracks.
virtual void SetBinningX(double bin)
Sets the number of bins in x direction for the Hough space.
void CreateGEMNeighborhoodData()
For all GEM hits all other GEM hits in a certain distance (hier 1.5 cm) are counted and stored as nei...
void SetUseGPU(Bool_t val)