ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
AnalysisCommon
AssociationUtils
AssociationUtils
MuJetOverlapTool.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef ASSOCIATIONUTILS_MUJETOVERLAPTOOL_H
6
#define ASSOCIATIONUTILS_MUJETOVERLAPTOOL_H
7
8
// Framework includes
9
#include "
AsgDataHandles/ReadHandleKey.h
"
10
11
// EDM includes
12
#include "
xAODMuon/MuonContainer.h
"
13
#include "
xAODJet/JetContainer.h
"
14
#include "
xAODTracking/VertexContainer.h
"
15
16
// Columnar includes
17
#include "
ColumnarCore/ObjectColumn.h
"
18
#include "
ColumnarCore/VectorColumn.h
"
19
#include "
ColumnarJet/JetDef.h
"
20
#include "
ColumnarMuon/MuonDef.h
"
21
#include "
ColumnarTracking/TrackDef.h
"
22
23
// Local includes
24
#include "
AssociationUtils/IOverlapTool.h
"
25
#include "
AssociationUtils/BaseOverlapTool.h
"
26
#include "
AssociationUtils/IObjectAssociator.h
"
27
#include "
AssociationUtils/FEMatcher.h
"
28
29
namespace
ADD_CMODE(ORUtils)
30
{
31
68
class
MuJetOverlapTool
:
public
virtual
IOverlapTool
,
69
public
BaseOverlapTool
70
{
71
73
ASG_TOOL_CLASS
(
MuJetOverlapTool
,
IOverlapTool
)
74
75
public
:
76
78
MuJetOverlapTool
(
const
std::string& name);
79
84
virtual
StatusCode
85
findOverlaps(
columnar::Particle1Range
cont1,
86
columnar::Particle2Range
cont2,
87
columnar::EventContextId
eventContext)
const override
;
88
91
virtual
StatusCode
92
internalFindOverlaps(
columnar::Particle1Range
muons,
93
columnar::Particle2Range
jets,
94
columnar::EventContextId
eventContext)
const
;
95
96
protected
:
97
99
virtual
StatusCode initializeDerived()
override
;
100
101
protected
:
102
104
std::optional<std::size_t> getPrimVtxIdx(
columnar::EventContextId
eventContext)
const
;
105
107
int
getNumTracks(
columnar::Particle2Id
jet
,
size_t
vtxIdx)
const
;
108
110
float
getSumTrackPt(
columnar::Particle2Id
jet
,
size_t
vtxIdx)
const
;
111
112
private
:
113
116
118
std::string m_bJetLabel;
119
121
int
m_numJetTrk;
124
bool
m_applyRelPt;
126
float
m_muJetPtRatio;
128
float
m_muJetTrkPtRatio;
129
131
std::string m_jetNumTrkDec;
133
std::string m_jetSumTrkPtDec;
134
136
bool
m_useGhostAssociation;
137
139
float
m_innerDR;
142
float
m_outerDR;
143
145
bool
m_useSlidingDR;
147
double
m_slidingDRC1;
149
double
m_slidingDRC2;
151
double
m_slidingDRMaxCone;
152
154
bool
m_useRapidity;
155
157
bool
m_useFEOR;
158
160
std::string m_PVContName;
161
162
// Allow no PVs in the event
163
bool
m_allowNoPV;
164
166
struct
Accessors final :
columnar::ColumnarTool
<>
167
{
168
columnar::Track0Accessor<columnar::ObjectColumn>
m_track0Acc {*
this
,
"InDetTrackParticles"
};
169
columnar::Track1Accessor<columnar::ObjectColumn>
m_track1Acc {*
this
,
"InDetForwardTrackParticles"
};
170
columnar::Particle1Accessor<float>
m_muonPtAcc {*
this
,
"pt"
};
171
columnar::Particle2Accessor<float>
m_jetPtAcc {*
this
,
"pt"
};
172
columnar::Particle2Accessor<int>
m_jetNumTrkAcc;
173
columnar::Particle2Accessor< std::vector<int>
> m_jetNumTrkPt500Acc;
174
columnar::Particle2Accessor<int>
m_jetSumTrkPtAcc;
175
columnar::Particle2Accessor< std::vector<float>
> m_jetSumTrkPt500Acc;
176
columnar::VertexAccessor<columnar::ObjectColumn>
m_vtxContainerAcc;
177
columnar::VertexAccessor<columnar::RetypeColumn<xAOD::VxType::VertexType,short>
> m_vertexTypeAcc {*
this
,
"vertexType"
};
178
using
ColumnarTool::ColumnarTool;
179
};
180
std::unique_ptr<Accessors> m_accessors {std::make_unique<Accessors> (
this
)};
181
182
SG::ReadHandleKey<xAOD::MissingETAssociationMap>
m_feMapKey{
183
this
,
"FEAssociationMap"
,
"FEAssociationMap"
,
"Flow element association map"
184
};
185
187
190
192
columnar::Particle2Accessor<char>
m_bJetAcc;
193
195
std::unique_ptr<IParticleAssociator> m_dRMatchCone1;
197
std::unique_ptr<IParticleAssociator> m_dRMatchCone2;
198
// Flow element matcher
199
std::unique_ptr<FEMatcher> m_FEMatcher;
200
202
203
};
// class MuJetOverlapTool
204
205
}
// namespace ADD_CMODE(ORUtils)
206
207
#endif
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition
AsgToolMacros.h:68
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
BaseOverlapTool.h
FEMatcher.h
IObjectAssociator.h
IOverlapTool.h
JetContainer.h
JetDef.h
MuonContainer.h
MuonDef.h
ObjectColumn.h
TrackDef.h
VectorColumn.h
VertexContainer.h
BaseOverlapTool
Definition
BaseOverlapTool.h:28
IOverlapTool
Definition
IOverlapTool.h:19
MuJetOverlapTool
Definition
MuJetOverlapTool.h:29
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition
StoreGate/StoreGate/ReadHandleKey.h:40
columnar::ColumnarTool
the base class for all columnar components
Definition
ColumnAccessorDataArray.h:17
columnar::Particle1Accessor
AccessorTemplate< Particle1Def, CT, ColumnAccessMode::input, CM > Particle1Accessor
Definition
ParticleDef.h:47
columnar::Track0Accessor
AccessorTemplate< Track0Def, CT, ColumnAccessMode::input, CM > Track0Accessor
Definition
TrackDef.h:49
columnar::VertexAccessor
AccessorTemplate< VertexDef, CT, ColumnAccessMode::input, CM > VertexAccessor
Definition
TrackDef.h:66
columnar::EventContextId
ObjectId< EventContextDef > EventContextId
Definition
ContainerId.h:212
columnar::Particle2Accessor
AccessorTemplate< Particle2Def, CT, ColumnAccessMode::input, CM > Particle2Accessor
Definition
ParticleDef.h:53
columnar::Track1Accessor
AccessorTemplate< Track1Def, CT, ColumnAccessMode::input, CM > Track1Accessor
Definition
TrackDef.h:53
columnar::Particle2Range
ObjectRange< Particle2Def > Particle2Range
Definition
ParticleDef.h:50
columnar::Particle1Range
ObjectRange< Particle1Def > Particle1Range
Definition
ParticleDef.h:44
columnar::Particle2Id
ObjectId< Particle2Def > Particle2Id
Definition
ParticleDef.h:51
jet
Definition
JetCalibTools_PlotJESFactors.cxx:23
Generated on
for ATLAS Offline Software by
1.17.0