ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
TauID
TauAnalysisTools
TauAnalysisTools
TauTruthMatchingTool.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 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
#include <vector>
20
#include <string>
21
22
namespace
TauAnalysisTools
23
{
24
25
class
TauTruthMatchingTool
26
:
public
virtual
TauAnalysisTools::BuildTruthTaus
27
,
public
virtual
TauAnalysisTools::ITauTruthMatchingTool
28
{
30
ASG_TOOL_CLASS2
(
TauTruthMatchingTool
,
31
TauAnalysisTools::IBuildTruthTaus
,
32
TauAnalysisTools::ITauTruthMatchingTool
)
33
34
public
:
// Interface functions
35
36
TauTruthMatchingTool
(
const
std::string& name );
37
38
virtual
~TauTruthMatchingTool
() =
default
;
39
40
// initialize the tool
41
virtual
StatusCode
initialize
() override final;
42
43
virtual
std
::
unique_ptr
<
ITruthTausEvent
>
getEvent
()
const
override final;
44
45
// get pointer to the truth matched particle, if no truth particle was found a null pointer is returned
46
virtual
const
xAOD
::
TruthParticle
*
getTruth
(
const
xAOD
::TauJet& xTau) override final;
47
virtual
const
xAOD
::
TruthParticle
*
getTruth
(
const
xAOD
::TauJet& xTau,
48
ITruthTausEvent
& truthTausEVent)
const
override final;
49
virtual
std
::
vector
<
const
xAOD
::
TruthParticle
*>
getTruth
(
const
std
::
vector
<
const
xAOD
::TauJet*>& vTaus) override final;
50
51
public:
// Wrapper functions
52
53
// wrapper function to get truth tau visible TLorentzvector
54
virtual TLorentzVector
getTruthTauP4Vis
(
const
xAOD
::TauJet& xTau) override final;
55
virtual TLorentzVector
getTruthTauP4Vis
(
const
xAOD
::
TruthParticle
& xTruthTau)
const
override final;
56
57
// wrapper function to get truth tau invisible TLorentzvector
58
virtual TLorentzVector
getTruthTauP4Invis
(
const
xAOD
::TauJet& xTau) override final;
59
virtual TLorentzVector
getTruthTauP4Invis
(
const
xAOD
::
TruthParticle
& xTruthTau)
const
override final;
60
61
// function to check if a reconstructed electron or muon is matched to a true tau
62
bool
matchTruthLeptonicTauDecay
(
const
xAOD
::
IParticle
* p,
const
xAOD
::
TruthParticleContainer
* truth_taus);
63
64
// get type of truth match particle (hadronic tau, leptonic tau, electron, muon, jet)
65
virtual
TauAnalysisTools
::
TruthMatchedParticleType
getTruthParticleType
(
const
xAOD
::TauJet& xTau) override final;
66
67
// wrapper function to count number of decay particles of given pdg id
68
virtual
int
getNTauDecayParticles
(
const
xAOD
::TauJet& xTau,
int
iPdgId,
bool
bCompareAbsoluteValues = false) override final;
69
virtual
int
getNTauDecayParticles
(
const
xAOD
::
TruthParticle
& xTruthTau,
int
iPdgId,
bool
bCompareAbsoluteValues = false)
const
override final;
70
71
// wrapper function to obtain truth verion of xAOD::TauJetParameters::DecayMode
72
virtual
xAOD
::TauJetParameters::DecayMode
getDecayMode
(
const
xAOD
::TauJet& xTau) override final;
73
virtual
xAOD
::TauJetParameters::DecayMode
getDecayMode
(
const
xAOD
::
TruthParticle
& xTruthTau)
const
override final;
74
80
virtual StatusCode
lockDecorations
(
const
xAOD
::TauJetContainer&
taus
)
const
override final;
81
82
private
:
// private helper functions
83
84
StatusCode
findTruthTau
(
const
xAOD
::TauJet& xTau,
85
TruthTausEvent& truthTausEvent)
const
;
86
StatusCode
checkTruthMatch
(
const
xAOD
::TauJet& xTau,
const
xAOD
::
TruthParticleContainer
& xTauContainer,
const
TruthTausEvent& truthTausEvent)
const
;
87
88
private
:
// steering variables
89
90
Gaudi
::
Property
<
double
>
m_dMaxDeltaR
{
this
,
"MaxDeltaR"
, 0.2};
91
92
CxxUtils::CachedValue<bool>
m_bIsTruthMatchedAvailable
;
93
CxxUtils::CachedValue<bool>
m_bIsTruthParticleLinkAvailable
;
94
95
private
:
// private helper variables
96
97
SG::ConstAccessor<double>
m_accPtVis
;
98
SG::ConstAccessor<double>
m_accEtaVis
;
99
SG::ConstAccessor<double>
m_accPhiVis
;
100
SG::ConstAccessor<double>
m_accMVis
;
101
102
};
// class TauTruthMatchingTool
103
104
}
105
#endif
// TAUANALYSISTOOLS_TAUTRUTHMATCHINGTOOL_H
ASG_TOOL_CLASS2
#define ASG_TOOL_CLASS2(CLASSNAME, INT1, INT2)
Definition
AsgToolMacros.h:77
BuildTruthTaus.h
CachedValue.h
Cached value with atomic update.
ITauTruthMatchingTool.h
taus
static Double_t taus
Definition
LArPhysWaveHECTool.cxx:37
PropertyWrapper.h
CxxUtils::CachedValue
Cached value with atomic update.
Definition
CachedValue.h:55
IParticle
Definition
Event/EventKernel/EventKernel/IParticle.h:43
Property
Support class for PropertyMgr.
Definition
Property.h:23
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition
ConstAccessor.h:55
TauAnalysisTools::BuildTruthTaus
Definition
BuildTruthTaus.h:39
TauAnalysisTools::IBuildTruthTaus::ITruthTausEvent
Declare the interface that the class provides.
Definition
IBuildTruthTaus.h:37
TauAnalysisTools::IBuildTruthTaus
Definition
IBuildTruthTaus.h:30
TauAnalysisTools::ITauTruthMatchingTool
Definition
ITauTruthMatchingTool.h:34
TauAnalysisTools::TauTruthMatchingTool
Definition
TauTruthMatchingTool.h:28
TauAnalysisTools::TauTruthMatchingTool::m_accEtaVis
SG::ConstAccessor< double > m_accEtaVis
Definition
TauTruthMatchingTool.h:98
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:477
TauAnalysisTools::TauTruthMatchingTool::getTruthTauP4Vis
virtual TLorentzVector getTruthTauP4Vis(const xAOD::TauJet &xTau) override final
Definition
TauTruthMatchingTool.cxx:111
TauAnalysisTools::TauTruthMatchingTool::findTruthTau
StatusCode findTruthTau(const xAOD::TauJet &xTau, TruthTausEvent &truthTausEvent) const
Definition
TauTruthMatchingTool.cxx:316
TauAnalysisTools::TauTruthMatchingTool::m_bIsTruthParticleLinkAvailable
CxxUtils::CachedValue< bool > m_bIsTruthParticleLinkAvailable
Definition
TauTruthMatchingTool.h:93
TauAnalysisTools::TauTruthMatchingTool::getEvent
virtual std::unique_ptr< ITruthTausEvent > getEvent() const override final
Definition
TauTruthMatchingTool.cxx:38
TauAnalysisTools::TauTruthMatchingTool::m_accPhiVis
SG::ConstAccessor< double > m_accPhiVis
Definition
TauTruthMatchingTool.h:99
TauAnalysisTools::TauTruthMatchingTool::m_accMVis
SG::ConstAccessor< double > m_accMVis
Definition
TauTruthMatchingTool.h:100
TauAnalysisTools::TauTruthMatchingTool::m_dMaxDeltaR
Gaudi::Property< double > m_dMaxDeltaR
Definition
TauTruthMatchingTool.h:90
TauAnalysisTools::TauTruthMatchingTool::matchTruthLeptonicTauDecay
bool matchTruthLeptonicTauDecay(const xAOD::IParticle *p, const xAOD::TruthParticleContainer *truth_taus)
Definition
TauTruthMatchingTool.cxx:180
TauAnalysisTools::TauTruthMatchingTool::getTruthParticleType
virtual TauAnalysisTools::TruthMatchedParticleType getTruthParticleType(const xAOD::TauJet &xTau) override final
Definition
TauTruthMatchingTool.cxx:174
TauAnalysisTools::TauTruthMatchingTool::initialize
virtual StatusCode initialize() override final
Definition
TauTruthMatchingTool.cxx:22
TauAnalysisTools::TauTruthMatchingTool::~TauTruthMatchingTool
virtual ASG_TOOL_CLASS2(TauTruthMatchingTool, TauAnalysisTools::IBuildTruthTaus, TauAnalysisTools::ITauTruthMatchingTool) public ~TauTruthMatchingTool()=default
Create a proper constructor for Athena.
TauAnalysisTools::TauTruthMatchingTool::getDecayMode
virtual xAOD::TauJetParameters::DecayMode getDecayMode(const xAOD::TauJet &xTau) override final
Definition
TauTruthMatchingTool.cxx:261
TauAnalysisTools::TauTruthMatchingTool::getNTauDecayParticles
virtual int getNTauDecayParticles(const xAOD::TauJet &xTau, int iPdgId, bool bCompareAbsoluteValues=false) override final
Definition
TauTruthMatchingTool.cxx:220
TauAnalysisTools::TauTruthMatchingTool::getTruthTauP4Invis
virtual TLorentzVector getTruthTauP4Invis(const xAOD::TauJet &xTau) override final
Definition
TauTruthMatchingTool.cxx:140
TauAnalysisTools::TauTruthMatchingTool::getTruth
virtual const xAOD::TruthParticle * getTruth(const xAOD::TauJet &xTau) override final
Definition
TauTruthMatchingTool.cxx:49
TauAnalysisTools::TauTruthMatchingTool::m_bIsTruthMatchedAvailable
CxxUtils::CachedValue< bool > m_bIsTruthMatchedAvailable
Definition
TauTruthMatchingTool.h:92
TauAnalysisTools::TauTruthMatchingTool::m_accPtVis
SG::ConstAccessor< double > m_accPtVis
Definition
TauTruthMatchingTool.h:97
TauAnalysisTools::TauTruthMatchingTool::checkTruthMatch
StatusCode checkTruthMatch(const xAOD::TauJet &xTau, const xAOD::TruthParticleContainer &xTauContainer, const TruthTausEvent &truthTausEvent) const
Definition
TauTruthMatchingTool.cxx:346
TruthParticleContainer
Definition
PhysicsAnalysis/TruthParticleID/McParticleEvent/McParticleEvent/TruthParticleContainer.h:42
TruthParticle
(HepMC) Monte Carlo particle.
Definition
PhysicsAnalysis/TruthParticleID/McParticleEvent/McParticleEvent/TruthParticle.h:58
unique_ptr
STL class.
vector
Definition
MultiHisto.h:13
const
Gaudi
=============================================================================
Definition
CaloGPUClusterAndCellDataMonitorOptions.h:274
TauAnalysisTools
Definition
PhysValMET.h:37
TauAnalysisTools::TruthMatchedParticleType
TruthMatchedParticleType
Definition
PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:107
std
STL namespace.
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition
ICaloAffectedTool.h:24
private
#define private
Definition
testRead.cxx:27
Generated on
for ATLAS Offline Software by
1.17.0