ATLAS Offline Software
Loading...
Searching...
No Matches
TauEfficiencyCorrectionsTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 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/ToolHandle.h"
20
21// Local include(s):
24
25// Tool include(s)
27
28namespace ADD_CMODE(TauAnalysisTools)
29{
30
31class TauEfficiencyCorrectionsTool
32 : public virtual ITauEfficiencyCorrectionsTool
34{
36 ASG_TOOL_CLASS( TauEfficiencyCorrectionsTool, TauAnalysisTools::ITauEfficiencyCorrectionsTool )
37
38public:
40 TauEfficiencyCorrectionsTool( const std::string& sName );
41
42 ~TauEfficiencyCorrectionsTool();
43
45 virtual StatusCode initialize();
46
47 virtual StatusCode beginInputFile();
48
50 virtual void printConfig() const;
51
53 virtual CP::CorrectionCode getEfficiencyScaleFactor( const xAOD::TauJet& xTau,
54 double& eff, unsigned int iRunNumber = 0);
55
57 virtual CP::CorrectionCode applyEfficiencyScaleFactor( const xAOD::TauJet& xTau,
58 unsigned int iRunNumber = 0);
59
61 virtual bool isAffectedBySystematic( const CP::SystematicVariation& systematic ) const;
62
64 virtual CP::SystematicSet affectingSystematics() const;
65
67 virtual CP::SystematicSet recommendedSystematics() const;
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_2025_prerec();
89
90 StatusCode readRandomRunNumber();
91
92private:
93
94 Gaudi::Property<std::string> m_sInputFilePathRecoHadTau{this, "InputFilePathRecoHadTau", ""};
95 Gaudi::Property<std::string> m_sInputFilePathEleIDHadTau{this, "InputFilePathEleIDHadTau", ""};
96 Gaudi::Property<std::string> m_sInputFilePathEleIDElectron{this, "InputFilePathEleIDElectron", ""};
97 Gaudi::Property<std::string> m_sInputFilePathJetIDHadTau{this, "InputFilePathJetIDHadTau", ""};
98 Gaudi::Property<std::string> m_sInputFilePathTriggerHadTau{this, "InputFilePathTriggerHadTau", ""};
99 Gaudi::Property<std::string> m_sRecommendationTag{this, "RecommendationTag", "2025-prerec"};
100 Gaudi::Property<std::string> m_sTriggerName{this, "TriggerName", ""};
101 Gaudi::Property<bool> m_bReadRandomRunNumber{this, "AutoTriggerYear", false};
102 Gaudi::Property<std::string> m_sTriggerSFMeasurement{this, "TriggerSFMeasurement", "combined"};
103 Gaudi::Property<bool> m_bUseTauSubstructure{this, "UseTauSubstructure", false};
104 Gaudi::Property<int> m_iJetIDLevel{this, "JetIDLevel", static_cast<int>(TauAnalysisTools::JETIDNONE)};
105 Gaudi::Property<bool> m_useGNTau{this, "useGNTau", false};
106 Gaudi::Property<int> m_iEleIDLevel{this, "EleIDLevel", static_cast<int>(TauAnalysisTools::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<bool> m_applyToData{this, "ApplyToData", false}; // for experts only
111 Gaudi::Property<std::vector<int>> m_vecEfficiencyCorrectionTypes{this, "EfficiencyCorrectionTypes", {}};
112
113 std::vector<int> m_vEfficiencyCorrectionTypes;
114 ToolHandle<ITauEfficiencyCorrectionsTool> m_tTool{this, "Tool", {}};
115 std::string m_sInputFilePathDecayModeHadTau;
116 std::string m_sVarName;
117 bool m_bIsData;
118 bool m_bIsConfigured;
119 bool m_firstEvent = false;
120 unsigned int m_iRunNumber;
121
122}; // class TauEfficiencyCorrectionsTool
123
124} // namespace ADD_CMODE(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.
Base class for dual-use tools that provide file metadata access.
TauJet_v3 TauJet
Definition of the current "tau version".
Definition TauJet.h:17
void initialize()