ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4NucleiPropertiesTableAME12.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4NucleiPropertiesTableAME12.hh
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 //
28 // -------------------------------------------------------------------
29 //
30 // File name: G4NucleiPropertiesTableAME12.cc
31 //
32 // Authors: Tatsumi Koi (tkoi@slac.stanford.edu)
33 //
34 // Data are update to AME2012
35 // "The Ame2012 atomic mass evaluation (I)"
36 // by G.Audi, M.Wang, A.H.Wapstra, F.G.Kondev, M.MacCormick, X.Xu, and B.~Pfeiffer
37 // Chinese Physics C36 p. 1287-1602, December 2012.
38 // "The Ame2012 atomic mass evaluation (II)"
39 // by M.Wang, G.Audi, A.H.Wapstra, F.G.Kondev, M.MacCormick, X.Xu, and B.~Pfeiffer
40 // Chinese Physics C36 p. 1603-2014, December 2012.
41 //
42 // Creation date: Aug. 2016
43 // based on G4NucleiPropertiesTableAME03
44 //
45 // Modifications:
46 //
47 
48 #ifndef G4NucleiPropertiesTableAME12_h
49 #define G4NucleiPropertiesTableAME12_h 1
50 
51 #include <cmath>
52 #include "globals.hh"
53 //
54 class G4NucleiProperties;
55 
57 {
58 private:
59 
60  // Default constructor - this class should exist only once!
62 
63 public:
64 
65  // Destructor (generated)
67 
68  // Following values migrate to AME12
69  enum {nEntries = 3353,MaxA = 295, ZMax = 120};
70 
71  // Other Operations
72  // all methods are private and can be used only by G4NucleiProperties
73 
74  friend class G4NucleiProperties;
75 
76 private:
77 
78  // Operation: GetMassExcess
79  // values imported from The Ame2003 atomic mass evaluation (II)
80  static G4double GetMassExcess(G4int Z, G4int A);
81 
82  // Operation: GetAtomicMass .. in Geant4 Energy units!
83  // Atomic_Mass = MassExcess + A*amu_c2
85 
86  // Operation: GetNuclearMass
87  // Nuclear_Mass = Atomic_Mass - electronMass
89 
90  // Operation: GetBindingEnergy
92 
93  // Operation: GetBetaDecayEnergy
95 
96  // Is the nucleus (A,Z) in table?
97  static G4bool IsInTable(G4int Z, G4int A);
98 
99  static G4int MaxZ(G4int A);
100  static G4int MinZ(G4int A);
101 
102 
103 private:
104 
105  // Operation: GetIndex
106  static G4int GetIndex(G4int Z, G4int A);
107 
108 
109  // Data Members for Class Attributes
110  //----------------------------------
111 
112  // The following arrays are static for allow inicialization.
113  // The inicialization is Done in G4NucleiPropertiesTableAME12.cc
114 
115  // Mass Excess
116  static const G4double MassExcess[nEntries];
117 
118 
119  // Beta Decay Energy
120  static const G4double BetaEnergy[nEntries];
121 
122 
123  // Table of Z (number of protons) and A (number of nucleons)
124  // indexArray[0][ ] --> Z
125  // indexArray[1][ ] --> A
126  static const G4int indexArray[2][nEntries];
127 
128  // Reduced Table of A for shorter index search.
129  // The index in this table coincide with A-1
130  // For each A value shortTable[A-1] has the index of the 1st occurrence in
131  // the indexArray[][]
132  static const G4int shortTable[MaxA+1];
133 
134  // electrom mass
137 
138 };
139 
140 
141 #endif
142 
143 
144 
145 
146 
147