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
46
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 ) const
72 {
73 return true;
74 };
75
76private:
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
89
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};
105 Gaudi::Property<bool> m_useGNTau{this, "useGNTau", false};
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};
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};
123
124}
::StatusCode StatusCode
StatusCode definition for legacy code.
TauJet_v3 TauJet
Definition of the current "tau version".