1 #include "KVLightEnergyCsI.h"
117 Error(
"Compute",
"[%s] Cannot compute energy for : ",
GetName());
154 Error(
"Compute",
"Cannot compute without knowing Z and A of nucleus");
209 fit_result = lite_vs_e->
Fit(
GetCalibFunction(),
"EMGS",
"",fit_e_range->Min(),fit_e_range->Max());
212 std::cout <<
"chi**2/ndf=" << fit_result->
Chi2()/fit_result->
Ndf()
213 <<
" proba=" << fit_result->
Prob()*100 <<
"%\n";
259 fit_result = e_vs_lite->
Fit(
inv_fit_func.get(),
"EMGS",
"",fit_lite_range->Min(),fit_lite_range->Max());
262 std::cout <<
"chi**2/ndf=" << fit_result->
Chi2()/fit_result->
Ndf()
263 <<
" proba=" << fit_result->
Prob()*100 <<
"%\n";
void Error(const char *method, const char *msgfmt,...) const override
virtual void SetType(const Char_t *str)
Base class for all detector calibrations.
TF1 * GetCalibFunction() const
void SetCalibFunction(TF1 *f)
void SetUseInverseFunction(Bool_t yes=kTRUE)
virtual Double_t Invert(Double_t x, const KVNameValueList &) const
Double_t do_inversion(Double_t x) const
virtual Double_t Compute(Double_t x, const KVNameValueList &) const
Light-energy calibration function for CsI detectors using a Fermi-function dependence on energy for d...
KVLightEnergyCsI(Bool_t make_func=kTRUE)
std::unique_ptr< TF1 > inv_fit_func
Double_t CalculLumiere(Double_t *, Double_t *)
std::optional< KVValueRange< double > > a3_range
default fixed value of a4 parameter for fits
Double_t Compute(Double_t chan, const KVNameValueList &z_and_a="") const override
std::optional< KVValueRange< double > > a4_range
optional range for a3 parameter
Bool_t CheckParameters(const KVNameValueList &z_and_a) const
optional range for a4 parameter
Double_t Invert(Double_t, const KVNameValueList &z_and_a="") const override
void invFit(TH1 *, int z, int a, std::optional< KVValueRange< Double_t >> fit_lite_range={})
void Fit(TH1 *, int z, int a, std::optional< KVValueRange< Double_t >> fit_e_range={})
Double_t a4_fit
default fixed value of a3 parameter for fits
Double_t InvCalc(Double_t *, Double_t *)
Handles lists of named parameters with different types, a list of KVNamedParameter objects.
Int_t GetIntValue(const Char_t *name) const
void ls(Option_t *opt="") const override
Bool_t HasIntParameter(const Char_t *name) const
Range of values specified by minimum, maximum.
virtual Double_t GetParameter(const TString &name) const
virtual void SetParLimits(Int_t ipar, Double_t parmin, Double_t parmax)
virtual void SetParameters(const Double_t *params)
virtual void FixParameter(Int_t ipar, Double_t value)
virtual TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="", Double_t xmin=0, Double_t xmax=0)
const char * GetName() const override