104 if(U <
delta0 || maxEnergy <= minEnergy) {
return 0.0; }
122 G4double Term1 = Beta*a1 - 1.5 + maxea;
123 G4double Term2 = (2.0*Beta*a1-3.0)*std::sqrt(maxea) + 2*maxea;
125 static const G4double explim = 350.;
126 G4double ExpTerm1 = (SystemEntropy <= explim) ?
G4Exp(-SystemEntropy) : 0.0;
128 G4double ExpTerm2 = 2.*std::sqrt(maxea) - SystemEntropy;
129 ExpTerm2 =
std::min(ExpTerm2, explim);
130 ExpTerm2 =
G4Exp(ExpTerm2);
132 Width = GlobalFactor*(Term1*ExpTerm1 + Term2*ExpTerm2);
163 for (
G4int i=0; i<nbins; ++i) {
169 if(ds < sum*0.01) {
break; }
193 if(E1 < 0.0) {
return 0.0; }
232 CLHEP::HepRandomEngine* rndm = G4Random::getTheEngine();
244 if (RbSqrt < 160.0) { PEX1 =
G4Exp(-RbSqrt); }
250 Rk = 1.0 + (1./RbSqrt)*
G4Log(RandNumber + (1.0-RandNumber)*PEX1);
255 Q1 = 1.0 + Beta/maxKinEnergy;
256 Q2 = Q1*std::sqrt(Q1);
259 static const G4double ssqr3 = 1.5*std::sqrt(3.0);
260 FRk = ssqr3 * Rk * (Q1 - Rk*Rk)/Q2;
261 if(nn > nmax) {
break; }
264 }
while (FRk < rndm->
flat());
266 T = maxKinEnergy * (1.0-Rk*Rk) + minKinEnergy;
270 G4double delta = maxKinEnergy - minKinEnergy;
273 T = minKinEnergy + delta*rndm->flat();
285 if(
probmax*rndm->flat() <= prob) {
break; }
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4NuclearLevelData * fLevelData
G4double ProbabilityDistributionFunction(G4double K, G4double CoulombBarrier=0.0)
static G4double ComputePowerParameter(G4int resA, G4int idx)
static G4double ComputePowerParameter(G4int resA, G4int idx)
G4double CrossSection(G4double K, G4double CoulombBarrier)
static G4double ComputeCrossSection(G4double K, G4double cb, G4double resA13, G4double amu1, G4int idx, G4int Z, G4int resA)
static constexpr double twopi
G4double SampleKineticEnergy(G4double minKineticEnergy, G4double maxKineticEnergy, G4double CoulombBarrier=0.0)
G4double Z13(G4int Z) const
G4double TotalProbability(const G4Fragment &fragment, G4double minKineticEnergy, G4double maxKineticEnergy, G4double CoulombBarrier=0.0)
static G4double ComputeCrossSection(G4double K, G4double cb, G4double resA13, G4double amu1, G4int idx, G4int Z, G4int A, G4int resA)
virtual G4double CalcBetaParam(const G4Fragment &fragment)=0
G4double GetPairingCorrection(G4int A, G4int Z) const
G4double EmissionProbability(const G4Fragment &fragment, G4double maxKineticEnergy)
G4EvaporationProbability(G4int anA, G4int aZ, G4double aGamma, G4VCoulombBarrier *)
G4double IntegrateEmissionProbability(G4double low, G4double up, G4double CoulombBarrier)
G4double GetGroundStateMass() const
virtual G4double CalcAlphaParam(const G4Fragment &fragment)=0
virtual ~G4EvaporationProbability()
G4double G4Log(G4double x)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
T max(const T t1, const T t2)
brief Return the largest of the two arguments
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
static constexpr double MeV
G4PairingCorrection * fPairCorr
static constexpr double pi
static constexpr double fermi
static G4NuclearLevelData * GetInstance()
static constexpr double millibarn
G4double GetExcitationEnergy() const