Geant4 9.6.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 38 of file G4StatMFMacroMultiNucleon.hh.

Constructor & Destructor Documentation

◆ G4StatMFMacroMultiNucleon()

G4StatMFMacroMultiNucleon::G4StatMFMacroMultiNucleon ( const G4int  Size)
inline

◆ ~G4StatMFMacroMultiNucleon()

G4StatMFMacroMultiNucleon::~G4StatMFMacroMultiNucleon ( )
inline

Definition at line 46 of file G4StatMFMacroMultiNucleon.hh.

46{};

Member Function Documentation

◆ CalcEnergy()

G4double G4StatMFMacroMultiNucleon::CalcEnergy ( const G4double  T)
virtual

Implements G4VStatMFMacroCluster.

Definition at line 126 of file G4StatMFMacroMultiNucleon.cc.

127{
128 const G4double Coulomb = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())*
129 (1.0 - 1.0/std::pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.));
130
131 const G4double A23 = std::pow(static_cast<G4double>(theA),2./3.);
132
133 // Volume term
134 G4double EVol = static_cast<G4double>(theA) * (T*T/_InvLevelDensity - G4StatMFParameters::GetE0());
135
136 // Symmetry term
137 G4double ESym = static_cast<G4double>(theA) * G4StatMFParameters::GetGamma0() *(1. - 2.* theZARatio) * (1. - 2.* theZARatio);
138
139 // Surface term
141
142 // Coulomb term
143 G4double ECoul = Coulomb*A23*static_cast<G4double>(theA)*theZARatio*theZARatio;
144
145 // Translational term
146 G4double ETrans = (3./2.)*T;
147
148
149 return _Energy = EVol + ESurf + ECoul + ETrans + ESym;
150}
#define A23
double G4double
Definition: G4Types.hh:64
static G4double Getr0()
static G4double GetGamma0()
static G4double GetKappaCoulomb()
static G4double GetE0()
static G4double DBetaDT(const G4double T)
static G4double Beta(const G4double T)

◆ CalcEntropy()

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

Implements G4VStatMFMacroCluster.

Definition at line 153 of file G4StatMFMacroMultiNucleon.cc.

154{
155 const G4double ThermalWaveLenght = 16.15*fermi/std::sqrt(T);
156 const G4double lambda3 = ThermalWaveLenght*ThermalWaveLenght*ThermalWaveLenght;
157
158 G4double Entropy = 0.0;
159 if (_MeanMultiplicity > 0.0) {
160 // Volume term
161 G4double SV = 2.0*static_cast<G4double>(theA)*T/_InvLevelDensity;
162
163 // Surface term
164 G4double SS = -G4StatMFParameters::DBetaDT(T)*std::pow(static_cast<G4double>(theA),2./3.);
165
166 // Translational term
167 G4double ST = (5./2.)+std::log(FreeVol * std::sqrt(static_cast<G4double>(theA)) *
168 static_cast<G4double>(theA)/(lambda3*_MeanMultiplicity));
169
170
171 Entropy = _MeanMultiplicity*(SV + SS + ST);
172 }
173
174
175 return Entropy;
176}

◆ CalcMeanMultiplicity()

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

Implements G4VStatMFMacroCluster.

Definition at line 83 of file G4StatMFMacroMultiNucleon.cc.

85{
86 const G4double ThermalWaveLenght = 16.15*fermi/std::sqrt(T);
87
88 const G4double lambda3 = ThermalWaveLenght*ThermalWaveLenght*ThermalWaveLenght;
89
90 const G4double A23 = std::pow(static_cast<G4double>(theA),2./3.);
91
92 const G4double Coulomb = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())*
93 (1.0 - 1.0/std::pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.));
94
97 (1.0 - 2.0*theZARatio))*theA
99
100 exponent /= T;
101
102 if (exponent > 30.0) exponent = 30.0;
103
104 _MeanMultiplicity = std::max((FreeVol * static_cast<G4double>(theA) *
105 std::sqrt(static_cast<G4double>(theA))/lambda3) *
106 std::exp(exponent),1.0e-30);
107 return _MeanMultiplicity;
108}

◆ CalcZARatio()

G4double G4StatMFMacroMultiNucleon::CalcZARatio ( const G4double  nu)
virtual

Implements G4VStatMFMacroCluster.

Definition at line 111 of file G4StatMFMacroMultiNucleon.cc.

112{
113 const G4double Coulomb = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())*
114 (1.0 - 1.0/std::pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.));
115
116 G4double den = 8.0*G4StatMFParameters::GetGamma0()+2.0*Coulomb*std::pow(static_cast<G4double>(theA),2./3.);
118
119 return theZARatio = num/den;
120
121
122}

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