8 #include "lwtnn/LightweightGraph.hh"
9 #include "lwtnn/NanReplacer.hh"
14 const std::string jetLinkName =
"jetLink";
24 const std::vector<FTagInputConfig>&
inputs,
25 const std::vector<ConstituentsInputConfig>& tracks_configs,
27 m_jetLink(jetLinkName),
28 m_input_node_name(
""),
30 m_variable_cleaner(nullptr),
31 m_defaultValue(
options.default_output_value)
34 if (graph_config.inputs.size() > 1) {
35 throw std::logic_error(
"We don't currently support graphs with "
36 "more than one input");
37 }
else if (graph_config.inputs.size() == 1){
40 graph_config.inputs.at(0).defaults,
49 for (
auto config : tracks_configs){
67 std::set<std::string> used_remap = loader->getUsedRemap();
77 if (!jetLink.isValid()) {
78 throw std::runtime_error(
"invalid jetLink");
89 for (
const auto&
node: dec.second) {
97 using namespace internal;
98 std::vector<NamedVar> vvec;
100 vvec.push_back(getter(btag));
103 vvec.push_back(getter(
jet));
105 std::map<std::string, std::map<std::string, double> > nodes;
107 std::map<std::string, double>
variables(vvec.begin(), vvec.end());
118 std::map<std::string, std::map<std::string, std::vector<double>>> seqs;
121 std::map<std::string, std::vector<double>> feats;
123 seqs[loader->getName()] = feats;
137 auto out_vals =
m_graph->compute(nodes, seqs, dec.first);
138 for (
const auto&
node: dec.second) {
139 node.second(btag) = out_vals.at(
node.first);