10 Double_t result = 0.0;
12 for(Int_t i = 0; i <= order; i++) {
13 result += *(par + j) * TMath::Power(dim[0], i);
22 return PolyBg(dim, par, 1);
27 return PolyBg(dim, par, 2);
40 Double_t height = par[0];
41 Double_t cent = par[1];
42 Double_t sigma = par[2];
44 Double_t step = par[3];
46 return height * (step / 100.0) * TMath::Erfc((x - cent) / (TMath::Sqrt(2.) * sigma));
63 Double_t height = par[0];
64 Double_t cent = par[1];
65 Double_t sigma = par[2];
68 return height * (1.0 - R / 100.0) * TMath::Gaus(x, cent, sigma);
82 Double_t height = par[0];
83 Double_t cent = par[1];
84 Double_t sigma = par[2];
86 Double_t beta = par[4];
88 double scaling = R * height / 100.0;
91 double fterm = (x - cent) / (sigma * TMath::Sqrt(2.));
92 double sterm = sigma / (beta * TMath::Sqrt(2.));
94 return scaling * TMath::Exp((x - cent) / beta) * TMath::Erfc(fterm + sterm);
115 std::array<double, 4> spar = {par[0], par[1], par[2], par[5]};
130 Double_t p0 = par[0];
131 Double_t p1 = par[1];
132 Double_t p2 = par[2];
133 Double_t p3 = par[3];
136 return pow(10., p0 + p1 * TMath::Log10(x) + p2 * std::pow(TMath::Log10(x), 2.) + p3 / std::pow(x, 2.));
150 return TMath::Gaus(pars[0], pars[1], pars[2]) +
static_cast<double>(x[0] > pars[1]) * pars[0] * TMath::Exp(-pars[3]);
157 for(
int i = 0; i < 10; i++) {
158 double dy = 5 * pars[2] / 10.0;
160 double y = x[0] - 2.5 * pars[2] + dy * i;
161 double spec = pars[0] +
165 spec += pars[3] * TMath::Landau(-y, -pars[4], pars[5]) /
166 TMath::Landau(0, 0, 100);
167 double gaus = TMath::Gaus(-x[0], -y, pars[2]) /
168 sqrt(2 * TMath::Pi() * pars[2] * pars[2]);
169 conv += gaus * spec * dy;
179 for(
int i = 0; i < 50; i++) {
180 double dy = 8 * pars[2] / 50.0;
181 double y = x[0] - 4 * pars[2] + dy * i;
183 double spec = pars[0] + pars[1] * y;
185 spec += pars[3] * TMath::Landau(-y, -pars[4], pars[5]) / TMath::Landau(0, 0, 100);
187 double gaus = TMath::Gaus(-x[0], -y, pars[2]) / sqrt(2 * TMath::Pi() * pars[2] * pars[2]);
188 conv += gaus * spec * dy;
197 double logE = TMath::Log10(x[0]);
198 double temp = par[0] + par[1] * logE + par[2] * logE * logE + par[3] / (x[0] * x[0]);
199 return pow(10, temp);
NamespaceImp(GRootFunctions) Double_t GRootFunctions
Double_t PhotoPeak(Double_t *dim, Double_t *par)
Double_t Gaus(Double_t *dim, Double_t *par)
Double_t StepFunction(Double_t *dim, Double_t *par)
Double_t LanGaus(Double_t *x, Double_t *pars)
Double_t StepBG(Double_t *dim, Double_t *par)
Double_t GammaEff(Double_t *x, Double_t *par)
Double_t LinFit(Double_t *dim, Double_t *par)
Double_t QuadFit(Double_t *dim, Double_t *par)
Double_t PolyBg(Double_t *dim, Double_t *par, Int_t order)
Double_t LanGausHighRes(Double_t *x, Double_t *pars)
Double_t Efficiency(Double_t *dim, Double_t *par)
Double_t SkewedGaus(Double_t *dim, Double_t *par)
Double_t PhotoPeakBG(Double_t *dim, Double_t *par)
Double_t GausExpo(Double_t *x, Double_t *pars)