ATLAS Offline Software
ITauTruthMatchingTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 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"
19 
20 // // local include(s)
21 #include "IBuildTruthTaus.h"
22 
23 // local include(s)
24 #include "TauAnalysisTools/Enums.h"
25 
26 namespace TauAnalysisTools
27 {
28 
30  // The order matters, do not switch them !!!
31  : public virtual TauAnalysisTools::IBuildTruthTaus
32  , public virtual asg::IAsgTool
33 {
34 
37 
38 public:
39  // initialize the tool
40  virtual StatusCode initialize() = 0;
41 
42  virtual std::unique_ptr<ITruthTausEvent> getEvent() const = 0;
43 
44  // get pointer to truth tau, if no truth tau was found a null pointer is returned
45  virtual const xAOD::TruthParticle* getTruth(const xAOD::TauJet& xTau) = 0;
46  virtual const xAOD::TruthParticle* getTruth(const xAOD::TauJet& xTau,
47  ITruthTausEvent& truthTausEvent) const = 0;
48  virtual std::vector<const xAOD::TruthParticle*> getTruth(const std::vector<const xAOD::TauJet*>& vTaus) = 0;
49 
50  // wrapper function to get truth tau visible TLorentzvector
51  virtual TLorentzVector getTruthTauP4Vis(const xAOD::TauJet& xTau) = 0;
52  virtual TLorentzVector getTruthTauP4Vis(const xAOD::TruthParticle& xTruthTau) const = 0;
53 
54  // wrapper function to get truth tau invisible TLorentzvector
55  virtual TLorentzVector getTruthTauP4Invis(const xAOD::TauJet& xTau) = 0;
56  virtual TLorentzVector getTruthTauP4Invis(const xAOD::TruthParticle& xTruthTau) const = 0;
57 
58  // get type of truth match particle (hadronic tau, leptonic tau, electron, muon, jet)
60 
61  // wrapper function to count number of decay particles of given pdg id
62  virtual int getNTauDecayParticles(const xAOD::TauJet& xTau, int iPdgId, bool bCompareAbsoluteValues = false) = 0;
63  virtual int getNTauDecayParticles(const xAOD::TruthParticle& xTruthTau, int iPdgId, bool bCompareAbsoluteValues = false) const = 0;
64 
65  // wrapper function to obtain truth version of xAOD::TauJetParameters::DecayMode
68 
69 }; // class ITauTruthMatchingTool
70 
71 } // namespace TauAnalysisTools
72 
73 #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::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:41
xAOD::TauJet_v3
Class describing a tau jet.
Definition: TauJet_v3.h:41
TauAnalysisTools::ITauTruthMatchingTool
Definition: ITauTruthMatchingTool.h:33
ASG_TOOL_INTERFACE
#define ASG_TOOL_INTERFACE(CLASSNAME)
Definition: AsgToolMacros.h:40
IAsgTool.h
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