ATLAS Offline Software
Loading...
Searching...
No Matches
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// Columnar includes
14
15// Local includes
20
21
22namespace ORUtils
23{
24
34 public asg::AsgTool
35 {
36
39
40 public:
41
43 OverlapRemovalTool(const std::string& name);
44
46 virtual StatusCode initialize() override;
47
51 virtual StatusCode
53 const xAOD::MuonContainer* muons,
54 const xAOD::JetContainer* jets,
55 const xAOD::TauJetContainer* taus = 0,
56 const xAOD::PhotonContainer* photons = 0,
57 const xAOD::JetContainer* fatJets = 0) const override;
58
59 private:
60
62 StatusCode removeOverlap(const ToolHandle<IOverlapTool>& tool,
63 const xAOD::IParticleContainer* cont1,
64 const xAOD::IParticleContainer* cont2) const;
65
66 private:
67
68 //
69 // Configurable properties
70 //
71
73 std::string m_inputLabel;
75 std::string m_outputLabel;
76
80
84
85 //
86 // Helper utilities
87 //
88
90 std::unique_ptr<OverlapDecorationHelper<columnar::ContainerId::particle1>> m_decHelper;
91
92 //
93 // Overlap tool handles
94 //
95
97 ToolHandle<IOverlapTool> m_eleEleORT;
98
100 ToolHandle<IOverlapTool> m_eleMuORT;
101
103 ToolHandle<IOverlapTool> m_eleJetORT;
104
106 ToolHandle<IOverlapTool> m_muJetORT;
107
109 ToolHandle<IOverlapTool> m_tauEleORT;
110
112 ToolHandle<IOverlapTool> m_tauMuORT;
113
115 ToolHandle<IOverlapTool> m_tauJetORT;
116
118 ToolHandle<IOverlapTool> m_phoEleORT;
119
121 ToolHandle<IOverlapTool> m_phoMuORT;
122
124 ToolHandle<IOverlapTool> m_phoJetORT;
125
127 ToolHandle<IOverlapTool> m_eleFatJetORT;
128
130 ToolHandle<IOverlapTool> m_jetFatJetORT;
131
132 }; // class OverlapRemovalTool
133
134} // namespace ORUtils
135
136#endif
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
static Double_t taus
Interface for the overlap removal tool.
ToolHandle< IOverlapTool > m_phoJetORT
Pho-jet overlap handle.
std::unique_ptr< OverlapDecorationHelper< columnar::ContainerId::particle1 > > m_decHelper
Helper used to reset decorations.
std::string m_inputLabel
Input object decoration which specifies which objects to look at.
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.
ToolHandle< IOverlapTool > m_phoEleORT
Pho-ele overlap handle.
ToolHandle< IOverlapTool > m_tauMuORT
Tau-mu overlap handle.
OverlapRemovalTool(const std::string &name)
Create a proper constructor for Athena.
ToolHandle< IOverlapTool > m_tauJetORT
Tau-jet overlap handle.
ToolHandle< IOverlapTool > m_eleMuORT
Ele-mu overlap handle.
ToolHandle< IOverlapTool > m_muJetORT
Mu-jet overlap handle.
bool m_outputPassValue
Toggle the output flag logic.
ToolHandle< IOverlapTool > m_eleEleORT
Ele-ele overlap handle.
bool m_requireExpectedPointers
Require non-null container pointers when expected; i.e., when corresponding overlap tools are configu...
StatusCode removeOverlap(const ToolHandle< IOverlapTool > &tool, const xAOD::IParticleContainer *cont1, const xAOD::IParticleContainer *cont2) const
Use one tool to remove overlaps.
ToolHandle< IOverlapTool > m_eleJetORT
Ele-jet overlap handle.
ToolHandle< IOverlapTool > m_tauEleORT
Tau-ele overlap handle.
std::string m_outputLabel
Output object decoration which specifies overlapping objects.
ToolHandle< IOverlapTool > m_jetFatJetORT
jet-fatjet overlap handle
virtual StatusCode initialize() override
Initialize the tool.
ToolHandle< IOverlapTool > m_phoMuORT
Pho-mu overlap handle.
ToolHandle< IOverlapTool > m_eleFatJetORT
ele-fatjet overlap handle
Base class for the dual-use tool implementation classes.
Definition AsgTool.h:47
PhotonContainer_v1 PhotonContainer
Definition of the current "photon container version".
ElectronContainer_v1 ElectronContainer
Definition of the current "electron container version".
JetContainer_v1 JetContainer
Definition of the current "jet container version".
TauJetContainer_v3 TauJetContainer
Definition of the current "taujet container version".
MuonContainer_v1 MuonContainer
Definition of the current "Muon container version".
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.