Geant4 11.2.2
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)
 
G4ThreeVectorGetPosition (void)
 
void SetMomentum (const G4ThreeVector &aMomentum)
 
G4ThreeVectorGetMomentum (void)
 
G4FragmentGetFragment (const G4double T)
 
G4double GetNuclearMass (void)
 

Detailed Description

Definition at line 40 of file G4StatMFFragment.hh.

Constructor & Destructor Documentation

◆ G4StatMFFragment()

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 {}

◆ ~G4StatMFFragment()

virtual G4StatMFFragment::~G4StatMFFragment ( )
inlinevirtual

Definition at line 52 of file G4StatMFFragment.hh.

52{};

Member Function Documentation

◆ GetA()

G4int G4StatMFFragment::GetA ( void ) const
inline

Definition at line 76 of file G4StatMFFragment.hh.

76{return 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}
double G4double
Definition G4Types.hh:83
static G4double GetCoulomb()

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 }
80 G4double BulkEnergy = G4NucleiProperties::GetMassExcess(theA,theZ);
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:67
G4GLOB_DLL std::ostream G4cout
static G4double GetMassExcess(const G4int A, const G4int Z)
static G4Pow * GetInstance()
Definition G4Pow.cc:41
G4double Z23(G4int Z) const
Definition G4Pow.hh:125
G4double GetInvLevelDensity(void) const
G4double GetCoulombEnergy(void) const
static G4double DBetaDT(G4double T)
static G4double GetBeta0()
static G4double GetCriticalTemp()

◆ GetFragment()

G4Fragment * G4StatMFFragment::GetFragment ( const G4double T)

Definition at line 105 of file G4StatMFFragment.cc.

106{
107 G4double U = CalcExcitationEnergy(T);
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 GetNuclearMass(void)

◆ 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()

Referenced by GetEnergy().

◆ GetMomentum()

G4ThreeVector & G4StatMFFragment::GetMomentum ( void )
inline

Definition at line 86 of file G4StatMFFragment.hh.

86{return _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
G4IonTable * GetIonTable() const
static G4ParticleTable * GetParticleTable()

Referenced by GetFragment().

◆ GetPosition()

G4ThreeVector & G4StatMFFragment::GetPosition ( void )
inline

Definition at line 82 of file G4StatMFFragment.hh.

82{return _position;}

◆ GetZ()

G4int G4StatMFFragment::GetZ ( void ) const
inline

Definition at line 78 of file G4StatMFFragment.hh.

78{return 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==()

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;}

◆ SetPosition()

void G4StatMFFragment::SetPosition ( const G4ThreeVector & aPosition)
inline

Definition at line 80 of file G4StatMFFragment.hh.

80{_position = aPosition;}

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