#include <KokoulinPetrukhinModel.h>
Inheritance diagram for KokoulinPetrukhinModel:

Public Member Functions | |
| KokoulinPetrukhinModel () | |
| KokoulinPetrukhinModel (const Material &material) | |
| ~KokoulinPetrukhinModel () | |
| double | dE_dx (double E) const |
| ValidityRange_t | ValidityRange (void) const |
Private Member Functions | |
| double | bpair (double E) const |
| double | V_min (double E) const |
| double | V_max (double E) const |
| double | P_max (double v, double E) const |
| double | d2s_dvdp (double v, double p, double E) const |
| double | FIe (double v, double p, double E) const |
| double | FIm (double v, double p, double E) const |
| double | Le (double v, double p, double E) const |
| double | Lm (double v, double p, double E) const |
| double | Ye (double v, double p) const |
| double | Ym (double v, double p) const |
________________________________________________________________________________________
Costas Andreopoulos <C.V.Andreopoulos@rl.ac.uk> CCLRC, Rutherford Lab. December 10, 2003 _________________________________________________________________________________________
Definition at line 22 of file KokoulinPetrukhinModel.h.
|
|
Definition at line 26 of file KokoulinPetrukhinModel.cxx. 00026 : 00027 ProcessModel() 00028 { 00029 00030 } //_________________________________________________________________________________________
|
|
|
Definition at line 32 of file KokoulinPetrukhinModel.cxx. 00032 : 00033 ProcessModel(material, Process::ePairProduction) 00034 { 00035 00036 } //_________________________________________________________________________________________
|
|
|
Definition at line 38 of file KokoulinPetrukhinModel.cxx. 00039 {
00040
00041 }
|
|
|
Definition at line 61 of file KokoulinPetrukhinModel.cxx. References Material::A(), d2s_dvdp(), Integrator::Instance(), P_max(), Integrator::Simpson(), V_max(), and V_min(). Referenced by dE_dx(). 00062 {
00063 // Purpose: get the b factor for e+e- pair production from muons ( -dE/dx = b*E )
00064 // Input : E, muon energy in MeV
00065 // Output : b factor in cm^2 / gr
00066
00067 const int kNV = 300;
00068 const int kNP = 300;
00069
00070 assert(E>=0);
00071
00072 Integrator * integrator = Integrator::Instance();
00073
00074 double Vmin = V_min(E);
00075 double Vmax = V_max(E);
00076 double dV = (Vmax-Vmin)/kNV;
00077
00078 double * vds_dv = new double[kNV];
00079
00080 for(int iv = 0; iv < kNV; iv++) {
00081
00082 double v = Vmin + (iv+1) * dV;
00083
00084 double Pmin = 0;
00085 double Pmax = P_max(v, E);
00086
00087 if(Pmax < 0) return 0; // put this here for now so as not to hit an assert() below...
00088 // Eventually I need to solve Pmax(E) > 0 for E, and combine it
00089 // with the E limit from Vmax in the validity range of the model
00090
00091 double dP = (Pmax-Pmin)/kNP;
00092
00093 double * d2s = new double[kNP];
00094
00095 for(int ip = 0; ip < kNP; ip++) d2s[ip] = d2s_dvdp(v, (Pmin + (ip+1) * dP) ,E);
00096
00097 vds_dv[iv] = v * integrator->Simpson(d2s, kNP, dP);
00098
00099 delete [] d2s;
00100
00101 } // v
00102
00103 double integral = integrator->Simpson(vds_dv, kNV, dV);
00104
00105 delete [] vds_dv;
00106
00107 // factor 10 is for dimensions:
00108 // 10 : v*ds/dv(integral) in 10^22 cm2 -- N->N*10^(-23) -> b in 0.1 cm2/gr
00109
00110 return 10* ( 2*MuELoss::Na / fMaterial.A() ) * integral;
00111 }
|
|
||||||||||||||||
|
Definition at line 113 of file KokoulinPetrukhinModel.cxx. References FIe(), FIm(), and Material::Z(). Referenced by bpair(). 00114 {
00115 // Calculate the differential cross section d^2s/dpdv (in 10^22 cm^2) for e+e- pair production
00116 // by muons based on the Kokoulin,Petrukhin parameterization
00117 // Input : v, the fraction of the energy transfered to the e+e- pair
00118 // p, the asymmetry parameter of the e+e- pair p = (E(+) - E(-)) / (E(+) + E(-))
00119 // E, muon energy in MeV
00120 //
00121 assert(v>=0);
00122 assert(p>=0);
00123 assert(E>=0);
00124
00125 double a4 = MuELoss::a_4;
00126 double pi = MuELoss::pi;
00127 double ZLe2 = pow(fMaterial.Z()*MuELoss::Le,2.);
00128 double me_mm_2 = MuELoss::Me_Mm_2;
00129 double fie = FIe(v,p,E);
00130 double fim = FIm(v,p,E);
00131
00132 return a4 * (2./(3.*pi)) * ZLe2 * ( (1.-v)/v ) * ( fie + fim * me_mm_2 );
00133 }
|
|
|
Implements ProcessModel. Definition at line 53 of file KokoulinPetrukhinModel.cxx. References bpair(). 00054 {
00055 // Calculates the muon -dE/dx in ( MeV cm^2 / gr ) due to e+e- pair production
00056 // Input : E, muon energy in MeV
00057
00058 return bpair(E) * E;
00059 }
|
|
||||||||||||||||
|
Definition at line 135 of file KokoulinPetrukhinModel.cxx. References Le(). Referenced by d2s_dvdp(). 00136 {
00137 // Approximate the FIe factor (dimensionless) from pair production cross section
00138 // Input : v, the fraction of the energy transfered to the e+e- pair
00139 // p, the asymmetry parameter of the e+e- pair p = (E(+) - E(-)) / (E(+) + E(-))
00140 // E, muon energy in MeV
00141 //
00142 double b = v*v / (2*(1-v));
00143 double p2 = p*p;
00144 double xi = (1.-p2) * pow( 0.5 *v *MuELoss::Mm_Me , 2.) / (1-v);
00145 double A = ( (2.+p2) * (1.+b) + xi*(3.+p2) ) * log(1.+1./xi);
00146 double B = (1.-p2-b) / (1.+xi);
00147 double C = 3. + p2;
00148
00149 return (A+B-C)*Le(v,p,E);
00150 }
|
|
||||||||||||||||
|
Definition at line 152 of file KokoulinPetrukhinModel.cxx. References Lm(). Referenced by d2s_dvdp(). 00153 {
00154 // Approximates the factor FIm factor (dimensionless) from pair production cross section
00155 // Input : v, the fraction of the energy transfered to the e+e- pair
00156 // p, the asymmetry parameter of the e+e- pair p = (E(+) - E(-)) / (E(+) + E(-))
00157 // E, muon energy in MeV
00158 //
00159 double b = v*v / (2*(1-v));
00160 double p2 = p*p;
00161 double xi = (1.-p2) * pow( 0.5 *v *MuELoss::Mm_Me , 2.) / (1-v);
00162 double A = ( (1.+p2)*(1.+3.*b/2.) - (1.+2.*b)*(1.-p2)/xi ) * log(1.+xi);
00163 double B = xi * (1. - p2 - b) / (1.+xi);
00164 double C = (1.+2.*b) * (1.-p2);
00165
00166 return (A+B+C)*Lm(v,p,E);
00167 }
|
|
||||||||||||||||
|
Definition at line 169 of file KokoulinPetrukhinModel.cxx. References C, Ye(), and Material::Z(). Referenced by FIe(). 00170 {
00171 // Approximates the Le factor (dimensionless) appearing in the factor FIe at pair production xsec
00172 // Input : v, the fraction of the energy transfered to the e+e- pair
00173 // p, the asymmetry parameter of the e+e- pair p = (E(+) - E(-)) / (E(+) + E(-))
00174 // E, muon energy in MeV
00175 //
00176 double p2 = p*p;
00177 double xi = (1.-p2) * pow( 0.5 *v *MuELoss::Mm_Me , 2.) / (1-v);
00178 double Y = Ye(v,p);
00179 double Z_13 = pow(fMaterial.Z(),-1./3.);
00180 double Z13 = pow(fMaterial.Z(), 1./3.);
00181 double MeR = MuELoss::Me * MuELoss::R;
00182 double x_Y = (1+xi)*(1+Y);
00183
00184 double A = MuELoss::R * Z_13 * sqrt( x_Y );
00185 double B = 1. + (2. * MeR * MuELoss::sqrt_e * Z_13 * x_Y) / ( E*v*(1-p2) );
00186 double C = 1.5 * MuELoss::Me_Mm * Z13;
00187 double D = 1 + C*C*x_Y;
00188
00189 return log(A/B) - 0.5 * log(D);
00190 }
|
|
||||||||||||||||
|
Definition at line 192 of file KokoulinPetrukhinModel.cxx. References Ym(), and Material::Z(). Referenced by FIm(). 00193 {
00194 // Approximates the Lm factor (dimensioness) appearing in the factor FIm at pair production xsec
00195 // Input : v, the fraction of the energy transfered to the e+e- pair
00196 // p, the asymmetry parameter of the e+e- pair p = (E(+) - E(-)) / (E(+) + E(-))
00197 // E, muon energy in MeV
00198
00199 double p2 = p*p;
00200 double xi = (1.-p2) * pow( 0.5 *v *MuELoss::Mm_Me , 2.) / (1-v);
00201 double Y = Ym(v,p);
00202 double Z_13 = pow(fMaterial.Z(),-1/3.);
00203 double Z_23 = pow(fMaterial.Z(),-2/3.);
00204 double MeR = MuELoss::Me * MuELoss::R;
00205 double A = (2./3.) * MuELoss::Mm_Me * MuELoss::R * Z_23;
00206 double B = 1. + ( 2. * MeR * MuELoss::sqrt_e * Z_13 * (1+xi) * (1+Y) ) / ( E*v*(1-p2) );
00207
00208 return log(A/B);
00209 }
|
|
||||||||||||
|
Definition at line 251 of file KokoulinPetrukhinModel.cxx. Referenced by bpair(). 00252 {
00253 return (1. - 6.*MuELoss::Mm_2 / (E*E*(1.-v)) ) * sqrt(1.-4.*MuELoss::Me/(E*v));
00254 }
|
|
|
Definition at line 244 of file KokoulinPetrukhinModel.cxx. References Material::Z(). Referenced by bpair(). 00245 {
00246 // Maximum value of parameter v = E(+)+(E-)/E
00247
00248 return 1.- 3.* MuELoss::sqrt_e * MuELoss::Mm * pow(fMaterial.Z(), 1./3.) / (4.*E);
00249 }
|
|
|
Definition at line 237 of file KokoulinPetrukhinModel.cxx. Referenced by bpair(). 00238 {
00239 // Minimum value of parameter v = E(+)+(E-)/E
00240
00241 return 4.*MuELoss::Me/E;
00242 }
|
|
|
Implements ProcessModel. Definition at line 43 of file KokoulinPetrukhinModel.cxx. References ValidityRange::Emax, ValidityRange::Emin, ValidityRange_t, and Material::Z(). 00044 {
00045 ValidityRange_t validity_range;
00046
00047 validity_range.Emin = 0.75*sqrt(MuELoss::e)*(MuELoss::Mm)*pow(fMaterial.Z(), 1./3.);
00048 validity_range.Emax = 10000000.; // MeV
00049
00050 return validity_range;
00051 }
|
|
||||||||||||
|
Definition at line 211 of file KokoulinPetrukhinModel.cxx. Referenced by Le(). 00212 {
00213 // Approximates the Ye factor (dimensionless) in the factor Le at pair production xsec
00214 // Input : v, the fraction of the energy transfered to the e+e- pair
00215 // p, the asymmetry parameter of the e+e- pair p = (E(+) - E(-)) / (E(+) + E(-))
00216 //
00217 double b = v*v / (2*(1-v));
00218 double p2 = p*p;
00219 double xi = (1.-p2) * pow( 0.5 *v *MuELoss::Mm_Me , 2.) / (1-v);
00220
00221 return ( 5. - p2 + 4*b*(1+p2) ) / ( 2.*(1.+3.*b)*log(3.+1./xi) - p2 - 2.*b*(2.-p2) );
00222 }
|
|
||||||||||||
|
Definition at line 224 of file KokoulinPetrukhinModel.cxx. Referenced by Lm(). 00225 {
00226 // Approximates the Ym factor (dimensionless) in the factor Lm at pair production xsec
00227 // Input : v, the fraction of the energy transfered to the e+e- pair
00228 // p, the asymmetry parameter of the e+e- pair p = (E(+) - E(-)) / (E(+) + E(-))
00229 //
00230 double b = v*v / (2*(1-v));
00231 double p2 = p*p;
00232 double xi = (1.-p2) * pow( 0.5 *v *MuELoss::Mm_Me , 2.) / (1-v);
00233
00234 return ( 4. + p2 + 3.*b*(1.+p2) ) / ( (1.+p2)*(1.5+2.*b)*log(3.+xi) + 1. - 1.5*p2 );
00235 }
|
1.3.9.1