ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
TauID
TauAnalysisTools
TauAnalysisTools
ColumnarTauAccessors.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 TAUANALYSISTOOLS_TAU_JET_HELPERS_H
9
#define TAUANALYSISTOOLS_TAU_JET_HELPERS_H
10
11
#include <
ColumnarCore/ColumnAccessor.h
>
12
#include <
ColumnarCore/LinkColumn.h
>
13
#include <
ColumnarJet/JetDef.h
>
14
#include <
ColumnarTau/TauJetDef.h
>
15
#include <
ColumnarTruth/TruthParticleDef.h
>
16
#include <
TauAnalysisTools/Enums.h
>
17
#include <
TruthUtils/HepMCHelpers.h
>
18
19
namespace
TauAnalysisTools
20
{
27
28
36
template
<columnar::ContainerIdConcept CITau = columnar::TauJetDef,
37
columnar::ContainerIdConcept CITruth = columnar::TruthParticleDef,
38
columnar::ContainerIdConcept CIJet = columnar::JetDef,
39
typename
CM =
columnar::ColumnarModeDefault
>
40
class
TruthParticleTypeAccessor
final
41
{
42
columnar::ColumnAccessor<CITau, columnar::OptObjectId<CITruth, CM>
, CM>
m_truthParticleLinkAcc
;
43
columnar::ColumnAccessor<CITau, columnar::OptObjectId<CIJet, CM>
, CM>
m_truthJetLinkAcc
;
44
columnar::ColumnAccessor<CITruth, int, CM>
m_pdgIdAcc
;
45
columnar::ColumnAccessor<CITruth, char, CM>
m_isHadronicTauAcc
;
46
47
public
:
48
49
TruthParticleTypeAccessor
(
columnar::ColumnarTool<CM>
& columnarTool)
50
:
m_truthParticleLinkAcc
(columnarTool,
"truthParticleLink"
),
51
m_truthJetLinkAcc
(columnarTool,
"truthJetLink"
),
52
m_pdgIdAcc
(columnarTool,
"pdgId"
),
53
m_isHadronicTauAcc
(columnarTool,
"IsHadronicTau"
)
54
{}
55
56
[[nodiscard]]
TruthMatchedParticleType
57
operator ()
(
columnar::ObjectId<CITau, CM>
tau)
const
58
{
59
const
columnar::OptObjectId<CITruth, CM>
truthParticle =
m_truthParticleLinkAcc
(tau);
60
if
(truthParticle.has_value())
61
{
62
const
int
pdgId =
m_pdgIdAcc
(truthParticle.value());
63
if
(
MC::isTau
(pdgId))
64
return
static_cast<
bool
>
(
m_isHadronicTauAcc
(truthParticle.value()))
65
?
TruthHadronicTau
:
TruthLeptonicTau
;
66
if
(
MC::isMuon
(pdgId))
return
TruthMuon
;
67
if
(
MC::isElectron
(pdgId))
return
TruthElectron
;
68
}
69
if
(
m_truthJetLinkAcc
(tau).has_value())
70
return
TruthJet
;
71
return
Unknown
;
72
}
73
};
74
}
75
76
#endif
ColumnAccessor.h
HepMCHelpers.h
ATLAS-specific HepMC functions.
JetDef.h
LinkColumn.h
Enums.h
TauJetDef.h
TruthParticleDef.h
TauAnalysisTools::TruthParticleTypeAccessor::m_truthJetLinkAcc
columnar::ColumnAccessor< CITau, columnar::OptObjectId< CIJet, CM >, CM > m_truthJetLinkAcc
Definition
ColumnarTauAccessors.h:43
TauAnalysisTools::TruthParticleTypeAccessor::m_truthParticleLinkAcc
columnar::ColumnAccessor< CITau, columnar::OptObjectId< CITruth, CM >, CM > m_truthParticleLinkAcc
Definition
ColumnarTauAccessors.h:42
TauAnalysisTools::TruthParticleTypeAccessor::m_pdgIdAcc
columnar::ColumnAccessor< CITruth, int, CM > m_pdgIdAcc
Definition
ColumnarTauAccessors.h:44
TauAnalysisTools::TruthParticleTypeAccessor::operator()
TruthMatchedParticleType operator()(columnar::ObjectId< CITau, CM > tau) const
Definition
ColumnarTauAccessors.h:57
TauAnalysisTools::TruthParticleTypeAccessor::TruthParticleTypeAccessor
TruthParticleTypeAccessor(columnar::ColumnarTool< CM > &columnarTool)
Definition
ColumnarTauAccessors.h:49
TauAnalysisTools::TruthParticleTypeAccessor::m_isHadronicTauAcc
columnar::ColumnAccessor< CITruth, char, CM > m_isHadronicTauAcc
Definition
ColumnarTauAccessors.h:45
columnar::ColumnarTool
the base class for all columnar components
Definition
ColumnAccessorDataArray.h:17
columnar::ObjectId
a class representing a single object (electron, muons, etc.)
Definition
ContainerId.h:205
columnar::OptObjectId
a class representing a single optional object (electron, muons, etc.)
Definition
ContainerId.h:206
MC::isElectron
bool isElectron(const T &p)
Definition
HepMCHelpers.h:209
MC::isMuon
bool isMuon(const T &p)
Definition
HepMCHelpers.h:212
MC::isTau
bool isTau(const T &p)
Definition
HepMCHelpers.h:215
TauAnalysisTools
Definition
PhysValMET.h:37
TauAnalysisTools::TruthMatchedParticleType
TruthMatchedParticleType
Definition
PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:107
TauAnalysisTools::TruthElectron
@ TruthElectron
Definition
PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:112
TauAnalysisTools::Unknown
@ Unknown
Definition
PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:108
TauAnalysisTools::TruthMuon
@ TruthMuon
Definition
PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:111
TauAnalysisTools::TruthHadronicTau
@ TruthHadronicTau
Definition
PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:109
TauAnalysisTools::TruthLeptonicTau
@ TruthLeptonicTau
Definition
PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:110
TauAnalysisTools::TruthJet
@ TruthJet
Definition
PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:113
columnar::ColumnAccessor
AccessorTemplate< CI, CT, ColumnAccessMode::input, CM > ColumnAccessor
Definition
ColumnAccessor.h:274
columnar::ColumnarModeDefault
ColumnarModeXAOD ColumnarModeDefault
Definition
ColumnarCore/ColumnarCore/ColumnarDef.h:224
Generated on
for ATLAS Offline Software by
1.17.0