From 290a42bb3b9c6020a2e1c5875af648c1c620e430 Mon Sep 17 00:00:00 2001 From: eegidiop <edmar.egidio.purcino.de.souza@cern.ch> Date: Thu, 20 Jan 2022 21:07:18 +0100 Subject: [PATCH 1/2] Handle new PrecisionCalo keys within TrigEgammaMonitoring and TrigEgammaMatchingTool --- .../Root/TrigEgammaMatchingToolMT.cxx | 29 +++++++++++-------- .../TrigEgammaMatchingToolMT.icc | 5 +++- .../TrigEgammaMonitorAnalysisAlgorithm.cxx | 4 ++- .../src/TrigEgammaMonitorBaseAlgorithm.cxx | 7 +++-- 4 files changed, 28 insertions(+), 17 deletions(-) diff --git a/Trigger/TrigAnalysis/TrigEgammaMatchingTool/Root/TrigEgammaMatchingToolMT.cxx b/Trigger/TrigAnalysis/TrigEgammaMatchingTool/Root/TrigEgammaMatchingToolMT.cxx index e466d736bce8..0b548f63f01d 100644 --- a/Trigger/TrigAnalysis/TrigEgammaMatchingTool/Root/TrigEgammaMatchingToolMT.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaMatchingTool/Root/TrigEgammaMatchingToolMT.cxx @@ -38,20 +38,23 @@ StatusCode TrigEgammaMatchingToolMT::initialize() ATH_CHECK( m_ringerKey.initialize() ); - m_keys[ "Electrons"] = "HLT_egamma_Electrons" ; - m_keys[ "Electrons_GSF"] = "HLT_egamma_Electrons_GSF" ; // gsf - m_keys[ "Electrons_LRT"] = "HLT_egamma_Electrons_LRT" ; // lrt - m_keys[ "Photons"] = "HLT_egamma_Photons" ; + m_keys[ "Electrons"] = "HLT_egamma_Electrons" ; + m_keys[ "Electrons_GSF"] = "HLT_egamma_Electrons_GSF" ; // gsf + m_keys[ "Electrons_LRT"] = "HLT_egamma_Electrons_LRT" ; // lrt + m_keys[ "Photons"] = "HLT_egamma_Photons" ; + // intermediate steps - m_keys[ "PrecisionCalo"] = "HLT_CaloEMClusters" ; - m_keys[ "PrecisionCalo_LRT"] = "HLT_CaloEMClusters_LRT" ; // lrt + m_keys[ "PrecisionCalo_Electron"] = "HLT_CaloEMClusters_Electron"; + m_keys[ "PrecisionCalo_Photon"] = "HLT_CaloEMClusters_Photon"; + m_keys[ "PrecisionCalo_LRT"] = "HLT_CaloEMClusters_LRT" ; // lrt + // Fast steps - m_keys[ "FastElectrons"] = "HLT_FastElectrons" ; - m_keys[ "FastElectrons_LRT"] = "HLT_FastElectrons_LRT" ; // lrt - m_keys[ "FastPhotons"] = "HLT_FastPhotons" ; - m_keys[ "FastCalo"] = "HLT_FastCaloEMClusters" ; + m_keys[ "FastElectrons"] = "HLT_FastElectrons" ; + m_keys[ "FastElectrons_LRT"] = "HLT_FastElectrons_LRT" ; // lrt + m_keys[ "FastPhotons"] = "HLT_FastPhotons" ; + m_keys[ "FastCalo"] = "HLT_FastCaloEMClusters" ; // L1 - m_keys[ "L1Calo"] = "LVL1EmTauRoIs" ; + m_keys[ "L1Calo"] = "LVL1EmTauRoIs" ; return StatusCode::SUCCESS; } @@ -152,8 +155,10 @@ bool TrigEgammaMatchingToolMT::matchHLTCalo(const xAOD::Egamma *eg,const std::st ATH_MSG_DEBUG("Match HLT Calo"); if(boost::contains(trigger,"lrt")){ return closestObject<xAOD::CaloClusterContainer>( eg, dec, trigger, key("PrecisionCalo_LRT"), condition ); + }else if(xAOD::EgammaHelpers::isElectron(eg)){ + return closestObject<xAOD::CaloClusterContainer>( eg, dec, trigger, key("PrecisionCalo_Electron"), condition ); }else{ - return closestObject<xAOD::CaloClusterContainer>( eg, dec, trigger, key("PrecisionCalo"), condition ); + return closestObject<xAOD::CaloClusterContainer>( eg, dec, trigger, key("PrecisionCalo_Photon"), condition ); } } diff --git a/Trigger/TrigAnalysis/TrigEgammaMatchingTool/TrigEgammaMatchingTool/TrigEgammaMatchingToolMT.icc b/Trigger/TrigAnalysis/TrigEgammaMatchingTool/TrigEgammaMatchingTool/TrigEgammaMatchingToolMT.icc index 35793e15f0e3..a3393c4c5353 100644 --- a/Trigger/TrigAnalysis/TrigEgammaMatchingTool/TrigEgammaMatchingTool/TrigEgammaMatchingToolMT.icc +++ b/Trigger/TrigAnalysis/TrigEgammaMatchingTool/TrigEgammaMatchingTool/TrigEgammaMatchingToolMT.icc @@ -173,12 +173,15 @@ const { if(boost::contains(trigger,"lrt")){ return getFeatures<xAOD::CaloClusterContainer>(dec, trigger, key("PrecisionCalo_LRT"), condition ); + }else if(boost::contains(trigger,"g")){ + return getFeatures<xAOD::CaloClusterContainer>(dec, trigger, key("PrecisionCalo_Photon"), condition ); }else{ - return getFeatures<xAOD::CaloClusterContainer>(dec, trigger, key("PrecisionCalo"), condition ); + return getFeatures<xAOD::CaloClusterContainer>(dec, trigger, key("PrecisionCalo_Electron"), condition ); } } + // Electron template<> inline std::vector<TrigCompositeUtils::LinkInfo<xAOD::ElectronContainer>> TrigEgammaMatchingToolMT::getFeatures<xAOD::ElectronContainer>( diff --git a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorAnalysisAlgorithm.cxx b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorAnalysisAlgorithm.cxx index 53cdfa40369b..cf74067d4b6f 100644 --- a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorAnalysisAlgorithm.cxx +++ b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorAnalysisAlgorithm.cxx @@ -380,7 +380,9 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillDistributions( const std::vector< s } // EFCalo { - std::string key = info.lrt? match()->key("PrecisionCalo_LRT") : match()->key("PrecisionCalo"); + std::string key = match()->key("PrecisionCalo_Electron"); + if(info.signature == "Photon") key = match()->key("PrecisionCalo_Photon"); + if(info.lrt) key = match()->key("PrecisionCalo_LRT"); std::vector<const xAOD::CaloCluster* > clus_vec; auto vec = tdt()->features<xAOD::CaloClusterContainer>(trigger,condition,key); diff --git a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorBaseAlgorithm.cxx b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorBaseAlgorithm.cxx index cb22cd2ded1d..6696aec8030c 100644 --- a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorBaseAlgorithm.cxx +++ b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorBaseAlgorithm.cxx @@ -209,10 +209,11 @@ asg::AcceptData TrigEgammaMonitorBaseAlgorithm::setAccept( const TrigCompositeUt if(passedL2){ - // Step 4 - std::string key = match()->key("PrecisionCalo"); - if(info.lrt) key = match()->key("PrecisionCalo_LRT"); + std::string key = match()->key("PrecisionCalo_Electron"); + if(info.signature == "Photon") key = match()->key("PrecisionCalo_Photon"); + if(info.lrt) key = match()->key("PrecisionCalo_LRT"); + passedEFCalo = match()->ancestorPassed<xAOD::CaloClusterContainer>(dec, trigger, key, condition); if(passedEFCalo){ -- GitLab From e619605bae9771468b5216f48b2b7c3651d3d97b Mon Sep 17 00:00:00 2001 From: eegidiop <edmar.egidio.purcino.de.souza@cern.ch> Date: Thu, 20 Jan 2022 22:54:35 +0100 Subject: [PATCH 2/2] Fix access mode in the TrigEgammaMatchingTool interface --- .../Root/TrigEgammaMatchingToolMT.cxx | 10 ++++++++-- .../TrigEgammaMatchingToolMT.icc | 6 +++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Trigger/TrigAnalysis/TrigEgammaMatchingTool/Root/TrigEgammaMatchingToolMT.cxx b/Trigger/TrigAnalysis/TrigEgammaMatchingTool/Root/TrigEgammaMatchingToolMT.cxx index 0b548f63f01d..581b328da49c 100644 --- a/Trigger/TrigAnalysis/TrigEgammaMatchingTool/Root/TrigEgammaMatchingToolMT.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaMatchingTool/Root/TrigEgammaMatchingToolMT.cxx @@ -152,13 +152,19 @@ bool TrigEgammaMatchingToolMT::matchHLTElectron(const xAOD::Electron *eg,const s bool TrigEgammaMatchingToolMT::matchHLTCalo(const xAOD::Egamma *eg,const std::string &trigger, const TrigCompositeUtils::Decision *&dec, unsigned int condition ) const { - ATH_MSG_DEBUG("Match HLT Calo"); + ATH_MSG_DEBUG("Match HLT PrecisionCalo"); if(boost::contains(trigger,"lrt")){ + ATH_MSG_DEBUG("Matched HLT PrecisionCalo LRT"); return closestObject<xAOD::CaloClusterContainer>( eg, dec, trigger, key("PrecisionCalo_LRT"), condition ); }else if(xAOD::EgammaHelpers::isElectron(eg)){ + ATH_MSG_DEBUG("Matched HLT PrecisionCalo Electron"); return closestObject<xAOD::CaloClusterContainer>( eg, dec, trigger, key("PrecisionCalo_Electron"), condition ); - }else{ + }else if(xAOD::EgammaHelpers::isPhoton(eg)){ + ATH_MSG_DEBUG("Matched HLT PrecisionCalo Photon"); return closestObject<xAOD::CaloClusterContainer>( eg, dec, trigger, key("PrecisionCalo_Photon"), condition ); + }else{ + ATH_MSG_DEBUG("Match HLT PrecisionCalo failed!"); + return false; } } diff --git a/Trigger/TrigAnalysis/TrigEgammaMatchingTool/TrigEgammaMatchingTool/TrigEgammaMatchingToolMT.icc b/Trigger/TrigAnalysis/TrigEgammaMatchingTool/TrigEgammaMatchingTool/TrigEgammaMatchingToolMT.icc index a3393c4c5353..f0e9eea5228c 100644 --- a/Trigger/TrigAnalysis/TrigEgammaMatchingTool/TrigEgammaMatchingTool/TrigEgammaMatchingToolMT.icc +++ b/Trigger/TrigAnalysis/TrigEgammaMatchingTool/TrigEgammaMatchingTool/TrigEgammaMatchingToolMT.icc @@ -171,13 +171,17 @@ inline std::vector<TrigCompositeUtils::LinkInfo<xAOD::CaloClusterContainer>> Tri const TrigCompositeUtils::Decision *dec , std::string trigger, unsigned int condition) const { + std::vector<std::string> parts; + boost::split(parts,trigger,boost::is_any_of("_")); + if(boost::contains(trigger,"lrt")){ return getFeatures<xAOD::CaloClusterContainer>(dec, trigger, key("PrecisionCalo_LRT"), condition ); - }else if(boost::contains(trigger,"g")){ + }else if(boost::contains(parts.at(0),"g")){ return getFeatures<xAOD::CaloClusterContainer>(dec, trigger, key("PrecisionCalo_Photon"), condition ); }else{ return getFeatures<xAOD::CaloClusterContainer>(dec, trigger, key("PrecisionCalo_Electron"), condition ); } + } -- GitLab