ATLAS Offline Software
TFCSEnergyInterpolationSpline.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ISF_FASTCALOSIMEVENT_TFCSEnergyInterpolationSpline_h
6 #define ISF_FASTCALOSIMEVENT_TFCSEnergyInterpolationSpline_h
7 
9 #include "TSpline.h"
10 
11 class TGraph;
12 
14 public:
15  TFCSEnergyInterpolationSpline(const char *name = nullptr,
16  const char *title = nullptr);
17 
21  BIT(15)
22  };
24 
25  bool OnlyScaleEnergy() const { return TestBit(kOnlyScaleEnergy); };
27  void reset_OnlyScaleEnergy() { ResetBit(kOnlyScaleEnergy); };
28 
29  virtual bool is_match_Ekin_bin(int /*Ekin_bin*/) const override {
30  return true;
31  };
32  virtual bool is_match_calosample(int /*calosample*/) const override {
33  return true;
34  };
35 
38  void InitFromSpline(const TSpline3 &spline) { m_spline = spline; };
39 
43  void InitFromArrayInLogEkin(Int_t np, Double_t logEkin[], Double_t response[],
44  const char *opt = nullptr, Double_t valbeg = 0,
45  Double_t valend = 0);
46 
50  void InitFromArrayInEkin(Int_t np, Double_t Ekin[], Double_t response[],
51  const char *opt = nullptr, Double_t valbeg = 0,
52  Double_t valend = 0);
53 
54  const TSpline3 &spline() const { return m_spline; };
55 
58  virtual FCSReturnCode
59  simulate(TFCSSimulationState &simulstate, const TFCSTruthState *truth,
60  const TFCSExtrapolationState *extrapol) const override;
61 
62  void Print(Option_t *option = "") const override;
63 
64  static void unit_test(TFCSSimulationState *simulstate = nullptr,
65  TFCSTruthState *truth = nullptr,
66  const TFCSExtrapolationState *extrapol = nullptr,
67  TGraph *grspline = nullptr);
68 
69 private:
70  TSpline3 m_spline;
71 
72  ClassDefOverride(TFCSEnergyInterpolationSpline,
73  1) // TFCSEnergyInterpolationSpline
74 };
75 
76 #endif
FCSReturnCode
FCSReturnCode
Base class for all FastCaloSim parametrizations Functionality in derivde classes is provided through ...
Definition: TFCSParametrizationBase.h:41
response
MDT_Response response
Definition: MDT_ResponseTest.cxx:28
TFCSEnergyInterpolationSpline::InitFromSpline
void InitFromSpline(const TSpline3 &spline)
Initialize interpolation from spline x values should be log(Ekin), y values should <E(reco)/Ekin(true...
Definition: TFCSEnergyInterpolationSpline.h:38
TFCSEnergyInterpolationSpline::OnlyScaleEnergy
bool OnlyScaleEnergy() const
Definition: TFCSEnergyInterpolationSpline.h:25
TFCSEnergyInterpolationSpline::InitFromArrayInLogEkin
void InitFromArrayInLogEkin(Int_t np, Double_t logEkin[], Double_t response[], const char *opt=nullptr, Double_t valbeg=0, Double_t valend=0)
Initialize spline interpolation from arrays in log(Ekin) and response=<E(reco)/Ekin(true)> opt,...
Definition: TFCSEnergyInterpolationSpline.cxx:36
TFCSEnergyInterpolationSpline::unit_test
static void unit_test(TFCSSimulationState *simulstate=nullptr, TFCSTruthState *truth=nullptr, const TFCSExtrapolationState *extrapol=nullptr, TGraph *grspline=nullptr)
Definition: TFCSEnergyInterpolationSpline.cxx:109
TFCSEnergyInterpolationSpline::Print
void Print(Option_t *option="") const override
Definition: TFCSEnergyInterpolationSpline.cxx:92
TFCSExtrapolationState
Definition: TFCSExtrapolationState.h:13
RunActsMaterialValidation.extrapol
extrapol
Definition: RunActsMaterialValidation.py:90
PlotPulseshapeFromCool.np
np
Definition: PlotPulseshapeFromCool.py:64
TFCSEnergyInterpolationSpline::FCSEnergyInitializationStatusBits
FCSEnergyInitializationStatusBits
Status bit for energy initialization.
Definition: TFCSEnergyInterpolationSpline.h:19
TFCSEnergyInterpolationSpline::is_match_Ekin_bin
virtual bool is_match_Ekin_bin(int) const override
Definition: TFCSEnergyInterpolationSpline.h:29
TFCSEnergyInterpolationSpline::spline
const TSpline3 & spline() const
Definition: TFCSEnergyInterpolationSpline.h:54
TFCSParametrization.h
covarianceTool.title
title
Definition: covarianceTool.py:542
TFCSEnergyInterpolationSpline::simulate
virtual FCSReturnCode simulate(TFCSSimulationState &simulstate, const TFCSTruthState *truth, const TFCSExtrapolationState *extrapol) const override
Initialize simulstate with the mean reconstructed energy in the calorimater expeted from the true kin...
Definition: TFCSEnergyInterpolationSpline.cxx:53
TFCSEnergyInterpolationSpline::TFCSEnergyInterpolationSpline
TFCSEnergyInterpolationSpline(const char *name=nullptr, const char *title=nullptr)
Definition: TFCSEnergyInterpolationSpline.cxx:32
TFCSEnergyInterpolationSpline
Definition: TFCSEnergyInterpolationSpline.h:13
TFCSParametrization
Definition: TFCSParametrization.h:10
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
pmontree.opt
opt
Definition: pmontree.py:16
TFCSEnergyInterpolationSpline::is_match_calosample
virtual bool is_match_calosample(int) const override
Definition: TFCSEnergyInterpolationSpline.h:32
TFCSEnergyInterpolationSpline::set_OnlyScaleEnergy
void set_OnlyScaleEnergy()
Definition: TFCSEnergyInterpolationSpline.h:26
TFCSEnergyInterpolationSpline::kOnlyScaleEnergy
@ kOnlyScaleEnergy
Set this bit in the TObject bit field the simulated energy should only be scaled by the spline.
Definition: TFCSEnergyInterpolationSpline.h:20
TFCSEnergyInterpolationSpline::m_spline
TSpline3 m_spline
Definition: TFCSEnergyInterpolationSpline.h:70
TFCSTruthState
Definition: TFCSTruthState.h:13
TFCSSimulationState
Definition: TFCSSimulationState.h:32
TFCSEnergyInterpolationSpline::reset_OnlyScaleEnergy
void reset_OnlyScaleEnergy()
Definition: TFCSEnergyInterpolationSpline.h:27
TFCSEnergyInterpolationSpline::InitFromArrayInEkin
void InitFromArrayInEkin(Int_t np, Double_t Ekin[], Double_t response[], const char *opt=nullptr, Double_t valbeg=0, Double_t valend=0)
Initialize spline interpolation from arrays in Ekin and response=<E(reco)/Ekin(true)> opt,...
Definition: TFCSEnergyInterpolationSpline.cxx:43