ATLAS Offline Software
Loading...
Searching...
No Matches
TFCSEnergyInterpolationPiecewiseLinear.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_TFCSEnergyInterpolationPiecewiseLinear_h
6#define ISF_FASTCALOSIMEVENT_TFCSEnergyInterpolationPiecewiseLinear_h
7
8// base class include
10// interpolator include
11#include <Math/Interpolator.h>
12// graphic includes for unit_test
13#include "TCanvas.h"
14#include "TGraph.h"
15#include "TAxis.h"
16// TBuffer include required for custom class streamer
17#include "TBuffer.h"
18
20
21public:
22 TFCSEnergyInterpolationPiecewiseLinear(const char *name = nullptr,
23 const char *title = nullptr);
30
31 bool OnlyScaleEnergy() const { return TestBit(kOnlyScaleEnergy); };
34
35 virtual bool is_match_Ekin_bin(int /*Ekin_bin*/) const override {
36 return true;
37 };
38 virtual bool is_match_calosample(int /*calosample*/) const override {
39 return true;
40 };
41
42 void InitFromArrayInLogEkin(Int_t np, const Double_t logEkin[],
43 const Double_t response[]);
44 void InitFromArrayInEkin(Int_t np, const Double_t Ekin[],
45 const Double_t response[]);
46
47 virtual FCSReturnCode
48 simulate(TFCSSimulationState &simulstate, const TFCSTruthState *truth,
49 const TFCSExtrapolationState *extrapol) const override;
50
51 double evaluate(const double &Ekin) const;
52
53 void Print(Option_t *option = "") const override;
54
55 static void unit_test(TFCSSimulationState *simulstate = nullptr,
56 TFCSTruthState *truth = nullptr,
57 const TFCSExtrapolationState *extrapol = nullptr,
58 TGraph *grlinear = nullptr);
59
60private:
61 ROOT::Math::Interpolator m_linInterpol;
62
63 std::vector<double> m_logEkin;
64 std::vector<double> m_response;
65 std::pair<double, double> m_MinMaxlogEkin;
66
68 4) // TFCSEnergyInterpolationPiecewiseLinear
69};
70
71#endif
MDT_Response response
FCSReturnCode
Base class for all FastCaloSim parametrizations Functionality in derivde classes is provided through ...
virtual FCSReturnCode simulate(TFCSSimulationState &simulstate, const TFCSTruthState *truth, const TFCSExtrapolationState *extrapol) const override
Method in all derived classes to do some simulation.
static void unit_test(TFCSSimulationState *simulstate=nullptr, TFCSTruthState *truth=nullptr, const TFCSExtrapolationState *extrapol=nullptr, TGraph *grlinear=nullptr)
FCSEnergyInitializationStatusBits
Status bit for energy initialization.
@ kOnlyScaleEnergy
Set this bit in the TObject bit field the simulated energy.
void InitFromArrayInLogEkin(Int_t np, const Double_t logEkin[], const Double_t response[])
void InitFromArrayInEkin(Int_t np, const Double_t Ekin[], const Double_t response[])
TFCSEnergyInterpolationPiecewiseLinear(const char *name=nullptr, const char *title=nullptr)
TFCSParametrization(const char *name=nullptr, const char *title=nullptr)