22 using Inputs = std::pair<std::vector<float>, std::vector<int64_t>>;
28 std::map<std::string, std::vector<const xAOD::IParticle*>>
constituents;
45 void addVectorLoader(
const std::string& vecName, std::shared_ptr<IConstituentsLoader> loader) {
52 std::vector<float> scalar_feat;
54 std::string
varName = varLoader.first;
55 scalar_feat.push_back(varLoader.second(
p));
57 std::vector<int64_t> scalar_feat_dim = {1,
static_cast<int64_t
>(scalar_feat.size())};
58 Inputs scalar_inputs(scalar_feat, scalar_feat_dim);
63 std::string input_name = loader.first;
64 auto [input_data, input_objects] = loader.second->getData(*
p);
66 salt_model_data.
gnn_inputs.insert({input_name, input_data});
67 salt_model_data.
num_inputs += input_data.first.size();
68 salt_model_data.
constituents[input_name] = input_objects;
70 return salt_model_data;
75 std::cout <<
"-------- Dumping GNN Input Data --------" << std::endl;
77 for (
const auto& [
name,
inputs] : gnn_inputs) {
78 std::cout <<
"Input Name: " <<
name << std::endl;
79 std::cout <<
" vec floats: ";
80 for (
const auto& feature :
inputs.first) {
81 std::cout << feature <<
" ";
83 std::cout << std::endl;
84 std::cout <<
" vec ints : ";
85 for (
const auto&
id :
inputs.second) {
86 std::cout <<
id <<
" ";
88 std::cout << std::endl;
90 std::cout <<
"---------- END GNN Input Data ----------" << std::endl;