ATLAS Offline Software
PhysicsAnalysis
JetTagging
FlavorTagInference
Root
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
5
#include "
FlavorTagInference/GNNDataLoader.h
"
6
7
FlavorTagInference::GNNDataLoader::GNNDataLoader
(
ISaltModelPtr
saltModel,
const
GNNOptions
& gnn_options):
8
SaltModelEDMLoaderBase
(saltModel),
9
m_gnn_options(gnn_options)
10
{
11
// Create configuration objects for data preprocessing.
12
auto
[inputs_config, constituents_configs, fo] =
13
dataprep::createGetterConfig
<
14
SaltModelGraphConfig::GraphConfig
,
15
SaltModelGraphConfig::OutputNodeConfig
16
> (
17
graph_config
,
18
m_gnn_options
.
flip_config
,
19
m_gnn_options
.
variable_remapping
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) {
48
addScalarLoader
(
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
Generated on Wed Oct 1 2025 21:10:35 for ATLAS Offline Software by
1.8.18