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

#include <G4StatMFFragment.hh>

Public Member Functions

 G4StatMFFragment (G4int anA, G4int aZ)
 
virtual ~G4StatMFFragment ()
 
G4bool operator== (const G4StatMFFragment &right) const
 
G4bool operator!= (const G4StatMFFragment &right) const
 
G4double GetCoulombEnergy (void) const
 
G4double GetEnergy (const G4double T) const
 
G4double GetInvLevelDensity (void) const
 
G4int GetA (void) const
 
G4int GetZ (void) const
 
void SetPosition (const G4ThreeVector aPosition)
 
G4ThreeVector GetPosition (void)
 
void SetMomentum (const G4ThreeVector aMomentum)
 
G4ThreeVector GetMomentum (void)
 
G4FragmentGetFragment (const G4double T)
 
G4double GetNuclearMass (void)
 

Detailed Description

Definition at line 41 of file G4StatMFFragment.hh.

Constructor & Destructor Documentation

◆ G4StatMFFragment()

G4StatMFFragment::G4StatMFFragment ( G4int  anA,
G4int  aZ 
)
inline

Definition at line 45 of file G4StatMFFragment.hh.

45 :
46 theA(anA),theZ(aZ),
47 _position(0.0,0.0,0.0),
48 _momentum(0.0,0.0,0.0)
49 {}

◆ ~G4StatMFFragment()

virtual G4StatMFFragment::~G4StatMFFragment ( )
inlinevirtual

Definition at line 53 of file G4StatMFFragment.hh.

53{};

Member Function Documentation

◆ GetA()

G4int G4StatMFFragment::GetA ( void  ) const
inline

Definition at line 77 of file G4StatMFFragment.hh.

77{return theA;}

◆ GetCoulombEnergy()

G4double G4StatMFFragment::GetCoulombEnergy ( void  ) const

Definition at line 67 of file G4StatMFFragment.cc.

68{
69 if (theZ <= 0.1) return 0.0;
70 G4double Coulomb = (3./5.)*(elm_coupling*theZ*theZ)*
71 std::pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.)/
72 (G4StatMFParameters::Getr0()*std::pow(theA,1./3.));
73
74 return Coulomb;
75}
double G4double
Definition: G4Types.hh:64
static G4double Getr0()
static G4double GetKappaCoulomb()

Referenced by GetEnergy(), and SumCoulombEnergy::operator()().

◆ GetEnergy()

G4double G4StatMFFragment::GetEnergy ( const G4double  T) const

Definition at line 78 of file G4StatMFFragment.cc.

79{
80 if (theA < 1 || theZ < 0 || theZ > theA) {
81 G4cerr << "G4StatMFFragment::GetEnergy: A = " << theA
82 << ", Z = " << theZ << G4endl;
83 throw G4HadronicException(__FILE__, __LINE__,
84 "G4StatMFFragment::GetEnergy: Wrong values for A and Z!");
85 }
86 G4double BulkEnergy = G4NucleiProperties::GetMassExcess(static_cast<G4int>(theA),
87 static_cast<G4int>(theZ));
88
89 if (theA < 4) return BulkEnergy - GetCoulombEnergy();
90
91 G4double SurfaceEnergy;
92 if (G4StatMFParameters::DBetaDT(T) == 0.0) SurfaceEnergy = 0.0;
93 else SurfaceEnergy = (5./2.)*std::pow(theA,2.0/3.0)*T*T*
97
98
99 G4double ExchangeEnergy = theA*T*T/GetInvLevelDensity();
100 if (theA != 4) ExchangeEnergy += SurfaceEnergy;
101
102 return BulkEnergy + ExchangeEnergy - GetCoulombEnergy();
103
104}
int G4int
Definition: G4Types.hh:66
#define G4endl
Definition: G4ios.hh:52
G4DLLIMPORT std::ostream G4cerr
static G4double GetMassExcess(const G4int A, const G4int Z)
G4double GetInvLevelDensity(void) const
G4double GetCoulombEnergy(void) const
static G4double GetBeta0()
static G4double GetCriticalTemp()
static G4double DBetaDT(const G4double T)

◆ GetFragment()

G4Fragment * G4StatMFFragment::GetFragment ( const G4double  T)

Definition at line 118 of file G4StatMFFragment.cc.

119{
120 G4double U = CalcExcitationEnergy(T);
121
123
124 G4LorentzVector FourMomentum(_momentum,std::sqrt(_momentum.mag2()+(M+U)*(M+U)));
125
126 G4Fragment * theFragment = new G4Fragment(static_cast<G4int>(theA),static_cast<G4int>(theZ),FourMomentum);
127
128 return theFragment;
129}
double mag2() const
G4double GetNuclearMass(void)

◆ GetInvLevelDensity()

G4double G4StatMFFragment::GetInvLevelDensity ( void  ) const

Definition at line 107 of file G4StatMFFragment.cc.

108{
109 // Calculate Inverse Density Level
110 // Epsilon0*(1 + 3 /(Af - 1))
111 if (theA == 1) return 0.0;
112 else return
113 G4StatMFParameters::GetEpsilon0()*(1.0+3.0/(theA - 1.0));
114}
static G4double GetEpsilon0()

Referenced by GetEnergy().

◆ GetMomentum()

G4ThreeVector G4StatMFFragment::GetMomentum ( void  )
inline

Definition at line 87 of file G4StatMFFragment.hh.

87{return _momentum;}

◆ GetNuclearMass()

G4double G4StatMFFragment::GetNuclearMass ( void  )
inline

Definition at line 91 of file G4StatMFFragment.hh.

93 ->GetIonMass(theZ, theA);}
G4double GetIonMass(G4int Z, G4int A, G4int L=0) const
!! Only ground states are supported now
Definition: G4IonTable.cc:774
static G4ParticleTable * GetParticleTable()
G4IonTable * GetIonTable()

Referenced by GetFragment().

◆ GetPosition()

G4ThreeVector G4StatMFFragment::GetPosition ( void  )
inline

Definition at line 83 of file G4StatMFFragment.hh.

83{return _position;}

◆ GetZ()

G4int G4StatMFFragment::GetZ ( void  ) const
inline

Definition at line 79 of file G4StatMFFragment.hh.

79{return theZ;}

◆ operator!=()

G4bool G4StatMFFragment::operator!= ( const G4StatMFFragment right) const

Definition at line 59 of file G4StatMFFragment.cc.

60{
61// throw G4HadronicException(__FILE__, __LINE__, "G4StatMFFragment::operator!= meant to not be accessable");
62 return true;
63}

◆ operator==()

G4bool G4StatMFFragment::operator== ( const G4StatMFFragment right) const

Definition at line 52 of file G4StatMFFragment.cc.

53{
54// throw G4HadronicException(__FILE__, __LINE__, "G4StatMFFragment::operator== meant to not be accessable");
55 return false;
56}

◆ SetMomentum()

void G4StatMFFragment::SetMomentum ( const G4ThreeVector  aMomentum)
inline

Definition at line 85 of file G4StatMFFragment.hh.

85{_momentum = aMomentum;}

◆ SetPosition()

void G4StatMFFragment::SetPosition ( const G4ThreeVector  aPosition)
inline

Definition at line 81 of file G4StatMFFragment.hh.

81{_position = aPosition;}

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