Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4FermiNucleiProperties Class Reference

#include <G4FermiNucleiProperties.hh>

Public Member Functions

void Initialize ()
template<typename DataSource>
void Initialize (const DataSource &dataSource)
template<typename Iter>
void Initialize (Iter begin, Iter end)
void InsertNuclei (G4FermiAtomicMass atomicMass, G4FermiChargeNumber chargeNumber, G4double mass, G4bool isStable=true)

Static Public Member Functions

static G4double GetNuclearMass (G4FermiAtomicMass atomicMass, G4FermiChargeNumber chargeNumber)
static G4bool IsStable (G4FermiAtomicMass atomicMass, G4FermiChargeNumber chargeNumber)
static G4FermiNucleiPropertiesInstance ()

Detailed Description

Definition at line 39 of file G4FermiNucleiProperties.hh.

Member Function Documentation

◆ GetNuclearMass()

G4double G4FermiNucleiProperties::GetNuclearMass ( G4FermiAtomicMass atomicMass,
G4FermiChargeNumber chargeNumber )
inlinestatic

Definition at line 62 of file G4FermiNucleiProperties.hh.

63 {
64 return Instance().GetNuclearMassImpl(atomicMass, chargeNumber);
65 }
static G4FermiNucleiProperties & Instance()

Referenced by G4VFermiFragmentAN::Initialize().

◆ Initialize() [1/3]

void G4FermiNucleiProperties::Initialize ( )
inline

Definition at line 42 of file G4FermiNucleiProperties.hh.

42{ *this = G4FermiNucleiProperties(); }

Referenced by G4FermiBreakUpAN::Initialise(), and Initialize().

◆ Initialize() [2/3]

template<typename DataSource>
void G4FermiNucleiProperties::Initialize ( const DataSource & dataSource)
inline

Definition at line 45 of file G4FermiNucleiProperties.hh.

46 {
47 Initialize(dataSource.begin(), dataSource.end());
48 }

◆ Initialize() [3/3]

template<typename Iter>
void G4FermiNucleiProperties::Initialize ( Iter begin,
Iter end )
inline

Definition at line 51 of file G4FermiNucleiProperties.hh.

52 {
53 nucleiMasses_.clear();
54 static_assert(
55 std::is_same_v<typename Iter::value_type, std::pair<const G4FermiNucleiData, G4double>>,
56 "invalid iterator");
57 for (auto it = begin; it != end; ++it) {
58 InsertNuclei(it->first.atomicMass, it->first.chargeNumber, it->second);
59 }
60 }
void InsertNuclei(G4FermiAtomicMass atomicMass, G4FermiChargeNumber chargeNumber, G4double mass, G4bool isStable=true)

◆ InsertNuclei()

void G4FermiNucleiProperties::InsertNuclei ( G4FermiAtomicMass atomicMass,
G4FermiChargeNumber chargeNumber,
G4double mass,
G4bool isStable = true )

Definition at line 92 of file G4FermiNucleiProperties.cc.

95{
96 const auto slot = GetSlot(atomicMass, chargeNumber);
97 if (slot >= nucleiMasses_.size()) {
98 nucleiMasses_.resize(slot + static_cast<std::uint32_t>(atomicMass));
99 }
100
101 nucleiMasses_[slot] = G4FermiMassData{
102 mass, // mass
103 isStable, // isStable
104 true, // isCached
105 };
106}
G4bool isStable(Cluster const *const c)
True if the cluster is stable.

Referenced by Initialize().

◆ Instance()

G4FermiNucleiProperties & G4FermiNucleiProperties::Instance ( )
inlinestatic

Definition at line 75 of file G4FermiNucleiProperties.hh.

76 {
77 static G4FermiNucleiProperties properties;
78 return properties;
79 }

Referenced by GetNuclearMass(), G4FermiBreakUpAN::Initialise(), and IsStable().

◆ IsStable()

G4bool G4FermiNucleiProperties::IsStable ( G4FermiAtomicMass atomicMass,
G4FermiChargeNumber chargeNumber )
inlinestatic

Definition at line 67 of file G4FermiNucleiProperties.hh.

68 {
69 return Instance().IsStableImpl(atomicMass, chargeNumber);
70 }

The documentation for this class was generated from the following files: