Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
ITauTruthMatchingTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TAUANALYSISTOOLS_ITAUTRUTHMATCHINGTOOL_H
6 #define TAUANALYSISTOOLS_ITAUTRUTHMATCHINGTOOL_H
7 
8 /*
9  author: Dirk Duschinger
10  mail: dirk.duschinger@cern.ch
11  documentation in: ../README.rst
12 */
13 
14 // Framework include(s):
15 #include "AsgTools/IAsgTool.h"
16 
17 // EDM include(s):
18 #include "xAODTau/TauJet.h"
20 
21 // // local include(s)
22 #include "IBuildTruthTaus.h"
23 
24 // local include(s)
25 #include "TauAnalysisTools/Enums.h"
26 
27 namespace TauAnalysisTools
28 {
29 
31  // The order matters, do not switch them !!!
32  : public virtual TauAnalysisTools::IBuildTruthTaus
33  , public virtual asg::IAsgTool
34 {
35 
38 
39 public:
40  // initialize the tool
41  virtual StatusCode initialize() = 0;
42 
43  virtual std::unique_ptr<ITruthTausEvent> getEvent() const = 0;
44 
45  // get pointer to truth tau, if no truth tau was found a null pointer is returned
46  virtual const xAOD::TruthParticle* getTruth(const xAOD::TauJet& xTau) = 0;
47  virtual const xAOD::TruthParticle* getTruth(const xAOD::TauJet& xTau,
48  ITruthTausEvent& truthTausEvent) const = 0;
49  virtual std::vector<const xAOD::TruthParticle*> getTruth(const std::vector<const xAOD::TauJet*>& vTaus) = 0;
50 
51  // wrapper function to get truth tau visible TLorentzvector
52  virtual TLorentzVector getTruthTauP4Vis(const xAOD::TauJet& xTau) = 0;
53  virtual TLorentzVector getTruthTauP4Vis(const xAOD::TruthParticle& xTruthTau) const = 0;
54 
55  // wrapper function to get truth tau invisible TLorentzvector
56  virtual TLorentzVector getTruthTauP4Invis(const xAOD::TauJet& xTau) = 0;
57  virtual TLorentzVector getTruthTauP4Invis(const xAOD::TruthParticle& xTruthTau) const = 0;
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) = 0;
64  virtual int getNTauDecayParticles(const xAOD::TruthParticle& xTruthTau, int iPdgId, bool bCompareAbsoluteValues = false) const = 0;
65 
66  // wrapper function to obtain truth version of xAOD::TauJetParameters::DecayMode
69 
70  virtual StatusCode lockDecorations (const xAOD::TauJetContainer& taus) const = 0;
71 
72 }; // class ITauTruthMatchingTool
73 
74 } // namespace TauAnalysisTools
75 
76 #endif // TAUANALYSISTOOLS_ITAUTRUTHMATCHINGTOOL_H
TauAnalysisTools::ITauTruthMatchingTool::getNTauDecayParticles
virtual int getNTauDecayParticles(const xAOD::TruthParticle &xTruthTau, int iPdgId, bool bCompareAbsoluteValues=false) const =0
TauAnalysisTools
Definition: TruthCollectionMakerTau.h:16
TauAnalysisTools::ITauTruthMatchingTool::getTruthTauP4Vis
virtual TLorentzVector getTruthTauP4Vis(const xAOD::TruthParticle &xTruthTau) const =0
TauAnalysisTools::ITauTruthMatchingTool::getTruth
virtual const xAOD::TruthParticle * getTruth(const xAOD::TauJet &xTau, ITruthTausEvent &truthTausEvent) const =0
Enums.h
TauAnalysisTools::ITauTruthMatchingTool::getTruthTauP4Invis
virtual TLorentzVector getTruthTauP4Invis(const xAOD::TauJet &xTau)=0
TauAnalysisTools::ITauTruthMatchingTool::getEvent
virtual std::unique_ptr< ITruthTausEvent > getEvent() const =0
TauAnalysisTools::IBuildTruthTaus::ITruthTausEvent
Declare the interface that the class provides.
Definition: IBuildTruthTaus.h:35
TauAnalysisTools::ITauTruthMatchingTool::initialize
virtual StatusCode initialize()=0
Declare the interface that the class provides.
asg::IAsgTool
Base class for the dual-use tool interface classes.
Definition: IAsgTool.h:41
TauAnalysisTools::ITauTruthMatchingTool::lockDecorations
virtual StatusCode lockDecorations(const xAOD::TauJetContainer &taus) const =0
TauAnalysisTools::ITauTruthMatchingTool::getTruthTauP4Invis
virtual TLorentzVector getTruthTauP4Invis(const xAOD::TruthParticle &xTruthTau) const =0
TauAnalysisTools::ITauTruthMatchingTool::getTruthParticleType
virtual TauAnalysisTools::TruthMatchedParticleType getTruthParticleType(const xAOD::TauJet &xTau)=0
TauAnalysisTools::ITauTruthMatchingTool::getTruthTauP4Vis
virtual TLorentzVector getTruthTauP4Vis(const xAOD::TauJet &xTau)=0
xAOD::TauJetParameters::DecayMode
DecayMode
Definition: TauDefs.h:385
TauAnalysisTools::ITauTruthMatchingTool::getNTauDecayParticles
virtual int getNTauDecayParticles(const xAOD::TauJet &xTau, int iPdgId, bool bCompareAbsoluteValues=false)=0
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
xAOD::TauJet_v3
Class describing a tau jet.
Definition: TauJet_v3.h:41
TauAnalysisTools::ITauTruthMatchingTool
Definition: ITauTruthMatchingTool.h:34
ASG_TOOL_INTERFACE
#define ASG_TOOL_INTERFACE(CLASSNAME)
Definition: AsgToolMacros.h:40
IAsgTool.h
TauJetContainer.h
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
IBuildTruthTaus.h
TauAnalysisTools::TruthMatchedParticleType
TruthMatchedParticleType
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:95
TauAnalysisTools::ITauTruthMatchingTool::getDecayMode
virtual xAOD::TauJetParameters::DecayMode getDecayMode(const xAOD::TauJet &xTau)=0
TauAnalysisTools::ITauTruthMatchingTool::getTruth
virtual const xAOD::TruthParticle * getTruth(const xAOD::TauJet &xTau)=0
TauJet.h
TauAnalysisTools::IBuildTruthTaus
Definition: IBuildTruthTaus.h:28
TauAnalysisTools::ITauTruthMatchingTool::getDecayMode
virtual xAOD::TauJetParameters::DecayMode getDecayMode(const xAOD::TruthParticle &xTruthTau) const =0
TauAnalysisTools::ITauTruthMatchingTool::getTruth
virtual std::vector< const xAOD::TruthParticle * > getTruth(const std::vector< const xAOD::TauJet * > &vTaus)=0