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-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
// function to check if a reconstructed electron or muon is matched to a true tau
60
bool
matchTruthLeptonicTauDecay
(
const
xAOD
::
IParticle
* p,
const
xAOD
::
TruthParticleContainer
* truth_taus);
61
62
// get type of truth match particle (hadronic tau, leptonic tau, electron, muon, jet)
63
virtual
TauAnalysisTools
::
TruthMatchedParticleType
getTruthParticleType
(
const
xAOD
::TauJet& xTau) override final;
64
65
// wrapper function to count number of decay particles of given pdg id
66
virtual
int
getNTauDecayParticles
(
const
xAOD
::TauJet& xTau,
int
iPdgId,
bool
bCompareAbsoluteValues = false) override final;
67
virtual
int
getNTauDecayParticles
(
const
xAOD
::
TruthParticle
& xTruthTau,
int
iPdgId,
bool
bCompareAbsoluteValues = false)
const
override final;
68
69
// wrapper function to obtain truth verion of xAOD::TauJetParameters::DecayMode
70
virtual
xAOD
::TauJetParameters::DecayMode
getDecayMode
(
const
xAOD
::TauJet& xTau) override final;
71
virtual
xAOD
::TauJetParameters::DecayMode
getDecayMode
(
const
xAOD
::
TruthParticle
& xTruthTau)
const
override final;
72
78
virtual StatusCode
lockDecorations
(
const
xAOD
::TauJetContainer&
taus
)
const
override final;
79
80
private
:
// private helper functions
81
82
StatusCode
findTruthTau
(
const
xAOD
::TauJet& xTau,
83
TruthTausEvent& truthTausEvent)
const
;
84
StatusCode
checkTruthMatch
(
const
xAOD
::TauJet& xTau,
const
xAOD
::
TruthParticleContainer
& xTauContainer,
const
TruthTausEvent& truthTausEvent)
const
;
85
86
private
:
// steering variables
87
88
Gaudi
::
Property
<
double
>
m_dMaxDeltaR
{
this
,
"MaxDeltaR"
, 0.2};
89
90
CxxUtils::CachedValue<bool>
m_bIsTruthMatchedAvailable
;
91
CxxUtils::CachedValue<bool>
m_bIsTruthParticleLinkAvailable
;
92
93
private
:
// private helper variables
94
95
SG::ConstAccessor<double>
m_accPtVis
;
96
SG::ConstAccessor<double>
m_accEtaVis
;
97
SG::ConstAccessor<double>
m_accPhiVis
;
98
SG::ConstAccessor<double>
m_accMVis
;
99
100
};
// class TauTruthMatchingTool
101
102
}
103
#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:26
TauAnalysisTools::TauTruthMatchingTool::m_accEtaVis
SG::ConstAccessor< double > m_accEtaVis
Definition
TauTruthMatchingTool.h:96
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:91
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:97
TauAnalysisTools::TauTruthMatchingTool::m_accMVis
SG::ConstAccessor< double > m_accMVis
Definition
TauTruthMatchingTool.h:98
TauAnalysisTools::TauTruthMatchingTool::m_dMaxDeltaR
Gaudi::Property< double > m_dMaxDeltaR
Definition
TauTruthMatchingTool.h:88
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:90
TauAnalysisTools::TauTruthMatchingTool::m_accPtVis
SG::ConstAccessor< double > m_accPtVis
Definition
TauTruthMatchingTool.h:95
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:273
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