100 { 0.0199, 0.1017, 0.2372, 0.4083, 0.5917, 0.7628, 0.8983, 0.9801 };
102 { 0.0506, 0.1112, 0.1569, 0.1813, 0.1813, 0.1569, 0.1112, 0.0506 };
116 fParticleChange(nullptr),
118 lowestKinEnergy(1.0*
GeV),
215 const G4double* theAtomicNumDensityVector =
220 G4double Z = (*theElementVector)[i]->GetZ();
223 dedx += loss*theAtomicNumDensityVector[i];
247 if (kkk > 8) { kkk = 8; }
248 else if (kkk < 1) { kkk = 1; }
253 for (
G4int l=0 ; l<kkk; ++l) {
254 for (
G4int ll=0; ll<8; ++ll)
276 if (tmax <= cut) {
return cross; }
283 if(kkk > 8) { kkk = 8; }
284 else if (kkk < 1) { kkk = 1; }
289 for(
G4int l=0; l<kkk; ++l)
291 for(
G4int i=0; i<8; ++i)
315 static const G4double bbbh = 202.4 ;
316 static const G4double g1tf = 1.95e-5 ;
317 static const G4double g2tf = 5.3e-5 ;
318 static const G4double g1h = 4.4e-5 ;
319 static const G4double g2h = 4.8e-5 ;
322 G4double residEnergy = totalEnergy - pairEnergy;
324 G4double massratio2 = massratio*massratio;
328 if (residEnergy <= c3*
z13) {
return cross; }
334 if (a3 <= 0.) {
return cross; }
338 if( Z < 1.5 ) { bbb = bbbh ; g1 = g1h ; g2 = g2h ; }
339 else { bbb = bbbtf; g1 = g1tf; g2 = g2tf; }
343 0.073*
G4Log(totalEnergy/(particleMass+g1*
z23*totalEnergy))-0.26;
347 0.058*
G4Log(totalEnergy/(particleMass+g2*z13*totalEnergy))-0.14;
360 G4double tmnexp = alf/(1. + rta3) + del*rta3;
361 if(tmnexp >= 1.0) {
return cross; }
367 for (
G4int i=0; i<8; ++i)
381 G4double ale =
G4Log(bbb/z13*sqrt(xi1*ye1)/(1.+screen*ye1)) ;
386 be = ((2.+a6)*(1.+bet)+xi*a9)*
G4Log(1.+xii)+(a5-bet)/xi1-a9;
388 be = (3.-a6+a1*a7)/(2.*xi);
391 if ( fe < 0.) fe = 0. ;
401 bm = (a7*(1.+1.5*bet)-a10*xii)*
G4Log(xi1)+xi*(a5-bet)/xi1+a10;
403 bm = (5.-a6+bet*a9)*(xi/2.);
407 if ( fm < 0.) { fm = 0.; }
409 sum +=
wgi[i]*a4*(fe+fm/massratio2);
412 cross = -tmn*sum*
factorForCross*z2*residEnergy/(totalEnergy*pairEnergy);
432 if (cut >= tmax) {
return cross; }
435 if(tmax < kineticEnergy) {
466 size_t imax = (size_t)fac;
480 for (
size_t i=0; i<
nbiny; ++i) {
482 if(0 ==
it) { pv->
PutX(i, x); }
494 }
else if(i == imax) {
501 kinEnergy *= factore;
513 std::vector<G4DynamicParticle*>* vdp,
525 sqrt(kineticEnergy*(kineticEnergy + 2.0*particleMass));
538 if(minEnergy >= maxEnergy) {
return; }
557 G4int iz1(0), iz2(0);
564 if(iz > 0) { iz1 =
zdat[iz-1]; }
569 if(0 == iz1) { iz1 = iz2 =
zdat[nzdat-1]; }
586 x += (x2 -
x)*(
lnZ - lz1)/(lz2 - lz1);
589 PairEnergy = kineticEnergy*
G4Exp(x*coeff);
592 }
while((PairEnergy < minEnergy || PairEnergy > maxEnergy) && 10 > count);
599 (1.-6.*particleMass*particleMass/(totalEnergy*(totalEnergy-PairEnergy)))
604 G4double ElectronEnergy = (1.-
r)*PairEnergy*0.5;
605 G4double PositronEnergy = PairEnergy - ElectronEnergy;
618 G4double dirx = sint*cos(phi), diry = sint*sin(phi), dirz = cos(theta) ;
636 kineticEnergy -= (ElectronEnergy + PositronEnergy);
639 partDirection *= totalMomentum;
641 partDirection = partDirection.
unit();
645 vdp->push_back(aParticle1);
646 vdp->push_back(aParticle2);
655 ed <<
"G4ElementData is not properly initialized Z= " << Z
656 <<
" Ekin(MeV)= " <<
G4Exp(logTkin)
657 <<
" IsMasterThread= " <<
IsMaster()
671 std::ostringstream ss;
673 std::ofstream outfile(ss.str());
682 char* path = std::getenv(
"G4LEDATA");
685 std::ostringstream ost;
686 ost << path <<
"/mupair/";
699 std::ostringstream ss;
702 if(!pv->
Retrieve(infile)) {
return false; }