Import Geant4 10.7.0.beta source tree
This commit is contained in:
@@ -23,99 +23,76 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// G4NucleiProperties
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// Hadronic Process: Nuclear De-excitations by V. Lara (Oct 1998)
|
||||
// Migrate into particles category by H.Kurashige (17 Nov. 98)
|
||||
// Added Shell-Pairing corrections to the Cameron mass
|
||||
// excess formula by V.Lara (9 May 99)
|
||||
//
|
||||
// 090331 Migrate to AME03 by Koi, Tatsumi
|
||||
// Utility class to provide mass formula of nuclei (i.e. it has static
|
||||
// member function only).
|
||||
|
||||
#ifndef G4NucleiProperties_h
|
||||
#define G4NucleiProperties_h 1
|
||||
// Author: V.Lara, October 1998
|
||||
// History:
|
||||
// - 17.11.1998, H.Kurashige - Migrated into particles category
|
||||
// - 31.03.2009, T.Koi - Migrated to AME03
|
||||
// --------------------------------------------------------------------
|
||||
#ifndef G4NucleiProperties_hh
|
||||
#define G4NucleiProperties_hh 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
class G4NucleiProperties
|
||||
{
|
||||
// Class Description
|
||||
// G4NucleiProperties is an utility class to provide mass formula of nuclei
|
||||
// (i.e. it has static member function only)
|
||||
public:
|
||||
|
||||
public:
|
||||
G4NucleiProperties() {}
|
||||
~G4NucleiProperties() {}
|
||||
|
||||
// Destructor
|
||||
~G4NucleiProperties() { };
|
||||
static G4double GetNuclearMass(const G4double A, const G4double Z);
|
||||
static G4double GetNuclearMass(const G4int A, const G4int Z);
|
||||
// Give mass of nucleus A,Z
|
||||
|
||||
// Default constructor ()
|
||||
G4NucleiProperties() { };
|
||||
static G4bool IsInStableTable(const G4double A, const G4double Z);
|
||||
static G4bool IsInStableTable(const G4int A, const G4int Z);
|
||||
// Return 'true' if the nucleus is in the stable table
|
||||
// (i.e. in G4NucleiPropertiesTable)
|
||||
|
||||
static G4double GetBindingEnergy(const G4int A, const G4int Z);
|
||||
static G4double GetBindingEnergy(const G4double A, const G4double Z);
|
||||
// Give binding energy
|
||||
|
||||
public: // With Description
|
||||
static G4double GetMassExcess(const G4int A, const G4int Z);
|
||||
static G4double GetMassExcess(const G4double A, const G4double Z);
|
||||
// Calculate Mass Excess of nucleus A,Z
|
||||
|
||||
// Give mass of nucleus A,Z
|
||||
static G4double GetNuclearMass(const G4double A, const G4double Z);
|
||||
static G4double GetNuclearMass(const G4int A, const G4int Z);
|
||||
private:
|
||||
|
||||
// return 'true' if the nucleus in the stable table
|
||||
// (i.e.in G4NucleiPropertiesTable)
|
||||
static bool IsInStableTable(const G4double A, const G4double Z);
|
||||
static bool IsInStableTable(const G4int A, const G4int Z);
|
||||
// Hidden methods to enforce using GetNuclearMass
|
||||
|
||||
// Give binding energy
|
||||
static G4double GetBindingEnergy(const G4int A, const G4int Z);
|
||||
static G4double GetBindingEnergy(const G4double A, const G4double Z);
|
||||
|
||||
// Calculate Mass Excess of nucleus A,Z
|
||||
static G4double GetMassExcess(const G4int A, const G4int Z);
|
||||
static G4double GetMassExcess(const G4double A, const G4double Z);
|
||||
|
||||
private:
|
||||
// hidie methods to enforce using GetNuclearMass
|
||||
// Give mass of Atom A,Z
|
||||
static G4double GetAtomicMass(const G4double A, const G4double Z);
|
||||
static G4double GetAtomicMass(const G4double A, const G4double Z);
|
||||
// Give mass of Atom A,Z
|
||||
|
||||
private:
|
||||
static G4double AtomicMass(G4double A, G4double Z);
|
||||
|
||||
static G4double AtomicMass(G4double A, G4double Z);
|
||||
static G4double NuclearMass(G4double A, G4double Z);
|
||||
|
||||
static G4double NuclearMass(G4double A, G4double Z);
|
||||
static G4double BindingEnergy(G4double A, G4double Z);
|
||||
|
||||
static G4double BindingEnergy(G4double A, G4double Z);
|
||||
|
||||
static G4double MassExcess(G4double A, G4double Z);
|
||||
static G4double MassExcess(G4double A, G4double Z);
|
||||
|
||||
private:
|
||||
// table of orbit electrons mass - binding energy
|
||||
enum {MaxZ = 120};
|
||||
static G4ThreadLocal G4double electronMass[MaxZ];
|
||||
private:
|
||||
|
||||
private:
|
||||
static G4ThreadLocal G4bool isIntialized;
|
||||
static G4ThreadLocal G4double mass_proton;
|
||||
static G4ThreadLocal G4double mass_neutron;
|
||||
static G4ThreadLocal G4double mass_deuteron;
|
||||
static G4ThreadLocal G4double mass_triton;
|
||||
static G4ThreadLocal G4double mass_alpha;
|
||||
static G4ThreadLocal G4double mass_He3;
|
||||
|
||||
enum {MaxZ = 120};
|
||||
static G4ThreadLocal G4double electronMass[MaxZ];
|
||||
// table of orbit electrons mass - binding energy
|
||||
|
||||
static G4ThreadLocal G4bool isIntialized;
|
||||
static G4ThreadLocal G4double mass_proton;
|
||||
static G4ThreadLocal G4double mass_neutron;
|
||||
static G4ThreadLocal G4double mass_deuteron;
|
||||
static G4ThreadLocal G4double mass_triton;
|
||||
static G4ThreadLocal G4double mass_alpha;
|
||||
static G4ThreadLocal G4double mass_He3;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user