ATLAS Offline Software
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):
17 #include "CxxUtils/CachedValue.h"
19 
20 namespace TauAnalysisTools
21 {
22 
24  : public virtual TauAnalysisTools::BuildTruthTaus
26 {
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)
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 
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 
89 
90 private: // private helper variables
91 
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