231{
232 G4double T = CalcPartitionTemperature(U,FreeInternalE0);
233 if ( T <= 0.0) return _Probability = 0.0;
234 _Temperature = T;
235
238
239
241
246
247 for (
G4int i = 0; i <
n; ++i) {
248 G4int par = _thePartition[i];
249 ProbDegeneracy *= GetDegeneracyFactor(par);
250 ProbA32 *= _thePartition[i]*std::sqrt((
G4double)par);
251
252
253 if (par == 4) {
254 PartitionEntropy += 2.0 * T * par/InvLevelDensity(par);
255 }
256
257 else if (par > 4) {
258 PartitionEntropy += 2.0 * T * par/InvLevelDensity(par) - db * g4calc->
Z23(par);
259 }
260 }
261
262
263 G4double ThermalWaveLenght3 = 16.15*fermi/std::sqrt(T);
264 ThermalWaveLenght3 = ThermalWaveLenght3*ThermalWaveLenght3*ThermalWaveLenght3;
265
266
268 G4double kappa = 1. + elm_coupling*(g4calc->
Z13(n) - 1.0)/(r0*g4calc->
Z13(theA));
269 G4double V0 = (4./3.)*pi*theA*r0*r0*r0;
270 G4double FreeVolume = (kappa*kappa*kappa - 1.0)*V0;
272 + (
n - 1)*
G4Log(FreeVolume/ThermalWaveLenght3)
273 + 1.5*(
n - 1) - 1.5*g4calc->
logZ(theA);
274 TranslationalS = std::max(TranslationalS, 0.0);
275
276 PartitionEntropy +=
G4Log(ProbDegeneracy) + TranslationalS;
277 _Entropy = PartitionEntropy;
278
279
280 G4double exponent = std::min(PartitionEntropy - SCompound, 200.);
281 return _Probability =
G4Exp(exponent);
282}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double G4Log(G4double x)
static G4Pow * GetInstance()
G4double logZ(G4int Z) const
G4double factorial(G4int Z) const
G4double Z13(G4int Z) const
G4double Z23(G4int Z) const
static G4double DBetaDT(G4double T)