77 currentCouple(nullptr),
80 fSecondMoments(nullptr),
83 singleScatteringMode(
false),
85 useSecondMoment(
false)
170 *
G4lrint(std::log10(emax/emin));
173 for(
size_t i=0; i<numOfCouples; ++i) {
180 delete (*fSecondMoments)[i];
187 for(
size_t j=0; j<
n; ++j) {
192 (*fSecondMoments)[i] = bVector;
233 G4Exception(
"G4WentzelVIModel::ComputeCrossSectionPerAtom",
"em0011",
271 G4double tlimit = currentMinimalStep;
339 if(rcut > rlimit) { rlimit =
std::min(rlimit, rcut*sqrt(rlimit/rcut)); }
438 tPathLength = geomStepLength*(1.0 + 0.5*tau + tau*tau/3.0);
477 }
else if(
xtsec > 0.0) {
483 }
else if(tau < 0.999999) {
544 prob2 = (z2 -
z1)/(1.5*z1 - z2);
555 zzz =
G4Exp(-1.0/z0);
559 prob2 /= (1 + prob2);
624 for (; i<nelm; ++i) {
if(
xsecn[i] >= qsec) {
break; } }
649 if(prob2 > 0.0 && rndmEngine->
flat() < prob2) { isFirst =
false; }
652 if(isFirst) { z = -
G4Log(rndmEngine->
flat()); }
659 if(cost > 1.0) { cost = 1.0; }
660 else if(cost < -1.0) { cost =-1.0; }
661 sint = sqrt((1.0 - cost)*(1.0 + cost));
676 temp.
set(dx,dy,sqrt(d) - r);
682 temp.
set(vx1,vy1,cost);
687 }
while (0 < nMscSteps);
720 const G4double* theAtomNumDensityVector =
738 for (
G4int i=0; i<nelm; ++i) {
741 G4double density = theAtomNumDensityVector[i];
744 if(costm < cosTheta) {
754 if(nucsec > 0.0) { esec /= nucsec; }
755 xtsec += nucsec*density;
782 const G4double* theAtomNumDensityVector =
790 for (
G4int i=0; i<nelm; ++i) {
793 xs += theAtomNumDensityVector[i]