MpdEtof.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. //------------------------------------------------------------------------------------------------------------------------
  2. #ifndef __MPD_ETOF_H
  3. #define __MPD_ETOF_H 1
  4. #include "TClonesArray.h"
  5. #include "TLorentzVector.h"
  6. #include "TVector3.h"
  7. #include "MpdTof.h"
  8. #include "MpdTofUtils.h"
  9. #include "FairDetector.h"
  10. class MpdTofPoint;
  11. class FairVolume;
  12. //------------------------------------------------------------------------------------------------------------------------
  13. class MpdEtof : public FairDetector
  14. {
  15. // Track information to be stored until the track leaves the active volume.
  16. Int_t fTrackID; //! track index
  17. Int_t fVolumeID; //! volume id
  18. TLorentzVector fPos; //! position
  19. TLorentzVector fMom; //! momentum
  20. Double_t fTime; //! time
  21. Double_t fLength; //! length
  22. Double_t fELoss; //! energy loss
  23. Int_t fPosIndex; //!
  24. TClonesArray *aTofHits; //! Hit collection
  25. const double nan;
  26. MpdTofPoint* AddPoint(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t time, Double_t length, Double_t eLoss);
  27. void ResetParameters();
  28. public:
  29. MpdEtof(const char* name = "ETOF", Bool_t active = kTRUE);
  30. virtual ~MpdEtof();
  31. virtual Bool_t ProcessHits(FairVolume* vol = 0);
  32. virtual void EndOfEvent();
  33. virtual void Register();
  34. virtual TClonesArray* GetCollection(Int_t iColl) const;
  35. virtual void Print() const;
  36. virtual void Reset();
  37. virtual void CopyClones(TClonesArray* cl1, TClonesArray* cl2, Int_t offset);
  38. virtual void ConstructGeometry();
  39. ClassDef(MpdEtof,3)
  40. };
  41. //------------------------------------------------------------------------------------------------------------------------
  42. inline void MpdEtof::ResetParameters()
  43. {
  44. fTrackID = fVolumeID = 0;
  45. fPos.SetXYZM(nan, nan, nan, nan);
  46. fMom.SetXYZM(nan, nan, nan, nan);
  47. fTime = fLength = fELoss = nan;
  48. fPosIndex = 0;
  49. };
  50. //------------------------------------------------------------------------------------------------------------------------
  51. #endif