From d1d29746456da90e9983a8f9eec10edda68062eb Mon Sep 17 00:00:00 2001 From: Ryan Mackenzie White <ryan.white@cern.ch> Date: Wed, 19 Apr 2017 23:31:26 +0200 Subject: [PATCH] fix for readonlyholders and missing containers --- .../Root/TrigEgammaAnalysisBaseTool.cxx | 17 ++++++++++++++--- .../Root/TrigEgammaNavAnalysisTool.cxx | 15 +++++++++++++++ .../Root/TrigEgammaNavBaseTool.cxx | 1 + .../Root/TrigEgammaNavTPAnalysisTool.cxx | 13 +++++++++++++ .../Root/TrigEgammaNavTPBaseTool.cxx | 1 + .../Root/TrigEgammaPlotTool.cxx | 4 ++-- .../Root/TrigEgammaResolutionTool.cxx | 15 +++++++++------ .../ITrigEgammaAnalysisBaseTool.h | 2 ++ .../TrigEgammaAnalysisBaseTool.h | 17 ++++++++++++++--- .../TrigEgammaNavBaseTool.h | 2 ++ .../TrigEgammaNavTPBaseTool.h | 2 ++ 11 files changed, 75 insertions(+), 14 deletions(-) diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaAnalysisBaseTool.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaAnalysisBaseTool.cxx index c42b38fa21ef..f8ec0a6d8528 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaAnalysisBaseTool.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaAnalysisBaseTool.cxx @@ -85,6 +85,8 @@ TrigEgammaAnalysisBaseTool( const std::string& myname ) m_nPVertex=0; m_offmu=0.; m_onlmu=0.; + m_sgContainsRnn=false; + m_sgContainsTrigPhoton=false; } void TrigEgammaAnalysisBaseTool::updateDetail(Property& /*p*/){ @@ -540,9 +542,16 @@ void TrigEgammaAnalysisBaseTool::setAccept(const HLT::TriggerElement *te,const T passedL1Calo = ancestorPassed<xAOD::EmTauRoI>(te); bool hasRnn = false; - if(getFeature<xAOD::TrigRNNOutput>(te)){ - hasRnn=true; + + ATH_MSG_DEBUG("Rnn container " << getSGContainsRnn()); + ATH_MSG_DEBUG("TrigPhotonContainer " << getSGContainsTrigPhoton()); + + if(getSGContainsRnn()){ + if(getFeature<xAOD::TrigRNNOutput>(te)){ + hasRnn=true; + } } + if(!info.trigL1){ // HLT item get full decision ATH_MSG_DEBUG("Check for active features: TrigEMCluster,CaloClusterContainer"); @@ -563,7 +572,9 @@ void TrigEgammaAnalysisBaseTool::setAccept(const HLT::TriggerElement *te,const T } else if(info.trigType == "photon"){ ATH_MSG_DEBUG("Check for active features: TrigPhoton, PhotonContainer"); - passedL2=ancestorPassed<xAOD::TrigPhotonContainer>(te); + if(getSGContainsTrigPhoton()){ + passedL2=ancestorPassed<xAOD::TrigPhotonContainer>(te); + } passedEF = ancestorPassed<xAOD::PhotonContainer>(te); passedEFTrk=true;// Assume true for photons } diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavAnalysisTool.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavAnalysisTool.cxx index e645c30bb652..f908a9d6ecb3 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavAnalysisTool.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavAnalysisTool.cxx @@ -79,6 +79,21 @@ StatusCode TrigEgammaNavAnalysisTool::childExecute(){ ATH_MSG_DEBUG("Fails EventWise selection"); return StatusCode::SUCCESS; //return nicely } + // Check for Rnn container in SG + if(m_storeGate->contains<xAOD::TrigRNNOutputContainer>("HLT_xAOD__TrigRNNOutputContainer_TrigRingerNeuralFex")){ + ATH_MSG_DEBUG("Rnn container in SG "); + setSGContainsRnn(true); + } + if(m_storeGate->contains<xAOD::TrigPhotonContainer>("HLT_xAOD__TrigPhotonContainer_L2PhotonFex")){ + ATH_MSG_DEBUG("TrigPhotonContainer in SG "); + setSGContainsTrigPhoton(true); + } + ATH_MSG_DEBUG("Rnn container in SG " << getSGContainsRnn()); + ATH_MSG_DEBUG("TrigPhotonContainer in SG " << getSGContainsTrigPhoton()); + for( const auto& tool : m_tools) { + tool->setSGContainsRnn(getSGContainsRnn()); + tool->setSGContainsTrigPhoton(getSGContainsTrigPhoton()); + } // Check HLTResult if(tdt()->ExperimentalAndExpertMethods()->isHLTTruncated()){ diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavBaseTool.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavBaseTool.cxx index bd885310cefb..725ec003b547 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavBaseTool.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavBaseTool.cxx @@ -136,6 +136,7 @@ bool TrigEgammaNavBaseTool::EventWiseSelection( ){ //Calculate number of vertex TrigEgammaAnalysisBaseTool::calculatePileupPrimaryVertex(); + return true; } diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPAnalysisTool.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPAnalysisTool.cxx index 22ad1dad5f18..b1b98a084d9d 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPAnalysisTool.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPAnalysisTool.cxx @@ -136,6 +136,19 @@ StatusCode TrigEgammaNavTPAnalysisTool::childExecute() ATH_MSG_DEBUG("Fails EventWise selection"); return StatusCode::SUCCESS; } + // Check for Rnn container in SG + if(m_storeGate->contains<xAOD::TrigRNNOutputContainer>("HLT_xAOD__TrigRNNOutputContainer_TrigRingerNeuralFex")){ + setSGContainsRnn(true); + } + if(m_storeGate->contains<xAOD::TrigPhotonContainer>("HLT_xAOD__TrigPhotonContainer_L2PhotonFex")){ + setSGContainsTrigPhoton(true); + } + ATH_MSG_DEBUG("Rnn container in SG " << getSGContainsRnn()); + ATH_MSG_DEBUG("TrigPhotonContainer in SG " << getSGContainsTrigPhoton()); + for( const auto& tool : m_tools) { + tool->setSGContainsRnn(getSGContainsRnn()); + tool->setSGContainsTrigPhoton(getSGContainsTrigPhoton()); + } // Event Wise Selection (independent of the required signatures) hist1(m_anatype+"_CutCounter")->Fill("EventWise",1); // Select TP Pairs diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPBaseTool.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPBaseTool.cxx index 097d92f4d3b0..8851771df28c 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPBaseTool.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPBaseTool.cxx @@ -175,6 +175,7 @@ bool TrigEgammaNavTPBaseTool::EventWiseSelection(){ if ( !MinimalTriggerRequirement() ) return false; hist1(m_anatype+"_CutCounter")->Fill("PassTrigger",1); + return true; } diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaPlotTool.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaPlotTool.cxx index a51655d48417..74ef030332ad 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaPlotTool.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaPlotTool.cxx @@ -202,8 +202,8 @@ void TrigEgammaPlotTool::setBinning(){ m_defaultEtabins.insert(m_defaultEtabins.end(), &default_eta_bins[0], &default_eta_bins[m_ndefaultEtabins+1]); m_coarseEtbins.insert(m_coarseEtbins.end(), &coarse_et_bins[0], &coarse_et_bins[m_ncoarseEtbins+1]); m_coarseEtabins.insert(m_coarseEtabins.end(), &coarse_eta_bins[0], &coarse_eta_bins[m_ncoarseEtabins+1]); - m_minBin_ringer.insert(m_minBin_ringer.end(), &minBin_ringer[0], &minBin_ringer[100+1]); - m_maxBin_ringer.insert(m_maxBin_ringer.end(), &maxBin_ringer[0], &maxBin_ringer[100+1]); + m_minBin_ringer.insert(m_minBin_ringer.end(), &minBin_ringer[0], &minBin_ringer[100]); + m_maxBin_ringer.insert(m_maxBin_ringer.end(), &maxBin_ringer[0], &maxBin_ringer[100]); } StatusCode TrigEgammaPlotTool::book(std::map<std::string,TrigInfo> trigInfo){ diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaResolutionTool.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaResolutionTool.cxx index 5c88a8fb88f1..d49c150f44fb 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaResolutionTool.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaResolutionTool.cxx @@ -144,14 +144,17 @@ void TrigEgammaResolutionTool::resolutionElectron(const std::string basePath,std void TrigEgammaResolutionTool::resolutionL2Photon(const std::string dir,std::pair< const xAOD::Egamma*,const HLT::TriggerElement*> pairObj){ cd(dir); + ATH_MSG_DEBUG("L2 Photon Resolution"); float dRmax = 100; const xAOD::TrigPhoton *phL2 = nullptr; - if(pairObj.second){ - if(ancestorPassed<xAOD::TrigPhotonContainer>(pairObj.second)) - phL2=closestObject<xAOD::TrigPhoton,xAOD::TrigPhotonContainer>(pairObj,dRmax); - if(phL2){ - if(dRmax < 0.05){ - //Do something here + if(getSGContainsTrigPhoton()){ + if(pairObj.second){ + if(ancestorPassed<xAOD::TrigPhotonContainer>(pairObj.second)) + phL2=closestObject<xAOD::TrigPhoton,xAOD::TrigPhotonContainer>(pairObj,dRmax); + if(phL2){ + if(dRmax < 0.05){ + //Do something here + } } } } diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/ITrigEgammaAnalysisBaseTool.h b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/ITrigEgammaAnalysisBaseTool.h index 366d3441c265..2b201ce53549 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/ITrigEgammaAnalysisBaseTool.h +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/ITrigEgammaAnalysisBaseTool.h @@ -42,6 +42,8 @@ public: virtual void setEmulationTool(ToolHandle<Trig::ITrigEgammaEmulationTool>)=0; virtual void setAvgMu(const float, const float)=0; virtual void setPVertex(const float, const float)=0; + virtual void setSGContainsRnn(bool)=0; + virtual void setSGContainsTrigPhoton(bool)=0; virtual StatusCode childInitialize(){return StatusCode::SUCCESS;}; virtual StatusCode childBook(){return StatusCode::SUCCESS;}; diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaAnalysisBaseTool.h b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaAnalysisBaseTool.h index 3c52f9393f9d..e51b28c86e89 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaAnalysisBaseTool.h +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaAnalysisBaseTool.h @@ -26,6 +26,8 @@ #include "xAODEgamma/ElectronAuxContainer.h" #include "xAODTrigRinger/TrigRingerRings.h" #include "xAODTrigRinger/TrigRingerRingsContainer.h" +#include "xAODTrigRinger/TrigRNNOutput.h" +#include "xAODTrigRinger/TrigRNNOutputContainer.h" #include "xAODTracking/TrackParticleContainer.h" #include "xAODTrigger/TrigPassBits.h" #include "xAODEgamma/PhotonAuxContainer.h" @@ -70,7 +72,9 @@ public: 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 - + void setSGContainsRnn(bool contains) {m_sgContainsRnn=contains;} + void setSGContainsTrigPhoton(bool contains) {m_sgContainsTrigPhoton=contains;} + // Set current MonGroup void cd(const std::string &dir); // Accessor members @@ -111,7 +115,10 @@ private: float m_offmu; float m_nGoodVertex; float m_nPVertex; - + + /*! Hook to check for RNN features in SG */ + bool m_sgContainsRnn; + bool m_sgContainsTrigPhoton; // Properties ToolHandle<Trig::TrigDecisionTool> m_trigdec; ToolHandle<Trig::ITrigEgammaMatchingTool> m_matchTool; @@ -168,7 +175,11 @@ protected: float getNPVtx(){return m_nPVertex;} float getNGoodVertex(){return m_nGoodVertex;} - /* trig rings and offline rings helper method for feature extraction from xaod */ + /* Protection for Holders not in AOD */ + bool getSGContainsRnn() { return m_sgContainsRnn;} + bool getSGContainsTrigPhoton() { return m_sgContainsTrigPhoton;} + + /* trig rings and offline rings helper method for feature extraction from xaod */ bool getCaloRings( const xAOD::Electron *, std::vector<float> & ); bool getTrigCaloRings( const xAOD::TrigEMCluster *, std::vector<float> & ); void parseCaloRingsLayers( unsigned layer, unsigned &minRing, unsigned &maxRing, std::string &caloLayerName); diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaNavBaseTool.h b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaNavBaseTool.h index 9cf68acb3717..eb2bdcbc3098 100755 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaNavBaseTool.h +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaNavBaseTool.h @@ -26,6 +26,8 @@ #include "xAODTracking/TrackParticleContainer.h" #include "xAODTracking/TrackParticleAuxContainer.h" #include "xAODTrigCalo/TrigEMCluster.h" +#include "xAODTrigRinger/TrigRNNOutput.h" +#include "xAODTrigRinger/TrigRNNOutputContainer.h" #include "xAODCaloEvent/CaloClusterContainer.h" #include "xAODCaloEvent/CaloClusterAuxContainer.h" #include "xAODJet/JetContainer.h" diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaNavTPBaseTool.h b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaNavTPBaseTool.h index 5b8abb1c6ae1..4a38f6549220 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaNavTPBaseTool.h +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaNavTPBaseTool.h @@ -25,6 +25,8 @@ #include "xAODTracking/TrackParticleContainer.h" #include "xAODTracking/TrackParticleAuxContainer.h" #include "xAODTrigCalo/TrigEMCluster.h" +#include "xAODTrigRinger/TrigRNNOutput.h" +#include "xAODTrigRinger/TrigRNNOutputContainer.h" #include "xAODCaloEvent/CaloClusterContainer.h" #include "xAODCaloEvent/CaloClusterAuxContainer.h" #include "xAODJet/JetContainer.h" -- GitLab