00001 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00002 // 15.02.2007, AUTHOR: THIES EHRICH 00003 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00004 00005 //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 00006 //:: IMPLEMENTATION OF METHODS DEFINED IN THE CLASS NtupleReader :: 00007 //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 00008 00009 //:::::::::::::::::: 00010 //:: HEADER FILES :: 00011 //:::::::::::::::::: 00012 00013 00014 #include <math.h> 00015 #include "NtupleReader/NtupleReaderFast.h" 00016 #include "NtupleReader/MyEvent.h" 00017 #include "NtupleReader/MyDatasetInfo.h" 00018 00019 //:::::::::::::::::::::::: 00020 //:: NAMESPACE SETTINGS :: 00021 //:::::::::::::::::::::::: 00022 00023 using namespace std; 00024 00025 //***************************************************************************** 00026 00027 //::::::::::::::::: 00028 //:: METHOD init :: 00029 //::::::::::::::::: 00030 00031 void NtupleReaderFast::init(const std::vector<std::string> & file_name, 00032 const std::string & tree_name, 00033 MyAnalysis * analysis) { 00034 00036 // INITIAL CHECKS // 00038 00039 if (file_name.size()<1) { 00040 cerr << endl 00041 << "Class NtupleReaderFast, method init: ERROR!\n" 00042 << "No file name given!\n"; 00043 exit(1); 00044 } 00045 00046 if (analysis==0) { 00047 cerr << endl 00048 << "Class NtupleReaderFast, method init: ERROR!\n" 00049 << "No analysis class given!\n"; 00050 exit(1); 00051 } 00052 00054 // OPEN THE ROOT FILE AND SET UP THE TREE // 00056 00057 // chain of ROOT files // 00058 m_chain = new TChain(tree_name.c_str()); 00059 for (unsigned int k=0; k<file_name.size(); k++) { 00060 m_chain->Add(file_name[k].c_str()); 00061 } 00062 00063 // set pointer to 0 // 00064 RunNumber = 0; 00065 EventNumber = 0; 00066 StreamATLFAST_ref = 0; 00067 Stream1_ref[153] = 0; 00068 Token[153] = 0; 00069 Run = 0; 00070 Event = 0; 00071 Time = 0; 00072 Weight = 0.; 00073 IEvent = 0; 00074 00075 NELE = 0; 00076 //PXELE = 0; 00077 //PYELE = 0; 00078 //PZELE = 0; 00079 //EEELE = 0; 00080 //KFELE = 0; //-sign(KFELE) 00081 e_NeuralNet = 0; //0 00082 e_isEM = 0; //0 00083 e_egamma_flag = 0; //0 00084 e_softe_flag = 0; //0 00085 e_E_over_p = 0; //0 00086 e_Et_in_cone_0 = 0;//0 00087 e_Et_in_cone_1 = 0;//0 00088 e_Et_in_cone_2 = 0;//0 00089 e_Et_in_cone_3 = 0;//0 00090 00091 // NMUX = 0; 00092 NMUO = 0; 00093 //PXMUO = 0; 00094 //PYMUO = 0; 00095 //PZMUO = 0; 00096 //EEMUO = 0; 00097 //KFMUO = 0;// wie oben 00098 mu_rec_flag = 0; //immer 1 00099 mu_Et_in_cone_0 = 0; 00100 mu_Et_in_cone_1 = 0; 00101 mu_Et_in_cone_2 = 0; 00102 mu_Et_in_cone_3 = 0; 00103 mu_Et_in_cone_4 = 0; 00104 mu_Et_in_cone_5 = 0; 00105 mu_Et_in_cone_6 = 0; 00106 mu_Et_in_cone_7 = 0; 00107 mu_nb_tracks_in_cone_0 = 0; 00108 mu_nb_tracks_in_cone_1 = 0; 00109 mu_nb_tracks_in_cone_2 = 0; 00110 mu_nb_tracks_in_cone_3 = 0; 00111 mu_nb_tracks_in_cone_4 = 0; 00112 mu_nb_tracks_in_cone_5 = 0; 00113 mu_nb_tracks_in_cone_6 = 0; 00114 mu_nb_tracks_in_cone_7 = 0; 00115 00116 NJET = 0; 00117 //PXJET = new Float_t[NJET]; 00118 //PYJET = 0; 00119 //PZJET = 0; 00120 //EEJET = 0; 00121 //BTAG = 0; 00122 jet_truthflavor = 0; 00123 00124 JETTAU = 0; 00125 taujet_p_x = 0; 00126 taujet_p_y = 0; 00127 taujet_p_z = 0; 00128 taujet_E = 0; 00129 taujet_flag = 0; 00130 taujet_charge = 0; 00131 taujet_llh = 0; 00132 taujet_lowPtTauEleDiscriminant = 0; 00133 taujet_tauENeuralNetwork = 0; 00134 taujet_etHadCalib = 0; 00135 taujet_etEMCalib = 0; 00136 taujet_nb_tracks = 0; 00137 taujet_track_px_1 = 0; 00138 taujet_track_py_1 = 0; 00139 taujet_track_pz_1 = 0; 00140 taujet_track_e_1 = 0; 00141 taujet_track_px_2 = 0; 00142 taujet_track_py_2 = 0; 00143 taujet_track_pz_2 = 0; 00144 taujet_track_e_2 = 0; 00145 taujet_track_px_3 = 0; 00146 taujet_track_py_3 = 0; 00147 taujet_track_pz_3 = 0; 00148 taujet_track_e_3 = 0; 00149 00150 00151 00152 //jetNumC4McJets = 0; 00153 //jetEtaC4McJets = 0; 00154 //jetPhiC4McJets = 0; 00155 //jetEC4McJets = 0; 00156 //jetEemC4McJets = 0; 00157 //jetEtC4McJets = 0; 00158 //jetMC4McJets = 0; 00159 // nb_truth_jets = 0; 00160 // truth_jet_p_x = 0; 00161 // truth_jet_p_y = 0; 00162 // truth_jet_p_z = 0; 00163 // truth_jet_E = 0; 00164 // truth_jet_flag = 0; 00165 // truth_jet_btag_weight = 0; 00166 00167 /*missing_Etx_Final = 0.; 00168 missing_Ety_Final = 0.; 00169 missing_Et_Final = 0.; 00170 missing_Etsum_Final = 0.; 00171 missing_Etx_CorrTopo = 0.; 00172 missing_Ety_CorrTopo = 0.; 00173 missing_Et_CorrTopo = 0.; 00174 missing_Etsum_CorrTopo = 0.; 00175 missing_Etx_Calib = 0.; 00176 missing_Ety_Calib = 0.; 00177 missing_Et_Calib = 0.; 00178 missing_Etsum_Calib = 0.; 00179 missing_Etx_Muonboy = 0.; 00180 missing_Ety_Muonboy = 0.; 00181 missing_Et_Muonboy = 0.; 00182 missing_Etsum_Muonboy = 0.; 00183 missing_Etx_Moore = 0.; 00184 missing_Ety_Moore = 0.; 00185 missing_Et_Moore = 0.; 00186 missing_Etsum_Moore = 0.; 00187 missing_Etx_Cryo = 0.; 00188 missing_Ety_Cryo = 0.; 00189 missing_Et_Cryo = 0.; 00190 missing_Etsum_Cryo = 0.; 00191 missing_Etx_CryoCone = 0.; 00192 missing_Ety_CryoCone = 0.; 00193 missing_Et_CryoCone = 0.; 00194 missing_Etsum_CryoCone = 0.; 00195 */ 00196 MET_EtSumTruthInt = 0; 00197 MET_EtSumTruthIntCentral = 0; 00198 MET_EtSumTruthIntFwd =0; 00199 MET_EtSumTruthMuons = 0; 00200 MET_EtSumTruthNonInt = 0; 00201 MET_ExTruthInt = 0; 00202 MET_ExTruthIntCentral = 0; 00203 MET_ExTruthIntFwd = 0; 00204 MET_ExTruthMuons = 0; 00205 MET_EyTruthInt = 0; 00206 MET_EyTruthIntCentral = 0; 00207 MET_EyTruthIntFwd = 0; 00208 MET_EyTruthMuons = 0; 00209 MET_EyTruthNonInt = 0; 00210 00211 /*nb_truth_particle_all = 0; 00212 nb_truth_particle = 0; 00213 truth_particle_pt = 0; 00214 truth_particle_status = 0; 00215 truth_particle_barcode = 0; 00216 truth_particle_pdgId = 0; 00217 truth_particle_nDaughters = 0; 00218 truth_particle_p_x = 0; 00219 truth_particle_p_y = 0; 00220 truth_particle_p_z = 0; 00221 truth_particle_E = 0; 00222 truth_particle_charge = 0; 00223 truth_particle_nParents = 0; 00224 truth_particle_mother0_barcode = 0; 00225 truth_particle_mother0_pdgId = 0; 00226 */ 00227 // set up the tree // 00228 00229 // m_chain->SetBranchAddress("BCORR",&BCORR); 00230 // m_chain->SetBranchAddress("RunNumber",&RunNumber); 00231 // m_chain->SetBranchAddress("RunNumber",&RunNumber); 00232 // m_chain->SetBranchAddress("EventNumber",&EventNumber); 00233 // m_chain->SetBranchAddress("StreamATLFAST_ref",&StreamATLFAST_ref); 00234 // m_chain->SetBranchAddress("Stream1_ref",Stream1_ref); 00235 // m_chain->SetBranchAddress("Token",Token); 00236 // m_chain->SetBranchAddress("Run",&Run); 00237 // m_chain->SetBranchAddress("Event",&Event); 00238 // m_chain->SetBranchAddress("Time",&Time); 00239 // m_chain->SetBranchAddress("Weight",&Weight); 00240 // m_chain->SetBranchAddress("IEvent",&IEvent); 00241 m_chain->SetBranchAddress("NELE",&NELE); 00242 m_chain->SetBranchAddress("PXELE",&PXELE); 00243 m_chain->SetBranchAddress("PYELE",&PYELE); 00244 m_chain->SetBranchAddress("PZELE",&PZELE); 00245 m_chain->SetBranchAddress("EEELE",&EEELE); 00246 // m_chain->SetBranchAddress("e_calo_p_x",&e_calo_p_x); 00247 // m_chain->SetBranchAddress("e_calo_p_y",&e_calo_p_y); 00248 // m_chain->SetBranchAddress("e_calo_p_z",&e_calo_p_z); 00249 // m_chain->SetBranchAddress("e_calo_E",&e_calo_E); 00250 m_chain->SetBranchAddress("KFELE",&KFELE); 00251 // m_chain->SetBranchAddress("e_NeuralNet",&e_NeuralNet); 00252 // m_chain->SetBranchAddress("e_isEM",&e_isEM); 00253 // m_chain->SetBranchAddress("e_egamma_flag",&e_egamma_flag); 00254 // m_chain->SetBranchAddress("e_softe_flag",&e_softe_flag); 00255 // m_chain->SetBranchAddress("e_E_over_p",&e_E_over_p); 00256 // m_chain->SetBranchAddress("e_Et_in_cone_0",&e_Et_in_cone_0); 00257 // m_chain->SetBranchAddress("e_Et_in_cone_1",&e_Et_in_cone_1); 00258 // m_chain->SetBranchAddress("e_Et_in_cone_2",&e_Et_in_cone_2); 00259 // m_chain->SetBranchAddress("e_Et_in_cone_3",&e_Et_in_cone_3); 00260 m_chain->SetBranchAddress("NMUO",&NMUO); 00261 m_chain->SetBranchAddress("PXMUO",&PXMUO); 00262 m_chain->SetBranchAddress("PYMUO",&PYMUO); 00263 m_chain->SetBranchAddress("PZMUO",&PZMUO); 00264 m_chain->SetBranchAddress("EEMUO",&EEMUO); 00265 m_chain->SetBranchAddress("KFMUO",&KFMUO); 00266 // m_chain->SetBranchAddress("mu_rec_flag",&mu_rec_flag); 00267 // m_chain->SetBranchAddress("mu_Et_in_cone_0",&mu_Et_in_cone_0); 00268 // m_chain->SetBranchAddress("mu_Et_in_cone_1",&mu_Et_in_cone_1); 00269 // m_chain->SetBranchAddress("mu_Et_in_cone_2",&mu_Et_in_cone_2); 00270 // m_chain->SetBranchAddress("mu_Et_in_cone_3",&mu_Et_in_cone_3); 00271 // m_chain->SetBranchAddress("mu_Et_in_cone_4",&mu_Et_in_cone_4); 00272 // m_chain->SetBranchAddress("mu_Et_in_cone_5",&mu_Et_in_cone_5); 00273 // m_chain->SetBranchAddress("mu_Et_in_cone_6",&mu_Et_in_cone_6); 00274 // m_chain->SetBranchAddress("mu_Et_in_cone_7",&mu_Et_in_cone_7); 00275 // m_chain->SetBranchAddress("mu_nb_tracks_in_cone_0",&mu_nb_tracks_in_cone_0); 00276 // m_chain->SetBranchAddress("mu_nb_tracks_in_cone_1",&mu_nb_tracks_in_cone_1); 00277 // m_chain->SetBranchAddress("mu_nb_tracks_in_cone_2",&mu_nb_tracks_in_cone_2); 00278 // m_chain->SetBranchAddress("mu_nb_tracks_in_cone_3",&mu_nb_tracks_in_cone_3); 00279 // m_chain->SetBranchAddress("mu_nb_tracks_in_cone_4",&mu_nb_tracks_in_cone_4); 00280 // m_chain->SetBranchAddress("mu_nb_tracks_in_cone_5",&mu_nb_tracks_in_cone_5); 00281 // m_chain->SetBranchAddress("mu_nb_tracks_in_cone_6",&mu_nb_tracks_in_cone_6); 00282 // m_chain->SetBranchAddress("mu_nb_tracks_in_cone_7",&mu_nb_tracks_in_cone_7); 00283 m_chain->SetBranchAddress("KFJET",&KFJET); 00284 m_chain->SetBranchAddress("NJET",&NJET); 00285 m_chain->SetBranchAddress("PXJET",&PXJET); 00286 m_chain->SetBranchAddress("PYJET",&PYJET); 00287 m_chain->SetBranchAddress("PZJET",&PZJET); 00288 m_chain->SetBranchAddress("EEJET",&EEJET); 00289 m_chain->SetBranchAddress("BTAG",&BTAG); 00290 m_chain->SetBranchAddress("BCORR",&BCORR); 00291 m_chain->SetBranchAddress("TAUTAG",&TAUTAG); 00292 m_chain->SetBranchAddress("TAUCORR",&TAUCORR); 00293 00294 /* m_chain->SetBranchAddress("nb_tau_jets",&nb_tau_jets); 00295 m_chain->SetBranchAddress("taujet_p_x",&taujet_p_x); 00296 m_chain->SetBranchAddress("taujet_p_y",&taujet_p_y); 00297 m_chain->SetBranchAddress("taujet_p_z",&taujet_p_z); 00298 m_chain->SetBranchAddress("taujet_E",&taujet_E); 00299 m_chain->SetBranchAddress("taujet_flag",&taujet_flag); 00300 m_chain->SetBranchAddress("taujet_charge",&taujet_charge); 00301 m_chain->SetBranchAddress("taujet_llh",&taujet_llh); 00302 m_chain->SetBranchAddress("taujet_lowPtTauEleDiscriminant",&taujet_lowPtTauEleDiscriminant); 00303 m_chain->SetBranchAddress("taujet_tauENeuralNetwork",&taujet_tauENeuralNetwork); 00304 m_chain->SetBranchAddress("taujet_etHadCalib",&taujet_etHadCalib); 00305 m_chain->SetBranchAddress("taujet_etEMCalib",&taujet_etEMCalib); 00306 m_chain->SetBranchAddress("taujet_nb_tracks",&taujet_nb_tracks); 00307 m_chain->SetBranchAddress("taujet_track_px_1",&taujet_track_px_1); 00308 m_chain->SetBranchAddress("taujet_track_py_1",&taujet_track_py_1); 00309 m_chain->SetBranchAddress("taujet_track_pz_1",&taujet_track_pz_1); 00310 m_chain->SetBranchAddress("taujet_track_e_1",&taujet_track_e_1); 00311 m_chain->SetBranchAddress("taujet_track_px_2",&taujet_track_px_2); 00312 m_chain->SetBranchAddress("taujet_track_py_2",&taujet_track_py_2); 00313 m_chain->SetBranchAddress("taujet_track_pz_2",&taujet_track_pz_2); 00314 m_chain->SetBranchAddress("taujet_track_e_2",&taujet_track_e_2); 00315 m_chain->SetBranchAddress("taujet_track_px_3",&taujet_track_px_3); 00316 m_chain->SetBranchAddress("taujet_track_py_3",&taujet_track_py_3); 00317 m_chain->SetBranchAddress("taujet_track_pz_3",&taujet_track_pz_3); 00318 m_chain->SetBranchAddress("taujet_track_e_3",&taujet_track_e_3); 00319 m_chain->SetBranchAddress("nb_truth_jets",&nb_truth_jets); 00320 m_chain->SetBranchAddress("truth_jet_p_x",&truth_jet_p_x); 00321 m_chain->SetBranchAddress("truth_jet_p_y",&truth_jet_p_y); 00322 m_chain->SetBranchAddress("truth_jet_p_z",&truth_jet_p_z); 00323 m_chain->SetBranchAddress("truth_jet_E",&truth_jet_E); 00324 m_chain->SetBranchAddress("truth_jet_flag",&truth_jet_flag); 00325 m_chain->SetBranchAddress("truth_jet_btag_weight",&truth_jet_btag_weight); 00326 00327 m_chain->SetBranchAddress("missing_Etx_Final",&missing_Etx_Final); 00328 m_chain->SetBranchAddress("missing_Ety_Final",&missing_Ety_Final); 00329 m_chain->SetBranchAddress("missing_Et_Final",&missing_Et_Final); 00330 m_chain->SetBranchAddress("missing_Etsum_Final",&missing_Etsum_Final); 00331 m_chain->SetBranchAddress("missing_Etx_CorrTopo",&missing_Etx_CorrTopo); 00332 m_chain->SetBranchAddress("missing_Ety_CorrTopo",&missing_Ety_CorrTopo); 00333 m_chain->SetBranchAddress("missing_Et_CorrTopo",&missing_Et_CorrTopo); 00334 m_chain->SetBranchAddress("missing_Etsum_CorrTopo",&missing_Etsum_CorrTopo); 00335 m_chain->SetBranchAddress("missing_Etx_Calib",&missing_Etx_Calib); 00336 m_chain->SetBranchAddress("missing_Ety_Calib",&missing_Ety_Calib); 00337 m_chain->SetBranchAddress("missing_Et_Calib",&missing_Et_Calib); 00338 m_chain->SetBranchAddress("missing_Etsum_Calib",&missing_Etsum_Calib); 00339 m_chain->SetBranchAddress("missing_Etx_Muonboy",&missing_Etx_Muonboy); 00340 m_chain->SetBranchAddress("missing_Ety_Muonboy",&missing_Ety_Muonboy); 00341 m_chain->SetBranchAddress("missing_Et_Muonboy",&missing_Et_Muonboy); 00342 m_chain->SetBranchAddress("missing_Etsum_Muonboy",&missing_Etsum_Muonboy); 00343 m_chain->SetBranchAddress("missing_Etx_Moore",&missing_Etx_Moore); 00344 m_chain->SetBranchAddress("missing_Ety_Moore",&missing_Ety_Moore); 00345 m_chain->SetBranchAddress("missing_Et_Moore",&missing_Et_Moore); 00346 m_chain->SetBranchAddress("missing_Etsum_Moore",&missing_Etsum_Moore); 00347 m_chain->SetBranchAddress("missing_Etx_Cryo",&missing_Etx_Cryo); 00348 m_chain->SetBranchAddress("missing_Ety_Cryo",&missing_Ety_Cryo); 00349 m_chain->SetBranchAddress("missing_Et_Cryo",&missing_Et_Cryo); 00350 m_chain->SetBranchAddress("missing_Etsum_Cryo",&missing_Etsum_Cryo); 00351 m_chain->SetBranchAddress("missing_Etx_CryoCone",&missing_Etx_CryoCone); 00352 m_chain->SetBranchAddress("missing_Ety_CryoCone",&missing_Ety_CryoCone); 00353 m_chain->SetBranchAddress("missing_Et_CryoCone",&missing_Et_CryoCone); 00354 m_chain->SetBranchAddress("missing_Etsum_CryoCone",&missing_Etsum_CryoCone); 00355 */ 00356 m_chain->SetBranchAddress("MET_ExTruthInt",&MET_ExTruthInt); 00357 m_chain->SetBranchAddress("MET_EyTruthInt",&MET_EyTruthInt); 00358 m_chain->SetBranchAddress("MET_EtSumTruthInt",&MET_EtSumTruthInt); 00359 m_chain->SetBranchAddress("MET_ExTruthNonInt",&MET_ExTruthNonInt); 00360 m_chain->SetBranchAddress("MET_EyTruthNonInt",&MET_EyTruthNonInt); 00361 m_chain->SetBranchAddress("MET_EtSumTruthNonInt",&MET_EtSumTruthNonInt); 00362 m_chain->SetBranchAddress("MET_ExTruthIntCentral",&MET_ExTruthIntCentral); 00363 m_chain->SetBranchAddress("MET_EyTruthIntCentral",&MET_EyTruthIntCentral); 00364 m_chain->SetBranchAddress("MET_EtSumTruthIntCentral",&MET_EtSumTruthIntCentral); 00365 m_chain->SetBranchAddress("MET_ExTruthIntFwd",&MET_ExTruthIntFwd); 00366 m_chain->SetBranchAddress("MET_EyTruthIntFwd",&MET_EyTruthIntFwd); 00367 m_chain->SetBranchAddress("MET_EtSumTruthIntFwd",&MET_EtSumTruthIntFwd); 00368 m_chain->SetBranchAddress("MET_ExTruthMuons",&MET_ExTruthMuons); 00369 m_chain->SetBranchAddress("MET_EyTruthMuons",&MET_EyTruthMuons); 00370 m_chain->SetBranchAddress("MET_EtSumTruthMuons",&MET_EtSumTruthMuons); 00371 00372 m_chain->SetBranchAddress("jetNumC4McJets",&jetNumC4McJets); 00373 m_chain->SetBranchAddress("jetEtaC4McJets",jetEtaC4McJets); 00374 m_chain->SetBranchAddress("jetPhiC4McJets",jetPhiC4McJets); 00375 m_chain->SetBranchAddress("jetEC4McJets",jetEC4McJets); 00376 m_chain->SetBranchAddress("jetEtC4McJets",jetEtC4McJets); 00377 m_chain->SetBranchAddress("jetMC4McJets",jetMC4McJets); 00378 m_chain->SetBranchAddress("jetEemC4McJets",jetEemC4McJets); 00379 00380 00381 /* 00382 m_chain->SetBranchAddress("truth_missing_Etx_Int",&truth_missing_Etx_Int); 00383 m_chain->SetBranchAddress("truth_missing_Ety_Int",&truth_missing_Ety_Int); 00384 m_chain->SetBranchAddress("truth_missing_Et_Int",&truth_missing_Et_Int); 00385 m_chain->SetBranchAddress("truth_missing_Etsum_Int",&truth_missing_Etsum_Int); 00386 m_chain->SetBranchAddress("truth_missing_Etx_NonInt",&truth_missing_Etx_NonInt); 00387 m_chain->SetBranchAddress("truth_missing_Ety_NonInt",&truth_missing_Ety_NonInt); 00388 m_chain->SetBranchAddress("truth_missing_Et_NonInt",&truth_missing_Et_NonInt); 00389 m_chain->SetBranchAddress("truth_missing_Etsum_NonInt",&truth_missing_Etsum_NonInt); 00390 m_chain->SetBranchAddress("truth_missing_Etx_IntCentral",&truth_missing_Etx_IntCentral); 00391 m_chain->SetBranchAddress("truth_missing_Ety_IntCentral",&truth_missing_Ety_IntCentral); 00392 m_chain->SetBranchAddress("truth_missing_Et_IntCentral",&truth_missing_Et_IntCentral); 00393 m_chain->SetBranchAddress("truth_missing_Etsum_IntCentral",&truth_missing_Etsum_IntCentral ); 00394 m_chain->SetBranchAddress("truth_missing_Etx_IntFwd",&truth_missing_Etx_IntFwd); 00395 m_chain->SetBranchAddress("truth_missing_Ety_IntFwd",&truth_missing_Ety_IntFwd); 00396 m_chain->SetBranchAddress("truth_missing_Et_IntFwd",&truth_missing_Et_IntFwd); 00397 m_chain->SetBranchAddress("truth_missing_Etsum_IntFwd",&truth_missing_Etsum_IntFwd); 00398 m_chain->SetBranchAddress("truth_missing_Etx_IntOutCover",&truth_missing_Etx_IntOutCover); 00399 m_chain->SetBranchAddress("truth_missing_Ety_IntOutCover",&truth_missing_Ety_IntOutCover); 00400 m_chain->SetBranchAddress("truth_missing_Et_IntOutCover",&truth_missing_Et_IntOutCover); 00401 m_chain->SetBranchAddress("truth_missing_Etsum_IntOutCover",&truth_missing_Etsum_IntOutCover); 00402 m_chain->SetBranchAddress("truth_missing_Etx_Muons",&truth_missing_Etx_Muons); 00403 m_chain->SetBranchAddress("truth_missing_Ety_Muons",&truth_missing_Ety_Muons); 00404 m_chain->SetBranchAddress("truth_missing_Et_Muons",&truth_missing_Et_Muons); 00405 m_chain->SetBranchAddress("truth_missing_Etsum_Muons",&truth_missing_Etsum_Muons); 00406 */ 00407 m_chain->SetBranchAddress("PXMISS",&PXMISS); 00408 m_chain->SetBranchAddress("PYMISS",&PYMISS); 00409 00410 00411 // 00412 // m_chain->SetBranchAddress("missing_Etx",&missing_Etx); 00413 // m_chain->SetBranchAddress("missing_Ety",&missing_Ety); 00414 // m_chain->SetBranchAddress("missing_Et",&missing_Et); 00415 // m_chain->SetBranchAddress("missing_Etsum",&missing_Etsum); 00416 // m_chain->SetBranchAddress("missing_Etx_CorrTopo",&missing_Etx_CorrTopo); 00417 // m_chain->SetBranchAddress("missing_Ety_CorrTopo",&missing_Ety_CorrTopo); 00418 // m_chain->SetBranchAddress("missing_Et_CorrTopo",&missing_Et_CorrTopo); 00419 // m_chain->SetBranchAddress("missing_Etsum_CorrTopo",&missing_Etsum_CorrTopo); 00420 // m_chain->SetBranchAddress("missing_Etx_Muonboy",&missing_Etx_Muonboy); 00421 // m_chain->SetBranchAddress("missing_Ety_Muonboy",&missing_Ety_Muonboy); 00422 // m_chain->SetBranchAddress("missing_Et_Muonboy",&missing_Et_Muonboy); 00423 // m_chain->SetBranchAddress("missing_Etsum_Muonboy",&missing_Etsum_Muonboy); 00424 // m_chain->SetBranchAddress("missing_Etx_Moore",&missing_Etx_Moore); 00425 // m_chain->SetBranchAddress("missing_Ety_Moore",&missing_Ety_Moore); 00426 // m_chain->SetBranchAddress("missing_Et_Moore",&missing_Et_Moore); 00427 // m_chain->SetBranchAddress("missing_Etsum_Moore",&missing_Etsum_Moore); 00428 // m_chain->SetBranchAddress("missing_Etx_CryoCone",&missing_Etx_CryoCone); 00429 // m_chain->SetBranchAddress("missing_Ety_CryoCone",&missing_Ety_CryoCone); 00430 // m_chain->SetBranchAddress("missing_Et_CryoCone",&missing_Et_CryoCone); 00431 // m_chain->SetBranchAddress("missing_Etsum_CryoCone",&missing_Etsum_CryoCone); 00432 // m_chain->SetBranchAddress("truth_missing_Etx",&truth_missing_Etx); 00433 // m_chain->SetBranchAddress("truth_missing_Ety",&truth_missing_Ety); 00434 // m_chain->SetBranchAddress("truth_missing_Et",&truth_missing_Et); 00435 // m_chain->SetBranchAddress("truth_missing_Etsum",&truth_missing_Etsum); 00436 00437 00438 m_chain->SetBranchAddress("ProcId",&ProcId); 00439 m_chain->SetBranchAddress("NPar",&NPar); 00440 m_chain->SetBranchAddress("Type",Type); 00441 m_chain->SetBranchAddress("PtGen",PtGen); 00442 m_chain->SetBranchAddress("PhiGen",PhiGen); 00443 m_chain->SetBranchAddress("EtaGen",EtaGen); 00444 m_chain->SetBranchAddress("MGen",MGen); 00445 m_chain->SetBranchAddress("Charge",Charge); 00446 m_chain->SetBranchAddress("GenStat",GenStat); 00447 m_chain->SetBranchAddress("GenRef",GenRef); 00448 m_chain->SetBranchAddress("KMothNt",KMothNt); 00449 m_chain->SetBranchAddress("KFDauNt",KFDauNt); 00450 m_chain->SetBranchAddress("KLDauNt",KLDauNt); 00451 m_chain->SetBranchAddress("KOriVNt",KOriVNt); 00452 m_chain->SetBranchAddress("KEndVNt",KEndVNt); 00453 m_chain->SetBranchAddress("BunchNum",BunchNum); 00454 00455 00456 00457 /* 00458 m_chain->SetBranchAddress("nb_truth_particle_all",&nb_truth_particle_all); 00459 m_chain->SetBranchAddress("nb_truth_particle",&nb_truth_particle); 00460 m_chain->SetBranchAddress("truth_particle_pt",&truth_particle_pt); 00461 m_chain->SetBranchAddress("truth_particle_status",&truth_particle_status); 00462 m_chain->SetBranchAddress("truth_particle_barcode",&truth_particle_barcode); 00463 m_chain->SetBranchAddress("truth_particle_pdgId",&truth_particle_pdgId); 00464 m_chain->SetBranchAddress("truth_particle_nDaughters",&truth_particle_nDaughters); 00465 m_chain->SetBranchAddress("truth_particle_p_x",&truth_particle_p_x); 00466 m_chain->SetBranchAddress("truth_particle_p_y",&truth_particle_p_y); 00467 m_chain->SetBranchAddress("truth_particle_p_z",&truth_particle_p_z); 00468 m_chain->SetBranchAddress("truth_particle_E",&truth_particle_E); 00469 m_chain->SetBranchAddress("truth_particle_charge",&truth_particle_charge); 00470 m_chain->SetBranchAddress("truth_particle_nParents",&truth_particle_nParents); 00471 m_chain->SetBranchAddress("truth_particle_mother0_barcode",&truth_particle_mother0_barcode); 00472 m_chain->SetBranchAddress("truth_particle_mother0_pdgId",&truth_particle_mother0_pdgId); 00473 */ 00474 00476 // INITIALIZE THE ANALYSIS // 00478 00479 m_analysis = analysis; 00480 m_analysis->initialize(); 00481 00482 return; 00483 00484 } 00485 00486 //***************************************************************************** 00487 00488 //::::::::::::::::::::: 00489 //:: METHOD destruct :: 00490 //::::::::::::::::::::: 00491 00492 void NtupleReaderFast::destruct(void) { 00493 00494 return; 00495 00496 } 00497 00498 //***************************************************************************** 00499 00500 //::::::::::::::::::::::: 00501 //:: METHOD event_loop :: 00502 //::::::::::::::::::::::: 00503 00504 void NtupleReaderFast::event_loop(void) { 00505 00507 // EVENT LOOP // 00509 00510 Int_t nb_events = m_chain->GetEntries(); 00511 //Int_t nb_events = 100000; 00512 cout << "event_loop\n"; 00513 cout << "events: " << nb_events << endl; 00514 00515 TLorentzVector tmp_tlv; 00516 // double tmp_charge; 00517 00518 for (Long64_t ev=0; ev<nb_events; ev++) { 00519 // cout << ev << " Events read."<<endl;; 00520 00521 // status output // 00522 if (ev!=0 && ev%1000==0) { 00523 cout << ev << " Events read."<<endl; 00524 } 00525 // read the event // 00526 m_chain->GetEntry(ev); 00527 // create an event and pass it to the user's analysis object // 00528 00529 // reconstructed data // 00530 // electrons // 00531 00532 //MyElectron* rec_electron; 00533 //rec_electron = new MyElectron; 00534 vector<MyParticle*> rec_electron(NELE); 00535 for (int k=0; k<NELE; k++) { 00536 tmp_tlv.SetPxPyPzE(PXELE[k],PYELE[k],PZELE[k],EEELE[k]); 00537 double et_cone[4]; 00538 et_cone[0] = 0.0; 00539 et_cone[1] = 0.0; 00540 et_cone[2] = 0.0; 00541 et_cone[3] = 0.0; 00542 rec_electron[k] = new MyElectron( 00543 tmp_tlv, 00544 (KFELE[k]/abs(KFELE[k])), 00545 false,false,-1111,0,0, 00546 00547 //(*e_egamma_flag)[k], 00548 //(*e_softe_flag)[k], 00549 //(*e_E_over_p)[k], 00550 //(*e_isEM)[k], 00551 //(*e_NeuralNet)[k], 00552 k, 00553 et_cone 00554 ); 00555 } 00556 00557 00558 // muons // 00559 vector<MyParticle*> rec_muon(NMUO); 00560 for (int k=0; k<NMUO; k++) { 00561 tmp_tlv.SetPxPyPzE(PXMUO[k], PYMUO[k], PZMUO[k], EEMUO[k]); 00562 // cout<<"Reco muon, pt: "<<tmp_tlv.Pt()<<", eta: "<<tmp_tlv.Eta()<<", phi: "<<tmp_tlv.Phi()<<endl; 00563 double Et_cone[8]; 00564 Et_cone[0] = 0.0; 00565 Et_cone[1] = 0.0; 00566 Et_cone[2] = 0.0; 00567 Et_cone[3] = 0.0; 00568 Et_cone[4] = 0.0; 00569 Et_cone[5] = 0.0; 00570 Et_cone[6] = 0.0; 00571 Et_cone[7] = 0.0; 00572 int nb_tracks_cone[8]; 00573 nb_tracks_cone[0] = 0; 00574 nb_tracks_cone[1] = 0; 00575 nb_tracks_cone[2] = 0; 00576 nb_tracks_cone[3] = 0; 00577 nb_tracks_cone[4] = 0; 00578 nb_tracks_cone[5] = 0; 00579 nb_tracks_cone[6] = 0; 00580 nb_tracks_cone[7] = 0; 00581 rec_muon[k] = new MyMuon( 00582 tmp_tlv, 00583 (KFMUO[k]/abs(KFMUO[k])), 00584 1, //(*mu_rec_flag)[k], 00585 k, 00586 Et_cone, 00587 nb_tracks_cone, 00588 0.0, 00589 1, 00590 0.0, 00591 0.0, 00592 1, 00593 0.0, 00594 1); 00595 } 00596 00597 // jets // 00598 vector<MyParticle*> rec_jet(NJET); 00599 for (int k=0; k<NJET; k++) { 00600 if (BTAG[k]==1) { 00601 tmp_tlv.SetPxPyPzE(BCORR[k]*PXJET[k], 00602 BCORR[k]*PYJET[k], 00603 BCORR[k]*PZJET[k], 00604 BCORR[k]*EEJET[k]); 00605 rec_jet[k] = new MyParticleJet( 00606 tmp_tlv, 00607 -1111, 00608 k, 00609 BTAG[k], 00610 -1111 00611 ); 00612 } 00613 else { 00614 tmp_tlv.SetPxPyPzE(PXJET[k], 00615 PYJET[k], 00616 PZJET[k], 00617 EEJET[k]); 00618 rec_jet[k] = new MyParticleJet( 00619 tmp_tlv, 00620 -1111, 00621 k, 00622 BTAG[k], 00623 -1111 00624 ); 00625 00626 00627 00628 00629 00630 00631 00632 } 00633 } 00634 00635 // truth jets // 00636 // vector<MyParticle*> truth_jet(jetNumC4McJets); 00637 vector<MyParticle*> truth_jet(0); 00638 // for (int k=0; k<jetNumC4McJets; k++) { 00639 // cout<<"Truth Jet "<<endl; 00640 // truth_jet[k] = new MyParticleJet( //PLEASE CHECK THIS!!! 00641 // TLorentzVector(jetEtC4McJets[k]*cos(jetPhiC4McJets[k]), 00642 // jetEtC4McJets[k]*sin(jetPhiC4McJets[k]), 00643 // jetEtC4McJets[k]/sin(2*atan(exp(-jetEtaC4McJets[k])))*cos(2*atan(exp(-jetEtaC4McJets[k]))), 00644 // jetEC4McJets[k]), 00645 // -1111, //?? (*truth_jet_flag)[k], 00646 // k, 00647 // -1111, //?? (*truth_jet_btag_weight)[k], 00648 // 0, 00649 // true 00650 // ); 00651 // } 00652 00653 00654 //taujets// 00655 vector<MyParticle*> rec_taujet(0); 00656 /* int NTAUJET=0; 00657 vector<MyParticle*> rec_taujet; 00658 for (int k=0; k<NJET; k++) { 00659 if (TAUTAG[k]>0.5){ 00660 //if (abs(KFJET[k])==15){ 00661 NTAUJET++; 00662 //cout<<"KFJET: "<<KFJET[k]<<endl; 00663 tmp_charge=0; 00664 if(KFJET[k]==-15) tmp_charge=1; 00665 if(KFJET[k]==15) tmp_charge=-1; 00666 tmp_tlv.SetPxPyPzE(TAUCORR[k]*PXJET[k], TAUCORR[k]*PYJET[k], TAUCORR[k]*PZJET[k], TAUCORR[k]*EEJET[k]); 00667 rec_taujet.push_back(new MyTauJet(tmp_tlv, 00668 tmp_charge, 00669 -1111, 00670 rec_taujet.size(), 00671 10, //since everybody uses Likelihood cut > 4 00672 0, 00673 0, 00674 1000.0, 00675 0, 00676 1, 00677 TLorentzVector(1,0,0,0), 00678 TLorentzVector(1,0,0,0), 00679 TLorentzVector(1,0,0,0) 00680 ) ); 00681 00682 00683 00684 00685 00686 00687 00688 00689 } 00690 } 00691 */ 00692 00693 //for (int k=0; k<NTAUJET; k++) { 00694 // for (int k=0; k<NJET; k++) { 00695 // if (TAUTAG[k]>0.5){ 00696 // cout<<"KFJET: "<<KFJET[k]<<endl; 00697 // tmp_charge=0; 00698 // if(KFJET[k]==-15) tmp_charge=1; 00699 // if(KFJET[k]==15) tmp_charge=-1; 00700 // tmp_tlv.SetPxPyPzE(PXJET[k], PYJET[k], PZJET[k], EEJET[k]); 00701 // rec_taujet[k] = new MyTauJet( 00702 // tmp_tlv, 00703 // tmp_charge, 00704 // -1111, 00705 // k, 00706 // 10, //since everybody uses Likelihood cut > 4 00707 // 0, 00708 // 0, 00709 // 1000.0, 00710 // 0, 00711 // 1, 00712 // TLorentzVector(1, 00713 // 0, 00714 // 0, 00715 // 0), 00716 // TLorentzVector(1, 00717 // 0, 00718 // 0, 00719 // 0), 00720 // TLorentzVector(1, 00721 // 0, 00722 // 0, 00723 // 0) 00724 // ); 00725 // } 00726 // } 00727 /* vector<MyParticle*> rec_taujet(nb_tau_jets); 00728 for (int k=0; k<nb_tau_jets; k++) { 00729 //cout << (*taujet_nb_tracks)[k] << endl; 00730 rec_taujet[k] = new MyTauJet( 00731 TLorentzVector((*taujet_p_x)[k], 00732 (*taujet_p_y)[k], 00733 (*taujet_p_z)[k], 00734 (*taujet_E)[k]), 00735 (*taujet_charge)[k], 00736 (*taujet_flag)[k], 00737 k, 00738 (*taujet_llh)[k], 00739 (*taujet_lowPtTauEleDiscriminant)[k], 00740 (*taujet_tauENeuralNetwork)[k], 00741 (*taujet_etHadCalib)[k], 00742 (*taujet_etEMCalib)[k], 00743 (*taujet_nb_tracks)[k], 00744 TLorentzVector((*taujet_track_px_1)[k], 00745 (*taujet_track_py_1)[k], 00746 (*taujet_track_pz_1)[k], 00747 (*taujet_track_e_1)[k]), 00748 TLorentzVector((*taujet_track_px_2)[k], 00749 (*taujet_track_py_2)[k], 00750 (*taujet_track_pz_2)[k], 00751 (*taujet_track_e_2)[k]), 00752 TLorentzVector((*taujet_track_px_3)[k], 00753 (*taujet_track_py_3)[k], 00754 (*taujet_track_pz_3)[k], 00755 (*taujet_track_e_3)[k]) 00756 ); 00757 } 00758 */ 00759 // jetpairs // 00760 // int nb_jetpairs = ( nb_rec_jets*nb_rec_jets - nb_rec_jets)/2; 00761 //vector<MyJetPair> jetpair(nb_jetpairs); 00762 // vector<MyJetPair> jetpair(1); 00763 // //jetpair[0] = MyJetPair(rec_jet[0],rec_jet[0]); 00764 00765 // int jetpair_index = 0; 00766 // for (int k=0; k<1; k++) { 00767 // // for (int j=0; j<nb_rec_jets; j++) { 00768 00769 // // if(k==j) continue; 00770 // jetpair[k] = MyJetPair(rec_jet[k],rec_jet[k]); 00771 // //jetpair_index++; 00772 00773 // // } 00774 // } 00775 00776 // truth data // 00777 vector<MyParticle*> truth_particle(NPar); 00778 for (int k=0; k<NPar; k++) { 00779 00780 int nmothers; 00781 /* nmothers=0; 00782 // loop again over the whole vector, check for every particle 00783 // if it is a mother of the particle with the index k 00784 if(k<100){ 00785 for (int l=0; (l<NPar && l<100) ; l++) { 00786 // //cout<<"KFDauNt[l] k KLDauNt[l] "<<KFDauNt[l]<<" "<<k<<" "<<KLDauNt[l]<<endl; 00787 // if ((KFDauNt[l] <= k) && (k <= KLDauNt[l])){ 00788 // //cout<<"ID "<<Type[l]<<" is a mother of "<<Type[k]<<endl; 00789 // nmothers++; 00790 // //if (Type[k]==25){cout<<"nmothers for pdgid 25: "<<nmothers<<endl;} 00791 // } 00792 int first_d = (KFDauNt[l]); 00793 int last_d = (KLDauNt[l]); 00794 for (int ld=first_d;ld<=last_d;ld++){ 00795 if (ld=k&&KMothNt[ld]==l){nmothers++;} 00796 } 00797 } 00798 } 00799 if (nmothers>1) cout<<"WARNING more than 1 mother\n";*/ 00800 nmothers=1; 00801 // 00802 int ndaughters=0; 00803 int first_d = (KFDauNt[k]); 00804 int last_d = (KLDauNt[k]); 00805 for (int ld=first_d;ld<=last_d;ld++){ 00806 if (KMothNt[ld]==k){ndaughters++;} 00807 } 00808 00809 00810 // cout <<"Truth: "<<k<<" " <<Type[k]<<" "<<GenRef[k]<<" "<<KMothNt[k]<<endl; 00811 tmp_tlv.SetPtEtaPhiM(PtGen[k],EtaGen[k],PhiGen[k],MGen[k]); 00812 00813 // if (abs(Type[k])==13 && tmp_tlv.Pt()>5000.0 && tmp_tlv.Eta()<2.55){ 00814 // cout<<"Truth muon, pt: "<<tmp_tlv.Pt()<<", eta: "<<tmp_tlv.Eta()<<", phi: "<<tmp_tlv.Phi()<<", status: "<<GenStat[k]<<endl; 00815 // } 00816 00817 truth_particle[k]= 00818 new MyTruthParticle(tmp_tlv, 00819 // TLorentzVector(PtGen[k]*cos(PhiGen[k]), 00820 // PtGen[k]*sin(PhiGen[k]), 00821 // PtGen[k]/sin(2*atan(exp(-EtaGen[k])))*cos(2*atan(exp(-EtaGen[k]))), 00822 // MGen[k]), 00823 Charge[k], 00824 Type[k], 00825 GenRef[k], 00826 GenStat[k], 00827 nmothers, //??? (*truth_particle_nParents)[k], 00828 //1, //??? (*truth_particle_nParents)[k], 00829 ndaughters, //?? (*truth_particle_nDaughters)[k], 00830 GenRef[KMothNt[k]], //??? (*truth_particle_mother0_barcode)[k], 00831 Type[KMothNt[k]],//??? (*truth_particle_mother0_pdgId)[k], AAAARGH 00832 k 00833 ); 00834 } 00835 00836 // KFdauNt[k] is first index of daughter 00837 // KLdauNt[k] is last index of daughter 00838 00839 00840 // Missing Et// 00841 MyMissingEt missinget( PXMISS, 00842 PYMISS, 00843 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 00844 /*missing_Et_Final, 00845 missing_Etsum_Final, 00846 missing_Etx_CorrTopo, 00847 missing_Ety_CorrTopo, 00848 missing_Et_CorrTopo, 00849 missing_Etsum_CorrTopo, 00850 missing_Etx_Calib, 00851 missing_Ety_Calib, 00852 missing_Et_Calib, 00853 missing_Etsum_Calib, 00854 missing_Etx_Muonboy, 00855 missing_Ety_Muonboy, 00856 missing_Et_Muonboy, 00857 missing_Etsum_Muonboy, 00858 missing_Etx_Moore, 00859 missing_Ety_Moore, 00860 missing_Et_Moore, 00861 missing_Etsum_Moore, 00862 missing_Etx_Cryo, 00863 missing_Ety_Cryo, 00864 missing_Et_Cryo, 00865 missing_Etsum_Cryo, 00866 missing_Etx_CryoCone, 00867 missing_Ety_CryoCone, 00868 missing_Et_CryoCone, 00869 missing_Etsum_CryoCone,*/ 00870 00871 MET_ExTruthInt, 00872 MET_EyTruthInt, 00873 0, 00874 MET_EtSumTruthInt, 00875 MET_ExTruthNonInt, 00876 MET_EyTruthNonInt, 00877 0, 00878 MET_EtSumTruthNonInt, 00879 MET_ExTruthIntCentral, 00880 MET_EyTruthIntCentral, 00881 0, 00882 MET_EtSumTruthIntCentral, 00883 MET_ExTruthIntFwd, 00884 MET_EyTruthIntFwd, 00885 0, 00886 MET_EtSumTruthIntFwd, 00887 0,0,0,0, 00888 MET_ExTruthMuons, 00889 MET_EyTruthMuons, 00890 0, 00891 MET_EtSumTruthMuons 00892 00893 /* truth_missing_Etx_Int, 00894 truth_missing_Ety_Int, 00895 truth_missing_Et_Int,// 00896 truth_missing_Etsum_Int, 00897 truth_missing_Etx_NonInt, 00898 truth_missing_Ety_NonInt, 00899 truth_missing_Et_NonInt,// 00900 truth_missing_Etsum_NonInt, 00901 truth_missing_Etx_IntCentral, 00902 truth_missing_Ety_IntCentral, 00903 truth_missing_Et_IntCentral,// 00904 truth_missing_Etsum_IntCentral, 00905 truth_missing_Etx_IntFwd, 00906 truth_missing_Ety_IntFwd, 00907 truth_missing_Et_IntFwd,// 00908 truth_missing_Etsum_IntFwd, 00909 truth_missing_Etx_IntOutCover,// 00910 truth_missing_Ety_IntOutCover,// 00911 truth_missing_Et_IntOutCover,// 00912 truth_missing_Etsum_IntOutCover,// 00913 truth_missing_Etx_Muons, 00914 truth_missing_Ety_Muons, 00915 truth_missing_Et_Muons,// 00916 truth_missing_Etsum_Muons*/ 00917 ); 00918 00919 // create an empty MyTrigger Object 00920 MyTrigger trigger = MyTrigger(); 00921 00922 // the event // 00923 MyEvent event(RunNumber, EventNumber, Weight, 00924 rec_electron, rec_muon, rec_jet, rec_taujet, 00925 truth_particle, truth_jet, missinget, trigger); 00926 // 00927 // call the user analysis // 00928 m_analysis->analyse_event(event); 00929 00930 // delete all objects in the vectors that were created with "new" 00931 delete_new_objects(rec_electron); 00932 delete_new_objects(rec_muon); 00933 delete_new_objects(rec_jet); 00934 // delete_new_objects(rec_taujet); 00935 delete_new_objects(truth_particle); 00936 delete_new_objects(truth_jet); 00937 // delete_new_objects(truth_electron); 00938 } //for ev<nb_events 00939 00941 // END OF DATA // 00943 00944 m_analysis->end_of_analysis(); 00945 00946 return; 00947 00948 } 00949 00950 //***************************************************************************** 00951 00952 //::::::::::::::::::::::::::::::: 00953 //:: METHOD delete_new_objects :: 00954 //::::::::::::::::::::::::::::::: 00955 00956 void NtupleReaderFast::delete_new_objects(vector<MyParticle*> tmp_vector) { 00957 00958 for (unsigned int i=0; i<tmp_vector.size(); i++){ 00959 delete tmp_vector[i]; 00960 } 00961 00962 return; 00963 00964 } 00965