ATLAS Offline Software
Loading...
Searching...
No Matches
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
10
11// EDM includes
15
16// Columnar includes
19#include "ColumnarJet/JetDef.h"
22
23// Local includes
28
29namespace ADD_CMODE(ORUtils)
30{
31
68 class MuJetOverlapTool : public virtual IOverlapTool,
69 public BaseOverlapTool
70 {
71
74
75 public:
76
78 MuJetOverlapTool(const std::string& name);
79
84 virtual StatusCode
85 findOverlaps(columnar::Particle1Range cont1,
87 columnar::EventContextId eventContext) const override;
88
91 virtual StatusCode
92 internalFindOverlaps(columnar::Particle1Range muons,
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"};
174 columnar::Particle2Accessor<int> m_jetSumTrkPtAcc;
178 using ColumnarTool::ColumnarTool;
179 };
180 std::unique_ptr<Accessors> m_accessors {std::make_unique<Accessors> (this)};
181
183 this, "FEAssociationMap", "FEAssociationMap", "Flow element association map"
184 };
185
187
190
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
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a ReadHandle is made.
the base class for all columnar components
AccessorTemplate< Particle1Def, CT, ColumnAccessMode::input, CM > Particle1Accessor
Definition ParticleDef.h:47
AccessorTemplate< Track0Def, CT, ColumnAccessMode::input, CM > Track0Accessor
Definition TrackDef.h:49
AccessorTemplate< VertexDef, CT, ColumnAccessMode::input, CM > VertexAccessor
Definition TrackDef.h:66
ObjectId< EventContextDef > EventContextId
AccessorTemplate< Particle2Def, CT, ColumnAccessMode::input, CM > Particle2Accessor
Definition ParticleDef.h:53
AccessorTemplate< Track1Def, CT, ColumnAccessMode::input, CM > Track1Accessor
Definition TrackDef.h:53
ObjectRange< Particle2Def > Particle2Range
Definition ParticleDef.h:50
ObjectRange< Particle1Def > Particle1Range
Definition ParticleDef.h:44
ObjectId< Particle2Def > Particle2Id
Definition ParticleDef.h:51