13 DiTauDiscriminantTool::DiTauDiscriminantTool(
const std::string&
name )
17 DiTauDiscriminantTool::~DiTauDiscriminantTool( )
29 return StatusCode::SUCCESS;
37 auto availableVariables = setIDVariables(xDiTau);
39 float bdtScore = m_mvaBDT->getGradBoostMVA(availableVariables);
42 decBDTScore(xDiTau) = bdtScore;
45 return StatusCode::SUCCESS;
57 m_mvaBDT = std::make_unique<tauRecTools::BDTHelper>();
58 ATH_CHECK(m_mvaBDT->initialize(weight_file));
60 return StatusCode::SUCCESS;
64 std::map<TString, float> DiTauDiscriminantTool::setIDVariables(
const xAOD::DiTauJet& xDiTau)
const
84 std::map<TString, float> availableVariables;
85 availableVariables.emplace(
"f_core_lead", f_core_leadAcc(xDiTau));
86 availableVariables.emplace(
"f_core_subl", f_core_sublAcc(xDiTau));
87 availableVariables.emplace(
"f_subjet_subl", f_subjet_sublAcc(xDiTau));
88 availableVariables.emplace(
"f_subjets", f_subjetsAcc(xDiTau));
89 availableVariables.emplace(
"R_max_lead", R_max_leadAcc(xDiTau));
90 availableVariables.emplace(
"R_max_subl", R_max_sublAcc(xDiTau));
91 availableVariables.emplace(
"n_track",
static_cast<float>(n_trackAcc(xDiTau)));
92 availableVariables.emplace(
"n_tracks_lead",
static_cast<float>(n_tracks_leadAcc(xDiTau)));
93 availableVariables.emplace(
"R_isotrack", R_isotrackAcc(xDiTau));
94 availableVariables.emplace(
"R_tracks_subl", R_tracks_sublAcc(xDiTau));
95 availableVariables.emplace(
"m_core_lead", M_core_leadAcc(xDiTau));
96 availableVariables.emplace(
"log(m_core_lead)",
std::log(M_core_leadAcc(xDiTau)));
97 availableVariables.emplace(
"m_core_subl", M_core_sublAcc(xDiTau));
98 availableVariables.emplace(
"log(m_core_subl)",
std::log(M_core_sublAcc(xDiTau)));
99 availableVariables.emplace(
"m_tracks_lead", M_tracks_leadAcc(xDiTau));
100 availableVariables.emplace(
"log(m_tracks_lead)",
std::log(M_tracks_leadAcc(xDiTau)));
101 availableVariables.emplace(
"m_tracks_subl", M_tracks_sublAcc(xDiTau));
102 availableVariables.emplace(
"log(m_tracks_subl)",
std::log(M_tracks_sublAcc(xDiTau)));
103 availableVariables.emplace(
"d0_leadtrack_lead", d0_leadtrack_leadAcc(xDiTau));
104 availableVariables.emplace(
"log(abs(d0_leadtrack_lead))",
std::log(std::abs(d0_leadtrack_leadAcc(xDiTau))));
105 availableVariables.emplace(
"d0_leadtrack_subl", d0_leadtrack_sublAcc(xDiTau));
106 availableVariables.emplace(
"log(abs(d0_leadtrack_subl))",
std::log(std::abs(d0_leadtrack_sublAcc(xDiTau))));
107 availableVariables.emplace(
"f_isotracks", f_isotracksAcc(xDiTau));
108 availableVariables.emplace(
"log(f_isotracks)",
std::log(f_isotracksAcc(xDiTau)));
110 for (
const auto& [
var,
value]: availableVariables)
115 return availableVariables;