#ifndef CBMSTTRECO_H #define CBMSTTRECO_H //pablo #include "CbmTask.h" #include "CbmSttRecoTrk.h" #include "TVector3.h" #include "TVector2.h" #include "TObjArray.h" class TClonesArray; class TObjArray; class CbmSttReco : public CbmTask { public: /** Default constructor **/ CbmSttReco(); /** Destructor **/ ~CbmSttReco(); /** Virtual method Init **/ virtual InitStatus Init(); /** Virtual method Exec **/ virtual void Exec(Option_t* opt); CbmSttRecoTrk * AddRecoTrk(Int_t trackID,Int_t eventID,TVector3 xy_par,TVector2 z_par, Int_t fitstatus, Double_t momentum); TVector3 Fit(TObjArray *); Double_t Curvature(Double_t radius); TObjArray * IntersectionFinder(TVector3 , TClonesArray *, Int_t); TObjArray * ZFinder(TVector3 , TClonesArray *, Int_t); TVector2 Zfit(TVector3 , TObjArray *); Double_t Momentum(Int_t trackID,Int_t eventID,TVector3 xy_par,TVector2 z_par, Int_t fitstatus); TObjArray * DigiToArray(TClonesArray *, Int_t); void SetRMode(Bool_t); Bool_t GetRMode(); TArrayI * MCTrkIndex(TClonesArray *); TArrayD * SCosL(TVector3, TObjArray *); private: /** Output array of CbmSttDigis **/ TClonesArray* fDigiArray; // digi array TClonesArray* fRecoArray; // reco array TArrayI * fTrkArray; // array of tracks TArrayD * fLengthArray; // array of track length * cos(lambda) TObjArray* fXYArray; // xy points to be fitted TObjArray* fZPointsArray; // TObjArray containing TVector3 of the // centres of the skewed hit tubes TObjArray* fRightZPointsArray; Bool_t frmode; // choice: rsim = 0; rtrue = 1 Int_t fitstatus; ClassDef(CbmSttReco,1); }; #endif