#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) |
G4Fragment * | GetFragment (const G4double T) |
G4double | GetNuclearMass (void) |
Definition at line 41 of file G4StatMFFragment.hh.
Definition at line 45 of file G4StatMFFragment.hh.
00045 : 00046 theA(anA),theZ(aZ), 00047 _position(0.0,0.0,0.0), 00048 _momentum(0.0,0.0,0.0) 00049 {}
virtual G4StatMFFragment::~G4StatMFFragment | ( | ) | [inline, virtual] |
G4int G4StatMFFragment::GetA | ( | void | ) | const [inline] |
G4double G4StatMFFragment::GetCoulombEnergy | ( | void | ) | const |
Definition at line 67 of file G4StatMFFragment.cc.
References G4StatMFParameters::GetKappaCoulomb(), and G4StatMFParameters::Getr0().
Referenced by GetEnergy(), and SumCoulombEnergy::operator()().
00068 { 00069 if (theZ <= 0.1) return 0.0; 00070 G4double Coulomb = (3./5.)*(elm_coupling*theZ*theZ)* 00071 std::pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.)/ 00072 (G4StatMFParameters::Getr0()*std::pow(theA,1./3.)); 00073 00074 return Coulomb; 00075 }
Definition at line 78 of file G4StatMFFragment.cc.
References G4StatMFParameters::DBetaDT(), G4cerr, G4endl, G4StatMFParameters::GetBeta0(), GetCoulombEnergy(), G4StatMFParameters::GetCriticalTemp(), GetInvLevelDensity(), and G4NucleiProperties::GetMassExcess().
00079 { 00080 if (theA < 1 || theZ < 0 || theZ > theA) { 00081 G4cerr << "G4StatMFFragment::GetEnergy: A = " << theA 00082 << ", Z = " << theZ << G4endl; 00083 throw G4HadronicException(__FILE__, __LINE__, 00084 "G4StatMFFragment::GetEnergy: Wrong values for A and Z!"); 00085 } 00086 G4double BulkEnergy = G4NucleiProperties::GetMassExcess(static_cast<G4int>(theA), 00087 static_cast<G4int>(theZ)); 00088 00089 if (theA < 4) return BulkEnergy - GetCoulombEnergy(); 00090 00091 G4double SurfaceEnergy; 00092 if (G4StatMFParameters::DBetaDT(T) == 0.0) SurfaceEnergy = 0.0; 00093 else SurfaceEnergy = (5./2.)*std::pow(theA,2.0/3.0)*T*T* 00094 G4StatMFParameters::GetBeta0()/ 00095 (G4StatMFParameters::GetCriticalTemp()* 00096 G4StatMFParameters::GetCriticalTemp()); 00097 00098 00099 G4double ExchangeEnergy = theA*T*T/GetInvLevelDensity(); 00100 if (theA != 4) ExchangeEnergy += SurfaceEnergy; 00101 00102 return BulkEnergy + ExchangeEnergy - GetCoulombEnergy(); 00103 00104 }
G4Fragment * G4StatMFFragment::GetFragment | ( | const G4double | T | ) |
Definition at line 118 of file G4StatMFFragment.cc.
References GetNuclearMass().
00119 { 00120 G4double U = CalcExcitationEnergy(T); 00121 00122 G4double M = GetNuclearMass(); 00123 00124 G4LorentzVector FourMomentum(_momentum,std::sqrt(_momentum.mag2()+(M+U)*(M+U))); 00125 00126 G4Fragment * theFragment = new G4Fragment(static_cast<G4int>(theA),static_cast<G4int>(theZ),FourMomentum); 00127 00128 return theFragment; 00129 }
G4double G4StatMFFragment::GetInvLevelDensity | ( | void | ) | const |
Definition at line 107 of file G4StatMFFragment.cc.
References G4StatMFParameters::GetEpsilon0().
Referenced by GetEnergy().
00108 { 00109 // Calculate Inverse Density Level 00110 // Epsilon0*(1 + 3 /(Af - 1)) 00111 if (theA == 1) return 0.0; 00112 else return 00113 G4StatMFParameters::GetEpsilon0()*(1.0+3.0/(theA - 1.0)); 00114 }
G4ThreeVector G4StatMFFragment::GetMomentum | ( | void | ) | [inline] |
G4double G4StatMFFragment::GetNuclearMass | ( | void | ) | [inline] |
Definition at line 91 of file G4StatMFFragment.hh.
References G4IonTable::GetIonMass(), G4ParticleTable::GetIonTable(), and G4ParticleTable::GetParticleTable().
Referenced by GetFragment().
00092 {return G4ParticleTable::GetParticleTable()->GetIonTable() 00093 ->GetIonMass(theZ, theA);}
G4ThreeVector G4StatMFFragment::GetPosition | ( | void | ) | [inline] |
G4int G4StatMFFragment::GetZ | ( | void | ) | const [inline] |
G4bool G4StatMFFragment::operator!= | ( | const G4StatMFFragment & | right | ) | const |
Definition at line 59 of file G4StatMFFragment.cc.
00060 { 00061 // throw G4HadronicException(__FILE__, __LINE__, "G4StatMFFragment::operator!= meant to not be accessable"); 00062 return true; 00063 }
G4bool G4StatMFFragment::operator== | ( | const G4StatMFFragment & | right | ) | const |
Definition at line 52 of file G4StatMFFragment.cc.
00053 { 00054 // throw G4HadronicException(__FILE__, __LINE__, "G4StatMFFragment::operator== meant to not be accessable"); 00055 return false; 00056 }
void G4StatMFFragment::SetMomentum | ( | const G4ThreeVector | aMomentum | ) | [inline] |
void G4StatMFFragment::SetPosition | ( | const G4ThreeVector | aPosition | ) | [inline] |