00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include "TLorentzVector.h"
00016
00017
00018 #include "GaudiKernel/AlgFactory.h"
00019 #include "GaudiKernel/IToolSvc.h"
00020
00021
00022 #include "egammaEvent/PhotonContainer.h"
00023 #include "egammaEvent/ElectronContainer.h"
00024 #include "egammaEvent/egammaParamDefs.h"
00025 #include "muonEvent/MuonContainer.h"
00026
00027 #include "JetEvent/JetCollection.h"
00028 #include "tauEvent/TauJetContainer.h"
00029 #include "MissingETEvent/MissingET.h"
00030 #include "TrigSteeringEvent/TriggerDecision.h"
00031 #include "AnalysisTriggerEvent/LVL1_ROI.h"
00032 #include "TrigCaloEvent/TrigMissingET.h"
00033 #include "TrigMuonEvent/CombinedMuonFeature.h"
00034 #include "TrigMuonEvent/TrigMuonEFContainer.h"
00035
00036 #include "egammaEvent/EMShower.h"
00037 #include "egammaEvent/EMTrackMatch.h"
00038 #include "tauEvent/TauRecDetails.h"
00039 #include "tauEvent/Tau1P3PDetails.h"
00040
00041
00042 #include "VxVertex/VxContainer.h"
00043 #include "Particle/TrackParticleContainer.h"
00044
00045
00046
00047
00048 #include "JetUtils/JetCollectionHelper.h"
00049
00050
00051 #include "JetTagInfo/TruthInfo.h"
00052 #include "JetTagEvent/TrackConstituents.h"
00053 #include "JetTagEvent/TrackAssociation.h"
00054
00055
00056 #include "NtupleWriter14/AANtupleWriter14.h"
00057
00058
00059
00060
00061
00062 using namespace std;
00063
00064
00065
00066
00067
00068
00069
00070 AANtupleWriter14::AANtupleWriter14(const std::string & name,
00071 ISvcLocator * pSvcLocator) :
00072 CBNT_AthenaAwareBase(name, pSvcLocator),m_trigDec("TrigDec::TrigDecisionTool") {
00073
00074
00075 m_electron_container = string("AtlfastElectronCollection");
00076 declareProperty("electronContainer", m_electron_container);
00077
00078
00079 declareProperty("TrigDecisionTool", m_trigDec, "The tool to access TrigDecision");
00080
00081 m_trigger_decision_container = string("MyTriggerDecision");
00082 declareProperty("triggerDecisionContainer", m_trigger_decision_container);
00083
00084 m_trigger_mu_lvl1_container = string("LVL1_ROI");
00085 declareProperty("triggerMuonLVL1Container", m_trigger_mu_lvl1_container);
00086
00087 m_trigger_mu_lvl2_container = string("CombinedMuonFeature");
00088 declareProperty("triggerMuonLVL2Container", m_trigger_mu_lvl2_container);
00089
00090 m_trigger_mu_ef_container = string("TrigMuonEFContainer");
00091 declareProperty("triggerMuonEFContainer", m_trigger_mu_ef_container);
00092
00093 m_trigger_met_container = string("TrigMissingET");
00094 declareProperty("triggerMissingEtContainer", m_trigger_met_container);
00095
00096 m_photon_container = string("AtlfastPhotonCollection");
00097 declareProperty("photonContainer", m_photon_container);
00098
00099
00100 m_muon_container = vector<string>(1,"AtlfastMuonCollection");
00101 declareProperty("muonContainer", m_muon_container);
00102
00103 m_jet_container = string("AtlfastParticleJetContainer");
00104 declareProperty("jetContainer", m_jet_container);
00105
00106 m_taujet_container = string("AtlfastTauJetContainer");
00107 declareProperty("taujetContainer", m_taujet_container);
00108
00109 m_truthjet_container = string("ConeTruthParticleJets");
00110 declareProperty("truthjetContainer", m_truthjet_container);
00111
00112 m_truthmissingEt_container = string("MET_Truth");
00113 declareProperty("truthmissingEtContainer", m_truthmissingEt_container);
00114
00115 m_truthparticle_container = string("SpclMC");
00116 declareProperty("truthparticleContainer", m_truthparticle_container);
00117
00118 m_AtlFastFlag = false;
00119 declareProperty("AtlFastFlag", m_AtlFastFlag);
00120
00121 m_doAODFix1mm = false;
00122 declareProperty("doAODFix1mm", m_doAODFix1mm);
00123
00124 m_doEventWeight = true;
00125 declareProperty("doEventWeight", m_doEventWeight);
00126
00127 m_truthparticleMaximumLeptonBarcode = 100000;
00128 declareProperty("truthparticleMaximumLeptonBarcode", m_truthparticleMaximumLeptonBarcode);
00129
00130 m_truthparticleNoPDGAbove100 = false;
00131 declareProperty("truthparticleNoPDGAbove100", m_truthparticleNoPDGAbove100);
00132
00133 m_vert_coll_svc_name = string("MPIHiggsAnalysis::VertexCollectionSvc");
00134 declareProperty("VertexCollectionSvc", m_vert_coll_svc_name);
00135
00136 m_track_jet_container = string("Cone4TrackJets");
00137 declareProperty("jetTrackContainer", m_track_jet_container);
00138
00139 m_truth_track_jet_container = string("Cone4TruthTrackJets");
00140 declareProperty("jetTruthTrackContainer", m_truth_track_jet_container);
00141
00142 m_track_particle_container = string("TrackParticleCandidate");
00143 declareProperty("TrackParticleContainer", m_track_particle_container);
00144
00145 m_showerContainerName = string("egDetailAOD");
00146 declareProperty("EMShowerContainer", m_showerContainerName);
00147
00148 m_trackMatchContainerName = string("egDetailAOD");
00149 declareProperty("EMTrackMatchContainerName", m_trackMatchContainerName);
00150
00151 m_tauDetailsContainerName = string("TauRecDetailsContainer");
00152 declareProperty("tauDetailsContainer", m_tauDetailsContainerName);
00153
00154
00155 m_doTrigger = true;
00156 declareProperty("doTrigger", m_doTrigger);
00157 m_doMissingEt = true;
00158 declareProperty("doMissingEt", m_doMissingEt);
00159 m_doTrackParticles = false;
00160 declareProperty("doTrackParticles", m_doTrackParticles);
00161 m_doElectrons = true;
00162 declareProperty("doElectrons", m_doElectrons);
00163 m_doPhotons = true;
00164 declareProperty("doPhotons", m_doPhotons);
00165 m_doMuons = true;
00166 declareProperty("doMuons", m_doMuons);
00167 m_doJets = true;
00168 declareProperty("doJets", m_doJets);
00169 m_doTauJets = true;
00170 declareProperty("doTauJets", m_doTauJets);
00171 m_doTruthJets = true;
00172 declareProperty("doTruthJets", m_doTruthJets);
00173 m_doTruthParticles = true;
00174 declareProperty("doTruthParticles", m_doTruthParticles);
00175 m_doTrackJets = false;
00176 declareProperty("doTrackJets", m_doTrackJets);
00177 m_doVertices = false;
00178 declareProperty("doVertices", m_doVertices);
00179
00180
00181 declareProperty("release", m_release="");
00182 declareProperty("svnversion", m_svnversion="");
00183 declareProperty("date", m_date="");
00184
00185
00186
00187
00188 declareProperty("AOD_files", v_string_aod_files);
00189
00190
00191 declareProperty("missingEtContainerCollection", v_string_met_container);
00192
00193
00194
00195 m_storeGate = NULL;
00196 m_log = NULL;
00197 m_vert_coll = NULL;
00198 m_toolSvc = NULL;
00199 tmp_trackIsolationTool = NULL;
00200 m_trackIsolationTool = NULL;
00201
00202
00203 m_trigger_keys_l1 = static_cast< vector<std::string> *>(0);
00204 m_trigger_keys_status_l1 = NULL;
00205 m_trigger_keys_prescale_l1 = NULL;
00206 m_trigger_keys_l2 = static_cast< vector<std::string> *>(0);
00207 m_trigger_keys_status_l2 = NULL;
00208 m_trigger_keys_prescale_l2 = NULL;
00209 m_trigger_keys_ef = static_cast< vector<std::string> *>(0);
00210 m_trigger_keys_status_ef = NULL;
00211 m_trigger_keys_prescale_ef = NULL;
00212
00213
00214 m_trigger_mu_lvl1_eta = NULL;
00215 m_trigger_mu_lvl1_phi = NULL;
00216 m_trigger_mu_lvl1_threshold_value = NULL;
00217 m_trigger_mu_lvl1_threshold_name = NULL;
00218 m_trigger_mu_lvl1_threshold_number= NULL;
00219 m_trigger_mu_lvl1_roiword = NULL;
00220
00221
00222 m_trigger_mu_lvl2_eta = NULL;
00223 m_trigger_mu_lvl2_phi = NULL;
00224 m_trigger_mu_lvl2_pt = NULL;
00225 m_trigger_mu_lvl2_sigma_pt = NULL;
00226
00227
00228 m_trigger_mu_ef_eta = NULL;
00229 m_trigger_mu_ef_phi = NULL;
00230 m_trigger_mu_ef_pt = NULL;
00231 m_trigger_mu_ef_charge1 = NULL;
00232 m_trigger_mu_ef_charge2 = NULL;
00233 m_trigger_mu_ef_code = NULL;
00234
00235
00236 m_track_p_x = NULL;
00237 m_track_p_y = NULL;
00238 m_track_p_z = NULL;
00239 m_track_E = NULL;
00240 m_track_charge = NULL;
00241 m_track_vertex_index = NULL;
00242 m_track_SCThit = NULL;
00243 m_track_Phit = NULL;
00244 m_track_BLayerhit = NULL;
00245 m_track_TRThit = NULL;
00246 m_track_MDThit = NULL;
00247 m_track_CSChit_eta = NULL;
00248 m_track_TGChit_eta = NULL;
00249 m_track_RPChit_eta = NULL;
00250 m_track_CSChit_phi = NULL;
00251 m_track_TGChit_phi = NULL;
00252 m_track_RPChit_phi = NULL;
00253 m_track_d0 = NULL;
00254 m_track_z0 = NULL;
00255 m_track_chi2 = NULL;
00256 m_track_nDoF = NULL;
00257 m_track_trackIsolationEnergy_s = NULL;
00258 m_track_trackIsolationEnergy_0 = NULL;
00259 m_track_trackIsolationEnergy_1 = NULL;
00260 m_track_trackIsolationEnergy_2 = NULL;
00261 m_track_trackIsolationEnergy_3 = NULL;
00262
00263
00264
00265
00266 m_e_p_x = NULL;
00267 m_e_p_y = NULL;
00268 m_e_p_z = NULL;
00269 m_e_E = NULL;
00270 m_e_calo_p_x = NULL;
00271 m_e_calo_p_y = NULL;
00272 m_e_calo_p_z = NULL;
00273 m_e_calo_E = NULL;
00274 m_e_charge = NULL;
00275 m_e_isEM = NULL;
00276 m_e_id_flag = NULL;
00277 m_e_NeuralNet = NULL;
00278 m_e_egamma_flag = NULL;
00279 m_e_softe_flag = NULL;
00280 m_e_E_over_p = NULL;
00281 m_e_TRTHighThresholdHits = NULL;
00282 m_e_TRTHits = NULL;
00283 m_e_ethad1 = NULL;
00284 m_e_Et_in_cone_0 = NULL;
00285 m_e_Et_in_cone_1 = NULL;
00286 m_e_Et_in_cone_2 = NULL;
00287 m_e_Et_in_cone_3 = NULL;
00288 m_e_vertex_index = NULL;
00289 m_e_track_Et_in_cone_0 = NULL;
00290 m_e_track_Et_in_cone_1 = NULL;
00291 m_e_track_Et_in_cone_2 = NULL;
00292 m_e_track_Et_in_cone_3 = NULL;
00293 m_e_trackIsolationEnergy_0 = NULL;
00294 m_e_trackIsolationEnergy_1 = NULL;
00295 m_e_trackIsolationEnergy_2 = NULL;
00296 m_e_trackIsolationEnergy_3 = NULL;
00297
00298
00299 m_p_calo_p_x = NULL;
00300 m_p_calo_p_y = NULL;
00301 m_p_calo_p_z = NULL;
00302 m_p_calo_E = NULL;
00303 m_p_charge = NULL;
00304 m_p_isEM = NULL;
00305 m_p_NeuralNet = NULL;
00306 m_p_egamma_flag = NULL;
00307 m_p_Et_in_cone_0 = NULL;
00308 m_p_Et_in_cone_1 = NULL;
00309 m_p_Et_in_cone_2 = NULL;
00310 m_p_Et_in_cone_3 = NULL;
00311
00312
00313
00314
00315 m_mu_alg_flag = NULL;
00316 m_mu_p_x = NULL;
00317 m_mu_p_y = NULL;
00318 m_mu_p_z = NULL;
00319 m_mu_E = NULL;
00320 m_mu_p_x_standalone = NULL;
00321 m_mu_p_y_standalone = NULL;
00322 m_mu_p_z_standalone = NULL;
00323 m_mu_E_standalone = NULL;
00324 m_mu_p_x_ID = NULL;
00325 m_mu_p_y_ID = NULL;
00326 m_mu_p_z_ID = NULL;
00327 m_mu_E_ID = NULL;
00328 m_mu_charge = NULL;
00329 m_mu_fitChi2 = NULL;
00330 m_mu_fitNumberDoF = NULL;
00331 m_mu_fitChi2OverDoF = NULL;
00332 m_mu_matchChi2 = NULL;
00333 m_mu_matchNumberDoF = NULL;
00334 m_mu_matchChi2OverDoF = NULL;
00335 m_mu_flag = NULL;
00336 m_mu_Et_in_cone_0 = NULL;
00337 m_mu_Et_in_cone_1 = NULL;
00338 m_mu_Et_in_cone_2 = NULL;
00339 m_mu_Et_in_cone_3 = NULL;
00340 m_mu_Et_in_cone_4 = NULL;
00341 m_mu_Et_in_cone_5 = NULL;
00342 m_mu_Et_in_cone_6 = NULL;
00343 m_mu_Et_in_cone_7 = NULL;
00344 m_mu_nb_tracks_cone_0 = NULL;
00345 m_mu_nb_tracks_cone_1 = NULL;
00346 m_mu_nb_tracks_cone_2 = NULL;
00347 m_mu_nb_tracks_cone_3 = NULL;
00348 m_mu_nb_tracks_cone_4 = NULL;
00349 m_mu_nb_tracks_cone_5 = NULL;
00350 m_mu_nb_tracks_cone_6 = NULL;
00351 m_mu_nb_tracks_cone_7 = NULL;
00352 m_mu_vertex_index = NULL;
00353 m_mu_track_Et_in_cone_0 = NULL;
00354 m_mu_track_Et_in_cone_1 = NULL;
00355 m_mu_track_Et_in_cone_2 = NULL;
00356 m_mu_track_Et_in_cone_3 = NULL;
00357 m_mu_track_Et_in_cone_4 = NULL;
00358 m_mu_track_Et_in_cone_5 = NULL;
00359 m_mu_track_Et_in_cone_6 = NULL;
00360 m_mu_track_Et_in_cone_7 = NULL;
00361 m_mu_trackIsolationEnergy_0 = NULL;
00362 m_mu_trackIsolationEnergy_1 = NULL;
00363 m_mu_trackIsolationEnergy_2 = NULL;
00364 m_mu_trackIsolationEnergy_3 = NULL;
00365 m_mu_trackIsolationEnergy_4 = NULL;
00366 m_mu_trackIsolationEnergy_5 = NULL;
00367 m_mu_trackIsolationEnergy_6 = NULL;
00368 m_mu_trackIsolationEnergy_7 = NULL;
00369
00370
00371 m_jet_p_x = NULL;
00372 m_jet_p_y = NULL;
00373 m_jet_p_z = NULL;
00374 m_jet_E = NULL;
00375 m_jet_flag = NULL;
00376 m_jet_btag_weight = NULL;
00377 m_jet_truthflavor = NULL;
00378 m_jet_nb_tracks = NULL;
00379 m_jet_tracks_charge = NULL;
00380 m_jet_tracks_p_x = NULL;
00381 m_jet_tracks_p_y = NULL;
00382 m_jet_tracks_p_z = NULL;
00383 m_jet_tracks_E = NULL;
00384
00385
00386 m_taujet_p_x = NULL;
00387 m_taujet_p_y = NULL;
00388 m_taujet_p_z = NULL;
00389 m_taujet_E = NULL;
00390 m_taujet_flag = NULL;
00391 m_taujet_charge = NULL;
00392 m_taujet_etHadCalib = NULL;
00393 m_taujet_etEMCalib = NULL;
00394 m_taujet_emRadius = NULL;
00395 m_taujet_isolationFraction = NULL;
00396 m_taujet_centralityFraction = NULL;
00397 m_taujet_stripWidth2 = NULL;
00398 m_taujet_nStripCells = NULL;
00399 m_taujet_leadingTrackPT = NULL;
00400 m_taujet_trFlightPathSig = NULL;
00401 m_taujet_etOverPtLeadTrack = NULL;
00402 m_taujet_ipSigLeadTrack = NULL;
00403 m_taujet_etChrgHAD = NULL;
00404 m_taujet_etIsolEM = NULL;
00405 m_taujet_etIsolHAD = NULL;
00406 m_taujet_nAssocTracksCore = NULL;
00407 m_taujet_nAssocTracksIsol = NULL;
00408 m_taujet_massTrk3P = NULL;
00409 m_taujet_rWidth2Trk3P = NULL;
00410 m_taujet_signD0Trk3P = NULL;
00411 m_taujet_etHadAtEMScale = NULL;
00412 m_taujet_etEMAtEMScale = NULL;
00413 m_taujet_etEMCL = NULL;
00414 m_taujet_etChrgEM = NULL;
00415 m_taujet_etNeuEM = NULL;
00416 m_taujet_etResNeuEM = NULL;
00417 m_taujet_llh = NULL;
00418 m_taujet_discNN = NULL;
00419 m_taujet_discPDERS = NULL;
00420 m_taujet_lowPtTauJetDiscriminant= NULL;
00421 m_taujet_lowPtTauEleDiscriminant= NULL;
00422 m_taujet_tauJetNeuralnetwork = NULL;
00423 m_taujet_tauENeuralNetwork = NULL;
00424 m_taujet_bdtJet = NULL;
00425 m_taujet_bdtEle = NULL;
00426 m_taujet_nb_tracks = NULL;
00427 m_taujet_track_px_1 = NULL;
00428 m_taujet_track_py_1 = NULL;
00429 m_taujet_track_pz_1 = NULL;
00430 m_taujet_track_e_1 = NULL;
00431 m_taujet_track_TRTHighThresholdHits_1 = NULL;
00432 m_taujet_track_TRTHits_1 = NULL;
00433 m_taujet_track_px_2 = NULL;
00434 m_taujet_track_py_2 = NULL;
00435 m_taujet_track_pz_2 = NULL;
00436 m_taujet_track_e_2 = NULL;
00437 m_taujet_track_TRTHighThresholdHits_2 = NULL;
00438 m_taujet_track_TRTHits_2 = NULL;
00439 m_taujet_track_px_3 = NULL;
00440 m_taujet_track_py_3 = NULL;
00441 m_taujet_track_pz_3 = NULL;
00442 m_taujet_track_e_3 = NULL;
00443 m_taujet_track_TRTHighThresholdHits_3 = NULL;
00444 m_taujet_track_TRTHits_3 = NULL;
00445
00446
00447 m_truthjet_p_x = NULL;
00448 m_truthjet_p_y = NULL;
00449 m_truthjet_p_z = NULL;
00450 m_truthjet_E = NULL;
00451 m_truthjet_flag = NULL;
00452 m_truthjet_btag_weight = NULL;
00453
00454
00455 m_truth_particle_pt = NULL;
00456 m_truth_particle_status = NULL;
00457 m_truth_particle_barcode = NULL;
00458 m_truth_particle_pdgId = NULL;
00459 m_truth_particle_nDaughters = NULL;
00460 m_truth_particle_p_x = NULL;
00461 m_truth_particle_p_y = NULL;
00462 m_truth_particle_p_z = NULL;
00463 m_truth_particle_E = NULL;
00464 m_truth_particle_charge = NULL;
00465 m_truth_particle_nParents = NULL;
00466 m_truth_particle_mother0_barcode= NULL;
00467 m_truth_particle_mother0_pdgId = NULL;
00468
00469
00470 m_met_obj_name = NULL;
00471 m_missing_Etx = NULL;
00472 m_missing_Ety = NULL;
00473 m_missing_Et = NULL;
00474 m_missing_Etsum = NULL;
00475
00476
00477 m_vertex_position_x = NULL;
00478 m_vertex_position_y = NULL;
00479 m_vertex_position_y = NULL;
00480 m_vertex_pos_error_x = NULL;
00481 m_vertex_pos_error_y = NULL;
00482 m_vertex_pos_error_z = NULL;
00483 m_vertex_chi2 = NULL;
00484 m_vertex_ndof = NULL;
00485 m_vertex_Et = NULL;
00486 m_vertex_nb_tracks = NULL;
00487
00488
00489 m_truth_vertex_position_x = NULL;
00490 m_truth_vertex_position_y = NULL;
00491 m_truth_vertex_position_y = NULL;
00492 m_truth_vertex_Et = NULL;
00493 m_truth_vertex_nb_tracks = NULL;
00494
00495
00496 m_track_jet_p_x = NULL;
00497 m_track_jet_p_y = NULL;
00498 m_track_jet_p_z = NULL;
00499 m_track_jet_E = NULL;
00500
00501
00502 m_truth_track_jet_p_x = NULL;
00503 m_truth_track_jet_p_y = NULL;
00504 m_truth_track_jet_p_z = NULL;
00505 m_truth_track_jet_E = NULL;
00506
00507 return;
00508
00509 }
00510
00511
00512
00513
00514
00515
00516
00517 AANtupleWriter14::~AANtupleWriter14(void) {
00518 }
00519
00520
00521
00527
00528 StatusCode AANtupleWriter14::CBNT_initializeBeforeEventLoop() {
00529 MsgStream mLog( messageService(), name() );
00530
00531 mLog << MSG::DEBUG << "Initializing AnalysisSkeleton (before eventloop)" << endreq;
00532
00533
00534
00535
00536 StatusCode sc = m_trigDec.retrieve();
00537 if ( sc.isFailure() ){
00538 mLog << MSG::ERROR << "Can't get handle on TrigDecisionTool" << endreq;
00539 } else {
00540 mLog << MSG::DEBUG << "Got handle on TrigDecisionTool" << endreq;
00541 }
00542 return sc;
00543 }
00544
00545
00546
00547
00548
00549
00550
00551
00552
00553
00554
00555
00556
00557
00558
00559
00560 StatusCode AANtupleWriter14::CBNT_initialize(void) {
00561
00563
00565
00566
00567 m_log = new MsgStream(messageService(), name());
00568
00569 *m_log << MSG::INFO
00570 << "Initializing AANtupleWriter14..."
00571 << endreq;
00572
00573
00574 StatusCode sc = service("StoreGateSvc", m_storeGate);
00575 if (sc.isFailure()) {
00576 *m_log << MSG::ERROR
00577 << "Unable to retrieve a pointer to StoreGateSvc!"
00578 << endreq;
00579 return sc;
00580 }
00581
00582
00583 sc = service(m_vert_coll_svc_name, m_vert_coll);
00584 if (!sc.isSuccess()) {
00585 *m_log << MSG::FATAL << "Cannot retrieve "
00586 << m_vert_coll_svc_name
00587 << "!"
00588 << endreq;
00589 return sc;
00590 }
00591
00592
00593 sc = service("ToolSvc", m_toolSvc);
00594 if (sc.isFailure()) {
00595 *m_log << MSG::ERROR
00596 << "Unable to retrieve a pointer to ToolsSvc!"
00597 << endreq;
00598 return sc;
00599 }
00600 sc = m_toolSvc->retrieveTool("TrackIsolationTool",tmp_trackIsolationTool);
00601 if (StatusCode::SUCCESS != sc) {
00602 *m_log << MSG::ERROR << "Can't get handle on analysis tools" << endreq;
00603 return StatusCode::FAILURE;
00604 }
00605 m_trackIsolationTool=dynamic_cast<TrackIsolationTool*>(tmp_trackIsolationTool);
00606
00607
00608 sc = m_trigDec.retrieve();
00609 if ( sc.isFailure() ){
00610 *m_log << MSG::ERROR << "Can't get handle on TrigDecisionTool" << endreq;
00611 } else {
00612 *m_log << MSG::DEBUG << "Got handle on TrigDecisionTool" << endreq;
00613 }
00614
00615 nEvents =0;
00616
00617
00618
00619
00620
00621
00622 m_nt->Branch("trigger_l1_defined", &m_trigger_l1_defined,
00623 "trigger_l1_defined/O");
00624 m_nt->Branch("trigger_l2_defined", &m_trigger_l2_defined,
00625 "trigger_l2_defined/O");
00626 m_nt->Branch("trigger_ef_defined", &m_trigger_ef_defined,
00627 "trigger_ef_defined/O");
00628 addBranch("trigger_keys_l1", m_trigger_keys_l1);
00629 addBranch("trigger_keys_status_l1", m_trigger_keys_status_l1);
00630 addBranch("trigger_keys_prescale_l1", m_trigger_keys_prescale_l1);
00631 addBranch("trigger_keys_l2", m_trigger_keys_l2);
00632 addBranch("trigger_keys_status_l2", m_trigger_keys_status_l2);
00633 addBranch("trigger_keys_prescale_l2", m_trigger_keys_prescale_l2);
00634 addBranch("trigger_keys_ef", m_trigger_keys_ef);
00635 addBranch("trigger_keys_status_ef", m_trigger_keys_status_ef);
00636 addBranch("trigger_keys_prescale_ef", m_trigger_keys_prescale_ef);
00637
00638
00639 m_nt->Branch("nb_trigger_mu_lvl1", &m_nb_trigger_mu_lvl1,
00640 "nb_trigger_mu_lvl1/I");
00641 addBranch("trigger_mu_lvl1_eta", m_trigger_mu_lvl1_eta);
00642 addBranch("trigger_mu_lvl1_phi", m_trigger_mu_lvl1_phi);
00643 addBranch("trigger_mu_lvl1_threshold_number", m_trigger_mu_lvl1_threshold_number);
00644 addBranch("trigger_mu_lvl1_threshold_name", m_trigger_mu_lvl1_threshold_name);
00645 addBranch("trigger_mu_lvl1_threshold_value", m_trigger_mu_lvl1_threshold_value);
00646 addBranch("trigger_mu_lvl1_roiword", m_trigger_mu_lvl1_roiword);
00647 addBranch("trigger_mu_lvl1_confirmed", m_trigger_mu_lvl1_confirmed);
00648
00649
00650 m_nt->Branch("nb_trigger_mu_lvl2", &m_nb_trigger_mu_lvl2,
00651 "nb_trigger_mu_lvl2/I");
00652 addBranch("trigger_mu_lvl2_eta", m_trigger_mu_lvl2_eta);
00653 addBranch("trigger_mu_lvl2_phi", m_trigger_mu_lvl2_phi);
00654 addBranch("trigger_mu_lvl2_pt", m_trigger_mu_lvl2_pt);
00655 addBranch("trigger_mu_lvl2_sigma_pt", m_trigger_mu_lvl2_sigma_pt);
00656
00657
00658 m_nt->Branch("nb_trigger_mu_ef", &m_nb_trigger_mu_ef,
00659 "nb_trigger_mu_ef/I");
00660 addBranch("trigger_mu_ef_eta", m_trigger_mu_ef_eta);
00661 addBranch("trigger_mu_ef_phi", m_trigger_mu_ef_phi);
00662 addBranch("trigger_mu_ef_pt", m_trigger_mu_ef_pt);
00663 addBranch("trigger_mu_ef_code", m_trigger_mu_ef_code);
00664 addBranch("trigger_mu_ef_charge1", m_trigger_mu_ef_charge1);
00665 addBranch("trigger_mu_ef_charge2", m_trigger_mu_ef_charge2);
00666
00667
00668 m_nt->Branch("trigger_met_ex", &m_trigger_met_ex, "trigger_met_ex/D");
00669 m_nt->Branch("trigger_met_ey", &m_trigger_met_ey, "trigger_met_ey/D");
00670 m_nt->Branch("trigger_met_et", &m_trigger_met_et, "trigger_met_et/D");
00671 m_nt->Branch("trigger_met_sumEt", &m_trigger_met_et, "trigger_met_sumEt/D");
00672 m_nt->Branch("trigger_met_RoIword", &m_trigger_met_RoIword, "trigger_met_RoIword/L");
00673
00674
00675 m_nt->Branch("nb_rec_tracks", &m_nb_rec_tracks,
00676 "nb_rec_tracks/I");
00677 addBranch("track_p_x",m_track_p_x);
00678 addBranch("track_p_y",m_track_p_y);
00679 addBranch("track_p_z",m_track_p_z);
00680 addBranch("track_E",m_track_E);
00681 addBranch("track_charge",m_track_charge);
00682 addBranch("track_vertex_index",m_track_vertex_index);
00683 addBranch("track_SCThit",m_track_SCThit);
00684 addBranch("track_Phit",m_track_Phit);
00685 addBranch("track_BLayerhit",m_track_BLayerhit);
00686 addBranch("track_TRThit",m_track_TRThit);
00687 addBranch("track_MDThit",m_track_MDThit);
00688 addBranch("track_CSChit_eta",m_track_CSChit_eta);
00689 addBranch("track_TGChit_eta",m_track_TGChit_eta);
00690 addBranch("track_RPChit_eta",m_track_RPChit_eta);
00691 addBranch("track_CSChit_phi",m_track_CSChit_phi);
00692 addBranch("track_TGChit_phi",m_track_TGChit_phi);
00693 addBranch("track_RPChit_phi",m_track_RPChit_phi);
00694 addBranch("track_d0",m_track_d0);
00695 addBranch("track_z0",m_track_z0);
00696 addBranch("track_chi2",m_track_chi2);
00697 addBranch("track_nDoF",m_track_nDoF);
00698 addBranch("track_trackIsolationEnergy_s", m_track_trackIsolationEnergy_s);
00699 addBranch("track_trackIsolationEnergy_0", m_track_trackIsolationEnergy_0);
00700 addBranch("track_trackIsolationEnergy_1", m_track_trackIsolationEnergy_1);
00701 addBranch("track_trackIsolationEnergy_2", m_track_trackIsolationEnergy_2);
00702 addBranch("track_trackIsolationEnergy_3", m_track_trackIsolationEnergy_3);
00703
00704
00705
00706 m_nt->Branch("nb_rec_electrons", &m_nb_rec_electrons,
00707 "nb_rec_electrons/I");
00708 addBranch("e_p_x", m_e_p_x);
00709 addBranch("e_p_y", m_e_p_y);
00710 addBranch("e_p_z", m_e_p_z);
00711 addBranch("e_E", m_e_E);
00712 addBranch("e_calo_p_x", m_e_calo_p_x);
00713 addBranch("e_calo_p_y", m_e_calo_p_y);
00714 addBranch("e_calo_p_z", m_e_calo_p_z);
00715 addBranch("e_calo_E", m_e_calo_E);
00716 addBranch("e_charge", m_e_charge);
00717 addBranch("e_NeuralNet", m_e_NeuralNet);
00718 addBranch("e_isEM", m_e_isEM);
00719 addBranch("e_id_flag", m_e_id_flag);
00720 addBranch("e_egamma_flag", m_e_egamma_flag);
00721 addBranch("e_softe_flag", m_e_softe_flag);
00722 addBranch("e_E_over_p", m_e_E_over_p);
00723 addBranch("e_TRTHighThresholdHits", m_e_TRTHighThresholdHits);
00724 addBranch("e_TRTHits", m_e_TRTHits);
00725 addBranch("e_ethad1", m_e_ethad1);
00726 addBranch("e_Et_in_cone_0", m_e_Et_in_cone_0);
00727 addBranch("e_Et_in_cone_1", m_e_Et_in_cone_1);
00728 addBranch("e_Et_in_cone_2", m_e_Et_in_cone_2);
00729 addBranch("e_Et_in_cone_3", m_e_Et_in_cone_3);
00730 addBranch("e_vertex_index", m_e_vertex_index);
00731 addBranch("e_track_Et_in_cone_0", m_e_track_Et_in_cone_0);
00732 addBranch("e_track_Et_in_cone_1", m_e_track_Et_in_cone_1);
00733 addBranch("e_track_Et_in_cone_2", m_e_track_Et_in_cone_2);
00734 addBranch("e_track_Et_in_cone_3", m_e_track_Et_in_cone_3);
00735 addBranch("e_trackIsolationEnergy_0", m_e_trackIsolationEnergy_0);
00736 addBranch("e_trackIsolationEnergy_1", m_e_trackIsolationEnergy_1);
00737 addBranch("e_trackIsolationEnergy_2", m_e_trackIsolationEnergy_2);
00738 addBranch("e_trackIsolationEnergy_3", m_e_trackIsolationEnergy_3);
00739
00740
00741 m_nt->Branch("nb_rec_photons", &m_nb_rec_photons,
00742 "nb_rec_photons/I");
00743 addBranch("p_calo_p_x", m_p_calo_p_x);
00744 addBranch("p_calo_p_y", m_p_calo_p_y);
00745 addBranch("p_calo_p_z", m_p_calo_p_z);
00746 addBranch("p_calo_E", m_p_calo_E);
00747 addBranch("p_charge", m_p_charge);
00748 addBranch("p_NeuralNet", m_p_NeuralNet);
00749 addBranch("p_isEM", m_p_isEM);
00750 addBranch("p_egamma_flag", m_p_egamma_flag);
00751 addBranch("p_Et_in_cone_0", m_p_Et_in_cone_0);
00752 addBranch("p_Et_in_cone_1", m_p_Et_in_cone_1);
00753 addBranch("p_Et_in_cone_2", m_p_Et_in_cone_2);
00754 addBranch("p_Et_in_cone_3", m_p_Et_in_cone_3);
00755
00756
00757 m_nt->Branch("nb_rec_muons", &m_nb_rec_muons, "nb_rec_muons/I");
00758 addBranch("mu_alg_flag", m_mu_alg_flag);
00759 addBranch("mu_p_x", m_mu_p_x);
00760 addBranch("mu_p_y", m_mu_p_y);
00761 addBranch("mu_p_z", m_mu_p_z);
00762 addBranch("mu_E", m_mu_E);
00763 addBranch("mu_p_x_standalone", m_mu_p_x_standalone);
00764 addBranch("mu_p_y_standalone", m_mu_p_y_standalone);
00765 addBranch("mu_p_z_standalone", m_mu_p_z_standalone);
00766 addBranch("mu_E_standalone", m_mu_E_standalone);
00767 addBranch("mu_p_x_ID", m_mu_p_x_ID);
00768 addBranch("mu_p_y_ID", m_mu_p_y_ID);
00769 addBranch("mu_p_z_ID", m_mu_p_z_ID);
00770 addBranch("mu_E_ID", m_mu_E_ID);
00771 addBranch("mu_charge", m_mu_charge);
00772 addBranch("mu_fitChi2", m_mu_fitChi2);
00773 addBranch("mu_fitNumberDoF", m_mu_fitNumberDoF);
00774 addBranch("mu_fitChi2OverDoF", m_mu_fitChi2OverDoF);
00775 addBranch("mu_matchChi2", m_mu_matchChi2);
00776 addBranch("mu_matchNumberDoF", m_mu_matchNumberDoF);
00777 addBranch("mu_matchChi2OverDoF", m_mu_matchChi2OverDoF);
00778 addBranch("mu_rec_flag", m_mu_flag);
00779 addBranch("mu_hasCombinedMuonTrackParticle", m_mu_hasCombinedMuonTrackParticle);
00780 addBranch("mu_Et_in_cone_0", m_mu_Et_in_cone_0);
00781 addBranch("mu_Et_in_cone_1", m_mu_Et_in_cone_1);
00782 addBranch("mu_Et_in_cone_2", m_mu_Et_in_cone_2);
00783 addBranch("mu_Et_in_cone_3", m_mu_Et_in_cone_3);
00784 addBranch("mu_Et_in_cone_4", m_mu_Et_in_cone_4);
00785 addBranch("mu_Et_in_cone_5", m_mu_Et_in_cone_5);
00786 addBranch("mu_Et_in_cone_6", m_mu_Et_in_cone_6);
00787 addBranch("mu_Et_in_cone_7", m_mu_Et_in_cone_7);
00788 addBranch("mu_nb_tracks_in_cone_0", m_mu_nb_tracks_cone_0);
00789 addBranch("mu_nb_tracks_in_cone_1", m_mu_nb_tracks_cone_1);
00790 addBranch("mu_nb_tracks_in_cone_2", m_mu_nb_tracks_cone_2);
00791 addBranch("mu_nb_tracks_in_cone_3", m_mu_nb_tracks_cone_3);
00792 addBranch("mu_nb_tracks_in_cone_4", m_mu_nb_tracks_cone_4);
00793 addBranch("mu_nb_tracks_in_cone_5", m_mu_nb_tracks_cone_5);
00794 addBranch("mu_nb_tracks_in_cone_6", m_mu_nb_tracks_cone_6);
00795 addBranch("mu_nb_tracks_in_cone_7", m_mu_nb_tracks_cone_7);
00796 addBranch("mu_author" , m_mu_author);
00797 addBranch("mu_bestmatch", m_mu_bestmatch);
00798 addBranch("mu_vertex_index", m_mu_vertex_index);
00799 addBranch("mu_track_Et_in_cone_0", m_mu_track_Et_in_cone_0);
00800 addBranch("mu_track_Et_in_cone_1", m_mu_track_Et_in_cone_1);
00801 addBranch("mu_track_Et_in_cone_2", m_mu_track_Et_in_cone_2);
00802 addBranch("mu_track_Et_in_cone_3", m_mu_track_Et_in_cone_3);
00803 addBranch("mu_track_Et_in_cone_4", m_mu_track_Et_in_cone_4);
00804 addBranch("mu_track_Et_in_cone_5", m_mu_track_Et_in_cone_5);
00805 addBranch("mu_track_Et_in_cone_6", m_mu_track_Et_in_cone_6);
00806 addBranch("mu_track_Et_in_cone_7", m_mu_track_Et_in_cone_7);
00807 addBranch("mu_trackIsolationEnergy_0", m_mu_trackIsolationEnergy_0);
00808 addBranch("mu_trackIsolationEnergy_1", m_mu_trackIsolationEnergy_1);
00809 addBranch("mu_trackIsolationEnergy_2", m_mu_trackIsolationEnergy_2);
00810 addBranch("mu_trackIsolationEnergy_3", m_mu_trackIsolationEnergy_3);
00811 addBranch("mu_trackIsolationEnergy_4", m_mu_trackIsolationEnergy_4);
00812 addBranch("mu_trackIsolationEnergy_5", m_mu_trackIsolationEnergy_5);
00813 addBranch("mu_trackIsolationEnergy_6", m_mu_trackIsolationEnergy_6);
00814 addBranch("mu_trackIsolationEnergy_7", m_mu_trackIsolationEnergy_7);
00815
00816
00817 m_nt->Branch("nb_rec_jets", &m_nb_rec_jets, "nb_rec_jets/I");
00818 addBranch("jet_p_x", m_jet_p_x);
00819 addBranch("jet_p_y", m_jet_p_y);
00820 addBranch("jet_p_z", m_jet_p_z);
00821 addBranch("jet_E", m_jet_E);
00822 addBranch("jet_flag", m_jet_flag);
00823 addBranch("jet_btag_weight", m_jet_btag_weight);
00824 addBranch("jet_truthflavor", m_jet_truthflavor);
00825 addBranch("jet_nb_tracks", m_jet_nb_tracks);
00826 addBranch("jet_tracks_charge", m_jet_tracks_charge);
00827 addBranch("jet_tracks_p_x", m_jet_tracks_p_x);
00828 addBranch("jet_tracks_p_y", m_jet_tracks_p_y);
00829 addBranch("jet_tracks_p_z", m_jet_tracks_p_z);
00830 addBranch("jet_tracks_E", m_jet_tracks_E);
00831
00832
00833 m_nt->Branch("nb_tau_jets", &m_nb_tau_jets, "nb_tau_jets/I");
00834 addBranch("taujet_p_x", m_taujet_p_x);
00835 addBranch("taujet_p_y", m_taujet_p_y);
00836 addBranch("taujet_p_z", m_taujet_p_z);
00837 addBranch("taujet_E", m_taujet_E);
00838 addBranch("taujet_flag", m_taujet_flag);
00839 addBranch("taujet_charge", m_taujet_charge);
00840 addBranch("taujet_etHadCalib", m_taujet_etHadCalib);
00841 addBranch("taujet_etEMCalib", m_taujet_etEMCalib);
00842 addBranch("taujet_emRadius", m_taujet_emRadius);
00843 addBranch("taujet_isolationFraction", m_taujet_isolationFraction);
00844 addBranch("taujet_centralityFraction", m_taujet_centralityFraction);
00845 addBranch("taujet_stripWidth2", m_taujet_stripWidth2);
00846 addBranch("taujet_nStripCells", m_taujet_nStripCells);
00847 addBranch("taujet_leadingTrackPT", m_taujet_leadingTrackPT);
00848 addBranch("taujet_trFlightPathSig", m_taujet_trFlightPathSig);
00849 addBranch("taujet_etOverPtLeadTrack", m_taujet_etOverPtLeadTrack);
00850 addBranch("taujet_ipSigLeadTrack", m_taujet_ipSigLeadTrack);
00851 addBranch("taujet_etChrgHAD", m_taujet_etChrgHAD);
00852 addBranch("taujet_etIsolEM", m_taujet_etIsolEM);
00853 addBranch("taujet_etIsolHAD", m_taujet_etIsolHAD);
00854 addBranch("taujet_nAssocTracksCore", m_taujet_nAssocTracksCore);
00855 addBranch("taujet_nAssocTracksIsol", m_taujet_nAssocTracksIsol);
00856 addBranch("taujet_massTrk3P", m_taujet_massTrk3P);
00857 addBranch("taujet_rWidth2Trk3P", m_taujet_rWidth2Trk3P);
00858 addBranch("taujet_signD0Trk3P", m_taujet_signD0Trk3P);
00859 addBranch("taujet_etHadAtEMScale", m_taujet_etHadAtEMScale);
00860 addBranch("taujet_etEMAtEMScale", m_taujet_etEMAtEMScale);
00861 addBranch("taujet_etEMCL", m_taujet_etEMCL);
00862 addBranch("taujet_etChrgEM", m_taujet_etChrgEM);
00863 addBranch("taujet_etNeuEM", m_taujet_etNeuEM);
00864 addBranch("taujet_etResNeuEM", m_taujet_etResNeuEM);
00865 addBranch("taujet_llh", m_taujet_llh);
00866 addBranch("taujet_discNN", m_taujet_discNN);
00867 addBranch("taujet_PDERS", m_taujet_discPDERS);
00868 addBranch("taujet_lowPtTauJetDiscriminant", m_taujet_lowPtTauJetDiscriminant);
00869 addBranch("taujet_lowPtTauEleDiscriminant", m_taujet_lowPtTauEleDiscriminant);
00870 addBranch("taujet_tauENeuralNetwork", m_taujet_tauENeuralNetwork);
00871 addBranch("taujet_tauJetNeuralnetwork", m_taujet_tauJetNeuralnetwork);
00872 addBranch("taujet_bdtJet", m_taujet_bdtJet);
00873 addBranch("taujet_bdtEle", m_taujet_bdtEle);
00874 addBranch("taujet_nb_tracks", m_taujet_nb_tracks);
00875 addBranch("taujet_track_px_1", m_taujet_track_px_1);
00876 addBranch("taujet_track_py_1", m_taujet_track_py_1);
00877 addBranch("taujet_track_pz_1", m_taujet_track_pz_1);
00878 addBranch("taujet_track_e_1", m_taujet_track_e_1);
00879 addBranch("taujet_track_TRTHighThresholdHits_1", m_taujet_track_TRTHighThresholdHits_1);
00880 addBranch("taujet_track_TRTHits_1", m_taujet_track_TRTHits_1);
00881 addBranch("taujet_track_px_2", m_taujet_track_px_2);
00882 addBranch("taujet_track_py_2", m_taujet_track_py_2);
00883 addBranch("taujet_track_pz_2", m_taujet_track_pz_2);
00884 addBranch("taujet_track_e_2", m_taujet_track_e_2);
00885 addBranch("taujet_track_TRTHighThresholdHits_2", m_taujet_track_TRTHighThresholdHits_2);
00886 addBranch("taujet_track_TRTHits_2", m_taujet_track_TRTHits_2);
00887 addBranch("taujet_track_px_3", m_taujet_track_px_3);
00888 addBranch("taujet_track_py_3", m_taujet_track_py_3);
00889 addBranch("taujet_track_pz_3", m_taujet_track_pz_3);
00890 addBranch("taujet_track_e_3", m_taujet_track_e_3);
00891 addBranch("taujet_track_TRTHighThresholdHits_3", m_taujet_track_TRTHighThresholdHits_3);
00892 addBranch("taujet_track_TRTHits_3", m_taujet_track_TRTHits_3);
00893
00894
00895 m_nt->Branch("nb_truth_jets", &m_nb_truth_jets, "nb_truth_jets/I");
00896 addBranch("truth_jet_p_x", m_truthjet_p_x);
00897 addBranch("truth_jet_p_y", m_truthjet_p_y);
00898 addBranch("truth_jet_p_z", m_truthjet_p_z);
00899 addBranch("truth_jet_E", m_truthjet_E);
00900 addBranch("truth_jet_flag", m_truthjet_flag);
00901 addBranch("truth_jet_btag_weight", m_truthjet_btag_weight);
00902
00903
00904 addBranch("missing_Et_object", m_met_obj_name);
00905 addBranch("missing_Etx", m_missing_Etx);
00906 addBranch("missing_Ety", m_missing_Ety);
00907 addBranch("missing_Et", m_missing_Et);
00908 addBranch("missing_Etsum", m_missing_Etsum);
00909
00910
00911 m_nt->Branch("nb_truth_particle_all", &m_nb_truth_particle_all, "nb_truth_particle_all/I");
00912 m_nt->Branch("nb_truth_particle", &m_nb_truth_particle, "nb_truth_particle/I");
00913
00914 addBranch("truth_particle_pt", m_truth_particle_pt);
00915 addBranch("truth_particle_status", m_truth_particle_status);
00916 addBranch("truth_particle_barcode", m_truth_particle_barcode);
00917 addBranch("truth_particle_pdgId", m_truth_particle_pdgId);
00918 addBranch("truth_particle_nDaughters", m_truth_particle_nDaughters);
00919 addBranch("truth_particle_p_x", m_truth_particle_p_x);
00920 addBranch("truth_particle_p_y", m_truth_particle_p_y);
00921 addBranch("truth_particle_p_z", m_truth_particle_p_z);
00922 addBranch("truth_particle_E", m_truth_particle_E);
00923 addBranch("truth_particle_charge", m_truth_particle_charge);
00924 addBranch("truth_particle_nParents", m_truth_particle_nParents);
00925 addBranch("truth_particle_mother0_barcode", m_truth_particle_mother0_barcode);
00926 addBranch("truth_particle_mother0_pdgId", m_truth_particle_mother0_pdgId);
00927
00928
00929 m_nt->Branch("event_weight", &m_event_weight, "event_weight/D");
00930
00931
00932 m_nt->Branch("nb_vertices", &m_nb_vertices, "nb_vertices/I");
00933 addBranch("vertex_position_x", m_vertex_position_x);
00934 addBranch("vertex_position_y", m_vertex_position_y);
00935 addBranch("vertex_position_z", m_vertex_position_z);
00936 addBranch("vertex_pos_error_x", m_vertex_pos_error_x);
00937 addBranch("vertex_pos_error_y", m_vertex_pos_error_y);
00938 addBranch("vertex_pos_error_z", m_vertex_pos_error_z);
00939 addBranch("vertex_chi2", m_vertex_chi2);
00940 addBranch("vertex_ndof", m_vertex_ndof);
00941 addBranch("vertex_Et", m_vertex_Et);
00942 addBranch("vertex_nb_tracks", m_vertex_nb_tracks);
00943
00944
00945 m_nt->Branch("nb_truth_vertices", &m_nb_truth_vertices, "nb_truth_vertices/I");
00946 addBranch("truth_vertex_position_x", m_truth_vertex_position_x);
00947 addBranch("truth_vertex_position_y", m_truth_vertex_position_y);
00948 addBranch("truth_vertex_position_z", m_truth_vertex_position_z);
00949 addBranch("truth_vertex_Et", m_truth_vertex_Et);
00950 addBranch("truth_vertex_nb_tracks", m_truth_vertex_nb_tracks);
00951
00952
00953 m_nt->Branch("nb_track_jets", &m_nb_track_jets, "nb_track_jets/I");
00954 addBranch("track_jet_p_x", m_track_jet_p_x);
00955 addBranch("track_jet_p_y", m_track_jet_p_y);
00956 addBranch("track_jet_p_z", m_track_jet_p_z);
00957 addBranch("track_jet_E", m_track_jet_E);
00958
00959
00960 m_nt->Branch("nb_truth_track_jets", &m_nb_truth_track_jets,
00961 "nb_truth_track_jets/I");
00962 addBranch("truth_track_jet_p_x", m_truth_track_jet_p_x);
00963 addBranch("truth_track_jet_p_y", m_truth_track_jet_p_y);
00964 addBranch("truth_track_jet_p_z", m_truth_track_jet_p_z);
00965 addBranch("truth_track_jet_E", m_truth_track_jet_E);
00966
00967
00968
00969
00970
00971
00972
00973
00974 m_nt->GetDirectory()->cd();
00975
00976 string str_helper;
00977
00978
00979
00980
00981
00982 tree_aod_file_collection = new TTree("aod_file_collection","aod_file_collection");
00983 tree_aod_file_collection->Branch("aod_files", &char_array_aod_file, "aod_files/C");
00984 if(v_string_aod_files.size()==0){
00985 v_string_aod_files.push_back("not specified in Job Options");
00986 }
00987 for(unsigned int k=0; k<v_string_aod_files.size(); k++){
00988 str_helper=v_string_aod_files[k];
00989 strcpy(char_array_aod_file,str_helper.c_str());
00990 tree_aod_file_collection->Fill();
00991 }
00992
00993
00994
00995
00996 tree_aod_container_keys = new TTree("aod_container_keys","aod_container_keys");
00997
00998 strcpy(aodkey_trigger_decision_container ,m_trigger_decision_container.c_str());
00999 tree_aod_container_keys->Branch("trigger_decision_container", &aodkey_trigger_decision_container,
01000 "trigger_decision_container/C");
01001
01002 strcpy(aodkey_trigger_mu_lvl1_container ,m_trigger_mu_lvl1_container.c_str());
01003 tree_aod_container_keys->Branch("trigger_mu_lvl1_container",&aodkey_trigger_mu_lvl1_container,
01004 "trigger_mu_lvl1_container/C");
01005
01006 strcpy(aodkey_trigger_mu_lvl2_container ,m_trigger_mu_lvl2_container.c_str());
01007 tree_aod_container_keys->Branch("trigger_mu_lvl2_container",&aodkey_trigger_mu_lvl2_container,
01008 "trigger_mu_lvl2_container/C");
01009
01010 strcpy(aodkey_trigger_mu_ef_container ,m_trigger_mu_ef_container.c_str());
01011 tree_aod_container_keys->Branch("trigger_mu_ef_container",&aodkey_trigger_mu_ef_container,
01012 "trigger_mu_ef_container/C");
01013
01014 strcpy(aodkey_trigger_met_container ,m_trigger_met_container.c_str());
01015 tree_aod_container_keys->Branch("trigger_met_container",&aodkey_trigger_met_container,
01016 "trigger_met_container/C");
01017
01018 strcpy(aodkey_electron_container ,m_electron_container.c_str());
01019 tree_aod_container_keys->Branch("electron_container",&aodkey_electron_container,
01020 "electron_container/C");
01021 strcpy(aodkey_photon_container ,m_photon_container.c_str());
01022 tree_aod_container_keys->Branch("photon_container",&aodkey_photon_container,
01023 "photon_container/C");
01024
01025 string m_muon_container_string;
01026 for(unsigned int k=0; k<m_muon_container.size(); k++){
01027 if(k!=0) m_muon_container_string += ", ";
01028 m_muon_container_string += m_muon_container[k];
01029 }
01030
01031 strcpy(aodkey_muon_container ,m_muon_container_string.c_str());
01032 tree_aod_container_keys->Branch("muon_container",&aodkey_muon_container,
01033 "muon_container/C");
01034
01035 string m_met_container_string;
01036 for(unsigned int k=0; k<v_string_met_container.size(); k++){
01037 if(k!=0) m_met_container_string += ", ";
01038 m_met_container_string += v_string_met_container.at(k);
01039 }
01040
01041 strcpy(aodkey_met_container ,m_met_container_string.c_str());
01042 tree_aod_container_keys->Branch("met_container",&aodkey_met_container,
01043 "met_container/C");
01044
01045
01046
01047
01048
01049
01050
01051
01052
01053
01054
01055 strcpy(aodkey_jet_container ,m_jet_container.c_str());
01056 tree_aod_container_keys->Branch("jet_container",&aodkey_jet_container,
01057 "jet_container/C");
01058 strcpy(aodkey_taujet_container ,m_taujet_container.c_str());
01059 tree_aod_container_keys->Branch("taujet_container",&aodkey_taujet_container,
01060 "taujet_container/C");
01061 strcpy(aodkey_truthjet_container ,m_truthjet_container.c_str());
01062 tree_aod_container_keys->Branch("truthjet_container",&aodkey_truthjet_container,
01063 "truthjet_container/C");
01064 strcpy(aodkey_truthmissingEt_container ,m_truthmissingEt_container.c_str());
01065 tree_aod_container_keys->Branch("truthmissingEt_container",&aodkey_truthmissingEt_container,
01066 "truthmissingEt_container/C");
01067 strcpy(aodkey_truthparticle_container ,m_truthparticle_container.c_str());
01068 tree_aod_container_keys->Branch("truthparticle_container",&aodkey_truthparticle_container,
01069 "truthparticle_container/C");
01070
01071 aodkey_AtlFastFlag = m_AtlFastFlag;
01072 tree_aod_container_keys->Branch("AtlFastFlag",&aodkey_AtlFastFlag,
01073 "AtlFastFlag/O");
01074
01075 aodkey_doAODFix1mm = m_doAODFix1mm;
01076 tree_aod_container_keys->Branch("doAODFix1mm",&aodkey_doAODFix1mm,
01077 "doAODFix1mm/O");
01078
01079 aodkey_doTrackJets = m_doTrackJets;
01080 tree_aod_container_keys->Branch("doTrackJets",&aodkey_doTrackJets,
01081 "doTrackJets/O");
01082 aodkey_doVertices = m_doVertices;
01083 tree_aod_container_keys->Branch("doVertices",&aodkey_doVertices,
01084 "doVertices/O");
01085
01086 aodkey_truthparticleMaximumLeptonBarcode = m_truthparticleMaximumLeptonBarcode;
01087 tree_aod_container_keys->Branch("truthparticleMaximumLeptonBarcode",&aodkey_truthparticleMaximumLeptonBarcode,
01088 "truthparticleMaximumLeptonBarcode/I");
01089
01090 aodkey_truthparticleNoPDGAbove100 = m_truthparticleNoPDGAbove100;
01091 tree_aod_container_keys->Branch("truthparticleNoPDGAbove100",&aodkey_truthparticleNoPDGAbove100,
01092 "truthparticleNoPDGAbove100/O");
01093
01094 strcpy(aodkey_primary_vertex_container ,m_primary_vertex_container.c_str());
01095 tree_aod_container_keys->Branch("primary_vertex_container",
01096 &aodkey_primary_vertex_container,
01097 "primary_vertex_container/C");
01098
01099 strcpy(aodkey_track_jet_container ,m_track_jet_container.c_str());
01100 tree_aod_container_keys->Branch("track_jet_container",
01101 &aodkey_track_jet_container,
01102 "track_jet_container/C");
01103 strcpy(aodkey_truth_track_jet_container,
01104 m_truth_track_jet_container.c_str());
01105 tree_aod_container_keys->Branch("truth_track_jet_container",
01106 &aodkey_truth_track_jet_container,
01107 "truth_track_jet_container/C");
01108 strcpy(aodkey_track_particle_container ,m_track_particle_container.c_str());
01109 tree_aod_container_keys->Branch("track_particle_container",
01110 &aodkey_track_particle_container,
01111 "track_particle_container/C");
01112
01113
01114
01115 strcpy(aodkey_showerContainerName, m_showerContainerName.c_str());
01116 tree_aod_container_keys->Branch("shower_container",
01117 &aodkey_showerContainerName,
01118 "shower_container/C");
01119
01120 strcpy(aodkey_trackMatchContainerName, m_trackMatchContainerName.c_str());
01121 tree_aod_container_keys->Branch("trackmatch_container",
01122 &aodkey_trackMatchContainerName,
01123 "trackmatch_container/C");
01124
01125 strcpy(aodkey_tauDetailsContainerName, m_tauDetailsContainerName.c_str());
01126 tree_aod_container_keys->Branch("tauDetails_container",
01127 &aodkey_tauDetailsContainerName,
01128 "taudetails_container/C");
01129
01130
01131 strcpy(aodkey_release,m_release.c_str());
01132 tree_aod_container_keys->Branch("release", &aodkey_release, "release/C");
01133
01134 strcpy(aodkey_svnversion,m_svnversion.c_str());
01135 tree_aod_container_keys->Branch("svnversion", &aodkey_svnversion, "svnversion/C");
01136
01137 strcpy(aodkey_date,m_date.c_str());
01138 tree_aod_container_keys->Branch("date", &aodkey_date, "date/C");
01139
01140
01141 tree_aod_container_keys->Fill();
01142
01144
01146
01147 if (m_doTrackJets && m_AtlFastFlag) {
01148 *m_log << MSG::WARNING
01149 << "No track jets are reconstructed on ATLFAST data!"
01150 << endreq;
01151 m_doTrackJets = false;
01152 m_doVertices = false;
01153 }
01154
01155 return StatusCode::SUCCESS;
01156
01157 }
01158
01159
01160
01161
01162
01163
01164
01165 StatusCode
01166 AANtupleWriter14::CBNT_finalize(void) {
01167
01168 *m_log << MSG::INFO
01169 << "Finilizing AANtupleWriter14..."
01170 << endreq;
01171
01172 return StatusCode::SUCCESS;
01173
01174 }
01175
01176
01177
01178
01179
01180
01181
01182 StatusCode AANtupleWriter14::CBNT_execute(void) {
01183
01184
01185 nEvents++;
01186 if(nEvents%2000==0) cout << "Event: " << nEvents << endl;
01187
01188 if (m_doTrigger) {
01189
01190
01191 if (!get_trigger_data()) {
01192 *m_log << MSG::ERROR
01193 << "Problems in retrieving trigger decision data!"
01194 << endreq;
01195 return StatusCode::FAILURE;
01196 }
01197 if(!m_AtlFastFlag){
01198
01199 if (!get_trigger_muon_lvl1_data()) {
01200 *m_log << MSG::ERROR
01201 << "Problems in retrieving trigger muon lvl1 data!"
01202 << endreq;
01203 return StatusCode::FAILURE;
01204 }
01205 }
01206 if(!m_AtlFastFlag && m_nb_trigger_mu_lvl1>0){
01207
01208 if (!get_trigger_muon_lvl2_data()) {
01209 *m_log << MSG::ERROR
01210 << "Problems in retrieving trigger muon lvl2 data!"
01211 << endreq;
01212 return StatusCode::FAILURE;
01213 }
01214 }
01215 if(!m_AtlFastFlag && m_nb_trigger_mu_lvl1>0&&m_nb_trigger_mu_lvl2>0){
01216
01217 if (!get_trigger_muon_ef_data()) {
01218 *m_log << MSG::ERROR
01219 << "Problems in retrieving trigger muon ef data!"
01220 << endreq;
01221 return StatusCode::FAILURE;
01222 }
01223 }
01224 if(!m_AtlFastFlag){
01225
01226 if (!get_trigger_met_data()) {
01227 *m_log << MSG::ERROR
01228 << "Problems in retrieving trigger met data!"
01229 << endreq;
01230 return StatusCode::FAILURE;
01231 }
01232 }
01233 }
01234
01235
01236 if (m_doTrackParticles) {
01237 if (!get_trackparticle_data()) {
01238 *m_log << MSG::ERROR
01239 << "Problems in retrieving data of reconstructed track particles!"
01240 << endreq;
01241 return StatusCode::FAILURE;
01242 }
01243 }
01244
01245
01246 if (m_doElectrons) {
01247 if (!get_electron_data()) {
01248 *m_log << MSG::ERROR
01249 << "Problems in retrieving data of reconstructed electrons!"
01250 << endreq;
01251 return StatusCode::FAILURE;
01252 }
01253 }
01254
01255
01256 if (m_doPhotons) {
01257 if (!get_photon_data()) {
01258 *m_log << MSG::ERROR
01259 << "Problems in retrieving data of reconstructed photons!"
01260 << endreq;
01261 return StatusCode::FAILURE;
01262 }
01263 }
01264
01265
01266
01267 if (m_doMuons) {
01268 if (!get_muon_data()) {
01269 *m_log << MSG::ERROR
01270 << "Problems in retrieving data of reconstructed muons!"
01271 << endreq;
01272 return StatusCode::FAILURE;
01273 }
01274 }
01275
01276
01277
01278 if (m_doJets) {
01279 if (!get_jet_data()) {
01280 *m_log << MSG::ERROR
01281 << "Problems in retrieving data of reconstructed jets!"
01282 << endreq;
01283 return StatusCode::FAILURE;
01284 }
01285 }
01286
01287
01288 if (m_doTauJets) {
01289 if (!get_taujet_data()) {
01290 *m_log << MSG::ERROR
01291 << "Problems in retrieving data of tau jets!"
01292 << endreq;
01293 return StatusCode::FAILURE;
01294 }
01295 }
01296
01297
01298 if (m_doMissingEt) {
01299 if (!get_missingEt_data()) {
01300 *m_log << MSG::ERROR
01301 << "Problems in retrieving data of missing Et!"
01302 << endreq;
01303 return StatusCode::FAILURE;
01304 }
01305 }
01306
01307
01308 if (m_doTruthParticles) {
01309 if (!get_truthparticle_data()) {
01310 *m_log << MSG::ERROR
01311 << "Problems in retrieving data of truth particles!"
01312 << endreq;
01313 return StatusCode::FAILURE;
01314 }
01315 }
01316
01317
01318 if(!m_AtlFastFlag){
01319
01320
01321 if (m_doTruthJets) {
01322 if (!get_truthjet_data()) {
01323 *m_log << MSG::ERROR
01324 << "Problems in retrieving data of truth jets!"
01325 << endreq;
01326 return StatusCode::FAILURE;
01327 }
01328 }
01329
01330
01331 if (m_doMissingEt) {
01332 if (!get_truthmissingEt_data()) {
01333 *m_log << MSG::ERROR
01334 << "Problems in retrieving data of truth missing Et!"
01335 << endreq;
01336 return StatusCode::FAILURE;
01337 }
01338 }
01339 }
01340
01341
01342 if (!get_eventweight_data()) {
01343 *m_log << MSG::ERROR
01344 << "Problems in retrieving data of weights!"
01345 << endreq;
01346 return StatusCode::FAILURE;
01347 }
01348
01349
01350 if (m_doVertices && !m_AtlFastFlag) {
01351
01352 if (!get_vertex_data()) {
01353 *m_log << MSG::ERROR
01354 << "Problems in retrieving data of vertices!"
01355 << endreq;
01356 return StatusCode::FAILURE;
01357 }
01358
01359
01360
01361
01362
01363
01364
01365
01366
01367 }
01368
01369 if (m_doTrackJets && !m_AtlFastFlag) {
01370
01371 if (!get_track_jet_data()) {
01372 *m_log << MSG::ERROR
01373 << "Problems in retrieving data of track jets!"
01374 << endreq;
01375 return StatusCode::FAILURE;
01376 }
01377
01378
01379
01380
01381
01382
01383
01384
01385 }
01386
01387
01388 return StatusCode::SUCCESS;
01389
01390 }
01391
01392
01393
01394
01395
01396
01397
01398 StatusCode AANtupleWriter14::CBNT_clear(void) {
01399
01400
01402
01404
01405
01406
01407
01408 m_trigger_l1_defined=false;
01409 m_trigger_l2_defined=false;
01410 m_trigger_ef_defined=false;
01411 m_trigger_keys_l1->clear();
01412 m_trigger_keys_status_l1->clear();
01413 m_trigger_keys_prescale_l1->clear();
01414 m_trigger_keys_l2 ->clear();
01415 m_trigger_keys_status_l2->clear();
01416 m_trigger_keys_prescale_l2->clear();
01417 m_trigger_keys_ef ->clear();
01418 m_trigger_keys_status_ef->clear();
01419 m_trigger_keys_prescale_ef->clear();
01420
01421
01422 m_nb_trigger_mu_lvl1 =0;
01423 m_trigger_mu_lvl1_phi ->clear();
01424 m_trigger_mu_lvl1_eta ->clear();
01425 m_trigger_mu_lvl1_threshold_name ->clear();
01426 m_trigger_mu_lvl1_threshold_number ->clear();
01427 m_trigger_mu_lvl1_threshold_value ->clear();
01428 m_trigger_mu_lvl1_roiword ->clear();
01429 m_trigger_mu_lvl1_confirmed ->clear();
01430
01431
01432 m_nb_trigger_mu_lvl2 =0;
01433 m_trigger_mu_lvl2_phi ->clear();
01434 m_trigger_mu_lvl2_eta ->clear();
01435 m_trigger_mu_lvl2_pt ->clear();
01436 m_trigger_mu_lvl2_sigma_pt ->clear();
01437
01438
01439 m_nb_trigger_mu_ef =0;
01440 m_trigger_mu_ef_phi ->clear();
01441 m_trigger_mu_ef_eta ->clear();
01442 m_trigger_mu_ef_pt ->clear();
01443 m_trigger_mu_ef_code ->clear();
01444 m_trigger_mu_ef_charge1 ->clear();
01445 m_trigger_mu_ef_charge2 ->clear();
01446
01447
01448 m_trigger_met_ex = 0;
01449 m_trigger_met_ey = 0;
01450 m_trigger_met_et = 0;
01451 m_trigger_met_sumEt = 0;
01452 m_trigger_met_RoIword = 0;
01453
01454
01455
01456 m_nb_rec_tracks = 0;
01457 m_track_p_x ->clear();
01458 m_track_p_y ->clear();
01459 m_track_p_z ->clear();
01460 m_track_E ->clear();
01461 m_track_charge ->clear();
01462 m_track_vertex_index ->clear();
01463 m_track_SCThit ->clear();
01464 m_track_Phit ->clear();
01465 m_track_BLayerhit ->clear();
01466 m_track_TRThit ->clear();
01467 m_track_MDThit ->clear();
01468 m_track_CSChit_eta ->clear();
01469 m_track_TGChit_eta ->clear();
01470 m_track_RPChit_eta ->clear();
01471 m_track_CSChit_phi ->clear();
01472 m_track_TGChit_phi ->clear();
01473 m_track_RPChit_phi ->clear();
01474 m_track_d0 ->clear();
01475 m_track_z0 ->clear();
01476 m_track_chi2 ->clear();
01477 m_track_nDoF ->clear();
01478 m_track_trackIsolationEnergy_s ->clear();
01479 m_track_trackIsolationEnergy_0 ->clear();
01480 m_track_trackIsolationEnergy_1 ->clear();
01481 m_track_trackIsolationEnergy_2 ->clear();
01482 m_track_trackIsolationEnergy_3 ->clear();
01483
01484
01485 m_nb_rec_electrons = 0;
01486 m_e_p_x ->clear();
01487 m_e_p_y ->clear();
01488 m_e_p_z ->clear();
01489 m_e_E ->clear();
01490 m_e_calo_p_x ->clear();
01491 m_e_calo_p_y ->clear();
01492 m_e_calo_p_z ->clear();
01493 m_e_calo_E ->clear();
01494 m_e_charge ->clear();
01495 m_e_isEM ->clear();
01496 m_e_id_flag ->clear();
01497 m_e_NeuralNet ->clear();
01498 m_e_egamma_flag ->clear();
01499 m_e_softe_flag ->clear();
01500 m_e_E_over_p ->clear();
01501 m_e_TRTHighThresholdHits ->clear();
01502 m_e_TRTHits ->clear();
01503 m_e_ethad1 ->clear();
01504 m_e_Et_in_cone_0 ->clear();
01505 m_e_Et_in_cone_1 ->clear();
01506 m_e_Et_in_cone_2 ->clear();
01507 m_e_Et_in_cone_3 ->clear();
01508 m_e_vertex_index ->clear();
01509 m_e_track_Et_in_cone_0 ->clear();
01510 m_e_track_Et_in_cone_1 ->clear();
01511 m_e_track_Et_in_cone_2 ->clear();
01512 m_e_track_Et_in_cone_3 ->clear();
01513 m_e_trackIsolationEnergy_0 ->clear();
01514 m_e_trackIsolationEnergy_1 ->clear();
01515 m_e_trackIsolationEnergy_2 ->clear();
01516 m_e_trackIsolationEnergy_3 ->clear();
01517
01518
01519 m_nb_rec_photons = 0;
01520 m_p_calo_p_x ->clear();
01521 m_p_calo_p_y ->clear();
01522 m_p_calo_p_z ->clear();
01523 m_p_calo_E ->clear();
01524 m_p_charge ->clear();
01525 m_p_isEM ->clear();
01526 m_p_NeuralNet ->clear();
01527 m_p_egamma_flag ->clear();
01528 m_p_Et_in_cone_0 ->clear();
01529 m_p_Et_in_cone_1 ->clear();
01530 m_p_Et_in_cone_2 ->clear();
01531 m_p_Et_in_cone_3 ->clear();
01532
01533
01534 m_nb_rec_muons = 0;
01535 m_mu_alg_flag ->clear();
01536 m_mu_p_x ->clear();
01537 m_mu_p_y ->clear();
01538 m_mu_p_z ->clear();
01539 m_mu_E ->clear();
01540 m_mu_p_x_standalone ->clear();
01541 m_mu_p_y_standalone ->clear();
01542 m_mu_p_z_standalone ->clear();
01543 m_mu_E_standalone ->clear();
01544 m_mu_p_x_ID ->clear();
01545 m_mu_p_y_ID ->clear();
01546 m_mu_p_z_ID ->clear();
01547 m_mu_E_ID ->clear();
01548 m_mu_charge ->clear();
01549 m_mu_fitChi2 ->clear();
01550 m_mu_fitNumberDoF ->clear();
01551 m_mu_fitChi2OverDoF ->clear();
01552 m_mu_matchChi2 ->clear();
01553 m_mu_matchNumberDoF ->clear();
01554 m_mu_matchChi2OverDoF ->clear();
01555 m_mu_flag ->clear();
01556 m_mu_hasCombinedMuonTrackParticle->clear();
01557 m_mu_Et_in_cone_0 ->clear();
01558 m_mu_Et_in_cone_1 ->clear();
01559 m_mu_Et_in_cone_2 ->clear();
01560 m_mu_Et_in_cone_3 ->clear();
01561 m_mu_Et_in_cone_4 ->clear();
01562 m_mu_Et_in_cone_5 ->clear();
01563 m_mu_Et_in_cone_6 ->clear();
01564 m_mu_Et_in_cone_7 ->clear();
01565 m_mu_nb_tracks_cone_0 ->clear();
01566 m_mu_nb_tracks_cone_1 ->clear();
01567 m_mu_nb_tracks_cone_2 ->clear();
01568 m_mu_nb_tracks_cone_3 ->clear();
01569 m_mu_nb_tracks_cone_4 ->clear();
01570 m_mu_nb_tracks_cone_5 ->clear();
01571 m_mu_nb_tracks_cone_6 ->clear();
01572 m_mu_nb_tracks_cone_7 ->clear();
01573 m_mu_author ->clear();
01574 m_mu_bestmatch ->clear();
01575 m_mu_vertex_index ->clear();
01576 m_mu_track_Et_in_cone_0 ->clear();
01577 m_mu_track_Et_in_cone_1 ->clear();
01578 m_mu_track_Et_in_cone_2 ->clear();
01579 m_mu_track_Et_in_cone_3 ->clear();
01580 m_mu_track_Et_in_cone_4 ->clear();
01581 m_mu_track_Et_in_cone_5 ->clear();
01582 m_mu_track_Et_in_cone_6 ->clear();
01583 m_mu_track_Et_in_cone_7 ->clear();
01584 m_mu_trackIsolationEnergy_0 ->clear();
01585 m_mu_trackIsolationEnergy_1 ->clear();
01586 m_mu_trackIsolationEnergy_2 ->clear();
01587 m_mu_trackIsolationEnergy_3 ->clear();
01588 m_mu_trackIsolationEnergy_4 ->clear();
01589 m_mu_trackIsolationEnergy_5 ->clear();
01590 m_mu_trackIsolationEnergy_6 ->clear();
01591 m_mu_trackIsolationEnergy_7 ->clear();
01592
01593
01594 m_nb_rec_jets = 0;
01595 m_jet_p_x ->clear();
01596 m_jet_p_y ->clear();
01597 m_jet_p_z ->clear();
01598 m_jet_E ->clear();
01599 m_jet_flag ->clear();
01600 m_jet_btag_weight ->clear();
01601 m_jet_truthflavor ->clear();
01602 m_jet_nb_tracks ->clear();
01603 m_jet_tracks_charge ->clear();
01604 m_jet_tracks_p_x ->clear();
01605 m_jet_tracks_p_y ->clear();
01606 m_jet_tracks_p_z ->clear();
01607 m_jet_tracks_E ->clear();
01608
01609
01610 m_nb_tau_jets = 0;
01611 m_taujet_p_x ->clear();
01612 m_taujet_p_y ->clear();
01613 m_taujet_p_z ->clear();
01614 m_taujet_E ->clear();
01615 m_taujet_flag ->clear();
01616 m_taujet_charge ->clear();
01617 m_taujet_etHadCalib ->clear();
01618 m_taujet_etEMCalib ->clear();
01619 m_taujet_emRadius ->clear();
01620 m_taujet_isolationFraction ->clear();
01621 m_taujet_centralityFraction ->clear();
01622 m_taujet_stripWidth2 ->clear();
01623 m_taujet_nStripCells ->clear();
01624 m_taujet_leadingTrackPT ->clear();
01625 m_taujet_trFlightPathSig ->clear();
01626 m_taujet_etOverPtLeadTrack ->clear();
01627 m_taujet_ipSigLeadTrack ->clear();
01628 m_taujet_etChrgHAD ->clear();
01629 m_taujet_etIsolEM ->clear();
01630 m_taujet_etIsolHAD ->clear();
01631 m_taujet_nAssocTracksCore ->clear();
01632 m_taujet_nAssocTracksIsol ->clear();
01633 m_taujet_massTrk3P ->clear();
01634 m_taujet_rWidth2Trk3P ->clear();
01635 m_taujet_signD0Trk3P ->clear();
01636 m_taujet_etHadAtEMScale ->clear();
01637 m_taujet_etEMAtEMScale ->clear();
01638 m_taujet_etEMCL ->clear();
01639 m_taujet_etChrgEM ->clear();
01640 m_taujet_etNeuEM ->clear();
01641 m_taujet_etResNeuEM ->clear();
01642 m_taujet_llh ->clear();
01643 m_taujet_discNN ->clear();
01644 m_taujet_discPDERS ->clear();
01645 m_taujet_lowPtTauJetDiscriminant->clear();
01646 m_taujet_lowPtTauEleDiscriminant->clear();
01647 m_taujet_tauJetNeuralnetwork ->clear();
01648 m_taujet_tauENeuralNetwork ->clear();
01649 m_taujet_bdtJet ->clear();
01650 m_taujet_bdtEle ->clear();
01651 m_taujet_nb_tracks ->clear();
01652 m_taujet_track_px_1 ->clear();
01653 m_taujet_track_py_1 ->clear();
01654 m_taujet_track_pz_1 ->clear();
01655 m_taujet_track_e_1 ->clear();
01656 m_taujet_track_TRTHighThresholdHits_1->clear();
01657 m_taujet_track_TRTHits_1 ->clear();
01658 m_taujet_track_px_2 ->clear();
01659 m_taujet_track_py_2 ->clear();
01660 m_taujet_track_pz_2 ->clear();
01661 m_taujet_track_e_2 ->clear();
01662 m_taujet_track_TRTHighThresholdHits_2->clear();
01663 m_taujet_track_TRTHits_2 ->clear();
01664 m_taujet_track_px_3 ->clear();
01665 m_taujet_track_py_3 ->clear();
01666 m_taujet_track_pz_3 ->clear();
01667 m_taujet_track_e_3 ->clear();
01668 m_taujet_track_TRTHighThresholdHits_3->clear();
01669 m_taujet_track_TRTHits_3 ->clear();
01670
01671
01672 m_nb_truth_jets = 0;
01673 m_truthjet_p_x ->clear();
01674 m_truthjet_p_y ->clear();
01675 m_truthjet_p_z ->clear();
01676 m_truthjet_E ->clear();
01677 m_truthjet_flag ->clear();
01678 m_truthjet_btag_weight ->clear();
01679
01680
01681 m_met_obj_name ->clear();
01682 m_missing_Etx ->clear();
01683 m_missing_Ety ->clear();
01684 m_missing_Et ->clear();
01685 m_missing_Etsum ->clear();
01686
01687
01688 m_nb_truth_particle_all = 0;
01689 m_nb_truth_particle = 0;
01690 m_truth_particle_pt ->clear();
01691 m_truth_particle_status ->clear();
01692 m_truth_particle_barcode ->clear();
01693 m_truth_particle_pdgId ->clear();
01694 m_truth_particle_nDaughters ->clear();
01695 m_truth_particle_p_x ->clear();
01696 m_truth_particle_p_y ->clear();
01697 m_truth_particle_p_z ->clear();
01698 m_truth_particle_E ->clear();
01699 m_truth_particle_charge ->clear();
01700 m_truth_particle_nParents ->clear();
01701 m_truth_particle_mother0_barcode->clear();
01702 m_truth_particle_mother0_pdgId ->clear();
01703
01704 m_event_weight = 0;
01705
01706
01707 m_nb_vertices = 0;
01708 m_vertex_position_x ->clear();
01709 m_vertex_position_y ->clear();
01710 m_vertex_position_z ->clear();
01711 m_vertex_pos_error_x ->clear();
01712 m_vertex_pos_error_y ->clear();
01713 m_vertex_pos_error_z ->clear();
01714 m_vertex_chi2 ->clear();
01715 m_vertex_ndof ->clear();
01716 m_vertex_Et ->clear();
01717 m_vertex_nb_tracks ->clear();
01718
01719
01720 m_nb_truth_vertices = 0;
01721 m_truth_vertex_position_x ->clear();
01722 m_truth_vertex_position_y ->clear();
01723 m_truth_vertex_position_z ->clear();
01724 m_truth_vertex_Et ->clear();
01725 m_truth_vertex_nb_tracks ->clear();
01726
01727
01728 m_nb_track_jets = 0;
01729 m_track_jet_p_x ->clear();
01730 m_track_jet_p_y ->clear();
01731 m_track_jet_p_z ->clear();
01732 m_track_jet_E ->clear();
01733
01734
01735 m_nb_truth_track_jets = 0;
01736 m_truth_track_jet_p_x ->clear();
01737 m_truth_track_jet_p_y ->clear();
01738 m_truth_track_jet_p_z ->clear();
01739 m_truth_track_jet_E ->clear();
01740
01741 return StatusCode::SUCCESS;
01742
01743 }
01744
01745
01746
01747
01748
01749
01750
01751 bool AANtupleWriter14::get_trigger_muon_lvl1_data(void) {
01752
01753 *m_log << MSG::DEBUG << "in get_trigger_muon_lvl1_data()" << endreq;
01754 StatusCode sc = StatusCode::SUCCESS;
01755 m_nb_trigger_mu_lvl1=0;
01756 const LVL1_ROI* lvl1ROI=0;
01757 sc = m_storeGate->retrieve(lvl1ROI);
01758
01759 if(sc.isFailure()) {
01760 *m_log << MSG::ERROR << "Can't retrieve the Muon lvl1" << endreq;
01761 return false;
01762 }
01763
01764
01765
01766 if ( lvl1ROI != 0 ) {
01767 for( LVL1_ROI::muons_type::const_iterator it = (lvl1ROI->getMuonROIs()).begin();
01768 it != (lvl1ROI->getMuonROIs()).end(); ++it ) {
01769 m_nb_trigger_mu_lvl1++;
01770 double phi = (*it).getPhi();
01771 if (phi>TMath::Pi()) phi = phi - 2.*TMath::Pi();
01772 m_trigger_mu_lvl1_phi->push_back(phi);
01773 m_trigger_mu_lvl1_eta->push_back((*it).getEta());
01774 m_trigger_mu_lvl1_threshold_value->push_back((*it).getThrValue());
01775 m_trigger_mu_lvl1_threshold_name->push_back((*it).getThrName());
01776 m_trigger_mu_lvl1_threshold_number->push_back((*it).getThrNumber());
01777 m_trigger_mu_lvl1_roiword->push_back((*it).getROIWord());
01778 m_trigger_mu_lvl1_confirmed->push_back(false);
01779 }
01780 }
01781 return true;
01782 }
01783
01784
01785
01786
01787
01788
01789
01790 bool AANtupleWriter14::get_trigger_muon_lvl2_data(void) {
01791
01792 *m_log << MSG::DEBUG << "in get_trigger_muon_lvl2_data()" << endreq;
01793 StatusCode sc = StatusCode::SUCCESS;
01794 m_nb_trigger_mu_lvl2=0;
01795 const DataHandle<CombinedMuonFeature> combMuonFeatureIt;
01796 const DataHandle<CombinedMuonFeature> combMuonFeatureItEnd;
01797 sc = m_storeGate->retrieve(combMuonFeatureIt,combMuonFeatureItEnd);
01798 if (sc != StatusCode::SUCCESS) {
01799 *m_log << MSG::ERROR << "Can't retrieve the Muon lvl2" << endreq;
01800 return true;
01801 }
01802 for ( ; combMuonFeatureIt != combMuonFeatureItEnd ; ++combMuonFeatureIt ) {
01803 bool matchFound = false;
01804 double dRmin = 10000.;
01805 double phi_l2=combMuonFeatureIt->phi();
01806 if (phi_l2>TMath::Pi()) phi_l2 = phi_l2-2.*TMath::Pi();
01807 for (int l1=0 ; l1<m_nb_trigger_mu_lvl1 ; ++l1) {
01808 double deltaEta = combMuonFeatureIt->eta()-(*m_trigger_mu_lvl1_eta)[l1];
01809 double deltaPhi = phi_l2-(*m_trigger_mu_lvl1_phi)[l1];
01810 deltaPhi=TMath::Abs(deltaPhi);
01811 if (deltaPhi>TMath::Pi()) deltaPhi=2.*TMath::Pi()-deltaPhi;
01812 double deltaR = sqrt(deltaEta*deltaEta+deltaPhi*deltaPhi);
01813 if (deltaR<dRmin) {
01814 (*m_trigger_mu_lvl1_confirmed)[l1]=true;
01815 dRmin = deltaR;
01816 }
01817 }
01818 if (dRmin<0.15) {
01819 matchFound=true;
01820 }
01821
01822 if (matchFound) {
01823 m_nb_trigger_mu_lvl2++;
01824 m_trigger_mu_lvl2_eta->push_back(combMuonFeatureIt->eta());
01825 m_trigger_mu_lvl2_phi->push_back(phi_l2);
01826 m_trigger_mu_lvl2_pt->push_back(combMuonFeatureIt->pt());
01827 m_trigger_mu_lvl2_sigma_pt->push_back(combMuonFeatureIt->sigma_pt());
01828 }
01829 }
01830
01831
01832 return true;
01833 }
01834
01835
01836
01837
01838
01839
01840
01841 bool AANtupleWriter14::get_trigger_muon_ef_data(void) {
01842
01843 *m_log << MSG::DEBUG << "in get_trigger_muon_ef_data()" << endreq;
01844
01845 StatusCode sc = StatusCode::SUCCESS;
01846
01847 const DataHandle<TrigMuonEFContainer> trigEcontIt;
01848 const DataHandle<TrigMuonEFContainer> trigEcontEnd;
01849 m_nb_trigger_mu_ef=0;
01850 sc = m_storeGate->retrieve(trigEcontIt,trigEcontEnd);
01851 if (sc != StatusCode::SUCCESS) {
01852 *m_log << MSG::ERROR << "Can't retrieve the Muon ef" << endreq;
01853 return true;
01854 }
01855
01856 for (;trigEcontIt != trigEcontEnd; ++trigEcontIt) {
01857 string contName = trigEcontIt.key();
01858 if( contName.find("_HLTAutoKey") != string::npos) {
01859 TrigMuonEFContainer::const_iterator trigmuItr = trigEcontIt->begin();
01860 TrigMuonEFContainer::const_iterator trigmuItrE = trigEcontIt->end();
01861 for(; trigmuItr != trigmuItrE; ++trigmuItr) {
01862 bool matchFound = false;
01863 double dRmin = 10000.;
01864 double phi_ef=(*trigmuItr)->phi();
01865 if (phi_ef>TMath::Pi()) phi_ef = phi_ef-2.*TMath::Pi();
01866 for (int l2=0 ; l2<m_nb_trigger_mu_lvl2 ; ++l2) {
01867 double deltaEta = (*trigmuItr)->eta()-(*m_trigger_mu_lvl2_eta)[l2];
01868 double deltaPhi = phi_ef-(*m_trigger_mu_lvl2_phi)[l2];
01869 deltaPhi=TMath::Abs(deltaPhi);
01870 if (deltaPhi>TMath::Pi()) deltaPhi=2.*TMath::Pi()-deltaPhi;
01871 double deltaR = sqrt(deltaEta*deltaEta+deltaPhi*deltaPhi);
01872 if (deltaR<dRmin) {
01873 dRmin = deltaR;
01874 }
01875 }
01876 if (dRmin<0.15) {
01877 matchFound=true;
01878 }
01879 if (matchFound) {
01880 m_nb_trigger_mu_ef++;
01881 m_trigger_mu_ef_code->push_back((*trigmuItr)->MuonCode());
01882 m_trigger_mu_ef_eta->push_back((*trigmuItr)->eta());
01883 m_trigger_mu_ef_phi->push_back(phi_ef);
01884 m_trigger_mu_ef_pt->push_back((*trigmuItr)->pt());
01885 m_trigger_mu_ef_charge1->push_back((*trigmuItr)->charge());
01886 m_trigger_mu_ef_charge2->push_back((*trigmuItr)->Charge());
01887 }
01888 }
01889 }
01890 }
01891 return true;
01892 }
01893
01894
01895
01896
01897
01898
01899
01900 bool AANtupleWriter14::get_trigger_met_data(void) {
01901
01902 *m_log << MSG::DEBUG << "in get_trigger_met_data()" << endreq;
01903
01904 StatusCode sc = StatusCode::SUCCESS;
01905
01906 const TrigMissingET *trigger_met_container = NULL;
01907 sc =m_storeGate->retrieve(trigger_met_container,m_trigger_met_container);
01908 if(sc.isFailure() || trigger_met_container==0) {
01909 *m_log << MSG::WARNING
01910 << "No trigger met container found in the store gate!"
01911 << endreq;
01912 return true;
01913 }
01914 *m_log << MSG::DEBUG << "trigger met container retrieved successfully!"
01915 << endreq;
01916
01917
01918
01919 m_trigger_met_ex=trigger_met_container->ex();
01920 m_trigger_met_ey=trigger_met_container->ey();
01921 m_trigger_met_et=trigger_met_container->et();
01922 m_trigger_met_sumEt=trigger_met_container->sumEt();
01923 m_trigger_met_RoIword=trigger_met_container->RoIword();
01924
01925
01926 return true;
01927 }
01928
01929
01930
01931
01932
01933
01934
01935
01936
01937
01938
01939 bool AANtupleWriter14::get_trigger_data(void) {
01940
01942
01943
01944
01945
01946
01948
01949 const std::vector<const LVL1CTP::Lvl1Item*> allItems = m_trigDec->getL1Items();
01950 if (!allItems.empty()) {
01951 for (std::vector<const LVL1CTP::Lvl1Item*>::const_iterator aItem = allItems.begin();
01952 aItem != allItems.end(); ++aItem) {
01953 if (!*aItem) continue;
01954 if ((*aItem)->name()=="") continue;
01955 *m_log << MSG::DEBUG << "Item " << (*aItem)->name() <<
01956 " : Item ID " << (*aItem)->hashId() << " : " << (*aItem)->isPassed() << endreq;
01957 m_trigger_keys_l1->push_back((*aItem)->name());
01958 m_trigger_keys_status_l1->push_back((*aItem)->isPassed());
01959
01960
01961 }
01962 }
01963
01964
01965 const std::vector< const TrigConf::HLTChain * > confChains = m_trigDec->getConfigurationChains();
01966 *m_log << MSG::INFO << "Configuring for " << confChains.size() << " HLT chain counters" << endreq;
01967 std::vector< const TrigConf::HLTChain *>::const_iterator iter;
01968 for (iter = confChains.begin(); iter != confChains.end(); ++iter){
01969 std::string name = (*iter)->chain_name();
01970 std::string tmp_name = name.substr(0,3);
01971 if (tmp_name=="L2_") {
01972 m_trigger_keys_l2->push_back((*iter)->chain_name());
01973 m_trigger_keys_status_l2->push_back(m_trigDec->isPassed(tmp_name));
01974
01975
01976 }
01977 else if (tmp_name=="EF_") {
01978 m_trigger_keys_ef->push_back((*iter)->chain_name());
01979 m_trigger_keys_status_ef->push_back(m_trigDec->isPassed(tmp_name));
01980
01981
01982 }
01983 else *m_log << MSG::ERROR << "unknown trigger level: " << name << endreq;
01984 *m_log << MSG::DEBUG << "Configured chain: " << name <<
01985 "; prescale=" << (*iter)->prescale()
01986 << "; passthrough=" << (*iter)->pass_through()
01987 << "; lower chain=" << (*iter)->lower_chain_name() << endreq;
01988 }
01989
01990
01991
01992
01993
01994
01995
01996
01997
01998
01999
02000
02001
02002
02003
02004
02005
02006
02007 return true;
02008 }
02009
02010
02011
02012
02013
02014
02015
02016
02017
02018
02019
02020
02021
02022
02023
02024
02025
02026
02027
02028
02029
02030
02031
02032
02033
02034
02035
02036
02037
02038
02039
02040
02041
02042
02043
02044
02045
02046
02047
02048
02049
02050
02051
02052
02053
02054
02055
02056
02057
02058
02059
02060
02061
02062
02063
02064
02065
02066
02067
02068
02069
02070
02071
02072
02073
02074
02075
02076
02077
02078
02079
02080
02081
02082
02083
02084
02085
02086
02087
02088
02089
02090
02091
02092
02093
02094
02095
02096
02097
02098
02099
02100
02101
02102
02103
02104
02105
02106
02107
02108
02109
02110
02111
02112
02113
02114
02115
02116
02117
02118
02119
02120 bool AANtupleWriter14::get_trackparticle_data(void) {
02121
02123
02125
02126 const Rec::TrackParticleContainer *track_particle_container(0);
02127
02128
02130
02132
02133 StatusCode sc(m_storeGate->retrieve(track_particle_container,
02134 m_track_particle_container));
02135 if(sc.isFailure() || track_particle_container==0) {
02136 *m_log << MSG::WARNING
02137 << "No track particle container found in the store gate!"
02138 << endreq;
02139 return false;
02140 }
02141 *m_log << MSG::DEBUG << "track particle container retrieved successfully!"
02142 << endreq;
02143
02145
02147
02148
02149 for (unsigned int k=0; k<track_particle_container->size(); k++) {
02150
02151
02152
02153
02154
02155
02156 m_nb_rec_tracks++;
02157
02158
02159
02160 m_track_p_x->push_back( (*track_particle_container)[k]->px() );
02161 m_track_p_y->push_back( (*track_particle_container)[k]->py() );
02162 m_track_p_z->push_back( (*track_particle_container)[k]->pz() );
02163 m_track_E->push_back( (*track_particle_container)[k]->e() );
02164
02165
02166 m_track_charge->push_back( static_cast<int>( (*track_particle_container)[k]->charge()) );
02167
02168
02169 if (!m_AtlFastFlag && m_doVertices) {
02170
02171 if ((*track_particle_container)[k]->reconstructedVertex()==NULL) {
02172 m_track_vertex_index->push_back(-1);
02173 } else {
02175
02176
02177 }
02178 }
02179 else{
02180 m_track_vertex_index->push_back(-1);
02181 }
02182
02183 if (!m_AtlFastFlag){
02184 m_track_chi2->push_back(((*track_particle_container)[k]->fitQuality())->chiSquared());
02185 m_track_nDoF->push_back(((*track_particle_container)[k]->fitQuality())->numberDoF());
02186 const Trk::TrackSummary* trksumy=(*track_particle_container)[k]->trackSummary();
02187 m_track_SCThit->push_back(trksumy->get(Trk::numberOfSCTHits));
02188 m_track_Phit->push_back(trksumy->get(Trk::numberOfPixelHits));
02189 m_track_BLayerhit->push_back(trksumy->get(Trk::numberOfBLayerHits));
02190 m_track_TRThit->push_back(trksumy->get(Trk::numberOfTRTHits));
02191 m_track_MDThit->push_back(trksumy->get(Trk::numberOfMdtHits));
02192 m_track_CSChit_eta->push_back(trksumy->get(Trk::numberOfCscEtaHits));
02193 m_track_TGChit_eta->push_back(trksumy->get(Trk::numberOfTgcEtaHits));
02194 m_track_RPChit_eta->push_back(trksumy->get(Trk::numberOfRpcEtaHits));
02195 m_track_CSChit_phi->push_back(trksumy->get(Trk::numberOfCscPhiHits));
02196 m_track_TGChit_phi->push_back(trksumy->get(Trk::numberOfTgcPhiHits));
02197 m_track_RPChit_phi->push_back(trksumy->get(Trk::numberOfRpcPhiHits));
02198 const Trk::MeasuredPerigee* trkperi=(*track_particle_container)[k]->measuredPerigee();
02199 m_track_d0->push_back(trkperi->parameters()[Trk::d0]);
02200 m_track_z0->push_back(trkperi->parameters()[Trk::z0]);
02201 }
02202 else{
02203 m_track_chi2->push_back(-9);
02204 m_track_nDoF->push_back(-9);
02205 m_track_SCThit->push_back(-9);
02206 m_track_Phit->push_back(-9);
02207 m_track_BLayerhit->push_back(-9);
02208 m_track_TRThit->push_back(-9);
02209 m_track_MDThit->push_back(-9);
02210 m_track_CSChit_eta->push_back(-9);
02211 m_track_TGChit_eta->push_back(-9);
02212 m_track_RPChit_eta->push_back(-9);
02213 m_track_CSChit_phi->push_back(-9);
02214 m_track_TGChit_phi->push_back(-9);
02215 m_track_RPChit_phi->push_back(-9);
02216 m_track_d0->push_back(-9);
02217 m_track_z0->push_back(-9);
02218 }
02219
02220 if (!m_AtlFastFlag) {
02221 m_track_trackIsolationEnergy_s->push_back(
02222 m_trackIsolationTool->trackIsolationEnergy((*track_particle_container)[k],0.01));
02223 m_track_trackIsolationEnergy_0->push_back(
02224 m_trackIsolationTool->trackIsolationEnergy((*track_particle_container)[k],0.2));
02225 m_track_trackIsolationEnergy_1->push_back(
02226 m_trackIsolationTool->trackIsolationEnergy((*track_particle_container)[k],0.3));
02227 m_track_trackIsolationEnergy_2->push_back(
02228 m_trackIsolationTool->trackIsolationEnergy((*track_particle_container)[k],0.4));
02229 m_track_trackIsolationEnergy_3->push_back(
02230 m_trackIsolationTool->trackIsolationEnergy((*track_particle_container)[k],0.45));
02231 }
02232 else {
02233 m_track_trackIsolationEnergy_s->push_back(-999);
02234 m_track_trackIsolationEnergy_0->push_back(-999);
02235 m_track_trackIsolationEnergy_1->push_back(-999);
02236 m_track_trackIsolationEnergy_2->push_back(-999);
02237 m_track_trackIsolationEnergy_3->push_back(-999);
02238 }
02239
02240
02241
02242 }
02243
02244 return true;
02245
02246 }
02247
02248
02249
02250
02251
02252
02253
02254
02255
02256
02257 bool AANtupleWriter14::get_photon_data(void) {
02258
02260
02262
02263 const PhotonContainer *photon_container(0);
02264
02265
02267
02269
02270 StatusCode sc(m_storeGate->retrieve(photon_container,
02271 m_photon_container));
02272 if(sc.isFailure() || photon_container==0) {
02273 *m_log << MSG::WARNING
02274 << "No photon container found in the store gate!"
02275 << endreq;
02276 return false;
02277 }
02278 *m_log << MSG::DEBUG << "photon container retrieved successfully!"
02279 << endreq;
02280
02282
02284
02285
02286 for (unsigned int k=0; k<photon_container->size(); k++) {
02287
02288
02289
02290 if (m_photon_container!=string("AtlfastPhotonCollection")
02291 && ((*photon_container)[k]->author()!=
02292 egammaParameters::AuthorPhoton )) {
02293 continue;
02294 }
02295
02296
02297
02298 m_nb_rec_photons++;
02299
02300
02301
02302
02303
02304
02305 m_p_calo_p_x->push_back(
02306 (*photon_container)[k]->px() );
02307 m_p_calo_p_y->push_back(
02308 (*photon_container)[k]->py() );
02309 m_p_calo_p_z->push_back(
02310 (*photon_container)[k]->pz() );
02311 m_p_calo_E->push_back(
02312 (*photon_container)[k]->e() );
02313
02314
02315
02316
02317 m_p_charge->push_back( static_cast<int>(
02318 (*photon_container)[k]->charge()) );
02319
02320
02321 if (m_photon_container!=string("AtlfastPhotonCollection")) {
02322 m_p_egamma_flag->push_back(
02323 ((*photon_container)[k]->author()==
02324 egammaParameters::AuthorPhoton) &&
02325 ((*photon_container)[k]->isem()%16==0) );
02326 } else {
02327 m_p_egamma_flag->push_back( 1 );
02328 }
02329
02330 m_p_isEM->push_back((*photon_container)[k]->isem() );
02331 m_p_NeuralNet->push_back((*photon_container)[k]
02332 ->egammaID(egammaPID::NeuralNet) );
02333
02334
02335
02336
02337
02338
02339
02340 if(!m_AtlFastFlag){
02341 const EMShower *shower =
02342 (*photon_container)[k]->detail<EMShower>(m_showerContainerName);
02343
02344 if(!shower){
02345 *m_log << MSG::ERROR
02346 << "Unable to retrieve a pointer to EMShower container!"
02347 << endreq;
02348 }
02349
02350 m_p_Et_in_cone_0->push_back( shower->etcone20() );
02351 m_p_Et_in_cone_1->push_back( shower->etcone30() );
02352 m_p_Et_in_cone_2->push_back( shower->etcone40() );
02353 m_p_Et_in_cone_3->push_back( shower->etcone() );
02354 }
02355 else{
02356 m_p_Et_in_cone_0->push_back(0);
02357 m_p_Et_in_cone_1->push_back(0);
02358 m_p_Et_in_cone_2->push_back(0);
02359 m_p_Et_in_cone_3->push_back(0);
02360
02361 }
02362 }
02363
02364 return true;
02365
02366 }
02367
02368
02369
02370
02371
02372
02373 bool AANtupleWriter14::get_electron_data(void) {
02374
02376
02378
02379 const ElectronContainer *electron_container(0);
02380
02381
02382
02384
02386
02387 StatusCode sc(m_storeGate->retrieve(electron_container,
02388 m_electron_container));
02389 if(sc.isFailure() || electron_container==0) {
02390 *m_log << MSG::WARNING
02391 << "No electron container found in the store gate!"
02392 << endreq;
02393 return false;
02394 }
02395 *m_log << MSG::DEBUG << "Electron container retrieved successfully!"
02396 << endreq;
02397
02399
02401
02402
02403 for (unsigned int k=0; k<electron_container->size(); k++) {
02404
02405
02406
02407 if (m_electron_container!=string("AtlfastElectronCollection")
02408 && ((*electron_container)[k]->author()!=
02409 egammaParameters::AuthorElectron &&
02410 (*electron_container)[k]->author()!=
02411 egammaParameters::AuthorSofte)) {
02412 continue;
02413 }
02414
02415
02416 if (m_electron_container!=string("AtlfastElectronCollection") &&
02417 (*electron_container)[k]->trackParticle()==0) {
02418 continue;
02419 }
02420
02421
02422
02423
02424 m_nb_rec_electrons++;
02425
02426
02427
02428 if (m_electron_container!=string("AtlfastElectronCollection")) {
02429 m_e_p_x->push_back(
02430 (*electron_container)[k]->trackParticle()->px() );
02431 m_e_p_y->push_back(
02432 (*electron_container)[k]->trackParticle()->py() );
02433 m_e_p_z->push_back(
02434 (*electron_container)[k]->trackParticle()->pz() );
02435 m_e_E->push_back(
02436 (*electron_container)[k]->trackParticle()->e() );
02437 } else {
02438 m_e_p_x->push_back(
02439 (*electron_container)[k]->px() );
02440 m_e_p_y->push_back(
02441 (*electron_container)[k]->py() );
02442 m_e_p_z->push_back(
02443 (*electron_container)[k]->pz() );
02444 m_e_E->push_back(
02445 (*electron_container)[k]->e() );
02446 }
02447
02448
02449
02450 m_e_calo_p_x->push_back(
02451 (*electron_container)[k]->px() );
02452 m_e_calo_p_y->push_back(
02453 (*electron_container)[k]->py() );
02454 m_e_calo_p_z->push_back(
02455 (*electron_container)[k]->pz() );
02456 m_e_calo_E->push_back(
02457 (*electron_container)[k]->e() );
02458
02459
02460
02461 m_e_charge->push_back( static_cast<int>(
02462 (*electron_container)[k]->charge()) );
02463
02464
02465
02466
02467 if (m_electron_container!=string("AtlfastElectronCollection")) {
02468
02469 m_e_egamma_flag->push_back(
02470 ((*electron_container)[k]->author()==
02471 egammaParameters::AuthorElectron) &&
02472 ((*electron_container)[k]->isem()%16==0) );
02473
02474 m_e_softe_flag->push_back(
02475 ((*electron_container)[k]->author()==
02476 egammaParameters::AuthorSofte) &&
02477 ((*electron_container)[k]->isem()%16==0) );
02478
02479
02480 m_e_isEM->push_back((*electron_container)[k]->isem() );
02481 m_e_NeuralNet->push_back((*electron_container)[k]->egammaID(egammaPID::NeuralNet));
02482
02483 int e_id_flag = 0;
02484
02485 if((*electron_container)[k]->isem(egammaPID::ElectronLoose)==0){
02486 e_id_flag=1;
02487 }
02488 if((*electron_container)[k]->isem(egammaPID::ElectronMedium)==0){
02489 e_id_flag=2;
02490 }
02491 if((*electron_container)[k]->isem(egammaPID::ElectronTight)==0){
02492 e_id_flag=3;
02493 }
02494
02495 m_e_id_flag->push_back(e_id_flag);
02496
02497 const EMTrackMatch *trkmatch =
02498 (*electron_container)[k]->detail<EMTrackMatch>(m_trackMatchContainerName);
02499
02500 if(!trkmatch){
02501 *m_log << MSG::ERROR
02502 << "Unable to retrieve a pointer to EMTrackMatch container!"
02503 << endreq;
02504 }
02505
02506
02507 m_e_E_over_p->push_back(trkmatch->EoverP());
02508
02509 m_e_TRTHighThresholdHits->push_back((*electron_container)[k]
02510 ->trackParticle()->trackSummary()
02511 ->get(Trk::numberOfTRTHighThresholdHits));
02512
02513 m_e_TRTHits->push_back((*electron_container)[k]
02514 ->trackParticle()->trackSummary()
02515 ->get(Trk::numberOfTRTHits));
02516
02517
02518 } else {
02519 m_e_egamma_flag->push_back( 1 );
02520 m_e_softe_flag->push_back( 0 );
02521 m_e_isEM->push_back(0);
02522 m_e_id_flag->push_back(0);
02523 m_e_NeuralNet->push_back(99.0);
02524 m_e_E_over_p->push_back(1.0);
02525 m_e_TRTHighThresholdHits->push_back(10);
02526 m_e_TRTHits->push_back(10);
02527 }
02528
02529
02530
02531
02532
02533
02534
02535 if(!m_AtlFastFlag){
02536
02537 const EMShower *shower =
02538 (*electron_container)[k]->detail<EMShower>(m_showerContainerName);
02539
02540 if(!shower){
02541 *m_log << MSG::ERROR
02542 << "Unable to retrieve a pointer to EMShower container!"
02543 << endreq;
02544 }
02545
02546 m_e_Et_in_cone_0->push_back( shower->etcone20() );
02547 m_e_Et_in_cone_1->push_back( shower->etcone30() );
02548 m_e_Et_in_cone_2->push_back( shower->etcone40() );
02549 m_e_Et_in_cone_3->push_back( shower->etcone() );
02550
02551 m_e_ethad1->push_back(shower->ethad1());
02552
02553
02554
02555
02556
02557 m_e_trackIsolationEnergy_0->push_back(
02558 m_trackIsolationTool->trackIsolationEnergy(((*electron_container)[k])->trackParticle(),0.2));
02559 m_e_trackIsolationEnergy_1->push_back(
02560 m_trackIsolationTool->trackIsolationEnergy(((*electron_container)[k])->trackParticle(),0.3));
02561 m_e_trackIsolationEnergy_2->push_back(
02562 m_trackIsolationTool->trackIsolationEnergy(((*electron_container)[k])->trackParticle(),0.4));
02563 m_e_trackIsolationEnergy_3->push_back(
02564 m_trackIsolationTool->trackIsolationEnergy(((*electron_container)[k])->trackParticle(),0.45));
02565 }
02566 else {
02567 m_e_Et_in_cone_0->push_back(0);
02568 m_e_Et_in_cone_1->push_back(0);
02569 m_e_Et_in_cone_2->push_back(0);
02570 m_e_Et_in_cone_3->push_back(0);
02571
02572 m_e_ethad1->push_back(0);
02573
02574 m_e_trackIsolationEnergy_0->push_back(-999);
02575 m_e_trackIsolationEnergy_1->push_back(-999);
02576 m_e_trackIsolationEnergy_2->push_back(-999);
02577 m_e_trackIsolationEnergy_3->push_back(-999);
02578 }
02579
02580
02581 if (!m_AtlFastFlag && m_doVertices) {
02582
02583 if ((*electron_container)[k]->trackParticle()->reconstructedVertex()==NULL) {
02584 m_e_vertex_index->push_back(-1);
02585 } else {
02586 Trk::RecVertex rec_vert( (*electron_container)[k]->trackParticle()
02587 ->reconstructedVertex()->recVertex() );
02588
02589 m_e_vertex_index
02590 ->push_back(find_vertex(static_cast<const Trk::RecVertex *> (&rec_vert)));
02591 }
02592 }
02593 else{
02594 m_e_vertex_index->push_back(-1);
02595 }
02596
02597
02598 Hep3Vector vertex(0.,0.,0.);
02599
02600 if(!m_AtlFastFlag && m_doVertices){
02601
02602 if((*electron_container)[k]->trackParticle()->reconstructedVertex()!=NULL){
02603 vertex = (*electron_container)[k]
02604 ->trackParticle()->reconstructedVertex()->recVertex().position();
02605 }
02606 }
02607
02608
02609
02610
02611 HepLorentzVector tmp_tlv;
02612 if(!m_AtlFastFlag){
02613 tmp_tlv = HepLorentzVector( (*electron_container)[k]->trackParticle()->px(),
02614 (*electron_container)[k]->trackParticle()->py(),
02615 (*electron_container)[k]->trackParticle()->pz(),
02616 (*electron_container)[k]->trackParticle()->e());
02617 }
02618 else{
02619 tmp_tlv = HepLorentzVector( (*electron_container)[k]->px(),
02620 (*electron_container)[k]->py(),
02621 (*electron_container)[k]->pz(),
02622 (*electron_container)[k]->e());
02623 }
02624
02625 if (m_doVertices && (*m_e_vertex_index)[m_e_vertex_index->size()-1]==-1 ) {
02626
02627 m_e_track_Et_in_cone_0->push_back(-1.0);
02628 m_e_track_Et_in_cone_1->push_back(-1.0);
02629 m_e_track_Et_in_cone_2->push_back(-1.0);
02630 m_e_track_Et_in_cone_3->push_back(-1.0);
02631
02632 }else{
02633
02634 m_e_track_Et_in_cone_0->push_back( get_energy_in_cone(0.20, tmp_tlv, vertex) );
02635 m_e_track_Et_in_cone_1->push_back( get_energy_in_cone(0.30, tmp_tlv, vertex) );
02636 m_e_track_Et_in_cone_2->push_back( get_energy_in_cone(0.40, tmp_tlv, vertex) );
02637 m_e_track_Et_in_cone_3->push_back( get_energy_in_cone(0.45, tmp_tlv, vertex) );
02638 }
02639
02640
02641
02642
02643
02644
02645
02646
02647
02648
02649
02650
02651
02652
02653
02654
02655
02656
02657
02658
02659
02660
02661
02662
02663
02664
02665 }
02666
02667
02668
02669
02670 return true;
02671
02672 }
02673
02674
02675
02676
02677
02678
02679
02680 bool AANtupleWriter14::get_muon_data(void) {
02681
02683
02685
02686 const Analysis::MuonContainer *muon_container(0);
02687
02688
02690
02692
02693 for (unsigned int i_cont=0; i_cont<m_muon_container.size(); i_cont++) {
02694
02695 StatusCode sc(m_storeGate->retrieve(muon_container, m_muon_container[i_cont]));
02696 if(sc.isFailure() || muon_container==0) {
02697 *m_log << MSG::WARNING
02698 << "No muon container found in the store gate!"
02699 << endreq;
02700 return false;
02701 }
02702 *m_log << MSG::DEBUG << "Muon container retrieved successfully!"
02703 << endreq;
02704
02706
02708
02709
02710 for (unsigned int k=0; k<muon_container->size(); k++) {
02711
02712
02713 m_nb_rec_muons++;
02714
02715
02716
02717
02718
02719
02720
02721
02722
02723
02724
02725
02726
02727
02728
02729
02730
02731
02732
02733
02734
02735
02736
02737
02738
02739
02740
02741
02742
02743
02744
02745
02746
02747
02748
02749
02750
02751
02752
02753
02754
02755
02756
02757
02758
02759
02760
02761
02762
02763
02764
02765
02766
02767
02768 int mu_alg_flag = 0;
02769 if(m_muon_container[i_cont]=="AtlfastMuonCollection"){
02770 mu_alg_flag = 1;
02771 }
02772 else if(m_muon_container[i_cont]=="MuidMuonCollection"){
02773 mu_alg_flag = 2;
02774 }
02775 else if (m_muon_container[i_cont]=="StacoMuonCollection"){
02776 mu_alg_flag = 3;
02777 }
02778 m_mu_alg_flag->push_back(mu_alg_flag);
02779
02780
02781
02782
02783 m_mu_p_x->push_back( (*muon_container)[k]->px() );
02784 m_mu_p_y->push_back( (*muon_container)[k]->py() );
02785 m_mu_p_z->push_back( (*muon_container)[k]->pz() );
02786 m_mu_E->push_back( (*muon_container)[k]->e() );
02787
02788
02789 if ((*muon_container)[k]->hasMuonExtrapolatedTrackParticle()) {
02790 m_mu_p_x_standalone->push_back((*muon_container)[k]->
02791 muonExtrapolatedTrackParticle()->px());
02792 m_mu_p_y_standalone->push_back((*muon_container)[k]->
02793 muonExtrapolatedTrackParticle()->py());
02794 m_mu_p_z_standalone->push_back((*muon_container)[k]->
02795 muonExtrapolatedTrackParticle()->pz());
02796 m_mu_E_standalone->push_back((*muon_container)[k]->
02797 muonExtrapolatedTrackParticle()->e());
02798 } else {
02799 m_mu_p_x_standalone->push_back(1.0e90);
02800 m_mu_p_y_standalone->push_back(0);
02801 m_mu_p_z_standalone->push_back(0);
02802 m_mu_E_standalone->push_back(1.0e90);
02803 }
02804 if ((*muon_container)[k]->hasInnerExtrapolatedTrackParticle()) {
02805 m_mu_p_x_ID->push_back((*muon_container)[k]->
02806 innerExtrapolatedTrackParticle()->px());
02807 m_mu_p_y_ID->push_back((*muon_container)[k]->
02808 innerExtrapolatedTrackParticle()->py());
02809 m_mu_p_z_ID->push_back((*muon_container)[k]->
02810 innerExtrapolatedTrackParticle()->pz());
02811 m_mu_E_ID->push_back((*muon_container)[k]->
02812 innerExtrapolatedTrackParticle()->e());
02813 } else {
02814 m_mu_p_x_ID->push_back(1.0e90);
02815 m_mu_p_y_ID->push_back(0);
02816 m_mu_p_z_ID->push_back(0);
02817 m_mu_E_ID->push_back(1.0e90);
02818 }
02819
02820
02821
02822 m_mu_charge->push_back( static_cast<int>(
02823 (*muon_container)[k]->charge()) );
02824
02825
02826
02827 if (!m_AtlFastFlag){
02828 m_mu_fitChi2->push_back( (*muon_container)[k]->fitChi2() );
02829 m_mu_fitNumberDoF->push_back( (*muon_container)[k]->fitNumberDoF() );
02830 m_mu_fitChi2OverDoF->push_back( (*muon_container)[k]->fitChi2OverDoF() );
02831 m_mu_matchChi2->push_back( (*muon_container)[k]->matchChi2() );
02832 m_mu_matchNumberDoF->push_back( (*muon_container)[k]->matchNumberDoF() );
02833 m_mu_matchChi2OverDoF->push_back( (*muon_container)[k]->matchChi2OverDoF() );
02834 }
02835 else {
02836 m_mu_fitChi2->push_back(50.0);
02837 m_mu_fitNumberDoF->push_back(50);
02838 m_mu_fitChi2OverDoF->push_back(1.0);
02839 m_mu_matchChi2->push_back(50.0);
02840 m_mu_matchNumberDoF->push_back(50);
02841 m_mu_matchChi2OverDoF->push_back(1.0);
02842 }
02843
02844
02845 if (!m_AtlFastFlag){
02846 if ((*muon_container)[k]->hasCombinedMuonTrackParticle() && (*muon_container)[k]->isHighPt()) {
02847 if ((*muon_container)[k]->bestMatch()) {
02848 m_mu_flag->push_back( 1 );
02849 } else {
02850 m_mu_flag->push_back( -1 );
02851 }
02852 }
02853 else if ((*muon_container)[k]->isStandAloneMuon()) {
02854 m_mu_flag->push_back( 2 );
02855 }
02856 else if ((*muon_container)[k]->isLowPtReconstructedMuon()) {
02857 m_mu_flag->push_back( 3 );
02858 }
02859 else{
02860 m_mu_flag->push_back( 0 );
02861 }
02862
02863
02864 m_mu_hasCombinedMuonTrackParticle->push_back((int)
02865 (*muon_container)[k]->hasCombinedMuonTrackParticle());
02866
02867
02868 m_mu_author->push_back( (*muon_container)[k]->author() );
02869
02870
02871 if ((*muon_container)[k]->bestMatch()){
02872 m_mu_bestmatch->push_back( 1 );
02873 }else {
02874 m_mu_bestmatch->push_back( -1 );
02875 }
02876 }
02877 else {
02878 m_mu_flag->push_back( 1 );
02879 m_mu_hasCombinedMuonTrackParticle->push_back(1);
02880 m_mu_author->push_back( 1 );
02881 m_mu_bestmatch->push_back( 1 );
02882 }
02883
02884
02885 m_mu_Et_in_cone_0->push_back(
02886 (*muon_container)[k]->parameter(MuonParameters::etcone10) );
02887 m_mu_Et_in_cone_1->push_back(
02888 (*muon_container)[k]->parameter(MuonParameters::etcone20) );
02889 m_mu_Et_in_cone_2->push_back(
02890 (*muon_container)[k]->parameter(MuonParameters::etcone30) );
02891 m_mu_Et_in_cone_3->push_back(
02892 (*muon_container)[k]->parameter(MuonParameters::etcone40) );
02893
02894
02895
02896
02897
02898
02899
02900
02901
02902 if (!m_AtlFastFlag) {
02903
02904 double muonPt=
02905 m_trackIsolationTool->trackIsolationEnergy(((*muon_container)[k])->track(),0.01,false);
02906 m_mu_trackIsolationEnergy_0->push_back(
02907 m_trackIsolationTool->trackIsolationEnergy(((*muon_container)[k])->track(),0.1,false)-muonPt);
02908 m_mu_trackIsolationEnergy_1->push_back(
02909 m_trackIsolationTool->trackIsolationEnergy(((*muon_container)[k])->track(),0.2,false)-muonPt);
02910 m_mu_trackIsolationEnergy_2->push_back(
02911 m_trackIsolationTool->trackIsolationEnergy(((*muon_container)[k])->track(),0.3,false)-muonPt);
02912 m_mu_trackIsolationEnergy_3->push_back(
02913 m_trackIsolationTool->trackIsolationEnergy(((*muon_container)[k])->track(),0.4,false)-muonPt);
02914
02915
02916
02917
02918
02919
02920
02921
02922 }
02923 else {
02924 m_mu_trackIsolationEnergy_0->push_back(-999);
02925 m_mu_trackIsolationEnergy_1->push_back(-999);
02926 m_mu_trackIsolationEnergy_2->push_back(-999);
02927 m_mu_trackIsolationEnergy_3->push_back(-999);
02928 m_mu_trackIsolationEnergy_4->push_back(-999);
02929 m_mu_trackIsolationEnergy_5->push_back(-999);
02930 m_mu_trackIsolationEnergy_6->push_back(-999);
02931 m_mu_trackIsolationEnergy_7->push_back(-999);
02932 }
02933
02934
02935 m_mu_nb_tracks_cone_0->push_back(static_cast<int>
02936 ((*muon_container)[k]->parameter(MuonParameters::nucone10)) );
02937 m_mu_nb_tracks_cone_1->push_back(static_cast<int>
02938 ((*muon_container)[k]->parameter(MuonParameters::nucone20)) );
02939 m_mu_nb_tracks_cone_2->push_back(static_cast<int>
02940 ((*muon_container)[k]->parameter(MuonParameters::nucone30)) );
02941 m_mu_nb_tracks_cone_3->push_back(static_cast<int>
02942 ((*muon_container)[k]->parameter(MuonParameters::nucone40)) );
02943
02944
02945
02946
02947
02948
02949
02950
02951
02952
02953
02954 if (!m_AtlFastFlag && m_doVertices) {
02955 if ((*muon_container)[k]->track()->reconstructedVertex()==NULL) {
02956 m_mu_vertex_index->push_back(-1);
02957 } else {
02958 Trk::RecVertex rec_vert( (*muon_container)[k]->track()
02959 ->reconstructedVertex()->recVertex() );
02960 m_mu_vertex_index
02961 ->push_back( find_vertex( static_cast<const Trk::RecVertex *>
02962 (&rec_vert) ) );
02963 }
02964 }else{
02965 m_mu_vertex_index->push_back(-1);
02966 }
02967
02968 Hep3Vector vertex(0.,0.,0.);
02969
02970 if(m_doVertices){
02971
02972 if((*muon_container)[k]->track()->reconstructedVertex()!=NULL){
02973 vertex = (*muon_container)[k]
02974 ->track()->reconstructedVertex()->recVertex().position();
02975 }
02976 }
02977
02978
02979 HepLorentzVector tmp_tlv((*muon_container)[k]->px(),
02980 (*muon_container)[k]->py(),
02981 (*muon_container)[k]->pz(),
02982 (*muon_container)[k]->e());
02983
02984
02985
02986
02987 if (m_doVertices && (*m_mu_vertex_index)[m_mu_vertex_index->size()-1]==-1 ) {
02988
02989 m_mu_track_Et_in_cone_0->push_back(-1.0);
02990 m_mu_track_Et_in_cone_1->push_back(-1.0);
02991 m_mu_track_Et_in_cone_2->push_back(-1.0);
02992 m_mu_track_Et_in_cone_3->push_back(-1.0);
02993 m_mu_track_Et_in_cone_4->push_back(-1.0);
02994 m_mu_track_Et_in_cone_5->push_back(-1.0);
02995 m_mu_track_Et_in_cone_6->push_back(-1.0);
02996 m_mu_track_Et_in_cone_7->push_back(-1.0);
02997
02998 }else{
02999
03000 m_mu_track_Et_in_cone_0->push_back( get_energy_in_cone(0.1, tmp_tlv, vertex) );
03001 m_mu_track_Et_in_cone_1->push_back( get_energy_in_cone(0.2, tmp_tlv, vertex) );
03002 m_mu_track_Et_in_cone_2->push_back( get_energy_in_cone(0.3, tmp_tlv, vertex) );
03003 m_mu_track_Et_in_cone_3->push_back( get_energy_in_cone(0.4, tmp_tlv, vertex) );
03004 m_mu_track_Et_in_cone_4->push_back( get_energy_in_cone(0.45,tmp_tlv, vertex) );
03005 m_mu_track_Et_in_cone_5->push_back( get_energy_in_cone(0.5, tmp_tlv, vertex) );
03006 m_mu_track_Et_in_cone_6->push_back( get_energy_in_cone(0.6, tmp_tlv, vertex) );
03007 m_mu_track_Et_in_cone_7->push_back( get_energy_in_cone(0.7, tmp_tlv, vertex) );
03008 }
03009
03010
03011
03012
03013
03014
03015
03016
03017
03018
03019
03020
03021
03022
03023
03024
03025
03026
03027
03028
03029
03030
03031
03032
03033
03034
03035
03036
03037
03038
03039
03040
03041
03042
03043
03044
03045
03046
03047
03048
03049
03050
03051
03052
03053
03054
03055
03056
03057
03058
03059
03060
03061
03062
03063
03064
03065
03066
03067
03068
03069 }
03070 }
03071
03072 return true;
03073
03074 }
03075
03076
03077
03078
03079
03080
03081 bool AANtupleWriter14::get_jet_data(void) {
03082
03084
03086
03087
03088 const JetCollection *jet_container(0);
03089
03091
03093
03094 StatusCode sc(m_storeGate->retrieve(jet_container, m_jet_container));
03095 if(sc.isFailure() || jet_container==0) {
03096 *m_log << MSG::WARNING
03097 << "No jet container found in the store gate!"
03098 << endreq;
03099 return false;
03100 }
03101 *m_log << MSG::DEBUG << "Jet container retrieved successfully!"
03102 << endreq;
03103
03105
03107
03108
03109 for (unsigned int k=0; k<jet_container->size(); k++) {
03110
03111
03112 m_nb_rec_jets++;
03113
03114
03115 m_jet_p_x->push_back( (*jet_container)[k]->px() );
03116 m_jet_p_y->push_back( (*jet_container)[k]->py() );
03117 m_jet_p_z->push_back( (*jet_container)[k]->pz() );
03118 m_jet_E->push_back( (*jet_container)[k]->e() );
03119
03120
03121 m_jet_flag->push_back((*jet_container)[k]->jetAuthor() );
03122
03123
03124 m_jet_btag_weight->push_back( (*jet_container)[k]->getFlavourTagWeight() );
03125
03126 std::string label("N/A");
03127 const Analysis::TruthInfo* mcinfo =
03128 (*jet_container)[k]->tagInfo<Analysis::TruthInfo>("TruthInfo");
03129
03130
03131
03132
03133
03134
03135 int iflav(0);
03136 if(label=="B") iflav = 5;
03137 else if(label=="C") iflav = 4;
03138 else if(label=="T") iflav = 15;
03139 else if(label=="N/A") iflav = 0;
03140 else iflav = -1;
03141 m_jet_truthflavor->push_back( iflav );
03142
03143
03144
03145
03146
03147
03148 if (!m_AtlFastFlag){
03150
03152 const Analysis::TrackAssociation *tpc =
03153 (*jet_container)[k]->getAssociation<Analysis::TrackAssociation>("Tracks");
03154
03155
03156
03157
03158
03159
03160
03161
03162
03163
03164
03165
03166
03167
03168 }
03169 else{
03170 m_jet_nb_tracks->push_back(0);
03171 }
03172
03173 }
03174
03175 return true;
03176 }
03177
03178
03179
03180
03181
03182
03183 bool AANtupleWriter14::get_taujet_data(void) {
03184
03186
03188
03189 const Analysis::TauJetContainer *taujet_container(0);
03190
03191
03193
03195
03196 StatusCode sc(m_storeGate->retrieve(taujet_container, m_taujet_container));
03197 if(sc.isFailure() || taujet_container==0) {
03198 *m_log << MSG::WARNING
03199 << "No taujet container found in the store gate!"
03200 << endreq;
03201 return false;
03202 }
03203 *m_log << MSG::DEBUG << "Taujet container retrieved successfully!"
03204 << endreq;
03205
03207
03209
03210
03211 for (unsigned int k=0; k<taujet_container->size(); k++) {
03212
03213
03214 m_nb_tau_jets++;
03215
03216
03217 m_taujet_p_x->push_back( (*taujet_container)[k]->px() );
03218 m_taujet_p_y->push_back( (*taujet_container)[k]->py() );
03219 m_taujet_p_z->push_back( (*taujet_container)[k]->pz() );
03220 m_taujet_E->push_back( (*taujet_container)[k]->e() );
03221
03222
03223 if ((*taujet_container)[k]->hasAuthor( TauJetParameters::tauRec )) {
03224 m_taujet_flag->push_back(1);
03225 }
03226 if ((*taujet_container)[k]->hasAuthor( TauJetParameters::tau1P3P )) {
03227 m_taujet_flag->push_back(2);
03228 }
03229 if (!((*taujet_container)[k]->hasAuthor( TauJetParameters::tau1P3P )||
03230 (*taujet_container)[k]->hasAuthor( TauJetParameters::tauRec )))
03231 cerr<<"tau hasn't author!"<<endl;
03232
03233
03234
03235
03236 if (!m_AtlFastFlag){
03237
03238
03239 m_taujet_charge->push_back( static_cast<int>(
03240 (*taujet_container)[k]->charge()) );
03241
03242 m_taujet_nb_tracks->push_back((*taujet_container)[k]->numTrack());
03243
03244 if ((*taujet_container)[k]->numTrack()>0){
03245 m_taujet_track_px_1->push_back((*taujet_container)[k]->track(0)->px());
03246 m_taujet_track_py_1->push_back((*taujet_container)[k]->track(0)->py());
03247 m_taujet_track_pz_1->push_back((*taujet_container)[k]->track(0)->pz());
03248 m_taujet_track_e_1->push_back((*taujet_container)[k]->track(0)->e());
03249 m_taujet_track_TRTHighThresholdHits_1->push_back((*taujet_container)[k]->track(0)
03250 ->trackSummary()->get(Trk::numberOfTRTHighThresholdHits));
03251 m_taujet_track_TRTHits_1->push_back((*taujet_container)[k]->track(0)
03252 ->trackSummary()->get(Trk::numberOfTRTHits));
03253 }
03254 else {
03255 m_taujet_track_px_1->push_back(0.0);
03256 m_taujet_track_py_1->push_back(0.0);
03257 m_taujet_track_pz_1->push_back(0.0);
03258 m_taujet_track_e_1->push_back(0.0);
03259 m_taujet_track_TRTHighThresholdHits_1->push_back(10);
03260 m_taujet_track_TRTHits_1->push_back(10);
03261 }
03262 if ((*taujet_container)[k]->numTrack()>1){
03263 m_taujet_track_px_2->push_back((*taujet_container)[k]->track(1)->px());
03264 m_taujet_track_py_2->push_back((*taujet_container)[k]->track(1)->py());
03265 m_taujet_track_pz_2->push_back((*taujet_container)[k]->track(1)->pz());
03266 m_taujet_track_e_2->push_back((*taujet_container)[k]->track(1)->e());
03267 m_taujet_track_TRTHighThresholdHits_2->push_back((*taujet_container)[k]->track(1)
03268 ->trackSummary()->get(Trk::numberOfTRTHighThresholdHits));
03269 m_taujet_track_TRTHits_2->push_back((*taujet_container)[k]->track(1)
03270 ->trackSummary()->get(Trk::numberOfTRTHits));
03271 }
03272 else {
03273 m_taujet_track_px_2->push_back(0.0);
03274 m_taujet_track_py_2->push_back(0.0);
03275 m_taujet_track_pz_2->push_back(0.0);
03276 m_taujet_track_e_2->push_back(0.0);
03277 m_taujet_track_TRTHighThresholdHits_2->push_back(10);
03278 m_taujet_track_TRTHits_2->push_back(10);
03279 }
03280 if ((*taujet_container)[k]->numTrack()>2) {
03281 m_taujet_track_px_3->push_back((*taujet_container)[k]->track(2)->px());
03282 m_taujet_track_py_3->push_back((*taujet_container)[k]->track(2)->py());
03283 m_taujet_track_pz_3->push_back((*taujet_container)[k]->track(2)->pz());
03284 m_taujet_track_e_3->push_back((*taujet_container)[k]->track(2)->e());
03285 m_taujet_track_TRTHighThresholdHits_3->push_back((*taujet_container)[k]->track(2)
03286 ->trackSummary()->get(Trk::numberOfTRTHighThresholdHits));
03287 m_taujet_track_TRTHits_3->push_back((*taujet_container)[k]->track(2)
03288 ->trackSummary()->get(Trk::numberOfTRTHits));
03289 }
03290 else {
03291 m_taujet_track_px_3->push_back(0.0);
03292 m_taujet_track_py_3->push_back(0.0);
03293 m_taujet_track_pz_3->push_back(0.0);
03294 m_taujet_track_e_3->push_back(0.0);
03295 m_taujet_track_TRTHighThresholdHits_3->push_back(10);
03296 m_taujet_track_TRTHits_3->push_back(10);
03297 }
03298
03299
03300 m_taujet_llh->push_back((*taujet_container)[k]->tauID()
03301 ->discriminant(TauJetParameters::Likelihood));
03302 m_taujet_discNN->push_back((*taujet_container)[k]->tauID()
03303 ->discriminant(TauJetParameters::DiscNN));
03304 m_taujet_discPDERS->push_back((*taujet_container)[k]->tauID()
03305 ->discriminant(TauJetParameters::DiscPDERS));
03306 m_taujet_tauENeuralNetwork ->push_back((*taujet_container)[k]->tauID()
03307 ->discriminant( TauJetParameters::TauENeuralNetwork));
03308 m_taujet_tauJetNeuralnetwork ->push_back( (*taujet_container)[k]->tauID()
03309 ->discriminant(TauJetParameters::TauJetNeuralNetwork));
03310 m_taujet_lowPtTauEleDiscriminant->push_back((*taujet_container)[k]->tauID()
03311 ->discriminant(TauJetParameters::TauELikelihoodLowPt) );
03312
03313
03314
03315 m_taujet_bdtJet->push_back((*taujet_container)[k]->tauID()
03316 ->discriminant(TauJetParameters::BDTJetScore));
03317 m_taujet_bdtEle->push_back((*taujet_container)[k]->tauID()
03318 ->discriminant(TauJetParameters::BDTEleScore));
03319
03321
03323
03324 if ((*taujet_container)[k]->hasAuthor( TauJetParameters::tauRec )) {
03325
03326
03327 const Analysis::TauRecDetails* taudetails = (*taujet_container)[k]
03328 ->details<const Analysis::TauRecDetails>(m_tauDetailsContainerName);
03329 m_taujet_emRadius->push_back( taudetails->emRadius() );
03330 m_taujet_isolationFraction->push_back( taudetails->isolationFraction() );
03331 m_taujet_centralityFraction->push_back( taudetails->centralityFraction() );
03332 m_taujet_stripWidth2->push_back( taudetails->stripWidth2() );
03333 m_taujet_nStripCells->push_back( taudetails->numStripCells() );
03334 m_taujet_etEMCalib->push_back( taudetails->etEMCalib() );
03335 m_taujet_etHadCalib->push_back( taudetails->etHadCalib() );
03336 m_taujet_leadingTrackPT->push_back( taudetails->leadingTrackPT() );
03337 m_taujet_trFlightPathSig->push_back( taudetails->trFlightPathSig() );
03338 m_taujet_etOverPtLeadTrack->push_back( taudetails->etOverPtLeadTrack() );
03339 m_taujet_ipSigLeadTrack->push_back( taudetails->ipSigLeadTrack() );
03340 }
03341 else if ((*taujet_container)[k]->hasAuthor( TauJetParameters::tau1P3P )) {
03342
03343
03344 const Analysis::Tau1P3PDetails* taudetails = (*taujet_container)[k]
03345 ->details<const Analysis::Tau1P3PDetails>(m_tauDetailsContainerName);
03346 if (!(*taujet_container)[k]->hasAuthor( TauJetParameters::tauRec )) {
03347 m_taujet_emRadius->push_back( taudetails->emRadius() );
03348 m_taujet_isolationFraction->push_back( taudetails->isolationFraction() );
03349 m_taujet_stripWidth2->push_back( taudetails->stripWidth2() );
03350 m_taujet_nStripCells->push_back( taudetails->numStripCells() );
03351 }
03352 m_taujet_etChrgHAD->push_back( taudetails->etChrgHAD() );
03353 m_taujet_etIsolEM->push_back( taudetails->etIsolEM() );
03354 m_taujet_etIsolHAD->push_back( taudetails->etIsolHAD() );
03355 m_taujet_nAssocTracksCore->push_back( taudetails->nAssocTracksCore() );
03356 m_taujet_nAssocTracksIsol->push_back( taudetails->nAssocTracksIsol() );
03357 m_taujet_massTrk3P->push_back( taudetails->massTrk3P() );
03358 m_taujet_rWidth2Trk3P->push_back( taudetails->rWidth2Trk3P() );
03359 m_taujet_signD0Trk3P->push_back( taudetails->signD0Trk3P() );
03360 m_taujet_etHadAtEMScale->push_back( taudetails->etHadAtEMScale() );
03361 m_taujet_etEMAtEMScale->push_back( taudetails->etEMAtEMScale() );
03362 m_taujet_etEMCL->push_back( taudetails->etEMCL() );
03363 m_taujet_etChrgEM->push_back( taudetails->etChrgEM() );
03364 m_taujet_etNeuEM->push_back( taudetails->etNeuEM() );
03365 m_taujet_etResNeuEM->push_back( taudetails->etResNeuEM() );
03366 }
03367 }
03368
03369 else {
03370 if ((*taujet_container)[k]->pdgId()==1) m_taujet_charge->push_back(-1.);
03371 else if ((*taujet_container)[k]->pdgId()==-1) m_taujet_charge->push_back(1.);
03372 else if ((*taujet_container)[k]->pdgId()==2) m_taujet_charge->push_back(1.);
03373 else if ((*taujet_container)[k]->pdgId()==-2) m_taujet_charge->push_back(-1.);
03374 else if ((*taujet_container)[k]->pdgId()==3) m_taujet_charge->push_back(-1.);
03375 else if ((*taujet_container)[k]->pdgId()==-3) m_taujet_charge->push_back(1.);
03376 else if ((*taujet_container)[k]->pdgId()==4) m_taujet_charge->push_back(1.);
03377 else if ((*taujet_container)[k]->pdgId()==-4) m_taujet_charge->push_back(-1.);
03378 else if ((*taujet_container)[k]->pdgId()==5) m_taujet_charge->push_back(-1.);
03379 else if ((*taujet_container)[k]->pdgId()==-5) m_taujet_charge->push_back(1.);
03380 else if ((*taujet_container)[k]->pdgId()==6) m_taujet_charge->push_back(1.);
03381 else if ((*taujet_container)[k]->pdgId()==-6) m_taujet_charge->push_back(-1.);
03382 else if ((*taujet_container)[k]->pdgId()==11) m_taujet_charge->push_back(-1.);
03383 else if ((*taujet_container)[k]->pdgId()==-11) m_taujet_charge->push_back(1.);
03384 else if ((*taujet_container)[k]->pdgId()==13) m_taujet_charge->push_back(-1.);
03385 else if ((*taujet_container)[k]->pdgId()==-13) m_taujet_charge->push_back(1.);
03386 else if ((*taujet_container)[k]->pdgId()==15) m_taujet_charge->push_back(-1.);
03387 else if ((*taujet_container)[k]->pdgId()==-15) m_taujet_charge->push_back(1.);
03388 else m_taujet_charge->push_back((*taujet_container)[k]->pdgId());
03389 m_taujet_etHadCalib->push_back(0);
03390 m_taujet_etEMCalib->push_back(0);
03391 m_taujet_emRadius->push_back(0);
03392 m_taujet_isolationFraction->push_back(0);
03393 m_taujet_centralityFraction->push_back(0);
03394 m_taujet_stripWidth2->push_back(0);
03395 m_taujet_nStripCells->push_back(0);
03396 m_taujet_leadingTrackPT->push_back(20);
03397 m_taujet_trFlightPathSig->push_back(20);
03398 m_taujet_etOverPtLeadTrack->push_back(20);
03399 m_taujet_ipSigLeadTrack->push_back(20);
03400 m_taujet_etChrgHAD->push_back(20);
03401 m_taujet_etIsolEM->push_back(20);
03402 m_taujet_etIsolHAD->push_back(20);
03403 m_taujet_nAssocTracksCore->push_back(20);
03404 m_taujet_nAssocTracksIsol->push_back(20);
03405 m_taujet_massTrk3P->push_back(20);
03406 m_taujet_rWidth2Trk3P->push_back(20);
03407 m_taujet_signD0Trk3P->push_back(20);
03408 m_taujet_etHadAtEMScale->push_back(20);
03409 m_taujet_etEMAtEMScale->push_back(20);
03410 m_taujet_etEMCL->push_back(20);
03411 m_taujet_etChrgEM->push_back(20);
03412 m_taujet_etNeuEM->push_back(20);
03413 m_taujet_etResNeuEM->push_back(20);
03414 m_taujet_llh->push_back(20);
03415 m_taujet_discNN->push_back(20);
03416 m_taujet_discPDERS->push_back(20);
03417 m_taujet_lowPtTauJetDiscriminant->push_back(1);
03418 m_taujet_lowPtTauEleDiscriminant->push_back(1);
03419 m_taujet_tauENeuralNetwork->push_back(1);
03420 m_taujet_tauJetNeuralnetwork->push_back(1);
03421 m_taujet_bdtJet->push_back(20);
03422 m_taujet_bdtEle->push_back(20);
03423 }
03424 }
03425
03426 return true;
03427
03428 }
03429
03430
03431
03432
03433
03434
03435 bool AANtupleWriter14::get_truthjet_data(void) {
03436
03438
03440
03441
03442 const JetCollection *truthjet_container(0);
03443
03444
03446
03448
03449 StatusCode sc(m_storeGate->retrieve(truthjet_container, m_truthjet_container));
03450 if(sc.isFailure() || truthjet_container==0) {
03451 *m_log << MSG::WARNING
03452 << "No truthjet container found in the store gate!"
03453 << endreq;
03454 return false;
03455 }
03456 *m_log << MSG::DEBUG << "TruthJet container retrieved successfully!"
03457 << endreq;
03458
03460
03462
03463
03464 for (unsigned int k=0; k<truthjet_container->size(); k++) {
03465
03466
03467 m_nb_truth_jets++;
03468
03469
03470 m_truthjet_p_x->push_back( (*truthjet_container)[k]->px() );
03471 m_truthjet_p_y->push_back( (*truthjet_container)[k]->py() );
03472 m_truthjet_p_z->push_back( (*truthjet_container)[k]->pz() );
03473 m_truthjet_E->push_back( (*truthjet_container)[k]->e() );
03474
03476
03478
03479
03480 Jet mytruthjet(*(*truthjet_container)[k]);
03481
03482
03483
03484
03485
03486
03487
03488
03489
03490
03491
03492
03493
03494
03495
03496
03497
03498
03499
03500
03501
03502
03503
03504
03505
03506
03507
03508 }
03509
03510 return true;
03511
03512 }
03513
03514
03515
03516
03517
03518
03519 bool AANtupleWriter14::get_missingEt_data(void)
03520 {
03521 const MissingET *missingEt_container(0);
03522
03523 missingEt_container=0;
03524
03525 vector<string> met_container;
03526
03527 met_container=v_string_met_container;
03528
03529
03530 for(unsigned int i_met_cont=0; i_met_cont<met_container.size(); i_met_cont++){
03531
03532
03533
03534
03535 if(!m_doAODFix1mm && (met_container.at(i_met_cont)=="MET_RefFinal_1mmCorrection")){
03536 m_met_obj_name->push_back( (met_container.at(i_met_cont)).c_str() );
03537 m_missing_Etx->push_back(0.0);
03538 m_missing_Ety->push_back(0.0);
03539 m_missing_Et->push_back(0.0);
03540 m_missing_Etsum->push_back(0.0);
03541 continue;
03542 }
03543
03545
03547 StatusCode sc = StatusCode(m_storeGate->retrieve(missingEt_container,
03548 (met_container.at(i_met_cont)).c_str()));
03549 if(sc.isFailure() || missingEt_container==0) {
03550 *m_log << MSG::WARNING<< "No missingEt container "<<met_container.at(i_met_cont)
03551 <<" found in the store gate!"<< endreq;
03552 return false;
03553 }
03554 *m_log << MSG::DEBUG << "MissingEt container "<<met_container.at(i_met_cont)
03555 <<" retrieved successfully!"<< endreq;
03556 m_met_obj_name->push_back( (met_container.at(i_met_cont)).c_str() );
03557 m_missing_Etx->push_back(missingEt_container->etx());
03558 m_missing_Ety->push_back(missingEt_container->ety());
03559 m_missing_Et->push_back(missingEt_container->et());
03560 m_missing_Etsum->push_back(missingEt_container->sumet());
03561
03562
03563 missingEt_container=0;
03564 }
03565 return true;
03566
03567 }
03568
03569
03570
03571
03572
03573
03574 bool AANtupleWriter14::get_truthmissingEt_data(void)
03575 {
03576
03577
03579
03581
03582 const MissingET *truthmissingEt_container(0);
03583
03584
03586
03588
03589 StatusCode sc(m_storeGate->retrieve(truthmissingEt_container, m_truthmissingEt_container));
03590 if(sc.isFailure() || truthmissingEt_container==0) {
03591 *m_log << MSG::WARNING
03592 << "No truthmissingEt container found in the store gate!"
03593 << endreq;
03594 return false;
03595 }
03596 *m_log << MSG::DEBUG << "TruthMissingEt container retrieved successfully!"
03597 << endreq;
03598
03599
03601
03603
03604 MissingEtTruth::TruthIndex tidx;
03605 double etx, ety;
03606
03607
03608 tidx = MissingEtTruth::Int;
03609 etx = ((MissingEtTruth*)truthmissingEt_container)->exTruth(tidx);
03610 ety = ((MissingEtTruth*)truthmissingEt_container)->eyTruth(tidx);
03611 m_met_obj_name->push_back( "TruthMET_Int" );
03612 m_missing_Etx->push_back(etx);
03613 m_missing_Ety->push_back(ety);
03614 m_missing_Et->push_back(sqrt((etx*etx)+(ety*ety)));
03615 m_missing_Etsum->push_back(((MissingEtTruth*)truthmissingEt_container)->etSumTruth(tidx));
03616
03617
03618 tidx = MissingEtTruth::NonInt;
03619 etx = ((MissingEtTruth*)truthmissingEt_container)->exTruth(tidx);
03620 ety = ((MissingEtTruth*)truthmissingEt_container)->eyTruth(tidx);
03621 m_met_obj_name->push_back( "TruthMET_NonInt" );
03622 m_missing_Etx->push_back(etx);
03623 m_missing_Ety->push_back(ety);
03624 m_missing_Et->push_back(sqrt((etx*etx)+(ety*ety)));
03625 m_missing_Etsum->push_back(((MissingEtTruth*)truthmissingEt_container)->etSumTruth(tidx));
03626
03627
03628 tidx = MissingEtTruth::IntCentral;
03629 etx = ((MissingEtTruth*)truthmissingEt_container)->exTruth(tidx);
03630 ety = ((MissingEtTruth*)truthmissingEt_container)->eyTruth(tidx);
03631 m_met_obj_name->push_back( "TruthMET_IntCentral" );
03632 m_missing_Etx->push_back(etx);
03633 m_missing_Ety->push_back(ety);
03634 m_missing_Et->push_back(sqrt((etx*etx)+(ety*ety)));
03635 m_missing_Etsum->push_back(((MissingEtTruth*)truthmissingEt_container)->etSumTruth(tidx));
03636
03637
03638 tidx = MissingEtTruth::IntFwd;
03639 etx = ((MissingEtTruth*)truthmissingEt_container)->exTruth(tidx);
03640 ety = ((MissingEtTruth*)truthmissingEt_container)->eyTruth(tidx);
03641 m_met_obj_name->push_back( "TruthMET_IntFwd" );
03642 m_missing_Etx->push_back(etx);
03643 m_missing_Ety->push_back(ety);
03644 m_missing_Et->push_back(sqrt((etx*etx)+(ety*ety)));
03645 m_missing_Etsum->push_back(((MissingEtTruth*)truthmissingEt_container)->etSumTruth(tidx));
03646
03647
03648 tidx = MissingEtTruth::IntOutCover;
03649 etx = ((MissingEtTruth*)truthmissingEt_container)->exTruth(tidx);
03650 ety = ((MissingEtTruth*)truthmissingEt_container)->eyTruth(tidx);
03651 m_met_obj_name->push_back( "TruthMET_IntOutCover" );
03652 m_missing_Etx->push_back(etx);
03653 m_missing_Ety->push_back(ety);
03654 m_missing_Et->push_back(sqrt((etx*etx)+(ety*ety)));
03655 m_missing_Etsum->push_back(((MissingEtTruth*)truthmissingEt_container)->etSumTruth(tidx));
03656
03657
03658 tidx = MissingEtTruth::Muons;
03659 etx = ((MissingEtTruth*)truthmissingEt_container)->exTruth(tidx);
03660 ety = ((MissingEtTruth*)truthmissingEt_container)->eyTruth(tidx);
03661 m_met_obj_name->push_back( "TruthMET_Muons" );
03662 m_missing_Etx->push_back(etx);
03663 m_missing_Ety->push_back(ety);
03664 m_missing_Et->push_back(sqrt((etx*etx)+(ety*ety)));
03665 m_missing_Etsum->push_back(((MissingEtTruth*)truthmissingEt_container)->etSumTruth(tidx));
03666
03667 return true;
03668
03669 }
03670
03671
03672
03673
03674
03675
03676 bool AANtupleWriter14::get_truthparticle_data(void)
03677 {
03678
03679
03681
03683
03684 const TruthParticleContainer *truthparticle_container(0);
03685
03686 const float pt_cut_value_leptons(0);
03687 const float pt_cut_value(1000);
03688
03689
03690
03691 const int barcode_cut_value(m_truthparticleMaximumLeptonBarcode);
03692
03693
03694
03695
03696 unsigned int abs_particle_pdgId(0);
03697
03698
03700
03702
03703 StatusCode sc(m_storeGate->retrieve(truthparticle_container, m_truthparticle_container));
03704 if(sc.isFailure() || truthparticle_container==0) {
03705 *m_log << MSG::WARNING
03706 << "No truthparticle container found in the store gate!"
03707 << endreq;
03708 return false;
03709 }
03710 *m_log << MSG::DEBUG << "TruthParticle container retrieved successfully!"
03711 << endreq;
03712
03713
03714
03716
03718
03719 for ( unsigned int i=0; i<truthparticle_container->size(); i++) {
03720
03721
03722 if ((*truthparticle_container)[i]->barcode()>barcode_cut_value){
03723 continue;
03724 }
03725
03726
03727
03728 if ((*truthparticle_container)[i]->hasPdgId()){
03729 if(TMath::Abs( (*truthparticle_container)[i]->pdgId())==11 ||
03730 TMath::Abs( (*truthparticle_container)[i]->pdgId())==12 ||
03731 TMath::Abs( (*truthparticle_container)[i]->pdgId())==13 ||
03732 TMath::Abs( (*truthparticle_container)[i]->pdgId())==14 ||
03733 TMath::Abs( (*truthparticle_container)[i]->pdgId())==15 ||
03734 TMath::Abs( (*truthparticle_container)[i]->pdgId())==16 )
03735 {
03736 if ((*truthparticle_container)[i]->pt()<pt_cut_value_leptons) continue;
03737 }
03738
03739 else if ((*truthparticle_container)[i]->pt() < pt_cut_value &&
03740 (*truthparticle_container)[i]->barcode()>100){
03741 continue;
03742 }
03743 }
03744
03745 if (!(*truthparticle_container)[i]->hasPdgId()){
03746 *m_log << MSG::WARNING
03747 << "particle has no pdgId"
03748 << endreq;
03749 abs_particle_pdgId=0;
03750 }
03751 else{
03752 abs_particle_pdgId=TMath::Abs( (*truthparticle_container)[i]->pdgId() );
03753 }
03754
03755
03756 if (abs_particle_pdgId>80 && abs_particle_pdgId<101){
03757 continue;
03758 }
03759
03760 if (abs_particle_pdgId==21){
03761 continue;
03762 }
03763
03764
03765 if (abs_particle_pdgId>100 && m_truthparticleNoPDGAbove100){
03766 continue;
03767 }
03768
03769
03770 fill_truthparticle_data((*truthparticle_container)[i]);
03771
03772 }
03773
03774 return true;
03775 }
03776
03777
03778
03779
03780
03781
03782
03783 bool AANtupleWriter14::get_eventweight_data(void) {
03784
03785 if(m_doEventWeight){
03786
03788 MsgStream mLog(messageService(), name());
03789 m_event_weight = 1234;
03790 const McEventCollection* mcCollPtr ;
03791 if ( m_storeGate->retrieve(mcCollPtr, "GEN_AOD").isFailure() ) {
03792 mLog << MSG::ERROR << "Could not retrieve McEventCollection" << endreq;
03793 return false;
03794 }
03795 McEventCollection::const_iterator evt = mcCollPtr->begin() ;
03796 const HepMC::GenEvent* ge = (*evt) ;
03797 const HepMC::WeightContainer& wc = ge->weights() ;
03798 m_event_weight = wc.front() ;
03799
03800 *m_log << MSG::DEBUG << "Events Weights retrieved successfully!"
03801 << endreq;
03802 }
03803 else{
03804 m_event_weight = 1;
03805 }
03806
03807 return true;
03808 }
03809
03810
03811
03812
03813
03814
03815
03816
03817
03818 void AANtupleWriter14::fill_truthparticle_data(const TruthParticle *m_TruthParticle)
03819 {
03820
03822
03824
03825
03826
03827 for( int k=0; k < m_nb_truth_particle; k++ ){
03828 if( m_TruthParticle->genParticle()->barcode() == m_truth_particle_barcode->at(k) ){
03829 std::cout<<"particle already stored"<<std::endl;
03830 return;
03831 }
03832 }
03833
03834
03835
03836
03837
03838 m_nb_truth_particle++;
03839
03840 m_truth_particle_pt->push_back( m_TruthParticle->pt());
03841 m_truth_particle_status->push_back( m_TruthParticle->genParticle()->status());
03842 m_truth_particle_barcode->push_back( m_TruthParticle->genParticle()->barcode());
03843 m_truth_particle_pdgId->push_back( m_TruthParticle->pdgId());
03844 m_truth_particle_nDaughters->push_back( m_TruthParticle->nDecay());
03845 m_truth_particle_p_x->push_back( m_TruthParticle->px() );
03846 m_truth_particle_p_y->push_back( m_TruthParticle->py() );
03847 m_truth_particle_p_z->push_back( m_TruthParticle->pz() );
03848 m_truth_particle_E->push_back( m_TruthParticle->e() );
03849
03850 m_truth_particle_charge->push_back( m_TruthParticle->charge());
03851 m_truth_particle_nParents->push_back( m_TruthParticle->nParents());
03852 if (m_TruthParticle->nParents()>0){
03853 m_truth_particle_mother0_barcode->push_back( m_TruthParticle->mother(0)->barcode());
03854 m_truth_particle_mother0_pdgId->push_back( m_TruthParticle->mother(0)->pdgId());
03855 }
03856 else{
03857 m_truth_particle_mother0_barcode->push_back(0);
03858 m_truth_particle_mother0_pdgId->push_back(0);
03859 }
03860
03861
03862 return;
03863
03864 }
03865
03866
03867
03868
03869
03870
03871 bool AANtupleWriter14::get_vertex_data(void) {
03872
03874
03876
03877 vector<MPIHiggsAnalysis::Vertex> vertices(m_vert_coll->getVertices());
03878
03879
03880
03881
03882
03883
03884
03885
03886
03887
03888
03889
03890
03891
03892
03893
03894
03895
03896
03897
03898
03899
03900
03901
03902
03903
03904
03905
03906
03907
03908
03909
03910
03911
03912
03913
03914
03915
03916
03917
03918
03919
03920
03921
03922
03923
03924
03925
03926
03927
03928
03929
03930
03931
03932
03933
03934
03935
03936
03937
03938
03939
03940
03941
03942
03943
03944
03945
03947
03949
03950
03951
03952
03953
03954
03955
03956
03957
03958
03959
03960
03961
03962
03963
03964
03965
03966
03967
03968
03969
03970
03971
03972
03973
03974
03975
03976
03977
03978
03979
03980
03981
03982
03983
03984
03985
03986
03987
03988
03989
03990
03991
03992 for (unsigned int k=0; k<vertices.size(); k++) {
03993
03994
03995 m_nb_vertices++;
03996
03997
03998 m_vertex_position_x->push_back(vertices[k].position().x());
03999 m_vertex_position_y->push_back(vertices[k].position().x());
04000 m_vertex_position_z->push_back(vertices[k].position().x());
04001
04002
04003 m_vertex_pos_error_x->push_back(
04004 vertices[k].positionError().x());
04005 m_vertex_pos_error_y->push_back(
04006 vertices[k].positionError().y());
04007 m_vertex_pos_error_z->push_back(
04008 vertices[k].positionError().z());
04009
04010
04011 m_vertex_chi2->push_back(vertices[k].chi2());
04012 m_vertex_ndof->push_back(
04013 vertices[k].numberOfDegreesOfFreedom());
04014
04015
04016 m_vertex_Et->push_back(vertices[k].Et());
04017
04018
04019 m_vertex_nb_tracks->push_back(vertices[k].numberOfTracks());
04020
04021 }
04022
04023 return true;
04024
04025 }
04026
04027
04028
04032
04033
04034
04038
04039
04040
04041
04045
04046
04047
04049
04050
04051
04052
04053
04054
04055
04056
04057
04058
04059
04060
04061
04062
04063
04064
04065
04066
04067
04068
04069
04070
04071
04072
04073
04074
04075
04076
04077
04078 bool AANtupleWriter14::get_track_jet_data(void) {
04079
04081
04083
04084 const INavigable4MomentumCollection *jet_container(0);
04085
04086
04088
04090
04091 StatusCode sc(m_storeGate->retrieve(jet_container,
04092 m_track_jet_container));
04093 if(sc.isFailure() || jet_container==0) {
04094 *m_log << MSG::WARNING
04095 << "No track jet container "
04096 << m_track_jet_container
04097 << " found in the store gate!"
04098 << endreq;
04099 return false;
04100 }
04101
04102 *m_log << MSG::DEBUG
04103 << "Track jet container "
04104 << m_track_jet_container
04105 << " retrieved successfully!"
04106 << endreq;
04107
04109
04111
04112
04113 for (unsigned int k=0; k<jet_container->size(); k++) {
04114
04115
04116 m_nb_track_jets++;
04117
04118
04119 m_track_jet_p_x->push_back( (*jet_container)[k]->px() );
04120 m_track_jet_p_y->push_back( (*jet_container)[k]->py() );
04121 m_track_jet_p_z->push_back( (*jet_container)[k]->pz() );
04122 m_track_jet_E->push_back( (*jet_container)[k]->e() );
04123
04124 }
04125
04126 return true;
04127
04128 }
04129
04130
04131
04132
04133
04134
04135
04136 bool AANtupleWriter14::get_truth_track_jet_data(void) {
04137
04139
04141
04142 const INavigable4MomentumCollection *jet_container(0);
04143
04144
04146
04148
04149 StatusCode sc(m_storeGate->retrieve(jet_container,
04150 m_truth_track_jet_container));
04151 if(sc.isFailure() || jet_container==0) {
04152 *m_log << MSG::WARNING
04153 << "No truth track jet container "
04154 << m_truth_track_jet_container
04155 << " found in the store gate!"
04156 << endreq;
04157 return false;
04158 }
04159
04160 *m_log << MSG::DEBUG
04161 << "Truth track jet container "
04162 << m_truth_track_jet_container
04163 << " retrieved successfully!"
04164 << endreq;
04165
04167
04169
04170
04171 for (unsigned int k=0; k<jet_container->size(); k++) {
04172
04173
04174 m_nb_truth_track_jets++;
04175
04176
04177 m_truth_track_jet_p_x->push_back( (*jet_container)[k]->px() );
04178 m_truth_track_jet_p_y->push_back( (*jet_container)[k]->py() );
04179 m_truth_track_jet_p_z->push_back( (*jet_container)[k]->pz() );
04180 m_truth_track_jet_E->push_back( (*jet_container)[k]->e() );
04181
04182 }
04183
04184 return true;
04185
04186 }
04187
04188
04189
04190
04191
04192
04193
04194 unsigned int
04195 AANtupleWriter14::find_vertex(const Trk::RecVertex * vertex) const {
04196
04198
04200
04201 const VxContainer *vertex_container(0);
04202 Trk::RecVertex vert;
04203
04205
04207
04208 StatusCode sc(m_storeGate->retrieve(vertex_container,
04209 m_primary_vertex_container));
04210 if (sc.isFailure() || vertex_container==0) {
04211 *m_log << MSG::ERROR
04212 << "No vertex container "
04213 << m_primary_vertex_container
04214 << " found in the store gate!"
04215 << endreq;
04216 return 0;
04217 }
04218
04219 *m_log << MSG::DEBUG
04220 << "Vertex container "
04221 << m_primary_vertex_container
04222 << " retrieved successfully!"
04223 << endreq;
04224
04226
04228
04229 if (vertex_container->size()<=1) {
04230 return 0;
04231 }
04232
04234
04236
04237 for (unsigned int k=0; k<vertex_container->size(); k++) {
04238 vert = (*vertex_container)[k]->recVertex();
04239 if (vertex->position() == vert.position()) {
04240 return k;
04241 }
04242 }
04243
04244 *m_log << MSG::WARNING
04245 << "No vertex found!"
04246 << endreq;
04247
04249
04251
04252 vector<MPIHiggsAnalysis::Vertex> vertices(m_vert_coll->getVertices());
04253
04255
04257
04258 for (unsigned int k=0; k<vertices.size(); k++) {
04259 if (vertex->position() == vertices[k].position()) {
04260 return k;
04261 }
04262 }
04263
04264 *m_log << MSG::WARNING
04265 << "No vertex found!"
04266 << endreq;
04267
04268 return 0;
04269
04270 }
04271
04272
04273
04274
04275
04276
04277
04278 double
04279 AANtupleWriter14::get_energy_in_cone(const double & cone,
04280 const HepLorentzVector & p,
04281 const Hep3Vector & vertex) {
04282
04284
04286
04287 double ET(0.);
04288 const Rec::TrackParticleContainer *track_particle_container(0);
04289
04290
04292
04294
04295 StatusCode sc(m_storeGate->retrieve(track_particle_container,
04296 m_track_particle_container));
04297 if (sc.isFailure() || track_particle_container==0) {
04298 *m_log << MSG::WARNING
04299 << "No track particle container found in store gate!"
04300 << endreq;
04301 return sc;
04302 }
04303 *m_log << MSG::DEBUG
04304 << "Track particle container retrieved successfully!"
04305 << endreq;
04306
04308
04310
04311 for (unsigned int k=0; k<track_particle_container->size(); k++) {
04312
04313 if(m_doVertices){
04314
04315 if( vertex == Hep3Vector(0.,0.,0.) ){
04316 continue;
04317 }
04318
04319 if ((*track_particle_container)[k]->reconstructedVertex()==NULL){
04320 continue;
04321 }
04322
04323 if ((*track_particle_container)[k]
04324 ->reconstructedVertex()->recVertex().position() != vertex){
04325 continue;
04326 }
04327 }
04328
04329 if ( p.deltaR((*track_particle_container)[k]->hlv()) < cone &&
04330 p.deltaR((*track_particle_container)[k]->hlv()) > 0.01) {
04331
04332 ET += (*track_particle_container)[k]->hlv().et();
04333 }
04334
04335 }
04336
04337 return ET;
04338
04339 }