65 LimitEnergy (5.*Mmuon),
66 LowestEnergyLimit (2.*Mmuon),
67 HighestEnergyLimit(1e12*
GeV),
154 SIGMA += NbOfAtomsPerVolume[i] * fact *
157 return (SIGMA > 0.0) ? 1./SIGMA :
DBL_MAX;
185 G4double PowThres,Ecor,
B,Dn,Zthird,Winfty,WMedAppr,
196 Zthird=1./nist->
GetZ13(Z);
199 Wsatur=Winfty/WMedAppr;
201 PowThres=1.479+0.00799*Dn;
202 Ecor=-18.+4347./(B*Zthird);
209 G4double CrossSection=7./9.*sigfac*
G4Log(1.+WMedAppr*CorFuc*Eg);
220 G4cout <<
"The cross section for GammaConversionToMuons is artificially "
250 std::vector<G4DynamicParticle*> fvect;
292 /(1.+2.*sBZ*
Mmuon*GammaMuonInv));
301 W=Winfty*(1.+Ds2*del/
Mmuon)/(1.+sBZ*del);
303 result=(xxp > 0.) ? xxp*
G4Log(W)*LogWmaxInv : 0.0;
305 G4cout <<
"G4GammaConversionToMuons::PostStepDoIt WARNING:"
306 <<
" in dSigxPlusGen, result=" << result <<
" > 1" <<
G4endl;
309 if(nn >= nmax) {
break; }
319 G4double a3 = (GammaMuonInv/(2.*xPM));
326 G4double f1_max=-(1.-xPM)*(2.*b1+(a21+a33)*
G4Log(a33/a21))/(2*b3);
328 G4double thetaPlus,thetaMinus,phiHalf;
341 f1=(1.-2.*xPM+4.*xPM*t*(1.-
t))/(12.*a34*a34*a34*a34);
345 f1=-(1.-2.*xPM+4.*xPM*t*(1.-
t))*(2.*b1+(a22+a34)*
G4Log(a34/a22))/(2*b3);
347 if(f1<0.0 || f1> f1_max)
349 G4cout <<
"G4GammaConversionToMuons::PostStepDoIt WARNING:"
350 <<
"outside allowed range f1=" << f1
351 <<
" is set to zero, a34 = "<< a34 <<
" a22 = "<<a22<<
"."
355 if(nn > nmax) {
break; }
359 G4double f2_max=1.-2.*xPM*(1.-4.*t*(1.-
t));
365 f2=1.-2.*xPM+4.*xPM*t*(1.-
t)*(1.+cos(2.*psi));
366 if(f2<0 || f2> f2_max)
368 G4cout <<
"G4GammaConversionToMuons::PostStepDoIt WARNING:"
369 <<
"outside allowed range f2=" << f2 <<
" is set to zero"
373 if(nn >= nmax) {
break; }
378 G4double C2Term1=GammaMuonInv/(2.*xPM*
t);
379 G4double C22 = C2Term1*C2Term1+C2Term2*C2Term2;
388 phiHalf=0.5*rho/u*sin(psi);
390 thetaPlus =GammaMuonInv*(u+xiHalf)/xPlus;
391 thetaMinus=GammaMuonInv*(u-xiHalf)/xMinus;
395 if(
std::abs(thetaPlus)>
pi) { thetaPlus = 0.0; }
396 if(
std::abs(thetaMinus)>
pi) { thetaMinus = 0.0; }
409 G4ThreeVector MuPlusDirection ( sin(thetaPlus) *cos(phi0+phiHalf),
410 sin(thetaPlus) *sin(phi0+phiHalf), cos(thetaPlus) );
411 G4ThreeVector MuMinusDirection (-sin(thetaMinus)*cos(phi0-phiHalf),
412 -sin(thetaMinus) *sin(phi0-phiHalf), cos(thetaMinus) );
414 MuPlusDirection.
rotateUz(GammaDirection);
415 MuMinusDirection.
rotateUz(GammaDirection);
439 const G4Element* elm = (*theElementVector)[0];
441 if (NumberOfElements > 1) {
447 for (
G4int i=0; i<NumberOfElements; ++i)
449 elm = (*theElementVector)[i];
450 PartialSumSigma += NbOfAtomsPerVolume[i]
452 if (rval <= PartialSumSigma) {
break; }
462 G4String comments =
"gamma->mu+mu- Bethe Heitler process, SubType= ";
465 G4cout <<
" good cross section parametrization from "