1 #ifndef PNDSTTMVDGEMTRACKING_H
2 #define PNDSTTMVDGEMTRACKING_H 1
11 #include "FairGeanePro.h"
33 virtual InitStatus
Init();
37 virtual void Exec(Option_t* opt);
79 std::vector<int>
AssignHits(Int_t itrk, FairTrackParP *gempar, Int_t ipos);
85 void Kalman(TMatrixT<double> extrap, TMatrixT<double> measurement,
87 TMatrixT<double> extrap_cov, TMatrixT<double> measurement_cov,
88 TMatrixT<double> &
kalman, TMatrixT<double> &kalman_cov);
TClonesArray * fTrackIDArray
Double_t CompareToPreviousPhi(Double_t Fi, Double_t Fi_pre, int charge)
std::vector< int >::iterator fOrderingIterator
PndGemDigiPar * fGemParameters
void OrderGemHits(Int_t nhits)
Int_t GetPosIndex(PndGemHit *hit)
Int_t countreconstructablehit
void Copy(PndTrackCand *completeCand, PndTrack *completeTrack, PndTrackCand *sttmvdCand, PndTrack *sttmvd)
void SetCombinatorialDistance(Double_t combidistance)
std::vector< int > GetHitsAssociatedToTrackOnPlane(Int_t itrk, Int_t ipos)
void CheckCombinatorial(Int_t nhits, Int_t ntracks)
void SetBranchNames(TString mvdpixel, TString mvdstrip, TString stt, TString gem)
Int_t countsecnotassigned
Bool_t Fit(TMatrixT< double > points, Double_t &outxc, Double_t &outyc, Double_t &outradius)
TClonesArray * fTrackCandArray
Double_t IsAssignable(FairTrackParP *gempar, PndGemHit *gemhit)
virtual void Exec(Option_t *opt)
std::vector< int > trackindexes
void SetPersistency(Bool_t val=kTRUE)
Double_t CalculatePhi(TVector2 v, TVector2 p, double alpha, double Phi0, int charge)
Int_t CountHitsInTrack(Int_t itrk)
TClonesArray * fCompleteTrackCandArray
Digitization Parameter Class for GEM part.
Bool_t IntersectionFinder(Double_t xc, Double_t yc, Double_t radius, PndSttHit *stthit, TVector3 &xyz, TVector3 &dxyz)
TClonesArray * fTrackArray
std::vector< std::pair< int, int > > trackvector
Int_t GetChargeCorrectedPdgFromMC(int trackid, int charge)
Bool_t ZFit(TMatrixT< double > points, Int_t charge, Double_t xc, Double_t yc, Double_t radius, Double_t &fitm, Double_t &fip)
TClonesArray * fCompleteTrackArray
TClonesArray * fGemPointArray
Int_t GetClosestOnFirst(FairTrackParP *gempar, Int_t ipos, Double_t &closestdistance)
std::vector< int > GetHitsAssociatedToTrack(Int_t itrk)
TClonesArray * fSensPositions
void EvaluatePerformances(Int_t nhits, Int_t ntracks)
std::vector< int > fOrdering
virtual InitStatus Init()
TString fStartTrackBranchName
TClonesArray * fMvdPixelHitArray
void AddRemainingHits(Int_t ntracks)
TString fMvdStripBranchName
Bool_t PropagateToGemPlane(FairTrackParP *tmppar, FairTrackParP *gempar, Int_t ipos)
Int_t GetPdgFromMC(int trackid)
TClonesArray * fMvdStripHitArray
TMatrixT< double > distancemap
void SetMaxDistance(Double_t maxdistance)
Int_t GetHitIndex(Int_t i)
Bool_t Prefit(PndTrack *sttmvdTrack, PndTrackCand *sttmvdCand, TVector3 &lastpos, TVector3 &lastmom)
void SetPdgFromMC(TString trackid)
TMatrixT< float > hitcounter
TClonesArray * fMCTrackArray
Int_t countreconstructablepoint
void Kalman(TMatrixT< double > extrap, TMatrixT< double > measurement, TMatrixT< double > H, TMatrixT< double > extrap_cov, TMatrixT< double > measurement_cov, TMatrixT< double > &kalman, TMatrixT< double > &kalman_cov)
std::map< int, bool > fProTracks
void DeleteHitFromTrack(Int_t ihit, Int_t itrk)
void ForbidMultiAssignedHits(Int_t nhits, Int_t ntracks)
TClonesArray * fMvdPointArray
Int_t countnohitonplane[8]
std::vector< int > notassignedtracks
void AddHitToTrack(Int_t ihit, Int_t itrk)
Int_t countprinotassigned
Bool_t ZFind(Int_t nhits, TMatrixT< double > points, Double_t xc, Double_t yc, Double_t radius)
Bool_t PropagateToGemPlaneAsHelix(PndTrack *sttmvd, FairTrackParP *gempar, Int_t ipos)
void SetDefaultPdg(int pdg)
void SetTrackBranchNames(TString startingtrack, TString startingtrackcand)
int hit(Int_t nEvents=0, TString inFile="sim.root", TString parFile="par.root", TString inDigi="digi.root", TString outFile="hit.root", Int_t timeBased=0)
TString fMvdPixelBranchName
TClonesArray * fGemHitArray
FairTrackParP SetStartParameters(PndTrack *sttmvd, PndTrackCand *sttmvdCand)
std::vector< int > GetTracksAssociatedToHit(Int_t ihit)
TString fStartTrackCandBranchName
Int_t SelectPdgCode(PndTrack *sttmvd)
PndSttMvdTracking * sttmvd
virtual void SetParContainers()
void OnlyOneHitToEachTrack(Int_t nhits, Int_t ntracks)
std::vector< int > AssignHits(Int_t itrk, FairTrackParP *gempar, Int_t ipos)
TClonesArray * fTubeArray
void UpdateMCTrackId(PndTrackCand *completeCand)
void SetPersistenc(Bool_t persistence)
Bool_t GetInitialParams(PndTrack *sttmvd, Double_t &xc, Double_t &yc, Double_t &radius, Double_t &fitm, Double_t &fitp)
void SetTimes(Int_t times)
std::vector< int > notassignedhits
void SetEvaluateFlag(Bool_t flag)
void ConsiderCombinatorialEffect(Int_t nhits)
std::map< int, bool > towhichplane
TClonesArray * fSttHitArray
Int_t GetTrackIndex(Int_t i)
TString fStartTrackIDBranchName
PndGeoSttPar * fSttParameters
std::map< int, int > fCombiMap
TClonesArray * fSttPointArray
ClassDef(PndSttMvdGemTracking, 1)
void Reset(Int_t nhits, Int_t ntracks)
std::vector< int > usabletracks