Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4StatMFMacroMultiNucleon Class Reference

#include <G4StatMFMacroMultiNucleon.hh>

+ Inheritance 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
 
virtual G4double CalcMeanMultiplicity (const G4double FreeVol, const G4double mu, const G4double nu, const G4double T)=0
 
virtual G4double CalcZARatio (const G4double nu)=0
 
G4double GetMeanMultiplicity (void) const
 
virtual G4double CalcEnergy (const G4double T)=0
 
virtual G4double CalcEntropy (const G4double T, const G4double FreeVol)=0
 
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 37 of file G4StatMFMacroMultiNucleon.hh.

Constructor & Destructor Documentation

◆ G4StatMFMacroMultiNucleon()

G4StatMFMacroMultiNucleon::G4StatMFMacroMultiNucleon ( const G4int  Size)
inline

◆ ~G4StatMFMacroMultiNucleon()

G4StatMFMacroMultiNucleon::~G4StatMFMacroMultiNucleon ( )
inline

Definition at line 45 of file G4StatMFMacroMultiNucleon.hh.

45{};

Member Function Documentation

◆ CalcEnergy()

G4double G4StatMFMacroMultiNucleon::CalcEnergy ( const G4double  T)
virtual

Implements G4VStatMFMacroCluster.

Definition at line 115 of file G4StatMFMacroMultiNucleon.cc.

116{
117 G4Pow* g4calc = G4Pow::GetInstance();
118 G4double A23 = g4calc->Z23(theA);
119
120 // Volume term
122
123 // Symmetry term
125 *(1. - 2.* theZARatio) * (1. - 2.* theZARatio);
126
127 // Surface term
129
130 // Coulomb term
132
133 // Translational term
134 G4double ETrans = 1.5*T;
135 return _Energy = EVol + ESurf + ECoul + ETrans + ESym;
136}
#define A23
double G4double
Definition: G4Types.hh:83
Definition: G4Pow.hh:49
static G4Pow * GetInstance()
Definition: G4Pow.cc:41
G4double Z23(G4int Z) const
Definition: G4Pow.hh:125
static G4double DBetaDT(G4double T)
static G4double GetE0()
static G4double GetGamma0()
static G4double Beta(G4double T)
static G4double GetCoulomb()

◆ CalcEntropy()

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

Implements G4VStatMFMacroCluster.

Definition at line 138 of file G4StatMFMacroMultiNucleon.cc.

140{
141 G4double Entropy = 0.0;
142 if (_MeanMultiplicity > 0.0) {
143
144 G4double ThermalWaveLenght = 16.15*fermi/std::sqrt(T);
145 G4double lambda3 = ThermalWaveLenght*ThermalWaveLenght*ThermalWaveLenght;
146 // Volume term
147 G4double SV = 2.0*theA*T/_InvLevelDensity;
148
149 // Surface term
151
152 // Translational term
153 G4double ST = 2.5 + G4Log(FreeVol * std::sqrt((G4double)theA) * theA
154 /(lambda3*_MeanMultiplicity));
155
156 Entropy = _MeanMultiplicity*(SV + SS + ST);
157 }
158 return Entropy;
159}
G4double G4Log(G4double x)
Definition: G4Log.hh:226

◆ CalcMeanMultiplicity()

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

Implements G4VStatMFMacroCluster.

Definition at line 81 of file G4StatMFMacroMultiNucleon.cc.

85{
86 G4double ThermalWaveLenght = 16.15*fermi/std::sqrt(T);
87 G4double lambda3 = ThermalWaveLenght*ThermalWaveLenght*ThermalWaveLenght;
88 G4Pow* g4calc = G4Pow::GetInstance();
89 G4double A23 = g4calc->Z23(theA);
90
91 G4double exponent = (mu + nu*theZARatio+ G4StatMFParameters::GetE0()
92 + T*T/_InvLevelDensity
94 (1.0 - 2.0*theZARatio))*theA
97
98 exponent /= T;
99
100 if (exponent > 30.0) exponent = 30.0;
101
102 _MeanMultiplicity = std::max((FreeVol * theA * std::sqrt((G4double)theA)/lambda3) *
103 G4Exp(exponent),1.0e-30);
104 return _MeanMultiplicity;
105}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:179

◆ CalcZARatio()

G4double G4StatMFMacroMultiNucleon::CalcZARatio ( const G4double  nu)
virtual

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