00001
00002 #ifndef TAUANALYSISTOOLS_ITAUTRUTHMATCHINGTOOL_H
00003 #define TAUANALYSISTOOLS_ITAUTRUTHMATCHINGTOOL_H
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include "AsgTools/IAsgTool.h"
00017
00018
00019 #include "xAODTau/TauJet.h"
00020 #include "xAODTruth/TruthParticleContainer.h"
00021 #include "xAODTruth/TruthParticleAuxContainer.h"
00022
00023
00024 #include "Enums.h"
00025
00026 namespace TauAnalysisTools
00027 {
00028
00029 class ITauTruthMatchingTool :
00030 public virtual asg::IAsgTool
00031 {
00032
00034 ASG_TOOL_INTERFACE( TauAnalysisTools::ITauTruthMatchingTool )
00035
00036 public:
00037
00038 virtual StatusCode initialize() = 0;
00039
00040
00041 virtual xAOD::TruthParticleContainer* getTruthTauContainer() = 0;
00042
00043
00044 virtual xAOD::TruthParticleAuxContainer* getTruthTauAuxContainer() = 0;
00045
00046
00047 virtual const xAOD::TruthParticle* applyTruthMatch(const xAOD::TauJet& xTau) = 0;
00048
00049
00050 virtual std::vector<const xAOD::TruthParticle*> applyTruthMatch(const std::vector<const xAOD::TauJet*>& vTaus) = 0;
00051
00052
00053 virtual StatusCode setTruthParticleContainer(const xAOD::TruthParticleContainer* xTruthParticleContainer) __attribute__ ((deprecated("This function is deprecated. Please remove it from your code and use the configurable property \"TruthParticlesContainerName\" instead.\nFor further information please refer to the README:\nhttps://svnweb.cern.ch/trac/atlasoff/browser/PhysicsAnalysis/TauID/TauAnalysisTools/trunk/doc/README-TauTruthMatchingTool.rst"))) = 0;
00054
00055
00056 virtual StatusCode initializeEvent() __attribute__ ((deprecated("This function is deprecated. Please remove it from your code.\nFor further information please refer to the README:\nhttps://svnweb.cern.ch/trac/atlasoff/browser/PhysicsAnalysis/TauID/TauAnalysisTools/trunk/doc/README-TauTruthMatchingTool.rst"))) = 0;
00057
00058
00059 virtual const xAOD::TruthParticle* getTruth(const xAOD::TauJet& xTau) = 0;
00060
00061
00062 virtual TLorentzVector getTruthTauP4Vis(const xAOD::TauJet& xTau) = 0;
00063 virtual TLorentzVector getTruthTauP4Vis(const xAOD::TruthParticle& xTruthTau) = 0;
00064
00065
00066 virtual TLorentzVector getTruthTauP4Prompt(const xAOD::TauJet& xTau) = 0;
00067 virtual TLorentzVector getTruthTauP4Prompt(const xAOD::TruthParticle& xTruthTau) = 0;
00068
00069
00070 virtual TLorentzVector getTruthTauP4Invis(const xAOD::TauJet& xTau) = 0;
00071 virtual TLorentzVector getTruthTauP4Invis(const xAOD::TruthParticle& xTruthTau) = 0;
00072
00073
00074 virtual TauAnalysisTools::TruthMatchedParticleType getTruthParticleType(const xAOD::TauJet& xTau) = 0;
00075
00076
00077 virtual int getNTauDecayParticles(const xAOD::TauJet& xTau, int iPdgId, bool bCompareAbsoluteValues = false) = 0;
00078 virtual int getNTauDecayParticles(const xAOD::TruthParticle& xTruthTau, int iPdgId, bool bCompareAbsoluteValues = false) = 0;
00079
00080
00081 virtual xAOD::TauJetParameters::DecayMode getDecayMode(const xAOD::TauJet& xTau) = 0;
00082 virtual xAOD::TauJetParameters::DecayMode getDecayMode(const xAOD::TruthParticle& xTruthTau) = 0;
00083
00084
00085 virtual StatusCode buildTruthTausFromTruthParticles() = 0;
00086 virtual StatusCode retrieveTruthTaus() = 0;
00087
00088 };
00089
00090 }
00091
00092 #endif // TAUANALYSISTOOLS_ITAUTRUTHMATCHINGTOOL_H