/** CbmMuchHit.h *@author Mikhail Ryzhinskiy *@version 1.0 *@since 22.03.07 ** ** Data class for a reconstructed hit in the MUCH ** Data level RECO ** Derived from CbmHit. ** Additional members: Channel numbers and covariance in x and y **/ #ifndef CBMMUCHHIT_H #define CBMMUCHHIT_H 1 #include "TVector3.h" #include "CbmHit.h" class CbmMuchHit : public CbmHit { public: /** Default constructor (not for use) **/ CbmMuchHit(); /** Standard constructor *@param detId Unique detector ID *@param pos Position in global c.s. [cm] *@param dPos Errors of position in global c.s. [cm] *@param dxy Covariance of x and y *@param iDigi Digi index *@param time Time since event start [ns] *@param dTime Time resolution [ns] **/ CbmMuchHit(Int_t detId, TVector3& pos, TVector3& dPos, Double_t dxy, Int_t iDigi, Double_t* times, Double_t* dTimes); /** Destructor **/ virtual ~CbmMuchHit(); /** Screen output **/ virtual void Print(Option_t* opt) const; /** Accessors **/ /** Gets system ID **/ Int_t GetSystemId() const { return ( fDetectorID & (15<<24) ) >> 24; } /** Gets station number within the system **/ Int_t GetStationNr() const { return ( fDetectorID & (255<<16) ) >> 16; } /** Gets sector number within the station **/ Int_t GetSectorNr() const { return ( fDetectorID & (32767<<1) ) >> 1; } /** Gets covariance in X and Y **/ Double_t GetCovXY() const { return fDxy; } /** Gets index of the Digi corresponding to this hit **/ Int_t GetDigi() const { return fDigi;} /** Gets time since event start **/ Double_t GetTime(Int_t i) { return fTime[i]; } Double_t* GetTimes() { return fTime;} /** Gets time resolution **/ Double_t GetDTime(Int_t i) { return fDTime[i]; } Double_t* GetDTimes() { return fDTime; } private: Double_t fTime[3]; /** Time since event start [ns] **/ Double_t fDTime[3]; /** Time resolution [ns] **/ Double32_t fDxy; /** Covariance in X and Y **/ Int_t fDigi; /** Index of the Digi corresponding to this hit **/ ClassDef(CbmMuchHit,1); }; #endif