75 resA13 = lastA = muu = freeU = a0 = a1 = delta0 = delta1 = 0.0;
76 pcoeff = fGamma*
pEvapMass*CLHEP::millibarn
77 /((CLHEP::pi*CLHEP::hbarc)*(CLHEP::pi*CLHEP::hbarc));
79 if (1 ==
theZ && 1 ==
theA) { index = 1; }
80 else if (1 ==
theZ && 2 ==
theA) { index = 2; }
81 else if (1 ==
theZ && 3 ==
theA) { index = 3; }
82 else if (2 ==
theZ && 3 ==
theA) { index = 4; }
83 else if (2 ==
theZ && 4 ==
theA) { index = 5; }
140 G4double SystemEntropy = 2.0*std::sqrt(a0*freeU);
141 const G4double RN2 = 2.25*CLHEP::fermi*CLHEP::fermi
142 /(CLHEP::twopi*CLHEP::hbar_Planck*hbar_Planck);
152 G4double Term1 = Beta*a1 - 1.5 + maxea;
153 G4double Term2 = (2.0*Beta*a1-3.0)*std::sqrt(maxea) + 2*maxea;
155 G4double ExpTerm1 = (SystemEntropy <= explim) ?
G4Exp(-SystemEntropy) : 0.0;
157 G4double ExpTerm2 = 2.*std::sqrt(maxea) - SystemEntropy;
158 ExpTerm2 = std::min(ExpTerm2, explim);
159 ExpTerm2 =
G4Exp(ExpTerm2);
161 pProbability = GlobalFactor*(Term1*ExpTerm1 + Term2*ExpTerm2);
185 if (excRes < 0.0) {
return 0.0; }
188 if (xs <= 0.0) {
return 0.0; }
191 G4double E0 = std::max(freeU - delta0, 0.0);
192 G4double E1 = std::max(excRes - delta1, 0.0);
193 G4double prob = pcoeff*
G4Exp(2.0*(std::sqrt(a1*E1) - std::sqrt(a0*E0)))*K*xs;
202 if (
OPTxs > 1 && 0 < index &&
resA != lastA) {
208 G4int Z = std::min(
resZ, ZMAXNUCLEARDATA);
211 if (e1 == 0.0) { e1 = lim; }
218 K = std::max(K, 2*CB);
221 recentXS = corr*fXSection->GetElementCrossSection(K, Z)/CLHEP::millibarn;
223 }
else if (
OPTxs == 2) {
226 }
else if (
OPTxs == 3) {
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
static G4double ComputeCrossSection(G4double K, G4double cb, G4double resA13, G4double amu1, G4int idx, G4int Z, G4int resA)
static G4double CorrectionFactor(const G4int index, const G4int Z, const G4double A13, const G4double bCoulomb, const G4double ekin)
static G4Deuteron * Deuteron()
G4double CrossSection(G4double K, G4double CB)
G4EvaporationProbability(G4int anA, G4int aZ, G4double aGamma)
~G4EvaporationProbability() override
G4double ComputeProbability(G4double K, G4double CB) override
virtual G4double CalcAlphaParam(const G4Fragment &fragment)
virtual G4double TotalProbability(const G4Fragment &fragment, G4double minKinEnergy, G4double maxKinEnergy, G4double CB, G4double exEnergy)
virtual G4double CalcBetaParam(const G4Fragment &fragment)
static G4double ComputePowerParameter(G4int resA, G4int idx)
static G4double ComputeCrossSection(G4double K, G4double cb, G4double resA13, G4double amu1, G4int idx, G4int Z, G4int A, G4int resA)
static G4Neutron * Neutron()
static G4Proton * Proton()
static G4Triton * Triton()
G4VEmissionProbability(G4int Z, G4int A)
G4double IntegrateProbability(G4double elow, G4double ehigh, G4double CB)
G4NuclearLevelData * pNuclearLevelData
void ResetIntegrator(G4double de, G4double eps)