ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
JetTagging
FlavorTagInference
Root
GNNDataLoader.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 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
saltModel->getModelName()
21
);
22
auto
salt_model_version = saltModel->getSaltModelVersion();
23
24
for
(
auto
config : constituents_configs){
25
switch
(config.type){
26
using
enum
ConstituentsType
;
27
case
TRACK
:
28
addVectorLoader
(
getVecInputName
(salt_model_version, config),
29
std::make_shared<TracksLoader>(config, fo));
30
break
;
31
case
FLOW_ELEMENT
:
32
addVectorLoader
(
getVecInputName
(salt_model_version, config), std::make_shared<FlowElementsLoader>(config, fo));
33
break
;
34
case
HIT
:
35
addVectorLoader
(
getVecInputName
(salt_model_version, config), std::make_shared<HitsLoader>(config, fo));
36
break
;
37
case
ELECTRON
:
38
addVectorLoader
(
getVecInputName
(salt_model_version, config), std::make_shared<ElectronsLoader>(config, fo));
39
break
;
40
case
MUON
:
41
addVectorLoader
(
getVecInputName
(salt_model_version, config), std::make_shared<MuonsLoader>(config, fo));
42
break
;
43
case
CALO_CLUSTER
:
44
addVectorLoader
(
getVecInputName
(salt_model_version, config), std::make_shared<CaloClusterLoader>(config, fo));
45
break
;
46
case
TOWER
:
47
addVectorLoader
(
getVecInputName
(salt_model_version, config), std::make_shared<TowerLoader>(config, fo));
48
break
;
49
default
:
50
throw
std::runtime_error(
"Unknown constituent type"
);
51
}
52
}
53
// Initialize jet and b-tagging input getters.
54
scalarInputName
= (salt_model_version ==
SaltModelVersion::V2
?
"jets"
:
"jet_features"
);
55
auto
[vars_from_jet, ds] =
dataprep::createBvarGetters
(inputs_config);
56
data_dependency_names
= std::move(ds);
57
ftag_options
= std::move(fo);
58
for
(
const
auto
& [name, getter]: vars_from_jet) {
59
addScalarLoader
(
60
name,
61
[getter](
const
xAOD::IParticle
* p) {
62
auto
jet
=
dynamic_cast<
const
xAOD::Jet
*
>
(p);
63
return
getter(*jet).second;
64
});
65
}
66
}
67
68
std::string
FlavorTagInference::GNNDataLoader::getVecInputName
(
const
SaltModelVersion
salt_model_version,
const
ConstituentsInputConfig
& constituents_config)
const
{
69
if
(salt_model_version ==
SaltModelVersion::V2
){
70
return
constituents_config.
output_name
;
71
}
else
{
72
auto
out = constituents_config.
output_name
;
73
out.pop_back();
74
return
out +
"_features"
;
75
}
76
}
ELECTRON
static const int ELECTRON
Definition
AtlasPID.h:74
TRACK
xAOD::TrackParticle TRACK
Definition
D3PDMaker/TileD3PDMaker/src/ITrackTools.h:86
GNNDataLoader.h
MUON
xAOD::Muon MUON
D3PD INCLUDES.
Definition
TileCellFillerTool.h:37
FlavorTagInference::GNNDataLoader::m_gnn_options
GNNOptions m_gnn_options
Definition
GNNDataLoader.h:22
FlavorTagInference::GNNDataLoader::getVecInputName
std::string getVecInputName(const SaltModelVersion salt_model_version, const ConstituentsInputConfig &constituents_config) const
Definition
GNNDataLoader.cxx:68
FlavorTagInference::GNNDataLoader::GNNDataLoader
GNNDataLoader(ISaltModelPtr salt_model, const GNNOptions &opts)
Definition
GNNDataLoader.cxx:7
FlavorTagInference::GNNDataLoader::data_dependency_names
FTagDataDependencyNames data_dependency_names
Definition
GNNDataLoader.h:20
FlavorTagInference::GNNDataLoader::ftag_options
FTagOptions ftag_options
Definition
GNNDataLoader.h:19
FlavorTagInference::SaltModelEDMLoaderBase::addVectorLoader
void addVectorLoader(const std::string &vecName, std::shared_ptr< IConstituentsLoader > loader)
Definition
SaltModelEDMLoaderBase.h:47
FlavorTagInference::SaltModelEDMLoaderBase::addScalarLoader
void addScalarLoader(const std::string &varName, std::function< float(const xAOD::IParticle *)> loader)
Definition
SaltModelEDMLoaderBase.h:43
FlavorTagInference::SaltModelEDMLoaderBase::graph_config
SaltModelGraphConfig::GraphConfig graph_config
Definition
SaltModelEDMLoaderBase.h:37
FlavorTagInference::SaltModelEDMLoaderBase::SaltModelEDMLoaderBase
SaltModelEDMLoaderBase(ISaltModelPtr salt_model)
Definition
SaltModelEDMLoaderBase.h:35
FlavorTagInference::SaltModelEDMLoaderBase::scalarInputName
std::string scalarInputName
Definition
SaltModelEDMLoaderBase.h:38
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition
Event/xAOD/xAODBase/xAODBase/IParticle.h:41
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, const std::string &object_link_prefix)
Definition
PhysicsAnalysis/JetTagging/FlavorTagInference/Root/DataPrepUtilities.cxx:240
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:371
FlavorTagInference::ConstituentsType
ConstituentsType
Definition
PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:48
FlavorTagInference::ConstituentsType::FLOW_ELEMENT
@ FLOW_ELEMENT
Definition
PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:49
FlavorTagInference::ConstituentsType::TOWER
@ TOWER
Definition
PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:57
FlavorTagInference::ConstituentsType::HIT
@ HIT
Definition
PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:51
FlavorTagInference::ConstituentsType::CALO_CLUSTER
@ CALO_CLUSTER
Definition
PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:56
FlavorTagInference::SaltModelVersion
SaltModelVersion
Definition
ISaltModel.h:26
FlavorTagInference::SaltModelVersion::V2
@ V2
Definition
ISaltModel.h:26
FlavorTagInference::ISaltModelPtr
std::shared_ptr< const ISaltModel > ISaltModelPtr
Definition
ISaltModel.h:56
jet
Definition
JetCalibTools_PlotJESFactors.cxx:23
xAOD::Jet
Jet_v1 Jet
Definition of the current "jet version".
Definition
Event/xAOD/xAODJet/xAODJet/Jet.h:17
FlavorTagInference::ConstituentsInputConfig
Definition
PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:67
FlavorTagInference::ConstituentsInputConfig::output_name
std::string output_name
Definition
PhysicsAnalysis/JetTagging/FlavorTagInference/FlavorTagInference/ConstituentsLoader.h:69
FlavorTagInference::GNNOptions
Definition
GNNOptions.h:15
FlavorTagInference::SaltModelGraphConfig::GraphConfig
Definition
SaltModelGraphConfig.h:36
FlavorTagInference::SaltModelGraphConfig::OutputNodeConfig
Definition
SaltModelGraphConfig.h:30
Generated on
for ATLAS Offline Software by
1.17.0