ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
AnalysisCommon
AssociationUtils
AssociationUtils
EleMuSharedTrkOverlapTool.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef ASSOCIATIONUTILS_SHAREDTRKOVERLAPTOOL_H
6
#define ASSOCIATIONUTILS_SHAREDTRKOVERLAPTOOL_H
7
8
// Framework includes
9
#include "
AsgTools/AsgTool.h
"
10
11
// EDM includes
12
#include "
xAODEgamma/ElectronContainer.h
"
13
#include "
xAODMuon/MuonContainer.h
"
14
#include "
ColumnarEgamma/EgammaDef.h
"
15
#include "
ColumnarMuon/MuonDef.h
"
16
17
// Columnar includes
18
#include "
ColumnarCore/LinkColumn.h
"
19
#include "
ColumnarTracking/TrackDef.h
"
20
#include "
ColumnarVariant/VariantDef.h
"
21
#include "
ColumnarVariant/VariantLinkColumn.h
"
22
23
// Local includes
24
#include "
AssociationUtils/IOverlapTool.h
"
25
#include "
AssociationUtils/BaseOverlapTool.h
"
26
#include "
AssociationUtils/DeltaRMatcher.h
"
27
28
namespace
ORUtils
29
{
30
46
class
EleMuSharedTrkOverlapTool
:
public
virtual
IOverlapTool
,
47
public
BaseOverlapTool
48
{
49
51
ASG_TOOL_CLASS
(
EleMuSharedTrkOverlapTool
,
IOverlapTool
)
52
53
public
:
54
56
EleMuSharedTrkOverlapTool
(
const
std::string& name);
57
60
virtual
StatusCode
61
findOverlaps
(
columnar::Particle1Range
cont1,
62
columnar::Particle2Range
cont2,
63
columnar::EventContextId
eventContext)
const override
;
64
66
StatusCode
67
internalFindOverlaps
(
columnar::Particle1Range
electrons,
68
columnar::Particle2Range
muons)
const
;
69
70
protected
:
71
73
virtual
StatusCode
initializeDerived
()
override
;
74
75
private
:
76
77
//
78
// Configurable properties
79
//
80
82
bool
m_removeCaloMuons
;
83
85
bool
m_useDRMatching
;
87
float
m_maxDR
;
89
bool
m_useRapidity
;
90
91
//
92
// Utilities
93
//
94
96
using
MyTrackDef
=
columnar::VariantContainerId<columnar::Track0Def,columnar::Track0Def, columnar::Track1Def>
;
97
99
struct
Accessors
final :
columnar::ColumnarTool
<>
100
{
101
columnar::Track0Accessor<columnar::ObjectColumn>
m_track0Acc
{*
this
,
"InDetTrackParticles"
};
102
columnar::Track1Accessor<columnar::ObjectColumn>
m_track1Acc
{*
this
,
"InDetForwardTrackParticles"
};
103
columnar::Track2Accessor<columnar::ObjectColumn>
m_track2Acc
{*
this
,
"GSFTrackParticles"
};
104
columnar::Particle1Accessor<std::vector<columnar::OptTrack2Id>
>
m_eleTrackAcc
{*
this
,
"trackParticleLinks"
};
105
columnar::Particle2Accessor<columnar::ObjectLink<MyTrackDef>
>
m_muonTrkAcc
{*
this
,
"inDetTrackParticleLink"
};
106
columnar::Particle2Accessor<columnar::RetypeColumn<xAOD::Muon::MuonType,std::uint16_t>
>
m_muonTypeAcc
{*
this
,
"muonType"
};
107
columnar::Track2Accessor<columnar::ObjectLink<MyTrackDef>
>
m_gsfOriginalTrackAcc
{*
this
,
"originalTrackParticle"
};
108
using
ColumnarTool::ColumnarTool;
109
};
110
std::unique_ptr<Accessors>
m_accessors
{std::make_unique<Accessors> (
this
)};
111
112
[[nodiscard]]
columnar::ObjectLink<MyTrackDef>
getOriginalTrackParticle
(
columnar::Particle1Id
electron)
const
;
113
115
std::unique_ptr<DeltaRMatcher>
m_dRMatcher
;
116
117
};
// class EleMuSharedTrkOverlapTool
118
119
}
// namespace ORUtils
120
121
#endif
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition
AsgToolMacros.h:68
AsgTool.h
BaseOverlapTool.h
DeltaRMatcher.h
EgammaDef.h
ElectronContainer.h
MuonContainer.h
IOverlapTool.h
LinkColumn.h
MuonDef.h
TrackDef.h
VariantDef.h
VariantLinkColumn.h
ORUtils::BaseOverlapTool::BaseOverlapTool
BaseOverlapTool(const std::string &name)
Create proper constructor for Athena.
Definition
BaseOverlapTool.cxx:14
ORUtils::EleMuSharedTrkOverlapTool::m_accessors
std::unique_ptr< Accessors > m_accessors
Definition
EleMuSharedTrkOverlapTool.h:110
ORUtils::EleMuSharedTrkOverlapTool::internalFindOverlaps
StatusCode internalFindOverlaps(columnar::Particle1Range electrons, columnar::Particle2Range muons) const
Alternate method taking actual container types.
Definition
EleMuSharedTrkOverlapTool.cxx:76
ORUtils::EleMuSharedTrkOverlapTool::m_useDRMatching
bool m_useDRMatching
Flag to remove electrons in a dR cone of muons (default: false).
Definition
EleMuSharedTrkOverlapTool.h:85
ORUtils::EleMuSharedTrkOverlapTool::EleMuSharedTrkOverlapTool
EleMuSharedTrkOverlapTool(const std::string &name)
Create proper constructor for Athena.
Definition
EleMuSharedTrkOverlapTool.cxx:23
ORUtils::EleMuSharedTrkOverlapTool::m_dRMatcher
std::unique_ptr< DeltaRMatcher > m_dRMatcher
Delta-R matcher.
Definition
EleMuSharedTrkOverlapTool.h:115
ORUtils::EleMuSharedTrkOverlapTool::findOverlaps
virtual StatusCode findOverlaps(columnar::Particle1Range cont1, columnar::Particle2Range cont2, columnar::EventContextId eventContext) const override
Identify overlaps via shared ID track.
Definition
EleMuSharedTrkOverlapTool.cxx:60
ORUtils::EleMuSharedTrkOverlapTool::m_useRapidity
bool m_useRapidity
Calculate delta-R using rapidity.
Definition
EleMuSharedTrkOverlapTool.h:89
ORUtils::EleMuSharedTrkOverlapTool::initializeDerived
virtual StatusCode initializeDerived() override
Initialize the tool.
Definition
EleMuSharedTrkOverlapTool.cxx:39
ORUtils::EleMuSharedTrkOverlapTool::MyTrackDef
columnar::VariantContainerId< columnar::Track0Def, columnar::Track0Def, columnar::Track1Def > MyTrackDef
IDTrack type.
Definition
EleMuSharedTrkOverlapTool.h:96
ORUtils::EleMuSharedTrkOverlapTool::m_maxDR
float m_maxDR
Maximum dR between electrons and muons if m_useDRMatching is used.
Definition
EleMuSharedTrkOverlapTool.h:87
ORUtils::EleMuSharedTrkOverlapTool::getOriginalTrackParticle
columnar::ObjectLink< MyTrackDef > getOriginalTrackParticle(columnar::Particle1Id electron) const
Definition
EleMuSharedTrkOverlapTool.cxx:145
ORUtils::EleMuSharedTrkOverlapTool::m_removeCaloMuons
bool m_removeCaloMuons
Flag to remove calo-muons overlapping with electrons.
Definition
EleMuSharedTrkOverlapTool.h:82
ORUtils::IOverlapTool
Interface class for overlap removal tools.
Definition
IOverlapTool.h:31
columnar::ColumnarTool
the base class for all columnar components
Definition
ColumnAccessorDataArray.h:17
columnar::ObjectLink
Definition
ContainerId.h:207
ORUtils
Definition
AltMuJetOverlapTool.h:30
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::Track2Accessor
AccessorTemplate< Track2Def, CT, ColumnAccessMode::input, CM > Track2Accessor
Definition
TrackDef.h:57
columnar::Particle1Id
ObjectId< Particle1Def > Particle1Id
Definition
ParticleDef.h:45
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
ORUtils::EleMuSharedTrkOverlapTool::Accessors
Columnar accessors.
Definition
EleMuSharedTrkOverlapTool.h:100
ORUtils::EleMuSharedTrkOverlapTool::Accessors::m_eleTrackAcc
columnar::Particle1Accessor< std::vector< columnar::OptTrack2Id > > m_eleTrackAcc
Definition
EleMuSharedTrkOverlapTool.h:104
ORUtils::EleMuSharedTrkOverlapTool::Accessors::m_track1Acc
columnar::Track1Accessor< columnar::ObjectColumn > m_track1Acc
Definition
EleMuSharedTrkOverlapTool.h:102
ORUtils::EleMuSharedTrkOverlapTool::Accessors::m_track2Acc
columnar::Track2Accessor< columnar::ObjectColumn > m_track2Acc
Definition
EleMuSharedTrkOverlapTool.h:103
ORUtils::EleMuSharedTrkOverlapTool::Accessors::m_track0Acc
columnar::Track0Accessor< columnar::ObjectColumn > m_track0Acc
Definition
EleMuSharedTrkOverlapTool.h:101
ORUtils::EleMuSharedTrkOverlapTool::Accessors::m_muonTypeAcc
columnar::Particle2Accessor< columnar::RetypeColumn< xAOD::Muon::MuonType, std::uint16_t > > m_muonTypeAcc
Definition
EleMuSharedTrkOverlapTool.h:106
ORUtils::EleMuSharedTrkOverlapTool::Accessors::m_gsfOriginalTrackAcc
columnar::Track2Accessor< columnar::ObjectLink< MyTrackDef > > m_gsfOriginalTrackAcc
Definition
EleMuSharedTrkOverlapTool.h:107
ORUtils::EleMuSharedTrkOverlapTool::Accessors::m_muonTrkAcc
columnar::Particle2Accessor< columnar::ObjectLink< MyTrackDef > > m_muonTrkAcc
Definition
EleMuSharedTrkOverlapTool.h:105
columnar::VariantContainerId
a "variant" ContainerId
Definition
VariantDef.h:98
Generated on
for ATLAS Offline Software by
1.17.0