/* *==================================================================== * * CBM Level 1 Reconstruction * * Authors: I.Kisel, S.Gorbunov * * e-mail : ikisel@kip.uni-heidelberg.de * *==================================================================== * * L1 track class * *==================================================================== */ #ifndef CbmL1Track_H #define CbmL1Track_H #include "CbmL1TrackPar.h" #include "CbmL1StsHit.h" #include "CbmL1TrdHit.h" struct CbmL1Triplet: public CbmL1TrackPar { CbmL1StsHit *phitl, *phitm, *phitr; int first_triplet, last_triplet, level, good; }; struct CbmL1Track: public CbmL1TrackPar { int GetNOfHits(){ return StsHits.size(); } CbmKFHit *GetHit( int i ){ return StsHits[i]->GetKFHit(); } vector StsHits; vector TrdHits; vector Triplets; bool good; int length, isec; double TLast[6], CLast[15]; int nStations; bool is_long; double Ttmp[6], Ctmp[15]; // temporary variables static bool compareChi2(const CbmL1Track &a, const CbmL1Track &b){ return (a.chi2 < b.chi2); } }; class TInterfaceB :public CbmKFTrackInterface{ public: TInterfaceB( CbmL1Track *t) :fT(t) {}; double *GetTrack(){ return fT->TLast; } double *GetCovMatrix(){ return fT->CLast; } double &GetRefChi2(){ return fT->GetRefChi2(); } int &GetRefNDF(){ return fT->GetRefNDF(); } double GetMass(){ return fT->GetMass(); } bool IsElectron(){ return fT->IsElectron(); } int GetNOfHits(){ return fT->GetNOfHits(); } CbmKFHit *GetHit( int i ){ return fT->GetHit( i ); } protected: CbmL1Track *fT; }; #endif