#include <RkFitMaterial.h>
|
| RkFitMaterial () |
| Constructor.
|
|
| RkFitMaterial (double z, double a, double i, double rho, double x0) |
|
| RkFitMaterial (const RkFitMaterial &mat) |
|
double | dE (double mass, double path, double p) const |
| Calculate energy loss.
|
|
double | mcs_angle (double mass, double path, double p) const |
| Calculate Multiple Scattering angle.
|
|
double | del_E (double mass, double path, double p) const |
| Calculate the straggling of energy loss.
|
|
double | X0 (void) const |
| Extractor.
|
|
Definition at line 6 of file RkFitMaterial.h.
◆ RkFitMaterial() [1/3]
RkFitMaterial::RkFitMaterial |
( |
| ) |
|
|
inline |
◆ RkFitMaterial() [2/3]
RkFitMaterial::RkFitMaterial |
( |
double | z, |
|
|
double | a, |
|
|
double | i, |
|
|
double | rho, |
|
|
double | x0 ) |
Definition at line 18 of file RkFitMaterial.cxx.
20 : x0_(x0), z_(z)
21
22{
23 rza_ = rho * z / a;
24 isq_ = i * i * 1e-18;
25}
◆ RkFitMaterial() [3/3]
Definition at line 27 of file RkFitMaterial.cxx.
28 : rza_(mat.rza_), isq_(mat.isq_),
29 x0_(mat.x0_), z_(mat.z_)
30{
31
32}
◆ dE()
double RkFitMaterial::dE |
( |
double | mass, |
|
|
double | path, |
|
|
double | p ) const |
Calculate energy loss.
Definition at line 35 of file RkFitMaterial.cxx.
37{
38 if (!(p>0))
39 return 0;
40
41
42
43
44 const double Me = 0.000510999;
45 double psq = p * p;
46 double bsq = psq / (psq +
mass *
mass);
48
50 double w = (4 * Me * esq
51 / (1 + 2 *
s * sqrt(1 + esq)
53
54 double cc, x0;
55 cc = 1+2*log(sqrt(isq_)/(28.8E-09*sqrt(rza_)));
56 if (cc < 5.215)
57 x0 = 0.2;
58 else
59 x0 = 0.326*cc-1.5;
60 double x1(3), xa(cc/4.606), aa;
61 aa = 4.606*(xa-x0)/((x1-x0)*(x1-x0)*(x1-x0));
63 double x(log10(sqrt(esq)));
64 if (x > x0){
67 }
68
69 float f1, f2, f3, f4, f5, ce;
73 f4 = (
f1*0.42237+f2*0.0304-f3*0.00038)*1E12;
74 f5 = (
f1*3.858-f2*0.1668+f3*0.00158)*1E18;
75 ce = f4*isq_+f5*isq_*sqrt(isq_);
76 return (0.0001535 * rza_ / bsq
77 * (log(Me * esq *
w / isq_)
78 - 2 * bsq-
delta-2.0*ce/z_)) * path;
79}
Referenced by TRunge::eloss().
◆ del_E()
double RkFitMaterial::del_E |
( |
double | mass, |
|
|
double | path, |
|
|
double | p ) const |
Calculate the straggling of energy loss.
Definition at line 95 of file RkFitMaterial.cxx.
97{
98 double sigma0_2 = 0.1569*rza_*path;
99
100 if (sigma0_2<0) return 0;
101
102 double psq = p * p;
103 double bsq = psq / (psq +
mass *
mass);
104
105
106 double sigma_2 = sigma0_2*(1-0.5*bsq)/(1-bsq);
107
108 if (sigma_2<0) return 0;
109
110
111 return sqrt(sigma_2)*0.001;
112
113}
◆ mcs_angle()
double RkFitMaterial::mcs_angle |
( |
double | mass, |
|
|
double | path, |
|
|
double | p ) const |
Calculate Multiple Scattering angle.
Definition at line 83 of file RkFitMaterial.cxx.
85{
86
87
88 double t = path / x0_;
89 double psq = p*p;
90 return 0.0136 * sqrt(
t * (
mass*
mass + psq)) / psq
91 * (1 + 0.038 * log(
t));
92}
◆ X0()
double RkFitMaterial::X0 |
( |
void | | ) |
const |
|
inline |
The documentation for this class was generated from the following files: