MpdItsKalmanTrack.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #ifndef MPDITSKALMANTRACK_H
  2. #define MPDITSKALMANTRACK_H
  3. /// \ingroup rec
  4. /// \class MpdItsKalmanTrack
  5. /// \brief Kalman track in MPD ITS
  6. ///
  7. /// \author Alexander Zinchenko, LHEP JINR Dubna
  8. #include "MpdKalmanTrack.h"
  9. #include "MpdKalmanHit.h"
  10. #include "MpdVector.h"
  11. #include <TClonesArray.h>
  12. class MpdTpcKalmanTrack;
  13. class MpdEctKalmanTrack;
  14. class MpdVector;
  15. class TVector3;
  16. class MpdItsKalmanTrack : public MpdKalmanTrack
  17. {
  18. public:
  19. MpdItsKalmanTrack(); ///< Default ctor
  20. virtual ~MpdItsKalmanTrack(); ///< Destructor
  21. MpdItsKalmanTrack(MpdKalmanHit *hitOut, MpdKalmanHit *hitIn,
  22. TVector3 &vertex, Double_t pt); ///< Ctor from 2 hits
  23. MpdItsKalmanTrack (const MpdItsKalmanTrack& track); ///< copy constructor
  24. MpdItsKalmanTrack& operator=(const MpdItsKalmanTrack& track); // assignment operator
  25. MpdItsKalmanTrack (const MpdTpcKalmanTrack& track); ///< constructor from TPC track
  26. MpdItsKalmanTrack (const MpdEctKalmanTrack& track); ///< constructor from ECT track
  27. MpdItsKalmanTrack (const MpdVector& track1, TVector3& vec); ///< constructor from CellTrack track /// MpdVector&MpdCellTrack&
  28. Int_t GetNofTrHits() const { return fTrHits->GetEntriesFast(); } ///< get number of track hits
  29. TClonesArray *GetTrHits() const { return fTrHits; } ///< get track hits
  30. // Int_t GetNofKHits() const { return fKHits->GetEntriesFast(); } //attention!!!
  31. //TClonesArray *GetKHits() const { return fKHits; } // attention!!!
  32. Int_t GetNofIts() const { return fNofIts; } ///< get number of ITS hits
  33. Double_t GetChi2Its() const { return fChi2Its; } ///< get Chi2 of ITS fit
  34. void StartBack(); ///< prepare for back tracing
  35. void SetNofIts(Int_t nhits) { fNofIts = nhits; } ///< set number of ITS hits
  36. void SetChi2Its(Double_t chi2) { fChi2Its = chi2; } ///< set Chi2 of ITS fit
  37. Bool_t IsSortable() const { return kTRUE; }
  38. Int_t Compare(const TObject* track) const; ///< sort in descending order in Pt
  39. void Reset(); ///< reset track (similar to destructor)
  40. private:
  41. void EvalCovar(const MpdKalmanHit *hitOut, const MpdKalmanHit *hitIn, Double_t *posOut, Double_t *posIn); ///< evaluate covar. matrix
  42. // TClonesArray *fKHits; //attention!!!
  43. TClonesArray *fTrHits; ///< track hits
  44. Int_t fNofIts; ///< number of ITS hits
  45. Double32_t fChi2Its; ///< Chi2 of the fit in ITS
  46. ClassDef(MpdItsKalmanTrack,1);
  47. };
  48. #endif