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
 
G4Fragment * GetFragment (const G4double T)
 
G4double GetInvLevelDensity (void) const
 
G4ThreeVector & GetMomentum (void)
 
G4double GetNuclearMass (void)
 
G4ThreeVector & GetPosition (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)
 
G4StatMFFragment & operator= (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: