65 fParticleChange(nullptr)
114 if (Z < 0.9 || gammaEnergy <= 2.0*kMC2) {
return xSection; }
139 G4double gammaEnergyOrg = gammaEnergy;
140 if (gammaEnergy < gammaEnergyLimit) { gammaEnergy = gammaEnergyLimit; }
148 const G4double F1 = a0 + a1*x + a2*x2 + a3*x3 + a4*x4 + a5*
x5;
149 const G4double F2 = b0 + b1*x + b2*x2 + b3*x3 + b4*x4 + b5*
x5;
150 const G4double F3 = c0 + c1*x + c2*x2 + c3*x3 + c4*x4 + c5*
x5;
152 xSection = (Z + 1.)*(F1*Z + F2*Z*Z +
F3);
154 if (gammaEnergyOrg < gammaEnergyLimit) {
155 const G4double dum = (gammaEnergyOrg-2.*
kMC2)/(gammaEnergyLimit-2.*kMC2);
185 if (eps0 > 0.5) {
return; }
203 if (gammaEnergy < Egsmall) {
204 eps = eps0 + (0.5-eps0)*rndmEngine->flat();
227 if (gammaEnergy > midEnergy) {
231 const G4double deltaMin = 4.*deltaFactor;
234 const G4double epsp = 0.5 - 0.5*std::sqrt(1. - deltaMin/deltaMax) ;
236 const G4double epsRange = 0.5 - epsMin;
245 const G4double NormCond = NormF1/(NormF1 + NormF2);
250 rndmEngine->flatArray(3, rndmv);
251 if (NormCond > rndmv[0]) {
252 eps = 0.5 - epsRange *
fG4Calc->
A13(rndmv[1]);
256 eps = epsMin + epsRange*rndmv[1];
261 }
while (greject < rndmv[2]);
266 if (rndmEngine->flat() > 0.5) {
267 eTotEnergy = (1.-
eps)*gammaEnergy;
268 pTotEnergy = eps*gammaEnergy;
270 pTotEnergy = (1.-
eps)*gammaEnergy;
271 eTotEnergy = eps*gammaEnergy;
281 eKinEnergy, pKinEnergy,
282 eDirection, pDirection);
290 fvect->push_back(aParticle1);
291 fvect->push_back(aParticle2);
306 size_t numElems = (*elemTable).size();
307 for (
size_t ie = 0; ie < numElems; ++ie) {
308 const G4Element* elem = (*elemTable)[ie];