Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:58:45

0001 //
0002 // ********************************************************************
0003 // * License and Disclaimer                                           *
0004 // *                                                                  *
0005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
0006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
0007 // * conditions of the Geant4 Software License,  included in the file *
0008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
0009 // * include a list of copyright holders.                             *
0010 // *                                                                  *
0011 // * Neither the authors of this software system, nor their employing *
0012 // * institutes,nor the agencies providing financial support for this *
0013 // * work  make  any representation or  warranty, express or implied, *
0014 // * regarding  this  software system or assume any liability for its *
0015 // * use.  Please see the license in the file  LICENSE  and URL above *
0016 // * for the full disclaimer and the limitation of liability.         *
0017 // *                                                                  *
0018 // * This  code  implementation is the result of  the  scientific and *
0019 // * technical work of the GEANT4 collaboration.                      *
0020 // * By using,  copying,  modifying or  distributing the software (or *
0021 // * any work based  on the software)  you  agree  to acknowledge its *
0022 // * use  in  resulting  scientific  publications,  and indicate your *
0023 // * acceptance of all terms of the Geant4 Software license.          *
0024 // ********************************************************************
0025 //
0026 // G4NucleiPropertiesTheoreticalTable
0027 //
0028 // Class description:
0029 //
0030 // Encapsulates data from:
0031 //   W.D. Myers, W.J. Swiatecki, P. Moller and J.R. Nix, 1. Jan. 1995.
0032 //   Atomic Mass Excess.
0033 
0034 // Author: Tatsumi Koi, SLAC
0035 // --------------------------------------------------------------------
0036 #ifndef G4NucleiPropertiesTheoreticalTable_hh
0037 #define G4NucleiPropertiesTheoreticalTable_hh 1
0038 
0039 #include "globals.hh"
0040 
0041 class G4NucleiProperties;
0042 
0043 class G4NucleiPropertiesTheoreticalTable
0044 {
0045   public:
0046     ~G4NucleiPropertiesTheoreticalTable() = default;
0047 
0048     enum
0049     {
0050       nEntries = 8979,
0051       shortTableSize = 137
0052     };
0053 
0054     // All methods are private and can be used only by G4NucleiProperties
0055     friend class G4NucleiProperties;
0056 
0057   private:
0058     // Default constructor
0059     G4NucleiPropertiesTheoreticalTable() {}
0060 
0061     static G4double GetMassExcess(G4int Z, G4int A);
0062 
0063     static G4double GetNuclearMass(G4int Z, G4int A);
0064 
0065     static G4double GetAtomicMass(G4int Z, G4int A);
0066 
0067     static G4double GetBindingEnergy(G4int Z, G4int A);
0068 
0069     // Is the nucleus (Z,A) in table?
0070     static G4bool IsInTable(G4int Z, G4int A);
0071 
0072     static G4int GetIndex(G4int Z, G4int A);
0073 
0074     static G4double ElectronicBindingEnergy(G4int Z);
0075 
0076     // Mass Excess
0077     static const G4double AtomicMassExcess[nEntries];
0078 
0079     // Table of Z (number of protons) and A (number of nucleons)
0080     //        indexArray[0][ ] --> Z
0081     //        indexArray[1][ ] --> A
0082     static const G4int indexArray[2][nEntries];
0083 
0084     // Reduced Table of Z for shorter index search.
0085     //         The index in this table coincide with Z-1
0086     //         For each Z value shortTable[Z-1] has the index of
0087     // the 1st occurrence in the indexArray[][]
0088     static const G4int shortTable[shortTableSize];
0089 };
0090 
0091 #endif