63 resA13 = muu = freeU = a0 = delta1 = 0.0;
64 pcoeff = fGamma*
pEvapMass*CLHEP::millibarn
65 /((CLHEP::pi*CLHEP::hbarc)*(CLHEP::pi*CLHEP::hbarc));
67 if(0 ==
theZ) { index = 0; }
69 else { index =
theA + 1; }
114 G4double SystemEntropy = 2.0*std::sqrt(a0*freeU);
116 const G4double RN2 = 2.25*CLHEP::fermi*CLHEP::fermi
117 /(CLHEP::twopi*CLHEP::hbar_Planck*hbar_Planck);
127 G4double Term1 = Beta*a1 - 1.5 + maxea;
128 G4double Term2 = (2.0*Beta*a1-3.0)*std::sqrt(maxea) + 2*maxea;
130 G4double ExpTerm1 = (SystemEntropy <= explim) ?
G4Exp(-SystemEntropy) : 0.0;
132 G4double ExpTerm2 = 2.*std::sqrt(maxea) - SystemEntropy;
133 ExpTerm2 = std::min(ExpTerm2, explim);
134 ExpTerm2 =
G4Exp(ExpTerm2);
136 pProbability = GlobalFactor*(Term1*ExpTerm1 + Term2*ExpTerm2);
166 if(E1 <= 0.0) {
return 0.0; }
169 G4double prob = pcoeff*
G4Exp(2.0*(std::sqrt(a1*E1) - std::sqrt(a0*E0)))*K*xs;
220 const G4int nmax = 100;
221 const G4double ssqr3 = 1.5*std::sqrt(3.0);
224 Rk = 1.0 + (1./RbSqrt)*
G4Log(RandNumber + (1.0-RandNumber)*PEX1);
228 G4double Beta = (2.12/(resA13*resA13) - 0.05)*MeV/(0.76 + 2.2/resA13);
229 Q1 = 1.0 + Beta/maxKinEnergy;
230 Q2 = Q1*std::sqrt(Q1);
233 FRk = ssqr3 * Rk * (Q1 - Rk*Rk)/Q2;
234 if(nn > nmax) {
break; }
237 }
while (FRk < rndm->flat());
239 T = std::max(maxKinEnergy * (1.0-Rk*Rk), 0.0) + minKinEnergy;
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double G4Log(G4double x)
static G4double ComputeCrossSection(G4double K, G4double cb, G4double resA13, G4double amu1, G4int idx, G4int Z, G4int resA)
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)
G4double SampleKineticEnergy(G4double minKinEnergy, G4double maxKinEnergy, G4double CB)
virtual G4double CalcBetaParam(const G4Fragment &fragment)
G4double GetExcitationEnergy() const
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)
G4double GetLevelDensity(G4int Z, G4int A, G4double U)
G4PairingCorrection * GetPairingCorrection()
G4double Z13(G4int Z) const
void ResetIntegrator(size_t nbin, G4double de, G4double eps)
G4double IntegrateProbability(G4double elow, G4double ehigh, G4double CB)
G4NuclearLevelData * pNuclearLevelData