1 #ifndef PNDRIEMANNTRACKFINDER_H_ 2 #define PNDRIEMANNTRACKFINDER_H_ 8 #include "TClonesArray.h" 23 void AddHits(std::vector<FairHit *> hits, Int_t branchId);
24 void AddHits(TClonesArray *hits, Int_t branchId);
35 int HitTooClose(std::set<Int_t> hitsInUse, FairHit *newHit,
double threshold);
79 std::vector<int>
FindTracksWithSimilarHits(std::vector<int> &TracksToTest, std::vector<PndTrackCand> tempTrCnd, std::vector<int> &tempKillAfter);
80 void RemoveTrack(
int TrackInd, std::vector<int> &TrackList);
bool CheckSZ(PndRiemannTrack aTrack)
Tests the results of the sz fit.
int HitTooClose(std::set< Int_t > hitsInUse, FairHit *newHit, double threshold)
returns if and which hit was too close to the hit which is tested
void SetVerbose(int val)
Adds one new hit to the array of hits.
void SetHits(std::vector< FairHit *> hits)
double fMaxSZChi2
Maximum allowed Chi2 in an sz fit.
std::vector< PndRiemannTrack > fTracks
Resulting Riemann Tracks.
bool TrackExists(std::set< Int_t > hitsInTrack)
void FindTracks()
Main function to start the riemann track finding.
std::vector< std::pair< double, double > > fCurvAndDipOfCand
Curvature and dip of fPndTrackCand.
PndTrackCand CreateOneTrackCand(std::vector< int > tracks, std::vector< PndTrackCand > tempTrCnd)
void RemoveTrack(int TrackInd, std::vector< int > &TrackList)
std::map< int, FairLink > fMapHitToID
map to convert the list of hits back into a FairLink
std::vector< int > FindTracksWithSimilarParameters(int TrackInd, std::vector< int > &TracksToTest, double curvDiff, double dipDiff)
std::vector< std::set< int > > fHitsTooClose
matrix of TrackNr and hits which are too close to one of the three starting points ...
int fMinNumberOfHits
Minimum number of hits in track necessary for a match.
std::vector< PndTrackCand > fTrackCand
List of track candidates.
std::vector< PndTrackCand > fMergedTrackCand
double fMagField
size of the magnetic field in Tesla
std::vector< PndTrackCand > GetTrackCand()
Returns the hits belonging to track i.
double fDipDiff
TrackMerger parameter.
void AddHit(FairHit *hit)
std::vector< PndTrackCand > GetMergedTrackCands()
double fMaxPlaneDist
Distance cut between new point and riemann plane.
void SetMaxSZDist(double val)
double HitDistance(FairHit *h1, FairHit *h2)
Calculates the distance between two hits.
bool CheckHitInSameSensor(int hit1, int hit2)
Tests if hits in the same sensor are selected.
bool CheckHitDistance(int hit1, int hit2)
Tests if the distance is larger than fMinPointDistance.
void AddHits(std::vector< FairHit *> hits, Int_t branchId)
Replaces the existing array of hits with a new one.
void SetMinPointDist(double val)
void SetCurvDiff(double val)
std::map< FairLink, int > fMapIDtoHit
map to convert the list of detID/hitID hits into the list of hits for track finding ...
std::vector< int > FindTracksWithSimilarHits(std::vector< int > &TracksToTest, std::vector< PndTrackCand > tempTrCnd, std::vector< int > &tempKillAfter)
---------—added by me
virtual ~PndRiemannTrackFinder()
double fMinPointDist
Minimum distance between two points to use them as point for the base plane.
void SetDipDiff(double val)
PndRiemannTrack CreateRiemannTrack(std::set< Int_t > aHits)
Creates a PndRiemannTrack from an array of indices of Hits.
PndRiemannTrack GetTrack(int i)
Returns the number of found tracks.
void SetMaxPlaneDistance(double val)
bool CheckZeroPassing(std::set< int > hitIds, int hit)
If the track contains (0,0) all points have to go forward or all have to go backward.
void SetMinNumberOfHits(int val)
double fCurvDiff
TrackMerger parameter.
std::vector< FairHit * > fHits
Vector of all FairHits used for track finding (fitting)
void SetUseZeroPos(bool val)
std::vector< std::set< Int_t > > fHitsInTracks
Vector of indizes which hits where used in which track.
bool CheckRiemannHit(PndRiemannTrack *track, PndRiemannHit *hit)
void SetMaxSZChi2(double val)
std::set< Int_t > GetTrackCandidates(int i)
double fMaxSZDist
Distance cut between s-z coordinate of a new point and the sz-fit of the hits in the track...
std::vector< std::set< Int_t > > GetStartTracks()
bool CheckHitInTrack(std::set< int > hitIds, int hit)
Check if this HitId is used in the track already.
PndTrack GetPndTrack(int i, double B)
Returns the track with the index i.
PndTrackCand GetTrackCand(int i)