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.

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]

Definition at line 53 of file G4StatMFFragment.hh.

00053 {};


Member Function Documentation

G4int G4StatMFFragment::GetA ( void   )  const [inline]

Definition at line 77 of file G4StatMFFragment.hh.

00077 {return theA;}

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 }

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

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]

Definition at line 87 of file G4StatMFFragment.hh.

00087 {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().

00092         {return G4ParticleTable::GetParticleTable()->GetIonTable()
00093                                ->GetIonMass(theZ, theA);}

G4ThreeVector G4StatMFFragment::GetPosition ( void   )  [inline]

Definition at line 83 of file G4StatMFFragment.hh.

00083 {return _position;}

G4int G4StatMFFragment::GetZ ( void   )  const [inline]

Definition at line 79 of file G4StatMFFragment.hh.

00079 {return theZ;}

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]

Definition at line 85 of file G4StatMFFragment.hh.

00085 {_momentum = aMomentum;}

void G4StatMFFragment::SetPosition ( const G4ThreeVector  aPosition  )  [inline]

Definition at line 81 of file G4StatMFFragment.hh.

00081 {_position = aPosition;}


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:53:25 2013 for Geant4 by  doxygen 1.4.7