G4StatMFMacroNucleon Class Reference

#include <G4StatMFMacroNucleon.hh>

Inheritance diagram for G4StatMFMacroNucleon:

G4VStatMFMacroCluster

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)

Detailed Description

Definition at line 38 of file G4StatMFMacroNucleon.hh.


Constructor & Destructor Documentation

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]

Definition at line 48 of file G4StatMFMacroNucleon.hh.

00048 {};


Member Function Documentation

G4double G4StatMFMacroNucleon::CalcEnergy ( const G4double  T  )  [virtual]

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 }

G4double G4StatMFMacroNucleon::CalcEntropy ( const G4double  T,
const G4double  FreeVol 
) [virtual]

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; }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:53:26 2013 for Geant4 by  doxygen 1.4.7