Geant4-11
Public Member Functions | Private Member Functions | Private Attributes
G4StatMFFragment Class Reference

#include <G4StatMFFragment.hh>

Public Member Functions

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

Private Member Functions

G4double CalcExcitationEnergy (const G4double T)
 
 G4StatMFFragment ()
 
 G4StatMFFragment (const G4StatMFFragment &right)
 
G4StatMFFragmentoperator= (const G4StatMFFragment &right)
 

Private Attributes

G4ThreeVector _momentum
 
G4ThreeVector _position
 
G4int theA
 
G4int theZ
 

Detailed Description

Definition at line 40 of file G4StatMFFragment.hh.

Constructor & Destructor Documentation

◆ G4StatMFFragment() [1/3]

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

Definition at line 44 of file G4StatMFFragment.hh.

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

◆ ~G4StatMFFragment()

virtual G4StatMFFragment::~G4StatMFFragment ( )
inlinevirtual

Definition at line 52 of file G4StatMFFragment.hh.

52{};

◆ G4StatMFFragment() [2/3]

G4StatMFFragment::G4StatMFFragment ( )
inlineprivate

Definition at line 57 of file G4StatMFFragment.hh.

57{};

◆ G4StatMFFragment() [3/3]

G4StatMFFragment::G4StatMFFragment ( const G4StatMFFragment right)
private

Definition at line 37 of file G4StatMFFragment.cc.

38{
39 throw G4HadronicException(__FILE__, __LINE__, "G4StatMFFragment::copy_constructor meant to not be accessible");
40}

Member Function Documentation

◆ CalcExcitationEnergy()

G4double G4StatMFFragment::CalcExcitationEnergy ( const G4double  T)
private

Definition at line 114 of file G4StatMFFragment.cc.

115{
116 if (theA <= 3) return 0.0;
117
118 G4double BulkEnergy = theA*T*T/GetInvLevelDensity();
119
120 // if it is an alpha particle: done
121 if (theA == 4) return BulkEnergy;
122
123 // Term connected with surface energy
124 G4double SurfaceEnergy = 0.0;
126 if (std::abs(q) > 1.0e-20) {
127 SurfaceEnergy = 2.5*G4Pow::GetInstance()->Z23(theA)
129 }
130 return BulkEnergy + SurfaceEnergy;
131}
double G4double
Definition: G4Types.hh:83
static G4Pow * GetInstance()
Definition: G4Pow.cc:41
G4double Z23(G4int Z) const
Definition: G4Pow.hh:125
G4double GetInvLevelDensity(void) const
static G4double DBetaDT(G4double T)
static G4double GetBeta0()
static G4double Beta(G4double T)

References G4StatMFParameters::Beta(), G4StatMFParameters::DBetaDT(), G4StatMFParameters::GetBeta0(), G4Pow::GetInstance(), GetInvLevelDensity(), theA, and G4Pow::Z23().

Referenced by GetFragment().

◆ GetA()

G4int G4StatMFFragment::GetA ( void  ) const
inline

Definition at line 76 of file G4StatMFFragment.hh.

76{return theA;}

References theA.

◆ GetCoulombEnergy()

G4double G4StatMFFragment::GetCoulombEnergy ( void  ) const

Definition at line 63 of file G4StatMFFragment.cc.

64{
65 G4double res = 0.0;
66 if (theZ >= 1) {
68 }
69 return res;
70}
static G4double GetCoulomb()

References G4StatMFParameters::GetCoulomb(), and theZ.

Referenced by GetEnergy().

◆ GetEnergy()

G4double G4StatMFFragment::GetEnergy ( const G4double  T) const

Definition at line 72 of file G4StatMFFragment.cc.

73{
74 if (theA < 1 || theZ < 0 || theZ > theA) {
75 G4cout << "G4StatMFFragment::GetEnergy: A = " << theA
76 << ", Z = " << theZ << G4endl;
77 throw G4HadronicException(__FILE__, __LINE__,
78 "G4StatMFFragment::GetEnergy: Wrong values for A and Z!");
79 }
81
82 if (theA < 4) return BulkEnergy - GetCoulombEnergy();
83
84 G4double SurfaceEnergy;
85 if (G4StatMFParameters::DBetaDT(T) == 0.0) SurfaceEnergy = 0.0;
86 else SurfaceEnergy = 2.5*G4Pow::GetInstance()->Z23(theA)*T*T*
90
91 G4double ExchangeEnergy = theA*T*T/GetInvLevelDensity();
92 if (theA != 4) ExchangeEnergy += SurfaceEnergy;
93 return BulkEnergy + ExchangeEnergy - GetCoulombEnergy();
94}
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
static G4double GetMassExcess(const G4int A, const G4int Z)
G4double GetCoulombEnergy(void) const
static G4double GetCriticalTemp()

References G4StatMFParameters::DBetaDT(), G4cout, G4endl, G4StatMFParameters::GetBeta0(), GetCoulombEnergy(), G4StatMFParameters::GetCriticalTemp(), G4Pow::GetInstance(), GetInvLevelDensity(), G4NucleiProperties::GetMassExcess(), theA, theZ, and G4Pow::Z23().

◆ GetFragment()

G4Fragment * G4StatMFFragment::GetFragment ( const G4double  T)

Definition at line 105 of file G4StatMFFragment.cc.

106{
109 G4LorentzVector FourMomentum(_momentum,std::sqrt(_momentum.mag2()+(M+U)*(M+U)));
110 G4Fragment * theFragment = new G4Fragment(theA, theZ, FourMomentum);
111 return theFragment;
112}
#define M(row, col)
double mag2() const
G4double CalcExcitationEnergy(const G4double T)
G4double GetNuclearMass(void)

References _momentum, CalcExcitationEnergy(), GetNuclearMass(), M, CLHEP::Hep3Vector::mag2(), theA, and theZ.

◆ GetInvLevelDensity()

G4double G4StatMFFragment::GetInvLevelDensity ( void  ) const

Definition at line 96 of file G4StatMFFragment.cc.

97{
98 G4double res = 0.0;
99 if (theA > 1) {
100 res = G4StatMFParameters::GetEpsilon0()*(1.0+3.0/(theA - 1.0));
101 }
102 return res;
103}
static G4double GetEpsilon0()

References G4StatMFParameters::GetEpsilon0(), and theA.

Referenced by CalcExcitationEnergy(), and GetEnergy().

◆ GetMomentum()

G4ThreeVector & G4StatMFFragment::GetMomentum ( void  )
inline

Definition at line 86 of file G4StatMFFragment.hh.

86{return _momentum;}

References _momentum.

◆ GetNuclearMass()

G4double G4StatMFFragment::GetNuclearMass ( void  )
inline

Definition at line 90 of file G4StatMFFragment.hh.

92 ->GetIonMass(theZ, theA);}
G4double GetIonMass(G4int Z, G4int A, G4int nL=0, G4int lvl=0) const
Definition: G4IonTable.cc:1517
G4IonTable * GetIonTable() const
static G4ParticleTable * GetParticleTable()

References G4IonTable::GetIonMass(), G4ParticleTable::GetIonTable(), G4ParticleTable::GetParticleTable(), theA, and theZ.

Referenced by GetFragment().

◆ GetPosition()

G4ThreeVector & G4StatMFFragment::GetPosition ( void  )
inline

Definition at line 82 of file G4StatMFFragment.hh.

82{return _position;}

References _position.

◆ GetZ()

G4int G4StatMFFragment::GetZ ( void  ) const
inline

Definition at line 78 of file G4StatMFFragment.hh.

78{return theZ;}

References theZ.

◆ operator!=()

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

Definition at line 57 of file G4StatMFFragment.cc.

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

◆ operator=()

G4StatMFFragment & G4StatMFFragment::operator= ( const G4StatMFFragment right)
private

Definition at line 44 of file G4StatMFFragment.cc.

46{
47 throw G4HadronicException(__FILE__, __LINE__, "G4StatMFFragment::operator= meant to not be accessible");
48 return *this;
49}

◆ operator==()

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

Definition at line 51 of file G4StatMFFragment.cc.

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

◆ SetMomentum()

void G4StatMFFragment::SetMomentum ( const G4ThreeVector aMomentum)
inline

Definition at line 84 of file G4StatMFFragment.hh.

84{_momentum = aMomentum;}

References _momentum.

◆ SetPosition()

void G4StatMFFragment::SetPosition ( const G4ThreeVector aPosition)
inline

Definition at line 80 of file G4StatMFFragment.hh.

80{_position = aPosition;}

References _position.

Field Documentation

◆ _momentum

G4ThreeVector G4StatMFFragment::_momentum
private

Definition at line 107 of file G4StatMFFragment.hh.

Referenced by GetFragment(), GetMomentum(), and SetMomentum().

◆ _position

G4ThreeVector G4StatMFFragment::_position
private

Definition at line 105 of file G4StatMFFragment.hh.

Referenced by GetPosition(), and SetPosition().

◆ theA

G4int G4StatMFFragment::theA
private

◆ theZ

G4int G4StatMFFragment::theZ
private

Definition at line 103 of file G4StatMFFragment.hh.

Referenced by GetCoulombEnergy(), GetEnergy(), GetFragment(), GetNuclearMass(), and GetZ().


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