Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4NuclearShellModelDensity Class Reference

#include <G4NuclearShellModelDensity.hh>

+ Inheritance diagram for G4NuclearShellModelDensity:

Public Member Functions

 G4NuclearShellModelDensity (G4int anA, G4int aZ)
 
 ~G4NuclearShellModelDensity ()
 
G4double GetRelativeDensity (const G4ThreeVector &aPosition) const
 
G4double GetRadius (const G4double maxRelativeDenisty) const
 
G4double GetDeriv (const G4ThreeVector &aPosition) const
 
- Public Member Functions inherited from G4VNuclearDensity
 G4VNuclearDensity ()
 
virtual ~G4VNuclearDensity ()
 
G4double GetDensity (const G4ThreeVector &aPosition) const
 
virtual G4double GetRelativeDensity (const G4ThreeVector &aPosition) const =0
 
virtual G4double GetRadius (const G4double maxRelativeDenisty) const =0
 
virtual G4double GetDeriv (const G4ThreeVector &point) const =0
 

Additional Inherited Members

- Protected Member Functions inherited from G4VNuclearDensity
void Setrho0 (G4double arho0)
 
G4double Getrho0 () const
 

Detailed Description

Definition at line 38 of file G4NuclearShellModelDensity.hh.

Constructor & Destructor Documentation

◆ G4NuclearShellModelDensity()

G4NuclearShellModelDensity::G4NuclearShellModelDensity ( G4int  anA,
G4int  aZ 
)

Definition at line 33 of file G4NuclearShellModelDensity.cc.

34: theA(anA), theZ(aZ)
35{
36 const G4double r0sq=0.8133*fermi*fermi;
37 theRsquare= r0sq * std::pow(G4double(theA), 2./3. );
38 Setrho0(std::pow(1./(pi*theRsquare),3./2.));
39}
double G4double
Definition: G4Types.hh:64
void Setrho0(G4double arho0)

◆ ~G4NuclearShellModelDensity()

G4NuclearShellModelDensity::~G4NuclearShellModelDensity ( )

Definition at line 41 of file G4NuclearShellModelDensity.cc.

41{}

Member Function Documentation

◆ GetDeriv()

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

Implements G4VNuclearDensity.

Definition at line 55 of file G4NuclearShellModelDensity.cc.

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

◆ GetRadius()

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

Implements G4VNuclearDensity.

Definition at line 48 of file G4NuclearShellModelDensity.cc.

49{
50
51 return (maxRelativeDensity>0 && maxRelativeDensity <= 1 ) ?
52 std::sqrt(theRsquare * std::log(1/maxRelativeDensity) ) : DBL_MAX;
53}
#define DBL_MAX
Definition: templates.hh:83

◆ GetRelativeDensity()

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

Implements G4VNuclearDensity.

Definition at line 43 of file G4NuclearShellModelDensity.cc.

44{
45 return std::exp(-1*aPosition.mag2()/theRsquare);
46}
double mag2() const

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