ATLAS Offline Software
PhysicsAnalysis
TauID
TauAnalysisTools
TauAnalysisTools
TauTruthMatchingTool.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef TAUANALYSISTOOLS_TAUTRUTHMATCHINGTOOL_H
6
#define TAUANALYSISTOOLS_TAUTRUTHMATCHINGTOOL_H
7
8
/*
9
author: Dirk Duschinger
10
mail: dirk.duschinger@cern.ch
11
documentation in: ../README.rst
12
*/
13
14
// Local include(s):
15
#include "
TauAnalysisTools/ITauTruthMatchingTool.h
"
16
#include "
TauAnalysisTools/BuildTruthTaus.h
"
17
#include "
CxxUtils/CachedValue.h
"
18
#include "
AsgTools/PropertyWrapper.h
"
19
20
namespace
TauAnalysisTools
21
{
22
23
class
TauTruthMatchingTool
24
:
public
virtual
TauAnalysisTools::BuildTruthTaus
25
,
public
virtual
TauAnalysisTools::ITauTruthMatchingTool
26
{
28
ASG_TOOL_CLASS2
(
TauTruthMatchingTool
,
29
TauAnalysisTools::IBuildTruthTaus
,
30
TauAnalysisTools::ITauTruthMatchingTool
)
31
32
public
:
// Interface functions
33
34
TauTruthMatchingTool
(
const
std::string&
name
);
35
36
virtual
~
TauTruthMatchingTool
() =
default
;
37
38
// initialize the tool
39
virtual
StatusCode
initialize
()
override
final
;
40
41
virtual
std::unique_ptr<ITruthTausEvent>
getEvent
()
const
override
final
;
42
43
// get pointer to the truth matched particle, if no truth particle was found a null pointer is returned
44
virtual
const
xAOD::TruthParticle
*
getTruth
(
const
xAOD::TauJet
& xTau)
override
final
;
45
virtual
const
xAOD::TruthParticle
*
getTruth
(
const
xAOD::TauJet
& xTau,
46
ITruthTausEvent
& truthTausEVent)
const
override
final
;
47
virtual
std::vector<const xAOD::TruthParticle*>
getTruth
(
const
std::vector<const xAOD::TauJet*>& vTaus)
override
final
;
48
49
public
:
// Wrapper functions
50
51
// wrapper function to get truth tau visible TLorentzvector
52
virtual
TLorentzVector
getTruthTauP4Vis
(
const
xAOD::TauJet
& xTau)
override
final
;
53
virtual
TLorentzVector
getTruthTauP4Vis
(
const
xAOD::TruthParticle
& xTruthTau)
const
override
final
;
54
55
// wrapper function to get truth tau invisible TLorentzvector
56
virtual
TLorentzVector
getTruthTauP4Invis
(
const
xAOD::TauJet
& xTau)
override
final
;
57
virtual
TLorentzVector
getTruthTauP4Invis
(
const
xAOD::TruthParticle
& xTruthTau)
const
override
final
;
58
59
// get type of truth match particle (hadronic tau, leptonic tau, electron, muon, jet)
60
virtual
TauAnalysisTools::TruthMatchedParticleType
getTruthParticleType
(
const
xAOD::TauJet
& xTau)
override
final
;
61
62
// wrapper function to count number of decay particles of given pdg id
63
virtual
int
getNTauDecayParticles
(
const
xAOD::TauJet
& xTau,
int
iPdgId,
bool
bCompareAbsoluteValues =
false
)
override
final
;
64
virtual
int
getNTauDecayParticles
(
const
xAOD::TruthParticle
& xTruthTau,
int
iPdgId,
bool
bCompareAbsoluteValues =
false
)
const
override
final
;
65
66
// wrapper function to obtain truth verion of xAOD::TauJetParameters::DecayMode
67
virtual
xAOD::TauJetParameters::DecayMode
getDecayMode
(
const
xAOD::TauJet
& xTau)
override
final
;
68
virtual
xAOD::TauJetParameters::DecayMode
getDecayMode
(
const
xAOD::TruthParticle
& xTruthTau)
const
override
final
;
69
75
virtual
StatusCode
lockDecorations
(
const
xAOD::TauJetContainer
& taus)
const
override
final
;
76
77
private
:
// private helper functions
78
79
StatusCode
findTruthTau
(
const
xAOD::TauJet
& xTau,
80
TruthTausEvent& truthTausEvent)
const
;
81
StatusCode
checkTruthMatch
(
const
xAOD::TauJet
& xTau,
const
xAOD::TruthParticleContainer
& xTauContainer,
const
TruthTausEvent& truthTausEvent)
const
;
82
83
private
:
// steering variables
84
85
Gaudi::Property<double>
m_dMaxDeltaR
{
this
,
"MaxDeltaR"
, 0.2};
86
87
CxxUtils::CachedValue<bool>
m_bIsTruthMatchedAvailable
;
88
CxxUtils::CachedValue<bool>
m_bIsTruthParticleLinkAvailable
;
89
90
private
:
// private helper variables
91
92
SG::ConstAccessor<double>
m_accPtVis
;
93
SG::ConstAccessor<double>
m_accEtaVis
;
94
SG::ConstAccessor<double>
m_accPhiVis
;
95
SG::ConstAccessor<double>
m_accMVis
;
96
97
};
// class TauTruthMatchingTool
98
99
}
100
#endif // TAUANALYSISTOOLS_TAUTRUTHMATCHINGTOOL_H
TauAnalysisTools
Definition:
TruthCollectionMakerTau.h:16
TauAnalysisTools::TauTruthMatchingTool::m_accPhiVis
SG::ConstAccessor< double > m_accPhiVis
Definition:
TauTruthMatchingTool.h:94
TauAnalysisTools::TauTruthMatchingTool::getTruthTauP4Vis
virtual TLorentzVector getTruthTauP4Vis(const xAOD::TauJet &xTau) override final
Definition:
TauTruthMatchingTool.cxx:120
PropertyWrapper.h
TauAnalysisTools::TauTruthMatchingTool::getTruthTauP4Invis
virtual TLorentzVector getTruthTauP4Invis(const xAOD::TauJet &xTau) override final
Definition:
TauTruthMatchingTool.cxx:149
TauAnalysisTools::IBuildTruthTaus::ITruthTausEvent
Declare the interface that the class provides.
Definition:
IBuildTruthTaus.h:35
ASG_TOOL_CLASS2
#define ASG_TOOL_CLASS2(CLASSNAME, INT1, INT2)
Definition:
AsgToolMacros.h:77
TauAnalysisTools::TauTruthMatchingTool::checkTruthMatch
StatusCode checkTruthMatch(const xAOD::TauJet &xTau, const xAOD::TruthParticleContainer &xTauContainer, const TruthTausEvent &truthTausEvent) const
Definition:
TauTruthMatchingTool.cxx:314
TauAnalysisTools::TauTruthMatchingTool::getEvent
virtual std::unique_ptr< ITruthTausEvent > getEvent() const override final
Definition:
TauTruthMatchingTool.cxx:48
TauAnalysisTools::TauTruthMatchingTool::getTruthParticleType
virtual TauAnalysisTools::TruthMatchedParticleType getTruthParticleType(const xAOD::TauJet &xTau) override final
Definition:
TauTruthMatchingTool.cxx:182
SG::ConstAccessor< double >
xAOD::TauJetParameters::DecayMode
DecayMode
Definition:
TauDefs.h:385
TauAnalysisTools::BuildTruthTaus
Definition:
BuildTruthTaus.h:39
ITauTruthMatchingTool.h
TauAnalysisTools::TauTruthMatchingTool::m_bIsTruthParticleLinkAvailable
CxxUtils::CachedValue< bool > m_bIsTruthParticleLinkAvailable
Definition:
TauTruthMatchingTool.h:88
TauAnalysisTools::TauTruthMatchingTool::m_dMaxDeltaR
Gaudi::Property< double > m_dMaxDeltaR
Definition:
TauTruthMatchingTool.h:85
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition:
PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
xAOD::TruthParticle_v1
Class describing a truth particle in the MC record.
Definition:
TruthParticle_v1.h:37
TauAnalysisTools::TauTruthMatchingTool::m_accEtaVis
SG::ConstAccessor< double > m_accEtaVis
Definition:
TauTruthMatchingTool.h:93
xAOD::TauJet_v3
Class describing a tau jet.
Definition:
TauJet_v3.h:41
CxxUtils::CachedValue< bool >
TauAnalysisTools::ITauTruthMatchingTool
Definition:
ITauTruthMatchingTool.h:34
TauAnalysisTools::TauTruthMatchingTool::findTruthTau
StatusCode findTruthTau(const xAOD::TauJet &xTau, TruthTausEvent &truthTausEvent) const
Definition:
TauTruthMatchingTool.cxx:284
TauAnalysisTools::TauTruthMatchingTool
Definition:
TauTruthMatchingTool.h:26
DataVector
Derived DataVector<T>.
Definition:
DataVector.h:794
BuildTruthTaus.h
CachedValue.h
Cached value with atomic update.
TauAnalysisTools::TruthMatchedParticleType
TruthMatchedParticleType
Definition:
PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:97
name
std::string name
Definition:
Control/AthContainers/Root/debug.cxx:240
TauAnalysisTools::TauTruthMatchingTool::m_accMVis
SG::ConstAccessor< double > m_accMVis
Definition:
TauTruthMatchingTool.h:95
TauAnalysisTools::TauTruthMatchingTool::lockDecorations
virtual StatusCode lockDecorations(const xAOD::TauJetContainer &taus) const override final
Decorations produced by an algorithm need to be locked; otherwise, they will be ignored by deep copie...
Definition:
TauTruthMatchingTool.cxx:445
TauAnalysisTools::IBuildTruthTaus
Definition:
IBuildTruthTaus.h:28
TauAnalysisTools::TauTruthMatchingTool::getDecayMode
virtual xAOD::TauJetParameters::DecayMode getDecayMode(const xAOD::TauJet &xTau) override final
Definition:
TauTruthMatchingTool.cxx:229
TauAnalysisTools::TauTruthMatchingTool::initialize
virtual StatusCode initialize() override final
Definition:
TauTruthMatchingTool.cxx:32
TauAnalysisTools::TauTruthMatchingTool::getTruth
virtual const xAOD::TruthParticle * getTruth(const xAOD::TauJet &xTau) override final
Definition:
TauTruthMatchingTool.cxx:58
TauAnalysisTools::TauTruthMatchingTool::m_bIsTruthMatchedAvailable
CxxUtils::CachedValue< bool > m_bIsTruthMatchedAvailable
Definition:
TauTruthMatchingTool.h:87
TauAnalysisTools::TauTruthMatchingTool::getNTauDecayParticles
virtual int getNTauDecayParticles(const xAOD::TauJet &xTau, int iPdgId, bool bCompareAbsoluteValues=false) override final
Definition:
TauTruthMatchingTool.cxx:188
TauAnalysisTools::TauTruthMatchingTool::m_accPtVis
SG::ConstAccessor< double > m_accPtVis
Definition:
TauTruthMatchingTool.h:92
Generated on Tue Sep 2 2025 21:21:55 for ATLAS Offline Software by
1.8.18