BOSS 8.0.0
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.
 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/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitMaterial.h.

Constructor & Destructor Documentation

◆ KalFitMaterial() [1/9]

KalFitMaterial::KalFitMaterial ( )
inline

Constructor.

Definition at line 27 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitMaterial.h.

27{}

Referenced by KalFitMaterial().

◆ KalFitMaterial() [2/9]

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

Definition at line 18 of file KalFitMaterial.cxx.

19 : x0_( x0 )
20 , 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/9]

KalFitMaterial::KalFitMaterial ( const KalFitMaterial & mat)

Definition at line 27 of file KalFitMaterial.cxx.

28 : rza_( mat.rza_ ), isq_( mat.isq_ ), x0_( mat.x0_ ), z_( mat.z_ ) {}

◆ KalFitMaterial() [4/9]

KalFitMaterial::KalFitMaterial ( )
inline

Constructor.

Definition at line 27 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitMaterial.h.

27{}

◆ KalFitMaterial() [5/9]

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

◆ KalFitMaterial() [6/9]

KalFitMaterial::KalFitMaterial ( const KalFitMaterial & mat)

◆ KalFitMaterial() [7/9]

KalFitMaterial::KalFitMaterial ( )
inline

Constructor.

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

27{}

◆ KalFitMaterial() [8/9]

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

◆ KalFitMaterial() [9/9]

KalFitMaterial::KalFitMaterial ( const KalFitMaterial & mat)

Member Function Documentation

◆ dE() [1/3]

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

Calculate energy loss.

Definition at line 31 of file KalFitMaterial.cxx.

31 {
32 if ( !( p > 0 ) ) return 0;
33
34 // cout<<"this material:x0 "<< x0_ << " Z " << z_ << endl
35 // <<" rho*Z/A "<< rza_ << " I^2 "<< isq_ << endl;
36
37 const double Me = 0.000510999;
38 double psq = p * p;
39 double bsq = psq / ( psq + mass * mass );
40 double esq = psq / ( mass * mass );
41
42 double s = Me / mass;
43 double w = ( 4 * Me * esq / ( 1 + 2 * s * sqrt( 1 + esq ) + s * s ) );
44
45 // Density correction :
46 double cc, x0;
47 cc = 1 + 2 * log( sqrt( isq_ ) / ( 28.8E-09 * sqrt( rza_ ) ) );
48 if ( cc < 5.215 ) x0 = 0.2;
49 else x0 = 0.326 * cc - 1.5;
50 double x1( 3 ), xa( cc / 4.606 ), aa;
51 aa = 4.606 * ( xa - x0 ) / ( ( x1 - x0 ) * ( x1 - x0 ) * ( x1 - x0 ) );
52 double delta( 0 );
53 double x( log10( sqrt( esq ) ) );
54 if ( x > x0 )
55 {
56 delta = 4.606 * x - cc;
57 if ( x < x1 ) delta = delta + aa * ( x1 - x ) * ( x1 - x ) * ( x1 - x );
58 }
59
60 // Shell correction :
61 float f1, f2, f3, f4, f5, ce;
62 f1 = 1 / esq;
63 f2 = f1 * f1;
64 f3 = f1 * f2;
65 f4 = ( f1 * 0.42237 + f2 * 0.0304 - f3 * 0.00038 ) * 1E12;
66 f5 = ( f1 * 3.858 - f2 * 0.1668 + f3 * 0.00158 ) * 1E18;
67 ce = f4 * isq_ + f5 * isq_ * sqrt( isq_ );
68
69 return ( 0.0001535 * rza_ / bsq *
70 ( log( Me * esq * w / isq_ ) - 2 * bsq - delta - 2.0 * ce / z_ ) ) *
71 path;
72}
double mass
TFile * f1
Double_t x[10]
double w
XmlRpcServer s

Referenced by KalFitTrack::eloss().

◆ dE() [2/3]

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

Calculate energy loss.

◆ dE() [3/3]

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

Calculate energy loss.

◆ del_E() [1/3]

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

Calculate the straggling of energy loss.

Definition at line 84 of file KalFitMaterial.cxx.

84 {
85 double sigma0_2 = 0.1569 * rza_ * path;
86
87 if ( sigma0_2 < 0 ) return 0;
88
89 double psq = p * p;
90 double bsq = psq / ( psq + mass * mass );
91
92 // Correction for relativistic particles :
93 double sigma_2 = sigma0_2 * ( 1 - 0.5 * bsq ) / ( 1 - bsq );
94
95 if ( sigma_2 < 0 ) return 0;
96
97 // Return sigma in GeV !!
98 return sqrt( sigma_2 ) * 0.001;
99}

Referenced by KalFitTrack::eloss().

◆ del_E() [2/3]

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

Calculate the straggling of energy loss.

◆ del_E() [3/3]

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

Calculate the straggling of energy loss.

◆ mcs_angle() [1/3]

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

Calculate Multiple Scattering angle.

Definition at line 75 of file KalFitMaterial.cxx.

75 {
76 // cout<<"this material:x0 "<< x0_ << " Z " << z_ << endl
77 // <<" rho*Z/A "<< rza_ << " I^2 "<< isq_ << endl;
78 double t = path / x0_;
79 double psq = p * p;
80 return 0.0136 * sqrt( t * ( mass * mass + psq ) ) / psq * ( 1 + 0.038 * log( t ) );
81}
int t()
Definition t.c:1

Referenced by KalFitTrack::ms().

◆ mcs_angle() [2/3]

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

Calculate Multiple Scattering angle.

◆ mcs_angle() [3/3]

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

Calculate Multiple Scattering angle.

◆ X0() [1/3]

double KalFitMaterial::X0 ( void ) const
inline

Extractor.

Definition at line 40 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitMaterial.h.

40{ return x0_; }

Referenced by KalFitTrack::ms().

◆ X0() [2/3]

double KalFitMaterial::X0 ( void ) const
inline

Extractor.

Definition at line 40 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitMaterial.h.

40{ return x0_; }

◆ X0() [3/3]

double KalFitMaterial::X0 ( void ) const
inline

Extractor.

Definition at line 40 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitMaterial.h.

40{ return x0_; }

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