ATLAS Offline Software
TFCSPCAEnergyParametrization.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ISF_FASTCALOSIMEVENT_TFCSPCAEnergyParametrization_h
6 #define ISF_FASTCALOSIMEVENT_TFCSPCAEnergyParametrization_h
7 
11 #include "TMatrixF.h"
12 #include "TMatrixDSym.h"
13 #include "TVectorF.h"
14 #include "TFile.h"
15 
16 class TH1;
17 
19 public:
21  // Assuming an extrem h_totalE_ratio histogram that would cause a retry in
22  // 50% of the cases,
23  // returning FCSRetry+20 will cause an accidental WARNING for every
24  // 2^10=1024 simulated particles and
25  // an accidental FATAL for every 2^20, which should be safe even for largest
26  // scale productions
27  FCSRetryPCA = FCSRetry + 20
28  };
29 
30  TFCSPCAEnergyParametrization(const char *name = nullptr,
31  const char *title = nullptr);
32 
33  virtual FCSReturnCode
34  simulate(TFCSSimulationState &simulstate, const TFCSTruthState *truth,
35  const TFCSExtrapolationState *extrapol) const override;
36 
37  int n_pcabins() const { return m_numberpcabins; };
38  virtual int n_bins() const override { return m_numberpcabins; };
39  const std::vector<int> &get_layers() const { return m_RelevantLayers; };
40 
41  virtual bool is_match_Ekin_bin(int Ekin_bin) const override;
42  virtual bool is_match_calosample(int calosample) const override;
43  virtual bool is_match_all_Ekin_bin() const override { return true; };
44  virtual bool is_match_all_calosample() const override { return false; };
45 
46  static void P2X(TVectorD *, TVectorD *, TMatrixD *, int, const double *,
47  double *, int);
48  bool loadInputs(TFile *file);
49  bool loadInputs(TFile *file, const std::string &);
50 
51  void clean();
52 
53  void Print(Option_t *option = "") const override;
54 
57  };
60  };
61 
62  void set_totalE_probability_ratio(int Ekin_bin, TH1 *hist);
63  TH1 *get_totalE_probability_ratio(int Ekin_bin) const;
64 
66 
67 private:
68  std::vector<int> m_RelevantLayers;
69 
70  std::vector<TMatrixD *> m_EV;
71  std::vector<TVectorD *> m_MeanValues;
72  std::vector<TVectorD *> m_SigmaValues;
73  std::vector<TVectorD *> m_Gauss_means;
74  std::vector<TVectorD *> m_Gauss_rms;
75  std::vector<std::vector<TFCS1DFunction *>> m_cumulative;
76 
77  std::vector<TH1 *> m_totalE_probability_ratio;
78 
80 
82 
83  ClassDefOverride(TFCSPCAEnergyParametrization,
84  3) // TFCSPCAEnergyParametrization
85 };
86 
87 #endif
FCSReturnCode
FCSReturnCode
Base class for all FastCaloSim parametrizations Functionality in derivde classes is provided through ...
Definition: TFCSParametrizationBase.h:41
TFCSPCAEnergyParametrization::m_SigmaValues
std::vector< TVectorD * > m_SigmaValues
Definition: TFCSPCAEnergyParametrization.h:72
TFCSPCAEnergyParametrization::m_RelevantLayers
std::vector< int > m_RelevantLayers
Definition: TFCSPCAEnergyParametrization.h:68
TFCSPCAEnergyParametrization::n_pcabins
int n_pcabins() const
Definition: TFCSPCAEnergyParametrization.h:37
PlotCalibFromCool.norm
norm
Definition: PlotCalibFromCool.py:100
TFCSPCAEnergyParametrization::m_Gauss_rms
std::vector< TVectorD * > m_Gauss_rms
Definition: TFCSPCAEnergyParametrization.h:74
TFCSEnergyParametrization
Definition: TFCSEnergyParametrization.h:10
TFCSPCAEnergyParametrization::is_match_all_calosample
virtual bool is_match_all_calosample() const override
Definition: TFCSPCAEnergyParametrization.h:44
TFCSPCAEnergyParametrization::simulate
virtual FCSReturnCode simulate(TFCSSimulationState &simulstate, const TFCSTruthState *truth, const TFCSExtrapolationState *extrapol) const override
Method in all derived classes to do some simulation.
Definition: TFCSPCAEnergyParametrization.cxx:120
plotmaker.hist
hist
Definition: plotmaker.py:148
TFCSPCAEnergyParametrization::m_total_energy_normalization
float m_total_energy_normalization
Definition: TFCSPCAEnergyParametrization.h:81
TFCSPCAEnergyParametrization::P2X
static void P2X(TVectorD *, TVectorD *, TMatrixD *, int, const double *, double *, int)
Definition: TFCSPCAEnergyParametrization.cxx:232
TFCSPCAEnergyParametrization::is_match_Ekin_bin
virtual bool is_match_Ekin_bin(int Ekin_bin) const override
Definition: TFCSPCAEnergyParametrization.cxx:34
TFCSPCAEnergyParametrization::TFCSPCAEnergyParametrization
TFCSPCAEnergyParametrization(const char *name=nullptr, const char *title=nullptr)
Definition: TFCSPCAEnergyParametrization.cxx:27
TFCSPCAEnergyParametrization::loadInputs
bool loadInputs(TFile *file)
Definition: TFCSPCAEnergyParametrization.cxx:250
TFCSExtrapolationState
Definition: TFCSExtrapolationState.h:13
RunActsMaterialValidation.extrapol
extrapol
Definition: RunActsMaterialValidation.py:90
TFCSPCAEnergyParametrization::n_bins
virtual int n_bins() const override
Definition: TFCSPCAEnergyParametrization.h:38
FCSRetry
@ FCSRetry
Definition: TFCSParametrizationBase.h:41
TFCSPCAEnergyParametrization::m_EV
std::vector< TMatrixD * > m_EV
Definition: TFCSPCAEnergyParametrization.h:70
TFCSPCAEnergyParametrization::FCSReturnCodePCA
FCSReturnCodePCA
Definition: TFCSPCAEnergyParametrization.h:20
TFCSPCAEnergyParametrization::get_totalE_probability_ratio
TH1 * get_totalE_probability_ratio(int Ekin_bin) const
Definition: TFCSPCAEnergyParametrization.cxx:111
TFCSPCAEnergyParametrization::Print
void Print(Option_t *option="") const override
Definition: TFCSPCAEnergyParametrization.cxx:48
TFCSPCAEnergyParametrization::get_total_energy_normalization
float get_total_energy_normalization() const
Definition: TFCSPCAEnergyParametrization.h:55
covarianceTool.title
title
Definition: covarianceTool.py:542
file
TFile * file
Definition: tile_monitor.h:29
TFCSPCAEnergyParametrization::m_MeanValues
std::vector< TVectorD * > m_MeanValues
Definition: TFCSPCAEnergyParametrization.h:71
TFCSPCAEnergyParametrization::set_totalE_probability_ratio
void set_totalE_probability_ratio(int Ekin_bin, TH1 *hist)
Definition: TFCSPCAEnergyParametrization.cxx:102
TFCSPCAEnergyParametrization::is_match_all_Ekin_bin
virtual bool is_match_all_Ekin_bin() const override
Definition: TFCSPCAEnergyParametrization.h:43
TFCSPCAEnergyParametrization::m_cumulative
std::vector< std::vector< TFCS1DFunction * > > m_cumulative
Definition: TFCSPCAEnergyParametrization.h:75
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
TFCSPCAEnergyParametrization::m_totalE_probability_ratio
std::vector< TH1 * > m_totalE_probability_ratio
Definition: TFCSPCAEnergyParametrization.h:77
TFCSPCAEnergyParametrization::FCSRetryPCA
@ FCSRetryPCA
Definition: TFCSPCAEnergyParametrization.h:27
TFCSPCAEnergyParametrization::clean
void clean()
Definition: TFCSPCAEnergyParametrization.cxx:368
TFCSPCAEnergyParametrization::is_match_calosample
virtual bool is_match_calosample(int calosample) const override
Definition: TFCSPCAEnergyParametrization.cxx:40
IntArray.h
TFCSPCAEnergyParametrization::m_numberpcabins
int m_numberpcabins
Definition: TFCSPCAEnergyParametrization.h:79
TH1
Definition: rootspy.cxx:268
TFCSPCAEnergyParametrization::get_layers
const std::vector< int > & get_layers() const
Definition: TFCSPCAEnergyParametrization.h:39
TFCSEnergyParametrization.h
TFCSPCAEnergyParametrization
Definition: TFCSPCAEnergyParametrization.h:18
TFCS1DFunction.h
TFCSPCAEnergyParametrization::m_Gauss_means
std::vector< TVectorD * > m_Gauss_means
Definition: TFCSPCAEnergyParametrization.h:73
TFCSPCAEnergyParametrization::do_rescale
int do_rescale
Definition: TFCSPCAEnergyParametrization.h:65
TFCSTruthState
Definition: TFCSTruthState.h:13
TFCSSimulationState
Definition: TFCSSimulationState.h:32
TFCSPCAEnergyParametrization::set_total_energy_normalization
void set_total_energy_normalization(float norm)
Definition: TFCSPCAEnergyParametrization.h:58