G4NucleiPropertiesTableAME03.hh

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 //
00027 // $Id$
00028 //
00029 // -------------------------------------------------------------------
00030 //
00031 //      File name:     G4NucleiPropertiesTableAME03.cc 
00032 //
00033 //      Authors:       Tatsumi Koi (tkoi@slac.stanford.edu)
00034 // 
00035 //      Data are update to 
00036 //      The Ame2003 atomic mass evaluation (II)  
00037 //      by G.Audi, A.H.Wapstra and C.Thibault
00038 //      Nuclear Physics A729 p. 337-676, December 22, 2003.
00039 //
00040 //      Creation date: Apr. 2009 
00041 //                     based on G4NucleiPropertiesTable
00042 //
00043 //      Modifications: 
00044 // 
00045 
00046 #ifndef G4NucleiPropertiesTableAME03_h
00047 #define G4NucleiPropertiesTableAME03_h  1
00048 
00049 #include <cmath>
00050 #include "globals.hh"
00051 
00052 // Class Description
00053 // Class: G4NucleiPropertiesTable
00054 //*******************************************************************      
00055 //      Encapsulates Data from G. Audi and A.H. Wapstra, Nucl.
00056 //      Physics,A595 vol 4 p 409-480,
00057 //      25. Dec. 1995.
00058 //*******************************************************************      
00059 //      Data are update to AME 2003
00060 //
00061 //      Name, Z, A,
00062 //      Mass Excess
00063 //      Binding Energy
00064 //      Beta Decay Energy
00065 //      Atomic Mass
00066 //
00067 //      
00068 class G4NucleiProperties;
00069 
00070 class G4NucleiPropertiesTableAME03 
00071 {
00072 private:
00073   
00074   // Default constructor - this class should exist only once!
00075   G4NucleiPropertiesTableAME03();
00076 
00077 public:
00078 
00079   // Destructor (generated)
00080   ~G4NucleiPropertiesTableAME03() { };
00081 
00082   // Following values migrate to AME03
00083   enum  {nEntries = 3179,MaxA = 293, ZMax = 120}; 
00084 
00085   // Other Operations 
00086   // all methods are private and can be used only by G4NucleiProperties
00087 
00088   friend class G4NucleiProperties;  
00089 
00090 private:
00091 
00092   // Operation: GetMassExcess
00093   //   values imported from The Ame2003 atomic mass evaluation (II)  
00094   static G4double GetMassExcess(G4int Z, G4int A); 
00095 
00096   // Operation: GetAtomicMass .. in Geant4 Energy units!
00097   //      Atomic_Mass =  MassExcess + A*amu_c2
00098   static G4double GetAtomicMass(G4int Z, G4int A);
00099 
00100   // Operation: GetNuclearMass
00101   //      Nuclear_Mass = Atomic_Mass - electronMass
00102   static G4double GetNuclearMass(G4int Z, G4int A);
00103 
00104   // Operation: GetBindingEnergy
00105   static G4double GetBindingEnergy(G4int Z, G4int A);
00106 
00107   // Operation: GetBetaDecayEnergy
00108   static G4double GetBetaDecayEnergy(G4int Z, G4int A);
00109 
00110   // Is the nucleus (A,Z) in table?
00111   static G4bool IsInTable(G4int Z, G4int A);
00112 
00113   static G4int MaxZ(G4int A);
00114   static G4int MinZ(G4int A);
00115 
00116 
00117 private:
00118 
00119   // Operation: GetIndex
00120   static G4int GetIndex(G4int Z, G4int A);
00121   
00122 
00123   // Data Members for Class Attributes
00124   //----------------------------------  
00125 
00126   // The following arrays are static for allow inicialization.
00127   // The inicialization is Done in G4NucleiPropertiesTableAME03.cc
00128 
00129   // Mass Excess
00130   static G4double MassExcess[nEntries];
00131   
00132   
00133   // Beta Decay Energy
00134   static G4double BetaEnergy[nEntries];
00135 
00136     
00137   // Table of Z (number of protons) and A (number of nucleons)
00138   //        indexArray[0][ ] --> Z
00139   //        indexArray[1][ ] --> A
00140   static G4int indexArray[2][nEntries];
00141 
00142   // Reduced Table of A for shorter index search.
00143   //         The index in this table coincide with A-1
00144   //         For each A value shortTable[A-1] has the index of the 1st occurrence in
00145   //         the indexArray[][]
00146   static G4int shortTable[MaxA+1];
00147 
00148   // electrom mass
00149   static G4double electronMass[ZMax];
00150   static G4bool   isIntialized;
00151 
00152 };
00153 
00154 
00155 #endif
00156 
00157 
00158 
00159 
00160 
00161 

Generated on Mon May 27 17:49:07 2013 for Geant4 by  doxygen 1.4.7