23 explicit ParticleFit(
int type) : particle_type_(type){};
26 [[nodiscard]] std::vector<double> GetFunctionParams(
float p)
const;
27 double Eval(
double p,
double m2);
29 void SetParametrization(
const std::vector<TF1>& parametrization) { parametrization_ = parametrization; }
30 void SetParametrizationFunction(uint ivar,
const TF1& func) { parametrization_.at(ivar) = func; }
31 void SetFitFunction(
const TF1& function) { function_ = function; }
32 void SetRange(
float min,
float max) { minx_ = min, maxx_ = max; }
33 void SetIsFitted(
bool is =
true) { isfitted_ = is; }
34 void SetIsFixed(
const std::vector<bool>& is) { isfixed_ = is; }
36 [[nodiscard]]
const TF1& GetFunction()
const {
return function_; }
37 [[nodiscard]] uint GetNpar()
const {
return function_.GetNpar(); }
38 TF1& GetParametrizationFunction(
int ipar) {
return parametrization_.at(ipar); }
39 [[nodiscard]]
bool GetIsFixed(uint ipar)
const {
40 if (ipar >= isfixed_.size())
42 return isfixed_.at(ipar);
45 [[nodiscard]]
double GetSigma(
float p)
const {
return parametrization_.at(PidFunction::kSigma).Eval(p); }
46 [[nodiscard]]
double GetMean(
float p)
const {
return parametrization_.at(PidFunction::kMean).Eval(p); }
47 [[nodiscard]]
double GetIntegral(
float p)
const {
return parametrization_.at(PidFunction::kA).Eval(p) / sqrt(2 * TMath::Pi() / GetSigma(p)); }
49 void GetRange(
float& min,
float& max)
const { min = minx_, max = maxx_; }
53 std::vector<TF1> parametrization_{};
54 std::vector<bool> isfixed_{};
60 int particle_type_{-1};
62 bool isfitted_{
false};
Class to store fit resuls for particle specie.
Definition ParticleFit.h:19