KaliVeda
Toolkit for HIC analysis
KVEvaporationSpectrum.h
1 #pragma once
53 #include "TF1.h"
54 #include "TMultiGraph.h"
55 
56 class KVEvaporationSpectrum : public TF1
57 {
59  {
60  bool con_sig;
61  double norm_const;
62  spectrum_calculator(bool sig_constrain = true)
63  : con_sig{sig_constrain}
64  {
65  if(con_sig)
67  else
69  }
70  double operator()(double*,double*) const;
71  bool is_sigma_constrained() const { return con_sig; }
72  };
74  {
75  int Nc;
77  multi_comp_spectrum_calculator(int ncomp, bool sig_constrain = true)
78  : Nc{ncomp}, SC{sig_constrain}
79  {}
80  double operator()(double*,double*) const;
81  bool is_sigma_constrained() const { return SC.is_sigma_constrained(); }
82  };
83 
84 public:
86  KVEvaporationSpectrum(int ncomponents=1, bool constrain_sigma = true)
87  : KVEvaporationSpectrum("KVEvaporationSpectrum", ncomponents, constrain_sigma)
88  {}
89  KVEvaporationSpectrum(const TString& name, int ncomponents=1, bool constrain_sigma = true);
90  void SetInitialParameters(const TH1*);
91  auto GetBarrier(int comp = 0) const
92  {
93  return GetParameter(get_npar()*comp+1);
94  }
95  auto GetBarrierUncertainty(int comp = 0) const
96  {
97  return GetParError(get_npar()*comp+1);
98  }
99  auto GetTemperature(int comp = 0) const
100  {
101  return GetParameter(get_npar()*comp+2);
102  }
103  auto GetTemperatureUncertainty(int comp = 0) const
104  {
105  return GetParError(get_npar()*comp+2);
106  }
107 
109  {
110  return GetNpar()/get_npar();
111  }
112  TMultiGraph* GetComponents(const std::vector<Color_t>& line_colors={kGray+3, kGray+2, kGray+1, kGray}) const;
113 
115 
116  private:
117  int get_npar() const
118  {
119  return spe_calc.is_sigma_constrained() ? 3 : 4;
120  }
121 };
122 
int Int_t
kGray
#define ClassDefOverride(name, id)
Fittable parametrisation of energy spectra for evaporated particles ,.
void SetInitialParameters(const TH1 *)
auto GetTemperature(int comp=0) const
auto GetTemperatureUncertainty(int comp=0) const
multi_comp_spectrum_calculator spe_calc
auto GetBarrier(int comp=0) const
TMultiGraph * GetComponents(const std::vector< Color_t > &line_colors={kGray+3, kGray+2, kGray+1, kGray}) const
auto GetBarrierUncertainty(int comp=0) const
KVEvaporationSpectrum(int ncomponents=1, bool constrain_sigma=true)
virtual Double_t GetParameter(const TString &name) const
virtual Double_t GetParError(Int_t ipar) const
virtual Int_t GetNpar() const
constexpr Double_t E()
Double_t Sqrt(Double_t x)
constexpr Double_t TwoPi()
multi_comp_spectrum_calculator(int ncomp, bool sig_constrain=true)