ATLAS Offline Software
Loading...
Searching...
No Matches
MuJetOverlapTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 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
10// EDM includes
14
15// Columnar includes
18#include "ColumnarJet/JetDef.h"
21
22// Local includes
26
27namespace ORUtils
28{
29
66 class MuJetOverlapTool : public virtual IOverlapTool,
67 public BaseOverlapTool
68 {
69
72
73 public:
74
76 MuJetOverlapTool(const std::string& name);
77
82 virtual StatusCode
85 columnar::EventContextId eventContext) const override;
86
89 virtual StatusCode
92 columnar::EventContextId eventContext) const;
93
94 protected:
95
97 virtual StatusCode initializeDerived() override;
98
99 protected:
100
102 std::optional<std::size_t> getPrimVtxIdx(columnar::EventContextId eventContext) const;
103
105 int getNumTracks(columnar::Particle2Id jet, size_t vtxIdx) const;
106
108 float getSumTrackPt(columnar::Particle2Id jet, size_t vtxIdx) const;
109
110 private:
111
114
116 std::string m_bJetLabel;
117
127
129 std::string m_jetNumTrkDec;
131 std::string m_jetSumTrkPtDec;
132
135
141
150
153
155 std::string m_PVContName;
156
157 // Allow no PVs in the event
159
175 std::unique_ptr<Accessors> m_accessors {std::make_unique<Accessors> (this)};
176
178
181
184
186 std::unique_ptr<IParticleAssociator> m_dRMatchCone1;
188 std::unique_ptr<IParticleAssociator> m_dRMatchCone2;
189
191
192 }; // class MuJetOverlapTool
193
194} // namespace ORUtils
195
196#endif
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
BaseOverlapTool(const std::string &name)
Create proper constructor for Athena.
Interface class for overlap removal tools.
virtual StatusCode initializeDerived() override
Initialize the tool.
int getNumTracks(columnar::Particle2Id jet, size_t vtxIdx) const
Get the number of tracks in a jet w.r.t. requested vertex.
std::unique_ptr< Accessors > m_accessors
std::string m_PVContName
PV Container to use.
bool m_useSlidingDR
Toggle sliding dR overlap removal for removing muons.
float m_innerDR
Inner dR cone within which jets get removed.
int m_numJetTrk
Minimum number of jet tracks to prioritize the jet.
std::unique_ptr< IParticleAssociator > m_dRMatchCone1
Delta-R matcher for the inner cone.
float m_muJetTrkPtRatio
PT ratio threshold for vetoing the jet. Uses sum of jet track PT.
std::optional< std::size_t > getPrimVtxIdx(columnar::EventContextId eventContext) const
Retrieve the primary vertex used to count jet tracks.
bool m_applyRelPt
Toggle PT ratio criteria TODO: rename to m_applyPtRatio.
double m_slidingDRMaxCone
MaxCone, the upper limit of the sliding cone.
float m_muJetPtRatio
PT ratio threshold for vetoing the jet.
std::unique_ptr< IParticleAssociator > m_dRMatchCone2
Delta-R matcher for the outer cone.
std::string m_bJetLabel
Input jet decoration which labels a bjet.
double m_slidingDRC2
C1, the inverse pt factor in sliding dR.
MuJetOverlapTool(const std::string &name)
Create proper constructor for Athena.
virtual StatusCode findOverlaps(columnar::Particle1Range cont1, columnar::Particle2Range cont2, columnar::EventContextId eventContext) const override
Identify overlapping muons and jets.
float getSumTrackPt(columnar::Particle2Id jet, size_t vtxIdx) const
Get the sum trk pt in a jet w.r.t. requested vertex.
columnar::Particle2Accessor< char > m_bJetAcc
BJet helper.
float m_outerDR
Outer dR cone within which muons get removed.
std::string m_jetNumTrkDec
Optional user decoration for jet numTrack of type 'int'.
std::string m_jetSumTrkPtDec
Optional user decoration for jet sumTrackPT of type 'float'.
virtual StatusCode internalFindOverlaps(columnar::Particle1Range muons, columnar::Particle2Range jets, columnar::EventContextId eventContext) const
Identify overlapping muons and jets.
bool m_useRapidity
Calculate deltaR using rapidity.
bool m_useGhostAssociation
Use ghost association in matching to remove jets.
double m_slidingDRC1
C1, the constant offset in sliding dR.
the base class for all columnar components
ObjectId< ContainerId::particle2 > Particle2Id
Definition ParticleDef.h:54
AccessorTemplate< ContainerId::track0, CT, ColumnAccessMode::input, CM > Track0Accessor
Definition TrackDef.h:52
AccessorTemplate< ContainerId::particle2, CT, ColumnAccessMode::input, CM > Particle2Accessor
Definition ParticleDef.h:56
ObjectId< ContainerId::eventContext > EventContextId
ObjectRange< ContainerId::particle2 > Particle2Range
Definition ParticleDef.h:53
AccessorTemplate< ContainerId::vertex, CT, ColumnAccessMode::input, CM > VertexAccessor
Definition TrackDef.h:69
ObjectRange< ContainerId::particle1 > Particle1Range
Definition ParticleDef.h:47
AccessorTemplate< ContainerId::particle1, CT, ColumnAccessMode::input, CM > Particle1Accessor
Definition ParticleDef.h:50
AccessorTemplate< ContainerId::track1, CT, ColumnAccessMode::input, CM > Track1Accessor
Definition TrackDef.h:56
columnar::Particle1Accessor< float > m_muonPtAcc
columnar::Particle2Accessor< int > m_jetSumTrkPtAcc
columnar::VertexAccessor< columnar::RetypeColumn< xAOD::VxType::VertexType, short > > m_vertexTypeAcc
columnar::Particle2Accessor< std::vector< float > > m_jetSumTrkPt500Acc
columnar::Track1Accessor< columnar::ObjectColumn > m_track1Acc
columnar::Particle2Accessor< int > m_jetNumTrkAcc
columnar::Particle2Accessor< float > m_jetPtAcc
columnar::VertexAccessor< columnar::ObjectColumn > m_vtxContainerAcc
columnar::Track0Accessor< columnar::ObjectColumn > m_track0Acc
columnar::Particle2Accessor< std::vector< int > > m_jetNumTrkPt500Acc