65 G4cout <<
"Screened Rutherford Elastic model is constructed " <<
G4endl
97 G4cout <<
"Calling G4DNAUeharaScreenedRutherfordElasticModel::Initialise()"
104 G4Exception(
"*** WARNING: the G4DNAUeharaScreenedRutherfordElasticModel is "
105 "not intented to be used with another particle than the electron",
113 G4Exception(
"*** WARNING : the G4DNAUeharaScreenedRutherfordElasticModel "
114 "class is not validated below 9 eV",
120 G4Exception(
"*** WARNING: the G4DNAUeharaScreenedRutherfordElasticModel "
121 "class is used above 10 keV",
125 #ifdef UEHARA_VERBOSE
128 G4cout <<
"Screened Rutherford elastic model is initialized " <<
G4endl
199 #ifdef UEHARA_VERBOSE
203 <<
"Calling CrossSectionPerVolume() of G4DNAUeharaScreenedRutherfordElasticModel"
216 sigma =
pi * crossSection / (n * (n + 1.));
218 #ifdef UEHARA_VERBOSE
221 G4cout <<
"__________________________________" <<
G4endl;
222 G4cout <<
"=== G4DNAUeharaScreenedRutherfordElasticModel - XS INFO START"
224 G4cout <<
"=== Kinetic energy(eV)=" << ekin/
eV
225 <<
" particle : " << particleDefinition->GetParticleName() <<
G4endl;
226 G4cout <<
"=== Cross section per water molecule (cm^2)=" << sigma/
cm/
cm
228 G4cout <<
"=== Cross section per water molecule (cm^-1)="
229 << sigma*waterDensity/(1./
cm) << G4endl;
230 G4cout <<
"=== G4DNAUeharaScreenedRutherfordElasticModel - XS INFO END"
235 return sigma*waterDensity;
277 etaC = 1.13 + 3.76 * (z * z / (137 * 137 * beta2));
279 G4double numerator = etaC * constK * std::pow(z, 2. / 3.);
286 if (denominator > 0.)
287 value = numerator / denominator;
302 #ifdef UEHARA_VERBOSE
306 <<
"Calling SampleSecondaries() of G4DNAUeharaScreenedRutherfordElasticModel"
317 #ifdef UEHARA_VERBOSE
319 G4cout <<
"---> Using Brenner & Zaider model" <<
G4endl;
325 #ifdef UEHARA_VERBOSE
327 G4cout <<
"---> Using Screened Rutherford model" <<
G4endl;
339 G4double xDir = std::sqrt(1. - cosTheta*cosTheta);
341 xDir *= std::cos(phi);
342 yDir *= std::sin(phi);
344 G4ThreeVector zPrimeVers((xDir*xVers + yDir*yVers + cosTheta*zVers));
394 / (1. / (4. * gamma * gamma)
395 + beta / ((2. + 2. * delta) * (2. + 2. *
delta)));
406 leftDenominator = (1. + 2.*gamma - cosTheta);
407 rightDenominator = (1. + 2.*delta + cosTheta);
408 if ( (leftDenominator * rightDenominator) != 0. )
410 fCosTheta = oneOverMax * (1./(leftDenominator*leftDenominator)
411 + beta/(rightDenominator*rightDenominator));
470 G4double S = 2.0 / (a1 * a2) + 2.0 * beta / (b1 * b2); S = 1.0 /
S;
473 G4double A = S * (b1 - beta * a2) + cp * a2 * b1;
474 G4double B = S * (b1 * b2 + beta * a1 * a2) - cp * a2 * b1 * c1;
475 G4double C = S * (b * b1 + beta * a * a2) - cp * a2 * b1 * c2;
478 return (-1.0 * B + std::sqrt(B * B - 4.0 * A * C)) / (2.0 * A);
528 std::vector<G4double>& vec)
535 size_t size = vec.size();
581 fCosTheta = (1 + 2.*n - cosTheta);
582 if (fCosTheta !=0.) fCosTheta = oneOverMax / (fCosTheta*fCosTheta);
614 G4double numerator = cp * (1.0 + 2.0 *
n) - n;
616 return numerator / denominator;