From a02a68f360d2f9de1bc7cbea2d87f7c5b69abb55 Mon Sep 17 00:00:00 2001 From: Daniele Zanzi <Daniele.Zanzi@cern.ch> Date: Fri, 18 Nov 2016 02:29:30 +0100 Subject: [PATCH] fix for #trk (ATR-15403) (TrigTauMonitoring-00-00-91) * fix for #trk (ATR-15403) * requires tauRecTools-00-01-24 and xAODTau-00-02-14 * TrigTauMonitoring-00-00-91 2016-11-15 Daniele Zanzi * addtion of FTK chains in monitoring list * fix for ATR-15403 * requires tauRecTools-00-01-23 and xAODTau-00-02-13 * TrigTauMonitoring-00-00-90 --- .../python/TrigTauMonitCategory.py | 42 ++++--- .../TrigTauMonitoring/src/HLTTauMonTool.cxx | 117 +++++++++++++----- .../src/HLTTauMonTool_trackCurves.cxx | 11 +- 3 files changed, 118 insertions(+), 52 deletions(-) diff --git a/Trigger/TrigMonitoring/TrigTauMonitoring/python/TrigTauMonitCategory.py b/Trigger/TrigMonitoring/TrigTauMonitoring/python/TrigTauMonitCategory.py index cc4a9e848f5..ac46f55f358 100644 --- a/Trigger/TrigMonitoring/TrigTauMonitoring/python/TrigTauMonitCategory.py +++ b/Trigger/TrigMonitoring/TrigTauMonitoring/python/TrigTauMonitCategory.py @@ -1,5 +1,24 @@ # Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +from TriggerJobOpts.TriggerFlags import TriggerFlags + +monitoring_tau_FTK = [ + + 'tau0_idperf_FTK', + 'tau0_idperf_FTKRefit', + 'tau0_idperf_FTKNoPrec', + 'tau0_perf_FTK', + 'tau0_perf_FTKRefit', + 'tau0_perf_FTKNoPrec', + 'tau0_medium1_FTKNoPrec', + 'tau25_idperf_FTK', + 'tau25_idperf_FTKRefit', + 'tau25_perf_FTK', + 'tau25_perf_FTKRefit', + 'tau25_medium1_FTK', + 'tau25_medium1_FTKRefit' +] + monitoring_singleTau = 'tau25_medium1_tracktwo' monitoring_tau = [ @@ -22,6 +41,8 @@ monitoring_tau = [ 'tau8_cosmic_ptonly', 'tau8_cosmic_track' ] +if TriggerFlags.doFTK(): + monitoring_tau += monitoring_tau_FTK monitoring_tau_pp = [ 'tau0_perf_ptonly_L1TAU12', @@ -37,6 +58,8 @@ monitoring_tau_pp = [ 'tau160_perf_tracktwo', 'tau160_medium1_tracktwo' ] +if TriggerFlags.doFTK(): + monitoring_tau_pp += monitoring_tau_FTK monitoring_tau_validation = [ 'tau0_perf_ptonly_L1TAU12', @@ -71,6 +94,8 @@ monitoring_tau_validation = [ 'tau160_medium1HighptM_tracktwo', 'tau160_medium1HighptH_tracktwo', ] +if TriggerFlags.doFTK(): + monitoring_tau_validation += monitoring_tau_FTK monitoring_tau_cosmic = [ 'tau1_cosmic_track_L1MU4_EMPTY', @@ -79,20 +104,3 @@ monitoring_tau_cosmic = [ 'tau8_cosmic_track' ] - - - - - - - - - - - - - - - - - diff --git a/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool.cxx b/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool.cxx index 63ec266da1a..db8e78441b3 100755 --- a/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool.cxx +++ b/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool.cxx @@ -609,7 +609,6 @@ StatusCode HLTTauMonTool::fillHistogramsForItem(const std::string & trigItem){ } }// end comb loop - // if(trig_item_EF=="HLT_tau35_medium1_tracktwo_tau25_medium1_tracktwo"){ // @@ -691,7 +690,7 @@ StatusCode HLTTauMonTool::fillHistogramsForItem(const std::string & trigItem){ } // end L1 histos - + // HLT histsos ... for(comb=combBegin;comb!=combEnd;++comb){ @@ -704,11 +703,11 @@ StatusCode HLTTauMonTool::fillHistogramsForItem(const std::string & trigItem){ for(; preselCI != preselCI_e; ++preselCI) if(preselCI->cptr()){ if(preselCI->cptr()->size()==0) ATH_MSG_DEBUG("item "<< trigItem << ": TauJetContainer with " << preselCI->cptr()->size() << " TauJets"); - ATH_MSG_DEBUG("item "<< trigItem << ": TauJetContainer with " << preselCI->cptr()->size() << " TauJets"); - xAOD::TauJetContainer::const_iterator tauItr = preselCI->cptr()->begin(); + ATH_MSG_DEBUG("item "<< trigItem << ": TauJetContainer with " << preselCI->cptr()->size() << " TauJets"); + xAOD::TauJetContainer::const_iterator tauItr = preselCI->cptr()->begin(); xAOD::TauJetContainer::const_iterator tauEnd = preselCI->cptr()->end(); - - for(; tauItr != tauEnd; ++tauItr) { + + for(; tauItr != tauEnd; ++tauItr) { if(!Selection(*tauItr)) continue; setCurrentMonGroup("HLT/TauMon/Expert/"+trigItem+"/PreselectionTau"); if(*tauItr) sc = fillPreselTau(*tauItr); @@ -717,8 +716,9 @@ StatusCode HLTTauMonTool::fillHistogramsForItem(const std::string & trigItem){ if(*tauItr) sc = fillPreselTauVsOffline(*tauItr); if(sc.isFailure()){ ATH_MSG_WARNING("Failed to fill PreselectionVsOffline histo. Exiting!"); return StatusCode::FAILURE;} } + } - } + } const std::vector< Trig::Feature<xAOD::TauJetContainer> > vec_HLTtau = comb->get<xAOD::TauJetContainer>("TrigTauRecMerged",m_HLTTriggerCondition); std::vector<Trig::Feature<xAOD::TauJetContainer> >::const_iterator efCI = vec_HLTtau.begin(), efCI_e = vec_HLTtau.end(); @@ -896,7 +896,13 @@ StatusCode HLTTauMonTool::fillPreselTau(const xAOD::TauJet *aEFTau){ //ATH_MSG_WARNING("Tau ROIWord: "<<aEFTau->ROIWord()); - int EFnTrack = aEFTau->nTracks(); + int EFnTrack(-1); + #ifndef XAODTAU_VERSIONS_TAUJET_V3_H + EFnTrack = aEFTau->nTracks(); + #else + aEFTau->detail(xAOD::TauJetParameters::nChargedTracks, EFnTrack); + #endif + hist("hEFEt")->Fill(aEFTau->pt()/GeV); hist("hEFEt2")->Fill(aEFTau->pt()/CLHEP::GeV); hist("hFTFnTrack")->Fill(EFnTrack); @@ -907,12 +913,14 @@ StatusCode HLTTauMonTool::fillPreselTau(const xAOD::TauJet *aEFTau){ hist2("hEFEtaVsPhi")->Fill(aEFTau->eta(),aEFTau->phi()); hist2("hEtVsEta")->Fill(aEFTau->eta(),aEFTau->pt()/GeV); hist2("hEtVsPhi")->Fill(aEFTau->phi(),aEFTau->pt()/GeV); - + + int EFWidenTrack(-1); #ifndef XAODTAU_VERSIONS_TAUJET_V3_H - hist("hFTFnWideTrack")->Fill(aEFTau->nWideTracks()); + EFWidenTrack = aEFTau->nWideTracks(); #else - hist("hFTFnWideTrack")->Fill(aEFTau->nTracksIsolation()); + aEFTau->detail(xAOD::TauJetParameters::nIsolatedTracks, EFWidenTrack); #endif + hist("hFTFnWideTrack")->Fill(EFWidenTrack); return StatusCode::SUCCESS; @@ -965,7 +973,12 @@ StatusCode HLTTauMonTool::fillEFTau(const xAOD::TauJet *aEFTau, const std::strin float ptRatioEflowApproxCorr = 0; float mu = 0; - int EFnTrack = aEFTau->nTracks(); + int EFnTrack(-1); + #ifndef XAODTAU_VERSIONS_TAUJET_V3_H + EFnTrack = aEFTau->nTracks(); + #else + aEFTau->detail(xAOD::TauJetParameters::nChargedTracks, EFnTrack); + #endif bool is1P(false), isMP(false); if(EFnTrack==1) is1P = true; if(EFnTrack>1) isMP = true; @@ -984,12 +997,14 @@ StatusCode HLTTauMonTool::fillEFTau(const xAOD::TauJet *aEFTau, const std::strin hist2("hEFNUMvsmu")->Fill(num_vxt,mu); hist("hEFPhi")->Fill(aEFTau->phi()); hist("hEFnTrack")->Fill(EFnTrack); - + + int EFWidenTrack(-1); #ifndef XAODTAU_VERSIONS_TAUJET_V3_H - hist("hEFnWideTrack")->Fill(aEFTau->nWideTracks()); + EFWidenTrack = aEFTau->nWideTracks(); #else - hist("hEFnWideTrack")->Fill(aEFTau->nTracksIsolation()); + aEFTau->detail(xAOD::TauJetParameters::nIsolatedTracks, EFWidenTrack); #endif + hist("hEFnWideTrack")->Fill(EFWidenTrack); hist2("hEFEtaVsPhi")->Fill(aEFTau->eta(),aEFTau->phi()); hist2("hEFEtVsPhi")->Fill(aEFTau->phi(),aEFTau->pt()/GeV); @@ -1289,13 +1304,19 @@ StatusCode HLTTauMonTool::fillPreselTauVsOffline(const xAOD::TauJet *aEFTau){ return StatusCode::SUCCESS; } - int EFnTrack = aEFTau->nTracks(); - int EFnWideTrack(0),OffnWideTrack(0); + int EFnTrack(-1); + #ifndef XAODTAU_VERSIONS_TAUJET_V3_H + EFnTrack = aEFTau->nTracks(); + #else + aEFTau->detail(xAOD::TauJetParameters::nChargedTracks, EFnTrack); + #endif + + int EFnWideTrack(-1),OffnWideTrack(-1); #ifndef XAODTAU_VERSIONS_TAUJET_V3_H EFnWideTrack = aEFTau->nWideTracks(); OffnWideTrack = aOfflineTau->nWideTracks(); #else - EFnWideTrack = aEFTau->nTracksIsolation(); + aEFTau->detail(xAOD::TauJetParameters::nIsolatedTracks, EFnWideTrack); OffnWideTrack = aOfflineTau->nTracksIsolation(); #endif @@ -1400,7 +1421,12 @@ StatusCode HLTTauMonTool::fillEFTauVsOffline(const xAOD::TauJet *aEFTau, const s float etHadAtEMScaleOff = 0; float mu = 0; - int EFnTrack = aEFTau->nTracks(); + int EFnTrack(-1); + #ifndef XAODTAU_VERSIONS_TAUJET_V3_H + EFnTrack = aEFTau->nTracks(); + #else + aEFTau->detail(xAOD::TauJetParameters::nChargedTracks, EFnTrack); + #endif bool is1P(false), isMP(false); if(EFnTrack==1) is1P = true; if(EFnTrack>1) isMP = true; @@ -1432,13 +1458,20 @@ StatusCode HLTTauMonTool::fillEFTauVsOffline(const xAOD::TauJet *aEFTau, const s if(BDTinput_type == "basicVars") { setCurrentMonGroup("HLT/TauMon/Expert/"+trigItem+"/EFVsOffline"); + //Basic Vars - hist2("hEFvsOffnTrks")->Fill(aOfflineTau->nTracks(), aEFTau->nTracks()); - #ifndef XAODTAU_VERSIONS_TAUJET_V3_H - hist2("hEFvsOffnWideTrks")->Fill(aOfflineTau->nWideTracks(), aEFTau->nWideTracks()); + + hist2("hEFvsOffnTrks")->Fill(aOfflineTau->nTracks(), EFnTrack); + int EFnWideTrack(-1), OffnWideTrack(-1); + #ifndef XAODTAU_VERSIONS_TAUJET_V3_H + EFnWideTrack = aEFTau->nWideTracks(); + OffnWideTrack = aOfflineTau->nWideTracks(); #else - hist2("hEFvsOffnWideTrks")->Fill(aOfflineTau->nTracksIsolation(), aEFTau->nTracksIsolation()); + OffnWideTrack = aOfflineTau->nTracksIsolation(); + aEFTau->detail(xAOD::TauJetParameters::nIsolatedTracks, EFnWideTrack); #endif + hist2("hEFvsOffnWideTrks")->Fill(OffnWideTrack,EFnWideTrack); + FillRelDiffHist(hist("hptRatio"), aOfflineTau->pt(), aEFTau->pt(), 0, 1); FillRelDiffProfile<float>(profile("hEtRatiovspt"), aOfflineTau->pt(), aEFTau->pt(), aOfflineTau->pt()/GeV, 0, 1); @@ -1927,12 +1960,23 @@ void HLTTauMonTool::plotUnderOverFlow(TH1* hist){ } -bool HLTTauMonTool::Selection(const xAOD::TauJet *aTau){ - - int nTrk = aTau->nTracks(); - float pt = aTau->pt(); - float eta = aTau->eta(); - float phi = aTau->phi(); +bool HLTTauMonTool::Selection(const xAOD::TauJet *aTau=NULL){ + + int nTrk(-1); + float pt(0.),eta(-11.),phi(-11.); + if(aTau==NULL) return false; + + #ifndef XAODTAU_VERSIONS_TAUJET_V3_H + nTrk = aTau->nTracks(); + #else + aTau->detail(xAOD::TauJetParameters::nChargedTracks, nTrk); + #endif + +// try{ nTrk = aTau->nTracks();} +// catch(std::exception e){ATH_MSG_WARNING("nTracks() raised exception!!");} + pt = aTau->pt(); + eta = aTau->eta(); + phi = aTau->phi(); if(m_selection_nTrkMax>-1 && nTrk>m_selection_nTrkMax) return false; if(m_selection_nTrkMin>-1 && nTrk<m_selection_nTrkMin) return false; @@ -1946,8 +1990,10 @@ bool HLTTauMonTool::Selection(const xAOD::TauJet *aTau){ return true; } -bool HLTTauMonTool::Selection(const xAOD::EmTauRoI *aTau){ +bool HLTTauMonTool::Selection(const xAOD::EmTauRoI *aTau=NULL){ + if(aTau==NULL) return false; + float pt = aTau->tauClus(); float eta = aTau->eta(); float phi = aTau->phi(); @@ -2078,12 +2124,17 @@ StatusCode HLTTauMonTool::TauEfficiency(const std::string & trigItem, const std: xAOD::TauJetContainer::const_iterator hltItr, hlt_cont_end = hlt_cont->end(); for(hltItr=hlt_cont->begin(); hltItr!=hlt_cont_end; ++hltItr){ TLorentzVector hltTLV = (*hltItr)->p4(); - int ntrack_TAU = (*hltItr)->nTracks(); + int ntrack_TAU(-1); + #ifndef XAODTAU_VERSIONS_TAUJET_V3_H + ntrack_TAU = (*hltItr)->nTracks(); + #else + (*hltItr)->detail(xAOD::TauJetParameters::nChargedTracks, ntrack_TAU); + #endif int nWideTrack_TAU(0); #ifndef XAODTAU_VERSIONS_TAUJET_V3_H nWideTrack_TAU = (*hltItr)->nWideTracks(); #else - nWideTrack_TAU = (*hltItr)->nTracksIsolation(); + (*hltItr)->detail(xAOD::TauJetParameters::nIsolatedTracks, nWideTrack_TAU); #endif if( !L1TauMatching(trigItem, hltTLV, 0.3) ) continue; if(ntrack_TAU>3) continue; @@ -2895,7 +2946,7 @@ bool HLTTauMonTool::HLTTauMatching(const std::string & trigItem, const TLorentzV { if(*Itr_tauEFjet) { - ATH_MSG_DEBUG("HLT tau: pt " << (*Itr_tauEFjet)->pt() << ", #trk " << (*Itr_tauEFjet)->nTracks()); + ATH_MSG_DEBUG("HLT tau: pt " << (*Itr_tauEFjet)->pt() ); /*if(testing_chain.find("emulate")!=std::string::npos){ bool pass = false; diff --git a/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool_trackCurves.cxx b/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool_trackCurves.cxx index cef9f05304b..8c3ed61cb7a 100644 --- a/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool_trackCurves.cxx +++ b/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool_trackCurves.cxx @@ -68,11 +68,18 @@ StatusCode HLTTauMonTool::trackCurves(const std::string & trigItem){ continue; } - if(matchedTau->nTracks() == 0) { + int EFnTrack(-1); + #ifndef XAODTAU_VERSIONS_TAUJET_V3_H + EFnTrack = matchedTau->nTracks(); + #else + matchedTau->detail(xAOD::TauJetParameters::nChargedTracks, EFnTrack); + #endif + + if(EFnTrack < 1) { continue; } - hist2("hreco_vs_pres_coreTracks")->Fill((*recoItr)->nTracks(), matchedTau->nTracks()); + hist2("hreco_vs_pres_coreTracks")->Fill((*recoItr)->nTracks(), EFnTrack); #ifndef XAODTAU_VERSIONS_TAUJET_V3_H hist2("hreco_vs_pres_isoTracks")->Fill( (*recoItr)->nWideTracks(), (*recoItr)->nWideTracks() ); -- GitLab