Geant4 9.6.0
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 45 of file G4HyperNucleiProperties.hh.

Constructor & Destructor Documentation

◆ ~G4HyperNucleiProperties()

G4HyperNucleiProperties::~G4HyperNucleiProperties ( )
inline

Definition at line 56 of file G4HyperNucleiProperties.hh.

56{ };

◆ G4HyperNucleiProperties()

G4HyperNucleiProperties::G4HyperNucleiProperties ( )
inline

Definition at line 59 of file G4HyperNucleiProperties.hh.

59{};

Member Function Documentation

◆ GetAtomicMass()

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

Definition at line 102 of file G4HyperNucleiProperties.cc.

103{
104 if (A < 1 || Z < 0 || Z > A-L || L > A || L <0 ) {
105#ifdef G4VERBOSE
106 if (G4ParticleTable::GetParticleTable()->GetVerboseLevel()>0) {
107 G4cout << "G4HyperNucleiProperties::GetAtomicMass: "
108 << " Wrong values for A = " << A
109 << " Z = " << Z
110 << " L = " << L << G4endl;
111 }
112#endif
113 return 0.0;
114
115 } else {
116 G4double nuclearMass = GetNuclearMass(A, Z, L);
117 return nuclearMass + Z*electron_mass_c2
118 - 1.433e-5*MeV*std::pow(G4double(Z),2.39);
119 }
120}
double G4double
Definition: G4Types.hh:64
#define G4endl
Definition: G4ios.hh:52
G4DLLIMPORT std::ostream G4cout
static G4double GetNuclearMass(G4int A, G4int Z, G4int L)
static G4ParticleTable * GetParticleTable()

◆ GetNuclearMass()

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

Definition at line 42 of file G4HyperNucleiProperties.cc.

43{
44 if (L==0) return G4NucleiProperties::GetNuclearMass(A, Z);
45
47 if (A < 2 || Z < 0 || Z > A-L || L>A ) {
48#ifdef G4VERBOSE
49 if (pTable->GetVerboseLevel()>0) {
50 G4cout << "G4HyperNucleiProperties::GetNuclearMass: "
51 << " Wrong values for A = " << A
52 << " Z = " << Z
53 << " L = " << L
54 << G4endl;
55 }
56#endif
57 return 0.0;
58 } else if( A==2 ) {
59#ifdef G4VERBOSE
60 if (pTable->GetVerboseLevel()>0) {
61 G4cout << "G4HyperNucleiProperties::GetNuclearMass: "
62 << " No boud state for A = " << A
63 << " Z = " << Z
64 << " L = " << L
65 << G4endl;
66 }
67#endif
68 return 0.0;
69 }
70
71
72 G4ParticleDefinition* lambda = pTable->FindParticle("lambda");
73 if (lambda ==0) {
74#ifdef G4VERBOSE
75 if (pTable->GetVerboseLevel()>0) {
76 G4cout << "G4HyperNucleiProperties::GetNuclearMass: "
77 << " Lambda is not defined " << G4endl;
78 }
79#endif
80 return 0.0;
81 }
82 const G4double mL= lambda->GetPDGMass(); // mLambda
83
84 static const G4double b7=25.*MeV;
85 static const G4double b8=10.5; // Slope
86 static const G4double a2=0.13*MeV; // BindingEnergy for d+Lambda(MeV)
87 static const G4double a3=2.2*MeV; // BindingEnergy for (t/He3)+Lamb(MeV)
88 static const G4double eps =0.0001*MeV; // security value (MeV)
89
91 // A non-"strange" nucleus
92 G4double bs=0.;
93 if (A-L ==2) bs=a2; // for nnL,npL,ppL
94 else if(A-L ==3) bs=a3; // for 3nL,2npL,n2pL,3pL
95 else if(A-L >3) bs=b7*std::exp(-b8/(A-L+1.));
96 mass += L*(mL-bs) + eps;
97
98 return mass;
99}
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4int GetVerboseLevel() const
G4ParticleDefinition * FindParticle(G4int PDGEncoding)

Referenced by GetAtomicMass(), and G4IonTable::GetNucleusMass().


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