Geant4 10.7.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 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 105 of file G4HyperNucleiProperties.cc.

106{
107 if (A < 1 || Z < 0 || Z > A-LL || LL > A || LL <0 )
108 {
109#ifdef G4VERBOSE
110 if (G4ParticleTable::GetParticleTable()->GetVerboseLevel()>0)
111 {
112 G4cout << "G4HyperNucleiProperties::GetAtomicMass: "
113 << " Wrong values for A = " << A
114 << " Z = " << Z
115 << " L = " << LL << G4endl;
116 }
117#endif
118 return 0.0;
119
120 }
121 else
122 {
123 G4double nuclearMass = GetNuclearMass(A, Z, LL);
124 return nuclearMass + Z*electron_mass_c2
125 - 1.433e-5*MeV*std::pow(G4double(Z),2.39);
126 }
127}
double A(double temperature)
double G4double
Definition: G4Types.hh:83
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL 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 38 of file G4HyperNucleiProperties.cc.

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