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

#include <G4NucleiPropertiesTableAME12.hh>

Public Types

enum  { nEntries = 3353 , MaxA = 295 , ZMax = 120 }
 

Public Member Functions

 ~G4NucleiPropertiesTableAME12 ()
 

Private Member Functions

 G4NucleiPropertiesTableAME12 ()
 

Static Private Member Functions

static G4double GetAtomicMass (G4int Z, G4int A)
 
static G4double GetBetaDecayEnergy (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 G4int MaxZ (G4int A)
 
static G4int MinZ (G4int A)
 

Static Private Attributes

static const G4double BetaEnergy [nEntries]
 
static G4ThreadLocal G4double electronMass [ZMax]
 
static const G4int indexArray [2][nEntries]
 
static G4ThreadLocal G4bool isIntialized = false
 
static const G4double MassExcess [nEntries]
 
static const G4int shortTable [MaxA+1]
 

Friends

class G4NucleiProperties
 

Detailed Description

Definition at line 51 of file G4NucleiPropertiesTableAME12.hh.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Constructor & Destructor Documentation

◆ ~G4NucleiPropertiesTableAME12()

G4NucleiPropertiesTableAME12::~G4NucleiPropertiesTableAME12 ( )
inline

Definition at line 55 of file G4NucleiPropertiesTableAME12.hh.

55{}

◆ G4NucleiPropertiesTableAME12()

G4NucleiPropertiesTableAME12::G4NucleiPropertiesTableAME12 ( )
private

Definition at line 49 of file G4NucleiPropertiesTableAME12.cc.

50{
51}

Member Function Documentation

◆ GetAtomicMass()

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

Definition at line 162 of file G4NucleiPropertiesTableAME12.cc.

163{
164 G4int i=GetIndex(Z, A);
165 if (i >= 0)
166 {
167 return MassExcess[i]*keV + G4double(A)*amu_c2;
168 }
169 else
170 {
171 return 0.0;
172 }
173}
static constexpr double keV
Definition: G4SIunits.hh:202
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
const G4int Z[17]
const G4double A[17]
static G4int GetIndex(G4int Z, G4int A)
static const G4double MassExcess[nEntries]
float amu_c2
Definition: hepunit.py:276

References A, source.hepunit::amu_c2, GetIndex(), keV, MassExcess, and Z.

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

◆ GetBetaDecayEnergy()

G4double G4NucleiPropertiesTableAME12::GetBetaDecayEnergy ( G4int  Z,
G4int  A 
)
staticprivate

Definition at line 149 of file G4NucleiPropertiesTableAME12.cc.

150{
151 G4int i=GetIndex(Z, A);
152 if (i >= 0)
153 {
154 return BetaEnergy[i]*keV;
155 }
156 else
157 {
158 return 0.0;
159 }
160}
static const G4double BetaEnergy[nEntries]

References A, BetaEnergy, GetIndex(), keV, and Z.

◆ GetBindingEnergy()

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

Definition at line 135 of file G4NucleiPropertiesTableAME12.cc.

136{
137 G4int i=GetIndex(Z, A);
138 if (i >= 0)
139 {
140 return (G4double(A-Z)*MassExcess[0]
141 + G4double(Z)*MassExcess[1] - MassExcess[i])*keV;
142 }
143 else
144 {
145 return 0.0;
146 }
147}

References A, GetIndex(), keV, MassExcess, and Z.

Referenced by G4NucleiProperties::GetBindingEnergy().

◆ GetIndex()

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

Definition at line 55 of file G4NucleiPropertiesTableAME12.cc.

56{
58 {
59 G4Exception("G4NucleiPropertiesTableAME12::GetIndex",
60 "PART201",
61 EventMustBeAborted,"Nucleon number larger than 293");
62 return -1;
63 }
64 else if(A<1)
65 {
66 G4Exception("G4NucleiPropertiesTableAME12::GetIndex",
67 "Illegal arguemntPART201",
68 EventMustBeAborted," Nucleon number is negative");
69 return -1;
70 }
71 else if(Z>A)
72 {
73 G4Exception("G4NucleiPropertiesTableAME12::GetIndex",
74 "PART201",
75 EventMustBeAborted, "Nucleon number smaller than Z");
76 return -1;
77 }
78
79 for (G4int i = shortTable[A-1]; i < shortTable[A]; ++i)
80 {
81 if (indexArray[0][i] == Z ) return i;
82 }
83 return -1;
84}
@ EventMustBeAborted
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
static const G4int indexArray[2][nEntries]

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

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

◆ GetMassExcess()

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

Definition at line 122 of file G4NucleiPropertiesTableAME12.cc.

123{
124 G4int i=GetIndex(Z, A);
125 if (i >= 0)
126 {
127 return MassExcess[i]*keV;
128 }
129 else
130 {
131 return 0.0;
132 }
133}

References A, GetIndex(), keV, MassExcess, and Z.

Referenced by G4NucleiProperties::AtomicMass(), and G4NucleiProperties::GetMassExcess().

◆ GetNuclearMass()

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

Definition at line 101 of file G4NucleiPropertiesTableAME12.cc.

102{
103 if (!isIntialized)
104 {
105 // calculate electron mass in orbit with binding energy
106 isIntialized = true;
107 for (G4int iz=1; iz<ZMax; iz+=1)
108 {
110 - ( 14.4381 * std::pow( G4double(iz) , 2.39 )) *eV
111 - ( 1.55468*1e-6 * std::pow( G4double(iz) , 5.35 ) ) *eV;
112 }
113 }
114
115 G4double nuclearMass = GetAtomicMass(Z,A) - electronMass[Z];
116
117 if (nuclearMass <0.0) nuclearMass = 0.0;
118
119 return nuclearMass;
120}
static constexpr double eV
Definition: G4SIunits.hh:201
static G4double GetAtomicMass(G4int Z, G4int A)
static G4ThreadLocal G4bool isIntialized
static G4ThreadLocal G4double electronMass[ZMax]
float electron_mass_c2
Definition: hepunit.py:273

References A, source.hepunit::electron_mass_c2, electronMass, eV, GetAtomicMass(), isIntialized, Z, and ZMax.

Referenced by G4NucleiProperties::GetNuclearMass().

◆ IsInTable()

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

Definition at line 175 of file G4NucleiPropertiesTableAME12.cc.

176{
177 return (Z <= A && A >= 1 && A <= 273 && Z >= 0
178 && Z <= 110 && GetIndex(Z, A) >= 0);
179}

References A, GetIndex(), and Z.

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

◆ MaxZ()

G4int G4NucleiPropertiesTableAME12::MaxZ ( G4int  A)
staticprivate

Definition at line 94 of file G4NucleiPropertiesTableAME12.cc.

95{
96 G4int i = shortTable[A]-1;
97 return indexArray[0][i];
98}

References A, indexArray, and shortTable.

◆ MinZ()

G4int G4NucleiPropertiesTableAME12::MinZ ( G4int  A)
staticprivate

Definition at line 87 of file G4NucleiPropertiesTableAME12.cc.

88{
89 G4int i = shortTable[A-1];
90 return indexArray[0][i];
91}

References A, indexArray, and shortTable.

Friends And Related Function Documentation

◆ G4NucleiProperties

friend class G4NucleiProperties
friend

Definition at line 61 of file G4NucleiPropertiesTableAME12.hh.

Field Documentation

◆ BetaEnergy

const G4double G4NucleiPropertiesTableAME12::BetaEnergy
staticprivate

Definition at line 100 of file G4NucleiPropertiesTableAME12.hh.

Referenced by GetBetaDecayEnergy().

◆ electronMass

G4ThreadLocal G4double G4NucleiPropertiesTableAME12::electronMass
staticprivate

Definition at line 115 of file G4NucleiPropertiesTableAME12.hh.

Referenced by GetNuclearMass().

◆ indexArray

const G4int G4NucleiPropertiesTableAME12::indexArray
staticprivate

Definition at line 104 of file G4NucleiPropertiesTableAME12.hh.

Referenced by GetIndex(), MaxZ(), and MinZ().

◆ isIntialized

G4ThreadLocal G4bool G4NucleiPropertiesTableAME12::isIntialized = false
staticprivate

Definition at line 118 of file G4NucleiPropertiesTableAME12.hh.

Referenced by GetNuclearMass().

◆ MassExcess

const G4double G4NucleiPropertiesTableAME12::MassExcess
staticprivate

Definition at line 97 of file G4NucleiPropertiesTableAME12.hh.

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

◆ shortTable

const G4int G4NucleiPropertiesTableAME12::shortTable
staticprivate

Definition at line 109 of file G4NucleiPropertiesTableAME12.hh.

Referenced by GetIndex(), MaxZ(), and MinZ().


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