Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4StatMFMacroMultiNucleon Class Reference

#include <G4StatMFMacroMultiNucleon.hh>

Inheritance diagram for G4StatMFMacroMultiNucleon:
Collaboration diagram for G4StatMFMacroMultiNucleon:

Public Member Functions

 G4StatMFMacroMultiNucleon (const G4int Size)
 
 ~G4StatMFMacroMultiNucleon ()
 
G4double CalcMeanMultiplicity (const G4double FreeVol, const G4double mu, const G4double nu, const G4double T)
 
G4double CalcZARatio (const G4double nu)
 
G4double CalcEnergy (const G4double T)
 
G4double CalcEntropy (const G4double T, const G4double FreeVol)
 
- Public Member Functions inherited from G4VStatMFMacroCluster
 G4VStatMFMacroCluster (const G4int Size)
 
virtual ~G4VStatMFMacroCluster ()
 
G4bool operator== (const G4VStatMFMacroCluster &right) const
 
G4bool operator!= (const G4VStatMFMacroCluster &right) const
 
G4double GetMeanMultiplicity (void) const
 
G4double GetInvLevelDensity (void) const
 
void SetZARatio (const G4double value)
 
G4double GetZARatio (void) const
 
void SetSize (const G4double value)
 
G4double GetSize (void) const
 

Additional Inherited Members

- Protected Attributes inherited from G4VStatMFMacroCluster
G4int theA
 
G4double _InvLevelDensity
 
G4double _Entropy
 
G4double theZARatio
 
G4double _MeanMultiplicity
 
G4double _Energy
 

Detailed Description

Definition at line 38 of file G4StatMFMacroMultiNucleon.hh.

Constructor & Destructor Documentation

G4StatMFMacroMultiNucleon::G4StatMFMacroMultiNucleon ( const G4int  Size)
inline
G4StatMFMacroMultiNucleon::~G4StatMFMacroMultiNucleon ( )
inline

Definition at line 46 of file G4StatMFMacroMultiNucleon.hh.

46 {};

Member Function Documentation

G4double G4StatMFMacroMultiNucleon::CalcEnergy ( const G4double  T)
virtual

Implements G4VStatMFMacroCluster.

Definition at line 116 of file G4StatMFMacroMultiNucleon.cc.

117 {
118  G4Pow* g4calc = G4Pow::GetInstance();
119  G4double A23 = g4calc->Z23(theA);
120 
121  // Volume term
123 
124  // Symmetry term
126  *(1. - 2.* theZARatio) * (1. - 2.* theZARatio);
127 
128  // Surface term
130 
131  // Coulomb term
133 
134  // Translational term
135  G4double ETrans = 1.5*T;
136  return _Energy = EVol + ESurf + ECoul + ETrans + ESym;
137 }
static G4double GetGamma0()
static G4Pow * GetInstance()
Definition: G4Pow.cc:55
Definition: G4Pow.hh:56
static G4double GetE0()
#define A23
static G4double DBetaDT(G4double T)
static G4double GetCoulomb()
G4double Z23(G4int Z) const
Definition: G4Pow.hh:154
double G4double
Definition: G4Types.hh:76
static G4double Beta(G4double T)

Here is the call graph for this function:

G4double G4StatMFMacroMultiNucleon::CalcEntropy ( const G4double  T,
const G4double  FreeVol 
)
virtual

Implements G4VStatMFMacroCluster.

Definition at line 139 of file G4StatMFMacroMultiNucleon.cc.

141 {
142  G4double Entropy = 0.0;
143  if (_MeanMultiplicity > 0.0) {
144 
145  G4double ThermalWaveLenght = 16.15*fermi/std::sqrt(T);
146  G4double lambda3 = ThermalWaveLenght*ThermalWaveLenght*ThermalWaveLenght;
147  // Volume term
148  G4double SV = 2.0*theA*T/_InvLevelDensity;
149 
150  // Surface term
152 
153  // Translational term
154  G4double ST = 2.5 + G4Log(FreeVol * std::sqrt((G4double)theA) * theA
155  /(lambda3*_MeanMultiplicity));
156 
157  Entropy = _MeanMultiplicity*(SV + SS + ST);
158  }
159  return Entropy;
160 }
static G4Pow * GetInstance()
Definition: G4Pow.cc:55
G4double G4Log(G4double x)
Definition: G4Log.hh:230
static G4double DBetaDT(G4double T)
G4double Z23(G4int Z) const
Definition: G4Pow.hh:154
double G4double
Definition: G4Types.hh:76
static constexpr double fermi
Definition: G4SIunits.hh:103

Here is the call graph for this function:

G4double G4StatMFMacroMultiNucleon::CalcMeanMultiplicity ( const G4double  FreeVol,
const G4double  mu,
const G4double  nu,
const G4double  T 
)
virtual

Implements G4VStatMFMacroCluster.

Definition at line 82 of file G4StatMFMacroMultiNucleon.cc.

86 {
87  G4double ThermalWaveLenght = 16.15*fermi/std::sqrt(T);
88  G4double lambda3 = ThermalWaveLenght*ThermalWaveLenght*ThermalWaveLenght;
89  G4Pow* g4calc = G4Pow::GetInstance();
90  G4double A23 = g4calc->Z23(theA);
91 
92  G4double exponent = (mu + nu*theZARatio+ G4StatMFParameters::GetE0()
93  + T*T/_InvLevelDensity
95  (1.0 - 2.0*theZARatio))*theA
96  - G4StatMFParameters::Beta(T)*A23
98 
99  exponent /= T;
100 
101  if (exponent > 30.0) exponent = 30.0;
102 
103  _MeanMultiplicity = std::max((FreeVol * theA * std::sqrt((G4double)theA)/lambda3) *
104  G4Exp(exponent),1.0e-30);
105  return _MeanMultiplicity;
106 }
static G4double GetGamma0()
static G4Pow * GetInstance()
Definition: G4Pow.cc:55
Definition: G4Pow.hh:56
static G4double GetE0()
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:183
#define A23
T max(const T t1, const T t2)
brief Return the largest of the two arguments
static G4double GetCoulomb()
G4double Z23(G4int Z) const
Definition: G4Pow.hh:154
double G4double
Definition: G4Types.hh:76
static constexpr double fermi
Definition: G4SIunits.hh:103
static G4double Beta(G4double T)

Here is the call graph for this function:

G4double G4StatMFMacroMultiNucleon::CalcZARatio ( const G4double  nu)
virtual

Implements G4VStatMFMacroCluster.

Definition at line 108 of file G4StatMFMacroMultiNucleon.cc.

109 {
112  theZARatio = (4.0*G4StatMFParameters::GetGamma0()+nu)/den;
113  return theZARatio;
114 }
static G4double GetGamma0()
static G4Pow * GetInstance()
Definition: G4Pow.cc:55
static G4double GetCoulomb()
G4double Z23(G4int Z) const
Definition: G4Pow.hh:154
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:


The documentation for this class was generated from the following files: