43 throw G4HadronicException(__FILE__, __LINE__,
"G4StatMFMicroPartition::copy_constructor meant to not be accessible");
51 throw G4HadronicException(__FILE__, __LINE__,
"G4StatMFMicroPartition::operator= meant to not be accessible");
78 if (anA == 0 || anA == 1)
82 else if (anA == 2 || anA == 3 || anA == 4)
109 return CoulombEnergy;
170 return PartitionEnergy;
180 if (std::fabs(U + FreeInternalE0 - PartitionEnergy) < 0.003)
return -1.0;
194 while (Da*Db > 0.0 && maxit < 1000)
203 for (
G4int i = 0; i < 1000; i++)
206 if (std::fabs(Ta-Tb) <=
eps)
return Tmid;
208 if (std::fabs(Dmid) < 0.003)
return Tmid;
221 G4cout <<
"G4StatMFMicroPartition::CalcPartitionTemperature: I can't calculate the temperature"
281 ThermalWaveLenght3 = ThermalWaveLenght3*ThermalWaveLenght3*ThermalWaveLenght3;
286 kappa = kappa*kappa*kappa;
295 PartitionEntropy +=
G4Log(ProbDegeneracy) + TranslationalS;
299 G4double exponent = PartitionEntropy-SCompound;
300 if (exponent > 300.0) exponent = 300.0;
309 if (A > 4) DegFactor = 1.0;
310 else if (A == 1) DegFactor = 4.0;
311 else if (A == 2) DegFactor = 3.0;
312 else if (A == 3) DegFactor = 4.0;
313 else if (A == 4) DegFactor = 1.0;
320 std::vector<G4int> FragmentsZ;
331 if (Af > 1.5 && Af < 4.5) ZMean = 0.5*Af;
332 else ZMean = Af*Z0/A0;
333 G4double ZDispersion = std::sqrt(Af * MeanT/CC);
340 while (Zf < 0 || Zf > Af);
341 FragmentsZ.push_back(Zf);
344 ZBalance = Z0 - SumZ;
348 FragmentsZ[0] += ZBalance;