ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
Columnar
ColumnarExampleTools
ColumnarExampleTools
VariantExampleTool.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
7
8
#ifndef COLUMNAR_EXAMPLE_TOOLS_VARIANT_EXAMPLE_TOOL_H
9
#define COLUMNAR_EXAMPLE_TOOLS_VARIANT_EXAMPLE_TOOL_H
10
11
#include <
AsgTools/AsgTool.h
>
12
#include <
AsgTools/PropertyWrapper.h
>
13
#include <
ColumnarCore/ColumnAccessor.h
>
14
#include <
ColumnarCore/ColumnarTool.h
>
15
#include <
ColumnarCore/ObjectColumn.h
>
16
#include <
ColumnarCore/ParticleDef.h
>
17
#include <
ColumnarVariant/VariantDef.h
>
18
#include <
ColumnarVariant/VariantObjectId.h
>
19
#include <
ColumnarVariant/VariantAccessor.h
>
20
#include <
ColumnarEgamma/EgammaDef.h
>
21
#include <
ColumnarMuon/MuonDef.h
>
22
23
namespace
columnar
24
{
43
44
class
VariantExampleTool
final
45
:
public
asg::AsgTool
,
46
public
ColumnarTool
<>
47
{
48
public
:
49
50
// Create a proper constructor for Athena
51
ASG_TOOL_CLASS
(
VariantExampleTool
,
asg::IAsgTool
)
52
53
VariantExampleTool
(
const
std::string& name);
54
55
virtual
StatusCode
initialize
()
override
;
56
57
void
callSingleEvent
(
ElectronRange
electrons,
MuonRange
muons)
const
;
58
59
virtual
void
callEvents
(
EventContextRange
events)
const override
;
60
61
66
ElectronAccessor<ObjectColumn>
electronsHandle
{*
this
,
"AnalysisElectrons"
};
67
MuonAccessor<ObjectColumn>
muonsHandle
{*
this
,
"AnalysisMuons"
};
68
69
79
using
MyVariantDef
=
VariantContainerId<ParticleDef, ElectronDef, MuonDef>
;
80
81
94
ColumnAccessor<MyVariantDef,float>
ptAcc
{*
this
,
"pt"
};
95
ColumnAccessor<MyVariantDef,float>
etaAcc
{*
this
,
"eta"
};
96
97
102
ColumnDecorator<MyVariantDef,std::uint16_t>
ptRankDec
{*
this
,
"ptRank"
};
103
108
ColumnDecorator<ElectronDef,std::uint16_t>
etaRankSpecialDec
{*
this
,
"etaRank"
};
109
};
110
}
111
112
#endif
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition
AsgToolMacros.h:68
AsgTool.h
ColumnAccessor.h
ColumnarTool.h
EgammaDef.h
MuonDef.h
ObjectColumn.h
ParticleDef.h
PropertyWrapper.h
VariantAccessor.h
VariantDef.h
VariantObjectId.h
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition
AsgTool.h:47
asg::IAsgTool
Base class for the dual-use tool interface classes.
Definition
IAsgTool.h:41
columnar::ColumnarTool
the base class for all columnar components
Definition
ColumnAccessorDataArray.h:17
columnar::VariantExampleTool::etaAcc
ColumnAccessor< MyVariantDef, float > etaAcc
Definition
VariantExampleTool.h:95
columnar::VariantExampleTool::ptRankDec
ColumnDecorator< MyVariantDef, std::uint16_t > ptRankDec
the pt-rank decorator for the variant container
Definition
VariantExampleTool.h:102
columnar::VariantExampleTool::electronsHandle
ElectronAccessor< ObjectColumn > electronsHandle
the object accessor for the underlying containers
Definition
VariantExampleTool.h:66
columnar::VariantExampleTool::VariantExampleTool
VariantExampleTool(const std::string &name)
Definition
VariantExampleTool.cxx:20
columnar::VariantExampleTool::initialize
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
Definition
VariantExampleTool.cxx:27
columnar::VariantExampleTool::callEvents
virtual void callEvents(EventContextRange events) const override
Definition
VariantExampleTool.cxx:113
columnar::VariantExampleTool::muonsHandle
MuonAccessor< ObjectColumn > muonsHandle
Definition
VariantExampleTool.h:67
columnar::VariantExampleTool::MyVariantDef
VariantContainerId< ParticleDef, ElectronDef, MuonDef > MyVariantDef
the variant definition we are using
Definition
VariantExampleTool.h:79
columnar::VariantExampleTool::etaRankSpecialDec
ColumnDecorator< ElectronDef, std::uint16_t > etaRankSpecialDec
a eta-rank decorator just for electrons
Definition
VariantExampleTool.h:108
columnar::VariantExampleTool::callSingleEvent
void callSingleEvent(ElectronRange electrons, MuonRange muons) const
Definition
VariantExampleTool.cxx:38
columnar::VariantExampleTool::ptAcc
ColumnAccessor< MyVariantDef, float > ptAcc
the pt and eta accessors for the variant container
Definition
VariantExampleTool.h:94
columnar
Definition
ClusterDef.h:16
columnar::ColumnAccessor
AccessorTemplate< CI, CT, ColumnAccessMode::input, CM > ColumnAccessor
Definition
ColumnAccessor.h:274
columnar::EventContextRange
ObjectRange< EventContextDef > EventContextRange
Definition
ContainerId.h:211
columnar::ColumnDecorator
AccessorTemplate< CI, CT, ColumnAccessMode::output, CM > ColumnDecorator
Definition
ColumnAccessor.h:275
columnar::MuonRange
ObjectRange< MuonDef > MuonRange
Definition
MuonDef.h:21
columnar::ElectronRange
ObjectRange< ElectronDef > ElectronRange
Definition
EgammaDef.h:34
columnar::ElectronAccessor
AccessorTemplate< ElectronDef, CT, ColumnAccessMode::input, CM > ElectronAccessor
Definition
EgammaDef.h:37
columnar::MuonAccessor
AccessorTemplate< MuonDef, CT, ColumnAccessMode::input, CM > MuonAccessor
Definition
MuonDef.h:24
columnar::VariantContainerId
a "variant" ContainerId
Definition
VariantDef.h:98
Generated on
for ATLAS Offline Software by
1.17.0