33 m_CDIfile(
"xAODBTaggingEfficiency/13TeV/2020-21-13TeV-MC16-CDI-2020-03-11_v3.root"),
48 m_ptBins(
"15:20:30:45:60:80:110:160:210:260:310:400:500:600:800:1000:1200:1500:1800:2500"),
49 m_etaBins(
"0.:0.3:0.8:1.2:2.1:2.8:3.6:4.5"),
57 m_WP(
"FixedCutBEff_70"),
67 const std::string truthWeightToolName =
"PMGTruthWeightTool";
68 if (asg::ToolStore::contains<PMGTools::PMGTruthWeightTool>(truthWeightToolName))
m_PMGTruthWeights =
69 asg::ToolStore::get<PMGTools::PMGTruthWeightTool>(truthWeightToolName);
78 if (
s.substr(0, 3) ==
"WP:")
m_WP =
s.substr(3,
s.size() - 3);
79 else if (
s.substr(0, 7) ==
"tagger:")
m_tagger =
s.substr(7,
s.size() - 7);
80 else if (
s.substr(0, 8) ==
"CDIfile:")
m_CDIfile =
s.substr(8,
s.size() - 8);
81 else if (
s.substr(0, 3) ==
"pt:" ||
s.substr(0, 3) ==
"pT:")
m_ptBins =
s.substr(3,
s.size() - 3);
82 else if (
s.substr(0, 7) ==
"abseta:")
m_etaBins =
s.substr(7,
s.size() - 7);
83 else if (
s.substr(0, 7) ==
"max_pT:")
m_max_pT = std::stof(
s.substr(7,
s.size() - 7));
84 else if (
s.substr(0, 7) ==
"min_pT:")
m_min_pT = std::stof(
s.substr(7,
s.size() - 7));
85 else if (
s.substr(0, 5) ==
"N_pT:")
m_N_pT_bins = std::stoi(
s.substr(5,
s.size() - 5));
86 else if (
s.substr(0, 8) ==
"max_eta:")
m_max_Eta = std::stof(
s.substr(8,
s.size() - 8));
87 else if (
s.substr(0, 8) ==
"min_eta:")
m_min_Eta = std::stof(
s.substr(8,
s.size() - 8));
88 else if (
s.substr(0, 6) ==
"N_eta:")
m_N_Eta_bins = std::stoi(
s.substr(6,
s.size() - 6));
103 throw std::runtime_error {
104 "ERROR: Can't understand argument " +
s +
" for JETFTAGEFFPLOTS."
116 m_sfRetriever = asg::ToolStore::get<ScaleFactorRetriever>(
"top::ScaleFactorRetriever");
121 ATH_MSG_INFO(
"No variation has been set. Assuming nominal.");
139 std::vector<double> ptBins;
147 for (std::string flavour:{
"B",
"C",
"L",
"T"}) {
151 if (
m_hists)
m_hists->addHist(total_hist_name,
";pT [GeV];|#eta^{jet}|;Events",
152 ptBins.size() - 1, ptBins.data(),
etaBins.size() - 1,
etaBins.data());
154 ptBins.size() - 1, ptBins.data(),
etaBins.size() - 1,
etaBins.data());
156 ptBins.size() - 1, ptBins.data(),
etaBins.size() - 1,
etaBins.data());
158 ptBins.size() - 1, ptBins.data(),
etaBins.size() - 1,
etaBins.data());
160 ptBins.size() - 1, ptBins.data(),
etaBins.size() - 1,
etaBins.data());
162 ptBins.size() - 1, ptBins.data(),
etaBins.size() - 1,
etaBins.data());
164 ptBins.size() - 1, ptBins.data(),
etaBins.size() - 1,
etaBins.data());
166 ptBins.size() - 1, ptBins.data(),
etaBins.size() - 1,
etaBins.data());
168 ptBins.size() - 1, ptBins.data(),
etaBins.size() - 1,
etaBins.data());
170 if (
m_hists)
m_hists->addHist(total_hist_name,
";pT [GeV];|#eta^{jet}|;Events",
193 if (
m_hists)
m_hists->addHist(pass_hist_name,
";pT [GeV];|#eta^{jet}|;Events",
194 ptBins.size() - 1, ptBins.data(),
etaBins.size() - 1,
etaBins.data());
196 ptBins.size() - 1, ptBins.data(),
etaBins.size() - 1,
etaBins.data());
198 ptBins.size() - 1, ptBins.data(),
etaBins.size() - 1,
etaBins.data());
200 ptBins.size() - 1, ptBins.data(),
etaBins.size() - 1,
etaBins.data());
202 ptBins.size() - 1, ptBins.data(),
etaBins.size() - 1,
etaBins.data());
204 ptBins.size() - 1, ptBins.data(),
etaBins.size() - 1,
etaBins.data());
206 ptBins.size() - 1, ptBins.data(),
etaBins.size() - 1,
etaBins.data());
208 ptBins.size() - 1, ptBins.data(),
etaBins.size() - 1,
etaBins.data());
210 ptBins.size() - 1, ptBins.data(),
etaBins.size() - 1,
etaBins.data());
212 if (
m_hists)
m_hists->addHist(pass_hist_name,
";pT [GeV];|#eta^{jet}|;Events",