Geant4  10.02.p03
G4NucleiPropertiesTheoreticalTable Class Reference

#include <G4NucleiPropertiesTheoreticalTable.hh>

Collaboration diagram for G4NucleiPropertiesTheoreticalTable:

Public Types

enum  { nEntries = 8979, shortTableSize = 137 }
 

Public Member Functions

 ~G4NucleiPropertiesTheoreticalTable ()
 

Private Member Functions

 G4NucleiPropertiesTheoreticalTable ()
 

Static Private Member Functions

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

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 49 of file G4NucleiPropertiesTheoreticalTable.hh.

Member Enumeration Documentation

◆ anonymous enum

Constructor & Destructor Documentation

◆ G4NucleiPropertiesTheoreticalTable()

G4NucleiPropertiesTheoreticalTable::G4NucleiPropertiesTheoreticalTable ( )
inlineprivate

Definition at line 54 of file G4NucleiPropertiesTheoreticalTable.hh.

54 {};

◆ ~G4NucleiPropertiesTheoreticalTable()

G4NucleiPropertiesTheoreticalTable::~G4NucleiPropertiesTheoreticalTable ( )
inline

Definition at line 59 of file G4NucleiPropertiesTheoreticalTable.hh.

59 { };

Member Function Documentation

◆ ElectronicBindingEnergy()

G4double G4NucleiPropertiesTheoreticalTable::ElectronicBindingEnergy ( G4int  Z)
staticprivate

Definition at line 121 of file G4NucleiPropertiesTheoreticalTableA.cc.

121  {
122  const G4double ael = 1.433e-5*MeV; // electronic-binding constant
123  return ael*std::pow(G4double(Z),2.39);
124 }
static const double MeV
Definition: G4SIunits.hh:211
Float_t Z
double G4double
Definition: G4Types.hh:76
Here is the caller graph for this function:

◆ GetAtomicMass()

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

Definition at line 99 of file G4NucleiPropertiesTheoreticalTableA.cc.

100 {
101  G4int i=GetIndex(Z, A);
102  if (i >= 0) {
103  return AtomicMassExcess[i]*MeV + A*amu_c2;
104  } else {
105  return 0.0;
106  }
107 }
static const double MeV
Definition: G4SIunits.hh:211
int G4int
Definition: G4Types.hh:78
double A(double temperature)
Float_t Z
float amu_c2
Definition: hepunit.py:277
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetBindingEnergy()

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

Definition at line 85 of file G4NucleiPropertiesTheoreticalTableA.cc.

86 {
87  G4int i=GetIndex(Z, A);
88  if (i >= 0){
89  const G4double Mh = 7.289034*MeV; // hydrogen atom mass excess
90  const G4double Mn = 8.071431*MeV; // neutron mass excess
91  return G4double(Z)*Mh + G4double(A-Z)*Mn - AtomicMassExcess[i]*MeV;
92  } else {
93  return 0.0;
94  }
95 }
static const double MeV
Definition: G4SIunits.hh:211
int G4int
Definition: G4Types.hh:78
double A(double temperature)
Float_t Z
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetIndex()

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

Definition at line 41 of file G4NucleiPropertiesTheoreticalTableA.cc.

42 {
43 
44  if(A>339) {
45  G4Exception("G4NucleiPropertiesTheoreticalTable::GetIndex",
46  "PART202",
47  EventMustBeAborted,"Nucleon number larger than 339");
48  } else if(A<16) {
49  G4Exception("G4NucleiPropertiesTheoreticalTable::GetIndex",
50  "PART202",
51  EventMustBeAborted," Nucleon number smaller than 16");
52  } else if(Z>136) {
53  G4Exception("G4NucleiPropertiesTheoreticalTable::GetIndex",
54  "PART202",
55  EventMustBeAborted, "Proton number larger than 136");
56  } else if(Z<8) {
57  G4Exception("G4NucleiPropertiesTheoreticalTable::GetIndex",
58  "PART202",
59  EventMustBeAborted, "Proton number smaller than 8");
60  } else if(Z>A) {
61  G4Exception("G4NucleiPropertiesTheoreticalTable::GetIndex",
62  "PART202",
63  EventMustBeAborted, "Nucleon number smaller than Z");
64  }
65 
66  for (G4int i = shortTable[Z-8]; i < shortTable[Z-8+1]; i++ ) {
67  if (indexArray[1][i] == A ) return i;
68  }
69 
70  return -1;
71 }
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
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetMassExcess()

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

Definition at line 75 of file G4NucleiPropertiesTheoreticalTableA.cc.

76 {
77  G4int i=GetIndex(Z, A);
78  if (i >= 0) {
79  return AtomicMassExcess[i]*MeV;
80  } else {
81  return 0.0;
82  }
83 }
static const double MeV
Definition: G4SIunits.hh:211
int G4int
Definition: G4Types.hh:78
double A(double temperature)
Float_t Z
Here is the call graph for this function:
Here is the caller graph for this function:

◆ 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) {
116  } else {
117  return 0.0;
118  }
119 }
int G4int
Definition: G4Types.hh:78
double A(double temperature)
Float_t Z
float electron_mass_c2
Definition: hepunit.py:274
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsInTable()

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

Definition at line 126 of file G4NucleiPropertiesTheoreticalTableA.cc.

127 {
128  return (Z <= A && A >= 16 && A <= 339 && Z <= 136 && Z >= 8 && GetIndex(Z, A) >= 0);
129 }
double A(double temperature)
Float_t Z
Here is the call graph for this function:
Here is the caller graph for this function:

Friends And Related Function Documentation

◆ G4NucleiProperties

friend class G4NucleiProperties
friend

Definition at line 65 of file G4NucleiPropertiesTheoreticalTable.hh.

Member Data Documentation

◆ AtomicMassExcess

const G4double G4NucleiPropertiesTheoreticalTable::AtomicMassExcess
staticprivate

Definition at line 94 of file G4NucleiPropertiesTheoreticalTable.hh.

◆ indexArray

const G4int G4NucleiPropertiesTheoreticalTable::indexArray
staticprivate

Definition at line 99 of file G4NucleiPropertiesTheoreticalTable.hh.

◆ 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 105 of file G4NucleiPropertiesTheoreticalTable.hh.


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