BOSS 8.0.0
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.
 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/9]

RkFitMaterial::RkFitMaterial ( )
inline

Constructor.

Definition at line 14 of file InstallArea/x86_64-el9-gcc13-dbg/include/TrkReco/RkFitMaterial.h.

14{}

Referenced by RkFitMaterial().

◆ RkFitMaterial() [2/9]

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

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

◆ RkFitMaterial() [3/9]

RkFitMaterial::RkFitMaterial ( const RkFitMaterial & mat)

Definition at line 27 of file RkFitMaterial.cxx.

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

◆ RkFitMaterial() [4/9]

RkFitMaterial::RkFitMaterial ( )
inline

Constructor.

Definition at line 14 of file InstallArea/x86_64-el9-gcc13-opt/include/TrkReco/RkFitMaterial.h.

14{}

◆ RkFitMaterial() [5/9]

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

◆ RkFitMaterial() [6/9]

RkFitMaterial::RkFitMaterial ( const RkFitMaterial & mat)

◆ RkFitMaterial() [7/9]

RkFitMaterial::RkFitMaterial ( )
inline

Constructor.

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

14{}

◆ RkFitMaterial() [8/9]

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

◆ RkFitMaterial() [9/9]

RkFitMaterial::RkFitMaterial ( const RkFitMaterial & mat)

Member Function Documentation

◆ dE() [1/3]

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

Calculate energy loss.

Definition at line 31 of file RkFitMaterial.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 // Density correction :
45 double cc, x0;
46 cc = 1 + 2 * log( sqrt( isq_ ) / ( 28.8E-09 * sqrt( rza_ ) ) );
47 if ( cc < 5.215 ) x0 = 0.2;
48 else x0 = 0.326 * cc - 1.5;
49 double x1( 3 ), xa( cc / 4.606 ), aa;
50 aa = 4.606 * ( xa - x0 ) / ( ( x1 - x0 ) * ( x1 - x0 ) * ( x1 - x0 ) );
51 double delta( 0 );
52 double x( log10( sqrt( esq ) ) );
53 if ( x > x0 )
54 {
55 delta = 4.606 * x - cc;
56 if ( x < x1 ) delta = delta + aa * ( x1 - x ) * ( x1 - x ) * ( x1 - x );
57 }
58 // Shell correction :
59 float f1, f2, f3, f4, f5, ce;
60 f1 = 1 / esq;
61 f2 = f1 * f1;
62 f3 = f1 * f2;
63 f4 = ( f1 * 0.42237 + f2 * 0.0304 - f3 * 0.00038 ) * 1E12;
64 f5 = ( f1 * 3.858 - f2 * 0.1668 + f3 * 0.00158 ) * 1E18;
65 ce = f4 * isq_ + f5 * isq_ * sqrt( isq_ );
66 return ( 0.0001535 * rza_ / bsq *
67 ( log( Me * esq * w / isq_ ) - 2 * bsq - delta - 2.0 * ce / z_ ) ) *
68 path;
69}
double mass
TFile * f1
Double_t x[10]
double w
XmlRpcServer s

Referenced by TRunge::eloss().

◆ dE() [2/3]

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

Calculate energy loss.

◆ dE() [3/3]

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

Calculate energy loss.

◆ del_E() [1/3]

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

Calculate the straggling of energy loss.

Definition at line 81 of file RkFitMaterial.cxx.

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

◆ del_E() [2/3]

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

Calculate the straggling of energy loss.

◆ del_E() [3/3]

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

Calculate the straggling of energy loss.

◆ mcs_angle() [1/3]

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

Calculate Multiple Scattering angle.

Definition at line 72 of file RkFitMaterial.cxx.

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

◆ mcs_angle() [2/3]

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

Calculate Multiple Scattering angle.

◆ mcs_angle() [3/3]

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

Calculate Multiple Scattering angle.

◆ X0() [1/3]

double RkFitMaterial::X0 ( void ) const
inline

Extractor.

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

27{ return x0_; }

◆ X0() [2/3]

double RkFitMaterial::X0 ( void ) const
inline

Extractor.

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

27{ return x0_; }

◆ X0() [3/3]

double RkFitMaterial::X0 ( void ) const
inline

Extractor.

Definition at line 27 of file Reconstruction/TrkReco/include/TrkReco/RkFitMaterial.h.

27{ return x0_; }

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