00001 #ifndef RootEventData_TRecEmcShower_H 00002 #define RootEventData_TRecEmcShower_H 1 00003 00004 #include "TObject.h" 00005 #include <vector> 00006 #include <map> 00007 #include <iostream> 00008 00009 using namespace std; 00010 00011 class TRecEmcShower : public TObject { 00012 00013 public: 00014 00015 TRecEmcShower(); 00016 ~TRecEmcShower(); 00017 00018 00019 // void Clear(Option_t *option =""); 00020 00021 // void PrInt_t(Option_t *option="") const; 00022 //Get 00023 Int_t trackId()const { return m_trackId; } 00024 Int_t numHits()const { return m_numHits; } 00025 Int_t status() const { return m_status; } 00026 Int_t cellId() const { return m_cellId; } 00027 Int_t module() const { return m_module; } 00028 Double_t x() const { return m_x; } 00029 Double_t y() const { return m_y; } 00030 Double_t z() const { return m_z; } 00031 Double_t theta() const { return m_theta; } 00032 Double_t dtheta() const { return m_dTheta; } 00033 Double_t phi() const { return m_phi; } 00034 Double_t dphi() const { return m_dPhi; } 00035 Double_t energy() const { return m_energy; } 00036 Double_t dE() const { return m_dE; } 00037 Double_t eSeed() const {return m_eSeed;} 00038 Double_t e3x3() const {return m_e3x3;} 00039 Double_t e5x5() const {return m_e5x5;} 00040 Double_t eAll() const { return m_eall; } 00041 Double_t eLepton() const { return m_elepton; } 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 map<Int_t, Double_t> cellIdMap() const { return m_cellIdMap; } 00050 vector<Int_t> cellId3x3() const { return m_cellId3x3; } 00051 vector<Int_t> cellId5x5() const { return m_cellId5x5; } 00052 Int_t clusterId() const { return m_clusterId; } 00053 00054 //Set 00055 void setTrackId(const Int_t trackId ) { m_trackId = trackId; } 00056 void setNumHits(const Int_t hit ) { m_numHits = hit; } 00057 void setStatus(const Int_t st ) { m_status = st; } 00058 void setCellId(const Int_t id ) { m_cellId = id; } 00059 void setModule(const Int_t mod) { m_module = mod; } 00060 void setX(const Double_t x ) { m_x = x ; } 00061 void setY(const Double_t y ) { m_y = y ; } 00062 void setZ(const Double_t z ) { m_z = z ; } 00063 void setEnergy(const Double_t e ) { m_energy = e ; } 00064 void setDE(const Double_t de ) { m_dE = de; } 00065 void setTheta(const Double_t theta ) { m_theta = theta ; } 00066 void setDtheta(const Double_t dt ) { m_dTheta = dt; } 00067 void setPhi(const Double_t pi ) { m_phi = pi ; } 00068 void setDphi(const Double_t dpi ) { m_dPhi = dpi ; } 00069 void setESeed(const Double_t eSeed ) { m_eSeed = eSeed ; } 00070 void setE3x3(const Double_t e3x3 ) { m_e3x3 = e3x3 ; } 00071 void setE5x5(const Double_t e5x5 ) { m_e5x5 = e5x5 ; } 00072 void setEAll(const Double_t eall ) { m_eall = eall ; } 00073 void setELepton(const Double_t elepton ) { m_elepton = elepton ; } 00074 void setTime(const Double_t time) { m_time = time; } 00075 void setSecondMoment(const Double_t secondMoment) { m_secondMoment = secondMoment; } 00076 void setLatMoment(const Double_t latMoment) { m_latMoment = latMoment; } 00077 void setA20Moment(const Double_t a20Moment) { m_a20Moment = a20Moment; } 00078 void setA42Moment(const Double_t a42Moment) { m_a42Moment = a42Moment; } 00079 void setErr(const Double_t err[6] ); 00080 00081 void setCellIdMap(const map<Int_t, Double_t>& cellIdMap) { m_cellIdMap = cellIdMap; } 00082 void setCellId3x3(const vector<Int_t>& cellId3x3) { m_cellId3x3 = cellId3x3; } 00083 void setCellId5x5(const vector<Int_t>& cellId5x5) { m_cellId5x5 = cellId5x5; } 00084 void setClusterId(const Int_t clusterId) { m_clusterId = clusterId; } 00085 void setTRecEmcShower(const TRecEmcShower *emcshower){ 00086 m_trackId = emcshower->trackId(); 00087 m_numHits = emcshower->numHits(); 00088 m_status = emcshower->status(); 00089 m_cellId = emcshower->cellId(); 00090 m_module = emcshower->module(); 00091 m_x = emcshower->x(); 00092 m_y = emcshower->y(); 00093 m_z = emcshower->z(); 00094 m_theta = emcshower->theta(); 00095 m_dTheta = emcshower->dtheta(); 00096 m_phi = emcshower->phi(); 00097 m_dPhi = emcshower->dphi(); 00098 m_energy = emcshower->energy(); 00099 m_dE = emcshower->dE(); 00100 m_eSeed = emcshower->eSeed(); 00101 m_e3x3 = emcshower->e3x3(); 00102 m_e5x5 = emcshower->e5x5(); 00103 m_eall = emcshower->eAll(); 00104 m_elepton = emcshower->eLepton(); 00105 m_time = emcshower->time(); 00106 m_secondMoment = emcshower->secondMoment(); 00107 m_latMoment = emcshower->latMoment(); 00108 m_a20Moment = emcshower->a20Moment(); 00109 m_a42Moment = emcshower->a42Moment(); 00110 for(int i=0;i<6;i++){ 00111 m_err[i] = emcshower->err(i); 00112 } 00113 m_cellIdMap = emcshower->cellIdMap(); 00114 m_cellId3x3 = emcshower->cellId3x3(); 00115 m_cellId5x5 = emcshower->cellId5x5(); 00116 m_clusterId = emcshower->clusterId(); 00117 } 00118 private: 00119 Int_t m_trackId; //Track Id wensp Add 2005-10-19 00120 Int_t m_numHits; // Total number of hits 00121 Int_t m_status; // Status 00122 Int_t m_cellId; // Cell ID 00123 Int_t m_module; // Module 00124 Double_t m_x; // Shower coordinates and errors 00125 Double_t m_y; 00126 Double_t m_z; 00127 Double_t m_theta; // Shower Counter angles and errors 00128 Double_t m_dTheta; 00129 Double_t m_phi; 00130 Double_t m_dPhi; 00131 Double_t m_energy; // Total energy observed in Emc 00132 Double_t m_dE; 00133 Double_t m_eSeed; 00134 Double_t m_e3x3; // Energy of 3x3 crystals, totally 9 ones 00135 Double_t m_e5x5; // Energy of 5x5 crystals, totally 25 ones 00136 Double_t m_eall; // Energy of all crystals in the shower 00137 Double_t m_elepton; // Energy of all various number of crystals 00138 Double_t m_time; // Time 00139 00140 Double_t m_secondMoment; //add 2006-07-03 00141 Double_t m_latMoment; // Lateral moment 00142 Double_t m_a20Moment; // Zernike moment 00143 Double_t m_a42Moment; 00144 Double_t m_err[6]; // Error Matrix: 0:dxx, 1:dyy, 2:dzz 00145 // 3:dxy, 4:dxz, 5:dyz 00146 00147 map<Int_t, Double_t> m_cellIdMap; // Hit list and its fraction 00148 vector<Int_t> m_cellId3x3; // Cell ID 3x3 00149 vector<Int_t> m_cellId5x5; // Cell ID 5x5 00150 Int_t m_clusterId; // Cluster ID 00151 00152 ClassDef(TRecEmcShower,4) 00153 }; 00154 00155 #endif //TrackRootData_TRecEmcShower_H 00156