diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaAnalysisBaseTool.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaAnalysisBaseTool.cxx index c42b38fa21ef3618a34e322cd22f6dd0650f7879..f8ec0a6d85280c4a644765306e0ae9ff743a1600 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 e645c30bb6523f950e88d3fbf35dc17588cfa861..f908a9d6ecb3d4fe2caae531f0cfc497787e3872 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 bd885310cefba86ec3e87ff0e2957239b53a2caa..725ec003b54722b28a4858483dfd688c5d67ce22 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 22ad1dad5f18ce7ed4d8f8141b4b01fc56e42c99..b1b98a084d9d977831a70e5c78f273cd5114e590 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 097d92f4d3b0ebde2c1c36a81dfc7ab1e2fca7ca..8851771df28cf4d3db5645aec9391abe0e4e6fc0 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 a51655d48417e9fcc539b0ee951d5ba1123a67a6..74ef030332ad7d7cd6432628b31c8a79d88a15e8 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 5c88a8fb88f1ab918df3b11bf4d16c98516334b1..d49c150f44fb2ec69d1e26178e61d0b16d820f97 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 366d3441c265dbbe286b6e097faa9703cf5d98a0..2b201ce53549c6654068388fb981a6ba798fb4f1 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 3c52f9393f9d1765037aca50e420ef364696eff3..e51b28c86e899e8a3b8c7f2878ac26469f7e434e 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 9cf68acb3717aa4655cd365fda3033ded0b314b1..eb2bdcbc309890eff264fc5ae4a289abef0e8a3d 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 5b8abb1c6ae13916e96299d36594bd56fb63ee6f..4a38f6549220a420044e6ee8a70407bc57fa4c0d 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"