Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
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 ( 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  {}
virtual G4StatMFFragment::~G4StatMFFragment ( )
inlinevirtual

Definition at line 53 of file G4StatMFFragment.hh.

53 {};

Member Function Documentation

G4int G4StatMFFragment::GetA ( void  ) const
inline

Definition at line 77 of file G4StatMFFragment.hh.

77 {return theA;}
G4double G4StatMFFragment::GetCoulombEnergy ( void  ) const

Definition at line 67 of file G4StatMFFragment.cc.

References python.hepunit::elm_coupling, G4StatMFParameters::GetKappaCoulomb(), and G4StatMFParameters::Getr0().

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

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 }
static G4double GetKappaCoulomb()
tuple elm_coupling
Definition: hepunit.py:286
static G4double Getr0()
double G4double
Definition: G4Types.hh:76
G4double G4StatMFFragment::GetEnergy ( const G4double  T) const

Definition at line 78 of file G4StatMFFragment.cc.

References G4StatMFParameters::DBetaDT(), G4cerr, G4endl, G4StatMFParameters::GetBeta0(), GetCoulombEnergy(), G4StatMFParameters::GetCriticalTemp(), GetInvLevelDensity(), and G4NucleiProperties::GetMassExcess().

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 }
G4double GetCoulombEnergy(void) const
static G4double GetMassExcess(const G4int A, const G4int Z)
static G4double DBetaDT(G4double T)
#define G4endl
Definition: G4ios.hh:61
static G4double GetBeta0()
double G4double
Definition: G4Types.hh:76
G4double GetInvLevelDensity(void) const
static G4double GetCriticalTemp()
G4GLOB_DLL std::ostream G4cerr
G4Fragment * G4StatMFFragment::GetFragment ( const G4double  T)

Definition at line 118 of file G4StatMFFragment.cc.

References GetNuclearMass(), and CLHEP::Hep3Vector::mag2().

119 {
120  G4double U = CalcExcitationEnergy(T);
121 
122  G4double M = GetNuclearMass();
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 }
G4double GetNuclearMass(void)
double mag2() const
double G4double
Definition: G4Types.hh:76
G4double G4StatMFFragment::GetInvLevelDensity ( void  ) const

Definition at line 107 of file G4StatMFFragment.cc.

References G4StatMFParameters::GetEpsilon0().

Referenced by GetEnergy().

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()
G4ThreeVector G4StatMFFragment::GetMomentum ( void  )
inline

Definition at line 87 of file G4StatMFFragment.hh.

87 {return _momentum;}
G4double G4StatMFFragment::GetNuclearMass ( void  )
inline

Definition at line 91 of file G4StatMFFragment.hh.

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

Referenced by GetFragment().

93  ->GetIonMass(theZ, theA);}
G4IonTable * GetIonTable() const
G4double GetIonMass(G4int Z, G4int A, G4int L=0, G4int lvl=0) const
Definition: G4IonTable.cc:1232
static G4ParticleTable * GetParticleTable()
G4ThreeVector G4StatMFFragment::GetPosition ( void  )
inline

Definition at line 83 of file G4StatMFFragment.hh.

83 {return _position;}
G4int G4StatMFFragment::GetZ ( void  ) const
inline

Definition at line 79 of file G4StatMFFragment.hh.

79 {return theZ;}
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 }
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 }
void G4StatMFFragment::SetMomentum ( const G4ThreeVector  aMomentum)
inline

Definition at line 85 of file G4StatMFFragment.hh.

85 {_momentum = aMomentum;}
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: