ATLAS Offline Software
TauEfficiencyCorrectionsTool.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_TAUEFFICIENCYCORRECTIONSTOOL_H
6 #define TAUANALYSISTOOLS_TAUEFFICIENCYCORRECTIONSTOOL_H
7 
8 /*
9  author: Dirk Duschinger
10  maintainer: Guillermo Hamity
11  mail: guillermo.nicolas.hamity@cern.ch
12  documentation in: ../README.rst
13  https://gitlab.cern.ch/atlas/athena/-/blob/main/PhysicsAnalysis/TauID/TauAnalysisTools/README.rst
14 */
15 
16 // Framework include(s):
18 #include "AsgTools/AnaToolHandle.h"
20 
21 // Local include(s):
24 
25 // Tool include(s)
27 
28 namespace TauAnalysisTools
29 {
30 
32  : public virtual ITauEfficiencyCorrectionsTool
33  , public asg::AsgMetadataTool
34 {
37 
38 public:
40  TauEfficiencyCorrectionsTool( const std::string& sName );
41 
43 
45  virtual StatusCode initialize();
46 
47  virtual StatusCode beginInputFile();
48 
50  virtual void printConfig() const;
51 
54  double& eff, unsigned int iRunNumber = 0);
55 
58  unsigned int iRunNumber = 0);
59 
61  virtual bool isAffectedBySystematic( const CP::SystematicVariation& systematic ) const;
62 
65 
68 
69  virtual StatusCode applySystematicVariation( const CP::SystematicSet& systConfig );
70 
71  virtual bool isSupportedRunNumber( int /*iRunNumber*/ ) const
72  {
73  return true;
74  };
75 
76 private:
79 
80  std::string ConvertJetIDToString(const int iLevel) const;
81 
82  std::string ConvertEleIDToString(const int iLevel) const;
83 
84  std::string ConvertTriggerIDToString(const int iLevel) const;
85 
86  std::string GetTriggerSFMeasurementString() const;
87 
90 
92 
93 private:
94 
95  Gaudi::Property<std::string> m_sInputFilePathRecoHadTau{this, "InputFilePathRecoHadTau", ""};
96  Gaudi::Property<std::string> m_sInputFilePathEleIDHadTau{this, "InputFilePathEleIDHadTau", ""};
97  Gaudi::Property<std::string> m_sInputFilePathEleIDElectron{this, "InputFilePathEleIDElectron", ""};
98  Gaudi::Property<std::string> m_sInputFilePathJetIDHadTau{this, "InputFilePathJetIDHadTau", ""};
99  Gaudi::Property<std::string> m_sInputFilePathTriggerHadTau{this, "InputFilePathTriggerHadTau", ""};
100  Gaudi::Property<std::string> m_sRecommendationTag{this, "RecommendationTag", "2025-prerec"};
101  Gaudi::Property<std::string> m_sTriggerName{this, "TriggerName", ""};
102  Gaudi::Property<bool> m_bReadRandomRunNumber{this, "AutoTriggerYear", false};
103  Gaudi::Property<std::string> m_sTriggerSFMeasurement{this, "TriggerSFMeasurement", "combined"};
104  Gaudi::Property<bool> m_bUseTauSubstructure{this, "UseTauSubstructure", false};
105  Gaudi::Property<int> m_iJetIDLevel{this, "JetIDLevel", static_cast<int>(JETIDNONE)};
106  Gaudi::Property<int> m_iEleIDLevel{this, "EleIDLevel", static_cast<int>(ELEIDNONE)};
107  Gaudi::Property<std::string> m_sCampaign{this, "Campaign", ""};
108  Gaudi::Property<bool> m_useFastSim{this, "useFastSim", false};
109  Gaudi::Property<bool> m_bSkipTruthMatchCheck{this, "SkipTruthMatchCheck", false};
110  Gaudi::Property<std::vector<int>> m_vecEfficiencyCorrectionTypes{this, "EfficiencyCorrectionTypes", {}};
111 
113  std::vector< asg::AnaToolHandle<ITauEfficiencyCorrectionsTool>* > m_vCommonEfficiencyTools;
114  std::vector< asg::AnaToolHandle<ITauEfficiencyCorrectionsTool>* > m_vTriggerEfficiencyTools;
116  std::string m_sVarName;
117  bool m_bIsData;
119  bool m_firstEvent = false;
120  unsigned int m_iRunNumber;
121 
122 }; // class TauEfficiencyCorrectionsTool
123 
124 } // namespace TauAnalysisTools
125 
126 #endif // TAUANALYSISTOOLS_TAUEFFICIENCYCORRECTIONSTOOL_H
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_sInputFilePathRecoHadTau
Gaudi::Property< std::string > m_sInputFilePathRecoHadTau
Definition: TauEfficiencyCorrectionsTool.h:95
TauAnalysisTools
Definition: TruthCollectionMakerTau.h:16
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_bIsConfigured
bool m_bIsConfigured
Definition: TauEfficiencyCorrectionsTool.h:118
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_sRecommendationTag
Gaudi::Property< std::string > m_sRecommendationTag
Definition: TauEfficiencyCorrectionsTool.h:100
TauAnalysisTools::TauEfficiencyCorrectionsTool::isAffectedBySystematic
virtual bool isAffectedBySystematic(const CP::SystematicVariation &systematic) const
returns: whether this tool is affected by the given systematics
Definition: TauEfficiencyCorrectionsTool.cxx:196
PropertyWrapper.h
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_sInputFilePathJetIDHadTau
Gaudi::Property< std::string > m_sInputFilePathJetIDHadTau
Definition: TauEfficiencyCorrectionsTool.h:98
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_bUseTauSubstructure
Gaudi::Property< bool > m_bUseTauSubstructure
Definition: TauEfficiencyCorrectionsTool.h:104
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_sTriggerName
Gaudi::Property< std::string > m_sTriggerName
Definition: TauEfficiencyCorrectionsTool.h:101
TauAnalysisTools::TauEfficiencyCorrectionsTool::GetTriggerSFMeasurementString
std::string GetTriggerSFMeasurementString() const
Definition: TauEfficiencyCorrectionsTool.cxx:629
TauAnalysisTools::TauEfficiencyCorrectionsTool::ConvertEleIDToString
std::string ConvertEleIDToString(const int iLevel) const
Definition: TauEfficiencyCorrectionsTool.cxx:595
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_firstEvent
bool m_firstEvent
Definition: TauEfficiencyCorrectionsTool.h:119
CP::SystematicSet
Class to wrap a set of SystematicVariations.
Definition: SystematicSet.h:31
TauAnalysisTools::TauEfficiencyCorrectionsTool::~TauEfficiencyCorrectionsTool
~TauEfficiencyCorrectionsTool()
Definition: TauEfficiencyCorrectionsTool.cxx:27
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_sVarName
std::string m_sVarName
Definition: TauEfficiencyCorrectionsTool.h:116
TauAnalysisTools::TauEfficiencyCorrectionsTool::applyEfficiencyScaleFactor
virtual CP::CorrectionCode applyEfficiencyScaleFactor(const xAOD::TauJet &xTau, unsigned int iRunNumber=0)
Decorate the tau with its efficiency scale factor.
Definition: TauEfficiencyCorrectionsTool.cxx:177
CP::SystematicVariation
Definition: SystematicVariation.h:47
TauAnalysisTools::JETIDNONE
@ JETIDNONE
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:14
TauAnalysisTools::TauEfficiencyCorrectionsTool::beginInputFile
virtual StatusCode beginInputFile()
Function called when a new input file is opened.
Definition: TauEfficiencyCorrectionsTool.cxx:553
ITauEfficiencyCorrectionsTool.h
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_vTriggerEfficiencyTools
std::vector< asg::AnaToolHandle< ITauEfficiencyCorrectionsTool > * > m_vTriggerEfficiencyTools
Definition: TauEfficiencyCorrectionsTool.h:114
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_vEfficiencyCorrectionTypes
std::vector< int > m_vEfficiencyCorrectionTypes
Definition: TauEfficiencyCorrectionsTool.h:112
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_iRunNumber
unsigned int m_iRunNumber
Definition: TauEfficiencyCorrectionsTool.h:120
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_vCommonEfficiencyTools
std::vector< asg::AnaToolHandle< ITauEfficiencyCorrectionsTool > * > m_vCommonEfficiencyTools
Definition: TauEfficiencyCorrectionsTool.h:113
IPileupReweightingTool.h
TauAnalysisTools::TauEfficiencyCorrectionsTool::beginEvent
StatusCode beginEvent()
Function called when a new events is loaded.
Definition: TauEfficiencyCorrectionsTool.cxx:99
TauAnalysisTools::TauEfficiencyCorrectionsTool::readRandomRunNumber
StatusCode readRandomRunNumber()
Definition: TauEfficiencyCorrectionsTool.cxx:643
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_sInputFilePathTriggerHadTau
Gaudi::Property< std::string > m_sInputFilePathTriggerHadTau
Definition: TauEfficiencyCorrectionsTool.h:99
TauAnalysisTools::ELEIDNONE
@ ELEIDNONE
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TauAnalysisTools::TauEfficiencyCorrectionsTool
Definition: TauEfficiencyCorrectionsTool.h:34
TauAnalysisTools::TauEfficiencyCorrectionsTool::initialize
virtual StatusCode initialize()
Function initialising the tool.
Definition: TauEfficiencyCorrectionsTool.cxx:34
TauAnalysisTools::TauEfficiencyCorrectionsTool::getEfficiencyScaleFactor
virtual CP::CorrectionCode getEfficiencyScaleFactor(const xAOD::TauJet &xTau, double &eff, unsigned int iRunNumber=0)
Get the tau efficiency scale factor.
Definition: TauEfficiencyCorrectionsTool.cxx:152
xAOD::TauJet_v3
Class describing a tau jet.
Definition: TauJet_v3.h:41
TauAnalysisTools::TauEfficiencyCorrectionsTool::TauEfficiencyCorrectionsTool
TauEfficiencyCorrectionsTool(const std::string &sName)
Create a proper constructor for Athena.
Definition: TauEfficiencyCorrectionsTool.cxx:18
TauAnalysisTools::TauEfficiencyCorrectionsTool::ConvertTriggerIDToString
std::string ConvertTriggerIDToString(const int iLevel) const
Definition: TauEfficiencyCorrectionsTool.cxx:612
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_sTriggerSFMeasurement
Gaudi::Property< std::string > m_sTriggerSFMeasurement
Definition: TauEfficiencyCorrectionsTool.h:103
AnaToolHandle.h
TauAnalysisTools::TauEfficiencyCorrectionsTool::printConfig
virtual void printConfig() const
Print tool configuration.
Definition: TauEfficiencyCorrectionsTool.cxx:130
CommonEfficiencyTool.h
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_bReadRandomRunNumber
Gaudi::Property< bool > m_bReadRandomRunNumber
Definition: TauEfficiencyCorrectionsTool.h:102
TauAnalysisTools::TauEfficiencyCorrectionsTool::isSupportedRunNumber
virtual bool isSupportedRunNumber(int) const
check if run number is supported in recommendations
Definition: TauEfficiencyCorrectionsTool.h:71
TauAnalysisTools::TauEfficiencyCorrectionsTool::recommendedSystematics
virtual CP::SystematicSet recommendedSystematics() const
returns: the list of all systematics this tool recommends to use
Definition: TauEfficiencyCorrectionsTool.cxx:216
TauAnalysisTools::TauEfficiencyCorrectionsTool::initializeTools_2022_prerec
StatusCode initializeTools_2022_prerec()
Definition: TauEfficiencyCorrectionsTool.cxx:405
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_sInputFilePathDecayModeHadTau
std::string m_sInputFilePathDecayModeHadTau
Definition: TauEfficiencyCorrectionsTool.h:115
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_vecEfficiencyCorrectionTypes
Gaudi::Property< std::vector< int > > m_vecEfficiencyCorrectionTypes
Definition: TauEfficiencyCorrectionsTool.h:110
asg::AsgMetadataTool
Base class for dual-use tools that provide file metadata access.
Definition: AsgMetadataTool.h:48
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_iEleIDLevel
Gaudi::Property< int > m_iEleIDLevel
Definition: TauEfficiencyCorrectionsTool.h:106
TauAnalysisTools::TauEfficiencyCorrectionsTool::initializeTools_2025_prerec
StatusCode initializeTools_2025_prerec()
Definition: TauEfficiencyCorrectionsTool.cxx:234
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
AsgMetadataTool.h
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_sCampaign
Gaudi::Property< std::string > m_sCampaign
Definition: TauEfficiencyCorrectionsTool.h:107
CP::CorrectionCode
Return value from object correction CP tools.
Definition: CorrectionCode.h:31
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_sInputFilePathEleIDElectron
Gaudi::Property< std::string > m_sInputFilePathEleIDElectron
Definition: TauEfficiencyCorrectionsTool.h:97
dqt_zlumi_alleff_HIST.eff
int eff
Definition: dqt_zlumi_alleff_HIST.py:113
TauAnalysisTools::TauEfficiencyCorrectionsTool::affectingSystematics
virtual CP::SystematicSet affectingSystematics() const
returns: the list of all systematics this tool can be affected by
Definition: TauEfficiencyCorrectionsTool.cxx:206
TauAnalysisTools::TauEfficiencyCorrectionsTool::firstEvent
StatusCode firstEvent()
Definition: TauEfficiencyCorrectionsTool.cxx:81
TauAnalysisTools::ITauEfficiencyCorrectionsTool
Definition: ITauEfficiencyCorrectionsTool.h:31
TauAnalysisTools::TauEfficiencyCorrectionsTool::applySystematicVariation
virtual StatusCode applySystematicVariation(const CP::SystematicSet &systConfig)
effects: configure this tool for the given list of systematic variations.
Definition: TauEfficiencyCorrectionsTool.cxx:225
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_iJetIDLevel
Gaudi::Property< int > m_iJetIDLevel
Definition: TauEfficiencyCorrectionsTool.h:105
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_bSkipTruthMatchCheck
Gaudi::Property< bool > m_bSkipTruthMatchCheck
Definition: TauEfficiencyCorrectionsTool.h:109
TauAnalysisTools::TauEfficiencyCorrectionsTool::ConvertJetIDToString
std::string ConvertJetIDToString(const int iLevel) const
Definition: TauEfficiencyCorrectionsTool.cxx:574
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_useFastSim
Gaudi::Property< bool > m_useFastSim
Definition: TauEfficiencyCorrectionsTool.h:108
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_sInputFilePathEleIDHadTau
Gaudi::Property< std::string > m_sInputFilePathEleIDHadTau
Definition: TauEfficiencyCorrectionsTool.h:96
TauAnalysisTools::TauEfficiencyCorrectionsTool::m_bIsData
bool m_bIsData
Definition: TauEfficiencyCorrectionsTool.h:117