Geant4-11
Public Member Functions | Protected Member Functions | Private Attributes
G4NuclearShellModelDensity Class Reference

#include <G4NuclearShellModelDensity.hh>

Inheritance diagram for G4NuclearShellModelDensity:
G4VNuclearDensity

Public Member Functions

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

Protected Member Functions

G4double Getrho0 () const
 
void Setrho0 (G4double arho0)
 

Private Attributes

G4double rho0
 
G4int theA
 
G4double theRsquare
 

Detailed Description

Definition at line 38 of file G4NuclearShellModelDensity.hh.

Constructor & Destructor Documentation

◆ G4NuclearShellModelDensity()

G4NuclearShellModelDensity::G4NuclearShellModelDensity ( G4int  anA,
G4int  aZ 
)

Definition at line 34 of file G4NuclearShellModelDensity.cc.

35: theA(anA)//, theZ(aZ)
36{
37 const G4double r0sq=0.8133*fermi*fermi;
39 G4double x = 1./(pi*theRsquare);
40 Setrho0(x*std::sqrt(x));
41}
static constexpr double fermi
Definition: G4SIunits.hh:83
static constexpr double pi
Definition: G4SIunits.hh:55
double G4double
Definition: G4Types.hh:83
static G4Pow * GetInstance()
Definition: G4Pow.cc:41
G4double Z23(G4int Z) const
Definition: G4Pow.hh:125
void Setrho0(G4double arho0)

References fermi, G4Pow::GetInstance(), pi, G4VNuclearDensity::Setrho0(), theA, theRsquare, and G4Pow::Z23().

◆ ~G4NuclearShellModelDensity()

G4NuclearShellModelDensity::~G4NuclearShellModelDensity ( )

Definition at line 43 of file G4NuclearShellModelDensity.cc.

43{}

Member Function Documentation

◆ GetDensity()

G4double G4VNuclearDensity::GetDensity ( const G4ThreeVector aPosition) const
inlineinherited

◆ GetDeriv()

G4double G4NuclearShellModelDensity::GetDeriv ( const G4ThreeVector aPosition) const
virtual

Implements G4VNuclearDensity.

Definition at line 57 of file G4NuclearShellModelDensity.cc.

58{
59 return -2* aPosition.mag() / theRsquare * GetDensity(aPosition);
60}
double mag() const
G4double GetDensity(const G4ThreeVector &aPosition) const

References G4VNuclearDensity::GetDensity(), CLHEP::Hep3Vector::mag(), and theRsquare.

◆ GetRadius()

G4double G4NuclearShellModelDensity::GetRadius ( const G4double  maxRelativeDenisty) const
virtual

Implements G4VNuclearDensity.

Definition at line 50 of file G4NuclearShellModelDensity.cc.

51{
52
53 return (maxRelativeDensity>0 && maxRelativeDensity <= 1 ) ?
54 std::sqrt(theRsquare * G4Log(1/maxRelativeDensity) ) : DBL_MAX;
55}
G4double G4Log(G4double x)
Definition: G4Log.hh:226
#define DBL_MAX
Definition: templates.hh:62

References DBL_MAX, G4Log(), and theRsquare.

◆ GetRelativeDensity()

G4double G4NuclearShellModelDensity::GetRelativeDensity ( const G4ThreeVector aPosition) const
virtual

Implements G4VNuclearDensity.

Definition at line 45 of file G4NuclearShellModelDensity.cc.

46{
47 return G4Exp(-1*aPosition.mag2()/theRsquare);
48}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:179
double mag2() const

References G4Exp(), CLHEP::Hep3Vector::mag2(), and theRsquare.

◆ Getrho0()

G4double G4VNuclearDensity::Getrho0 ( ) const
inlineprotectedinherited

Definition at line 53 of file G4VNuclearDensity.hh.

53{ return rho0; };

References G4VNuclearDensity::rho0.

Referenced by G4NuclearFermiDensity::GetDeriv().

◆ Setrho0()

void G4VNuclearDensity::Setrho0 ( G4double  arho0)
inlineprotectedinherited

Field Documentation

◆ rho0

G4double G4VNuclearDensity::rho0
privateinherited

◆ theA

G4int G4NuclearShellModelDensity::theA
private

Definition at line 50 of file G4NuclearShellModelDensity.hh.

Referenced by G4NuclearShellModelDensity().

◆ theRsquare

G4double G4NuclearShellModelDensity::theRsquare
private

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