Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
DL2HighLevel.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
8 
10 
11 #include "lwtnn/parse_json.hh"
12 #include "lwtnn/LightweightGraph.hh"
13 #include "lwtnn/NanReplacer.hh"
14 
15 #define BOOST_BIND_GLOBAL_PLACEHOLDERS // Needed to silence Boost pragma message
16 #include <boost/property_tree/json_parser.hpp>
17 #include <boost/property_tree/exceptions.hpp>
18 
19 #include <fstream>
20 #include <utility>
21 
22 
23 namespace FlavorTagDiscriminants {
24 
25  DL2HighLevel::DL2HighLevel(const std::string& nn_file_name,
26  FlipTagConfig flip_config,
27  std::map<std::string,std::string> remap_scalar,
28  TrackLinkType track_link_type,
29  float default_output_value):
30  m_dl2(nullptr)
31  {
32  // get the graph
33  std::string nn_path = PathResolverFindCalibFile(nn_file_name);
34  if (nn_path.size() == 0) {
35  throw std::runtime_error("no file found at '" + nn_file_name + "'");
36  }
37  std::ifstream input_stream(nn_path);
38  lwt::GraphConfig config = lwt::parse_json_graph(input_stream);
39 
40  if (config.inputs.size() > 1) {
41  throw std::logic_error("DL2 doesn't support multiple inputs");
42  }
43 
44  auto [input_config, constituents_configs, options] = dataprep::createGetterConfig(
45  config, flip_config, std::move(remap_scalar), track_link_type);
46  options.default_output_value = default_output_value;
47 
48  m_dl2.reset(
49  new DL2(
50  config, // lwtnn config
51  input_config, // EDM input config
52  constituents_configs, // edm track input config
53  options
54  ));
55  }
56 
57  DL2HighLevel::~DL2HighLevel() = default;
59  DL2HighLevel::DL2HighLevel(const DL2HighLevel&) = default;
60 
61  void DL2HighLevel::decorate(const xAOD::BTagging& btag) const {
62  m_dl2->decorate(btag);
63  }
64  void DL2HighLevel::decorate(const xAOD::Jet& jet) const {
65  m_dl2->decorate(jet);
66  }
68  m_dl2->decorateWithDefaults(jet);
69  }
70 
72  {
73  return m_dl2->getDataDependencyNames();
74  }
75 
76 }
FlavorTagDiscriminants::DL2
Definition: DL2.h:22
FlavorTagDiscriminants::DL2HighLevel::getDataDependencyNames
FTagDataDependencyNames getDataDependencyNames() const
Definition: DL2HighLevel.cxx:71
FlavorTagDiscriminants
Definition: BacklinkAlg.h:15
SG::AuxElement
Base class for elements of a container that can have aux data.
Definition: AuxElement.h:483
FlavorTagDiscriminants::DL2HighLevel::~DL2HighLevel
~DL2HighLevel()
InDetGNNHardScatterSelection::dataprep::createGetterConfig
std::tuple< std::vector< HSGNNInputConfig >, std::vector< ConstituentsInputConfig > > createGetterConfig(lwt::GraphConfig &graph_config)
Definition: InnerDetector/InDetRecTools/InDetGNNHardScatterSelection/Root/DataPrepUtilities.cxx:118
FlavorTagDiscriminants::DL2HighLevel
Definition: DL2HighLevel.h:31
config
Definition: PhysicsAnalysis/AnalysisCommon/AssociationUtils/python/config.py:1
FlavorTagInference::FlipTagConfig
FlipTagConfig
Definition: FlipTagEnums.h:14
FlavorTagDiscriminants::DL2HighLevel::decorate
void decorate(const xAOD::BTagging &btag) const
Definition: DL2HighLevel.cxx:61
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
FlavorTagInference::FTagDataDependencyNames
Definition: FTagDataDependencyNames.h:12
python.AtlRunQueryLib.options
options
Definition: AtlRunQueryLib.py:379
xAOD::BTagging_v1
Definition: BTagging_v1.h:39
FlavorTagInference::TrackLinkType
TrackLinkType
Definition: AssociationEnums.h:12
PathResolver.h
FTagDataDependencyNames.h
DL2.h
FlavorTagDiscriminants::DL2HighLevel::decorateWithDefaults
void decorateWithDefaults(const SG::AuxElement &jet) const
Definition: DL2HighLevel.cxx:67
DL2HighLevel.h
PathResolverFindCalibFile
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
Definition: PathResolver.cxx:431
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
lwtDev::parse_json_graph
GraphConfig parse_json_graph(std::istream &json)
Definition: parse_json.cxx:71
FlavorTagDiscriminants::DL2HighLevel::m_dl2
std::shared_ptr< const DL2 > m_dl2
Definition: DL2HighLevel.h:46
FlavorTagDiscriminants::DL2HighLevel::DL2HighLevel
DL2HighLevel(const std::string &nn_file_name, FlipTagConfig=FlipTagConfig::STANDARD, std::map< std::string, std::string > remap_scalar={}, TrackLinkType=TrackLinkType::TRACK_PARTICLE, float default_output_value=NAN)
Definition: DL2HighLevel.cxx:25