ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Event
xAOD
xAODTau
Root
TauxAODHelpers.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
xAODTau/TauxAODHelpers.h
"
6
7
typedef
ElementLink<xAOD::TruthParticleContainer>
TruthLink_t
;
8
9
// ==================================================================
10
const
xAOD::TruthParticle
*
xAOD::TauHelpers::getTruthParticle
(
const
xAOD::IParticle
* particle,
bool
debug
)
11
{
12
return
getLink<xAOD::TruthParticle>
(particle,
"truthParticleLink"
,
debug
);
13
}
14
15
// ==================================================================
16
std::vector< ElementLink< xAOD::TrackParticleContainer > >
xAOD::TauHelpers::trackParticleLinks
(
const
xAOD::TauJet
* tau,
xAOD::TauJetParameters::TauTrackFlag
flag
/*=xAOD::TauJetParameters::TauTrackFlag::classifiedCharged*/
){
17
xAOD::TauTrack::TrackFlagType
mask=1<<flag;
18
return
trackParticleLinksWithMask
(tau, mask);
19
}
20
21
// ==================================================================
22
std::vector< ElementLink< xAOD::TrackParticleContainer > >
xAOD::TauHelpers::trackParticleLinksWithMask
(
const
xAOD::TauJet
* tau,
xAOD::TauTrack::TrackFlagType
mask){
23
std::vector< ElementLink< xAOD::TrackParticleContainer > > links;
24
std::vector< const xAOD::TauTrack* > allTracks = tau->allTracks();
25
for
(
const
xAOD::TauTrack
* trk : allTracks ){
26
if
(trk->trackLinks().empty())
continue
;
27
if
(trk->flagWithMask(mask))
28
links.push_back(trk->trackLinks()[0]);
29
}
30
return
links;
31
}
32
33
// ==================================================================
34
std::vector<xAOD::TauTrack*>
xAOD::TauHelpers::tauTracksNonConstWithMask
(
const
xAOD::TauJet
* tau,
xAOD::TauTrackContainer
* trackCont,
xAOD::TauTrack::TrackFlagType
mask ){
35
std::vector<xAOD::TauTrack*> v;
36
for
(
const
ElementLink< xAOD::TauTrackContainer >
& link : tau->allTauTrackLinks() ){
37
if
(link.isValid() && (*link)->flagWithMask(mask) &&
dynamic_cast<
const
xAOD::TauTrackContainer
*
>
(link.getStorableObjectPointer()) == trackCont) v.push_back( trackCont->
at
(link.index()));
38
}
39
return
v;
40
}
41
42
// ==================================================================
43
std::vector<xAOD::TauTrack*>
xAOD::TauHelpers::allTauTracksNonConst
(
const
xAOD::TauJet
* tau,
xAOD::TauTrackContainer
* trackCont ){
44
xAOD::TauTrack::TrackFlagType
mask=0;
45
return
tauTracksNonConstWithMask
(tau, trackCont, mask);
46
}
47
48
49
50
std::vector<const xAOD::IParticle*>
51
xAOD::TauHelpers::clusters
(
const
xAOD::TauJet
& tau,
double
dRMax) {
52
auto
vertexedClusterList =
xAOD::TauHelpers::vertexedClusters
(tau, dRMax);
53
54
std::vector<const xAOD::IParticle*> clusterList;
55
for
(
const
auto
& vertexedCluster : vertexedClusterList) {
56
const
xAOD::CaloCluster
& cluster = vertexedCluster.clust();
57
clusterList.push_back(&cluster);
58
}
59
60
return
clusterList;
61
}
62
63
64
65
std::vector<xAOD::CaloVertexedTopoCluster>
66
xAOD::TauHelpers::vertexedClusters
(
const
xAOD::TauJet
& tau,
double
dRMax) {
67
TLorentzVector tauAxis;
68
if
(tau.vertexLink().isValid()) {
69
tauAxis = tau.p4(
xAOD::TauJetParameters::IntermediateAxis
);
70
}
71
else
{
72
tauAxis = tau.p4(
xAOD::TauJetParameters::DetectorAxis
);
73
}
74
75
auto
vertexedClusterList = tau.vertexedClusters();
76
77
std::vector<xAOD::CaloVertexedTopoCluster> selectedList;
78
for
(
const
auto
& vertexedCluster : vertexedClusterList) {
79
TLorentzVector clusterP4 = vertexedCluster.p4();
80
81
double
dR = clusterP4.DeltaR(tauAxis);
82
if
(dR > dRMax)
continue
;
83
84
selectedList.push_back(vertexedCluster);
85
}
86
87
return
selectedList;
88
}
debug
const bool debug
Definition
MakeUncertaintyPlots.cxx:53
TruthLink_t
ElementLink< xAOD::TruthParticleContainer > TruthLink_t
Definition
TauxAODHelpers.cxx:7
TauxAODHelpers.h
DataVector::at
const T * at(size_type n) const
Access an element, as an rvalue.
ElementLink
ElementLink implementation for ROOT usage.
Definition
A/AthLinks/ElementLink.h:40
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition
Event/xAOD/xAODBase/xAODBase/IParticle.h:41
xAOD::TauTrack_v1::TrackFlagType
uint16_t TrackFlagType
Definition
TauTrack_v1.h:61
xAOD::TauHelpers::clusters
std::vector< const xAOD::IParticle * > clusters(const xAOD::TauJet &tau, double dRMax)
Definition
TauxAODHelpers.cxx:51
xAOD::TauHelpers::trackParticleLinks
std::vector< ElementLink< xAOD::TrackParticleContainer > > trackParticleLinks(const xAOD::TauJet *tau, xAOD::TauJetParameters::TauTrackFlag flag=xAOD::TauJetParameters::TauTrackFlag::classifiedCharged)
Definition
TauxAODHelpers.cxx:16
xAOD::TauHelpers::getTruthParticle
const xAOD::TruthParticle * getTruthParticle(const xAOD::IParticle *, bool debug=false)
return the truthParticle associated to the given IParticle (if any)
Definition
TauxAODHelpers.cxx:10
xAOD::TauHelpers::tauTracksNonConstWithMask
std::vector< xAOD::TauTrack * > tauTracksNonConstWithMask(const xAOD::TauJet *tau, xAOD::TauTrackContainer *trackCont, xAOD::TauTrack::TrackFlagType mask)
Definition
TauxAODHelpers.cxx:34
xAOD::TauHelpers::vertexedClusters
std::vector< xAOD::CaloVertexedTopoCluster > vertexedClusters(const xAOD::TauJet &tau, double dRMax)
Definition
TauxAODHelpers.cxx:66
xAOD::TauHelpers::allTauTracksNonConst
std::vector< xAOD::TauTrack * > allTauTracksNonConst(const xAOD::TauJet *tau, xAOD::TauTrackContainer *trackCont)
Definition
TauxAODHelpers.cxx:43
xAOD::TauHelpers::trackParticleLinksWithMask
std::vector< ElementLink< xAOD::TrackParticleContainer > > trackParticleLinksWithMask(const xAOD::TauJet *tau, xAOD::TauTrack::TrackFlagType mask)
Definition
TauxAODHelpers.cxx:22
xAOD::TauHelpers::getLink
const T * getLink(const xAOD::IParticle *, const std::string &, bool debug=false)
xAOD::TauJetParameters::TauTrackFlag
TauTrackFlag
Enum for tau track flags.
Definition
TauDefs.h:400
xAOD::TauJetParameters::DetectorAxis
@ DetectorAxis
Definition
TauDefs.h:337
xAOD::TauJetParameters::IntermediateAxis
@ IntermediateAxis
Definition
TauDefs.h:338
xAOD::CaloCluster
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
Definition
Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloCluster.h:19
xAOD::TauTrack
TauTrack_v1 TauTrack
Definition of the current version.
Definition
TauTrack.h:16
xAOD::TauJet
TauJet_v3 TauJet
Definition of the current "tau version".
Definition
TauJet.h:17
xAOD::TruthParticle
TruthParticle_v1 TruthParticle
Typedef to implementation.
Definition
Event/xAOD/xAODTruth/xAODTruth/TruthParticle.h:15
xAOD::TauTrackContainer
TauTrackContainer_v1 TauTrackContainer
Definition of the current TauTrack container version.
Definition
TauTrackContainer.h:16
Generated on
for ATLAS Offline Software by
1.17.0