#ifndef CBMLITTRACK_H #define CBMLITTRACK_H 1 #include "CbmTrackParam.h" #include "CbmStsTrack.h" #include "CbmMuchTrack.h" #include "CbmTrdTrack.h" #include "TObject.h" #include "TArrayI.h" #include class CbmTrkHit; class CbmLitTrack : public TObject { public: // Default constructor CbmLitTrack(); // Destructor virtual ~CbmLitTrack(); // Add a Hit to the list void AddHit(Int_t hitIndex, const CbmTrkHit* hit); // Output to screen virtual void Print(); // Sorts the hits in downstream direction void SortHits(); // Accessors Int_t GetNofHits() const { return fHits.GetSize(); } Int_t GetHitIndex(Int_t iHit) const { return fHits.At(iHit); } Int_t GetPidHypo() const { return fPidHypo; } Int_t GetFlag() const { return fFlag; } Double_t GetChi2() const { return fChi2; } Int_t GetNDF() const { return fNDF; } CbmTrackParam* GetParamFirst() { return &fParamFirst; } CbmTrackParam* GetParamLast() { return &fParamLast ; } Int_t GetPreviousTrackId() const { return fPreviousTrackId;}; // Modifiers void SetPidHypo(Int_t pid) { fPidHypo = pid; } void SetFlag(Int_t flag) { fFlag = flag; } void SetChi2(Double_t chi2) { fChi2 = chi2; } void SetNDF(Int_t ndf) { fNDF = ndf; } void SetParamFirst( const CbmTrackParam* par) { fParamFirst = *par; } void SetParamLast( const CbmTrackParam* par){ fParamLast = *par; } void SetPreviousTrackId(Int_t id) { fPreviousTrackId = id; } // void MapFromSts(CbmStsTrack* track); void MapFromMuch(CbmMuchTrack* track); void MapFromTrd(CbmTrdTrack* track); CbmStsTrack MapToSts(); CbmMuchTrack MapToMuch(); CbmTrdTrack MapToTrd(); private: // Array containg the indizes of the hits attached to the track TArrayI fHits; // PID hypothesis used by the track fitter Int_t fPidHypo; // Track parameters at first and last fitted hit CbmTrackParam fParamFirst; CbmTrackParam fParamLast; // Quality flag Int_t fFlag; // Chi square and NDF of track fit Double32_t fChi2; Int_t fNDF; // Return previouse track segment id Int_t fPreviousTrackId; // Maps from hit z position to hit index. std::map fHitMap; //! // Map only for temporary usage of pointers std::map fpHitMap; //! ClassDef(CbmLitTrack,1); }; #endif