22 double result1, result2, result3;
24 result1 = z * y *
exp(-t / y);
25 result1/=
pow(y,2) - (x +
z) * y + z * x;
27 result2 = z * x *
exp(-t / x);
28 result2/=
pow(x,2) - (x -
z) * y - z * x;
30 result3 =
pow(z,2) *
exp(-t / z);
31 result3/=
pow(z,2) + (x -
z) * y - z * x;
33 return result1 + result2 + result3;
38 return z / (y -
z) * (
exp(-t / y) -
exp(-t / z));
43 double result1, result2;
45 result1 =
exp(-t / x) -
exp(-t / z);
46 result1*= z * x / (z -
x);
48 result2 = t *
exp(-t / z);
50 return (result1 + result2) / (z -
x);
55 return t / z *
exp(-t / z);
58 double pulse(
double x,
double y,
double z,
double t)
69 else if(x == 0)
return pulse_x0(y, z, t);
71 else if(y == z)
return pulse_yz(x, z, t);
81 + 0.0113809 *
pow(x,3)
82 - 0.000388111 *
pow(x,4)
83 + 5.9761e-6 *
pow(x,5)
84 - 3.51805e-8 *
pow(x,6);
94 double t = x[0] - t_0;
98 if(x[0] < t_0)
return a_0;
99 return a_0 + s *
pulse(xx, y, z, t);
104 double xm = par[5]*(x[0]-25);
105 double xp = par[5]*(x[0]+25);
106 double xz = par[5]*x[0];
107 return 1.2131 *
fpeak(&xp,par) - 1.4715 *
fpeak(&xz,par) + 0.4463 *
fpeak(&xm,par);
112 TF1
f(
"peak_convoluted",
fpeak,0,200,4);
113 return f.IntegralError(x[0]-par[4]/2.,x[0]+par[4]/2.,par,
nullptr,1.)/(par[4]);
118 double xm = (x[0]-25);
119 double xp = (x[0]+25);
double fdeconv_convoluted(double *x, double *par)
double pulse_x0(double y, double z, double t)
double fpeak_convoluted(double *x, double *par)
double pulse_yz(double x, double z, double t)
double pulse(double x, double y, double z, double t)
double get_compensation(double x)
double fdeconv(double *x, double *par)
double pulse_raw(double x, double y, double z, double t)
double fpeak(double *x, double *par)
double pulse_x0_yz(double z, double t)
Power< A, B >::type pow(const A &a, const B &b)