ATLAS Offline Software
RingerSelector.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef RingerSelectorTools_tools_onnx_RingerSelector_h
5 #define RingerSelectorTools_tools_onnx_RingerSelector_h
6 
7 
8 
9 #include "GaudiKernel/StatusCode.h"
10 #include "GaudiKernel/ServiceHandle.h"
15 #include <onnxruntime_cxx_api.h>
19 #include "GaudiKernel/SystemOfUnits.h"
20 #include <memory>
21 #include "TEnv.h"
22 
23 namespace Ringer {
24 
25  namespace onnx{
26 
28 
29  {
30  public:
31 
33  RingerSelector( const std::string& name );
34 
36  ~RingerSelector()=default;
37 
38 
42  StatusCode read_from( const std::string&, AthOnnx::IOnnxRuntimeSvc *);
43 
44 
48  std::vector<std::vector<float>> prepare_inputs( unsigned barcode, const xAOD::TrigRingerRings *, const xAOD::TrigElectron *) const;
49 
50 
54  float predict(const xAOD::TrigRingerRings *, const xAOD::TrigElectron * ) const;
55 
56 
60  bool accept(const xAOD::TrigRingerRings *, float discr, float mu ) const;
61 
62 
63  private:
64 
66  std::vector< Ringer::onnx::Model > m_models;
68  std::vector< Ringer::onnx::Threshold > m_thresholds;
69 
71  template <typename T> bool strtof(const std::string& input, T& f);
73  template <typename T> std::vector<T> GetValues (const std::string& input, TEnv& env);
75  std::vector<std::string> GetPaths(const std::string& input, TEnv& env);
77  std::string GetBasePath(const std::string &path) const;
78 
79  };
80 
81  } // namespace onnx
82 } //namespace Ringer
83 
84 #endif
AthOnnx::IOnnxRuntimeSvc
Service used for managing global objects used by Onnx Runtime.
Definition: IOnnxRuntimeSvc.h:25
xAOD::TrigElectron_v1
Class describing an electron reconstructed in the HLT.
Definition: TrigElectron_v1.h:39
python.CaloRecoConfig.f
f
Definition: CaloRecoConfig.py:127
athena.path
path
python interpreter configuration --------------------------------------—
Definition: athena.py:126
Ringer::onnx::RingerSelector::m_thresholds
std::vector< Ringer::onnx::Threshold > m_thresholds
hold all thresholds definitions
Definition: RingerSelector.h:68
Model.h
TrigElectron.h
Ringer::onnx::RingerSelector
Definition: RingerSelector.h:29
TrigEMCluster.h
Ringer::onnx::RingerSelector::predict
float predict(const xAOD::TrigRingerRings *, const xAOD::TrigElectron *) const
Calculation of model output.
Definition: RingerSelector.cxx:126
Ringer::onnx::RingerSelector::GetBasePath
std::string GetBasePath(const std::string &path) const
Get basepath from calib path.
Definition: RingerSelector.cxx:286
Ringer::onnx::RingerSelector::strtof
bool strtof(const std::string &input, T &f)
parse tenv string into list with type T
Definition: RingerSelector.cxx:216
TrigRingerRings.h
AsgMessaging.h
Ringer::onnx::RingerSelector::~RingerSelector
~RingerSelector()=default
Standard destructor.
Ringer::onnx::RingerSelector::GetValues
std::vector< T > GetValues(const std::string &input, TEnv &env)
Get the list of values inside of tenv.
Definition: RingerSelector.cxx:247
Ringer::onnx::RingerSelector::accept
bool accept(const xAOD::TrigRingerRings *, float discr, float mu) const
Accept method.
Definition: RingerSelector.cxx:109
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
HepMC::barcode
int barcode(const T *p)
Definition: Barcode.h:16
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
Threshold.h
Ringer::onnx::RingerSelector::read_from
StatusCode read_from(const std::string &, AthOnnx::IOnnxRuntimeSvc *)
read tunings from configuration file
Definition: RingerSelector.cxx:26
Ringer::onnx::RingerSelector::RingerSelector
RingerSelector(const std::string &name)
Standard constructor.
Definition: RingerSelector.cxx:20
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
asg::AsgMessaging
Class mimicking the AthMessaging class from the offline software.
Definition: AsgMessaging.h:40
Ringer::onnx::RingerSelector::GetPaths
std::vector< std::string > GetPaths(const std::string &input, TEnv &env)
Get the list of paths inside of tenv.
Definition: RingerSelector.cxx:269
xAOD::TrigRingerRings_v2
Definition: TrigRingerRings_v2.h:24
Ringer::onnx::RingerSelector::m_models
std::vector< Ringer::onnx::Model > m_models
hold all onnx sessions
Definition: RingerSelector.h:66
IOnnxRuntimeSvc.h
Ringer::onnx::RingerSelector::prepare_inputs
std::vector< std::vector< float > > prepare_inputs(unsigned barcode, const xAOD::TrigRingerRings *, const xAOD::TrigElectron *) const
prepare all inputs
Definition: RingerSelector.cxx:151
python.DataFormatRates.env
env
Definition: DataFormatRates.py:32
CaloNoise_fillDB.mu
mu
Definition: CaloNoise_fillDB.py:53
Ringer
Namespace dedicated for Ringer utilities.
Definition: CaloRingsDefs.h:9