G4NucleiProperties.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 //      GEANT 4 class header file 
00032 //
00033 // ------------------------------------------------------------
00034 // Hadronic Process: Nuclear De-excitations by V. Lara (Oct 1998)
00035 // Migrate into particles category by H.Kurashige (17 Nov. 98)
00036 // Added Shell-Pairing corrections to the Cameron mass 
00037 // excess formula by V.Lara (9 May 99)
00038 // 
00039 // 090331 Migrate to AME03 by Koi, Tatsumi 
00040 
00041 #ifndef G4NucleiProperties_h
00042 #define G4NucleiProperties_h 1
00043 
00044 #include "globals.hh"
00045 #include "G4ios.hh"
00046 #include "G4NucleiPropertiesTableAME03.hh"
00047 #include "G4NucleiPropertiesTheoreticalTable.hh"
00048 #include "G4ParticleTable.hh"
00049 
00050 class G4NucleiProperties
00051 {
00052  // Class Description
00053  //   G4NucleiProperties is an utility class to provide mass formula of nuclei
00054  //   (i.e. it has static member function only)
00055 
00056 public: 
00057 
00058   // Destructor
00059   ~G4NucleiProperties() { };
00060 
00061   // Default constructor ()
00062   G4NucleiProperties(){};
00063 
00064 
00065 public:  // With Description
00066 
00067   // Give mass of nucleus A,Z
00068   static G4double GetNuclearMass(const G4double A, const G4double Z);
00069   static G4double GetNuclearMass(const G4int A, const G4int Z);
00070 
00071   // return 'true' if the nucleus in the stable table 
00072   // (i.e.in G4NucleiPropertiesTable)
00073   static bool IsInStableTable(const G4double A, const G4double Z);
00074   static bool IsInStableTable(const G4int A, const G4int Z);
00075 
00076   // Give binding energy 
00077   static G4double GetBindingEnergy(const G4int A, const G4int Z);
00078   static G4double GetBindingEnergy(const G4double A, const G4double Z);
00079 
00080   // Calculate Mass Excess of nucleus A,Z
00081   static G4double GetMassExcess(const G4int A, const G4int Z);
00082   static G4double GetMassExcess(const G4double A, const G4double Z);
00083 
00084 private:
00085   // hidie methods to enforce using GetNuclearMass
00086   // Give mass of Atom A,Z
00087   static G4double GetAtomicMass(const G4double A, const G4double Z);
00088   
00089 private:
00090   
00091   static G4double  AtomicMass(G4double A, G4double Z);
00092   
00093   static G4double  NuclearMass(G4double A, G4double Z);
00094   
00095   static G4double BindingEnergy(G4double A, G4double Z);
00096   
00097   static G4double MassExcess(G4double A, G4double Z);
00098 
00099 private: 
00100   // table of orbit electrons mass - binding energy 
00101   enum  {MaxZ = 120};
00102   static G4double electronMass[MaxZ];
00103 
00104 private:
00105   static G4bool   isIntialized;
00106   static G4double mass_proton;
00107   static G4double mass_neutron;
00108   static G4double mass_deuteron;
00109   static G4double mass_triton;
00110   static G4double mass_alpha;
00111   static G4double mass_He3;
00112         
00113 };
00114 
00115 
00116 
00117 #endif
00118 
00119 
00120 
00121 
00122 
00123 
00124 
00125 

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