ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
Columnar
ColumnarExampleTools
Root
LinkColumnExampleTool.cxx
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
// includes
9
//
10
11
#include <
ColumnarExampleTools/LinkColumnExampleTool.h
>
12
13
//
14
// method implementations
15
//
16
17
namespace
columnar
18
{
19
LinkColumnExampleTool ::
20
LinkColumnExampleTool (
const
std::string& name)
21
:
AsgTool
(name)
22
{}
23
24
25
26
StatusCode LinkColumnExampleTool ::
27
initialize ()
28
{
29
// give the base class a chance to initialize the column accessor
30
// backends
31
ANA_CHECK
(initializeColumns());
32
return
StatusCode::SUCCESS;
33
}
34
35
36
37
void
LinkColumnExampleTool ::
38
callEvents (
EventContextRange
events)
const
39
{
40
// loop over all events and particles. note that this is
41
// deliberately looping by value, as the ID classes are very small
42
// and can be copied cheaply. this could have also been written as
43
// a single loop over all particles in the event range, but I chose
44
// to split it up into two loops as most tools will need to do some
45
// per-event things, e.g. retrieve `EventInfo`.
46
for
(
columnar::EventContextId
event : events)
47
{
48
for
(
auto
muon :
muonsHandle
(event))
49
{
50
// retrieve the track linked to the muon
51
OptTrackId
track =
trackLinkAcc
(muon);
52
53
// apply the selection, the OptTrackId tries to (mostly) behave
54
// like a std::optional<TrackId>, so we can use it in a similar
55
// way. Here we first check if the track is valid, then do a
56
// curvature selection on the track.
57
selectionDec
(muon) = track && std::abs(
trackQOverPAcc
(track.value())) < 1. /
m_ptCut
.value();
58
}
59
}
60
}
61
}
ANA_CHECK
#define ANA_CHECK(EXP)
check whether the given expression was successful
Definition
Control/AthToolSupport/AsgMessaging/AsgMessaging/MessageCheck.h:324
LinkColumnExampleTool.h
asg::AsgTool::AsgTool
AsgTool(const std::string &name)
Constructor specifying the tool instance's name.
Definition
AsgTool.cxx:58
columnar::LinkColumnExampleTool::trackLinkAcc
MuonAccessor< OptTrackId > trackLinkAcc
the link accessor for the particles
Definition
LinkColumnExampleTool.h:70
columnar::LinkColumnExampleTool::selectionDec
MuonDecorator< char > selectionDec
the selection decorator for the particles
Definition
LinkColumnExampleTool.h:90
columnar::LinkColumnExampleTool::trackQOverPAcc
TrackAccessor< float > trackQOverPAcc
the q/p accessor for the track container
Definition
LinkColumnExampleTool.h:79
columnar::LinkColumnExampleTool::m_ptCut
Gaudi::Property< float > m_ptCut
the pt cut to apply
Definition
LinkColumnExampleTool.h:45
columnar::LinkColumnExampleTool::muonsHandle
MuonAccessor< ObjectColumn > muonsHandle
the object accessor for the muons
Definition
LinkColumnExampleTool.h:53
columnar
Definition
ClusterDef.h:16
columnar::OptTrackId
OptObjectId< TrackDef > OptTrackId
Definition
TrackDef.h:44
columnar::EventContextRange
ObjectRange< EventContextDef > EventContextRange
Definition
ContainerId.h:211
columnar::EventContextId
ObjectId< EventContextDef > EventContextId
Definition
ContainerId.h:212
Generated on
for ATLAS Offline Software by
1.17.0