66 G4Element* element = (*theElementVector)[i];
67 SIGMA += NbOfAtomsPerVolume[i] * CR_PerAtom(process, element, tkin, ep);
81 if (process ==
"muBrems")
84 else if (process ==
"muIoni")
87 else if (process ==
"muNucl")
90 else if (process ==
"muPairProd")
98 double MuCrossSections::CRB_Mephi(
double z,
double a,
double tkin,
double ep)
116 double e,
v,delta,rab0,z_13,dn,
b,b1,dn_star,rab1,fn,epmax1,
fe,rab2;
118 double ame=0.51099907e-3;
119 double lamu=0.105658389;
120 double re=2.81794092e-13;
121 double avno=6.022137e23;
122 double alpha=1./137.036;
123 double rmass=lamu/ame;
124 double coeff=16./3.*alpha*avno*(re/rmass)*(re/rmass);
125 double sqrte=1.64872127;
138 delta=lamu*lamu*v/(2.*(e-ep));
140 z_13=pow(z,-0.3333333);
153 dn_star=pow(dn,(1.-1./z));
157 fn=log(rab1/(dn_star*(ame+rab0*rab1))*(lamu+delta*(dn_star*sqrte-2.)));
160 epmax1=e/(1.+lamu*rmass/(2.*
e));
167 fe=log(rab2*lamu/((1.+delta*rmass/(ame*sqrte))*(ame+rab0*rab2)));
171 crb_g4=coeff*(1.-v*(1.-0.75*
v))*z*(z*fn+
fe)/(a*ep);
177 double MuCrossSections::CRK_Mephi(
double z,
double a,
double tkin,
double ep)
190 double e,epmax,
v,sigma0,a1,a3;
192 double ame=0.51099907e-3;
193 double lamu=0.105658389;
194 double re=2.81794092e-13;
195 double avno=6.022137e23;
196 double alpha=1./137.036;
197 double lpi=3.141592654;
198 double bmu=lamu*lamu/(2.*ame);
199 double coeff0=avno*2.*lpi*ame*re*re;
200 double coeff1=alpha/(2.*lpi);
210 sigma0=coeff0*(z/
a)*(1.-ep/epmax+0.5*v*v)/(ep*ep);
211 a1=log(1.+2.*ep/ame);
212 a3=log(4.*e*(e-ep)/(lamu*lamu));
213 crk_g4=sigma0*(1.+coeff1*a1*(a3-a1));
219 double MuCrossSections::CRN_Mephi(
double ,
double a,
double tkin,
double ep)
232 double e,aeff,sigph,
v,v1,v2,amu2,up,down;
234 double lamu=0.105658389;
235 double avno=6.022137e23;
236 double amp=0.9382723;
237 double lpi=3.14159265;
238 double alpha=1./137.036;
240 double epmin_phn=0.20;
241 double alam2=0.400000;
242 double alam =0.632456;
243 double coeffn=alpha/lpi*avno*1e-30;
247 if(ep >= e-0.5*amp)
return crn_g4;
248 if(ep <= epmin_phn)
return crn_g4;
249 aeff=0.22*a+0.78*pow(a,0.89);
250 sigph=49.2+11.1*log(ep)+151.8/sqrt(ep);
255 up=e*e*v1/amu2*(1.+amu2*v2/(alam2*v1));
256 down=1.+ep/alam*(1.+alam/(2.*amp)+ep/alam);
257 crn_g4=coeffn*aeff/a*sigph/ep*(-v1+(v1+0.5*v2*(1.+2.*amu2/alam2))*log(up/down));
258 if(crn_g4 < 0.) crn_g4=0.;
264 double MuCrossSections::CRP_Mephi(
double z,
double a,
double tkin,
double ep)
282 double bbbtf,bbbh,g1tf,g2tf,g1h,g2h,
e,z13,e1,alf,a3,bbb;
283 double g1,g2,zeta1,zeta2,zeta,z2,screen0,a0,a1,bet,
xi0,del;
284 double tmn,sum,a4,a5,a6,a7,a9,xi,xii,xi1,screen,yeu,yed,ye1;
285 double ale,cre,be,
fe,ymu,ymd,ym1,alm_crm,a10,bm,fm;
287 double ame=0.51099907e-3;
288 double lamu=0.105658389;
289 double re=2.81794092e-13;
290 double avno=6.022137e23;
291 double lpi=3.14159265;
292 double alpha=1./137.036;
293 double rmass=lamu/ame;
294 double coeff=4./(3.*lpi)*(alpha*re)*(alpha*re)*avno;
295 double sqrte=1.64872127;
296 double c3=3.*sqrte*lamu/4.;
298 double c8=6.*lamu*lamu;
300 double xgi[8]={.0199,.1017,.2372,.4083,.5917,.7628,.8983,.9801};
301 double wgi[8]={.0506,.1112,.1569,.1813,.1813,.1569,.1112,.0506};
310 z13=pow(z,0.3333333);
313 if(e1 <= c3*z13)
return crp_g4;
316 if(a3 <= 0.)
return crp_g4;
330 zeta1=0.073*log(e/(lamu+g1*z13*z13*e))-0.26;
333 zeta2=0.058*log(e/(lamu+g2*z13*e))-0.14;
345 screen0=2.*ame*sqrte*bbb/(z13*ep);
349 xi0=0.25*rmass*rmass*a1;
351 tmn=log((alf+2.*del*a3)/(1.+(1.-del)*sqrt(a3)));
353 for(
int i=0; i<=7; i++)
363 screen=screen0*xi1/a5;
365 yed=2.*(1.+3.*bet)*log(3.+xii)-a6-a1*(2.-a6);
367 ale=log(bbb/z13*sqrt(xi1*ye1)/(1.+screen*ye1));
368 cre=0.5*log(1.+(1.5/rmass*z13)*(1.5/rmass*z13)*xi1*ye1);
371 be=((2.+a6)*(1.+bet)+xi*a9)*log(1.+xii)+(a5-bet)/xi1-a9;
375 be=(3.-a6+a1*a7)/(2.*xi);
377 fe=max(0.,(ale-cre)*be);
379 ymd=a7*(1.5+a1)*log(3.+xi)+1.-1.5*a6;
381 alm_crm=log(bbb*rmass/(1.5*z13*z13*(1.+screen*ym1)));
385 bm=(a7*(1.+1.5*bet)-a10*xii)*log(xi1)+xi*(a5-bet)/xi1+a10;
389 bm=(5.-a6+bet*a9)*(xi/2.);
391 fm=max(0.,(alm_crm)*bm);
393 sum=sum+a4*(fe+fm/(rmass*rmass))*wgi[i];
395 crp_g4=-tmn*sum*(z2/
a)*coeff*e1/(e*ep);