ATLAS Offline Software
Loading...
Searching...
No Matches
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)
26
27namespace TauAnalysisTools
28{
29
31 // The order matters, do not switch them !!!
33 , public virtual asg::IAsgTool
34{
35
38
39public:
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
#define ASG_TOOL_INTERFACE(CLASSNAME)
static Double_t taus
Declare the interface that the class provides.
virtual int getNTauDecayParticles(const xAOD::TruthParticle &xTruthTau, int iPdgId, bool bCompareAbsoluteValues=false) const =0
virtual std::vector< const xAOD::TruthParticle * > getTruth(const std::vector< const xAOD::TauJet * > &vTaus)=0
virtual const xAOD::TruthParticle * getTruth(const xAOD::TauJet &xTau, ITruthTausEvent &truthTausEvent) const =0
virtual StatusCode initialize()=0
Declare the interface that the class provides.
virtual TLorentzVector getTruthTauP4Vis(const xAOD::TauJet &xTau)=0
virtual const xAOD::TruthParticle * getTruth(const xAOD::TauJet &xTau)=0
virtual xAOD::TauJetParameters::DecayMode getDecayMode(const xAOD::TauJet &xTau)=0
virtual TLorentzVector getTruthTauP4Vis(const xAOD::TruthParticle &xTruthTau) const =0
virtual int getNTauDecayParticles(const xAOD::TauJet &xTau, int iPdgId, bool bCompareAbsoluteValues=false)=0
virtual TLorentzVector getTruthTauP4Invis(const xAOD::TauJet &xTau)=0
virtual std::unique_ptr< ITruthTausEvent > getEvent() const =0
virtual TLorentzVector getTruthTauP4Invis(const xAOD::TruthParticle &xTruthTau) const =0
virtual xAOD::TauJetParameters::DecayMode getDecayMode(const xAOD::TruthParticle &xTruthTau) const =0
virtual TauAnalysisTools::TruthMatchedParticleType getTruthParticleType(const xAOD::TauJet &xTau)=0
virtual StatusCode lockDecorations(const xAOD::TauJetContainer &taus) const =0
Base class for the dual-use tool interface classes.
Definition IAsgTool.h:41
TauJet_v3 TauJet
Definition of the current "tau version".
TruthParticle_v1 TruthParticle
Typedef to implementation.
TauJetContainer_v3 TauJetContainer
Definition of the current "taujet container version".