8 #include "AthLinks/ElementLink.h"
22 DiTauDiscriminantTool::DiTauDiscriminantTool(
const std::string&
name )
26 DiTauDiscriminantTool::~DiTauDiscriminantTool( )
38 return StatusCode::SUCCESS;
46 auto availableVariables = setIDVariables(xDiTau);
48 float bdtScore = m_mvaBDT->getGradBoostMVA(availableVariables);
51 decBDTScore(xDiTau) = bdtScore;
54 return StatusCode::SUCCESS;
66 m_mvaBDT = std::make_unique<tauRecTools::BDTHelper>();
67 ATH_CHECK(m_mvaBDT->initialize(weight_file));
69 return StatusCode::SUCCESS;
73 std::map<TString, float> DiTauDiscriminantTool::setIDVariables(
const xAOD::DiTauJet& xDiTau)
const
93 std::map<TString, float> availableVariables;
94 availableVariables.emplace(
"f_core_lead", f_core_leadAcc(xDiTau));
95 availableVariables.emplace(
"f_core_subl", f_core_sublAcc(xDiTau));
96 availableVariables.emplace(
"f_subjet_subl", f_subjet_sublAcc(xDiTau));
97 availableVariables.emplace(
"f_subjets", f_subjetsAcc(xDiTau));
98 availableVariables.emplace(
"R_max_lead", R_max_leadAcc(xDiTau));
99 availableVariables.emplace(
"R_max_subl", R_max_sublAcc(xDiTau));
100 availableVariables.emplace(
"n_track",
static_cast<float>(n_trackAcc(xDiTau)));
101 availableVariables.emplace(
"n_tracks_lead",
static_cast<float>(n_tracks_leadAcc(xDiTau)));
102 availableVariables.emplace(
"R_isotrack", R_isotrackAcc(xDiTau));
103 availableVariables.emplace(
"R_tracks_subl", R_tracks_sublAcc(xDiTau));
104 availableVariables.emplace(
"m_core_lead", M_core_leadAcc(xDiTau));
105 availableVariables.emplace(
"log(m_core_lead)",
std::log(M_core_leadAcc(xDiTau)));
106 availableVariables.emplace(
"m_core_subl", M_core_sublAcc(xDiTau));
107 availableVariables.emplace(
"log(m_core_subl)",
std::log(M_core_sublAcc(xDiTau)));
108 availableVariables.emplace(
"m_tracks_lead", M_tracks_leadAcc(xDiTau));
109 availableVariables.emplace(
"log(m_tracks_lead)",
std::log(M_tracks_leadAcc(xDiTau)));
110 availableVariables.emplace(
"m_tracks_subl", M_tracks_sublAcc(xDiTau));
111 availableVariables.emplace(
"log(m_tracks_subl)",
std::log(M_tracks_sublAcc(xDiTau)));
112 availableVariables.emplace(
"d0_leadtrack_lead", d0_leadtrack_leadAcc(xDiTau));
113 availableVariables.emplace(
"log(abs(d0_leadtrack_lead))",
std::log(std::abs(d0_leadtrack_leadAcc(xDiTau))));
114 availableVariables.emplace(
"d0_leadtrack_subl", d0_leadtrack_sublAcc(xDiTau));
115 availableVariables.emplace(
"log(abs(d0_leadtrack_subl))",
std::log(std::abs(d0_leadtrack_sublAcc(xDiTau))));
116 availableVariables.emplace(
"f_isotracks", f_isotracksAcc(xDiTau));
117 availableVariables.emplace(
"log(f_isotracks)",
std::log(f_isotracksAcc(xDiTau)));
119 for (
const auto& [
var,
value]: availableVariables)
124 return availableVariables;