ATLAS Offline Software
GNNDataLoader.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
8  SaltModelEDMLoaderBase(saltModel),
9  m_gnn_options(gnn_options)
10  {
11  // Create configuration objects for data preprocessing.
12  auto [inputs_config, constituents_configs, fo] =
16  > (
17  graph_config,
20  );
21  auto salt_model_version = saltModel->getSaltModelVersion();
22 
23  for (auto config : constituents_configs){
24  switch (config.type){
25  using enum ConstituentsType;
26  case TRACK:
27  addVectorLoader(getVecInputName(salt_model_version, config), std::make_shared<TracksLoader>(config, fo));
28  break;
29  case FLOW_ELEMENT:
30  addVectorLoader(getVecInputName(salt_model_version, config), std::make_shared<FlowElementsLoader>(config, fo));
31  break;
32  case HIT:
33  addVectorLoader(getVecInputName(salt_model_version, config), std::make_shared<HitsLoader>(config, fo));
34  break;
35  case ELECTRON:
36  addVectorLoader(getVecInputName(salt_model_version, config), std::make_shared<ElectronsLoader>(config, fo));
37  break;
38  default:
39  throw std::runtime_error("Unknown constituent type");
40  }
41  }
42  // Initialize jet and b-tagging input getters.
43  scalarInputName = (salt_model_version == SaltModelVersion::V2 ? "jets" : "jet_features");
44  auto [vars_from_jet, ds] = dataprep::createBvarGetters(inputs_config);
45  data_dependency_names = std::move(ds);
46  ftag_options = std::move(fo);
47  for (const auto& [name, getter]: vars_from_jet) {
49  name,
50  [getter](const xAOD::IParticle* p) {
51  auto jet = dynamic_cast<const xAOD::Jet*>(p);
52  return getter(*jet).second;
53  });
54  }
55  }
56 
57 std::string FlavorTagInference::GNNDataLoader::getVecInputName(const SaltModelVersion salt_model_version, const ConstituentsInputConfig& constituents_config) const {
58  if (salt_model_version == SaltModelVersion::V2){
59  return constituents_config.output_name;
60  } else {
61  auto out = constituents_config.output_name;
62  out.pop_back();
63  return out + "_features";
64  }
65 }
FlavorTagInference::SaltModelEDMLoaderBase::scalarInputName
std::string scalarInputName
Definition: SaltModelEDMLoaderBase.h:36
FlavorTagInference::GNNOptions::flip_config
FlipTagConfig flip_config
Definition: GNNOptions.h:16
FlavorTagInference::SaltModelGraphConfig::OutputNodeConfig
Definition: SaltModelGraphConfig.h:30
checkxAOD.ds
ds
Definition: Tools/PyUtils/bin/checkxAOD.py:260
FlavorTagInference::GNNDataLoader::ftag_options
FTagOptions ftag_options
Definition: GNNDataLoader.h:19
FlavorTagInference::GNNDataLoader::getVecInputName
std::string getVecInputName(const SaltModelVersion salt_model_version, const ConstituentsInputConfig &constituents_config) const
Definition: GNNDataLoader.cxx:57
FlavorTagInference::SaltModelEDMLoaderBase::graph_config
SaltModelGraphConfig::GraphConfig graph_config
Definition: SaltModelEDMLoaderBase.h:34
FlavorTagInference::GNNDataLoader::data_dependency_names
FTagDataDependencyNames data_dependency_names
Definition: GNNDataLoader.h:20
FlavorTagInference::SaltModelEDMLoaderBase
Definition: SaltModelEDMLoaderBase.h:31
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:70
FlavorTagInference::GNNDataLoader::GNNDataLoader
GNNDataLoader(ISaltModelPtr salt_model, const GNNOptions &opts)
Definition: GNNDataLoader.cxx:7
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
GNNDataLoader.h
config
Definition: PhysicsAnalysis/AnalysisCommon/AssociationUtils/python/config.py:1
FlavorTagInference::ConstituentsType::HIT
@ HIT
FlavorTagInference::ConstituentsType::FLOW_ELEMENT
@ FLOW_ELEMENT
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
FlavorTagInference::SaltModelEDMLoaderBase::addScalarLoader
void addScalarLoader(const std::string &varName, std::function< float(const xAOD::IParticle *)> loader)
Definition: SaltModelEDMLoaderBase.h:41
FlavorTagInference::ConstituentsInputConfig
Definition: PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:61
FlavorTagInference::SaltModelVersion::V2
@ V2
FlavorTagInference::SaltModelEDMLoaderBase::addVectorLoader
void addVectorLoader(const std::string &vecName, std::shared_ptr< IConstituentsLoader > loader)
Definition: SaltModelEDMLoaderBase.h:45
FlavorTagInference::dataprep::createGetterConfig
std::tuple< std::vector< FTagInputConfig >, std::vector< ConstituentsInputConfig >, FTagOptions > createGetterConfig(GraphConfig &graph_config, FlipTagConfig flip_config, std::map< std::string, std::string > remap_scalar)
Definition: PhysicsAnalysis/JetTagging/FlavorTagInference/Root/DataPrepUtilities.cxx:238
FlavorTagInference::ConstituentsType
ConstituentsType
Definition: PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:47
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
FlavorTagInference::GNNOptions
Definition: GNNOptions.h:15
FlavorTagInference::dataprep::createBvarGetters
std::tuple< std::vector< std::pair< std::string, internal::VarFromJet > >, FTagDataDependencyNames > createBvarGetters(const std::vector< FTagInputConfig > &inputs)
Definition: PhysicsAnalysis/JetTagging/FlavorTagInference/Root/DataPrepUtilities.cxx:352
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
FlavorTagInference::SaltModelVersion
SaltModelVersion
Definition: ISaltModel.h:25
FlavorTagInference::GNNDataLoader::m_gnn_options
GNNOptions m_gnn_options
Definition: GNNDataLoader.h:22
FlavorTagInference::ISaltModelPtr
std::shared_ptr< const ISaltModel > ISaltModelPtr
Definition: ISaltModel.h:43
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
FlavorTagInference::SaltModelGraphConfig::GraphConfig
Definition: SaltModelGraphConfig.h:36
FlavorTagInference::GNNOptions::variable_remapping
std::map< std::string, std::string > variable_remapping
Definition: GNNOptions.h:17
FlavorTagInference::ConstituentsInputConfig::output_name
std::string output_name
Definition: PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:63