00001
00008 #include "MuonTree.h"
00009
00010 #include <sstream>
00011
00012 MuonTree::MuonTree()
00013 {}
00014
00015 MuonTree::~MuonTree()
00016 {}
00017
00018 int MuonTree::create(const char* filename)
00019 {
00020 cout<<"TTree Created"<<endl;
00021
00022 m_file=new TFile(filename,"recreate");
00023 m_tree=new TTree("t","Analysis Tree");
00024
00026 m_tree->Branch("run", &run, "run/I");
00027 m_tree->Branch("evt", &evt, "evt/I");
00028
00030 m_tree->Branch("nhits_RPC",&nhits_RPC,"nhits_RPC/I");
00031 m_tree->Branch("nhits_AD1",&nhits_AD1,"nhits_AD1/I");
00032 m_tree->Branch("nhits_AD2",&nhits_AD2,"nhits_AD2/I");
00033 m_tree->Branch("nhits_IWS",&nhits_IWS,"nhits_IWS/I");
00034 m_tree->Branch("nhits_OWS",&nhits_OWS,"nhits_OWS/I");
00035
00037 m_tree->Branch("trk1_pdgId", &trk1_pdgId, "trk1_pdgId/I");
00038
00039 m_tree->Branch("trk1_t", &trk1_t, "trk1_t/D");
00040 m_tree->Branch("trk1_x", &trk1_x, "trk1_x/D");
00041 m_tree->Branch("trk1_y", &trk1_y, "trk1_y/D");
00042 m_tree->Branch("trk1_z", &trk1_z, "trk1_z/D");
00043 m_tree->Branch("trk1_r", &trk1_r, "trk1_r/D");
00044
00045 m_tree->Branch("trk1_e", &trk1_e, "trk1_e/D");
00046 m_tree->Branch("trk1_px", &trk1_px, "trk1_px/D");
00047 m_tree->Branch("trk1_py", &trk1_py, "trk1_py/D");
00048 m_tree->Branch("trk1_pz", &trk1_pz, "trk1_pz/D");
00049 m_tree->Branch("trk1_phi", &trk1_phi,"trk1_phi/D");
00050
00051 m_tree->Branch("trk1_ke", &trk1_ke, "trk1_ke/D");
00052 m_tree->Branch("trk1_ve", &trk1_ve, "trk1_ve/D");
00053
00055 m_tree->Branch("npe",npe,"npe[8][24]/D");
00056 m_tree->Branch("tpe",tpe,"tpe[8][24]/D");
00057
00059 m_tree->Branch("TotDeInOil1", &TotDeInOil1, "TotDeInOil1/D");
00060 m_tree->Branch("TotDeInOil2", &TotDeInOil2, "TotDeInOil2/D");
00061 m_tree->Branch("TotDeInLso1", &TotDeInLso1, "TotDeInLso1/D");
00062 m_tree->Branch("TotDeInLso2", &TotDeInLso2, "TotDeInLso2/D");
00063
00064 m_tree->Branch("MuDeInOil1", &MuDeInOil1, "MuDeInOil1/D");
00065 m_tree->Branch("MuDeInOil2", &MuDeInOil2, "MuDeInOil2/D");
00066 m_tree->Branch("MuDeInLso1", &MuDeInLso1, "MuDeInLso1/D");
00067 m_tree->Branch("MuDeInLso2", &MuDeInLso2, "MuDeInLso2/D");
00068
00069 m_tree->Branch("MuDxInOil1", &MuDxInOil1, "MuDxInOil1/D");
00070 m_tree->Branch("MuDxInOil2", &MuDxInOil2, "MuDxInOil2/D");
00071 m_tree->Branch("MuDxInLso1", &MuDxInLso1, "MuDxInLso1/D");
00072 m_tree->Branch("MuDxInLso2", &MuDxInLso2, "MuDxInLso2/D");
00073
00075 m_tree->Branch("his_t1", &his_t1, "his_t1/D");
00076 m_tree->Branch("his_x1", &his_x1, "his_x1/D");
00077 m_tree->Branch("his_y1", &his_y1, "his_y1/D");
00078 m_tree->Branch("his_z1", &his_z1, "his_z1/D");
00079
00081 m_tree->Branch("oil1_p_x", &oil1_p_x, "oil1_p_x/D");
00082 m_tree->Branch("oil1_p_y", &oil1_p_y, "oil1_p_y/D");
00083 m_tree->Branch("oil1_p_z", &oil1_p_z, "oil1_p_z/D");
00085 m_tree->Branch("oil1_e_x", &oil1_e_x, "oil1_e_x/D");
00086 m_tree->Branch("oil1_e_y", &oil1_e_y, "oil1_e_y/D");
00087 m_tree->Branch("oil1_e_z", &oil1_e_z, "oil1_e_z/D");
00089 m_tree->Branch("oil1_p_px", &oil1_p_px, "oil1_p_px/D");
00090 m_tree->Branch("oil1_p_py", &oil1_p_py, "oil1_p_py/D");
00091 m_tree->Branch("oil1_p_pz", &oil1_p_pz, "oil1_p_pz/D");
00092
00094 m_tree->Branch("oil2_p_x", &oil2_p_x, "oil2_p_x/D");
00095 m_tree->Branch("oil2_p_y", &oil2_p_y, "oil2_p_y/D");
00096 m_tree->Branch("oil2_p_z", &oil2_p_z, "oil2_p_z/D");
00098 m_tree->Branch("oil2_e_x", &oil2_e_x, "oil2_e_x/D");
00099 m_tree->Branch("oil2_e_y", &oil2_e_y, "oil2_e_y/D");
00100 m_tree->Branch("oil2_e_z", &oil2_e_z, "oil2_e_z/D");
00102 m_tree->Branch("oil2_p_px", &oil2_p_px, "oil2_p_px/D");
00103 m_tree->Branch("oil2_p_py", &oil2_p_py, "oil2_p_py/D");
00104 m_tree->Branch("oil2_p_pz", &oil2_p_pz, "oil2_p_pz/D");
00105
00106
00108 m_tree->Branch("phiRec",&phiRec,"phiRec/D");
00109
00110 m_tree->Branch("oil1_p_x_rec", &oil1_p_x_rec, "oil1_p_x_rec/D");
00111 m_tree->Branch("oil1_p_y_rec", &oil1_p_y_rec, "oil1_p_y_rec/D");
00112 m_tree->Branch("oil1_p_z_rec", &oil1_p_z_rec, "oil1_p_z_rec/D");
00113
00114 m_tree->Branch("oil2_p_x_rec", &oil2_p_x_rec, "oil2_p_x_rec/D");
00115 m_tree->Branch("oil2_p_y_rec", &oil2_p_y_rec, "oil2_p_y_rec/D");
00116 m_tree->Branch("oil2_p_z_rec", &oil2_p_z_rec, "oil2_p_z_rec/D");
00117
00118
00119 m_tree->Branch("nNeutron", &nNeutron, "nNeutron/I");
00120 m_tree->Branch("nInOws", &nInOws, "nInOws/I");
00121 m_tree->Branch("nInOil1", &nInOil1, "nInOil1/I");
00122 m_tree->Branch("nInOil2", &nInOil2, "nInOil2/I");
00123 m_tree->Branch("nInLso1", &nInLso1, "nInLso1/I");
00124 m_tree->Branch("nInLso2", &nInLso2, "nInLso2/I");
00125
00126
00127 return 1;
00128 }
00129
00130 int MuonTree::reset()
00131 {
00132 run=0;
00133 evt=0;
00134
00136 nhits_RPC=0;
00137 nhits_AD1=0;
00138 nhits_AD2=0;
00139 nhits_IWS=0;
00140 nhits_OWS=0;
00141
00143 trk1_pdgId=0;
00144
00145 trk1_t=0;
00146 trk1_x=0;
00147 trk1_y=0;
00148 trk1_z=0;
00149 trk1_r=0;
00150
00151 trk1_e=0;
00152 trk1_px=0;
00153 trk1_py=0;
00154 trk1_pz=0;
00155 trk1_phi=0;
00156
00157 trk1_ke=0;
00158 trk1_ve=0;
00159
00160 TotDeInOil1=0;
00161 TotDeInOil2=0;
00162 TotDeInLso1=0;
00163 TotDeInLso2=0;
00164
00165 MuDeInOil1=0;
00166 MuDeInOil2=0;
00167 MuDeInLso1=0;
00168 MuDeInLso2=0;
00169
00170 MuDxInOil1=0;
00171 MuDxInOil2=0;
00172 MuDxInLso1=0;
00173 MuDxInLso2=0;
00174
00175
00176 oil1_p_x=0;
00177 oil1_p_y=0;
00178 oil1_p_z=0;
00179
00180 oil1_e_x=0;
00181 oil1_e_y=0;
00182 oil1_e_z=0;
00183
00184 oil1_p_px=0;
00185 oil1_p_py=0;
00186 oil1_p_pz=0;
00187
00188 oil2_p_x=0;
00189 oil2_p_y=0;
00190 oil2_p_z=0;
00191
00192 oil2_e_x=0;
00193 oil2_e_y=0;
00194 oil2_e_z=0;
00195
00196 oil2_p_px=0;
00197 oil2_p_py=0;
00198 oil2_p_pz=0;
00199
00200 phiRec=0;
00201
00202 oil1_p_x_rec=0;
00203 oil1_p_y_rec=0;
00204 oil1_p_z_rec=0;
00205
00206 oil2_p_x_rec=0;
00207 oil2_p_y_rec=0;
00208 oil2_p_z_rec=0;
00209
00211 for(int ring=0;ring<8;ring++) {
00212 for(int column=0;column<24;column++) {
00213 npe[ring][column]=0;
00214 tpe[ring][column]=99999;
00215 }
00216 }
00217
00219 nNeutron = 0;
00220 nInOws = 0;
00221 nInOil1 = 0;
00222 nInOil2 = 0;
00223 nInLso1 = 0;
00224 nInLso2 = 0;
00225
00226 return 1;
00227 }
00228
00229 int MuonTree::fill()
00230 {
00231 m_tree->Fill();
00232
00233 return 1;
00234 }
00235
00236 int MuonTree::close()
00237 {
00238 m_file->Write();
00239
00240 return 1;
00241 }
00242
00243 string MuonTree::IntToString(int intValue) {
00244
00245 ostringstream oss (ostringstream::out);
00246
00247 oss <<intValue;
00248
00249 string strRetVal=oss.str();
00250
00251 return(strRetVal);
00252 }