BOSS 7.0.3
BESIII Offline Software System
Loading...
Searching...
No Matches
RkFitMaterial Class Reference

#include <RkFitMaterial.h>

Public Member Functions

 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.
 
 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.
 

Detailed Description

Constructor & Destructor Documentation

◆ RkFitMaterial() [1/6]

RkFitMaterial::RkFitMaterial ( )
inline

Constructor.

Definition at line 14 of file InstallArea/include/TrkReco/TrkReco/RkFitMaterial.h.

14{}

◆ RkFitMaterial() [2/6]

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) // rho is the density, z is the atomic number, a is the weight
21 // i is mean excitation potention, x0 is the radiation length
22{
23 rza_ = rho * z / a;
24 isq_ = i * i * 1e-18;
25}

◆ RkFitMaterial() [3/6]

RkFitMaterial::RkFitMaterial ( const RkFitMaterial mat)

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}

◆ RkFitMaterial() [4/6]

RkFitMaterial::RkFitMaterial ( )
inline

◆ RkFitMaterial() [5/6]

RkFitMaterial::RkFitMaterial ( double  z,
double  a,
double  i,
double  rho,
double  x0 
)

◆ RkFitMaterial() [6/6]

RkFitMaterial::RkFitMaterial ( const RkFitMaterial mat)

Member Function Documentation

◆ dE() [1/2]

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 //cout<<"this material:x0 "<< x0_ << " Z " << z_ << endl
42 // <<" rho*Z/A "<< rza_ << " I^2 "<< isq_ << endl;
43
44 const double Me = 0.000510999;
45 double psq = p * p;
46 double bsq = psq / (psq + mass * mass);
47 double esq = psq / (mass * mass);
48
49 double s = Me / mass;
50 double w = (4 * Me * esq
51 / (1 + 2 * s * sqrt(1 + esq)
52 + s * s));
53 // Density correction :
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));
62 double delta(0);
63 double x(log10(sqrt(esq)));
64 if (x > x0){
65 delta = 4.606*x-cc;
66 if (x < x1) delta=delta+aa*(x1-x)*(x1-x)*(x1-x);
67 }
68 // Shell correction :
69 float f1, f2, f3, f4, f5, ce;
70 f1 = 1/esq;
71 f2 = f1*f1;
72 f3 = f1*f2;
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}
double mass
TFile * f1
Double_t x[10]
double w
XmlRpcServer s
Definition: HelloServer.cpp:11

Referenced by TRunge::eloss().

◆ dE() [2/2]

double RkFitMaterial::dE ( double  mass,
double  path,
double  p 
) const

Calculate energy loss.

◆ del_E() [1/2]

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 // Correction for relativistic particles :
106 double sigma_2 = sigma0_2*(1-0.5*bsq)/(1-bsq);
107
108 if (sigma_2<0) return 0;
109
110 // Return sigma in GeV !!
111 return sqrt(sigma_2)*0.001;
112
113}

◆ del_E() [2/2]

double RkFitMaterial::del_E ( double  mass,
double  path,
double  p 
) const

Calculate the straggling of energy loss.

◆ mcs_angle() [1/2]

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 //cout<<"this material:x0 "<< x0_ << " Z " << z_ << endl
87 // <<" rho*Z/A "<< rza_ << " I^2 "<< isq_ << endl;
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}
int t()
Definition: t.c:1

◆ mcs_angle() [2/2]

double RkFitMaterial::mcs_angle ( double  mass,
double  path,
double  p 
) const

Calculate Multiple Scattering angle.

◆ X0() [1/2]

double RkFitMaterial::X0 ( void  ) const
inline

Extractor.

Definition at line 28 of file InstallArea/include/TrkReco/TrkReco/RkFitMaterial.h.

28{ return x0_; }

◆ X0() [2/2]

double RkFitMaterial::X0 ( void  ) const
inline

Extractor.

Definition at line 28 of file Reconstruction/TrkReco/TrkReco-00-08-59-patch4-slc6tag/TrkReco/RkFitMaterial.h.

28{ return x0_; }

The documentation for this class was generated from the following files: