11 Double_t result = 0.0;
13 for(Int_t i = 0; i <= order; i++) {
14 result += *(par + j) * TMath::Power(dim[0], i);
23 return PolyBg(dim, par, 1);
28 return PolyBg(dim, par, 2);
41 Double_t height = par[0];
42 Double_t cent = par[1];
43 Double_t sigma = par[2];
45 Double_t step = par[3];
47 return height * (step / 100.0) * TMath::Erfc((x - cent) / (TMath::Sqrt(2.) * sigma));
64 Double_t height = par[0];
65 Double_t cent = par[1];
66 Double_t sigma = par[2];
69 return height * (1.0 - R / 100.0) * TMath::Gaus(x, cent, sigma);
83 Double_t height = par[0];
84 Double_t cent = par[1];
85 Double_t sigma = par[2];
87 Double_t beta = par[4];
89 double scaling = R * height / 100.0;
92 double fterm = (x - cent) / (sigma * TMath::Sqrt(2.));
93 double sterm = sigma / (beta * TMath::Sqrt(2.));
95 return scaling * TMath::Exp((x - cent) / beta) * TMath::Erfc(fterm + sterm);
116 std::array<double, 4> spar = {par[0], par[1], par[2], par[5]};
131 Double_t p0 = par[0];
132 Double_t p1 = par[1];
133 Double_t p2 = par[2];
134 Double_t p3 = par[3];
137 return pow(10., p0 + p1 * TMath::Log10(x) + p2 * std::pow(TMath::Log10(x), 2.) + p3 / std::pow(x, 2.));
151 return TMath::Gaus(pars[0], pars[1], pars[2]) +
static_cast<double>(x[0] > pars[1]) * pars[0] * TMath::Exp(-pars[3]);
158 for(
int i = 0; i < 10; i++) {
159 double dy = 5 * pars[2] / 10.0;
161 double y = x[0] - 2.5 * pars[2] + dy * i;
162 double spec = pars[0] +
166 spec += pars[3] * TMath::Landau(-y, -pars[4], pars[5]) /
167 TMath::Landau(0, 0, 100);
168 double gaus = TMath::Gaus(-x[0], -y, pars[2]) /
169 sqrt(2 * TMath::Pi() * pars[2] * pars[2]);
170 conv += gaus * spec * dy;
180 for(
int i = 0; i < 50; i++) {
181 double dy = 8 * pars[2] / 50.0;
182 double y = x[0] - 4 * pars[2] + dy * i;
184 double spec = pars[0] + pars[1] * y;
186 spec += pars[3] * TMath::Landau(-y, -pars[4], pars[5]) / TMath::Landau(0, 0, 100);
188 double gaus = TMath::Gaus(-x[0], -y, pars[2]) / sqrt(2 * TMath::Pi() * pars[2] * pars[2]);
189 conv += gaus * spec * dy;
198 double logE = TMath::Log10(x[0]);
199 double temp = par[0] + par[1] * logE + par[2] * logE * logE + par[3] / (x[0] * x[0]);
200 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)