13#ifndef TAUANALYSISTOOLS_COMMONDITAUEFFICIENCYTOOL_H
14#define TAUANALYSISTOOLS_COMMONDITAUEFFICIENCYTOOL_H
35namespace ADD_CMODE(TauAnalysisTools)
44class CommonDiTauEfficiencyTool
45 :
public virtual IDiTauEfficiencyCorrectionsTool
49 ASG_TOOL_CLASS( CommonDiTauEfficiencyTool, TauAnalysisTools::IDiTauEfficiencyCorrectionsTool )
53 CommonDiTauEfficiencyTool(
const std::string& sName);
55 ~CommonDiTauEfficiencyTool();
87 virtual StatusCode applySystematicVariation (
const CP::SystematicSet& sSystematicSet);
95 void ReadInputs(std::unique_ptr<TFile> &fFile);
96 void addHistogramToSFMap(TKey* kKey,
const std::string& sKeyName);
98 typedef std::tuple<TObject*,
100 double& dEfficiencyScaleFactor,
101 double dVars[] ) > tTupleObjectFunc;
102 typedef std::map<std::string, tTupleObjectFunc > tSFMAP;
107 std::unique_ptr<int> m_dummy;
109 std::unique_ptr< tSFMAP > m_mSF;
112 std::unordered_map < CP::SystematicSet, std::string > m_mSystematicSets;
114 std::map<std::string, std::string> m_mSystematicsHistNames;
126 double& dEfficiencyScaleFactor)
const;
129 double& dEfficiencyScaleFactor,
133 double& dEfficiencyScaleFactor,
138 void generateSystematicSets();
140 bool m_bSFIsAvailableDiTau;
142 bool m_bSFIsAvailableCheckedDiTau;
147 Gaudi::Property<bool> m_bSkipTruthMatchCheck{
this,
"SkipTruthMatchCheck",
false};
148 Gaudi::Property<std::string> m_sInputFilePath{
this,
"InputFilePath",
""};
149 Gaudi::Property<std::string> m_sWP{
this,
"WP",
""};
150 Gaudi::Property<std::string> m_sVarName{
this,
"VarName",
""};
152 std::string m_sInputFileName;
153 std::string m_sSFHistName;