14#include "KalFitAlg/KalFitMaterial.h"
19 double rho,
double x0)
20 : x0_(x0), z_(z), rho_(rho)
28 : rza_(mat.rza_), isq_(mat.isq_),
29 x0_(mat.x0_), z_(mat.z_), rho_(mat.rho_)
45 const double Me = 0.000510999;
47 double bsq = psq / (psq +
mass *
mass);
51 double w = (4 * Me * esq
52 / (1 + 2 *
s * sqrt(1 + esq)
57 cc = 1+2*log(sqrt(isq_)/(28.8E-09*sqrt(rza_)));
62 double x1(3), xa(cc/4.606), aa;
63 aa = 4.606*(xa-x0)/((x1-x0)*(x1-x0)*(x1-x0));
65 double x(log10(sqrt(esq)));
68 if (
x < x1) delta=delta+aa*(x1-
x)*(x1-
x)*(x1-
x);
72 float f1, f2, f3, f4, f5, ce;
76 f4 = (
f1*0.42237+f2*0.0304-f3*0.00038)*1E12;
77 f5 = (
f1*3.858-f2*0.1668+f3*0.00158)*1E18;
78 ce = f4*isq_+f5*isq_*sqrt(isq_);
80 return (0.0001535 * rza_ / bsq
81 * (log(Me * esq * w / isq_)
82 - 2 * bsq-delta-2.0*ce/z_)) * path;
92 double t = path / x0_;
94 return 0.0136 * sqrt(
t * (
mass*
mass + psq)) / psq
95 * (1 + 0.038 * log(
t));
102 double sigma0_2 = 0.1569*rza_*path;
104 if (sigma0_2<0)
return 0;
107 double bsq = psq / (psq +
mass *
mass);
110 double sigma_2 = sigma0_2*(1-0.5*bsq)/(1-bsq);
112 if (sigma_2<0)
return 0;
115 return sqrt(sigma_2)*0.001;
double del_E(double mass, double path, double p) const
Calculate the straggling of energy loss.
double mcs_angle(double mass, double path, double p) const
Calculate Multiple Scattering angle.
double dE(double mass, double path, double p) const
Calculate energy loss.
KalFitMaterial()
Constructor.