ATLAS Offline Software
OverlapRemovalTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ASSOCIATIONUTILS_OVERLAPREMOVALTOOL_H
6 #define ASSOCIATIONUTILS_OVERLAPREMOVALTOOL_H
7 
8 // Framework includes
9 #include "AsgTools/AsgTool.h"
10 #include "AsgTools/ToolHandle.h"
11 
12 // Local includes
17 
18 
19 namespace ORUtils
20 {
21 
30  class OverlapRemovalTool : public virtual IOverlapRemovalTool,
31  public asg::AsgTool
32  {
33 
36 
37  public:
38 
40  OverlapRemovalTool(const std::string& name);
41 
43  virtual StatusCode initialize() override;
44 
48  virtual StatusCode
50  const xAOD::MuonContainer* muons,
51  const xAOD::JetContainer* jets,
52  const xAOD::TauJetContainer* taus = 0,
53  const xAOD::PhotonContainer* photons = 0,
54  const xAOD::JetContainer* fatJets = 0) const override;
55 
56  private:
57 
59  StatusCode removeOverlap(const ToolHandle<IOverlapTool>& tool,
60  const xAOD::IParticleContainer* cont1,
61  const xAOD::IParticleContainer* cont2) const;
62 
63  private:
64 
65  //
66  // Configurable properties
67  //
68 
70  std::string m_inputLabel;
72  std::string m_outputLabel;
73 
77 
81 
82  //
83  // Helper utilities
84  //
85 
87  std::unique_ptr<OverlapDecorationHelper> m_decHelper;
88 
89  //
90  // Overlap tool handles
91  //
92 
94  ToolHandle<IOverlapTool> m_eleEleORT;
95 
97  ToolHandle<IOverlapTool> m_eleMuORT;
98 
100  ToolHandle<IOverlapTool> m_eleJetORT;
101 
103  ToolHandle<IOverlapTool> m_muJetORT;
104 
106  ToolHandle<IOverlapTool> m_tauEleORT;
107 
109  ToolHandle<IOverlapTool> m_tauMuORT;
110 
112  ToolHandle<IOverlapTool> m_tauJetORT;
113 
115  ToolHandle<IOverlapTool> m_phoEleORT;
116 
118  ToolHandle<IOverlapTool> m_phoMuORT;
119 
121  ToolHandle<IOverlapTool> m_phoJetORT;
122 
124  ToolHandle<IOverlapTool> m_eleFatJetORT;
125 
127  ToolHandle<IOverlapTool> m_jetFatJetORT;
128 
129  }; // class OverlapRemovalTool
130 
131 } // namespace ORUtils
132 
133 #endif
ORUtils::OverlapRemovalTool::m_muJetORT
ToolHandle< IOverlapTool > m_muJetORT
Mu-jet overlap handle.
Definition: OverlapRemovalTool.h:103
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
ORUtils::OverlapRemovalTool::m_decHelper
std::unique_ptr< OverlapDecorationHelper > m_decHelper
Helper used to reset decorations.
Definition: OverlapRemovalTool.h:87
ORUtils::OverlapRemovalTool::m_jetFatJetORT
ToolHandle< IOverlapTool > m_jetFatJetORT
jet-fatjet overlap handle
Definition: OverlapRemovalTool.h:127
ORUtils::OverlapRemovalTool::m_outputPassValue
bool m_outputPassValue
Toggle the output flag logic.
Definition: OverlapRemovalTool.h:76
ORUtils::OverlapRemovalTool::OverlapRemovalTool
OverlapRemovalTool(const std::string &name)
Create a proper constructor for Athena.
Definition: OverlapRemovalTool.cxx:16
ORUtils::OverlapRemovalTool
top-level tool for performing overlap removal.
Definition: OverlapRemovalTool.h:32
ORUtils
Definition: AltMuJetOverlapTool.h:20
ORUtils::OverlapRemovalTool::m_tauJetORT
ToolHandle< IOverlapTool > m_tauJetORT
Tau-jet overlap handle.
Definition: OverlapRemovalTool.h:112
ORUtils::OverlapRemovalTool::m_outputLabel
std::string m_outputLabel
Output object decoration which specifies overlapping objects.
Definition: OverlapRemovalTool.h:72
ORUtils::OverlapRemovalTool::m_phoJetORT
ToolHandle< IOverlapTool > m_phoJetORT
Pho-jet overlap handle.
Definition: OverlapRemovalTool.h:121
ORUtils::OverlapRemovalTool::m_tauMuORT
ToolHandle< IOverlapTool > m_tauMuORT
Tau-mu overlap handle.
Definition: OverlapRemovalTool.h:109
ORUtils::OverlapRemovalTool::m_inputLabel
std::string m_inputLabel
Input object decoration which specifies which objects to look at.
Definition: OverlapRemovalTool.h:70
ORUtils::OverlapRemovalTool::m_phoMuORT
ToolHandle< IOverlapTool > m_phoMuORT
Pho-mu overlap handle.
Definition: OverlapRemovalTool.h:118
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ORUtils::OverlapRemovalTool::initialize
virtual StatusCode initialize() override
Initialize the tool.
Definition: OverlapRemovalTool.cxx:51
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
IOverlapRemovalTool.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
AtlCoolConsole.tool
tool
Definition: AtlCoolConsole.py:453
ORUtils::IOverlapRemovalTool
Interface for the overlap removal tool.
Definition: IOverlapRemovalTool.h:28
ORUtils::OverlapRemovalTool::m_eleEleORT
ToolHandle< IOverlapTool > m_eleEleORT
Ele-ele overlap handle.
Definition: OverlapRemovalTool.h:94
ORUtils::OverlapRemovalTool::m_requireExpectedPointers
bool m_requireExpectedPointers
Require non-null container pointers when expected; i.e., when corresponding overlap tools are configu...
Definition: OverlapRemovalTool.h:80
ORUtils::OverlapRemovalTool::removeOverlap
StatusCode removeOverlap(const ToolHandle< IOverlapTool > &tool, const xAOD::IParticleContainer *cont1, const xAOD::IParticleContainer *cont2) const
Use one tool to remove overlaps.
Definition: OverlapRemovalTool.cxx:135
ORUtils::OverlapRemovalTool::m_eleMuORT
ToolHandle< IOverlapTool > m_eleMuORT
Ele-mu overlap handle.
Definition: OverlapRemovalTool.h:97
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
ORUtils::OverlapRemovalTool::m_eleFatJetORT
ToolHandle< IOverlapTool > m_eleFatJetORT
ele-fatjet overlap handle
Definition: OverlapRemovalTool.h:124
ORUtils::OverlapRemovalTool::m_eleJetORT
ToolHandle< IOverlapTool > m_eleJetORT
Ele-jet overlap handle.
Definition: OverlapRemovalTool.h:100
OverlapRemovalDefs.h
ORUtils::OverlapRemovalTool::removeOverlaps
virtual StatusCode removeOverlaps(const xAOD::ElectronContainer *electrons, const xAOD::MuonContainer *muons, const xAOD::JetContainer *jets, const xAOD::TauJetContainer *taus=0, const xAOD::PhotonContainer *photons=0, const xAOD::JetContainer *fatJets=0) const override
Top-level method for performing full overlap-removal.
Definition: OverlapRemovalTool.cxx:84
defineDB.jets
list jets
Definition: JetTagCalibration/share/defineDB.py:24
ToolHandle.h
ORUtils::OverlapRemovalTool::m_phoEleORT
ToolHandle< IOverlapTool > m_phoEleORT
Pho-ele overlap handle.
Definition: OverlapRemovalTool.h:115
AsgTool.h
ORUtils::OverlapRemovalTool::m_tauEleORT
ToolHandle< IOverlapTool > m_tauEleORT
Tau-ele overlap handle.
Definition: OverlapRemovalTool.h:106
InDetDD::electrons
@ electrons
Definition: InDetDD_Defs.h:17
OverlapDecorationHelper.h
IOverlapTool.h