Geant4-11
Public Types | Public Member Functions | Private Member Functions | Static Private Member Functions | Static Private Attributes | Friends
G4NucleiPropertiesTheoreticalTable Class Reference

#include <G4NucleiPropertiesTheoreticalTable.hh>

Public Types

enum  { nEntries = 8979 , shortTableSize = 137 }
 

Public Member Functions

 ~G4NucleiPropertiesTheoreticalTable ()
 

Private Member Functions

 G4NucleiPropertiesTheoreticalTable ()
 

Static Private Member Functions

static G4double ElectronicBindingEnergy (G4int Z)
 
static G4double GetAtomicMass (G4int Z, G4int A)
 
static G4double GetBindingEnergy (G4int Z, G4int A)
 
static G4int GetIndex (G4int Z, G4int A)
 
static G4double GetMassExcess (G4int Z, G4int A)
 
static G4double GetNuclearMass (G4int Z, G4int A)
 
static G4bool IsInTable (G4int Z, G4int A)
 

Static Private Attributes

static const G4double AtomicMassExcess [nEntries]
 
static const G4int indexArray [2][nEntries]
 
static const G4int shortTable [shortTableSize]
 

Friends

class G4NucleiProperties
 

Detailed Description

Definition at line 43 of file G4NucleiPropertiesTheoreticalTable.hh.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Constructor & Destructor Documentation

◆ ~G4NucleiPropertiesTheoreticalTable()

G4NucleiPropertiesTheoreticalTable::~G4NucleiPropertiesTheoreticalTable ( )
inline

Definition at line 47 of file G4NucleiPropertiesTheoreticalTable.hh.

47{}

◆ G4NucleiPropertiesTheoreticalTable()

G4NucleiPropertiesTheoreticalTable::G4NucleiPropertiesTheoreticalTable ( )
inlineprivate

Definition at line 56 of file G4NucleiPropertiesTheoreticalTable.hh.

56{}

Member Function Documentation

◆ ElectronicBindingEnergy()

G4double G4NucleiPropertiesTheoreticalTable::ElectronicBindingEnergy ( G4int  Z)
staticprivate

Definition at line 125 of file G4NucleiPropertiesTheoreticalTableA.cc.

126{
127 const G4double ael = 1.433e-5*MeV; // electronic-binding constant
128 return ael*std::pow(G4double(Z),2.39);
129}
static constexpr double MeV
Definition: G4SIunits.hh:200
double G4double
Definition: G4Types.hh:83
const G4int Z[17]

References MeV, and Z.

Referenced by GetNuclearMass().

◆ GetAtomicMass()

G4double G4NucleiPropertiesTheoreticalTable::GetAtomicMass ( G4int  Z,
G4int  A 
)
staticprivate

Definition at line 98 of file G4NucleiPropertiesTheoreticalTableA.cc.

99{
100 G4int i=GetIndex(Z, A);
101 if (i >= 0)
102 {
103 return AtomicMassExcess[i]*MeV + A*amu_c2;
104 }
105 else
106 {
107 return 0.0;
108 }
109}
int G4int
Definition: G4Types.hh:85
const G4double A[17]
float amu_c2
Definition: hepunit.py:276

References A, source.hepunit::amu_c2, AtomicMassExcess, GetIndex(), MeV, and Z.

Referenced by G4NucleiProperties::GetAtomicMass(), and GetNuclearMass().

◆ GetBindingEnergy()

G4double G4NucleiPropertiesTheoreticalTable::GetBindingEnergy ( G4int  Z,
G4int  A 
)
staticprivate

Definition at line 83 of file G4NucleiPropertiesTheoreticalTableA.cc.

84{
85 G4int i=GetIndex(Z, A);
86 if (i >= 0)
87 {
88 const G4double Mh = 7.289034*MeV; // hydrogen atom mass excess
89 const G4double Mn = 8.071431*MeV; // neutron mass excess
90 return G4double(Z)*Mh + G4double(A-Z)*Mn - AtomicMassExcess[i]*MeV;
91 }
92 else
93 {
94 return 0.0;
95 }
96}

References A, AtomicMassExcess, GetIndex(), MeV, and Z.

Referenced by G4NucleiProperties::GetBindingEnergy().

◆ GetIndex()

G4int G4NucleiPropertiesTheoreticalTable::GetIndex ( G4int  Z,
G4int  A 
)
staticprivate

Definition at line 37 of file G4NucleiPropertiesTheoreticalTableA.cc.

38{
39
40 if(A>339) {
41 G4Exception("G4NucleiPropertiesTheoreticalTable::GetIndex",
42 "PART202",
43 EventMustBeAborted,"Nucleon number larger than 339");
44 } else if(A<16) {
45 G4Exception("G4NucleiPropertiesTheoreticalTable::GetIndex",
46 "PART202",
47 EventMustBeAborted," Nucleon number smaller than 16");
48 } else if(Z>136) {
49 G4Exception("G4NucleiPropertiesTheoreticalTable::GetIndex",
50 "PART202",
51 EventMustBeAborted, "Proton number larger than 136");
52 } else if(Z<8) {
53 G4Exception("G4NucleiPropertiesTheoreticalTable::GetIndex",
54 "PART202",
55 EventMustBeAborted, "Proton number smaller than 8");
56 } else if(Z>A) {
57 G4Exception("G4NucleiPropertiesTheoreticalTable::GetIndex",
58 "PART202",
59 EventMustBeAborted, "Nucleon number smaller than Z");
60 }
61
62 for (G4int i = shortTable[Z-8]; i < shortTable[Z-8+1]; ++i )
63 {
64 if (indexArray[1][i] == A ) return i;
65 }
66
67 return -1;
68}
@ EventMustBeAborted
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35

References A, EventMustBeAborted, G4Exception(), indexArray, shortTable, and Z.

Referenced by GetAtomicMass(), GetBindingEnergy(), GetMassExcess(), GetNuclearMass(), and IsInTable().

◆ GetMassExcess()

G4double G4NucleiPropertiesTheoreticalTable::GetMassExcess ( G4int  Z,
G4int  A 
)
staticprivate

Definition at line 70 of file G4NucleiPropertiesTheoreticalTableA.cc.

71{
72 G4int i=GetIndex(Z, A);
73 if (i >= 0)
74 {
75 return AtomicMassExcess[i]*MeV;
76 }
77 else
78 {
79 return 0.0;
80 }
81}

References A, AtomicMassExcess, GetIndex(), MeV, and Z.

Referenced by G4NucleiProperties::GetMassExcess().

◆ GetNuclearMass()

G4double G4NucleiPropertiesTheoreticalTable::GetNuclearMass ( G4int  Z,
G4int  A 
)
staticprivate

Definition at line 111 of file G4NucleiPropertiesTheoreticalTableA.cc.

112{
113 G4int i=GetIndex(Z, A);
114 if (i >= 0)
115 {
116 return GetAtomicMass(Z,A)
118 }
119 else
120 {
121 return 0.0;
122 }
123}
float electron_mass_c2
Definition: hepunit.py:273

References A, source.hepunit::electron_mass_c2, ElectronicBindingEnergy(), GetAtomicMass(), GetIndex(), and Z.

Referenced by G4NucleiProperties::GetNuclearMass().

◆ IsInTable()

G4bool G4NucleiPropertiesTheoreticalTable::IsInTable ( G4int  Z,
G4int  A 
)
staticprivate

Definition at line 131 of file G4NucleiPropertiesTheoreticalTableA.cc.

132{
133 return (Z <= A && A >= 16 && A <= 339 && Z <= 136
134 && Z >= 8 && GetIndex(Z, A) >= 0);
135}

References A, GetIndex(), and Z.

Referenced by G4NucleiProperties::GetAtomicMass(), G4NucleiProperties::GetBindingEnergy(), G4NucleiProperties::GetMassExcess(), and G4NucleiProperties::GetNuclearMass().

Friends And Related Function Documentation

◆ G4NucleiProperties

friend class G4NucleiProperties
friend

Definition at line 51 of file G4NucleiPropertiesTheoreticalTable.hh.

Field Documentation

◆ AtomicMassExcess

const G4double G4NucleiPropertiesTheoreticalTable::AtomicMassExcess
staticprivate

◆ indexArray

const G4int G4NucleiPropertiesTheoreticalTable::indexArray
staticprivate

Definition at line 78 of file G4NucleiPropertiesTheoreticalTable.hh.

Referenced by GetIndex().

◆ shortTable

const G4int G4NucleiPropertiesTheoreticalTable::shortTable
staticprivate
Initial value:
=
{
0, 19, 41 , 65, 91, 119, 150, 183, 218, 255,
294, 335, 377, 421, 466, 513, 561, 610, 660, 711,
764, 818, 873, 928, 984, 1042, 1101, 1161, 1222, 1284,
1347, 1411, 1476, 1542, 1609, 1677, 1746, 1816, 1887, 1958,
2031, 2105, 2180, 2256, 2332, 2410, 2489, 2569, 2649, 2731,
2814, 2897, 2981, 3065, 3151, 3237, 3324, 3411, 3500, 3589,
3678, 3768, 3858, 3950, 4042, 4134, 4227, 4321, 4416, 4511,
4606, 4702, 4799, 4896, 4993, 5092, 5191, 5290, 5389, 5490,
5591, 5692, 5793, 5895, 5998, 6101, 6204, 6308, 6412, 6516,
6620, 6725, 6830, 6936, 7042, 7149, 7254, 7356, 7455, 7551,
7644, 7734, 7821, 7905, 7986, 8064, 8138, 8209, 8277, 8342,
8404, 8463, 8519, 8572, 8622, 8668, 8711, 8751, 8788, 8822,
8852, 8879, 8903, 8924, 8941, 8955, 8966, 8974, 8978, 0,
0, 0, 0, 0, 0, 0, 8979
}

Definition at line 83 of file G4NucleiPropertiesTheoreticalTable.hh.

Referenced by GetIndex().


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