00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include "NtupleReader/NtupleReader.h"
00014 #include "NtupleReader/MyEvent.h"
00015 #include "NtupleReader/MyTrigger.h"
00016
00017
00018
00019
00020
00021
00022 using namespace std;
00023
00024
00025
00026
00027
00028
00029
00030 void NtupleReader::init(const std::vector<std::string> & file_name,
00031 const std::string & tree_name,
00032 MyAnalysis * analysis) {
00033
00035
00037
00038 if (file_name.size()<1) {
00039 cerr << endl
00040 << "Class NtupleReader, method init: ERROR!\n"
00041 << "No file name given!\n";
00042 exit(1);
00043 }
00044
00045 if (analysis==0) {
00046 cerr << endl
00047 << "Class NtupleReader, method init: ERROR!\n"
00048 << "No analysis class given!\n";
00049 exit(1);
00050 }
00051
00052
00054
00056
00057
00058 TFile *first_file = new TFile(file_name[0].c_str() , "READ");
00059
00060
00061 m_dataset_info = &MyDatasetInfo::Instance();
00062
00063
00064
00065 m_dataset_info->set_scale(double(m_gev));
00066 m_dataset_info->set_TFile(first_file);
00067
00068
00069 TTree *new_aodcontainer_tree = m_dataset_info->get_tree("aod_container_keys")->CloneTree();
00070 TBranch* b_AtlFast_flag = new_aodcontainer_tree->GetBranch("AtlFastFlag");
00071 Bool_t AtlFastFlag;
00072 b_AtlFast_flag->SetAddress(&AtlFastFlag);
00073 b_AtlFast_flag->GetEntry(0);
00074
00075 m_dataset_info->set_AtlFastFlag(AtlFastFlag);
00076
00077
00078
00079 TBranch* b_trackjet_flag = new_aodcontainer_tree->GetBranch("doTrackJets");
00080 Bool_t trackjet_flag;
00081 b_trackjet_flag->SetAddress(&trackjet_flag);
00082 b_trackjet_flag->GetEntry(0);
00083
00084 m_dataset_info->set_trackjet_flag(trackjet_flag);
00085
00086
00087
00088
00089
00090 char char_helper[50] = "";
00091
00092 TString string_release = "0";
00093 TBranch* b_release = new_aodcontainer_tree->GetBranch("release");
00094 if(b_release!=NULL){
00095 b_release->SetAddress(&char_helper);
00096 b_release->GetEntry(0);
00097 string_release = char_helper;
00098 }
00099
00100 string_release.Resize(2);
00101 m_release = string_release.Atoi();
00102
00103 m_dataset_info->set_release(m_release);
00104 cout << "release: " << m_release << endl;
00105
00106 TString string_svnversion = "0";
00107 TBranch* b_svnversion = new_aodcontainer_tree->GetBranch("svnversion");
00108 if(b_svnversion!=NULL){
00109 b_svnversion->SetAddress(&char_helper);
00110 b_svnversion->GetEntry(0);
00111 string_svnversion = char_helper;
00112 }
00113
00114 string_svnversion.Resize(2);
00115 m_svnversion = string_svnversion.Atoi();
00116
00117 m_dataset_info->set_svnversion(m_svnversion);
00118 cout << "svnversion: " << m_svnversion << endl;
00119
00120
00122
00124
00125
00126 m_chain = new TChain(tree_name.c_str());
00127 for (unsigned int k=0; k<file_name.size(); k++) {
00128 m_chain->Add(file_name[k].c_str());
00129 }
00130
00131
00132 RunNumber = 0;
00133 EventNumber = 0;
00134 StreamATLFAST_ref = 0;
00135 Stream1_ref[153] = 0;
00136 Token[153] = 0;
00137 Run = 0;
00138 Event = 0;
00139 Time = 0;
00140 Weight = 0.;
00141 IEvent = 0;
00142
00143 trigger_keys_l1 = 0;
00144 trigger_keys_status_l1 = 0;
00145 trigger_keys_l2 = 0;
00146 trigger_keys_status_l2 = 0;
00147 trigger_keys_ef = 0;
00148 trigger_keys_status_ef = 0;
00149
00150 nb_trigger_mu_lvl1 = 0;
00151 trigger_mu_lvl1_eta = 0;
00152 trigger_mu_lvl1_phi = 0;
00153 trigger_mu_lvl1_threshold_number = 0;
00154 trigger_mu_lvl1_threshold_value = 0;
00155 trigger_mu_lvl1_threshold_name = 0;
00156 nb_trigger_mu_lvl2 = 0;
00157 trigger_mu_lvl2_eta = 0;
00158 trigger_mu_lvl2_phi = 0;
00159 trigger_mu_lvl2_pt = 0;
00160 trigger_mu_lvl2_sigma_pt = 0;
00161 nb_trigger_mu_ef = 0;
00162 trigger_mu_ef_eta = 0;
00163 trigger_mu_ef_phi = 0;
00164 trigger_mu_ef_pt = 0;
00165 trigger_mu_ef_charge1 = 0;
00166 trigger_mu_ef_code = 0;
00167 trigger_met_ex = 0;
00168 trigger_met_ey = 0;
00169 trigger_met_et = 0;
00170 trigger_met_sumEt = 0;
00171
00172
00173 nb_rec_tracks = 0;
00174 track_p_x = 0;
00175 track_p_y = 0;
00176 track_p_z = 0;
00177 track_E = 0;
00178 track_charge = 0;
00179 track_vertex_index = 0;
00180 track_SCThit = 0;
00181 track_Phit = 0;
00182 track_BLayerhit = 0;
00183 track_TRThit = 0;
00184 track_MDThit = 0;
00185 track_CSChit_eta = 0;
00186 track_TGChit_eta = 0;
00187 track_RPChit_eta = 0;
00188 track_CSChit_phi = 0;
00189 track_TGChit_phi = 0;
00190 track_RPChit_phi = 0;
00191 track_d0 = 0;
00192 track_z0 = 0;
00193 track_chi2 = 0;
00194 track_nDoF = 0;
00195 track_trackIsolationEnergy_s = 0;
00196 track_trackIsolationEnergy_0 = 0;
00197 track_trackIsolationEnergy_1 = 0;
00198 track_trackIsolationEnergy_2 = 0;
00199 track_trackIsolationEnergy_3 = 0;
00200
00201 nb_rec_electrons = 0;
00202 e_p_x = 0;
00203 e_p_y = 0;
00204 e_p_z = 0;
00205 e_E = 0;
00206 e_calo_p_x = 0;
00207 e_calo_p_y = 0;
00208 e_calo_p_z = 0;
00209 e_calo_E = 0;
00210 e_charge = 0;
00211 e_NeuralNet = 0;
00212 e_isEM = 0;
00213 e_id_flag = 0;
00214 e_egamma_flag = 0;
00215 e_softe_flag = 0;
00216 e_E_over_p = 0;
00217 e_TRTHighThresholdHits = 0;
00218 e_TRTHits = 0;
00219 e_Et_in_cone_0 = 0;
00220 e_Et_in_cone_1 = 0;
00221 e_Et_in_cone_2 = 0;
00222 e_Et_in_cone_3 = 0;
00223 e_ethad1 = 0;
00224 e_vertex_index = 0;
00225 e_track_Et_in_cone_0 = 0;
00226 e_track_Et_in_cone_1 = 0;
00227 e_track_Et_in_cone_2 = 0;
00228 e_track_Et_in_cone_3 = 0;
00229 e_trackIsolationEnergy_0 = 0;
00230 e_trackIsolationEnergy_1 = 0;
00231 e_trackIsolationEnergy_2 = 0;
00232 e_trackIsolationEnergy_3 = 0;
00233
00234 nb_rec_photons = 0;
00235 p_calo_p_x = 0;
00236 p_calo_p_y = 0;
00237 p_calo_p_z = 0;
00238 p_calo_E = 0;
00239 p_charge = 0;
00240 p_NeuralNet = 0;
00241 p_isEM = 0;
00242 p_egamma_flag = 0;
00243 p_Et_in_cone_0 = 0;
00244 p_Et_in_cone_1 = 0;
00245 p_Et_in_cone_2 = 0;
00246 p_Et_in_cone_3 = 0;
00247
00248 nb_rec_muons = 0;
00249 mu_alg_flag = 0;
00250 mu_p_x = 0;
00251 mu_p_y = 0;
00252 mu_p_z = 0;
00253 mu_E = 0;
00254 mu_charge = 0;
00255 mu_rec_flag = 0;
00256 mu_hasCombinedMuonTrackParticle = 0;
00257 mu_Et_in_cone_0 = 0;
00258 mu_Et_in_cone_1 = 0;
00259 mu_Et_in_cone_2 = 0;
00260 mu_Et_in_cone_3 = 0;
00261 mu_Et_in_cone_4 = 0;
00262 mu_Et_in_cone_5 = 0;
00263 mu_Et_in_cone_6 = 0;
00264 mu_Et_in_cone_7 = 0;
00265 mu_nb_tracks_in_cone_0 = 0;
00266 mu_nb_tracks_in_cone_1 = 0;
00267 mu_nb_tracks_in_cone_2 = 0;
00268 mu_nb_tracks_in_cone_3 = 0;
00269 mu_nb_tracks_in_cone_4 = 0;
00270 mu_nb_tracks_in_cone_5 = 0;
00271 mu_nb_tracks_in_cone_6 = 0;
00272 mu_nb_tracks_in_cone_7 = 0;
00273 mu_fitChi2 = 0;
00274 mu_fitNumberDoF = 0;
00275 mu_fitChi2OverDoF = 0;
00276 mu_matchChi2 = 0;
00277 mu_matchNumberDoF = 0;
00278 mu_matchChi2OverDoF = 0;
00279 mu_vertex_index = 0;
00280 mu_track_Et_in_cone_0 = 0;
00281 mu_track_Et_in_cone_1 = 0;
00282 mu_track_Et_in_cone_2 = 0;
00283 mu_track_Et_in_cone_3 = 0;
00284 mu_track_Et_in_cone_4 = 0;
00285 mu_track_Et_in_cone_5 = 0;
00286 mu_track_Et_in_cone_6 = 0;
00287 mu_track_Et_in_cone_7 = 0;
00288 mu_trackIsolationEnergy_0 = 0;
00289 mu_trackIsolationEnergy_1 = 0;
00290 mu_trackIsolationEnergy_2 = 0;
00291 mu_trackIsolationEnergy_3 = 0;
00292 mu_trackIsolationEnergy_4 = 0;
00293 mu_trackIsolationEnergy_5 = 0;
00294 mu_trackIsolationEnergy_6 = 0;
00295 mu_trackIsolationEnergy_7 = 0;
00296
00297
00298 nb_rec_jets = 0;
00299 jet_p_x = 0;
00300 jet_p_y = 0;
00301 jet_p_z = 0;
00302 jet_E = 0;
00303 jet_flag = 0;
00304 jet_btag_weight = 0;
00305 jet_truthflavor = 0;
00306 jet_nb_tracks = 0;
00307 jet_tracks_charge = 0;
00308 jet_tracks_p_x = 0;
00309 jet_tracks_p_y = 0;
00310 jet_tracks_p_z = 0;
00311 jet_tracks_E = 0;
00312 jet_tracks_vertex_index = 0;
00313
00314 nb_tau_jets = 0;
00315 taujet_p_x = 0;
00316 taujet_p_y = 0;
00317 taujet_p_z = 0;
00318 taujet_E = 0;
00319 taujet_flag = 0;
00320 taujet_charge = 0;
00321 taujet_emRadius = 0;
00322 taujet_isolationFraction = 0;
00323 taujet_centralityFraction = 0;
00324 taujet_nStripCells = 0;
00325 taujet_stripWidth2 = 0;
00326 taujet_llh = 0;
00327 taujet_lowPtTauEleDiscriminant = 0;
00328 taujet_tauENeuralNetwork = 0;
00329 taujet_tauJetNeuralnetwork = 0;
00330 taujet_etHadCalib = 0;
00331 taujet_etEMCalib = 0;
00332 taujet_nb_tracks = 0;
00333 taujet_track_px_1 = 0;
00334 taujet_track_py_1 = 0;
00335 taujet_track_pz_1 = 0;
00336 taujet_track_e_1 = 0;
00337 taujet_track_TRTHighThresholdHits_1 = 0;
00338 taujet_track_TRTHits_1 = 0;
00339 taujet_track_px_2 = 0;
00340 taujet_track_py_2 = 0;
00341 taujet_track_pz_2 = 0;
00342 taujet_track_e_2 = 0;
00343 taujet_track_TRTHighThresholdHits_2 = 0;
00344 taujet_track_TRTHits_2 = 0;
00345 taujet_track_px_3 = 0;
00346 taujet_track_py_3 = 0;
00347 taujet_track_pz_3 = 0;
00348 taujet_track_e_3 = 0;
00349 taujet_track_TRTHighThresholdHits_3 = 0;
00350 taujet_track_TRTHits_3 = 0;
00351
00352 nb_truth_jets = 0;
00353 truth_jet_p_x = 0;
00354 truth_jet_p_y = 0;
00355 truth_jet_p_z = 0;
00356 truth_jet_E = 0;
00357 truth_jet_flag = 0;
00358 truth_jet_btag_weight = 0;
00359
00360 nb_truth_particle_all = 0;
00361 nb_truth_particle = 0;
00362 truth_particle_pt = 0;
00363 truth_particle_status = 0;
00364 truth_particle_barcode = 0;
00365 truth_particle_pdgId = 0;
00366 truth_particle_nDaughters = 0;
00367 truth_particle_p_x = 0;
00368 truth_particle_p_y = 0;
00369 truth_particle_p_z = 0;
00370 truth_particle_E = 0;
00371 truth_particle_charge = 0;
00372 truth_particle_nParents = 0;
00373 truth_particle_mother0_barcode = 0;
00374 truth_particle_mother0_pdgId = 0;
00375 truth_particle_vertex_index = 0;
00376 truth_particle_Et_in_cone_0 = 0;
00377 truth_particle_Et_in_cone_1 = 0;
00378 truth_particle_Et_in_cone_2 = 0;
00379 truth_particle_Et_in_cone_3 = 0;
00380 truth_particle_Et_in_cone_4 = 0;
00381
00382 nb_vertices = 0;
00383 vertex_position_x = 0;
00384 vertex_position_y = 0;
00385 vertex_position_z = 0;
00386 vertex_pos_error_x = 0;
00387 vertex_pos_error_y = 0;
00388 vertex_pos_error_z = 0;
00389 vertex_chi2 = 0;
00390 vertex_ndof = 0;
00391 vertex_Et = 0;
00392 vertex_nb_tracks = 0;
00393
00394 nb_truth_vertices = 0;
00395 truth_vertex_position_x = 0;
00396 truth_vertex_position_y = 0;
00397 truth_vertex_position_z = 0;
00398 truth_vertex_Et = 0;
00399 truth_vertex_nb_tracks = 0;
00400
00401 nb_track_jets = 0;
00402 track_jet_p_x = 0;
00403 track_jet_p_y = 0;
00404 track_jet_p_z = 0;
00405 track_jet_E = 0;
00406
00407 nb_truth_track_jets = 0;
00408 truth_track_jet_p_x = 0;
00409 truth_track_jet_p_y = 0;
00410 truth_track_jet_p_z = 0;
00411 truth_track_jet_E = 0;
00412
00413
00414
00415 m_chain->SetBranchAddress("trigger_keys_l1",&trigger_keys_l1);
00416 m_chain->SetBranchAddress("trigger_keys_status_l1",&trigger_keys_status_l1);
00417 m_chain->SetBranchAddress("trigger_keys_l2",&trigger_keys_l2);
00418 m_chain->SetBranchAddress("trigger_keys_status_l2",&trigger_keys_status_l2);
00419 m_chain->SetBranchAddress("trigger_keys_ef",&trigger_keys_ef);
00420 m_chain->SetBranchAddress("trigger_keys_status_ef",&trigger_keys_status_ef);
00421
00422 m_chain->SetBranchAddress("nb_trigger_mu_lvl1",&nb_trigger_mu_lvl1);
00423 m_chain->SetBranchAddress("trigger_mu_lvl1_eta",&trigger_mu_lvl1_eta);
00424 m_chain->SetBranchAddress("trigger_mu_lvl1_phi",&trigger_mu_lvl1_phi);
00425 m_chain->SetBranchAddress("trigger_mu_lvl1_threshold_name",&trigger_mu_lvl1_threshold_name);
00426 m_chain->SetBranchAddress("trigger_mu_lvl1_threshold_number",&trigger_mu_lvl1_threshold_number);
00427 m_chain->SetBranchAddress("trigger_mu_lvl1_threshold_value",&trigger_mu_lvl1_threshold_value);
00428 m_chain->SetBranchAddress("nb_trigger_mu_lvl2",&nb_trigger_mu_lvl2);
00429 m_chain->SetBranchAddress("trigger_mu_lvl2_eta",&trigger_mu_lvl2_eta);
00430 m_chain->SetBranchAddress("trigger_mu_lvl2_phi",&trigger_mu_lvl2_phi);
00431 m_chain->SetBranchAddress("trigger_mu_lvl2_pt",&trigger_mu_lvl2_pt);
00432 m_chain->SetBranchAddress("trigger_mu_lvl2_sigma_pt",&trigger_mu_lvl2_sigma_pt);
00433 m_chain->SetBranchAddress("nb_trigger_mu_ef",&nb_trigger_mu_ef);
00434 m_chain->SetBranchAddress("trigger_mu_ef_eta",&trigger_mu_ef_eta);
00435 m_chain->SetBranchAddress("trigger_mu_ef_phi",&trigger_mu_ef_phi);
00436 m_chain->SetBranchAddress("trigger_mu_ef_pt",&trigger_mu_ef_pt);
00437 m_chain->SetBranchAddress("trigger_mu_ef_charge1",&trigger_mu_ef_charge1);
00438 m_chain->SetBranchAddress("trigger_mu_ef_code",&trigger_mu_ef_code);
00439 m_chain->SetBranchAddress("trigger_met_ex",&trigger_met_ex);
00440 m_chain->SetBranchAddress("trigger_met_ey",&trigger_met_ey);
00441 m_chain->SetBranchAddress("trigger_met_et",&trigger_met_et);
00442 m_chain->SetBranchAddress("trigger_met_sumEt",&trigger_met_sumEt);
00443
00444
00445 m_chain->SetBranchAddress("RunNumber",&RunNumber);
00446 m_chain->SetBranchAddress("EventNumber",&EventNumber);
00447 m_chain->SetBranchAddress("StreamATLFAST_ref",&StreamATLFAST_ref);
00448 m_chain->SetBranchAddress("Stream1_ref",Stream1_ref);
00449 m_chain->SetBranchAddress("Token",Token);
00450 m_chain->SetBranchAddress("Run",&Run);
00451 m_chain->SetBranchAddress("Event",&Event);
00452 m_chain->SetBranchAddress("Time",&Time);
00453 m_chain->SetBranchAddress("Weight",&Weight);
00454 m_chain->SetBranchAddress("IEvent",&IEvent);
00455
00456 m_chain->SetBranchAddress("nb_rec_tracks",&nb_rec_tracks);
00457 m_chain->SetBranchAddress("track_p_x",&track_p_x);
00458 m_chain->SetBranchAddress("track_p_y",&track_p_y);
00459 m_chain->SetBranchAddress("track_p_z",&track_p_z);
00460 m_chain->SetBranchAddress("track_E",&track_E);
00461 m_chain->SetBranchAddress("track_charge",&track_charge);
00462 m_chain->SetBranchAddress("track_vertex_index",&track_vertex_index);
00463 m_chain->SetBranchAddress("track_SCThit",&track_SCThit);
00464 m_chain->SetBranchAddress("track_Phit",&track_Phit);
00465 m_chain->SetBranchAddress("track_BLayerhit",&track_BLayerhit);
00466 m_chain->SetBranchAddress("track_TRThit",&track_TRThit);
00467 m_chain->SetBranchAddress("track_MDThit",&track_MDThit);
00468 m_chain->SetBranchAddress("track_CSChit_eta",&track_CSChit_eta);
00469 m_chain->SetBranchAddress("track_TGChit_eta",&track_TGChit_eta);
00470 m_chain->SetBranchAddress("track_RPChit_eta",&track_RPChit_eta);
00471 m_chain->SetBranchAddress("track_CSChit_phi",&track_CSChit_phi);
00472 m_chain->SetBranchAddress("track_TGChit_phi",&track_TGChit_phi);
00473 m_chain->SetBranchAddress("track_RPChit_phi",&track_RPChit_phi);
00474 m_chain->SetBranchAddress("track_d0",&track_d0);
00475 m_chain->SetBranchAddress("track_z0",&track_z0);
00476 m_chain->SetBranchAddress("track_chi2",&track_chi2);
00477 m_chain->SetBranchAddress("track_nDoF",&track_nDoF);
00478 m_chain->SetBranchAddress("track_trackIsolationEnergy_s", &track_trackIsolationEnergy_s);
00479 m_chain->SetBranchAddress("track_trackIsolationEnergy_0", &track_trackIsolationEnergy_0);
00480 m_chain->SetBranchAddress("track_trackIsolationEnergy_1", &track_trackIsolationEnergy_1);
00481 m_chain->SetBranchAddress("track_trackIsolationEnergy_2", &track_trackIsolationEnergy_2);
00482 m_chain->SetBranchAddress("track_trackIsolationEnergy_3", &track_trackIsolationEnergy_3);
00483
00484
00485
00486
00487 m_chain->SetBranchAddress("nb_rec_electrons",&nb_rec_electrons);
00488 m_chain->SetBranchAddress("e_p_x",&e_p_x);
00489 m_chain->SetBranchAddress("e_p_y",&e_p_y);
00490 m_chain->SetBranchAddress("e_p_z",&e_p_z);
00491 m_chain->SetBranchAddress("e_E",&e_E);
00492 m_chain->SetBranchAddress("e_calo_p_x",&e_calo_p_x);
00493 m_chain->SetBranchAddress("e_calo_p_y",&e_calo_p_y);
00494 m_chain->SetBranchAddress("e_calo_p_z",&e_calo_p_z);
00495 m_chain->SetBranchAddress("e_calo_E",&e_calo_E);
00496 m_chain->SetBranchAddress("e_charge",&e_charge);
00497 m_chain->SetBranchAddress("e_NeuralNet",&e_NeuralNet);
00498 m_chain->SetBranchAddress("e_isEM",&e_isEM);
00499 if(m_release==13){
00500 m_chain->SetBranchAddress("e_id_flag",&e_id_flag);
00501 }
00502 m_chain->SetBranchAddress("e_egamma_flag",&e_egamma_flag);
00503 m_chain->SetBranchAddress("e_softe_flag",&e_softe_flag);
00504 m_chain->SetBranchAddress("e_E_over_p",&e_E_over_p);
00505 m_chain->SetBranchAddress("e_TRTHighThresholdHits",&e_TRTHighThresholdHits);
00506 m_chain->SetBranchAddress("e_TRTHits",&e_TRTHits);
00507 m_chain->SetBranchAddress("e_ethad1",&e_ethad1);
00508 m_chain->SetBranchAddress("e_Et_in_cone_0",&e_Et_in_cone_0);
00509 m_chain->SetBranchAddress("e_Et_in_cone_1",&e_Et_in_cone_1);
00510 m_chain->SetBranchAddress("e_Et_in_cone_2",&e_Et_in_cone_2);
00511 m_chain->SetBranchAddress("e_Et_in_cone_3",&e_Et_in_cone_3);
00512 m_chain->SetBranchAddress("e_vertex_index",&e_vertex_index);
00513 m_chain->SetBranchAddress("e_track_Et_in_cone_0",&e_track_Et_in_cone_0);
00514 m_chain->SetBranchAddress("e_track_Et_in_cone_1",&e_track_Et_in_cone_1);
00515 m_chain->SetBranchAddress("e_track_Et_in_cone_2",&e_track_Et_in_cone_2);
00516 m_chain->SetBranchAddress("e_track_Et_in_cone_3",&e_track_Et_in_cone_3);
00517 m_chain->SetBranchAddress("e_trackIsolationEnergy_0",&e_trackIsolationEnergy_0);
00518 m_chain->SetBranchAddress("e_trackIsolationEnergy_1",&e_trackIsolationEnergy_1);
00519 m_chain->SetBranchAddress("e_trackIsolationEnergy_2",&e_trackIsolationEnergy_2);
00520 m_chain->SetBranchAddress("e_trackIsolationEnergy_3",&e_trackIsolationEnergy_3);
00521
00522 m_chain->SetBranchAddress("nb_rec_photons",&nb_rec_photons);
00523 m_chain->SetBranchAddress("p_calo_p_x",&p_calo_p_x);
00524 m_chain->SetBranchAddress("p_calo_p_y",&p_calo_p_y);
00525 m_chain->SetBranchAddress("p_calo_p_z",&p_calo_p_z);
00526 m_chain->SetBranchAddress("p_calo_E",&p_calo_E);
00527 m_chain->SetBranchAddress("p_charge",&p_charge);
00528 m_chain->SetBranchAddress("p_NeuralNet",&p_NeuralNet);
00529 m_chain->SetBranchAddress("p_isEM",&p_isEM);
00530 m_chain->SetBranchAddress("p_egamma_flag",&p_egamma_flag);
00531 m_chain->SetBranchAddress("p_Et_in_cone_0",&p_Et_in_cone_0);
00532 m_chain->SetBranchAddress("p_Et_in_cone_1",&p_Et_in_cone_1);
00533 m_chain->SetBranchAddress("p_Et_in_cone_2",&p_Et_in_cone_2);
00534 m_chain->SetBranchAddress("p_Et_in_cone_3",&p_Et_in_cone_3);
00535
00536 m_chain->SetBranchAddress("nb_rec_muons",&nb_rec_muons);
00537 m_chain->SetBranchAddress("mu_alg_flag",&mu_alg_flag);
00538 m_chain->SetBranchAddress("mu_p_x",&mu_p_x);
00539 m_chain->SetBranchAddress("mu_p_y",&mu_p_y);
00540 m_chain->SetBranchAddress("mu_p_z",&mu_p_z);
00541 m_chain->SetBranchAddress("mu_E",&mu_E);
00542 m_chain->SetBranchAddress("mu_charge",&mu_charge);
00543 m_chain->SetBranchAddress("mu_rec_flag",&mu_rec_flag);
00544 m_chain->SetBranchAddress("mu_hasCombinedMuonTrackParticle",&mu_hasCombinedMuonTrackParticle);
00545 m_chain->SetBranchAddress("mu_Et_in_cone_0",&mu_Et_in_cone_0);
00546 m_chain->SetBranchAddress("mu_Et_in_cone_1",&mu_Et_in_cone_1);
00547 m_chain->SetBranchAddress("mu_Et_in_cone_2",&mu_Et_in_cone_2);
00548 m_chain->SetBranchAddress("mu_Et_in_cone_3",&mu_Et_in_cone_3);
00549 m_chain->SetBranchAddress("mu_Et_in_cone_4",&mu_Et_in_cone_4);
00550 m_chain->SetBranchAddress("mu_Et_in_cone_5",&mu_Et_in_cone_5);
00551 m_chain->SetBranchAddress("mu_Et_in_cone_6",&mu_Et_in_cone_6);
00552 m_chain->SetBranchAddress("mu_Et_in_cone_7",&mu_Et_in_cone_7);
00553 m_chain->SetBranchAddress("mu_nb_tracks_in_cone_0",&mu_nb_tracks_in_cone_0);
00554 m_chain->SetBranchAddress("mu_nb_tracks_in_cone_1",&mu_nb_tracks_in_cone_1);
00555 m_chain->SetBranchAddress("mu_nb_tracks_in_cone_2",&mu_nb_tracks_in_cone_2);
00556 m_chain->SetBranchAddress("mu_nb_tracks_in_cone_3",&mu_nb_tracks_in_cone_3);
00557 m_chain->SetBranchAddress("mu_nb_tracks_in_cone_4",&mu_nb_tracks_in_cone_4);
00558 m_chain->SetBranchAddress("mu_nb_tracks_in_cone_5",&mu_nb_tracks_in_cone_5);
00559 m_chain->SetBranchAddress("mu_nb_tracks_in_cone_6",&mu_nb_tracks_in_cone_6);
00560 m_chain->SetBranchAddress("mu_nb_tracks_in_cone_7",&mu_nb_tracks_in_cone_7);
00561 m_chain->SetBranchAddress("mu_fitChi2",&mu_fitChi2);
00562 m_chain->SetBranchAddress("mu_fitNumberDoF",&mu_fitNumberDoF);
00563 m_chain->SetBranchAddress("mu_fitChi2OverDoF",&mu_fitChi2OverDoF);
00564 m_chain->SetBranchAddress("mu_matchChi2",&mu_matchChi2);
00565 m_chain->SetBranchAddress("mu_matchNumberDoF",&mu_matchNumberDoF);
00566 m_chain->SetBranchAddress("mu_matchChi2OverDoF",&mu_matchChi2OverDoF);
00567 m_chain->SetBranchAddress("mu_vertex_index",&mu_vertex_index);
00568 m_chain->SetBranchAddress("mu_track_Et_in_cone_0",&mu_track_Et_in_cone_0);
00569 m_chain->SetBranchAddress("mu_track_Et_in_cone_1",&mu_track_Et_in_cone_1);
00570 m_chain->SetBranchAddress("mu_track_Et_in_cone_2",&mu_track_Et_in_cone_2);
00571 m_chain->SetBranchAddress("mu_track_Et_in_cone_3",&mu_track_Et_in_cone_3);
00572 m_chain->SetBranchAddress("mu_track_Et_in_cone_4",&mu_track_Et_in_cone_4);
00573 m_chain->SetBranchAddress("mu_track_Et_in_cone_5",&mu_track_Et_in_cone_5);
00574 m_chain->SetBranchAddress("mu_track_Et_in_cone_6",&mu_track_Et_in_cone_6);
00575 m_chain->SetBranchAddress("mu_track_Et_in_cone_7",&mu_track_Et_in_cone_7);
00576 m_chain->SetBranchAddress("mu_trackIsolationEnergy_0",&mu_trackIsolationEnergy_0);
00577 m_chain->SetBranchAddress("mu_trackIsolationEnergy_1",&mu_trackIsolationEnergy_1);
00578 m_chain->SetBranchAddress("mu_trackIsolationEnergy_2",&mu_trackIsolationEnergy_2);
00579 m_chain->SetBranchAddress("mu_trackIsolationEnergy_3",&mu_trackIsolationEnergy_3);
00580 m_chain->SetBranchAddress("mu_trackIsolationEnergy_4",&mu_trackIsolationEnergy_4);
00581 m_chain->SetBranchAddress("mu_trackIsolationEnergy_5",&mu_trackIsolationEnergy_5);
00582 m_chain->SetBranchAddress("mu_trackIsolationEnergy_6",&mu_trackIsolationEnergy_6);
00583 m_chain->SetBranchAddress("mu_trackIsolationEnergy_7",&mu_trackIsolationEnergy_7);
00584
00585 m_chain->SetBranchAddress("nb_rec_jets",&nb_rec_jets);
00586 m_chain->SetBranchAddress("jet_p_x",&jet_p_x);
00587 m_chain->SetBranchAddress("jet_p_y",&jet_p_y);
00588 m_chain->SetBranchAddress("jet_p_z",&jet_p_z);
00589 m_chain->SetBranchAddress("jet_E",&jet_E);
00590 m_chain->SetBranchAddress("jet_flag",&jet_flag);
00591 m_chain->SetBranchAddress("jet_btag_weight",&jet_btag_weight);
00592 m_chain->SetBranchAddress("jet_truthflavor",&jet_truthflavor);
00593 m_chain->SetBranchAddress("jet_nb_tracks",&jet_nb_tracks);
00594 m_chain->SetBranchAddress("jet_tracks_charge",&jet_tracks_charge);
00595 m_chain->SetBranchAddress("jet_tracks_p_x",&jet_tracks_p_x);
00596 m_chain->SetBranchAddress("jet_tracks_p_y",&jet_tracks_p_y);
00597 m_chain->SetBranchAddress("jet_tracks_p_z",&jet_tracks_p_z);
00598 m_chain->SetBranchAddress("jet_tracks_E",&jet_tracks_E);
00599 m_chain->SetBranchAddress("jet_tracks_vertex_index",&jet_tracks_vertex_index);
00600 m_chain->SetBranchAddress("nb_tau_jets",&nb_tau_jets);
00601 m_chain->SetBranchAddress("taujet_p_x",&taujet_p_x);
00602 m_chain->SetBranchAddress("taujet_p_y",&taujet_p_y);
00603 m_chain->SetBranchAddress("taujet_p_z",&taujet_p_z);
00604 m_chain->SetBranchAddress("taujet_E",&taujet_E);
00605 m_chain->SetBranchAddress("taujet_flag",&taujet_flag);
00606 m_chain->SetBranchAddress("taujet_charge",&taujet_charge);
00607 m_chain->SetBranchAddress("taujet_emRadius",&taujet_emRadius);
00608 m_chain->SetBranchAddress("taujet_isolationFraction",&taujet_isolationFraction);
00609 m_chain->SetBranchAddress("taujet_centralityFraction",&taujet_centralityFraction);
00610 m_chain->SetBranchAddress("taujet_stripWidth2",&taujet_stripWidth2);
00611 m_chain->SetBranchAddress("taujet_nStripCells",&taujet_nStripCells);
00612 m_chain->SetBranchAddress("taujet_llh",&taujet_llh);
00613 m_chain->SetBranchAddress("taujet_lowPtTauEleDiscriminant",&taujet_lowPtTauEleDiscriminant);
00614 m_chain->SetBranchAddress("taujet_tauENeuralNetwork",&taujet_tauENeuralNetwork);
00615 m_chain->SetBranchAddress("taujet_tauJetNeuralnetwork",&taujet_tauJetNeuralnetwork);
00616 m_chain->SetBranchAddress("taujet_etHadCalib",&taujet_etHadCalib);
00617 m_chain->SetBranchAddress("taujet_etEMCalib",&taujet_etEMCalib);
00618 m_chain->SetBranchAddress("taujet_nb_tracks",&taujet_nb_tracks);
00619 m_chain->SetBranchAddress("taujet_track_px_1",&taujet_track_px_1);
00620 m_chain->SetBranchAddress("taujet_track_py_1",&taujet_track_py_1);
00621 m_chain->SetBranchAddress("taujet_track_pz_1",&taujet_track_pz_1);
00622 m_chain->SetBranchAddress("taujet_track_e_1",&taujet_track_e_1);
00623 m_chain->SetBranchAddress("taujet_track_TRTHighThresholdHits_1",&taujet_track_TRTHighThresholdHits_1);
00624 m_chain->SetBranchAddress("taujet_track_TRTHits_1",&taujet_track_TRTHits_1);
00625 m_chain->SetBranchAddress("taujet_track_px_2",&taujet_track_px_2);
00626 m_chain->SetBranchAddress("taujet_track_py_2",&taujet_track_py_2);
00627 m_chain->SetBranchAddress("taujet_track_pz_2",&taujet_track_pz_2);
00628 m_chain->SetBranchAddress("taujet_track_e_2",&taujet_track_e_2);
00629 m_chain->SetBranchAddress("taujet_track_TRTHighThresholdHits_2",&taujet_track_TRTHighThresholdHits_2);
00630 m_chain->SetBranchAddress("taujet_track_TRTHits_2",&taujet_track_TRTHits_2);
00631 m_chain->SetBranchAddress("taujet_track_px_3",&taujet_track_px_3);
00632 m_chain->SetBranchAddress("taujet_track_py_3",&taujet_track_py_3);
00633 m_chain->SetBranchAddress("taujet_track_pz_3",&taujet_track_pz_3);
00634 m_chain->SetBranchAddress("taujet_track_e_3",&taujet_track_e_3);
00635 m_chain->SetBranchAddress("taujet_track_TRTHighThresholdHits_3",&taujet_track_TRTHighThresholdHits_3);
00636 m_chain->SetBranchAddress("taujet_track_TRTHits_3",&taujet_track_TRTHits_3);
00637 m_chain->SetBranchAddress("nb_truth_jets",&nb_truth_jets);
00638 m_chain->SetBranchAddress("truth_jet_p_x",&truth_jet_p_x);
00639 m_chain->SetBranchAddress("truth_jet_p_y",&truth_jet_p_y);
00640 m_chain->SetBranchAddress("truth_jet_p_z",&truth_jet_p_z);
00641 m_chain->SetBranchAddress("truth_jet_E",&truth_jet_E);
00642 m_chain->SetBranchAddress("truth_jet_flag",&truth_jet_flag);
00643 m_chain->SetBranchAddress("truth_jet_btag_weight",&truth_jet_btag_weight);
00644 m_chain->SetBranchAddress("nb_truth_particle_all",&nb_truth_particle_all);
00645 m_chain->SetBranchAddress("nb_truth_particle",&nb_truth_particle);
00646 m_chain->SetBranchAddress("truth_particle_pt",&truth_particle_pt);
00647 m_chain->SetBranchAddress("truth_particle_status",&truth_particle_status);
00648 m_chain->SetBranchAddress("truth_particle_barcode",&truth_particle_barcode);
00649 m_chain->SetBranchAddress("truth_particle_pdgId",&truth_particle_pdgId);
00650 m_chain->SetBranchAddress("truth_particle_nDaughters",&truth_particle_nDaughters);
00651 m_chain->SetBranchAddress("truth_particle_p_x",&truth_particle_p_x);
00652 m_chain->SetBranchAddress("truth_particle_p_y",&truth_particle_p_y);
00653 m_chain->SetBranchAddress("truth_particle_p_z",&truth_particle_p_z);
00654 m_chain->SetBranchAddress("truth_particle_E",&truth_particle_E);
00655 m_chain->SetBranchAddress("truth_particle_charge",&truth_particle_charge);
00656 m_chain->SetBranchAddress("truth_particle_nParents",&truth_particle_nParents);
00657 m_chain->SetBranchAddress("truth_particle_mother0_barcode",&truth_particle_mother0_barcode);
00658 m_chain->SetBranchAddress("truth_particle_mother0_pdgId",&truth_particle_mother0_pdgId);
00659 m_chain->SetBranchAddress("truth_particle_vertex_index",&truth_particle_vertex_index);
00660 m_chain->SetBranchAddress("truth_particle_Et_in_cone_0",&truth_particle_Et_in_cone_0);
00661 m_chain->SetBranchAddress("truth_particle_Et_in_cone_1",&truth_particle_Et_in_cone_1);
00662 m_chain->SetBranchAddress("truth_particle_Et_in_cone_2",&truth_particle_Et_in_cone_2);
00663 m_chain->SetBranchAddress("truth_particle_Et_in_cone_3",&truth_particle_Et_in_cone_3);
00664 m_chain->SetBranchAddress("truth_particle_Et_in_cone_4",&truth_particle_Et_in_cone_4);
00665
00666 missing_Et_object = new vector<string>;
00667 missing_Etx = new vector<double>;
00668 missing_Ety = new vector<double>;
00669 missing_Et = new vector<double>;
00670 missing_Etsum = new vector<double>;
00671 m_chain->SetBranchAddress("missing_Et_object",&missing_Et_object);
00672 m_chain->SetBranchAddress("missing_Etx",&missing_Etx);
00673 m_chain->SetBranchAddress("missing_Ety",&missing_Ety);
00674 m_chain->SetBranchAddress("missing_Et",&missing_Et);
00675 m_chain->SetBranchAddress("missing_Etsum",&missing_Etsum);
00676
00677 m_chain->SetBranchAddress("nb_vertices",&nb_vertices);
00678 m_chain->SetBranchAddress("vertex_position_x",&vertex_position_x);
00679 m_chain->SetBranchAddress("vertex_position_y",&vertex_position_y);
00680 m_chain->SetBranchAddress("vertex_position_z",&vertex_position_z);
00681 m_chain->SetBranchAddress("vertex_pos_error_x",&vertex_pos_error_x);
00682 m_chain->SetBranchAddress("vertex_pos_error_y",&vertex_pos_error_y);
00683 m_chain->SetBranchAddress("vertex_pos_error_z",&vertex_pos_error_z);
00684 m_chain->SetBranchAddress("vertex_chi2",&vertex_chi2);
00685 m_chain->SetBranchAddress("vertex_ndof",&vertex_ndof);
00686 m_chain->SetBranchAddress("vertex_Et",&vertex_Et);
00687 m_chain->SetBranchAddress("vertex_nb_tracks",&vertex_nb_tracks);
00688
00689 m_chain->SetBranchAddress("nb_truth_vertices",&nb_truth_vertices);
00690 m_chain->SetBranchAddress("truth_vertex_position_x",&truth_vertex_position_x);
00691 m_chain->SetBranchAddress("truth_vertex_position_y",&truth_vertex_position_y);
00692 m_chain->SetBranchAddress("truth_vertex_position_z",&truth_vertex_position_z);
00693 m_chain->SetBranchAddress("truth_vertex_Et",&truth_vertex_Et);
00694 m_chain->SetBranchAddress("truth_vertex_nb_tracks",&truth_vertex_nb_tracks);
00695
00696 m_chain->SetBranchAddress("nb_track_jets",&nb_track_jets);
00697 m_chain->SetBranchAddress("track_jet_p_x",&track_jet_p_x);
00698 m_chain->SetBranchAddress("track_jet_p_y",&track_jet_p_y);
00699 m_chain->SetBranchAddress("track_jet_p_z",&track_jet_p_z);
00700 m_chain->SetBranchAddress("track_jet_E",&track_jet_E);
00701
00702 m_chain->SetBranchAddress("nb_truth_track_jets",&nb_truth_track_jets);
00703 m_chain->SetBranchAddress("truth_track_jet_p_x",&truth_track_jet_p_x);
00704 m_chain->SetBranchAddress("truth_track_jet_p_y",&truth_track_jet_p_y);
00705 m_chain->SetBranchAddress("truth_track_jet_p_z",&truth_track_jet_p_z);
00706 m_chain->SetBranchAddress("truth_track_jet_E",&truth_track_jet_E);
00707
00708
00710
00712
00713 m_analysis = analysis;
00714 m_analysis->initialize();
00715
00716 return;
00717
00718 }
00719
00720
00721
00722
00723
00724
00725
00726 void NtupleReader::destruct(void) {
00727 delete missing_Et_object;
00728 return;
00729
00730 }
00731
00732
00733
00734
00735
00736
00737
00738 void NtupleReader::event_loop(Int_t nb_events, Int_t first_event) {
00740
00742
00743
00744
00745 if(first_event<0){
00746 cerr<<"You cant skip a negative number of events!"<<endl;
00747 exit(1);
00748 }
00749
00750 if(nb_events < 0){
00751 nb_events = m_chain->GetEntries()-first_event;
00752 cout <<nb_events<<endl;
00753 }
00754
00755 if( first_event+nb_events > m_chain->GetEntries() ){
00756 nb_events = m_chain->GetEntries()-first_event;
00757 cout << "WARNING: first_event+nb_events > m_chain->GetEntries()" << endl;
00758 }
00759
00760 cout << "event_loop"<<endl;
00761 cout << "events: " << nb_events << endl;
00762
00763 if(first_event>0){
00764 cout<<"Skipping the first "<<first_event<<" events!"<<endl;
00765 }
00766
00767 TLorentzVector tmp_tlv;
00768 TLorentzVector tmp_tlv2;
00769
00770 Long64_t last_ev=first_event+nb_events;
00771
00772 for (Long64_t ev=first_event; ev<last_ev; ev++) {
00773
00774
00775 if (ev-first_event!=0 && (ev-first_event)%2000==0) {
00776 cout << ev-first_event << " Events read."<<endl;
00777 }
00778
00779
00780
00781 m_chain->GetEntry(ev);
00782
00783
00784
00785
00786 if(trigger_keys_l1->size()!=trigger_keys_status_l1->size()){
00787 cerr<<"Unequal vector size in trigger"<<endl;
00788 cerr<<"Keys size: "<<trigger_keys_l1->size()<<endl;
00789 cerr<<"Status size: "<<trigger_keys_status_l1->size()<<endl;
00790 exit(1);
00791 }
00792
00793 m_trigger = new MyTrigger(true, true, true,
00794 *trigger_keys_l1,
00795 *trigger_keys_status_l1,
00796 *trigger_keys_l2,
00797 *trigger_keys_status_l2,
00798 *trigger_keys_ef,
00799 *trigger_keys_status_ef);
00800
00801
00802 vector<MyParticle*> trigger_muon[3];
00803 vector<MyParticle*> trigger_mu_lvl1(0);
00804 vector<MyParticle*> trigger_mu_lvl2(0);
00805 vector<MyParticle*> trigger_mu_ef(0);
00806 if(m_release==12 && m_svnversion>=49){
00807
00808 for (int k=0; k<nb_trigger_mu_lvl1; k++) {
00809 tmp_tlv.SetPtEtaPhiM(m_gev * ((*trigger_mu_lvl1_threshold_value)[k]),
00810 ((*trigger_mu_lvl1_eta)[k]),
00811 ((*trigger_mu_lvl1_phi)[k]),
00812 0);
00813 trigger_mu_lvl1.push_back(new MyTriggerMuon(tmp_tlv,
00814 0,0,-1));
00815 }
00816
00817 for (int k=0; k<nb_trigger_mu_lvl2; k++) {
00818 tmp_tlv.SetPtEtaPhiM(m_gev * ((*trigger_mu_lvl2_pt)[k]),
00819 ((*trigger_mu_lvl2_eta)[k]),
00820 ((*trigger_mu_lvl2_phi)[k]),
00821 0);
00822 trigger_mu_lvl2.push_back(new MyTriggerMuon(tmp_tlv,
00823 0,
00824 ((*trigger_mu_lvl2_sigma_pt)[k]),
00825 -1));
00826 }
00827
00828 for (int k=0; k<nb_trigger_mu_ef; k++) {
00829 tmp_tlv.SetPtEtaPhiM(m_gev * ((*trigger_mu_ef_pt)[k]),
00830 ((*trigger_mu_ef_eta)[k]),
00831 ((*trigger_mu_ef_phi)[k]),
00832 0);
00833 trigger_mu_ef.push_back(new MyTriggerMuon(tmp_tlv,
00834 ((*trigger_mu_ef_charge1)[k]),
00835 0,
00836 ((*trigger_mu_ef_code)[k])));
00837 }
00838 }
00839 trigger_muon[0]=trigger_mu_lvl1;
00840 trigger_muon[1]=trigger_mu_lvl2;
00841 trigger_muon[2]=trigger_mu_ef;
00842
00843
00844
00845 MyMissingEt* tmp_trigger_met = new MyMissingEt("MET_trigger_ef",
00846 m_gev * trigger_met_ex,
00847 m_gev * trigger_met_ey,
00848 m_gev * trigger_met_sumEt);
00849
00850
00851
00852 vector<MyParticle*> rec_electron(nb_rec_electrons);
00853 for (int k=0; k<nb_rec_electrons; k++) {
00854 double et_cone[4];
00855 if (e_Et_in_cone_0->size()!=0) {
00856 et_cone[0] = m_gev * ((*e_Et_in_cone_0)[k]);
00857 et_cone[1] = m_gev * ((*e_Et_in_cone_1)[k]);
00858 et_cone[2] = m_gev * ((*e_Et_in_cone_2)[k]);
00859 et_cone[3] = m_gev * ((*e_Et_in_cone_3)[k]);
00860 } else {
00861 et_cone[0] = 0.0;
00862 et_cone[1] = 0.0;
00863 et_cone[2] = 0.0;
00864 et_cone[3] = 0.0;
00865 }
00866
00867 vector<double> track_et_cone(4);
00868 if (e_track_Et_in_cone_0->size()!=0) {
00869 track_et_cone[0] = m_gev*((*e_track_Et_in_cone_0)[k]);
00870 track_et_cone[1] = m_gev*((*e_track_Et_in_cone_1)[k]);
00871 track_et_cone[2] = m_gev*((*e_track_Et_in_cone_2)[k]);
00872 track_et_cone[3] = m_gev*((*e_track_Et_in_cone_3)[k]);
00873 } else {
00874 track_et_cone[0] = 0.0;
00875 track_et_cone[1] = 0.0;
00876 track_et_cone[2] = 0.0;
00877 track_et_cone[3] = 0.0;
00878 }
00879
00880 vector<double> trackIsolationEnergy(4);
00881 if (e_trackIsolationEnergy_0->size()!=0) {
00882 trackIsolationEnergy[0] = m_gev*((*e_trackIsolationEnergy_0)[k]);
00883 trackIsolationEnergy[1] = m_gev*((*e_trackIsolationEnergy_1)[k]);
00884 trackIsolationEnergy[2] = m_gev*((*e_trackIsolationEnergy_2)[k]);
00885 trackIsolationEnergy[3] = m_gev*((*e_trackIsolationEnergy_3)[k]);
00886 } else {
00887 trackIsolationEnergy[0] = 0.0;
00888 trackIsolationEnergy[1] = 0.0;
00889 trackIsolationEnergy[2] = 0.0;
00890 trackIsolationEnergy[3] = 0.0;
00891 }
00892
00893 tmp_tlv.SetPxPyPzE(m_gev * ((*e_calo_p_x)[k]),
00894 m_gev * ((*e_calo_p_y)[k]),
00895 m_gev * ((*e_calo_p_z)[k]),
00896 m_gev * ((*e_calo_E)[k]));
00897 tmp_tlv2.SetPxPyPzE(m_gev * ((*e_p_x)[k]),
00898 m_gev * ((*e_p_y)[k]),
00899 m_gev * ((*e_p_z)[k]),
00900 m_gev * ((*e_E)[k]));
00901
00902 rec_electron[k] =
00903 new MyElectron(tmp_tlv,tmp_tlv2,
00904 (*e_charge)[k],
00905 (*e_egamma_flag)[k],
00906 (*e_softe_flag)[k],
00907 (*e_E_over_p)[k],
00908 (*e_isEM)[k],
00909 (*e_NeuralNet)[k],
00910 k,
00911 et_cone,
00912 m_gev * ((*e_ethad1)[k]),
00913 &track_et_cone,
00914 (*e_vertex_index)[k],
00915 &trackIsolationEnergy);
00916
00917
00918 if(m_release>=13 && m_svnversion>=3){
00919 ((MyElectron*)(rec_electron[k]))->set_id_flag((*e_id_flag)[k]);
00920 }
00921
00922 }
00923
00924
00925 vector<MyParticle*> rec_photon(nb_rec_photons);
00926
00927 for (int k=0; k<nb_rec_photons; k++) {
00928 double et_cone[4];
00929 if (p_Et_in_cone_0->size()!=0) {
00930 et_cone[0] = m_gev * ((*p_Et_in_cone_0)[k]);
00931 et_cone[1] = m_gev * ((*p_Et_in_cone_1)[k]);
00932 et_cone[2] = m_gev * ((*p_Et_in_cone_2)[k]);
00933 et_cone[3] = m_gev * ((*p_Et_in_cone_3)[k]);
00934 } else {
00935 et_cone[0] = 0.0;
00936 et_cone[1] = 0.0;
00937 et_cone[2] = 0.0;
00938 et_cone[3] = 0.0;
00939 }
00940 if (isnan((*p_calo_p_x)[k])
00941 ||isnan((*p_calo_p_y)[k])||isnan((*p_calo_p_z)[k])||isnan((*p_calo_E)[k])) {
00942 cerr<<"WARNING: photon is 'nan'!"<<endl;
00943 cerr<<"p_x= "<<(*p_calo_p_x)[k]<<endl;
00944 cerr<<"p_y= "<<(*p_calo_p_y)[k]<<endl;
00945 cerr<<"p_z= "<<(*p_calo_p_z)[k]<<endl;
00946 cerr<<"E= "<<(*p_calo_E)[k]<<endl;
00947 cerr<<"isem= "<<(*p_isEM)[k]<<endl;
00948 tmp_tlv.SetPtEtaPhiE(0,0,0,0);
00949 }
00950 else {
00951 tmp_tlv.SetPxPyPzE(m_gev * ((*p_calo_p_x)[k]),
00952 m_gev * ((*p_calo_p_y)[k]),
00953 m_gev * ((*p_calo_p_z)[k]),
00954 m_gev * ((*p_calo_E)[k]));
00955 }
00956 rec_photon[k] =
00957 new MyPhoton(tmp_tlv,
00958 (*p_charge)[k],
00959 (*p_egamma_flag)[k],
00960 (*p_isEM)[k],
00961 (*p_NeuralNet)[k],
00962 k,
00963 et_cone);
00964
00965
00966
00967
00968
00969
00970
00971
00972
00973
00974
00975 }
00976
00977
00978 vector<MyParticle*> rec_muon(nb_rec_muons);
00979 for (int k=0; k<nb_rec_muons; k++) {
00980 double Et_cone[8];
00981 if (mu_Et_in_cone_0->size()!=0) {
00982 Et_cone[0] = m_gev * ((*mu_Et_in_cone_0)[k]);
00983 Et_cone[1] = m_gev * ((*mu_Et_in_cone_1)[k]);
00984 Et_cone[2] = m_gev * ((*mu_Et_in_cone_2)[k]);
00985 Et_cone[3] = m_gev * ((*mu_Et_in_cone_3)[k]);
00986 Et_cone[4] = m_gev * ((*mu_Et_in_cone_4)[k]);
00987 Et_cone[5] = m_gev * ((*mu_Et_in_cone_5)[k]);
00988 Et_cone[6] = m_gev * ((*mu_Et_in_cone_6)[k]);
00989 Et_cone[7] = m_gev * ((*mu_Et_in_cone_7)[k]);
00990 } else {
00991 Et_cone[0] = 0.0;
00992 Et_cone[1] = 0.0;
00993 Et_cone[2] = 0.0;
00994 Et_cone[3] = 0.0;
00995 Et_cone[4] = 0.0;
00996 Et_cone[5] = 0.0;
00997 Et_cone[6] = 0.0;
00998 Et_cone[7] = 0.0;
00999 }
01000
01001 int nb_tracks_cone[8];
01002 if (mu_nb_tracks_in_cone_0->size()!=0) {
01003 nb_tracks_cone[0] = (*mu_nb_tracks_in_cone_0)[k];
01004 nb_tracks_cone[1] = (*mu_nb_tracks_in_cone_1)[k];
01005 nb_tracks_cone[2] = (*mu_nb_tracks_in_cone_2)[k];
01006 nb_tracks_cone[3] = (*mu_nb_tracks_in_cone_3)[k];
01007 nb_tracks_cone[4] = (*mu_nb_tracks_in_cone_4)[k];
01008 nb_tracks_cone[5] = (*mu_nb_tracks_in_cone_5)[k];
01009 nb_tracks_cone[6] = (*mu_nb_tracks_in_cone_6)[k];
01010 nb_tracks_cone[7] = (*mu_nb_tracks_in_cone_7)[k];
01011 } else{
01012 nb_tracks_cone[0] = 0;
01013 nb_tracks_cone[1] = 0;
01014 nb_tracks_cone[2] = 0;
01015 nb_tracks_cone[3] = 0;
01016 nb_tracks_cone[4] = 0;
01017 nb_tracks_cone[5] = 0;
01018 nb_tracks_cone[6] = 0;
01019 nb_tracks_cone[7] = 0;
01020 }
01021
01022 vector<double> track_et_cone(8);
01023 if (mu_track_Et_in_cone_0->size()!=0) {
01024 track_et_cone[0] = m_gev*((*mu_track_Et_in_cone_0)[k]);
01025 track_et_cone[1] = m_gev*((*mu_track_Et_in_cone_1)[k]);
01026 track_et_cone[2] = m_gev*((*mu_track_Et_in_cone_2)[k]);
01027 track_et_cone[3] = m_gev*((*mu_track_Et_in_cone_3)[k]);
01028 track_et_cone[4] = m_gev*((*mu_track_Et_in_cone_4)[k]);
01029 track_et_cone[5] = m_gev*((*mu_track_Et_in_cone_5)[k]);
01030 track_et_cone[6] = m_gev*((*mu_track_Et_in_cone_6)[k]);
01031 track_et_cone[7] = m_gev*((*mu_track_Et_in_cone_7)[k]);
01032 } else {
01033 track_et_cone[0] = 0.0;
01034 track_et_cone[1] = 0.0;
01035 track_et_cone[2] = 0.0;
01036 track_et_cone[3] = 0.0;
01037 track_et_cone[4] = 0.0;
01038 track_et_cone[5] = 0.0;
01039 track_et_cone[6] = 0.0;
01040 track_et_cone[7] = 0.0;
01041 }
01042 vector<double> trackIsolationEnergy(8);
01043 if (mu_trackIsolationEnergy_0->size()!=0) {
01044 trackIsolationEnergy[0] = m_gev*((*mu_trackIsolationEnergy_0)[k]);
01045 trackIsolationEnergy[1] = m_gev*((*mu_trackIsolationEnergy_1)[k]);
01046 trackIsolationEnergy[2] = m_gev*((*mu_trackIsolationEnergy_2)[k]);
01047 trackIsolationEnergy[3] = m_gev*((*mu_trackIsolationEnergy_3)[k]);
01048 trackIsolationEnergy[4] = m_gev*((*mu_trackIsolationEnergy_4)[k]);
01049 trackIsolationEnergy[5] = m_gev*((*mu_trackIsolationEnergy_5)[k]);
01050 trackIsolationEnergy[6] = m_gev*((*mu_trackIsolationEnergy_6)[k]);
01051 trackIsolationEnergy[7] = m_gev*((*mu_trackIsolationEnergy_7)[k]);
01052 } else {
01053 trackIsolationEnergy[0] = 0.0;
01054 trackIsolationEnergy[1] = 0.0;
01055 trackIsolationEnergy[2] = 0.0;
01056 trackIsolationEnergy[3] = 0.0;
01057 trackIsolationEnergy[4] = 0.0;
01058 trackIsolationEnergy[5] = 0.0;
01059 trackIsolationEnergy[6] = 0.0;
01060 trackIsolationEnergy[7] = 0.0;
01061 }
01062 tmp_tlv.SetPxPyPzE(m_gev * ((*mu_p_x)[k]),
01063 m_gev * ((*mu_p_y)[k]),
01064 m_gev * ((*mu_p_z)[k]),
01065 m_gev * ((*mu_E)[k]));
01066
01067
01068 rec_muon[k] =
01069 new MyMuon(tmp_tlv,
01070 (*mu_charge)[k],
01071 (*mu_alg_flag)[k],
01072 (*mu_rec_flag)[k],
01073 k,
01074 Et_cone,
01075 nb_tracks_cone,
01076 (*mu_fitChi2)[k],
01077 (*mu_fitNumberDoF)[k],
01078 (*mu_fitChi2OverDoF)[k],
01079 (*mu_matchChi2)[k],
01080 (*mu_matchNumberDoF)[k],
01081 (*mu_matchChi2OverDoF)[k],
01082 (*mu_hasCombinedMuonTrackParticle)[k],
01083 &track_et_cone,
01084 (*mu_vertex_index)[k],
01085 &trackIsolationEnergy);
01086
01087 }
01088
01089
01091
01092 int off=0;
01093 v_jet_tracks_charge = vector< vector<double> >(nb_rec_jets);
01094 v_jet_tracks_vertex_index = vector< vector<int> >(nb_rec_jets);
01095 v_jet_tracks_tlv = vector< vector<TLorentzVector> >(nb_rec_jets);
01096
01097 int sumtrk=0;
01098 for (int i=0;i<nb_rec_jets;i++) {
01099
01100
01101 if (i!=0) off=off+(*jet_nb_tracks)[i-1];
01102
01103 v_jet_tracks_charge[i]=vector<double>((*jet_nb_tracks)[i],0.);
01104 v_jet_tracks_vertex_index[i]=vector<int>((*jet_nb_tracks)[i],0);
01105 v_jet_tracks_tlv[i]=vector<TLorentzVector>((*jet_nb_tracks)[i],0.);
01106
01107 sumtrk=sumtrk+(*jet_nb_tracks)[i];
01108
01109 for (int j=0;j<(*jet_nb_tracks)[i];j++) {
01110
01111 v_jet_tracks_vertex_index[i][j] = -1;
01112
01113 v_jet_tracks_charge[i][j]=(*jet_tracks_charge)[j+off];
01114
01115 if(m_release>=12 && m_svnversion>=46){
01116 v_jet_tracks_vertex_index[i][j]=(*jet_tracks_vertex_index)[j+off];
01117 }
01118 v_jet_tracks_tlv[i][j].SetPxPyPzE(m_gev *(*jet_tracks_p_x)[j+off],
01119 m_gev *(*jet_tracks_p_y)[j+off],
01120 m_gev *(*jet_tracks_p_z)[j+off],
01121 m_gev *(*jet_tracks_E)[j+off]);
01122 }
01123
01124
01125
01126 }
01127
01128
01129 vector<MyParticle*> rec_jet(nb_rec_jets);
01130 for (int k=0; k<nb_rec_jets; k++) {
01131
01132
01133
01134
01135
01136
01137
01138
01139
01140
01141
01142 rec_jet[k] =
01143 new MyParticleJet(
01144 TLorentzVector(m_gev * ((*jet_p_x)[k]),
01145 m_gev * ((*jet_p_y)[k]),
01146 m_gev * ((*jet_p_z)[k]),
01147 m_gev * ((*jet_E)[k])
01148 ),
01149 (*jet_flag)[k],
01150 k,
01151 (*jet_btag_weight)[k],
01152 (*jet_truthflavor)[k],
01153 false,
01154 (*jet_nb_tracks)[k],
01155 v_jet_tracks_charge[k],
01156 v_jet_tracks_tlv[k],
01157 v_jet_tracks_vertex_index[k]
01158 );
01159 }
01160
01161
01162 vector<MyParticle*> truth_jet(nb_truth_jets);
01163 for (int k=0; k<nb_truth_jets; k++) {
01164 truth_jet[k] =
01165 new MyParticleJet(
01166 TLorentzVector(m_gev * ((*truth_jet_p_x)[k]),
01167 m_gev * ((*truth_jet_p_y)[k]),
01168 m_gev * ((*truth_jet_p_z)[k]),
01169 m_gev * ((*truth_jet_E)[k])
01170 ),
01171 (*truth_jet_flag)[k],
01172 k,
01173 (*truth_jet_btag_weight)[k],
01174 0,
01175 true,
01176 0,
01177 std::vector<double>(0),
01178 std::vector<TLorentzVector>(0),
01179 std::vector<int>(0)
01180 );
01181 }
01182
01183
01184 vector<MyParticle*> rec_taujet(nb_tau_jets);
01185 TLorentzVector tmp_tlvtau;
01186
01187 for (int k=0; k<nb_tau_jets; k++) {
01188
01189
01190
01191
01192
01193
01194
01195
01196
01197
01198 if ( (*taujet_E)[k]>0 ) {
01199 tmp_tlvtau.SetPxPyPzE( m_gev * ((*taujet_p_x)[k]),
01200 m_gev * ((*taujet_p_y)[k]),
01201 m_gev * ((*taujet_p_z)[k]),
01202 m_gev * ((*taujet_E)[k]) );
01203 }else{
01204 tmp_tlvtau.SetPtEtaPhiE( 0.0, 0.0, 0.0, 0.0 );
01205 cerr<< "WARNING tau with 0 energy \n";
01206 }
01207
01208 rec_taujet[k] =
01209 new MyTauJet(tmp_tlvtau,
01210
01211
01212
01213
01214
01215 (*taujet_charge)[k],
01216 (*taujet_flag)[k],
01217 k,
01218 (*taujet_emRadius)[k],
01219 (*taujet_isolationFraction)[k],
01220 (*taujet_centralityFraction)[k],
01221 (*taujet_stripWidth2)[k],
01222 (*taujet_nStripCells)[k],
01223 (*taujet_llh)[k],
01224 (*taujet_lowPtTauEleDiscriminant)[k],
01225 (*taujet_tauENeuralNetwork)[k],
01226 (*taujet_tauJetNeuralnetwork)[k],
01227 m_gev * (*taujet_etHadCalib)[k],
01228 m_gev * (*taujet_etEMCalib)[k],
01229 (*taujet_nb_tracks)[k],
01230 TLorentzVector(m_gev * ((*taujet_track_px_1)[k]),
01231 m_gev * ((*taujet_track_py_1)[k]),
01232 m_gev * ((*taujet_track_pz_1)[k]),
01233 m_gev * ((*taujet_track_e_1)[k])),
01234 TLorentzVector(m_gev * ((*taujet_track_px_2)[k]),
01235 m_gev * ((*taujet_track_py_2)[k]),
01236 m_gev * ((*taujet_track_pz_2)[k]),
01237 m_gev * ((*taujet_track_e_2)[k])),
01238 TLorentzVector(m_gev * ((*taujet_track_px_3)[k]),
01239 m_gev * ((*taujet_track_py_3)[k]),
01240 m_gev * ((*taujet_track_pz_3)[k]),
01241 m_gev * ((*taujet_track_e_3)[k])),
01242 (*taujet_track_TRTHits_1)[k],
01243 (*taujet_track_TRTHighThresholdHits_1)[k],
01244 (*taujet_track_TRTHits_2)[k],
01245 (*taujet_track_TRTHighThresholdHits_2)[k],
01246 (*taujet_track_TRTHits_3)[k],
01247 (*taujet_track_TRTHighThresholdHits_3)[k]
01248 );
01249 }
01250
01251
01252
01253
01254 vector<MyParticle*> truth_particle(nb_truth_particle);
01255 for (int k=0; k<nb_truth_particle; k++) {
01256 truth_particle[k] =
01257 new MyTruthParticle(
01258 TLorentzVector(m_gev * ((*truth_particle_p_x)[k]),
01259 m_gev * ((*truth_particle_p_y)[k]),
01260 m_gev * ((*truth_particle_p_z)[k]),
01261 m_gev * ((*truth_particle_E)[k])
01262 ),
01263 (*truth_particle_charge)[k],
01264 (*truth_particle_pdgId)[k],
01265 (*truth_particle_barcode)[k],
01266 (*truth_particle_status)[k],
01267 (*truth_particle_nParents)[k],
01268 (*truth_particle_nDaughters)[k],
01269 (*truth_particle_mother0_barcode)[k],
01270 (*truth_particle_mother0_pdgId)[k],
01271 k
01272 );
01273
01274 if(m_release>=12 && m_svnversion>=48){
01275 truth_particle[k]->setVertexIndex((*truth_particle_vertex_index)[k]);
01276 }
01277 if(m_release>=12 && m_svnversion>=50){
01278
01279 double Et_cone[5];
01280 if (truth_particle_Et_in_cone_0->size()!=0) {
01281 Et_cone[0] = m_gev * ((*truth_particle_Et_in_cone_0)[k]);
01282 Et_cone[1] = m_gev * ((*truth_particle_Et_in_cone_1)[k]);
01283 Et_cone[2] = m_gev * ((*truth_particle_Et_in_cone_2)[k]);
01284 Et_cone[3] = m_gev * ((*truth_particle_Et_in_cone_3)[k]);
01285 Et_cone[4] = m_gev * ((*truth_particle_Et_in_cone_4)[k]);
01286 } else {
01287 Et_cone[0] = 0.0;
01288 Et_cone[1] = 0.0;
01289 Et_cone[2] = 0.0;
01290 Et_cone[3] = 0.0;
01291 Et_cone[4] = 0.0;
01292 }
01293
01294 ((MyTruthParticle*)(truth_particle[k]))->set_Et_in_cone(Et_cone);
01295 }
01296
01297 }
01298
01299
01300
01301
01302 MyMissingEtManager met_manager;
01303
01304 for(unsigned int i_met_container=0; i_met_container<missing_Et_object->size(); i_met_container++){
01305 met_manager.add_missinget( MyMissingEt( missing_Et_object->at(i_met_container),
01306 missing_Etx->at(i_met_container) * m_gev,
01307 missing_Ety->at(i_met_container) * m_gev,
01308 missing_Etsum->at(i_met_container) * m_gev) );
01309 }
01310 met_manager.add_missinget(*tmp_trigger_met);
01311
01312
01313
01314
01315
01316
01317
01318
01319
01320 vector<MyVertex *> vertices(nb_vertices);
01321 for (unsigned int k=0; k<vertices.size(); k++) {
01322 vertices[k] =
01323 new MyVertex(
01324 TVector3((*vertex_position_x)[k],
01325 (*vertex_position_y)[k],
01326 (*vertex_position_z)[k]),
01327 TVector3((*vertex_pos_error_x)[k],
01328 (*vertex_pos_error_y)[k],
01329 (*vertex_pos_error_z)[k]),
01330 (*vertex_chi2)[k], (*vertex_ndof)[k],
01331 k, m_gev*(*vertex_Et)[k],
01332 (*vertex_nb_tracks)[k]);
01333 }
01334
01335
01336 vector<MyVertex *> truth_vertices(nb_truth_vertices);
01337 for (unsigned int k=0; k<truth_vertices.size(); k++) {
01338 truth_vertices[k] =
01339 new MyVertex(
01340 TVector3((*truth_vertex_position_x)[k],
01341 (*truth_vertex_position_y)[k],
01342 (*truth_vertex_position_z)[k]),
01343 TVector3(0.0, 0.0, 0.0),
01344 1.0, 1,
01345 k, m_gev*(*truth_vertex_Et)[k],
01346 (*truth_vertex_nb_tracks)[k]);
01347 }
01348
01349
01350 vector<MyParticle *> track_jet(nb_track_jets);
01351 for (unsigned int k=0; k<track_jet.size(); k++) {
01352 track_jet[k] =
01353 new MyTrackJet(
01354 TLorentzVector(
01355 m_gev*((*track_jet_p_x)[k]),
01356 m_gev*((*track_jet_p_y)[k]),
01357 m_gev*((*track_jet_p_z)[k]),
01358 m_gev*((*track_jet_E)[k])), k);
01359 }
01360
01361
01362 vector<MyParticle *> truth_track_jet(nb_truth_track_jets);
01363 for (unsigned int k=0; k<truth_track_jet.size(); k++) {
01364 truth_track_jet[k] =
01365 new MyTrackJet(
01366 TLorentzVector(
01367 m_gev*((*truth_track_jet_p_x)[k]),
01368 m_gev*((*truth_track_jet_p_y)[k]),
01369 m_gev*((*truth_track_jet_p_z)[k]),
01370 m_gev*((*truth_track_jet_E)[k])), k);
01371 }
01372
01373 vector<MyParticle *> track(nb_rec_tracks);
01374 for (unsigned int k=0; k<track.size(); k++) {
01375 vector<double> trackIsolationEnergy(5);
01376 trackIsolationEnergy[0] = m_gev*((*track_trackIsolationEnergy_s)[k]);
01377 trackIsolationEnergy[1] = m_gev*((*track_trackIsolationEnergy_0)[k]);
01378 trackIsolationEnergy[2] = m_gev*((*track_trackIsolationEnergy_1)[k]);
01379 trackIsolationEnergy[3] = m_gev*((*track_trackIsolationEnergy_2)[k]);
01380 trackIsolationEnergy[4] = m_gev*((*track_trackIsolationEnergy_3)[k]);
01381 track[k] =
01382 new MyTrack(
01383 TLorentzVector(
01384 m_gev*((*track_p_x)[k]),
01385 m_gev*((*track_p_y)[k]),
01386 m_gev*((*track_p_z)[k]),
01387 m_gev*((*track_E)[k])),
01388 (*track_charge)[k],
01389 k,
01390 (*track_vertex_index)[k],
01391 (*track_SCThit)[k],
01392 (*track_Phit)[k],
01393 (*track_BLayerhit)[k],
01394 (*track_TRThit)[k],
01395 (*track_MDThit)[k],
01396 (*track_CSChit_eta)[k],
01397 (*track_TGChit_eta)[k],
01398 (*track_RPChit_eta)[k],
01399 (*track_CSChit_phi)[k],
01400 (*track_TGChit_phi)[k],
01401 (*track_RPChit_phi)[k],
01402 (*track_d0)[k],
01403 (*track_z0)[k],
01404 (*track_chi2)[k],
01405 (*track_nDoF)[k],
01406 &trackIsolationEnergy);
01407 }
01408
01409
01410 MyEvent event(RunNumber, EventNumber, Weight,
01411 rec_electron, rec_photon,rec_muon, rec_jet, rec_taujet,
01412 truth_particle, truth_jet, met_manager, *m_trigger,
01413 &track_jet, &track, &truth_track_jet, &vertices, &truth_vertices, trigger_muon);
01414
01415
01416
01417 m_analysis->analyse_event(event);
01418
01419
01420 delete m_trigger;
01421 delete tmp_trigger_met;
01422 delete_new_objects(trigger_mu_lvl1);
01423 delete_new_objects(trigger_mu_lvl2);
01424 delete_new_objects(trigger_mu_ef);
01425 delete_new_objects(rec_electron);
01426 delete_new_objects(rec_photon);
01427 delete_new_objects(rec_muon);
01428 delete_new_objects(rec_jet);
01429 delete_new_objects(rec_taujet);
01430 delete_new_objects(truth_particle);
01431 delete_new_objects(truth_jet);
01432 delete_new_objects(track_jet);
01433 delete_new_objects(track);
01434 delete_new_objects(truth_track_jet);
01435 for (unsigned int i=0; i<vertices.size(); i++) {
01436 delete vertices[i];
01437 }
01438 for (unsigned int i=0; i<truth_vertices.size(); i++) {
01439 delete truth_vertices[i];
01440 }
01441 }
01442
01443
01445
01447
01448 m_analysis->end_of_analysis();
01449
01450 return;
01451 }
01452
01453
01454
01455
01456
01457
01458
01459 void NtupleReader::delete_new_objects(vector<MyParticle*> tmp_vector) {
01460
01461 for (unsigned int i=0; i<tmp_vector.size(); i++){
01462 delete tmp_vector[i];
01463 }
01464
01465 return;
01466
01467 }
01468