80 1.98550718e-02, 1.01666761e-01, 2.37233795e-01, 4.08282679e-01,
81 5.91717321e-01, 7.62766205e-01, 8.98333239e-01, 9.80144928e-01
84 5.06142681e-02, 1.11190517e-01, 1.56853323e-01, 1.81341892e-01,
85 1.81341892e-01, 1.56853323e-01, 1.11190517e-01, 5.06142681e-02
91 0.0, 5.3104, 4.7935, 4.7402, 4.7112, 4.6694, 4.6134, 4.5520
94 0.0, 5.9173, 5.6125, 5.5377, 5.4728, 5.4174, 5.3688, 5.3236
118 fParticleChange(nullptr)
186 const G4double eps1 = 0.5 - 0.5*std::sqrt(1.-dmin/dmax);
194 const G4int numSub = 2;
196 G4double minEti = epsMin*gammaEnergy;
197 for (
G4int i = 0; i < numSub; ++i) {
198 for (
G4int ngl = 0; ngl < 8; ++ngl) {
202 xSection +=
gWGL[ngl]*xs;
208 xSection =
std::max(2.*xSection*dInterv, 0.);
240 xSection = (eps*eps + epsm*epsm + 2.*dum/3.)*(Lel-fc) - dum/9.;
249 xSection = (eps*eps + epsm*epsm)*(0.25*phi1-lnZ13-fc)
250 + 2.*dum*(0.25*phi2-lnZ13-fc)/3.;
254 return std::max(xSection, 0.0)/gammaEnergy;
292 xSection = (Lel-fc)*((eps*eps+epsm*epsm)*2.*fPhiS + fGS)/3. - dum*fGS/9.;
301 xSection = (eps*eps + epsm*epsm)*(2.*fPhiS+fGS)*(0.25*phi1-lnZ13-fc)/3.
302 + 2.*dum*fGS*(0.25*phi2-lnZ13-fc)/3.;
306 return std::max(fXiS*xSection, 0.0)/gammaEnergy;
371 if (eps0 > 0.5) {
return; }
386 if (gammaEnergy < Egsmall) {
387 eps = eps0 + (0.5-eps0)*rndmEngine->flat();
407 const G4double deltaMin = 4.*deltaFactor;
415 const G4double epsp = 0.5 - 0.5*std::sqrt(1. - deltaMin/deltaMax) ;
417 const G4double epsRange = 0.5 - epsMin;
426 const G4double NormCond = NormF1/(NormF1 + NormF2);
434 rndmEngine->flatArray(3, rndmv);
435 if (NormCond > rndmv[0]) {
436 eps = 0.5 - epsRange *
fG4Calc->
A13(rndmv[1]);
439 G4double lpmXiS, lpmGS, lpmPhiS, phi1, phi2;
442 greject = lpmXiS*((2.*lpmPhiS+lpmGS)*phi1-lpmGS*phi2-lpmPhiS*FZ)/
F10;
447 eps = epsMin + epsRange*rndmv[1];
450 G4double lpmXiS, lpmGS, lpmPhiS, phi1, phi2;
453 greject = lpmXiS*( (lpmPhiS+0.5*lpmGS)*phi1 + 0.5*lpmGS*phi2
454 -0.5*(lpmGS+lpmPhiS)*FZ )/F20;
460 }
while (greject < rndmv[2]);
466 if (rndmEngine->flat() > 0.5) {
467 eTotEnergy = (1.-
eps)*gammaEnergy;
468 pTotEnergy = eps*gammaEnergy;
470 pTotEnergy = (1.-
eps)*gammaEnergy;
471 eTotEnergy = eps*gammaEnergy;
482 eKinEnergy, pKinEnergy, eDirection, pDirection);
491 fvect->push_back(aParticle1);
492 fvect->push_back(aParticle2);
507 size_t numElems = (*elemTable).size();
508 for (
size_t ie = 0; ie < numElems; ++ie) {
509 const G4Element* elem = (*elemTable)[ie];
516 const G4double FZHigh = 8.*(logZ13 + fc);
523 Fel =
G4Log(184.) - logZ13;
524 Finel =
G4Log(1194.) - 2.*logZ13;
557 if (varShat < 0.01) {
558 funcPhiS = 6.0*varShat*(1.0-
CLHEP::pi*varShat);
559 funcGS = 12.0*varShat-2.0*funcPhiS;
561 const G4double varShat2 = varShat*varShat;
562 const G4double varShat3 = varShat*varShat2;
563 const G4double varShat4 = varShat2*varShat2;
564 if (varShat < 0.415827397755) {
566 + varShat3/(0.623+0.796*varShat+0.658*varShat2));
568 const G4double funcPsiS = 1.0-
G4Exp( -4.0*varShat - 8.0*varShat2/(1.0
569 + 3.936*varShat+4.97*varShat2-0.05*varShat3+7.5*varShat4));
571 funcGS = 3.0*funcPsiS - 2.0*funcPhiS;
572 }
else if (varShat < 1.55) {
574 + varShat3/(0.623+0.796*varShat+0.658*varShat2));
575 const G4double dum0 = -0.16072300849123999+3.7550300067531581*varShat
576 -1.7981383069010097 *varShat2
577 +0.67282686077812381*varShat3
578 -0.1207722909879257 *varShat4;
579 funcGS = std::tanh(dum0);
581 funcPhiS = 1.0-0.01190476/varShat4;
582 if (varShat < 1.9156) {
583 const G4double dum0 = -0.16072300849123999+3.7550300067531581*varShat
584 -1.7981383069010097 *varShat2
585 +0.67282686077812381*varShat3
586 -0.1207722909879257 *varShat4;
587 funcGS = std::tanh(dum0);
589 funcGS = 1.0-0.0230655/varShat4;
610 lpmPhis = 1.0-0.01190476/ss;
611 lpmGs = 1.0-0.0230655/ss;
625 if (varSprime > 1.0) {
627 }
else if (varSprime > condition) {
630 funcXiS = 1.0 + funcHSprime
631 - 0.08*(1.0-funcHSprime)*funcHSprime*(2.0-funcHSprime)*dum;
634 const G4double varShat = varSprime / std::sqrt(funcXiS);
637 if (funcXiS * funcPhiS > 1. || varShat > 0.57) {
638 funcXiS = 1. / funcPhiS;
662 if (Z < 0.9 || gammaE <= 2.0*kMC2) {
return xSection; }
688 if (gammaE < gammaEnergyLimit) { gammaE = gammaEnergyLimit; }
696 const G4double F1 = a0 + a1*x + a2*x2 + a3*x3 + a4*x4 + a5*
x5;
697 const G4double F2 = b0 + b1*x + b2*x2 + b3*x3 + b4*x4 + b5*
x5;
698 const G4double F3 = c0 + c1*x + c2*x2 + c3*x3 + c4*x4 + c5*
x5;
700 xSection = (Z + 1.)*(F1*Z + F2*Z*Z +
F3);
702 if (gammaEnergyOrg < gammaEnergyLimit) {
703 const G4double dum = (gammaEnergyOrg-2.*
kMC2)/(gammaEnergyLimit-2.*kMC2);