Geant4 11.2.2
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 ()=default
 
 ~G4HyperNucleiProperties ()=default
 

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

◆ ~G4HyperNucleiProperties()

G4HyperNucleiProperties::~G4HyperNucleiProperties ( )
default

Member Function Documentation

◆ GetAtomicMass()

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

Definition at line 88 of file G4HyperNucleiProperties.cc.

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

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


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