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

#include <G4HyperNucleiProperties.hh>

Public Member Functions

 G4HyperNucleiProperties ()
 
 ~G4HyperNucleiProperties ()
 

Static Public Member Functions

static G4double GetAtomicMass (G4int A, G4int Z, G4int L)
 
static G4double GetNuclearMass (G4int A, G4int Z, G4int L)
 

Detailed Description

Definition at line 44 of file G4HyperNucleiProperties.hh.

Constructor & Destructor Documentation

◆ G4HyperNucleiProperties()

G4HyperNucleiProperties::G4HyperNucleiProperties ( )
inline

Definition at line 49 of file G4HyperNucleiProperties.hh.

49{}

◆ ~G4HyperNucleiProperties()

G4HyperNucleiProperties::~G4HyperNucleiProperties ( )
inline

Definition at line 50 of file G4HyperNucleiProperties.hh.

50{}

Member Function Documentation

◆ GetAtomicMass()

G4double G4HyperNucleiProperties::GetAtomicMass ( G4int  A,
G4int  Z,
G4int  L 
)
static

Definition at line 96 of file G4HyperNucleiProperties.cc.

97{
98 G4double mass = GetNuclearMass(A, Z, LL);
99 if ( mass > 0.0 ) {
100 mass += Z*electron_mass_c2 - 1.433e-5*MeV*G4Pow::GetInstance()->powZ(Z, 2.39);
101 }
102 return mass;
103}
double G4double
Definition: G4Types.hh:83
const G4int Z[17]
const G4double A[17]
static G4double GetNuclearMass(G4int A, G4int Z, G4int L)
static G4Pow * GetInstance()
Definition: G4Pow.cc:41
G4double powZ(G4int Z, G4double y) const
Definition: G4Pow.hh:225

◆ GetNuclearMass()

G4double G4HyperNucleiProperties::GetNuclearMass ( G4int  A,
G4int  Z,
G4int  L 
)
static

Definition at line 41 of file G4HyperNucleiProperties.cc.

42{
43 if ( LL == 0 ) return G4NucleiProperties::GetNuclearMass(A, Z);
44
45 if ( A < 2 || Z < 0 || Z > A-LL || LL > A )
46 {
47#ifdef G4VERBOSE
48 if ( G4ParticleTable::GetParticleTable()->GetVerboseLevel() > 0 )
49 {
50 G4cout << "G4HyperNucleiProperties::GetNuclearMass: "
51 << " Wrong values for A = " << A
52 << " Z = " << Z
53 << " L = " << LL
54 << G4endl;
55 }
56#endif
57 return 0.0;
58 }
59 else if ( A == 2 )
60 {
61#ifdef G4VERBOSE
62 if ( G4ParticleTable::GetParticleTable()->GetVerboseLevel() > 0 )
63 {
64 G4cout << "G4HyperNucleiProperties::GetNuclearMass: "
65 << " No boud state for A = " << A
66 << " Z = " << Z
67 << " L = " << LL
68 << G4endl;
69 }
70#endif
71 return 0.0;
72 }
73
74 static const G4double b7 = 25.0*MeV;
75 static const G4double b8 = 10.5; // Slope
76 static const G4double a2 = 0.13*MeV; // BindingEnergy for d+Lambda(MeV)
77 static const G4double a3 = 2.2*MeV; // BindingEnergy for (t/He3)+Lamb(MeV)
78 static const G4double eps = 0.0001*MeV; // security value (MeV)
79
80 G4double mass = G4NucleiProperties::GetNuclearMass(A-LL, Z); // A non-"strange" nucleus
81
82 // Temporarily, the mass of the Lambda below is copied from G4Lambda.cc,
83 // but it should be added in CLHEP/Units/PhysicalConstants.h
84 const G4double mLL = 1.115683*CLHEP::GeV;
85
86 G4double bs = 0.0;
87 if ( A - LL == 2 ) bs = a2; // for nnL,npL,ppL
88 else if ( A - LL == 3 ) bs = a3; // for 3nL,2npL,n2pL,3pL
89 else if ( A - LL > 3 ) bs = b7*G4Exp(-b8/(A-LL+1.0));
90 mass += LL*(mLL-bs) + eps;
91
92 return mass;
93}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:180
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
static G4double GetNuclearMass(const G4double A, const G4double Z)
static G4ParticleTable * GetParticleTable()

Referenced by G4INCLXXInterface::ApplyYourself(), G4Nucleus::AtomicMass(), G4Fragment::ComputeGroundStateMass(), GetAtomicMass(), G4Fancy3DNucleus::GetMass(), G4IonTable::GetNucleusMass(), and G4GeneratorPrecompoundInterface::PropagateNuclNucl().


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