Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
PunchThroughG4Classifier.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // PunchThroughG4Classifier.h, (c) ATLAS Detector software
8 
9 #ifndef G4ATLASTOOLS_PUNCHTHROUGHG4CLASSIFIER_H
10 #define G4ATLASTOOLS_PUNCHTHROUGHG4CLASSIFIER_H
11 
12 //
15 
16 #include <map>
17 #include <memory> //for unique_ptr
18 
19 //LWTNN
20 #include "lwtnn/LightweightGraph.hh"
21 
22 class PunchThroughG4Classifier : virtual public extends<AthAlgTool, IPunchThroughG4Classifier>{
23 public:
24 
26  PunchThroughG4Classifier(const std::string&,const std::string&,const IInterface*);
27 
29  virtual ~PunchThroughG4Classifier() = default;
30 
32  virtual StatusCode initialize() override;
34  virtual StatusCode finalize() override;
35 
37  StatusCode initializeScaler(const std::string & scalerConfigFile);
38 
40  StatusCode initializeNetwork(const std::string & networkConfigFile);
41 
43  StatusCode initializeCalibrator(const std::string & calibratorConfigFile);
44 
46  virtual double computePunchThroughProbability(const G4FastTrack& fastTrack, const double simE, const std::vector<double> & simEfrac) const override;
47 
49  static std::map<std::string, std::map<std::string, double> > computeInputs(const G4FastTrack& fastTrack, const double simE, const std::vector<double> & simEfrac);
50 
52  std::map<std::string, std::map<std::string, double> > scaleInputs(std::map<std::string, std::map<std::string, double> >& inputs) const;
53 
55  double calibrateOutput(double& networkOutput) const;
56 
57 private:
59  std::unique_ptr<lwt::LightweightGraph> m_graph{};
60 
62  double m_scalerMin{};
63  double m_scalerMax{};
64  std::map<std::string, double> m_scalerMinMap;
65  std::map<std::string, double> m_scalerMaxMap;
66 
69  double m_calibrationMin{};
70  double m_calibrationMax{};
71  std::map<double, double> m_calibrationMap;
72 
73  /*---------------------------------------------------------------------
74  * Properties
75  *---------------------------------------------------------------------*/
76  StringProperty m_scalerConfigFileName{this, "ScalerConfigFileName", "", ""};
77  StringProperty m_networkConfigFileName{this, "NetworkConfigFileName", "", ""};
78  StringProperty m_calibratorConfigFileName{this, "CalibratorConfigFileName", "", ""};
79 
80 }; // class PunchThroughG4Classifier
81 
82 #endif //G4ATLASTOOLS_PUNCHTHROUGHG4CLASSIFIER_H
PunchThroughG4Classifier::m_calibrationMin
double m_calibrationMin
Definition: PunchThroughG4Classifier.h:69
PunchThroughG4Classifier::computePunchThroughProbability
virtual double computePunchThroughProbability(const G4FastTrack &fastTrack, const double simE, const std::vector< double > &simEfrac) const override
interface method to return probability prediction of punch through
Definition: PunchThroughG4Classifier.cxx:180
PunchThroughG4Classifier::~PunchThroughG4Classifier
virtual ~PunchThroughG4Classifier()=default
Destructor.
PunchThroughG4Classifier::initialize
virtual StatusCode initialize() override
AlgTool initialize method.
Definition: PunchThroughG4Classifier.cxx:34
IPunchThroughG4Classifier.h
PunchThroughG4Classifier::m_graph
std::unique_ptr< lwt::LightweightGraph > m_graph
NN graph.
Definition: PunchThroughG4Classifier.h:59
PunchThroughG4Classifier::calibrateOutput
double calibrateOutput(double &networkOutput) const
calibrate NN output using isotonic regressor
Definition: PunchThroughG4Classifier.cxx:234
postInclude.inputs
inputs
Definition: postInclude.SortInput.py:15
PunchThroughG4Classifier::finalize
virtual StatusCode finalize() override
AlgTool finalize method.
Definition: PunchThroughG4Classifier.cxx:50
PunchThroughG4Classifier::m_calibratorConfigFile
std::string m_calibratorConfigFile
isotonic regressor calibrator members
Definition: PunchThroughG4Classifier.h:68
PunchThroughG4Classifier::m_scalerConfigFileName
StringProperty m_scalerConfigFileName
Definition: PunchThroughG4Classifier.h:76
PunchThroughG4Classifier::computeInputs
static std::map< std::string, std::map< std::string, double > > computeInputs(const G4FastTrack &fastTrack, const double simE, const std::vector< double > &simEfrac)
calcalate NN inputs based on G4FastTrack and simulstate
Definition: PunchThroughG4Classifier.cxx:193
PunchThroughG4Classifier::m_scalerMax
double m_scalerMax
Definition: PunchThroughG4Classifier.h:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
PunchThroughG4Classifier::initializeCalibrator
StatusCode initializeCalibrator(const std::string &calibratorConfigFile)
isotonic regressor calibrator initialize method
Definition: PunchThroughG4Classifier.cxx:131
PunchThroughG4Classifier::PunchThroughG4Classifier
PunchThroughG4Classifier(const std::string &, const std::string &, const IInterface *)
Constructor.
Definition: PunchThroughG4Classifier.cxx:30
PunchThroughG4Classifier::m_calibrationMap
std::map< double, double > m_calibrationMap
Definition: PunchThroughG4Classifier.h:71
PunchThroughG4Classifier::m_networkConfigFileName
StringProperty m_networkConfigFileName
Definition: PunchThroughG4Classifier.h:77
PunchThroughG4Classifier::initializeScaler
StatusCode initializeScaler(const std::string &scalerConfigFile)
input variable MinMaxScaler initialize method
Definition: PunchThroughG4Classifier.cxx:57
PunchThroughG4Classifier::m_calibratorConfigFileName
StringProperty m_calibratorConfigFileName
Definition: PunchThroughG4Classifier.h:78
PunchThroughG4Classifier::m_scalerMin
double m_scalerMin
input variable MinMaxScaler members
Definition: PunchThroughG4Classifier.h:62
PunchThroughG4Classifier::m_scalerMinMap
std::map< std::string, double > m_scalerMinMap
Definition: PunchThroughG4Classifier.h:64
PunchThroughG4Classifier::m_calibrationMax
double m_calibrationMax
Definition: PunchThroughG4Classifier.h:70
PunchThroughG4Classifier
Definition: PunchThroughG4Classifier.h:22
PunchThroughG4Classifier::m_scalerMaxMap
std::map< std::string, double > m_scalerMaxMap
Definition: PunchThroughG4Classifier.h:65
PunchThroughG4Classifier::initializeNetwork
StatusCode initializeNetwork(const std::string &networkConfigFile)
neural network initialize method
Definition: PunchThroughG4Classifier.cxx:111
PunchThroughG4Classifier::scaleInputs
std::map< std::string, std::map< std::string, double > > scaleInputs(std::map< std::string, std::map< std::string, double > > &inputs) const
scale NN inputs using MinMaxScaler
Definition: PunchThroughG4Classifier.cxx:215