diff --git a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/LongLivedParticleDPDMaker/EmergingJetsFilterTool.h b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/LongLivedParticleDPDMaker/EmergingJetsFilterTool.h index 85002714e31a398985daa9c693e4429736ad7e1c..46abdd575e03c36ddce84a2571ed265a4376c95c 100644 --- a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/LongLivedParticleDPDMaker/EmergingJetsFilterTool.h +++ b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/LongLivedParticleDPDMaker/EmergingJetsFilterTool.h @@ -17,6 +17,8 @@ // DerivationFramework includes #include "DerivationFrameworkInterfaces/ISkimmingTool.h" +#include "xAODJet/JetContainer.h" +#include "StoreGate/ReadHandleKey.h" namespace DerivationFramework { @@ -47,10 +49,10 @@ namespace DerivationFramework { private: ToolHandle< Trig::TrigDecisionTool > m_tdt; std::vector< std::string > m_triggers; - mutable unsigned int m_ntot; - mutable unsigned int m_npass; - mutable unsigned int m_nptpass; - std::string m_jetSGKey; + mutable std::atomic<unsigned int> m_ntot; + mutable std::atomic<unsigned int> m_npass; + mutable std::atomic<unsigned int> m_nptpass; + SG::ReadHandleKey<xAOD::JetContainer> m_jetSGKey { this, "JetContainerKey", "AntiKt4EMTopoJets", ""}; double m_ptCut; double m_etaCut; diff --git a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/src/EmergingJetsFilterTool.cxx b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/src/EmergingJetsFilterTool.cxx index 1cc85fcf3733e3c245a36c6cb7d9cc525da0736f..8070ece17415e6dd231b4a084161f95ada6cc830 100644 --- a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/src/EmergingJetsFilterTool.cxx +++ b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/src/EmergingJetsFilterTool.cxx @@ -9,7 +9,6 @@ #include "LongLivedParticleDPDMaker/EmergingJetsFilterTool.h" #include <vector> #include <string> -#include "xAODJet/JetContainer.h" #include "xAODTracking/TrackParticleContainer.h" #include "TrigDecisionTool/ChainGroup.h" @@ -25,7 +24,6 @@ DerivationFramework::EmergingJetsFilterTool::EmergingJetsFilterTool( const std:: m_ntot(0), m_npass(0), m_nptpass(0), - m_jetSGKey("AntiKt4EMTopoJets"), m_ptCut(100000.0), m_etaCut(2.5), m_nJetsRequired(4) @@ -33,7 +31,6 @@ DerivationFramework::EmergingJetsFilterTool::EmergingJetsFilterTool( const std:: declareInterface<DerivationFramework::ISkimmingTool>(this); declareProperty("TrigDecisionTool", m_tdt, "Tool to access the trigger decision"); declareProperty("Triggers", m_triggers = std::vector< std::string >()); - declareProperty("JetContainerKey", m_jetSGKey); declareProperty("JetPtCut", m_ptCut); declareProperty("JetEtaCut", m_etaCut); declareProperty("nJetsRequired", m_nJetsRequired); @@ -53,6 +50,7 @@ StatusCode DerivationFramework::EmergingJetsFilterTool::initialize() return StatusCode::FAILURE; } ATH_MSG_INFO("Retrieved tool: " << m_tdt); + ATH_CHECK(m_jetSGKey.initialize()); return StatusCode::SUCCESS; @@ -91,9 +89,8 @@ bool DerivationFramework::EmergingJetsFilterTool::eventPassesFilter() const // access jet container - const xAOD::JetContainer* jets(0); - StatusCode sc = evtStore()->retrieve(jets,m_jetSGKey); - if( sc.isFailure() || !jets ){ + SG::ReadHandle<xAOD::JetContainer> jets(m_jetSGKey); + if( !jets.isValid() ) { msg(MSG::WARNING) << "No Jet container found, will skip this event" << endmsg; return false; }