diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/EfficiencyTool.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/EfficiencyTool.cxx index 9c089e3231cd46dd753e1616ff3019af586b12b0..073cef0276a1524ce30569e4a3048f1111ecd69a 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/EfficiencyTool.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/EfficiencyTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /********************************************************************** @@ -153,7 +153,8 @@ bool EfficiencyTool::analyseIsEM(const xAOD::Electron *eg, const std::string pid return failisem; } -void EfficiencyTool::fillInefficiency(const std::string& pid, const std::string dir,const xAOD::Electron *selEF,const xAOD::Photon *selPh,const xAOD::CaloCluster *clus,const xAOD::TrackParticle *trk) +void EfficiencyTool::fillInefficiency(const std::string& pid, const std::string dir,const xAOD::Electron *selEF,const xAOD::Photon *selPh,const xAOD::CaloCluster *clus,const xAOD::TrackParticle *trk, + const asg::AcceptData& acceptData) { cd(dir); ATH_MSG_DEBUG("REGTEST::Inefficiency"); @@ -192,23 +193,23 @@ void EfficiencyTool::fillInefficiency(const std::string& pid, const std::string float lastbin = hist1(ineff)->GetNbinsX() - 0.5; float sumbin = lastbin - 1; - if (!getAccept().getCutResult("L2Calo")) { + if (!acceptData.getCutResult("L2Calo")) { hist1(ineff)->Fill(0.5, 1); hist1(ineff)->Fill(sumbin, 1); } - else if (!getAccept().getCutResult("L2")) { + else if (!acceptData.getCutResult("L2")) { hist1(ineff)->Fill(1.5, 1); hist1(ineff)->Fill(sumbin, 1); } - else if (!getAccept().getCutResult("EFCalo")) { + else if (!acceptData.getCutResult("EFCalo")) { hist1(ineff)->Fill(2.5, 1); hist1(ineff)->Fill(sumbin, 1); } - // else if (!getAccept().getCutResult("EFTrack")) { + // else if (!acceptData.getCutResult("EFTrack")) { // hist1(ineff)->Fill(3.5, 1); // hist1(ineff)->Fill(13.5, 1); // } - else if (!getAccept().getCutResult("HLT")) { + else if (!acceptData.getCutResult("HLT")) { if (reco.test(0)) { if (boost::contains(pid, "LH")) failbits = analyseIsEMLH(selEF, pid); else failbits = analyseIsEM(selEF, pid); @@ -297,7 +298,8 @@ void EfficiencyTool::fillInefficiency(const std::string& pid, const std::string } void EfficiencyTool::inefficiency(const std::string& pid, const std::string basePath,const float etthr, - std::pair< const xAOD::Egamma*,const HLT::TriggerElement*> pairObj) + std::pair< const xAOD::Egamma*,const HLT::TriggerElement*> pairObj, + const asg::AcceptData& acceptData) { ATH_MSG_DEBUG("INEFF::Start Inefficiency Analysis ======================= " << basePath); cd(basePath); @@ -327,17 +329,17 @@ void EfficiencyTool::inefficiency(const std::string& pid, const std::string base const std::string ineff = "Ineff" + pidword; // Ensure L1 passes and offline passes et cut - if(getAccept().getCutResult("L1Calo") && et > etthr) { + if(acceptData.getCutResult("L1Calo") && et > etthr) { ATH_MSG_DEBUG("INEFF::Passed L1 and offline et"); - hist1("eff_triggerstep")->Fill("L2Calo",getAccept().getCutResult("L2Calo")); - hist1("eff_triggerstep")->Fill("L2",getAccept().getCutResult("L2")); - hist1("eff_triggerstep")->Fill("EFCalo",getAccept().getCutResult("EFCalo")); - hist1("eff_triggerstep")->Fill("EFTrack",getAccept().getCutResult("EFTrack")); - hist1("eff_triggerstep")->Fill("HLT",getAccept().getCutResult("HLT")); + hist1("eff_triggerstep")->Fill("L2Calo",acceptData.getCutResult("L2Calo")); + hist1("eff_triggerstep")->Fill("L2",acceptData.getCutResult("L2")); + hist1("eff_triggerstep")->Fill("EFCalo",acceptData.getCutResult("EFCalo")); + hist1("eff_triggerstep")->Fill("EFTrack",acceptData.getCutResult("EFTrack")); + hist1("eff_triggerstep")->Fill("HLT",acceptData.getCutResult("HLT")); // Fill efficiency plot for HLT trigger steps - if(!getAccept().getCutResult("HLT")/* || !getAccept().getCutResult("EFTrack")*/ || !getAccept().getCutResult("EFCalo") || - !getAccept().getCutResult("L2") || !getAccept().getCutResult("L2Calo")) { + if(!acceptData.getCutResult("HLT")/* || !acceptData.getCutResult("EFTrack")*/ || !acceptData.getCutResult("EFCalo") || + !acceptData.getCutResult("L2") || !acceptData.getCutResult("L2Calo")) { ATH_MSG_DEBUG("INEFF::Retrieve features for EF containers only "); ATH_MSG_DEBUG("INEFF::Retrieve EF Electron"); const auto* EFEl = getFeature<xAOD::ElectronContainer>(feat); @@ -356,7 +358,7 @@ void EfficiencyTool::inefficiency(const std::string& pid, const std::string base selPh = closestObject<xAOD::Photon,xAOD::PhotonContainer>(pairObj, dRmax, false); selClus = closestObject<xAOD::CaloCluster,xAOD::CaloClusterContainer>(pairObj, dRmax, false,"TrigEFCaloCalibFex"); selTrk = closestObject<xAOD::TrackParticle,xAOD::TrackParticleContainer>(pairObj, dRmax, false, "InDetTrigTrackingxAODCnv_Electron_IDTrig"); - fillInefficiency(pid, basePath, selEF, selPh, selClus, selTrk); + fillInefficiency(pid, basePath, selEF, selPh, selClus, selTrk, acceptData); if (EFClus == nullptr){ hist1("eff_hltreco")->Fill("ClusterCont", 0); hist1("eff_hltreco")->Fill("Cluster", 0); @@ -578,11 +580,12 @@ StatusCode EfficiencyTool::toolExecute(const std::string basePath,const TrigInfo // ialg = 0 is decision from TDT tool (Efficency dir) [default] // ialg = 1 is decision from emulator tool (Emulation dir) + asg::AcceptData acceptData (&getAccept()); if(ialg==0){ - setAccept(pairObj.second,info); //Sets the trigger accepts + acceptData = setAccept(pairObj.second,info); //Sets the trigger accepts }else{// ialg==1 ATH_MSG_DEBUG("Fill efficiency from Emulation tool"); - setAccept(emulation()->executeTool(pairObj.second, info.trigName)); + acceptData = emulation()->executeTool(pairObj.second, info.trigName); } if (pairObj.second!=nullptr) { @@ -590,30 +593,30 @@ StatusCode EfficiencyTool::toolExecute(const std::string basePath,const TrigInfo if(!info.trigL1){ if(pairObj.first->type()==xAOD::Type::Electron){ if(pairObj.first->auxdecor<bool>(pidword)){ - inefficiency(pid,dir+"/"+algname+"/HLT",etthr,pairObj); + inefficiency(pid,dir+"/"+algname+"/HLT",etthr,pairObj, acceptData); } } } } // Features if(info.trigL1) - this->fillEfficiency(dir+"/"+algname+"/L1Calo",getAccept().getCutResult("L1Calo"),etthr,pidword,pairObj.first); + this->fillEfficiency(dir+"/"+algname+"/L1Calo",acceptData.getCutResult("L1Calo"),etthr,pidword,pairObj.first); else { - this->fillEfficiency(dir+"/"+algname+"/HLT",getAccept().getCutResult("HLT"),etthr,pidword,pairObj.first); - this->fillEfficiency(dir+"/"+algname+"/L2Calo",getAccept().getCutResult("L2Calo"),etthr,pidword,pairObj.first,m_detailedHists); - this->fillEfficiency(dir+"/"+algname+"/L2",getAccept().getCutResult("L2"),etthr,pidword,pairObj.first,m_detailedHists); - this->fillEfficiency(dir+"/"+algname+"/EFCalo",getAccept().getCutResult("EFCalo"),etthr,pidword,pairObj.first,m_detailedHists); - this->fillEfficiency(dir+"/"+algname+"/L1Calo",getAccept().getCutResult("L1Calo"),etthr,pidword,pairObj.first); + this->fillEfficiency(dir+"/"+algname+"/HLT",acceptData.getCutResult("HLT"),etthr,pidword,pairObj.first); + this->fillEfficiency(dir+"/"+algname+"/L2Calo",acceptData.getCutResult("L2Calo"),etthr,pidword,pairObj.first,m_detailedHists); + this->fillEfficiency(dir+"/"+algname+"/L2",acceptData.getCutResult("L2"),etthr,pidword,pairObj.first,m_detailedHists); + this->fillEfficiency(dir+"/"+algname+"/EFCalo",acceptData.getCutResult("EFCalo"),etthr,pidword,pairObj.first,m_detailedHists); + this->fillEfficiency(dir+"/"+algname+"/L1Calo",acceptData.getCutResult("L1Calo"),etthr,pidword,pairObj.first); if(m_detailedHists){ for(const auto pid : m_isemname) { - this->fillEfficiency(dir+"/"+algname+"/HLT/"+pid,getAccept().getCutResult("HLT"),etthr,"is"+pid,pairObj.first); + this->fillEfficiency(dir+"/"+algname+"/HLT/"+pid,acceptData.getCutResult("HLT"),etthr,"is"+pid,pairObj.first); if( pairObj.first->auxdecor<bool>("Isolated") ) fillEfficiency(dir+"/"+algname+"/HLT/"+pid+"Iso", - getAccept().getCutResult("HLT"),etthr,"is"+pid,pairObj.first); + acceptData.getCutResult("HLT"),etthr,"is"+pid,pairObj.first); } for(const auto pid : m_lhname) { - this->fillEfficiency(dir+"/"+algname+"/HLT/"+pid,getAccept().getCutResult("HLT"),etthr,"is"+pid,pairObj.first); + this->fillEfficiency(dir+"/"+algname+"/HLT/"+pid,acceptData.getCutResult("HLT"),etthr,"is"+pid,pairObj.first); if( pairObj.first->auxdecor<bool>("Isolated") ) fillEfficiency(dir+"/"+algname+"/HLT/"+pid+"Iso", - getAccept().getCutResult("HLT"),etthr,"is"+pid,pairObj.first); + acceptData.getCutResult("HLT"),etthr,"is"+pid,pairObj.first); } } ATH_MSG_DEBUG("Complete efficiency"); diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaAnalysisBaseTool.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaAnalysisBaseTool.cxx index 1d7145df0c8220c53e37a7ac3b59479cc698f2e2..fcd2a4aee400191fe2a3e27520bf5c87ecf1eac5 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaAnalysisBaseTool.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaAnalysisBaseTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /********************************************************************** @@ -555,9 +555,10 @@ bool TrigEgammaAnalysisBaseTool::isPrescaled(const std::string trigger){ return false; // Not prescaled, use event } -void TrigEgammaAnalysisBaseTool::setAccept(const HLT::TriggerElement *te,const TrigInfo info){ +asg::AcceptData +TrigEgammaAnalysisBaseTool::setAccept(const HLT::TriggerElement *te,const TrigInfo info){ ATH_MSG_DEBUG("setAccept"); - m_accept.clear(); + asg::AcceptData acceptData (&m_accept); bool passedL1Calo=false; bool passedL2Calo=false; bool passedEFCalo=false; @@ -599,12 +600,12 @@ void TrigEgammaAnalysisBaseTool::setAccept(const HLT::TriggerElement *te,const T } } - m_accept.setCutResult("L1Calo",passedL1Calo); - m_accept.setCutResult("L2Calo",passedL2Calo); - m_accept.setCutResult("L2",passedL2); - m_accept.setCutResult("EFCalo",passedEFCalo); - m_accept.setCutResult("EFTrack",passedEFTrk); - m_accept.setCutResult("HLT",passedEF); + acceptData.setCutResult("L1Calo",passedL1Calo); + acceptData.setCutResult("L2Calo",passedL2Calo); + acceptData.setCutResult("L2",passedL2); + acceptData.setCutResult("EFCalo",passedEFCalo); + acceptData.setCutResult("EFTrack",passedEFTrk); + acceptData.setCutResult("HLT",passedEF); ATH_MSG_DEBUG("Accept results:"); ATH_MSG_DEBUG("L1: "<< passedL1Calo); ATH_MSG_DEBUG("L2Calo: " << passedL2Calo); @@ -612,6 +613,7 @@ void TrigEgammaAnalysisBaseTool::setAccept(const HLT::TriggerElement *te,const T ATH_MSG_DEBUG("EFCalo: "<< passedEFCalo); ATH_MSG_DEBUG("HLT: "<<passedEF); + return acceptData; } float TrigEgammaAnalysisBaseTool::dR(const float eta1, const float phi1, const float eta2, const float phi2){ diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavNtuple.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavNtuple.cxx index 001ab83e4c404074dd9e53ccde2d52332edbef67..a15b46ae14857468d84e882fb5460bfc613c8087 100755 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavNtuple.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavNtuple.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ @@ -316,12 +316,12 @@ bool TrigEgammaNavNtuple::executeTrigItemDump(){ }// loop over calo cluster } - setAccept(feat,info); - m_trig_L1_accept = getAccept().getCutResult("L1Calo"); - m_trig_L2_calo_accept = getAccept().getCutResult("L2Calo"); - m_trig_L2_el_accept = getAccept().getCutResult("L2"); - m_trig_EF_calo_accept = getAccept().getCutResult("EFCalo"); - m_trig_EF_el_accept = getAccept().getCutResult("HLT"); + asg::AcceptData acceptData = setAccept(feat,info); + m_trig_L1_accept = acceptData.getCutResult("L1Calo"); + m_trig_L2_calo_accept = acceptData.getCutResult("L2Calo"); + m_trig_L2_el_accept = acceptData.getCutResult("L2"); + m_trig_EF_calo_accept = acceptData.getCutResult("EFCalo"); + m_trig_EF_el_accept = acceptData.getCutResult("HLT"); ATH_MSG_DEBUG("L1Calo: " << int(m_trig_L1_accept)); ATH_MSG_DEBUG("L2Calo: " << int(m_trig_L2_calo_accept)); diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPAnalysisTool.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPAnalysisTool.cxx index 50d2e171e12308a6136d1e1b502a70ef613545e6..57a1a2058f76f9e7f9fbca8b03424a9ad15f0f9e 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPAnalysisTool.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPAnalysisTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ @@ -183,30 +183,30 @@ StatusCode TrigEgammaNavTPAnalysisTool::childExecute() if(et < info.trigThrHLT-5.0) continue; if(!offEl->auxdecor<bool>(info.trigPidDecorator)) continue; const HLT::TriggerElement* feat = m_pairObj[i].second; - setAccept(feat,info); //Sets the trigger accepts + asg::AcceptData acceptData = setAccept(feat,info); //Sets the trigger accepts cd(m_dir+"/Expert/Event"); if(et > info.trigThrHLT + 1.0) hist1(m_anatype+"_nProbes")->Fill(cprobeTrigger,1); if ( feat ) { if(et > info.trigThrHLT + 1.0){ - hist1(m_anatype+"_EffL1")->Fill(cprobeTrigger,getAccept().getCutResult("L1Calo")); - hist1(m_anatype+"_EffL2Calo")->Fill(cprobeTrigger,getAccept().getCutResult("L2Calo")); - hist1(m_anatype+"_EffL2")->Fill(cprobeTrigger,getAccept().getCutResult("L2")); - hist1(m_anatype+"_EffEFCalo")->Fill(cprobeTrigger,getAccept().getCutResult("EFCalo")); - hist1(m_anatype+"_EffHLT")->Fill(cprobeTrigger,getAccept().getCutResult("HLT")); - if( getAccept().getCutResult("L1Calo")){ + hist1(m_anatype+"_EffL1")->Fill(cprobeTrigger,acceptData.getCutResult("L1Calo")); + hist1(m_anatype+"_EffL2Calo")->Fill(cprobeTrigger,acceptData.getCutResult("L2Calo")); + hist1(m_anatype+"_EffL2")->Fill(cprobeTrigger,acceptData.getCutResult("L2")); + hist1(m_anatype+"_EffEFCalo")->Fill(cprobeTrigger,acceptData.getCutResult("EFCalo")); + hist1(m_anatype+"_EffHLT")->Fill(cprobeTrigger,acceptData.getCutResult("HLT")); + if( acceptData.getCutResult("L1Calo")){ hist1(m_anatype+"_nProbesL1")->Fill(cprobeTrigger,1); } - if( getAccept().getCutResult("L2Calo") ){ + if( acceptData.getCutResult("L2Calo") ){ hist1(m_anatype+"_nProbesL2Calo")->Fill(cprobeTrigger,1); } - if( getAccept().getCutResult("L2") ){ + if( acceptData.getCutResult("L2") ){ hist1(m_anatype+"_nProbesL2")->Fill(cprobeTrigger,1); } - if( getAccept().getCutResult("EFCalo") ){ + if( acceptData.getCutResult("EFCalo") ){ hist1(m_anatype+"_nProbesEFCalo")->Fill(cprobeTrigger,1); } - if( getAccept().getCutResult("HLT") ){ + if( acceptData.getCutResult("HLT") ){ hist1(m_anatype+"_nProbesHLT")->Fill(cprobeTrigger,1); } } diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPNtuple.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPNtuple.cxx index 62484f0cc05dbe118cb2a2b27b97b48ee06069dd..680e786f42f35dbe1fe6acb46eb52ff672b9c156 100755 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPNtuple.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPNtuple.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /********************************************************************** @@ -243,12 +243,12 @@ bool TrigEgammaNavTPNtuple::executeProbesItemDump(){ } - setAccept(feat,info); - m_trig_L1_accept = getAccept().getCutResult("L1Calo"); - m_trig_L2_calo_accept = getAccept().getCutResult("L2Calo"); - m_trig_L2_el_accept = getAccept().getCutResult("L2"); - m_trig_EF_calo_accept = getAccept().getCutResult("EFCalo"); - m_trig_EF_el_accept = getAccept().getCutResult("HLT"); + asg::AcceptData acceptData = setAccept(feat,info); + m_trig_L1_accept = acceptData.getCutResult("L1Calo"); + m_trig_L2_calo_accept = acceptData.getCutResult("L2Calo"); + m_trig_L2_el_accept = acceptData.getCutResult("L2"); + m_trig_EF_calo_accept = acceptData.getCutResult("EFCalo"); + m_trig_EF_el_accept = acceptData.getCutResult("HLT"); ATH_MSG_DEBUG("L1Calo: " << int(m_trig_L1_accept)); ATH_MSG_DEBUG("L2Calo: " << int(m_trig_L2_calo_accept)); diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/EfficiencyTool.h b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/EfficiencyTool.h index 43d14419293930651cf5ddf2a9d49c2b671fd475..14a3a4a0c26c98acc634be5afb811a78fbb40af0 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/EfficiencyTool.h +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/EfficiencyTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef EfficiencyTool_H @@ -30,8 +30,10 @@ private: protected: void fillEfficiency(const std::string,bool,const float,const std::string,const xAOD::Egamma *,bool fill2D=true); - void inefficiency(const std::string&,const std::string,const float,std::pair< const xAOD::Egamma*,const HLT::TriggerElement*> pairObj); - void fillInefficiency(const std::string&,const std::string,const xAOD::Electron *,const xAOD::Photon *,const xAOD::CaloCluster *,const xAOD::TrackParticle *); + void inefficiency(const std::string&,const std::string,const float,std::pair< const xAOD::Egamma*,const HLT::TriggerElement*> pairObj, + const asg::AcceptData& acceptData); + void fillInefficiency(const std::string&,const std::string,const xAOD::Electron *,const xAOD::Photon *,const xAOD::CaloCluster *,const xAOD::TrackParticle *, + const asg::AcceptData& acceptData); bool analyseIsEM(const xAOD::Electron *,const std::string); bool analyseIsEMLH(const xAOD::Electron *,const std::string/*,const std::bitset<4>*/); /*! Include more detailed histograms */ diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaAnalysisBaseTool.h b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaAnalysisBaseTool.h index c6abee3996dcb9a0944429f2fe67012a49859706..5a67bcefb1e402147f282fcb5b5e86b363879c60 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaAnalysisBaseTool.h +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaAnalysisBaseTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef TrigEgammaAnalysisBaseTool_H @@ -7,7 +7,8 @@ #include "TrigEgammaAnalysisTools/ITrigEgammaAnalysisBaseTool.h" #include "AsgTools/AsgTool.h" -#include "PATCore/TAccept.h" +#include "PATCore/AcceptInfo.h" +#include "PATCore/AcceptData.h" #include "TrigDecisionTool/TrigDecisionTool.h" #include "TrigEgammaMatchingTool/ITrigEgammaMatchingTool.h" #include "TrigEgammaAnalysisTools/ITrigEgammaPlotTool.h" @@ -49,12 +50,12 @@ ASG_TOOL_CLASS(TrigEgammaAnalysisBaseTool, ITrigEgammaAnalysisBaseTool) public: TrigEgammaAnalysisBaseTool( const std::string& myname); - ~TrigEgammaAnalysisBaseTool() {}; + virtual ~TrigEgammaAnalysisBaseTool() {}; - StatusCode initialize(); - StatusCode book(); - StatusCode execute(); - StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode book() override; + virtual StatusCode execute() override; + virtual StatusCode finalize() override; template<class T, class B> std::unique_ptr<xAOD::TrigPassBits> createBits(const T* CONT, const B* BITS); template<class T> std::unique_ptr<xAOD::TrigPassBits> getBits(const HLT::TriggerElement* te,const T* CONT); template<class T> const T* getFeature(const HLT::TriggerElement* te,const std::string key=""); @@ -62,14 +63,14 @@ public: template <class T1, class T2> const T1* closestObject(const std::pair<const xAOD::Egamma *, const HLT::TriggerElement *>, float &, bool usePassbits=true,const std::string key=""); // Interface class methods needed to pass information to additional tools or to set common tools - void setParent(IHLTMonTool *parent){ m_parent = parent;}; - void setPlotTool(ToolHandle<ITrigEgammaPlotTool> tool){m_plot=tool;} - void setDetail(bool detail){m_detailedHists=detail;} - void setTP(bool tp){m_tp=tp;} - void setEmulation(bool doEmu){m_doEmulation=doEmu;} - void setEmulationTool(ToolHandle<Trig::ITrigEgammaEmulationTool> tool){m_emulationTool=tool;} - void setPVertex(const float onvertex, const float ngoodvertex){m_nPVertex = onvertex; m_nGoodVertex = ngoodvertex;} - void setAvgMu(const float onlmu, const float offmu){m_onlmu=onlmu; m_offmu=offmu;} //For tools called by tools + virtual void setParent(IHLTMonTool *parent) override { m_parent = parent;}; + virtual void setPlotTool(ToolHandle<ITrigEgammaPlotTool> tool) override {m_plot=tool;} + virtual void setDetail(bool detail) override {m_detailedHists=detail;} + virtual void setTP(bool tp) override {m_tp=tp;} + virtual void setEmulation(bool doEmu) override {m_doEmulation=doEmu;} + virtual void setEmulationTool(ToolHandle<Trig::ITrigEgammaEmulationTool> tool) override {m_emulationTool=tool;} + virtual void setPVertex(const float onvertex, const float ngoodvertex) override {m_nPVertex = onvertex; m_nGoodVertex = ngoodvertex;} + virtual void setAvgMu(const float onlmu, const float offmu) override {m_onlmu=onlmu; m_offmu=offmu;} //For tools called by tools // Set current MonGroup void cd(const std::string &dir); @@ -100,8 +101,8 @@ private: std::map<std::string,TrigInfo> m_trigInfo; /*! Include more detailed histograms */ bool m_detailedHists; - /*! TAccept to store TrigDecision */ - Root::TAccept m_accept; + /*! AcceptInfo to store TrigDecision */ + asg::AcceptInfo m_accept; /*! Helper strings for trigger level analysis */ static const std::vector<std::string> m_trigLevel; static const std::map<std::string,std::string> m_trigLvlMap; @@ -189,10 +190,9 @@ protected: bool getTP() const {return m_tp;} bool getEmulation() const {return m_doEmulation;} - // TAccept - Root::TAccept getAccept(){return m_accept;} - void setAccept(Root::TAccept accept){m_accept=accept;} - void setAccept(const HLT::TriggerElement *,const TrigInfo); + // AcceptInfo/Data + const asg::AcceptInfo& getAccept() const {return m_accept;} + asg::AcceptData setAccept(const HLT::TriggerElement *,const TrigInfo); //Class Members // Athena services diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/Root/TrigEgammaEmulationTool.cxx b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/Root/TrigEgammaEmulationTool.cxx index 89b578b6434c8f370c442bf8e3061ef54f449871..ada6347b3556178df4f2b44ec4bdc834c078a58c 100644 --- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/Root/TrigEgammaEmulationTool.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/Root/TrigEgammaEmulationTool.cxx @@ -153,7 +153,7 @@ StatusCode TrigEgammaEmulationTool::initialize() { } ATH_MSG_INFO("Initialising accept..."); - //add cuts into TAccept + //add cuts into AcceptInfo m_accept.addCut("L1Calo" , "Trigger L1Calo step" ); m_accept.addCut("L2Calo" , "Trigger L2Calo step" ); m_accept.addCut("L2" , "Trigger L2Electron step" ); @@ -289,10 +289,10 @@ bool TrigEgammaEmulationTool::EventWiseContainer(){ } //!========================================================================== //! Emulation from Trigger Element -const Root::TAccept& TrigEgammaEmulationTool::executeTool(const HLT::TriggerElement *te_external, const std::string &trigger) { +asg::AcceptData TrigEgammaEmulationTool::executeTool(const HLT::TriggerElement *te_external, const std::string &trigger) { ATH_MSG_DEBUG("TrigEgammaEmulationTool::executeTool(te, trigger)"); - m_accept.clear(); + asg::AcceptData acceptData (&m_accept); if(m_trigInfo.count(trigger) != 0){ @@ -311,7 +311,7 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const HLT::TriggerElem const auto* l1 = getFeature<xAOD::EmTauRoI>(te_external); if(!l1){ ATH_MSG_WARNING("Can not retrieve the support element because the current TE does not has xAOD::EmTauRoI object!"); - return m_accept; + return acceptData; } // This object is not fully completed, try to found other. for (const auto &fctrigger : m_supportingTrigList){ @@ -347,7 +347,7 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const HLT::TriggerElem ATH_MSG_WARNING("This Trigger Element does not have all features needed by the emulation tool. The external match is " << " not possible! Maybe the support trigger list not attend all requirements."); setTEMatched(nullptr); - return m_accept; + return acceptData; } } @@ -369,47 +369,47 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const HLT::TriggerElem //Level 1 m_l1Selector->emulation( l1, passedL1Calo , info); - m_accept.setCutResult("L1Calo", passedL1Calo); + acceptData.setCutResult("L1Calo", passedL1Calo); if( (passedL1Calo ) && !info.isL1 ){ m_l2Selector->emulation( emCluster, passedL2Calo , info); - m_accept.setCutResult("L2Calo", passedL2Calo); + acceptData.setCutResult("L2Calo", passedL2Calo); if(passedL2Calo ){ if(info.perf){//bypass L2 Electron/Photon Level passedL2=true; - m_accept.setCutResult("L2", passedL2); + acceptData.setCutResult("L2", passedL2); }else{ if (info.type == "electron") { if(m_doL2ElectronFex) m_l2Selector->emulation( trigElCont, passedL2, info); else passedL2=true; - m_accept.setCutResult("L2", passedL2); + acceptData.setCutResult("L2", passedL2); } else if (info.type == "photon") { //m_l2Selector->emulation( trigPhCont, passedL2, trigger); //m_efPhotonSelector->emulation( phCont, passedEF, trigger); passedL2=true; - m_accept.setCutResult("L2", passedL2); + acceptData.setCutResult("L2", passedL2); } }//bypass L2 if (passedL2){ m_efCaloSelector->emulation( elCont, passedEFCalo, info); - m_accept.setCutResult("EFCalo", passedEFCalo); + acceptData.setCutResult("EFCalo", passedEFCalo); if(passedEFCalo){ passedEFTrack=true; - m_accept.setCutResult("EFTrack" , passedEFTrack); + acceptData.setCutResult("EFTrack" , passedEFTrack); if(passedEFTrack){ if(!emulationHLT(elCont, passedHLT, info)){ - m_accept.clear(); - return m_accept; + acceptData.clear(); + return acceptData; }else{ - m_accept.setCutResult("HLT" , passedHLT); + acceptData.setCutResult("HLT" , passedHLT); } }//EFTrack }//EFCalo @@ -420,13 +420,13 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const HLT::TriggerElem ATH_MSG_WARNING("Can not emulate " << trigger << ". This chain must be added into trigList before the creation."); } - return m_accept; + return acceptData; } //!========================================================================== //! Emulation from xAOD containers not using TDT tools -const Root::TAccept& TrigEgammaEmulationTool::executeTool(const std::string &trigger) { +asg::AcceptData TrigEgammaEmulationTool::executeTool(const std::string &trigger) { clearDecorations(); - m_accept.clear(); + asg::AcceptData acceptData (&m_accept); if( m_trigInfo.count(trigger) != 0){ Trig::Info info = getTrigInfo(trigger); @@ -448,7 +448,7 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const std::string &tri bit++; } if(bitL1Accept.count()>0) passedL1Calo=true; - m_accept.setCutResult("L1Calo", passedL1Calo); + acceptData.setCutResult("L1Calo", passedL1Calo); if(passedL1Calo && !info.isL1){ bit=0; pass=false; @@ -460,44 +460,44 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const std::string &tri } if(bitL2CaloAccept.count()>0) passedL2Calo=true; - m_accept.setCutResult("L2Calo", passedL2Calo); + acceptData.setCutResult("L2Calo", passedL2Calo); if(passedL2Calo) { if(info.perf){//bypass L2 Electron/Photon Level passedL2=true; - m_accept.setCutResult("L2", passedL2); + acceptData.setCutResult("L2", passedL2); }else{ if (info.type == "electron") { if(m_doL2ElectronFex) m_l2Selector->emulation(m_trigElectrons, passedL2, info); else passedL2=true; - m_accept.setCutResult("L2", passedL2); + acceptData.setCutResult("L2", passedL2); } else if (info.type == "photon") { //m_l2Selector->emulation( trigPhCont, passedL2, trigger); //m_efPhotonSelector->emulation( phCont, passedEF, trigger); passedL2=true; - m_accept.setCutResult("L2", passedL2); + acceptData.setCutResult("L2", passedL2); } }//bypass L2 if (passedL2){ m_efCaloSelector->emulation(m_onlElectrons, passedEFCalo, info); - m_accept.setCutResult("EFCalo", passedEFCalo); + acceptData.setCutResult("EFCalo", passedEFCalo); if(passedEFCalo){ //TODO: running the EF track step passedEFTrack=true; - m_accept.setCutResult("EFTrack", passedEFTrack); + acceptData.setCutResult("EFTrack", passedEFTrack); if(passedEFTrack){ if(!emulationHLT(m_onlElectrons, passedHLT, info)){ - m_accept.clear(); - return m_accept; + acceptData.clear(); + return acceptData; }else{ - m_accept.setCutResult("HLT" , passedHLT); + acceptData.setCutResult("HLT" , passedHLT); } }//EFTrack @@ -508,27 +508,25 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const std::string &tri }else{ ATH_MSG_WARNING("Can not emulate. Trigger not configurated"); } - return m_accept; + return acceptData; } //!========================================================================== bool TrigEgammaEmulationTool::isPassed(const std::string &trigger) { - m_accept.clear(); - m_accept = executeTool(trigger); + asg::AcceptData acceptData = executeTool(trigger); ATH_MSG_DEBUG("Trigger = "<< trigger ); - ATH_MSG_DEBUG("isPassed()::L1Calo = " << m_accept.getCutResult("L1")); - ATH_MSG_DEBUG("isPassed()::L2Calo = " << m_accept.getCutResult("L2Calo")); - ATH_MSG_DEBUG("isPassed()::L2 = " << m_accept.getCutResult("L2")); - ATH_MSG_DEBUG("isPassed()::EFCalo = " << m_accept.getCutResult("EFCalo")); - ATH_MSG_DEBUG("isPassed()::EFTrack= " << m_accept.getCutResult("EFTrack")); - ATH_MSG_DEBUG("isPassed()::HLT = " << m_accept.getCutResult("HLT")); - return m_accept.getCutResult("HLT"); + ATH_MSG_DEBUG("isPassed()::L1Calo = " << acceptData.getCutResult("L1")); + ATH_MSG_DEBUG("isPassed()::L2Calo = " << acceptData.getCutResult("L2Calo")); + ATH_MSG_DEBUG("isPassed()::L2 = " << acceptData.getCutResult("L2")); + ATH_MSG_DEBUG("isPassed()::EFCalo = " << acceptData.getCutResult("EFCalo")); + ATH_MSG_DEBUG("isPassed()::EFTrack= " << acceptData.getCutResult("EFTrack")); + ATH_MSG_DEBUG("isPassed()::HLT = " << acceptData.getCutResult("HLT")); + return acceptData.getCutResult("HLT"); } //!========================================================================== bool TrigEgammaEmulationTool::isPassed(const std::string &trigger, const std::string &fctrigger) { - m_accept.clear(); const HLT::TriggerElement *finalFC = NULL; auto fc = m_trigdec->features(fctrigger, TrigDefs::alsoDeactivateTEs); auto vec = fc.get<xAOD::ElectronContainer>(); @@ -539,14 +537,14 @@ bool TrigEgammaEmulationTool::isPassed(const std::string &trigger, const std::st bit++; finalFC = feat.te(); if (!finalFC) continue; - m_accept = executeTool(finalFC, trigger); - if(m_accept.getCutResult("HLT")) bitAccept.set(bit-1,true); - ATH_MSG_DEBUG("isPassed()::L1Calo = " << m_accept.getCutResult("L1")); - ATH_MSG_DEBUG("isPassed()::L2Calo = " << m_accept.getCutResult("L2Calo")); - ATH_MSG_DEBUG("isPassed()::L2 = " << m_accept.getCutResult("L2")); - ATH_MSG_DEBUG("isPassed()::EFCalo = " << m_accept.getCutResult("EFCalo")); - ATH_MSG_DEBUG("isPassed()::EFTrack= " << m_accept.getCutResult("EFTrack")); - ATH_MSG_DEBUG("isPassed()::HLT = " << m_accept.getCutResult("HLT")); + asg::AcceptData acceptData = executeTool(finalFC, trigger); + if(acceptData.getCutResult("HLT")) bitAccept.set(bit-1,true); + ATH_MSG_DEBUG("isPassed()::L1Calo = " << acceptData.getCutResult("L1")); + ATH_MSG_DEBUG("isPassed()::L2Calo = " << acceptData.getCutResult("L2Calo")); + ATH_MSG_DEBUG("isPassed()::L2 = " << acceptData.getCutResult("L2")); + ATH_MSG_DEBUG("isPassed()::EFCalo = " << acceptData.getCutResult("EFCalo")); + ATH_MSG_DEBUG("isPassed()::EFTrack= " << acceptData.getCutResult("EFTrack")); + ATH_MSG_DEBUG("isPassed()::HLT = " << acceptData.getCutResult("HLT")); } bool pass=false; if(bitAccept.count()>0) pass=true; diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaEmulationTool.h b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaEmulationTool.h index a77d0fc14f145bdd2ff87db88adca6f9b7df9380..33c6287e062bec11a0f3e97247c4ab78ec2a554d 100644 --- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaEmulationTool.h +++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaEmulationTool.h @@ -26,7 +26,8 @@ #include "xAODCaloEvent/CaloClusterAuxContainer.h" #include "xAODTrigger/EmTauRoIContainer.h" #include "TrigDecisionTool/TrigDecisionTool.h" -#include "PATCore/TAccept.h" +#include "PATCore/AcceptInfo.h" +#include "PATCore/AcceptData.h" #include <vector> #include <map> @@ -42,11 +43,11 @@ namespace Trig{ virtual bool EventWiseContainer()=0; - virtual const Root::TAccept& executeTool( const HLT::TriggerElement *, const std::string & )=0; - virtual const Root::TAccept& executeTool( const std::string & )=0; + virtual asg::AcceptData executeTool( const HLT::TriggerElement *, const std::string & )=0; + virtual asg::AcceptData executeTool( const std::string & )=0; virtual bool isPassed(const std::string&)=0; virtual bool isPassed(const std::string&, const std::string&)=0; - virtual const Root::TAccept& getAccept()=0; + virtual const asg::AcceptInfo& getAccept() const =0; /* Experimental methods */ virtual void ExperimentalAndExpertMethods()=0; virtual void match( const xAOD::Egamma *, const HLT::TriggerElement *&)=0; diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaSelectorBaseTool.h b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaSelectorBaseTool.h index d2b196d82e320fa137372320d0378eed73721013..295ede74a2fcdd7205db4b64f6a834379eb67b95 100644 --- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaSelectorBaseTool.h +++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaSelectorBaseTool.h @@ -7,7 +7,6 @@ #define ITrigEgammaSelectorBaseTool_H_ #include "AsgTools/IAsgTool.h" -#include "PATCore/TAccept.h" #include "TrigDecisionTool/TrigDecisionTool.h" //xAOD include(s) diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaEmulationTool.h b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaEmulationTool.h index 9ffb70e1451d24a3862be5d71c11bbd54812c921..5b7432c13378be3ff9ae00acbd20b04c6ad9995d 100644 --- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaEmulationTool.h +++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaEmulationTool.h @@ -9,7 +9,8 @@ #include "TrigEgammaEmulationTool/ITrigEgammaEmulationTool.h" #include "TrigEgammaEmulationTool/ITrigEgammaSelectorBaseTool.h" #include "AsgTools/AsgTool.h" -#include "PATCore/TAccept.h" +#include "PATCore/AcceptInfo.h" +#include "PATCore/AcceptData.h" #include "AthContainers/AuxElement.h" #include "TrigDecisionTool/TrigDecisionTool.h" #include "TrigEgammaMatchingTool/ITrigEgammaMatchingTool.h" @@ -39,27 +40,27 @@ class TrigEgammaEmulationTool //****************************************************************************** TrigEgammaEmulationTool(const std::string& myname); - ~TrigEgammaEmulationTool() {}; + virtual ~TrigEgammaEmulationTool() {}; - StatusCode initialize(); - StatusCode execute(); - StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode execute() override; + virtual StatusCode finalize() override; //execute all emulators - const Root::TAccept& executeTool( const std::string &); - const Root::TAccept& executeTool( const HLT::TriggerElement *, const std::string &); - const Root::TAccept& getAccept(){return m_accept;} + virtual asg::AcceptData executeTool( const std::string &) override; + virtual asg::AcceptData executeTool( const HLT::TriggerElement *, const std::string &) override; + virtual const asg::AcceptInfo& getAccept() const override {return m_accept;} - bool EventWiseContainer(); - bool isPassed(const std::string&); - bool isPassed(const std::string&, const std::string&); + virtual bool EventWiseContainer() override; + virtual bool isPassed(const std::string&) override; + virtual bool isPassed(const std::string&, const std::string&) override; /* Experimental methods */ - void ExperimentalAndExpertMethods(){m_experimentalAndExpertMethods=true;}; + virtual void ExperimentalAndExpertMethods() override {m_experimentalAndExpertMethods=true;}; - void match( const xAOD::Egamma *, const HLT::TriggerElement *&); - const HLT::TriggerElement* getTEMatched(){return m_teMatched;}; + virtual void match( const xAOD::Egamma *, const HLT::TriggerElement *&) override; + virtual const HLT::TriggerElement* getTEMatched() override {return m_teMatched;}; private: @@ -93,7 +94,7 @@ class TrigEgammaEmulationTool std::vector<std::string> m_supportingTrigList; std::map<std::string, Trig::Info> m_trigInfo; - Root::TAccept m_accept; + asg::AcceptInfo m_accept; StoreGateSvc *m_storeGate; ToolHandle<Trig::TrigDecisionTool> m_trigdec; ToolHandle<Trig::ITrigEgammaMatchingTool> m_matchTool; diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaSelectorBaseTool.h b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaSelectorBaseTool.h index a5869fb8499eb83ba25f0cc5f7c16ce4167d3d68..e4cac53267cea2b57f519b2daa8b7a75d491eaa1 100644 --- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaSelectorBaseTool.h +++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaSelectorBaseTool.h @@ -8,7 +8,6 @@ #include "AsgTools/AsgTool.h" -#include "PATCore/TAccept.h" #include "TrigDecisionTool/TrigDecisionTool.h" #include "LumiBlockComps/ILumiBlockMuTool.h" #include "LumiBlockComps/ILuminosityTool.h" @@ -44,10 +43,10 @@ namespace Trig{ //using ITrigEgammaSelectorBaseTool::emulation; TrigEgammaSelectorBaseTool(const std::string& myname); - ~TrigEgammaSelectorBaseTool(){;} + virtual ~TrigEgammaSelectorBaseTool(){;} - StatusCode initialize(); - StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode finalize() override; //FIXME: static_cast for IParticleContainer to EmTau and emCluster //doent work. Because this I add these extra methods. Need to check diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.cxx b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.cxx index 3fe7bbac74684a0e67ed843213c265b3b4181eb3..e0600fe97edef0393f6f248fad1c7d3fde332f27 100644 --- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.cxx @@ -11,7 +11,6 @@ #include "xAODCaloEvent/CaloClusterContainer.h" #include "xAODEgamma/ElectronContainer.h" #include "xAODEgamma/PhotonContainer.h" -#include "PATCore/TAccept.h" namespace Trig { TrigEgammaEmulationToolAlg:: diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.h b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.h index e612fab00e7ed6528fe74c81c1328890b87e8396..21905462a78180de414c01564b51b16e3413de69 100644 --- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.h +++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.h @@ -19,10 +19,10 @@ namespace Trig { class TrigEgammaEmulationToolAlg : public AthAlgorithm { public: TrigEgammaEmulationToolAlg(const std::string& name, ISvcLocator* pSvcLocator); - ~TrigEgammaEmulationToolAlg(); - StatusCode initialize(); - StatusCode execute(); - StatusCode finalize(); + virtual ~TrigEgammaEmulationToolAlg(); + virtual StatusCode initialize() override; + virtual StatusCode execute() override; + virtual StatusCode finalize() override; private: // std::vector<std::string> m_triggerList; diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.cxx b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.cxx index 5a95b72e5f4ae49f7a8de8914c1f03ac104f758f..fbb1ce39d94f165cb1ec5a4ee6521c66052e0945 100644 --- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.cxx @@ -13,7 +13,6 @@ #include "xAODCaloEvent/CaloClusterContainer.h" #include "xAODEgamma/ElectronContainer.h" #include "xAODEgamma/PhotonContainer.h" -#include "PATCore/TAccept.h" using std::string; //********************************************************************** @@ -118,23 +117,23 @@ StatusCode TrigEgammaEmulationToolTest::Method1() { ATH_MSG_DEBUG("TE is nullptr"); continue; } - setAccept(finalFC); + asg::AcceptData acceptData = setAccept(finalFC); count("Method1__total__"+trigger); - if(m_accept.getCutResult("L1Calo")) count("Method1__TDT__L1Calo__" +trigger); - if(m_accept.getCutResult("L2Calo")) count("Method1__TDT__L2Calo__" +trigger); - if(m_accept.getCutResult("L2")) count("Method1__TDT__L2__" +trigger); - if(m_accept.getCutResult("EFTrack")) count("Method1__TDT__EFTrack__"+trigger); - if(m_accept.getCutResult("EFCalo")) count("Method1__TDT__EFCalo__" +trigger); - if(m_accept.getCutResult("HLT")) count("Method1__TDT__HLT__" +trigger); - - Root::TAccept accept = m_emulationTool->executeTool(finalFC, trigger); - if(accept.getCutResult("L1Calo")) count("Method1__EMU__L1Calo__" +trigger); - if(accept.getCutResult("L2Calo")) count("Method1__EMU__L2Calo__" +trigger); - if(accept.getCutResult("L2")) count("Method1__EMU__L2__" +trigger); - if(accept.getCutResult("EFTrack")) count("Method1__EMU__EFTrack__"+trigger); - if(accept.getCutResult("EFCalo")) count("Method1__EMU__EFCalo__" +trigger); - if(accept.getCutResult("HLT")) count("Method1__EMU__HLT__" +trigger); + if(acceptData.getCutResult("L1Calo")) count("Method1__TDT__L1Calo__" +trigger); + if(acceptData.getCutResult("L2Calo")) count("Method1__TDT__L2Calo__" +trigger); + if(acceptData.getCutResult("L2")) count("Method1__TDT__L2__" +trigger); + if(acceptData.getCutResult("EFTrack")) count("Method1__TDT__EFTrack__"+trigger); + if(acceptData.getCutResult("EFCalo")) count("Method1__TDT__EFCalo__" +trigger); + if(acceptData.getCutResult("HLT")) count("Method1__TDT__HLT__" +trigger); + + asg::AcceptData accept2 = m_emulationTool->executeTool(finalFC, trigger); + if(accept2.getCutResult("L1Calo")) count("Method1__EMU__L1Calo__" +trigger); + if(accept2.getCutResult("L2Calo")) count("Method1__EMU__L2Calo__" +trigger); + if(accept2.getCutResult("L2")) count("Method1__EMU__L2__" +trigger); + if(accept2.getCutResult("EFTrack")) count("Method1__EMU__EFTrack__"+trigger); + if(accept2.getCutResult("EFCalo")) count("Method1__EMU__EFCalo__" +trigger); + if(accept2.getCutResult("HLT")) count("Method1__EMU__HLT__" +trigger); }// loop over electrons offline }// loop over triggers @@ -156,22 +155,22 @@ StatusCode TrigEgammaEmulationToolTest::Method2() { continue; } - setAccept(finalFC); + asg::AcceptData acceptData = setAccept(finalFC); count("Method2__total__"+trigger); - if(m_accept.getCutResult("L1Calo")) count("Method2__TDT__L1Calo__" +trigger); - if(m_accept.getCutResult("L2Calo")) count("Method2__TDT__L2Calo__" +trigger); - if(m_accept.getCutResult("L2")) count("Method2__TDT__L2__" +trigger); - if(m_accept.getCutResult("EFTrack")) count("Method2__TDT__EFTrack__"+trigger); - if(m_accept.getCutResult("EFCalo")) count("Method2__TDT__EFCalo__" +trigger); - if(m_accept.getCutResult("HLT")) count("Method2__TDT__HLT__" +trigger); - - Root::TAccept accept = m_emulationTool->executeTool(trigger); - if(accept.getCutResult("L1Calo")) count("Method2__EMU__L1Calo__" +trigger); - if(accept.getCutResult("L2Calo")) count("Method2__EMU__L2Calo__" +trigger); - if(accept.getCutResult("L2")) count("Method2__EMU__L2__" +trigger); - if(accept.getCutResult("EFTrack")) count("Method2__EMU__EFTrack__"+trigger); - if(accept.getCutResult("EFCalo")) count("Method2__EMU__EFCalo__" +trigger); - if(accept.getCutResult("HLT")) count("Method2__EMU__HLT__" +trigger); + if(acceptData.getCutResult("L1Calo")) count("Method2__TDT__L1Calo__" +trigger); + if(acceptData.getCutResult("L2Calo")) count("Method2__TDT__L2Calo__" +trigger); + if(acceptData.getCutResult("L2")) count("Method2__TDT__L2__" +trigger); + if(acceptData.getCutResult("EFTrack")) count("Method2__TDT__EFTrack__"+trigger); + if(acceptData.getCutResult("EFCalo")) count("Method2__TDT__EFCalo__" +trigger); + if(acceptData.getCutResult("HLT")) count("Method2__TDT__HLT__" +trigger); + + asg::AcceptData accept2 = m_emulationTool->executeTool(trigger); + if(accept2.getCutResult("L1Calo")) count("Method2__EMU__L1Calo__" +trigger); + if(accept2.getCutResult("L2Calo")) count("Method2__EMU__L2Calo__" +trigger); + if(accept2.getCutResult("L2")) count("Method2__EMU__L2__" +trigger); + if(accept2.getCutResult("EFTrack")) count("Method2__EMU__EFTrack__"+trigger); + if(accept2.getCutResult("EFCalo")) count("Method2__EMU__EFCalo__" +trigger); + if(accept2.getCutResult("HLT")) count("Method2__EMU__HLT__" +trigger); } } @@ -213,11 +212,12 @@ void TrigEgammaEmulationToolTest::writeEmulationSummary(){ } -bool TrigEgammaEmulationToolTest::setAccept( const HLT::TriggerElement *finalFC){ - m_accept.clear(); - +asg::AcceptData +TrigEgammaEmulationToolTest::setAccept( const HLT::TriggerElement *finalFC) +{ + asg::AcceptData acceptData (&m_accept); if(!finalFC) - return false; + return acceptData; bool passedL1 = false; bool passedL2Calo = false; @@ -254,14 +254,14 @@ bool TrigEgammaEmulationToolTest::setAccept( const HLT::TriggerElement *finalFC) if( m_trigdec->ancestor<xAOD::ElectronContainer>(finalFC).te() != nullptr ) passedHLT=m_trigdec->ancestor<xAOD::ElectronContainer>(finalFC).te()->getActiveState(); - m_accept.setCutResult("L1Calo", passedL1); - m_accept.setCutResult("L2Calo", passedL2Calo); - m_accept.setCutResult("L2", passedL2); - m_accept.setCutResult("EFTrack", passedEFTrack); - m_accept.setCutResult("EFCalo", passedEFCalo); - m_accept.setCutResult("HLT", passedHLT); + acceptData.setCutResult("L1Calo", passedL1); + acceptData.setCutResult("L2Calo", passedL2Calo); + acceptData.setCutResult("L2", passedL2); + acceptData.setCutResult("EFTrack", passedEFTrack); + acceptData.setCutResult("EFCalo", passedEFCalo); + acceptData.setCutResult("HLT", passedHLT); - return true; + return acceptData; } }///namespace diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.h b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.h index 903832077a1d09398243798606a9dd5ca29cb4da..deb1fd59d7a44f35ba91b252fce6dcb166ce84c5 100644 --- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.h +++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.h @@ -14,6 +14,8 @@ #include "TrigEgammaMatchingTool/ITrigEgammaMatchingTool.h" #include "TrigEgammaEmulationTool/ITrigEgammaEmulationTool.h" #include "xAODEgamma/ElectronContainer.h" +#include "PATCore/AcceptInfo.h" +#include "PATCore/AcceptData.h" #include <string> #include <map> @@ -29,12 +31,12 @@ namespace Trig{ TrigEgammaEmulationToolTest(const std::string& name, ISvcLocator* pSvcLocator); /// Destructor: - ~TrigEgammaEmulationToolTest(); + virtual ~TrigEgammaEmulationToolTest(); /// Athena algorithm's Hooks - StatusCode initialize(); - StatusCode execute(); - StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode execute() override; + virtual StatusCode finalize() override; private: @@ -43,7 +45,7 @@ namespace Trig{ StatusCode Method1(); StatusCode Method2(); void writeEmulationSummary(); - bool setAccept(const HLT::TriggerElement*); + asg::AcceptData setAccept(const HLT::TriggerElement*); float ratio(float,float); @@ -66,7 +68,7 @@ namespace Trig{ std::map<std::string, unsigned >m_countMap; std::vector<std::string> m_triggerList; StoreGateSvc *m_storeGate; - Root::TAccept m_accept; + asg::AcceptInfo m_accept; const xAOD::ElectronContainer *m_offElectrons;