ATLAS Offline Software
Loading...
Searching...
No Matches
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):
20
21// Local include(s):
24
25// Tool include(s)
27
28namespace TauAnalysisTools
29{
30
32 : public virtual ITauEfficiencyCorrectionsTool
34{
37
38public:
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
76private:
77 StatusCode firstEvent();
78 StatusCode beginEvent();
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
88 StatusCode initializeTools_2022_prerec();
89 StatusCode initializeTools_2025_prerec();
90
91 StatusCode readRandomRunNumber();
92
93private:
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;
119 bool m_firstEvent = false;
120 unsigned int m_iRunNumber;
121
122}; // class TauEfficiencyCorrectionsTool
123
124} // namespace TauAnalysisTools
125
126#endif // TAUANALYSISTOOLS_TAUEFFICIENCYCORRECTIONSTOOL_H
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Return value from object correction CP tools.
Class to wrap a set of SystematicVariations.
virtual StatusCode initialize()
Function initialising the tool.
virtual bool isAffectedBySystematic(const CP::SystematicVariation &systematic) const
returns: whether this tool is affected by the given systematics
std::vector< asg::AnaToolHandle< ITauEfficiencyCorrectionsTool > * > m_vTriggerEfficiencyTools
virtual void printConfig() const
Print tool configuration.
virtual bool isSupportedRunNumber(int) const
check if run number is supported in recommendations
virtual CP::SystematicSet affectingSystematics() const
returns: the list of all systematics this tool can be affected by
TauEfficiencyCorrectionsTool(const std::string &sName)
Create a proper constructor for Athena.
virtual StatusCode beginInputFile()
Function called when a new input file is opened.
virtual CP::SystematicSet recommendedSystematics() const
returns: the list of all systematics this tool recommends to use
Gaudi::Property< std::vector< int > > m_vecEfficiencyCorrectionTypes
virtual CP::CorrectionCode getEfficiencyScaleFactor(const xAOD::TauJet &xTau, double &eff, unsigned int iRunNumber=0)
Get the tau efficiency scale factor.
StatusCode beginEvent()
Function called when a new events is loaded.
std::vector< asg::AnaToolHandle< ITauEfficiencyCorrectionsTool > * > m_vCommonEfficiencyTools
virtual CP::CorrectionCode applyEfficiencyScaleFactor(const xAOD::TauJet &xTau, unsigned int iRunNumber=0)
Decorate the tau with its efficiency scale factor.
virtual StatusCode applySystematicVariation(const CP::SystematicSet &systConfig)
effects: configure this tool for the given list of systematic variations.
Base class for dual-use tools that provide file metadata access.
TauJet_v3 TauJet
Definition of the current "tau version".