ATLAS Offline Software
R3IParticleRetrievalTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TriggerMatchingTool_R3IParticleRetrievalTool_H
6 #define TriggerMatchingTool_R3IParticleRetrievalTool_H
7 
8 // Framework includes
9 #include "AsgTools/AsgTool.h"
10 #include "AsgTools/ToolHandle.h"
11 
14 
15 #include <set>
16 #include <mutex>
17 
18 namespace Trig
19 {
20  class R3IParticleRetrievalTool final : public virtual IIParticleRetrievalTool,
21  public asg::AsgTool
22  {
24  public:
26  R3IParticleRetrievalTool(const std::string &name);
27 
29  virtual ~R3IParticleRetrievalTool() override;
30 
32  virtual StatusCode initialize() override;
33 
45  std::vector<std::vector<const xAOD::IParticle *>> &combinations,
46  const std::string &chain,
47  bool rerun = false) const override;
48 
49  private:
50  // Properties
52  ToolHandle<Trig::TrigDecisionTool> m_tdt{"Trig::TrigDecisionTool/TrigDecisionTool"};
54  mutable std::set<std::string> m_warnedChains ATLAS_THREAD_SAFE;
57  }; //> end class R3IParticleRetrievalTool
58 } // namespace Trig
59 
60 #endif //> !TriggerMatchingTool_R3IParticleRetrievalTool_H
Trig::R3IParticleRetrievalTool::R3IParticleRetrievalTool
R3IParticleRetrievalTool(const std::string &name)
Standard constructor.
Definition: R3IParticleRetrievalTool.cxx:11
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
runLayerRecalibration.chain
chain
Definition: runLayerRecalibration.py:175
Trig::R3IParticleRetrievalTool::~R3IParticleRetrievalTool
virtual ~R3IParticleRetrievalTool() override
Destructor.
Definition: R3IParticleRetrievalTool.cxx:17
Trig
The common trigger namespace for trigger analysis tools.
Definition: CaloTowerVecMon.h:44
Trig::R3IParticleRetrievalTool::m_tdt
ToolHandle< Trig::TrigDecisionTool > m_tdt
The TrigDecisionTool that will be used to get the navigation.
Definition: R3IParticleRetrievalTool.h:52
BeamSpot::mutex
std::mutex mutex
Definition: InDetBeamSpotVertex.cxx:18
TrigDecisionTool.h
Trig::R3IParticleRetrievalTool::ATLAS_THREAD_SAFE
std::set< std::string > m_warnedChains ATLAS_THREAD_SAFE
Chains that we have warned about.
Definition: R3IParticleRetrievalTool.h:54
Trig::R3IParticleRetrievalTool
Definition: R3IParticleRetrievalTool.h:22
Trig::R3IParticleRetrievalTool::m_warnedChainsMutex
std::mutex m_warnedChainsMutex
mutex to protect that set
Definition: R3IParticleRetrievalTool.h:56
Trig::IIParticleRetrievalTool
Definition: IIParticleRetrievalTool.h:15
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Trig::R3IParticleRetrievalTool::retrieveParticles
virtual StatusCode retrieveParticles(std::vector< std::vector< const xAOD::IParticle * >> &combinations, const std::string &chain, bool rerun=false) const override
Retrieve the particles that caused this trigger to fire.
Definition: R3IParticleRetrievalTool.cxx:26
IIParticleRetrievalTool.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
python.combo.combinations
def combinations(items, n)
Definition: combo.py:85
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
ToolHandle.h
AsgTool.h
Trig::R3IParticleRetrievalTool::initialize
virtual StatusCode initialize() override
Initialise the tool.
Definition: R3IParticleRetrievalTool.cxx:19