#include <G4StatMFMacroNucleon.hh>
Inheritance diagram for G4StatMFMacroNucleon:
Public Member Functions | |
G4StatMFMacroNucleon () | |
~G4StatMFMacroNucleon () | |
G4double | CalcMeanMultiplicity (const G4double FreeVol, const G4double mu, const G4double nu, const G4double T) |
G4double | CalcZARatio (const G4double) |
G4double | CalcEnergy (const G4double T) |
G4double | CalcEntropy (const G4double T, const G4double FreeVol) |
Definition at line 38 of file G4StatMFMacroNucleon.hh.
G4StatMFMacroNucleon::G4StatMFMacroNucleon | ( | ) | [inline] |
Definition at line 43 of file G4StatMFMacroNucleon.hh.
00043 : 00044 G4VStatMFMacroCluster(1), _NeutronMeanMultiplicity(0.0),_ProtonMeanMultiplicity(0.0) 00045 {};
G4StatMFMacroNucleon::~G4StatMFMacroNucleon | ( | ) | [inline] |
Implements G4VStatMFMacroCluster.
Definition at line 89 of file G4StatMFMacroNucleon.cc.
References G4VStatMFMacroCluster::_Energy, G4StatMFParameters::GetKappaCoulomb(), G4StatMFParameters::Getr0(), and G4VStatMFMacroCluster::theZARatio.
00090 { 00091 const G4double Coulomb = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())* 00092 (1.0 - 1.0/std::pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.)); 00093 00094 return _Energy = Coulomb * theZARatio * theZARatio + (3./2.) * T; 00095 00096 }
Implements G4VStatMFMacroCluster.
Definition at line 98 of file G4StatMFMacroNucleon.cc.
References G4VStatMFMacroCluster::theA.
00099 { 00100 const G4double ThermalWaveLenght = 16.15*fermi/std::sqrt(T); 00101 const G4double lambda3 = ThermalWaveLenght*ThermalWaveLenght*ThermalWaveLenght; 00102 00103 G4double NeutronEntropy = 0.0; 00104 if (_NeutronMeanMultiplicity > 0.0) 00105 NeutronEntropy = _NeutronMeanMultiplicity*(5./2.+ 00106 std::log(2.0*static_cast<G4double>(theA)*FreeVol/ 00107 (lambda3*_NeutronMeanMultiplicity))); 00108 00109 00110 G4double ProtonEntropy = 0.0; 00111 if (_ProtonMeanMultiplicity > 0.0) 00112 ProtonEntropy = _ProtonMeanMultiplicity*(5./2.+ 00113 std::log(2.0*static_cast<G4double>(theA)*FreeVol/ 00114 (lambda3*_ProtonMeanMultiplicity))); 00115 00116 00117 return NeutronEntropy+ProtonEntropy; 00118 }
G4double G4StatMFMacroNucleon::CalcMeanMultiplicity | ( | const G4double | FreeVol, | |
const G4double | mu, | |||
const G4double | nu, | |||
const G4double | T | |||
) | [virtual] |
Implements G4VStatMFMacroCluster.
Definition at line 59 of file G4StatMFMacroNucleon.cc.
References G4VStatMFMacroCluster::_MeanMultiplicity, G4StatMFParameters::GetKappaCoulomb(), and G4StatMFParameters::Getr0().
00061 { 00062 if (T <= 0.0) throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroNucleon::CalcMeanMultiplicity: Temperature less or equal 0"); 00063 const G4double ThermalWaveLenght = 16.15*fermi/std::sqrt(T); 00064 00065 const G4double lambda3 = ThermalWaveLenght*ThermalWaveLenght*ThermalWaveLenght; 00066 00067 const G4double degeneracy = 2.0; 00068 00069 const G4double Coulomb = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())* 00070 (1.0 - 1.0/std::pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.)); 00071 00072 G4double exponent_proton = (mu+nu-Coulomb)/T; 00073 G4double exponent_neutron = mu/T; 00074 00075 if (exponent_neutron > 700.0) exponent_neutron = 700.0; 00076 if (exponent_proton > 700.0) exponent_proton = 700.0; 00077 00078 _NeutronMeanMultiplicity = (degeneracy*FreeVol/lambda3)*std::exp(exponent_neutron); 00079 00080 _ProtonMeanMultiplicity = (degeneracy*FreeVol/lambda3)*std::exp(exponent_proton); 00081 00082 00083 00084 return _MeanMultiplicity = _NeutronMeanMultiplicity + _ProtonMeanMultiplicity; 00085 00086 }
G4double G4StatMFMacroNucleon::CalcZARatio | ( | const | G4double | ) | [inline, virtual] |
Implements G4VStatMFMacroCluster.
Definition at line 66 of file G4StatMFMacroNucleon.hh.
References G4VStatMFMacroCluster::theZARatio.
00067 { if (_ProtonMeanMultiplicity+_NeutronMeanMultiplicity > 0.0) 00068 return theZARatio = _ProtonMeanMultiplicity/ 00069 (_ProtonMeanMultiplicity+_NeutronMeanMultiplicity); 00070 else return 0.0; }