#ifndef CBMSTTDIGI_HH #define CBMSTTDIGI_HH #include "CbmHit.h" #include "TVector3.h" class CbmSttDigi : public CbmHit { public: CbmSttDigi(); CbmSttDigi(Int_t trackID,Int_t eventID,Double_t pulse, Double_t radius_rec, Double_t radius_true,TString nam,TVector3 center,TVector3 tubemax, TVector3 tubemin); virtual ~CbmSttDigi(); /** Output to screen (not yet implemented) **/ virtual void Print(const Option_t* opt = 0) const {;} /** Public method Clear ** Resets the flag to -1 **/ void Clear(); /** Accessors **/ Int_t GetFlag() const { return fFlag; }; /** Modifiers **/ void SetFlag (Int_t flag) { fFlag = flag; }; // set void setPulse(double pulse){_Pulse = pulse;} void setRTrue(double rtrue){_Rtrue = rtrue;} void setRSim(double rsim){_Rsim = rsim;} void setDeDx(double dedx){_dEdx = dedx;} void setCosskew(double cosskew){_Cosskew = cosskew;} void setAcosskew(double arccos){_Acos = arccos;} void setCopyNo(int copynr){_CopyNo = copynr;} // void setMap(int map1,int map2,int map3) {_Lay_N=map1;_N_Lay=map2; _InOut=map3;} // get int GetTrackID() const {return fTrackID;} int GetEventID() const {return fEventID;} double pulse() const {return _Pulse;} double rTrue() const {return _Rtrue;} double rSim() const {return _Rsim;} double dedx() const {return _dEdx;} double cosskew() const {return _Cosskew;} double acosskew() const {return _Acos;} TVector3 *getcenter() ; TVector3 *getmin() ; TVector3 *getmax() ; void setcenter(TVector3 center){tube_c=center;} void setcenterxy(Double_t x,Double_t y){ tube_c.SetX(x);tube_c.SetY(y);} TString getNam() {return fnam;} protected: Int_t fFlag; private: Int_t fTrackID; Int_t fEventID; int _CopyNo; // int _InOut; // int _Lay_N; // number of layer // int _N_Lay; // number of tube in layer double _Pulse; // drift time double _Rtrue; // true radius (from geometrical distance track/wire) double _Rsim; // simulated radius (from TStraw) double _dEdx; double _Cosskew; // skew angle cosine double _Acos; TVector3 tube_c; TString fnam; // tube name TVector3 tube_max; // extremity 1 of the tube TVector3 tube_min; // extremity 2 of the tube ClassDef(CbmSttDigi,1); }; //_____________________________________________________________________ inline TVector3 *CbmSttDigi::getcenter() { if (tube_c.X()!=0 || tube_c.Y()!=0 || tube_c.Z()!=0) return &tube_c; return (TVector3*) NULL; } //_____________________________________________________________________ inline TVector3 *CbmSttDigi::getmin() { if (tube_min.X()!=0 || tube_min.Y()!=0 || tube_min.Z()!=0) return &tube_min; return (TVector3*) NULL; } inline TVector3 *CbmSttDigi::getmax() { if (tube_max.X()!=0 || tube_max.Y()!=0 || tube_max.Z()!=0) return &tube_max; return (TVector3*) NULL; } #endif