00001
00008 #include "ValidationTree.h"
00009
00010 using namespace std;
00011
00012 ValidationTree::ValidationTree()
00013 {}
00014
00015 ValidationTree::~ValidationTree()
00016 {}
00017
00018 int ValidationTree::create()
00019 {
00020
00021 m_tree=new TTree("DetSimValiTree","DetSim Validation Tree");
00022
00024 m_tree->Branch("SimHitsEntries",&SimHitsEntries,"SimHitsEntries/I");
00025 m_tree->Branch("hitTime",hitTime,"hitTime[SimHitsEntries]/D");
00026 m_tree->Branch("hitx",hitx,"hitx[SimHitsEntries]/D");
00027 m_tree->Branch("hity",hity,"hity[SimHitsEntries]/D");
00028 m_tree->Branch("hitz",hitz,"hitz[SimHitsEntries]/D");
00029 m_tree->Branch("sensID",sensID,"sensID[SimHitsEntries]/I");
00030 m_tree->Branch("ancestor",ancestorPdg,"ancestor[SimHitsEntries]/I");
00031 m_tree->Branch("wavelength",wavelength,"wavelength[SimHitsEntries]/D");
00032 m_tree->Branch("polx",polx,"polx[SimHitsEntries]/D");
00033 m_tree->Branch("poly",poly,"poly[SimHitsEntries]/D");
00034 m_tree->Branch("polz",polz,"polz[SimHitsEntries]/D");
00035 m_tree->Branch("px",px,"px[SimHitsEntries]/D");
00036 m_tree->Branch("py",py,"py[SimHitsEntries]/D");
00037 m_tree->Branch("pz",pz,"pz[SimHitsEntries]/D");
00038 m_tree->Branch("weight",weight,"weight[SimHitsEntries]/F");
00039
00040
00041 m_tree->Branch("MuonE",&MuonE,"MuonE/D");
00042 m_tree->Branch("MuonX",&MuonX,"MuonX/D");
00043 m_tree->Branch("MuonY",&MuonY,"MuonY/D");
00044 m_tree->Branch("MuonZ",&MuonZ,"MuonZ/D");
00045 m_tree->Branch("MuonPx",&MuonPx,"MuonPx/D");
00046 m_tree->Branch("MuonPy",&MuonPy,"MuonPy/D");
00047 m_tree->Branch("MuonPz",&MuonPz,"MuonPz/D");
00048 m_tree->Branch("MuonTime",&MuonTime,"MuonTime/D");
00049 m_tree->Branch("StopFlag",&StopFlag,"StopFlag/I");
00050
00051
00053 m_tree->Branch("MuonTrkLengthInOws",&MuonTrkLengthInOws,"MuonTrkLengthInOws/D");
00054 m_tree->Branch("MuonTrkLengthInIws",&MuonTrkLengthInIws,"MuonTrkLengthInIws/D");
00055 m_tree->Branch("MuonTrkLengthInLS",&MuonTrkLengthInLS,"MuonTrkLengthInLS/D");
00056 m_tree->Branch("MuonTrkLengthInGdLS",&MuonTrkLengthInGdLS,"MuonTrkLengthInGdLS/D");
00057 m_tree->Branch("dEInn",&dEInn,"dEInn/D");
00058 m_tree->Branch("dEOut",&dEOut,"dEOut/D");
00059
00061 m_tree->Branch("EDepInGdLS", &EDepInGdLS, "EDepInGdLS/D");
00062 m_tree->Branch("EDepInLS", &EDepInLS, "EDepInLS/D");
00063 m_tree->Branch("EDepInIAV", &EDepInIAV, "EDepInIAV/D");
00064 m_tree->Branch("EDepInOAV", &EDepInOAV, "EDepInOAV/D");
00065 m_tree->Branch("EDepInOIL", &EDepInOIL, "EDepInOIL/D");
00066
00067 m_tree->Branch("QEDepInGdLS", &QEDepInGdLS, "QEDepInGdLS/D");
00068 m_tree->Branch("QEDepInLS", &QEDepInLS, "QEDepInLS/D");
00069 m_tree->Branch("QEDepInIAV", &QEDepInIAV, "QEDepInIAV/D");
00070 m_tree->Branch("QEDepInOAV", &QEDepInOAV, "QEDepInOAV/D");
00071 m_tree->Branch("QEDepInOIL", &QEDepInOIL, "QEDepInOIL/D");
00072
00073 m_tree->Branch("tQESumGdLS", &tQESumGdLS, "tQESumGdLS/D");
00074 m_tree->Branch("xQESumGdLS", &xQESumGdLS, "xQESumGdLS/D");
00075 m_tree->Branch("yQESumGdLS", &yQESumGdLS, "yQESumGdLS/D");
00076 m_tree->Branch("zQESumGdLS", &zQESumGdLS, "zQESumGdLS/D");
00077
00078 m_tree->Branch("tQESumLS", &tQESumLS, "tQESumLS/D");
00079 m_tree->Branch("xQESumLS", &xQESumLS, "xQESumLS/D");
00080 m_tree->Branch("yQESumLS", &yQESumLS, "yQESumLS/D");
00081 m_tree->Branch("zQESumLS", &zQESumLS, "zQESumLS/D");
00082
00083 m_tree->Branch("tQESumMO", &tQESumMO, "tQESumMO/D");
00084 m_tree->Branch("xQESumMO", &xQESumMO, "xQESumMO/D");
00085 m_tree->Branch("yQESumMO", &yQESumMO, "yQESumMO/D");
00086 m_tree->Branch("zQESumMO", &zQESumMO, "zQESumMO/D");
00087
00088 m_tree->Branch("tCtrQE", &tCtrQE, "tCtrQE/D");
00089 m_tree->Branch("xCtrQE", &xCtrQE, "xCtrQE/D");
00090 m_tree->Branch("yCtrQE", &yCtrQE, "yCtrQE/D");
00091 m_tree->Branch("zCtrQE", &zCtrQE, "zCtrQE/D");
00092
00093
00094
00095 m_tree->Branch("t_gen", &t_gen, "t_gen/D");
00096 m_tree->Branch("x_gen", &x_gen, "x_gen/D");
00097 m_tree->Branch("y_gen", &y_gen, "y_gen/D");
00098 m_tree->Branch("z_gen", &z_gen, "z_gen/D");
00099
00100 m_tree->Branch("t_cap", &t_cap, "t_cap/D");
00101 m_tree->Branch("x_cap", &x_cap, "x_cap/D");
00102 m_tree->Branch("y_cap", &y_cap, "y_cap/D");
00103 m_tree->Branch("z_cap", &z_cap, "z_cap/D");
00104
00105 m_tree->Branch("capTarget", &capTarget, "capTarget/I");
00106
00108 m_tree->Branch("pdgId_Trk1", &pdgId_Trk1, "pdgId_Trk1/I");
00109
00110 m_tree->Branch("t_Trk1", &t_Trk1, "t_Trk1/D");
00111 m_tree->Branch("x_Trk1", &x_Trk1, "x_Trk1/D");
00112 m_tree->Branch("y_Trk1", &y_Trk1, "y_Trk1/D");
00113 m_tree->Branch("z_Trk1", &z_Trk1, "z_Trk1/D");
00114
00115 m_tree->Branch("e_Trk1", &e_Trk1, "e_Trk1/D");
00116 m_tree->Branch("px_Trk1", &px_Trk1, "px_Trk1/D");
00117 m_tree->Branch("py_Trk1", &py_Trk1, "py_Trk1/D");
00118 m_tree->Branch("pz_Trk1", &pz_Trk1, "pz_Trk1/D");
00119
00120 m_tree->Branch("ke_Trk1", &ke_Trk1, "ke_Trk1/D");
00121
00122 m_tree->Branch("tEnd_Trk1", &tEnd_Trk1, "tEnd_Trk1/D");
00123 m_tree->Branch("xEnd_Trk1", &xEnd_Trk1, "xEnd_Trk1/D");
00124 m_tree->Branch("yEnd_Trk1", &yEnd_Trk1, "yEnd_Trk1/D");
00125 m_tree->Branch("zEnd_Trk1", &zEnd_Trk1, "zEnd_Trk1/D");
00126
00127 m_tree->Branch("TrkLength_GD_Trk1", &TrkLength_GD_Trk1, "TrkLength_GD_Trk1/D");
00128 m_tree->Branch("TrkLength_iAV_Trk1",&TrkLength_iAV_Trk1, "TrkLength_iAV_Trk1/D");
00129 m_tree->Branch("TrkLength_LS_Trk1", &TrkLength_LS_Trk1, "TrkLength_LS_Trk1/D");
00130 m_tree->Branch("TrkLength_oAV_Trk1",&TrkLength_oAV_Trk1, "TrkLength_oAV_Trk1/D");
00131 m_tree->Branch("TrkLength_Oil_Trk1",&TrkLength_Oil_Trk1, "TrkLength_Oil_Trk1/D");
00132
00134 m_tree->Branch("pdgId_Trk2", &pdgId_Trk2, "pdgId_Trk2/I");
00135
00136 m_tree->Branch("t_Trk2", &t_Trk2, "t_Trk2/D");
00137 m_tree->Branch("x_Trk2", &x_Trk2, "x_Trk2/D");
00138 m_tree->Branch("y_Trk2", &y_Trk2, "y_Trk2/D");
00139 m_tree->Branch("z_Trk2", &z_Trk2, "z_Trk2/D");
00140
00141 m_tree->Branch("e_Trk2", &e_Trk2, "e_Trk2/D");
00142 m_tree->Branch("px_Trk2", &px_Trk2, "px_Trk2/D");
00143 m_tree->Branch("py_Trk2", &py_Trk2, "py_Trk2/D");
00144 m_tree->Branch("pz_Trk2", &pz_Trk2, "pz_Trk2/D");
00145
00146 m_tree->Branch("ke_Trk2", &ke_Trk2, "ke_Trk2/D");
00147
00148 m_tree->Branch("tEnd_Trk2", &tEnd_Trk2, "tEnd_Trk2/D");
00149 m_tree->Branch("xEnd_Trk2", &xEnd_Trk2, "xEnd_Trk2/D");
00150 m_tree->Branch("yEnd_Trk2", &yEnd_Trk2, "yEnd_Trk2/D");
00151 m_tree->Branch("zEnd_Trk2", &zEnd_Trk2, "zEnd_Trk2/D");
00152
00153 m_tree->Branch("TrkLength_GD_Trk2", &TrkLength_GD_Trk2, "TrkLength_GD_Trk2/D");
00154 m_tree->Branch("TrkLength_iAV_Trk2",&TrkLength_iAV_Trk2, "TrkLength_iAV_Trk2/D");
00155 m_tree->Branch("TrkLength_LS_Trk2", &TrkLength_LS_Trk2, "TrkLength_LS_Trk2/D");
00156 m_tree->Branch("TrkLength_oAV_Trk2",&TrkLength_oAV_Trk2, "TrkLength_oAV_Trk2/D");
00157 m_tree->Branch("TrkLength_Oil_Trk2",&TrkLength_Oil_Trk2, "TrkLength_Oil_Trk2/D");
00158
00159
00160 m_tree->Branch("number_opti_pho", &number_opti_pho, "number_opti_pho/I");
00161 m_tree->Branch("wavelength_opti_pho",wavelength_opti_pho,",wavelength_opti_pho[number_opti_pho]/D");
00162
00163 m_tree->Branch("tBuff1", &tBuff1, "tBuff1/D");
00164 m_tree->Branch("xBuff1", &xBuff1, "xBuff1/D");
00165 m_tree->Branch("yBuff1", &yBuff1, "yBuff1/D");
00166 m_tree->Branch("zBuff1", &zBuff1, "zBuff1/D");
00167
00168 m_tree->Branch("tBuff2", &tBuff2, "tBuff2/D");
00169 m_tree->Branch("xBuff2", &xBuff2, "xBuff2/D");
00170 m_tree->Branch("yBuff2", &yBuff2, "yBuff2/D");
00171 m_tree->Branch("zBuff2", &zBuff2, "zBuff2/D");
00172
00173 return 1;
00174 }
00175
00176 int ValidationTree::reset()
00177 {
00179 SimHitsEntries=0;
00180
00181
00182 MuonE=0;
00183 MuonX=0;
00184 MuonY=0;
00185 MuonZ=0;
00186 MuonPx=0;
00187 MuonPy=0;
00188 MuonPz=0;
00189 MuonTime=0;
00190 StopFlag=0;
00191
00193 MuonTrkLengthInOws=0;
00194 MuonTrkLengthInIws=0;
00195 MuonTrkLengthInLS=0;
00196 MuonTrkLengthInGdLS=0;
00197 dEInn=0;
00198 dEOut=0;
00199
00201 pdgId_Trk1=0;
00202
00203 t_Trk1=0;
00204 x_Trk1=0;
00205 y_Trk1=0;
00206 z_Trk1=0;
00207
00208 e_Trk1=0;
00209 px_Trk1=0;
00210 py_Trk1=0;
00211 pz_Trk1=0;
00212
00213 ke_Trk1=0;
00214
00215 TrkLength_GD_Trk1=0;
00216 TrkLength_iAV_Trk1=0;
00217 TrkLength_LS_Trk1=0;
00218 TrkLength_oAV_Trk1=0;
00219 TrkLength_Oil_Trk1=0;
00220
00222 pdgId_Trk2=0;
00223
00224 t_Trk2=0;
00225 x_Trk2=0;
00226 y_Trk2=0;
00227 z_Trk2=0;
00228
00229 e_Trk2=0;
00230 px_Trk2=0;
00231 py_Trk2=0;
00232 pz_Trk2=0;
00233
00234 ke_Trk2=0;
00235
00236 TrkLength_GD_Trk2=0;
00237 TrkLength_iAV_Trk2=0;
00238 TrkLength_LS_Trk2=0;
00239 TrkLength_oAV_Trk2=0;
00240 TrkLength_Oil_Trk2=0;
00241
00242 number_opti_pho=0;
00243
00244
00245
00246 t_gen = 0.;
00247 x_gen = 0.;
00248 y_gen = 0.;
00249 z_gen = 0.;
00250
00251 t_cap = 0.;
00252 x_cap = 0.;
00253 y_cap = 0.;
00254 z_cap = 0.;
00255
00256 capTarget = 0;
00257
00258 return 1;
00259 }
00260
00261 int ValidationTree::fill()
00262 {
00263 m_tree->Fill();
00264
00265 return 1;
00266 }
00267
00268 int ValidationTree::close()
00269 {
00270 return 1;
00271 }