Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4NucleiPropertiesTableAME03.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27// $Id$
28//
29// -------------------------------------------------------------------
30//
31// File name: G4NucleiPropertiesTableAME03.cc
32//
33// Authors: Tatsumi Koi (tkoi@slac.stanford.edu)
34//
35// Data are update to
36// The Ame2003 atomic mass evaluation (II)
37// by G.Audi, A.H.Wapstra and C.Thibault
38// Nuclear Physics A729 p. 337-676, December 22, 2003.
39//
40// Creation date: Apr. 2009
41// based on G4NucleiPropertiesTable
42//
43// Modifications:
44//
45
46#ifndef G4NucleiPropertiesTableAME03_h
47#define G4NucleiPropertiesTableAME03_h 1
48
49#include <cmath>
50#include "globals.hh"
51
52// Class Description
53// Class: G4NucleiPropertiesTable
54//*******************************************************************
55// Encapsulates Data from G. Audi and A.H. Wapstra, Nucl.
56// Physics,A595 vol 4 p 409-480,
57// 25. Dec. 1995.
58//*******************************************************************
59// Data are update to AME 2003
60//
61// Name, Z, A,
62// Mass Excess
63// Binding Energy
64// Beta Decay Energy
65// Atomic Mass
66//
67//
69
71{
72private:
73
74 // Default constructor - this class should exist only once!
76
77public:
78
79 // Destructor (generated)
81
82 // Following values migrate to AME03
83 enum {nEntries = 3179,MaxA = 293, ZMax = 120};
84
85 // Other Operations
86 // all methods are private and can be used only by G4NucleiProperties
87
88 friend class G4NucleiProperties;
89
90private:
91
92 // Operation: GetMassExcess
93 // values imported from The Ame2003 atomic mass evaluation (II)
94 static G4double GetMassExcess(G4int Z, G4int A);
95
96 // Operation: GetAtomicMass .. in Geant4 Energy units!
97 // Atomic_Mass = MassExcess + A*amu_c2
98 static G4double GetAtomicMass(G4int Z, G4int A);
99
100 // Operation: GetNuclearMass
101 // Nuclear_Mass = Atomic_Mass - electronMass
102 static G4double GetNuclearMass(G4int Z, G4int A);
103
104 // Operation: GetBindingEnergy
105 static G4double GetBindingEnergy(G4int Z, G4int A);
106
107 // Operation: GetBetaDecayEnergy
108 static G4double GetBetaDecayEnergy(G4int Z, G4int A);
109
110 // Is the nucleus (A,Z) in table?
111 static G4bool IsInTable(G4int Z, G4int A);
112
113 static G4int MaxZ(G4int A);
114 static G4int MinZ(G4int A);
115
116
117private:
118
119 // Operation: GetIndex
120 static G4int GetIndex(G4int Z, G4int A);
121
122
123 // Data Members for Class Attributes
124 //----------------------------------
125
126 // The following arrays are static for allow inicialization.
127 // The inicialization is Done in G4NucleiPropertiesTableAME03.cc
128
129 // Mass Excess
130 static G4double MassExcess[nEntries];
131
132
133 // Beta Decay Energy
134 static G4double BetaEnergy[nEntries];
135
136
137 // Table of Z (number of protons) and A (number of nucleons)
138 // indexArray[0][ ] --> Z
139 // indexArray[1][ ] --> A
140 static G4int indexArray[2][nEntries];
141
142 // Reduced Table of A for shorter index search.
143 // The index in this table coincide with A-1
144 // For each A value shortTable[A-1] has the index of the 1st occurrence in
145 // the indexArray[][]
146 static G4int shortTable[MaxA+1];
147
148 // electrom mass
149 static G4double electronMass[ZMax];
150 static G4bool isIntialized;
151
152};
153
154
155#endif
156
157
158
159
160
161
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67