G4NuclearFermiDensity Class Reference

#include <G4NuclearFermiDensity.hh>

Inheritance diagram for G4NuclearFermiDensity:

G4VNuclearDensity

Public Member Functions

 G4NuclearFermiDensity (G4int anA, G4int aZ)
 ~G4NuclearFermiDensity ()
G4double GetRelativeDensity (const G4ThreeVector &aPosition) const
G4double GetRadius (const G4double maxRelativeDenisty) const
G4double GetDeriv (const G4ThreeVector &aPosition) const

Detailed Description

Definition at line 38 of file G4NuclearFermiDensity.hh.


Constructor & Destructor Documentation

G4NuclearFermiDensity::G4NuclearFermiDensity ( G4int  anA,
G4int  aZ 
)

Definition at line 32 of file G4NuclearFermiDensity.cc.

References G4INCL::Math::pi, G4VNuclearDensity::Setrho0(), and sqr().

00033  : theA(anA), a(0.545 * fermi) 
00034 {
00035   const G4double r0 = 1.16 * (1. - 1.16 * std::pow(G4double(anA), -2./3.)) * fermi;
00036   theR = r0 * std::pow(anA, 1./3.);
00037   Setrho0(3./ (4.*pi * std::pow(r0,3.) * theA * (1. + sqr(a/theR)*pi2 )));
00038 }

G4NuclearFermiDensity::~G4NuclearFermiDensity (  ) 

Definition at line 40 of file G4NuclearFermiDensity.cc.

00040 {}


Member Function Documentation

G4double G4NuclearFermiDensity::GetDeriv ( const G4ThreeVector aPosition  )  const [inline, virtual]

Implements G4VNuclearDensity.

Definition at line 55 of file G4NuclearFermiDensity.hh.

References G4VNuclearDensity::GetDensity(), G4VNuclearDensity::Getrho0(), and sqr().

00056     {
00057       G4double currentR=aPosition.mag();
00058       if (currentR > 40*theR  ) {return 0;}
00059       else return -std::exp((currentR-theR)/a) * sqr(GetDensity(aPosition)) / (a*Getrho0());
00060     }   

G4double G4NuclearFermiDensity::GetRadius ( const G4double  maxRelativeDenisty  )  const [inline, virtual]

Implements G4VNuclearDensity.

Definition at line 49 of file G4NuclearFermiDensity.hh.

References DBL_MAX.

00050     {
00051       return (maxRelativeDenisty>0 && maxRelativeDenisty <= 1 ) ?
00052              (theR + a*std::log((1-maxRelativeDenisty+std::exp(-1*theR/a))/maxRelativeDenisty))  : DBL_MAX;
00053     }

G4double G4NuclearFermiDensity::GetRelativeDensity ( const G4ThreeVector aPosition  )  const [inline, virtual]

Implements G4VNuclearDensity.

Definition at line 44 of file G4NuclearFermiDensity.hh.

00045     {
00046       return 1./(1.+std::exp((aPosition.mag()-theR)/a));
00047     }


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