1 #ifndef PNDRIEMANNTRACKFINDER_H_
2 #define PNDRIEMANNTRACKFINDER_H_
8 #include "TClonesArray.h"
24 void AddHits(std::vector<FairHit*>
hits, Int_t branchId);
80 std::vector<int>
FindTracksWithSimilarHits(std::vector<int>& TracksToTest,std::vector<PndTrackCand> tempTrCnd, std::vector<int>& tempKillAfter);
81 void RemoveTrack(
int TrackInd, std::vector<int>& TrackList);
void SetHits(std::vector< FairHit * > hits)
std::vector< std::set< int > > fHitsTooClose
matrix of TrackNr and hits which are too close to one of the three starting points ...
std::vector< std::pair< double, double > > fCurvAndDipOfCand
Curvature and dip of fPndTrackCand.
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.
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.
Double_t val[nBoxes][nFEBox]
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::map< FairLink, int > fMapIDtoHit
map to convert the list of detID/hitID hits into the list of hits for track finding ...
PndTrackCand CreateOneTrackCand(std::vector< int > tracks, std::vector< PndTrackCand > tempTrCnd)
void RemoveTrack(int TrackInd, std::vector< int > &TrackList)
std::vector< FairHit * > fHits
Vector of all FairHits used for track finding (fitting)
int fMinNumberOfHits
Minimum number of hits in track necessary for a match.
std::vector< PndTrackCand > fTrackCand
List of track candidates.
void AddHits(std::vector< FairHit * > hits, Int_t branchId)
Replaces the existing array of hits with a new one.
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()
std::vector< std::set< Int_t > > GetStartTracks()
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 SetMinPointDist(double val)
void SetCurvDiff(double val)
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.
virtual ~PndRiemannTrackFinder()
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::vector< int > FindTracksWithSimilarHits(std::vector< int > &TracksToTest, std::vector< PndTrackCand > tempTrCnd, std::vector< int > &tempKillAfter)
---------—added by me
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...
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)