BOSS 7.0.4
BESIII Offline Software System
Loading...
Searching...
No Matches
KalFitMaterial Class Reference

#include <KalFitMaterial.h>

Public Member Functions

 KalFitMaterial ()
 Constructor.
 
 KalFitMaterial (double z, double a, double i, double rho, double x0)
 
 KalFitMaterial (const KalFitMaterial &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.
 
 KalFitMaterial ()
 Constructor.
 
 KalFitMaterial (double z, double a, double i, double rho, double x0)
 
 KalFitMaterial (const KalFitMaterial &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

Material is a class which describes the properties of a given material, for instance atomic number, atomic weight and so on.

Definition at line 19 of file InstallArea/include/KalFitAlg/KalFitAlg/KalFitMaterial.h.

Constructor & Destructor Documentation

◆ KalFitMaterial() [1/6]

KalFitMaterial::KalFitMaterial ( )
inline

Constructor.

Definition at line 27 of file InstallArea/include/KalFitAlg/KalFitAlg/KalFitMaterial.h.

27{}

◆ KalFitMaterial() [2/6]

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

Definition at line 18 of file KalFitMaterial.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}

◆ KalFitMaterial() [3/6]

KalFitMaterial::KalFitMaterial ( const KalFitMaterial mat)

Definition at line 27 of file KalFitMaterial.cxx.

28 : rza_(mat.rza_), isq_(mat.isq_),
29 x0_(mat.x0_), z_(mat.z_)
30{
31
32}

◆ KalFitMaterial() [4/6]

KalFitMaterial::KalFitMaterial ( )
inline

◆ KalFitMaterial() [5/6]

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

◆ KalFitMaterial() [6/6]

KalFitMaterial::KalFitMaterial ( const KalFitMaterial mat)

Member Function Documentation

◆ dE() [1/2]

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

Calculate energy loss.

Definition at line 35 of file KalFitMaterial.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
45 const double Me = 0.000510999;
46 double psq = p * p;
47 double bsq = psq / (psq + mass * mass);
48 double esq = psq / (mass * mass);
49
50 double s = Me / mass;
51 double w = (4 * Me * esq
52 / (1 + 2 * s * sqrt(1 + esq)
53 + s * s));
54
55 // Density correction :
56 double cc, x0;
57 cc = 1+2*log(sqrt(isq_)/(28.8E-09*sqrt(rza_)));
58 if (cc < 5.215)
59 x0 = 0.2;
60 else
61 x0 = 0.326*cc-1.5;
62 double x1(3), xa(cc/4.606), aa;
63 aa = 4.606*(xa-x0)/((x1-x0)*(x1-x0)*(x1-x0));
64 double delta(0);
65 double x(log10(sqrt(esq)));
66 if (x > x0){
67 delta = 4.606*x-cc;
68 if (x < x1) delta=delta+aa*(x1-x)*(x1-x)*(x1-x);
69 }
70
71 // Shell correction :
72 float f1, f2, f3, f4, f5, ce;
73 f1 = 1/esq;
74 f2 = f1*f1;
75 f3 = f1*f2;
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_);
79
80 return (0.0001535 * rza_ / bsq
81 * (log(Me * esq * w / isq_)
82 - 2 * bsq-delta-2.0*ce/z_)) * path;
83}
double mass
TFile * f1
Double_t x[10]
double w
XmlRpcServer s
Definition: HelloServer.cpp:11

Referenced by KalFitTrack::eloss().

◆ dE() [2/2]

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

Calculate energy loss.

◆ del_E() [1/2]

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

Calculate the straggling of energy loss.

Definition at line 99 of file KalFitMaterial.cxx.

101{
102 double sigma0_2 = 0.1569*rza_*path;
103
104 if (sigma0_2<0) return 0;
105
106 double psq = p * p;
107 double bsq = psq / (psq + mass * mass);
108
109 // Correction for relativistic particles :
110 double sigma_2 = sigma0_2*(1-0.5*bsq)/(1-bsq);
111
112 if (sigma_2<0) return 0;
113
114 // Return sigma in GeV !!
115 return sqrt(sigma_2)*0.001;
116
117}

Referenced by KalFitTrack::eloss().

◆ del_E() [2/2]

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

Calculate the straggling of energy loss.

◆ mcs_angle() [1/2]

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

Calculate Multiple Scattering angle.

Definition at line 87 of file KalFitMaterial.cxx.

89{
90 //cout<<"this material:x0 "<< x0_ << " Z " << z_ << endl
91 // <<" rho*Z/A "<< rza_ << " I^2 "<< isq_ << endl;
92 double t = path / x0_;
93 double psq = p*p;
94 return 0.0136 * sqrt(t * (mass*mass + psq)) / psq
95 * (1 + 0.038 * log(t));
96}
int t()
Definition: t.c:1

Referenced by KalFitTrack::ms().

◆ mcs_angle() [2/2]

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

Calculate Multiple Scattering angle.

◆ X0() [1/2]

double KalFitMaterial::X0 ( void  ) const
inline

Extractor.

Definition at line 41 of file InstallArea/include/KalFitAlg/KalFitAlg/KalFitMaterial.h.

41{ return x0_; }

Referenced by KalFitTrack::ms().

◆ X0() [2/2]

double KalFitMaterial::X0 ( void  ) const
inline

Extractor.

Definition at line 41 of file Reconstruction/KalFitAlg/KalFitAlg-00-07-55-p03/KalFitAlg/KalFitMaterial.h.

41{ return x0_; }

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