Geant4  10.02.p03
G4StatMFFragment Class Reference

#include <G4StatMFFragment.hh>

Collaboration diagram for G4StatMFFragment:

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)
 

Private Member Functions

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

Private Attributes

G4int theA
 
G4int theZ
 
G4ThreeVector _position
 
G4ThreeVector _momentum
 

Detailed Description

Definition at line 41 of file G4StatMFFragment.hh.

Constructor & Destructor Documentation

◆ G4StatMFFragment() [1/3]

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  {}
G4ThreeVector _momentum
G4ThreeVector _position

◆ ~G4StatMFFragment()

virtual G4StatMFFragment::~G4StatMFFragment ( )
inlinevirtual

Definition at line 53 of file G4StatMFFragment.hh.

53 {};

◆ G4StatMFFragment() [2/3]

G4StatMFFragment::G4StatMFFragment ( )
inlineprivate

Definition at line 58 of file G4StatMFFragment.hh.

58 {};
Here is the call graph for this function:

◆ G4StatMFFragment() [3/3]

G4StatMFFragment::G4StatMFFragment ( const G4StatMFFragment right)
private

Definition at line 38 of file G4StatMFFragment.cc.

39 {
40  throw G4HadronicException(__FILE__, __LINE__, "G4StatMFFragment::copy_constructor meant to not be accessable");
41 }
Here is the call graph for this function:

Member Function Documentation

◆ CalcExcitationEnergy()

G4double G4StatMFFragment::CalcExcitationEnergy ( const G4double  T)
private

Definition at line 115 of file G4StatMFFragment.cc.

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

◆ 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 64 of file G4StatMFFragment.cc.

65 {
66  G4double res = 0.0;
67  if (theZ >= 1) {
69  }
70  return res;
71 }
static G4double GetCoulomb()
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetEnergy()

G4double G4StatMFFragment::GetEnergy ( const G4double  T) const

Definition at line 73 of file G4StatMFFragment.cc.

74 {
75  if (theA < 1 || theZ < 0 || theZ > theA) {
76  G4cout << "G4StatMFFragment::GetEnergy: A = " << theA
77  << ", Z = " << theZ << G4endl;
78  throw G4HadronicException(__FILE__, __LINE__,
79  "G4StatMFFragment::GetEnergy: Wrong values for A and Z!");
80  }
82 
83  if (theA < 4) return BulkEnergy - GetCoulombEnergy();
84 
85  G4double SurfaceEnergy;
86  if (G4StatMFParameters::DBetaDT(T) == 0.0) SurfaceEnergy = 0.0;
87  else SurfaceEnergy = 2.5*G4Pow::GetInstance()->Z23(theA)*T*T*
91 
92  G4double ExchangeEnergy = theA*T*T/GetInvLevelDensity();
93  if (theA != 4) ExchangeEnergy += SurfaceEnergy;
94  return BulkEnergy + ExchangeEnergy - GetCoulombEnergy();
95 }
static G4Pow * GetInstance()
Definition: G4Pow.cc:55
static G4double GetMassExcess(const G4int A, const G4int Z)
G4GLOB_DLL std::ostream G4cout
G4double GetCoulombEnergy(void) const
static G4double DBetaDT(G4double T)
#define G4endl
Definition: G4ios.hh:61
static G4double GetBeta0()
double G4double
Definition: G4Types.hh:76
G4double Z23(G4int Z) const
Definition: G4Pow.hh:154
static G4double GetCriticalTemp()
G4double GetInvLevelDensity(void) const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetFragment()

G4Fragment * G4StatMFFragment::GetFragment ( const G4double  T)

Definition at line 106 of file G4StatMFFragment.cc.

107 {
109  G4double M = GetNuclearMass();
110  G4LorentzVector FourMomentum(_momentum,std::sqrt(_momentum.mag2()+(M+U)*(M+U)));
111  G4Fragment * theFragment = new G4Fragment(theA, theZ, FourMomentum);
112  return theFragment;
113 }
G4double GetNuclearMass(void)
double mag2() const
G4ThreeVector _momentum
G4double CalcExcitationEnergy(const G4double T)
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetInvLevelDensity()

G4double G4StatMFFragment::GetInvLevelDensity ( void  ) const

Definition at line 97 of file G4StatMFFragment.cc.

98 {
99  G4double res = 0.0;
100  if (theA > 1) {
101  res = G4StatMFParameters::GetEpsilon0()*(1.0+3.0/(theA - 1.0));
102  }
103  return res;
104 }
static G4double GetEpsilon0()
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetMomentum()

G4ThreeVector G4StatMFFragment::GetMomentum ( void  )
inline

Definition at line 87 of file G4StatMFFragment.hh.

87 {return _momentum;}
G4ThreeVector _momentum
Here is the call graph for this function:

◆ 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, G4int lvl=0) const
Definition: G4IonTable.cc:1279
G4IonTable * GetIonTable() const
static G4ParticleTable * GetParticleTable()
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetPosition()

G4ThreeVector G4StatMFFragment::GetPosition ( void  )
inline

Definition at line 83 of file G4StatMFFragment.hh.

83 {return _position;}
G4ThreeVector _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 58 of file G4StatMFFragment.cc.

59 {
60 // throw G4HadronicException(__FILE__, __LINE__, "G4StatMFFragment::operator!= meant to not be accessable");
61  return true;
62 }
Here is the caller graph for this function:

◆ operator=()

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

Definition at line 46 of file G4StatMFFragment.cc.

47 {
48  throw G4HadronicException(__FILE__, __LINE__, "G4StatMFFragment::operator= meant to not be accessable");
49  return *this;
50 }
Here is the caller graph for this function:

◆ 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 }
Here is the caller graph for this function:

◆ SetMomentum()

void G4StatMFFragment::SetMomentum ( const G4ThreeVector  aMomentum)
inline

Definition at line 85 of file G4StatMFFragment.hh.

85 {_momentum = aMomentum;}
G4ThreeVector _momentum

◆ SetPosition()

void G4StatMFFragment::SetPosition ( const G4ThreeVector  aPosition)
inline

Definition at line 81 of file G4StatMFFragment.hh.

81 {_position = aPosition;}
G4ThreeVector _position

Member Data Documentation

◆ _momentum

G4ThreeVector G4StatMFFragment::_momentum
private

Definition at line 108 of file G4StatMFFragment.hh.

◆ _position

G4ThreeVector G4StatMFFragment::_position
private

Definition at line 106 of file G4StatMFFragment.hh.

◆ theA

G4int G4StatMFFragment::theA
private

Definition at line 102 of file G4StatMFFragment.hh.

◆ theZ

G4int G4StatMFFragment::theZ
private

Definition at line 104 of file G4StatMFFragment.hh.


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