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
ADD_CMODE(columnar)
24
{
43
44
class
VariantExampleTool final
45
:
public
asg::AsgTool
,
46
public
columnar::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 (
columnar::ElectronRange
electrons,
columnar::MuonRange
muons)
const
;
58
59
virtual
void
callEvents (
columnar::EventContextRange
events)
const override
;
60
61
66
columnar::ElectronAccessor<columnar::ObjectColumn>
electronsHandle {*
this
,
"AnalysisElectrons"
};
67
columnar::MuonAccessor<columnar::ObjectColumn>
muonsHandle {*
this
,
"AnalysisMuons"
};
68
69
79
using
MyVariantDef =
columnar::VariantContainerId<columnar::ParticleDef, columnar::ElectronDef, columnar::MuonDef>
;
80
81
94
columnar::ColumnAccessor<MyVariantDef,float>
ptAcc {*
this
,
"pt"
};
95
columnar::ColumnAccessor<MyVariantDef,float>
etaAcc {*
this
,
"eta"
};
96
97
102
columnar::ColumnDecorator<MyVariantDef,std::uint16_t>
ptRankDec {*
this
,
"ptRank"
};
103
108
columnar::ColumnDecorator<columnar::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::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
initialize
void initialize()
Definition
run_EoverP.cxx:894
columnar::VariantContainerId
a "variant" ContainerId
Definition
VariantDef.h:98
Generated on
for ATLAS Offline Software by
1.17.0