Geant4  10.02.p03
G4NucleiPropertiesTableAME03 Class Reference

#include <G4NucleiPropertiesTableAME03.hh>

Collaboration diagram for G4NucleiPropertiesTableAME03:

Public Types

enum  { nEntries = 3179, MaxA = 293, ZMax = 120 }
 

Public Member Functions

 ~G4NucleiPropertiesTableAME03 ()
 

Private Member Functions

 G4NucleiPropertiesTableAME03 ()
 

Static Private Member Functions

static G4double GetMassExcess (G4int Z, G4int A)
 
static G4double GetAtomicMass (G4int Z, G4int A)
 
static G4double GetNuclearMass (G4int Z, G4int A)
 
static G4double GetBindingEnergy (G4int Z, G4int A)
 
static G4double GetBetaDecayEnergy (G4int Z, G4int A)
 
static G4bool IsInTable (G4int Z, G4int A)
 
static G4int MaxZ (G4int A)
 
static G4int MinZ (G4int A)
 
static G4int GetIndex (G4int Z, G4int A)
 

Static Private Attributes

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

Friends

class G4NucleiProperties
 

Detailed Description

Definition at line 70 of file G4NucleiPropertiesTableAME03.hh.

Member Enumeration Documentation

◆ anonymous enum

Constructor & Destructor Documentation

◆ G4NucleiPropertiesTableAME03()

G4NucleiPropertiesTableAME03::G4NucleiPropertiesTableAME03 ( )
private

Definition at line 57 of file G4NucleiPropertiesTableAME03.cc.

58 {
59 }

◆ ~G4NucleiPropertiesTableAME03()

G4NucleiPropertiesTableAME03::~G4NucleiPropertiesTableAME03 ( )
inline

Definition at line 80 of file G4NucleiPropertiesTableAME03.hh.

80 { };

Member Function Documentation

◆ GetAtomicMass()

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

Definition at line 152 of file G4NucleiPropertiesTableAME03.cc.

153 {
154  G4int i=GetIndex(Z, A);
155  if (i >= 0){
156  return MassExcess[i]*keV + G4double(A)*amu_c2;
157  } else {
158  return 0.0;
159  }
160 }
static G4int GetIndex(G4int Z, G4int A)
static const G4double MassExcess[nEntries]
int G4int
Definition: G4Types.hh:78
double A(double temperature)
Float_t Z
static const double keV
Definition: G4SIunits.hh:213
double G4double
Definition: G4Types.hh:76
float amu_c2
Definition: hepunit.py:277
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetBetaDecayEnergy()

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

Definition at line 142 of file G4NucleiPropertiesTableAME03.cc.

143 {
144  G4int i=GetIndex(Z, A);
145  if (i >= 0){
146  return BetaEnergy[i]*keV;
147  } else {
148  return 0.0;
149  }
150 }
static G4int GetIndex(G4int Z, G4int A)
int G4int
Definition: G4Types.hh:78
double A(double temperature)
Float_t Z
static const G4double BetaEnergy[nEntries]
static const double keV
Definition: G4SIunits.hh:213
Here is the call graph for this function:

◆ GetBindingEnergy()

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

Definition at line 132 of file G4NucleiPropertiesTableAME03.cc.

133 {
134  G4int i=GetIndex(Z, A);
135  if (i >= 0){
136  return (G4double(A-Z)*MassExcess[0] + G4double(Z)*MassExcess[1] - MassExcess[i])*keV;
137  } else {
138  return 0.0;
139  }
140 }
static G4int GetIndex(G4int Z, G4int A)
static const G4double MassExcess[nEntries]
int G4int
Definition: G4Types.hh:78
double A(double temperature)
Float_t Z
static const double keV
Definition: G4SIunits.hh:213
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetIndex()

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

Definition at line 61 of file G4NucleiPropertiesTableAME03.cc.

62 {
64  G4Exception("G4NucleiPropertiesTableAME03::GetIndex",
65  "PART201",
66  EventMustBeAborted,"Nucleon number larger than 293");
67  return -1;
68  } else if(A<1) {
69  G4Exception("G4NucleiPropertiesTableAME03::GetIndex",
70  "Illegal arguemntPART201",
71  EventMustBeAborted," Nucleon number is negative");
72  return -1;
73  } else if(Z>A) {
74  G4Exception("G4NucleiPropertiesTableAME03::GetIndex",
75  "PART201",
76  EventMustBeAborted, "Nucleon number smaller than Z");
77  return -1;
78  }
79 
80  for (G4int i = shortTable[A-1]; i < shortTable[A] ; i++) {
81  if (indexArray[0][i] == Z ) return i;
82  }
83  return -1;
84 }
int G4int
Definition: G4Types.hh:78
double A(double temperature)
Float_t Z
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
static const G4int indexArray[2][nEntries]
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetMassExcess()

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

Definition at line 122 of file G4NucleiPropertiesTableAME03.cc.

123 {
124  G4int i=GetIndex(Z, A);
125  if (i >= 0) {
126  return MassExcess[i]*keV;
127  } else {
128  return 0.0;
129  }
130 }
static G4int GetIndex(G4int Z, G4int A)
static const G4double MassExcess[nEntries]
int G4int
Definition: G4Types.hh:78
double A(double temperature)
Float_t Z
static const double keV
Definition: G4SIunits.hh:213
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetNuclearMass()

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

Definition at line 101 of file G4NucleiPropertiesTableAME03.cc.

102 {
103  if (!isIntialized) {
104  // calculate electron mass in orbit with binding energy
105  isIntialized = true;
106  for (int iz=1; iz<ZMax; iz+=1){
108  - ( 14.4381 * std::pow( G4double(iz) , 2.39 )) *eV
109  - ( 1.55468*1e-6 * std::pow( G4double(iz) , 5.35 ) ) *eV;
110  }
111  }
112 
113  G4double nuclearMass = GetAtomicMass(Z,A) - electronMass[Z];
114 
115  if (nuclearMass <0.0) nuclearMass = 0.0;
116 
117  return nuclearMass;
118 
119 }
static G4double GetAtomicMass(G4int Z, G4int A)
double A(double temperature)
static G4ThreadLocal G4bool isIntialized
Float_t Z
G4double iz
Definition: TRTMaterials.hh:39
float electron_mass_c2
Definition: hepunit.py:274
static const double eV
Definition: G4SIunits.hh:212
static G4ThreadLocal G4double electronMass[ZMax]
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsInTable()

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

Definition at line 163 of file G4NucleiPropertiesTableAME03.cc.

164 {
165  return (Z <= A && A >= 1 && A <= 273 && Z >= 0 && Z <= 110 && GetIndex(Z, A) >= 0);
166 }
static G4int GetIndex(G4int Z, G4int A)
double A(double temperature)
Float_t Z
Here is the call graph for this function:
Here is the caller graph for this function:

◆ MaxZ()

G4int G4NucleiPropertiesTableAME03::MaxZ ( G4int  A)
staticprivate

Definition at line 94 of file G4NucleiPropertiesTableAME03.cc.

95 {
96  G4int i = shortTable[A]-1;
97  return indexArray[0][i];
98 }
int G4int
Definition: G4Types.hh:78
double A(double temperature)
static const G4int indexArray[2][nEntries]
Here is the call graph for this function:

◆ MinZ()

G4int G4NucleiPropertiesTableAME03::MinZ ( G4int  A)
staticprivate

Definition at line 87 of file G4NucleiPropertiesTableAME03.cc.

88 {
89  G4int i = shortTable[A-1];
90  return indexArray[0][i];
91 }
int G4int
Definition: G4Types.hh:78
double A(double temperature)
static const G4int indexArray[2][nEntries]

Friends And Related Function Documentation

◆ G4NucleiProperties

friend class G4NucleiProperties
friend

Definition at line 88 of file G4NucleiPropertiesTableAME03.hh.

Member Data Documentation

◆ BetaEnergy

const G4double G4NucleiPropertiesTableAME03::BetaEnergy
staticprivate

Definition at line 134 of file G4NucleiPropertiesTableAME03.hh.

◆ electronMass

G4ThreadLocal G4double G4NucleiPropertiesTableAME03::electronMass
staticprivate

Definition at line 149 of file G4NucleiPropertiesTableAME03.hh.

◆ indexArray

const G4int G4NucleiPropertiesTableAME03::indexArray
staticprivate

Definition at line 140 of file G4NucleiPropertiesTableAME03.hh.

◆ isIntialized

G4ThreadLocal G4bool G4NucleiPropertiesTableAME03::isIntialized = false
staticprivate

Definition at line 150 of file G4NucleiPropertiesTableAME03.hh.

◆ MassExcess

const G4double G4NucleiPropertiesTableAME03::MassExcess
staticprivate

Definition at line 130 of file G4NucleiPropertiesTableAME03.hh.

◆ shortTable

const G4int G4NucleiPropertiesTableAME03::shortTable
staticprivate

Definition at line 146 of file G4NucleiPropertiesTableAME03.hh.


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