#include <BezrukovBugaevModel.h>
Inheritance diagram for BezrukovBugaevModel:
Public Member Functions | |
BezrukovBugaevModel () | |
BezrukovBugaevModel (const Material &material) | |
~BezrukovBugaevModel () | |
double | dE_dx (double E) const |
ValidityRange_t | ValidityRange (void) const |
Private Member Functions | |
double | bnuc (double E) const |
double | V_max (double E) const |
double | ds_dv (double v, double E) const |
double | G (double v, double E) const |
double | PhotonuclXSec (double v, double E) const |
________________________________________________________________________________________
Costas Andreopoulos <C.V.Andreopoulos@rl.ac.uk> CCLRC, Rutherford Lab. December 10, 2003 _________________________________________________________________________________________
Definition at line 22 of file BezrukovBugaevModel.h.
|
Definition at line 26 of file BezrukovBugaevModel.cxx.
00026 : 00027 ProcessModel() 00028 { 00029 00030 } //_________________________________________________________________________________________ |
|
Definition at line 32 of file BezrukovBugaevModel.cxx.
00032 : 00033 ProcessModel(material, Process::eNuclearInteraction) 00034 { 00035 00036 } //_________________________________________________________________________________________ |
|
Definition at line 38 of file BezrukovBugaevModel.cxx.
00039 { 00040 00041 } |
|
Definition at line 61 of file BezrukovBugaevModel.cxx. References Material::A(), ds_dv(), Integrator::Instance(), Integrator::Simpson(), and V_max(). Referenced by dE_dx().
00062 { 00063 // Calculate the b factor for muon nuclear interaction ( -dE/dx = b*E ) in cm^2 / gr 00064 // Input : E, muon energy in MeV 00065 00066 const int kNV = 600; 00067 00068 double Vmin = 0; 00069 double Vmax = V_max(E); 00070 double dV = (Vmax - Vmin) / kNV; 00071 00072 Integrator * integrator = Integrator::Instance(); 00073 00074 double * vds = new double[kNV]; 00075 00076 for(int iv = 0; iv < kNV; iv++) vds[iv] = (Vmin+(iv+1)*dV) * ds_dv(Vmin+(iv+1)*dV, E); 00077 00078 double integral = integrator->Simpson(vds, kNV, dV); 00079 00080 delete [] vds; 00081 00082 // 1e-7 a dimensional factor: 00083 // v*ds/dv (in microbarns) --> v*ds/dv*10^-30 cm^2, N -> N*10^23 00084 00085 return 1e-7*(MuELoss::Na/fMaterial.A())*integral; 00086 } |
|
Implements ProcessModel. Definition at line 53 of file BezrukovBugaevModel.cxx. References bnuc().
00054 { 00055 // Calculate the muon -dE/dx due to muon nuclear interaction in MeV / (gr / cm^2 ) 00056 // Input : E, muon energy in MeV 00057 00058 return bnuc(E) * E; 00059 } |
|
Definition at line 96 of file BezrukovBugaevModel.cxx. References Material::A(), C, G(), and PhotonuclXSec(). Referenced by bnuc().
00097 { 00098 // Calculate the differential cross section ds/dv (in microbarn) for muon nuclear 00099 // interaction based on the Bezrukov, Bugaev formula. 00100 // Input : E, muon energy in MeV 00101 // v, fraction of energy transferred to the photon 00102 // 00103 assert(E >= 0); 00104 assert(v > 0); 00105 00106 double sig = PhotonuclXSec(v,E); 00107 double g = 3.*G(v,E)/4.; 00108 double v2 = v*v; 00109 double t = MuELoss::Mm_2 *v2/(1-v); 00110 double k = 1. - 2./v + 2./v2; 00111 00112 assert(t > 0); 00113 00114 double m1_2_t = MuELoss::m1_2 / t; 00115 double m2_2_t = MuELoss::m2_2 / t; 00116 double mm_2_t = MuELoss::Mm_2 / t; 00117 double d = MuELoss::m1_2 / ( t + MuELoss::m1_2 ); 00118 00119 double A = MuELoss::a * fMaterial.A() * sig * v / (2 * MuELoss::pi); 00120 00121 double B = g * ( k*log(1.+m1_2_t) - k*d - 2.*mm_2_t ); 00122 double C = 0.25 * ( k*log(1.+m2_2_t) - 2.*mm_2_t ); 00123 double D = 0.5*mm_2_t * ( g*d + 0.25*m2_2_t*log(1.+1./m2_2_t) ); 00124 00125 return A*(B+C+D); // microbarns 00126 } |
|
Definition at line 128 of file BezrukovBugaevModel.cxx. References Material::A(), PhotonuclXSec(), and pow(). Referenced by ds_dv().
00129 { 00130 // Calculate the factor G (dimensionless) appearing in the differential photonuclear 00131 // interaction xsec 00132 // Input : E, muon energy in MeV 00133 // v, fraction of energy transferred to the photon 00134 // 00135 assert(E >= 0); 00136 assert(v > 0); 00137 double A13 = pow(fMaterial.A(),1/3.); 00138 double x = 0.00282 * A13 * PhotonuclXSec(v,E); // factor 0.00282 has units of ub^-1 00139 double x2 = x*x; 00140 double x3 = x2*x; 00141 00142 return 3. * ( x2/2. - 1. + (1.+x)*exp(-x) ) / x3; 00143 } |
|
Definition at line 145 of file BezrukovBugaevModel.cxx. Referenced by ds_dv(), and G().
00146 { 00147 // Calculate the cross section (in microbarns) for photonuclear interaction 00148 // Input : E, muon energy in MeV 00149 // v, fraction of energy transferred to the photon 00150 // 00151 assert(E >= 0); 00152 assert(v > 0); 00153 00154 double Ep = v*E; // photon energy 00155 double loge = log(0.0213*1e-3*Ep); // factor 0.0213 has units of GeV^-1 00156 00157 return 114.3 + 1.647 * loge*loge; 00158 } |
|
Definition at line 88 of file BezrukovBugaevModel.cxx. References pow(), and Material::Z(). Referenced by bnuc().
|
|
Implements ProcessModel. Definition at line 43 of file BezrukovBugaevModel.cxx. References ValidityRange::Emax, ValidityRange::Emin, pow(), ValidityRange_t, and Material::Z().
|