// iklm #ifndef CbmL1TrackShort_H #define CbmL1TrackShort_H #include #include #include "CbmL1MCTrack.h" struct CbmL1Track { // from CbmL1Track public: CbmL1Track(){} int GetNOfHits(){ return StsHits.size(); } void AddMCTrack(CbmL1MCTrack* mcTr){mcTracks.push_back(mcTr);} vector< CbmL1MCTrack* >& GetMCTracks(){ return mcTracks;} const vector< CbmL1MCTrack* >& GetMCTracks() const{ return mcTracks;} int GetNMCTracks(){ return mcTracks.size();} bool IsGhost(){return !( mcTracks.size() );} void SetMaxPurity(float maxPurity_){maxPurity = maxPurity_;} float GetMaxPurity(){return maxPurity;} static bool compareChi2(const CbmL1Track &a, const CbmL1Track &b){ return (a.chi2 < b.chi2); } static bool comparePChi2(const CbmL1Track *a, const CbmL1Track *b){ return (a->chi2 < b->chi2); } double TLast[6], CLast[15]; vector StsHits; int nStations; double* GetTrack() {return T;} double* GetCovMatrix() {return C;} const double* GetTrack() const {return T;} const double* GetCovMatrix() const {return C;} double GetMass() const {return mass;} bool IsElectron() const {return is_electron;} int GetRefNDF() const {return NDF;} double GetRefChi2() const {return chi2;} std::map hitMap; // how many hits from each mcTrack belong to current recoTrack private: // next members filled and used in Performance vector< CbmL1MCTrack* > mcTracks; // array of assosiated mcTracks float maxPurity; // [%]. maximum persent of hits, which belong to one mcTrack. // from CbmL1TrackPar public: float fTrackTime; double T[6], C[15], chi2 ; int NDF ; double mass; // mass hypothesis bool is_electron; }; #endif