ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
AnalysisCommon
AssociationUtils
AssociationUtils
EleEleOverlapTool.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_ELEELEOVERLAPTOOL_H
6
#define ASSOCIATIONUTILS_ELEELEOVERLAPTOOL_H
7
8
// EDM includes
9
#include "
xAODEgamma/ElectronContainer.h
"
10
#include "
ColumnarEgamma/EgammaDef.h
"
11
12
// Columnar includes
13
#include "
ColumnarCore/ColumnAccessor.h
"
14
#include "
ColumnarCore/LinkColumn.h
"
15
#include "
ColumnarCore/VectorColumn.h
"
16
#include "
ColumnarCluster/ClusterHelpers.h
"
17
#include "
ColumnarTracking/TrackDef.h
"
18
19
// Local includes
20
#include "
AssociationUtils/IOverlapTool.h
"
21
#include "
AssociationUtils/BaseOverlapTool.h
"
22
23
namespace
ORUtils
24
{
25
42
class
EleEleOverlapTool
:
public
virtual
IOverlapTool
,
43
public
BaseOverlapTool
44
{
45
47
ASG_TOOL_CLASS
(
EleEleOverlapTool
,
IOverlapTool
)
48
49
public
:
50
52
EleEleOverlapTool
(
const
std::string& name);
53
56
virtual
StatusCode
57
findOverlaps
(
columnar::Particle1Range
cont1,
58
columnar::Particle2Range
cont2,
59
columnar::EventContextId
eventContext)
const override
;
60
63
virtual
StatusCode
64
internalFindOverlaps
(
columnar::Particle1Range
electrons)
const
;
65
66
protected
:
67
69
virtual
StatusCode
initializeDerived
()
override
;
70
71
private
:
72
74
bool
electronsMatch
(
columnar::Particle1Id
el1,
columnar::Particle1Id
el2)
const
;
75
77
bool
rejectFirst
(
columnar::Particle1Id
el1,
columnar::Particle1Id
el2)
const
;
78
81
83
bool
m_useTrackMatch
;
84
86
bool
m_useClusterMatch
;
87
89
double
m_clusterDeltaEta
;
90
92
double
m_clusterDeltaPhi
;
93
95
97
using
MyTrackDef
=
columnar::VariantContainerId<columnar::Track0Def,columnar::Track0Def>
;
98
struct
Accessors
final :
columnar::ColumnarTool
<>
99
{
100
columnar::ClusterAccessor<columnar::ObjectColumn>
m_clusterContainerAcc
;
101
columnar::Track0Accessor<columnar::ObjectColumn>
m_track0Acc
;
102
columnar::Particle1Accessor<float>
m_ptAcc
{*
this
,
"pt"
};
103
columnar::Particle1Accessor<std::uint16_t>
m_authorAcc
{*
this
,
"author"
};
104
columnar::Particle1Accessor<std::vector<columnar::OptClusterId>
>
m_caloClusterAcc
;
105
columnar::Particle1Accessor<std::vector<columnar::OptTrackId>
>
m_trackAcc
;
106
std::optional<columnar::ClusterHelpers::EtaBEAccessor<>>
m_etaBEAcc
;
107
std::optional<columnar::ClusterHelpers::PhiBEAccessor<>>
m_phiBEAcc
;
108
using
ColumnarTool::ColumnarTool;
109
};
110
std::unique_ptr<Accessors>
m_accessors
{std::make_unique<Accessors> (
this
)};
111
112
};
// class EleEleOverlapTool
113
114
}
// namespace ORUtils
115
116
#endif
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition
AsgToolMacros.h:68
BaseOverlapTool.h
ClusterHelpers.h
ColumnAccessor.h
EgammaDef.h
ElectronContainer.h
IOverlapTool.h
LinkColumn.h
TrackDef.h
VectorColumn.h
ORUtils::BaseOverlapTool::BaseOverlapTool
BaseOverlapTool(const std::string &name)
Create proper constructor for Athena.
Definition
BaseOverlapTool.cxx:14
ORUtils::EleEleOverlapTool::m_clusterDeltaPhi
double m_clusterDeltaPhi
Cluster-matching dPhi.
Definition
EleEleOverlapTool.h:92
ORUtils::EleEleOverlapTool::findOverlaps
virtual StatusCode findOverlaps(columnar::Particle1Range cont1, columnar::Particle2Range cont2, columnar::EventContextId eventContext) const override
Identify overlapping electrons.
Definition
EleEleOverlapTool.cxx:97
ORUtils::EleEleOverlapTool::MyTrackDef
columnar::VariantContainerId< columnar::Track0Def, columnar::Track0Def > MyTrackDef
Columnar accessors.
Definition
EleEleOverlapTool.h:97
ORUtils::EleEleOverlapTool::EleEleOverlapTool
EleEleOverlapTool(const std::string &name)
Create proper constructor for Athena.
Definition
EleEleOverlapTool.cxx:43
ORUtils::EleEleOverlapTool::initializeDerived
virtual StatusCode initializeDerived() override
Initialize the tool.
Definition
EleEleOverlapTool.cxx:63
ORUtils::EleEleOverlapTool::rejectFirst
bool rejectFirst(columnar::Particle1Id el1, columnar::Particle1Id el2) const
Helper method to decide which electron to reject.
Definition
EleEleOverlapTool.cxx:209
ORUtils::EleEleOverlapTool::electronsMatch
bool electronsMatch(columnar::Particle1Id el1, columnar::Particle1Id el2) const
Helper method for matching electrons.
Definition
EleEleOverlapTool.cxx:160
ORUtils::EleEleOverlapTool::m_clusterDeltaEta
double m_clusterDeltaEta
Cluster-matching dEta.
Definition
EleEleOverlapTool.h:89
ORUtils::EleEleOverlapTool::m_accessors
std::unique_ptr< Accessors > m_accessors
Definition
EleEleOverlapTool.h:110
ORUtils::EleEleOverlapTool::internalFindOverlaps
virtual StatusCode internalFindOverlaps(columnar::Particle1Range electrons) const
Identify overlapping electrons and jets.
Definition
EleEleOverlapTool.cxx:122
ORUtils::EleEleOverlapTool::m_useTrackMatch
bool m_useTrackMatch
Match electrons by shared track (on by default).
Definition
EleEleOverlapTool.h:83
ORUtils::EleEleOverlapTool::m_useClusterMatch
bool m_useClusterMatch
Match electrons by cluster distance (off by default).
Definition
EleEleOverlapTool.h:86
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
ORUtils
Definition
AltMuJetOverlapTool.h:30
columnar::ClusterAccessor
AccessorTemplate< ClusterDef, CT, ColumnAccessMode::input, CM > ClusterAccessor
Definition
ClusterDef.h:25
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::Particle1Id
ObjectId< Particle1Def > Particle1Id
Definition
ParticleDef.h:45
columnar::EventContextId
ObjectId< EventContextDef > EventContextId
Definition
ContainerId.h:212
columnar::Particle2Range
ObjectRange< Particle2Def > Particle2Range
Definition
ParticleDef.h:50
columnar::Particle1Range
ObjectRange< Particle1Def > Particle1Range
Definition
ParticleDef.h:44
ORUtils::EleEleOverlapTool::Accessors
Definition
EleEleOverlapTool.h:99
ORUtils::EleEleOverlapTool::Accessors::m_track0Acc
columnar::Track0Accessor< columnar::ObjectColumn > m_track0Acc
Definition
EleEleOverlapTool.h:101
ORUtils::EleEleOverlapTool::Accessors::m_clusterContainerAcc
columnar::ClusterAccessor< columnar::ObjectColumn > m_clusterContainerAcc
Definition
EleEleOverlapTool.h:100
ORUtils::EleEleOverlapTool::Accessors::m_etaBEAcc
std::optional< columnar::ClusterHelpers::EtaBEAccessor<> > m_etaBEAcc
Definition
EleEleOverlapTool.h:106
ORUtils::EleEleOverlapTool::Accessors::m_ptAcc
columnar::Particle1Accessor< float > m_ptAcc
Definition
EleEleOverlapTool.h:102
ORUtils::EleEleOverlapTool::Accessors::m_phiBEAcc
std::optional< columnar::ClusterHelpers::PhiBEAccessor<> > m_phiBEAcc
Definition
EleEleOverlapTool.h:107
ORUtils::EleEleOverlapTool::Accessors::m_authorAcc
columnar::Particle1Accessor< std::uint16_t > m_authorAcc
Definition
EleEleOverlapTool.h:103
ORUtils::EleEleOverlapTool::Accessors::m_caloClusterAcc
columnar::Particle1Accessor< std::vector< columnar::OptClusterId > > m_caloClusterAcc
Definition
EleEleOverlapTool.h:104
ORUtils::EleEleOverlapTool::Accessors::m_trackAcc
columnar::Particle1Accessor< std::vector< columnar::OptTrackId > > m_trackAcc
Definition
EleEleOverlapTool.h:105
columnar::VariantContainerId
a "variant" ContainerId
Definition
VariantDef.h:98
Generated on
for ATLAS Offline Software by
1.17.0