00001 #ifndef RootEventData_TEmcTrack_H 00002 #define RootEventData_TEmcTrack_H 1 00003 00004 #include "TObject.h" 00005 #include <cmath> 00006 00007 class TEmcTrack : public TObject { 00008 00009 public: 00010 00011 TEmcTrack(); 00012 ~TEmcTrack(); 00013 00014 00015 // void Clear(Option_t *option =""); 00016 00017 // void PrInt_t(Option_t *option="") const; 00018 //Get 00019 Int_t trackId()const { return m_trackId; } 00020 Int_t numHits()const { return m_numHits; } 00021 Int_t status() const { return m_status; } 00022 Int_t cellId() const { return m_cellId; } 00023 Int_t module() const { return m_module; } 00024 Double_t x() const { return m_x; } 00025 Double_t y() const { return m_y; } 00026 Double_t z() const { return m_z; } 00027 Double_t theta() const { 00028 return (m_x == 0.0 && m_y == 0.0 && m_z == 0.0) ? 0.0 : 00029 std::atan2(std::sqrt(m_x*m_x+m_y*m_y),m_z); } 00030 Double_t phi() const { 00031 return (m_x == 0.0 && m_y == 0.0) ? 0.0 : std::atan2(m_y,m_x);} 00032 Double_t dx() const; 00033 Double_t dy() const; 00034 Double_t dz() const; 00035 Double_t dtheta() const { return m_dTheta; } 00036 Double_t dphi() const { return m_dPhi; } 00037 Double_t energy() const { return m_energy; } 00038 Double_t dE() const { return m_dE; } 00039 Double_t eSeed() const {return m_eSeed;} 00040 Double_t e3x3() const {return m_e3x3;} 00041 Double_t e5x5() const {return m_e5x5;} 00042 Double_t time() const {return m_time;} 00043 Double_t secondMoment() const {return m_secondMoment;} 00044 Double_t latMoment() const {return m_latMoment;} 00045 Double_t a20Moment() const {return m_a20Moment;} 00046 Double_t a42Moment() const {return m_a42Moment;} 00047 Double_t err(Int_t i) const { return m_err[i]; } 00048 00049 //Set 00050 void setTrackId(const Int_t trackId ) { m_trackId = trackId; } 00051 void setNumHits(const Int_t hit ) { m_numHits = hit; } 00052 void setStatus(const Int_t st ) { m_status = st; } 00053 void setCellId(const Int_t id ) { m_cellId = id; } 00054 void setModule(const Int_t mod) { m_module = mod; } 00055 void setX(const Double_t x ) { m_x = x ; } 00056 void setY(const Double_t y ) { m_y = y ; } 00057 void setZ(const Double_t z ) { m_z = z ; } 00058 void setEnergy(const Double_t e ) { m_energy = e ; } 00059 void setDE(const Double_t de ) { m_dE = de; } 00060 void setDtheta(const Double_t dt ) { m_dTheta = dt; } 00061 void setDphi(const Double_t dpi ) { m_dPhi = dpi ; } 00062 void setESeed(const Double_t eSeed ) { m_eSeed = eSeed ; } 00063 void setE3x3(const Double_t e3x3 ) { m_e3x3 = e3x3 ; } 00064 void setE5x5(const Double_t e5x5 ) { m_e5x5 = e5x5 ; } 00065 void setTime(const Double_t time ) { m_time = time ; } 00066 void setSecondMoment(const Double_t secondMoment) { m_secondMoment = secondMoment; } 00067 void setLatMoment(const Double_t latMoment) { m_latMoment = latMoment; } 00068 void setA20Moment(const Double_t a20Moment) { m_a20Moment = a20Moment; } 00069 void setA42Moment(const Double_t a42Moment) { m_a42Moment = a42Moment; } 00070 void setErr(const Double_t err[6] ); 00071 00072 private: 00073 Int_t m_trackId; //Track Id wensp Add 2005-10-19 00074 Int_t m_numHits; // Total number of hits 00075 Int_t m_status; // Status 00076 Int_t m_cellId; // Cell ID 00077 Int_t m_module; // Module 00078 Double_t m_x; // Shower coordinates and errors 00079 Double_t m_y; 00080 Double_t m_z; 00081 Double_t m_dTheta; 00082 Double_t m_dPhi; 00083 Double_t m_energy; // Total energy observed in Emc 00084 Double_t m_dE; 00085 Double_t m_eSeed; 00086 Double_t m_e3x3; //Energy of 3x3 crystals, totally 9 ones 00087 Double_t m_e5x5; //Energy of 5x5 crystals, totally 25 ones 00088 Double_t m_time; //Time measurement 00089 Double_t m_secondMoment; //add 2006-07-03 00090 Double_t m_latMoment; //Lateral moment 00091 Double_t m_a20Moment; //Zernike moment 00092 Double_t m_a42Moment; 00093 Double_t m_err[6]; // Error Matrix: 0:dxx, 1:dyy, 2:dzz 00094 // 3:dxy, 4:dxz, 5:dyz 00095 00096 ClassDef(TEmcTrack,2) 00097 }; 00098 00099 00100 #endif //TrackRootData_TEmcTrack_H 00101