44   Initialize(theFragment);
 
   51   if (!_ThePartitionManagerVector.empty()) {
 
   52     std::for_each(_ThePartitionManagerVector.begin(),
 
   53             _ThePartitionManagerVector.end(),
 
   58 void G4StatMFMicroCanonical::Initialize(
const G4Fragment & theFragment) 
 
   61   std::vector<G4StatMFMicroManager*>::iterator it;
 
   99   G4double SCompoundNucleus = CalcEntropyOfCompoundNucleus(theFragment,TConfiguration);
 
  102   _WCompoundNucleus = 1.0; 
 
  104   W += _WCompoundNucleus;
 
  108   if (A > 110) MaxMult -= 1;
 
  110   for (
G4int im = 2; im <= MaxMult; im++) {
 
  113     _ThePartitionManagerVector.push_back(aMicroManager);
 
  117   W = std::accumulate(_ThePartitionManagerVector.begin(),
 
  118               _ThePartitionManagerVector.end(),
 
  119               W, SumProbabilities());
 
  122   for (it =  _ThePartitionManagerVector.begin(); it !=  _ThePartitionManagerVector.end(); ++it) 
 
  127   _WCompoundNucleus /= W;
 
  133   for (it =  _ThePartitionManagerVector.begin(); it !=  _ThePartitionManagerVector.end(); ++it) 
 
  143 G4double G4StatMFMicroCanonical::CalcFreeInternalEnergy(
const G4Fragment & theFragment, 
 
  163   return VolumeTerm + SymmetryTerm + SurfaceTerm + CoulombTerm;
 
  167 G4StatMFMicroCanonical::CalcEntropyOfCompoundNucleus(
const G4Fragment & theFragment,
 
  178   G4double ECompoundNucleus = CalcFreeInternalEnergy(theFragment,Ta);
 
  182   G4double InvLevelDensity = CalcInvLevelDensity(A);
 
  188   } 
else if (Da < 0.0) {
 
  191       ECompoundNucleus = CalcFreeInternalEnergy(theFragment,Tb);
 
  197       ECompoundNucleus = CalcFreeInternalEnergy(theFragment,Tb);
 
  204   for (
G4int i = 0; i < 1000; i++) {
 
  206     if (std::abs(Ta-Tb) <= 
eps) {
 
  210     ECompoundNucleus = CalcFreeInternalEnergy(theFragment,Tc);
 
  228     "G4StatMFMicrocanoncal::CalcEntropyOfCompoundNucleus: I can't calculate the temperature"  
  240   if (RandNumber < _WCompoundNucleus) { 
 
  248     G4double AccumWeight = _WCompoundNucleus;
 
  249     std::vector<G4StatMFMicroManager*>::iterator it;
 
  250     for (it = _ThePartitionManagerVector.begin(); it != _ThePartitionManagerVector.end(); ++it) {
 
  251       AccumWeight += (*it)->GetProbability();
 
  252       if (RandNumber < AccumWeight) {
 
  256     throw G4HadronicException(__FILE__, __LINE__, 
"G4StatMFMicroCanonical::ChooseAandZ: wrong normalization!");
 
  262 G4double G4StatMFMicroCanonical::CalcInvLevelDensity(
G4int anA)
 
static G4double GetGamma0()
 
static G4Pow * GetInstance()
 
G4StatMFChannel * ChooseAandZ(const G4Fragment &theFragment)
 
G4StatMFMicroCanonical(const G4Fragment &theFragment)
 
static const G4double eps
 
void CreateFragment(G4int A, G4int Z)
 
~G4StatMFMicroCanonical()
 
G4GLOB_DLL std::ostream G4cout
 
G4double Z13(G4int Z) const 
 
double A(double temperature)
 
G4double __MeanMultiplicity
 
T max(const T t1, const T t2)
brief Return the largest of the two arguments 
 
G4double __MeanTemperature
 
static G4double DBetaDT(G4double T)
 
G4double Z23(G4int Z) const 
 
static constexpr double elm_coupling
 
static constexpr double MeV
 
G4double __FreeInternalE0
 
static G4double GetEpsilon0()
 
static G4double GetBeta0()
 
static G4double Beta(G4double T)
 
G4double GetExcitationEnergy() const