Geant4-11
Public Types | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes
G4NuclideTable Class Reference

#include <G4NuclideTable.hh>

Inheritance diagram for G4NuclideTable:
G4VIsotopeTable

Public Types

using G4IsotopeList = std::vector< G4IsotopeProperty * >
 

Public Member Functions

void AddState (G4int, G4int, G4double, G4double, G4int ionJ=0, G4double ionMu=0.0)
 
void AddState (G4int, G4int, G4double, G4int, G4double, G4int ionJ=0, G4double ionMu=0.0)
 
void AddState (G4int, G4int, G4double, G4Ions::G4FloatLevelBase, G4double, G4int ionJ=0, G4double ionMu=0.0)
 
void DumpTable (G4int Zmin=1, G4int Zmax=118)
 
std::size_t entries () const
 
 G4NuclideTable (const G4NuclideTable &)=delete
 
void GenerateNuclide ()
 
virtual G4IsotopePropertyGetIsotope (G4int Z, G4int A, G4double E, G4Ions::G4FloatLevelBase flb=G4Ions::G4FloatLevelBase::no_Float)
 
G4IsotopePropertyGetIsotopeByIndex (std::size_t idx) const
 
virtual G4IsotopePropertyGetIsotopeByIsoLvl (G4int Z, G4int A, G4int lvl=0)
 
G4double GetLevelTolerance ()
 
const G4StringGetName () const
 
std::size_t GetSizeOfIsotopeList ()
 
G4double GetThresholdOfHalfLife ()
 
G4int GetVerboseLevel () const
 
G4NuclideTableoperator= (const G4NuclideTable &)=delete
 
void SetLevelTolerance (G4double x)
 
void SetThresholdOfHalfLife (G4double)
 
void SetVerboseLevel (G4int level)
 
virtual ~G4NuclideTable ()
 

Static Public Member Functions

static G4NuclideTableGetInstance ()
 
static G4NuclideTableGetNuclideTable ()
 
static G4double GetTruncationError (G4double eex)
 
static G4double Round (G4double eex)
 
static G4double Tolerance ()
 
static G4long Truncate (G4double eex)
 

Private Types

enum  {
  idxZ =0 , idxA , idxEnergy , idxLife ,
  idxSpin , idxMu
}
 

Private Member Functions

 G4NuclideTable ()
 
G4Ions::G4FloatLevelBase StripFloatLevelBase (const G4String &)
 
G4double StripFloatLevelBase (G4double E, G4int &flbIndex)
 

Private Attributes

G4IsotopeListfIsotopeList = nullptr
 
G4double flevelTolerance = 0.0
 
G4NuclideTableMessengerfMessenger = nullptr
 
G4String fName = ""
 
G4IsotopeListfUserDefinedList = nullptr
 
std::map< G4int, std::multimap< G4double, G4IsotopeProperty * > > map_full_list
 
std::map< G4int, std::multimap< G4double, G4IsotopeProperty * > > map_pre_load_list
 
G4double minimum_threshold_of_half_life = DBL_MAX
 
G4double threshold_of_half_life = 0.0
 
G4int verboseLevel = 0
 

Detailed Description

Definition at line 52 of file G4NuclideTable.hh.

Member Typedef Documentation

◆ G4IsotopeList

Definition at line 56 of file G4NuclideTable.hh.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private
Enumerator
idxZ 
idxA 
idxEnergy 
idxLife 
idxSpin 
idxMu 

Definition at line 128 of file G4NuclideTable.hh.

Constructor & Destructor Documentation

◆ ~G4NuclideTable()

G4NuclideTable::~G4NuclideTable ( )
virtual

Definition at line 69 of file G4NuclideTable.cc.

70{
71 for (auto it=map_pre_load_list.begin(); it!=map_pre_load_list.end(); ++it)
72 {
73 it->second.clear();
74 }
75 map_pre_load_list.clear();
76
77 for (auto it=map_full_list.begin(); it!=map_full_list.end(); ++it)
78 {
79 it->second.clear();
80 }
81 map_full_list.clear();
82
83 if (fIsotopeList != nullptr)
84 {
85 for (std::size_t i = 0 ; i<fIsotopeList->size(); ++i)
86 {
87 delete (*fIsotopeList)[i];
88 }
89 fIsotopeList->clear();
90 delete fIsotopeList;
91 fIsotopeList = nullptr;
92 }
93 delete fMessenger;
94}
std::map< G4int, std::multimap< G4double, G4IsotopeProperty * > > map_full_list
std::map< G4int, std::multimap< G4double, G4IsotopeProperty * > > map_pre_load_list
G4NuclideTableMessenger * fMessenger
G4IsotopeList * fIsotopeList

References fIsotopeList, fMessenger, map_full_list, and map_pre_load_list.

◆ G4NuclideTable() [1/2]

G4NuclideTable::G4NuclideTable ( const G4NuclideTable )
delete

◆ G4NuclideTable() [2/2]

G4NuclideTable::G4NuclideTable ( )
private

Definition at line 58 of file G4NuclideTable.cc.

59 : G4VIsotopeTable("Isomer"),
62{
66}
static constexpr double eV
Definition: G4SIunits.hh:201
G4double flevelTolerance
G4double threshold_of_half_life
std::vector< G4IsotopeProperty * > G4IsotopeList
#define ns
Definition: xmlparse.cc:614

References fIsotopeList, fMessenger, and GenerateNuclide().

Member Function Documentation

◆ AddState() [1/3]

void G4NuclideTable::AddState ( G4int  ionZ,
G4int  ionA,
G4double  ionE,
G4double  ionLife,
G4int  ionJ = 0,
G4double  ionMu = 0.0 
)

Definition at line 314 of file G4NuclideTable.cc.

316{
318 {
319 G4int flbIndex = 0;
320 ionE = StripFloatLevelBase( ionE, flbIndex );
321 AddState(ionZ,ionA,ionE,flbIndex,ionLife,ionJ,ionMu);
322 }
323}
int G4int
Definition: G4Types.hh:85
void AddState(G4int, G4int, G4double, G4double, G4int ionJ=0, G4double ionMu=0.0)
G4double StripFloatLevelBase(G4double E, G4int &flbIndex)
G4bool IsMasterThread()
Definition: G4Threading.cc:124

References AddState(), G4Threading::IsMasterThread(), and StripFloatLevelBase().

Referenced by AddState().

◆ AddState() [2/3]

void G4NuclideTable::AddState ( G4int  ionZ,
G4int  ionA,
G4double  ionE,
G4int  flbIndex,
G4double  ionLife,
G4int  ionJ = 0,
G4double  ionMu = 0.0 
)

Definition at line 326 of file G4NuclideTable.cc.

329{
331 {
332 if ( fUserDefinedList == nullptr ) fUserDefinedList = new G4IsotopeList();
333
334 G4IsotopeProperty* fProperty = new G4IsotopeProperty();
335
336 // Set Isotope Property
337 fProperty->SetAtomicNumber(ionZ);
338 fProperty->SetAtomicMass(ionA);
339 fProperty->SetIsomerLevel(9);
340 fProperty->SetEnergy(ionE);
341 fProperty->SetiSpin(ionJ);
342 fProperty->SetLifeTime(ionLife);
343 fProperty->SetDecayTable(nullptr);
344 fProperty->SetMagneticMoment(ionMu);
345 fProperty->SetFloatLevelBase(flbIndex);
346
347 fUserDefinedList->push_back(fProperty);
348 fIsotopeList->push_back(fProperty);
349 }
350}
void SetAtomicMass(G4int A)
void SetDecayTable(G4DecayTable *table)
void SetFloatLevelBase(G4Ions::G4FloatLevelBase flb)
void SetEnergy(G4double E)
void SetiSpin(G4int J)
void SetAtomicNumber(G4int Z)
void SetIsomerLevel(G4int level)
void SetLifeTime(G4double T)
void SetMagneticMoment(G4double M)
G4IsotopeList * fUserDefinedList

References fIsotopeList, fUserDefinedList, G4Threading::IsMasterThread(), G4IsotopeProperty::SetAtomicMass(), G4IsotopeProperty::SetAtomicNumber(), G4IsotopeProperty::SetDecayTable(), G4IsotopeProperty::SetEnergy(), G4IsotopeProperty::SetFloatLevelBase(), G4IsotopeProperty::SetIsomerLevel(), G4IsotopeProperty::SetiSpin(), G4IsotopeProperty::SetLifeTime(), and G4IsotopeProperty::SetMagneticMoment().

◆ AddState() [3/3]

void G4NuclideTable::AddState ( G4int  ionZ,
G4int  ionA,
G4double  ionE,
G4Ions::G4FloatLevelBase  flb,
G4double  ionLife,
G4int  ionJ = 0,
G4double  ionMu = 0.0 
)

Definition at line 353 of file G4NuclideTable.cc.

356{
358 {
359 if ( fUserDefinedList == nullptr ) fUserDefinedList = new G4IsotopeList();
360
361 G4IsotopeProperty* fProperty = new G4IsotopeProperty();
362
363 // Set Isotope Property
364 fProperty->SetAtomicNumber(ionZ);
365 fProperty->SetAtomicMass(ionA);
366 fProperty->SetIsomerLevel(9);
367 fProperty->SetEnergy(ionE);
368 fProperty->SetiSpin(ionJ);
369 fProperty->SetLifeTime(ionLife);
370 fProperty->SetDecayTable(0);
371 fProperty->SetMagneticMoment(ionMu);
372 fProperty->SetFloatLevelBase( flb );
373
374 fUserDefinedList->push_back(fProperty);
375 fIsotopeList->push_back(fProperty);
376 }
377}

References fIsotopeList, fUserDefinedList, G4Threading::IsMasterThread(), G4IsotopeProperty::SetAtomicMass(), G4IsotopeProperty::SetAtomicNumber(), G4IsotopeProperty::SetDecayTable(), G4IsotopeProperty::SetEnergy(), G4IsotopeProperty::SetFloatLevelBase(), G4IsotopeProperty::SetIsomerLevel(), G4IsotopeProperty::SetiSpin(), G4IsotopeProperty::SetLifeTime(), and G4IsotopeProperty::SetMagneticMoment().

◆ DumpTable()

void G4VIsotopeTable::DumpTable ( G4int  Zmin = 1,
G4int  Zmax = 118 
)
inherited

Definition at line 83 of file G4VIsotopeTable.cc.

84{
85 G4int Z, A;
86 G4int lvl;
87 const G4int MAX_LVL=9;
88 for ( Z =Zmin; Z<=Zmax; ++Z )
89 {
90 for ( A= Z; A<=3*Z; ++A )
91 {
92 for ( lvl=0; lvl<=MAX_LVL; ++lvl )
93 {
94 G4IsotopeProperty* ptr = GetIsotope(Z,A,lvl);
95 if (ptr!=nullptr) ptr->DumpInfo();
96 }
97 }
98 }
99}
const G4int Z[17]
const G4double A[17]
virtual G4IsotopeProperty * GetIsotope(G4int Z, G4int A, G4double E, G4Ions::G4FloatLevelBase flb=G4Ions::G4FloatLevelBase::no_Float)=0

References A, G4IsotopeProperty::DumpInfo(), G4VIsotopeTable::GetIsotope(), and Z.

◆ entries()

std::size_t G4NuclideTable::entries ( ) const
inline

Definition at line 171 of file G4NuclideTable.hh.

172{
173 return ( fIsotopeList ? fIsotopeList->size() : static_cast<size_t>(0) );
174}

References fIsotopeList.

Referenced by G4IonTable::PreloadNuclide().

◆ GenerateNuclide()

void G4NuclideTable::GenerateNuclide ( )

Definition at line 186 of file G4NuclideTable.cc.

187{
189 {
190 // Need to update full list
191 char* path = std::getenv("G4ENSDFSTATEDATA");
192
193 if ( path == nullptr )
194 {
195 G4Exception("G4NuclideTable", "PART70000", FatalException,
196 "G4ENSDFSTATEDATA environment variable must be set");
197 return;
198 }
199
200 std::ifstream ifs;
201 G4String filename(path);
202 filename += "/ENSDFSTATE.dat";
203
204 ifs.open( filename.c_str() );
205 if ( !ifs.good() )
206 {
207 G4Exception("G4NuclideTable", "PART70001", FatalException,
208 "ENSDFSTATE.dat is not found.");
209 return;
210 }
211
212 G4int ionCode=0;
213 G4int iLevel=0;
214 G4int ionZ;
215 G4int ionA;
216 G4double ionE;
217 G4String ionFL;
218 G4double ionLife;
219 G4int ionJ;
220 G4double ionMu;
221
222 ifs >> ionZ >> ionA >> ionE >> ionFL >> ionLife >> ionJ >> ionMu;
223
224 while ( ifs.good() ) // Loop checking, 09.08.2015, K.Kurashige
225 {
226 if ( ionCode != 1000*ionZ + ionA )
227 {
228 iLevel = 0;
229 ionCode = 1000*ionZ + ionA;
230 }
231
232 ionE *= keV;
234 ionLife *= ns;
235 ionMu *= (joule/tesla);
236
237 if ( ( ionE == 0 && flb == G4Ions::G4FloatLevelBase::no_Float )
238 || ( threshold_of_half_life <= ionLife*std::log(2.0)
239 && ionLife*std::log(2.0) < minimum_threshold_of_half_life ) )
240 {
241 if ( ionE > 0 ) ++iLevel;
242 if ( iLevel > 9 ) iLevel=9;
243
244 G4IsotopeProperty* fProperty = new G4IsotopeProperty();
245
246 // Set Isotope Property
247 fProperty->SetAtomicNumber(ionZ);
248 fProperty->SetAtomicMass(ionA);
249 fProperty->SetIsomerLevel(iLevel);
250 fProperty->SetEnergy(ionE);
251 fProperty->SetiSpin(ionJ);
252 fProperty->SetLifeTime(ionLife);
253 fProperty->SetDecayTable(nullptr);
254 fProperty->SetMagneticMoment(ionMu);
255 fProperty->SetFloatLevelBase( flb );
256
257 fIsotopeList->push_back(fProperty);
258
259 auto itf = map_full_list.find( ionCode );
260 if ( itf == map_full_list.cend() )
261 {
262 std::multimap<G4double, G4IsotopeProperty*> aMultiMap;
263 itf = ( map_full_list.insert(
264 std::pair< G4int, std::multimap< G4double,
265 G4IsotopeProperty* > > ( ionCode, aMultiMap ) ) ).first;
266 }
267 itf -> second.insert(
268 std::pair< G4double, G4IsotopeProperty* >(ionE, fProperty) );
269 }
270 ifs >> ionZ >> ionA >> ionE >> ionFL >> ionLife >> ionJ >> ionMu;
271 }
272
274
275 }
276
277 // Clear current map
278 for ( auto it=map_pre_load_list.begin(); it!=map_pre_load_list.end(); ++it )
279 {
280 it->second.clear();
281 }
282 map_pre_load_list.clear();
283
284 // Build map based on current threshold value
285 for ( auto it = map_full_list.cbegin(); it != map_full_list.cend(); ++it )
286 {
287 G4int ionCode = it->first;
288 auto itf = map_pre_load_list.find( ionCode );
289 if ( itf == map_pre_load_list.cend() )
290 {
291 std::multimap<G4double, G4IsotopeProperty*> aMultiMap;
292 itf = ( map_pre_load_list.insert(
293 std::pair< G4int, std::multimap< G4double,
294 G4IsotopeProperty* > > (ionCode, aMultiMap) ) ).first;
295 }
296 G4int iLevel = 0;
297 for ( auto itt = it->second.cbegin(); itt != it->second.cend(); ++itt )
298 {
299 G4double exEnergy = itt->first;
300 G4double meanLife = itt->second->GetLifeTime();
301 if ( exEnergy == 0.0 || meanLife*std::log(2.0) > threshold_of_half_life )
302 {
303 if ( itt->first != 0.0 ) ++iLevel;
304 if ( iLevel > 9 ) iLevel=9;
305 itt->second->SetIsomerLevel( iLevel );
306 itf->second.insert(
307 std::pair< G4double, G4IsotopeProperty* >(exEnergy, itt->second) );
308 }
309 }
310 }
311}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
static constexpr double joule
Definition: G4SIunits.hh:189
static constexpr double tesla
Definition: G4SIunits.hh:259
static constexpr double second
Definition: G4SIunits.hh:137
static constexpr double keV
Definition: G4SIunits.hh:202
double G4double
Definition: G4Types.hh:83
G4FloatLevelBase
Definition: G4Ions.hh:83
G4double minimum_threshold_of_half_life

References FatalException, fIsotopeList, G4Exception(), joule, keV, map_full_list, map_pre_load_list, minimum_threshold_of_half_life, G4Ions::no_Float, ns, second, G4IsotopeProperty::SetAtomicMass(), G4IsotopeProperty::SetAtomicNumber(), G4IsotopeProperty::SetDecayTable(), G4IsotopeProperty::SetEnergy(), G4IsotopeProperty::SetFloatLevelBase(), G4IsotopeProperty::SetIsomerLevel(), G4IsotopeProperty::SetiSpin(), G4IsotopeProperty::SetLifeTime(), G4IsotopeProperty::SetMagneticMoment(), StripFloatLevelBase(), tesla, and threshold_of_half_life.

Referenced by G4NuclideTable(), G4IonTable::PreloadNuclide(), and SetThresholdOfHalfLife().

◆ GetInstance()

G4NuclideTable * G4NuclideTable::GetInstance ( )
static

◆ GetIsotope()

G4IsotopeProperty * G4NuclideTable::GetIsotope ( G4int  Z,
G4int  A,
G4double  E,
G4Ions::G4FloatLevelBase  flb = G4Ions::G4FloatLevelBase::no_Float 
)
virtual

Implements G4VIsotopeTable.

Definition at line 97 of file G4NuclideTable.cc.

99{
100 G4IsotopeProperty* fProperty = nullptr;
101
102 // At first searching UserDefined
103 if ( fUserDefinedList )
104 {
105 for (auto it=fUserDefinedList->cbegin(); it!=fUserDefinedList->cend(); ++it)
106 {
107 if ( Z == (*it)->GetAtomicNumber() && A == (*it)->GetAtomicMass() )
108 {
109 G4double levelE = (*it)->GetEnergy();
110 if ( levelE - flevelTolerance/2 <= E && E < levelE + flevelTolerance/2 )
111 {
112 if( flb == (*it)->GetFloatLevelBase() ) { return *it; } //found
113 }
114 }
115 }
116 }
117
118 // Searching pre-load
119 // Note: isomer level is properly set only for pre_load_list
120 //
121 G4int ionCode = 1000*Z + A;
122 auto itf = map_pre_load_list.find( ionCode );
123
124 if ( itf != map_pre_load_list.cend() )
125 {
126 auto lower_bound_itr = itf -> second.lower_bound ( E - flevelTolerance/2 );
127 G4double levelE = DBL_MAX;
128
129 while ( lower_bound_itr != itf -> second.cend() )
130 {
131 levelE = lower_bound_itr->first;
132 if ( levelE - flevelTolerance/2 <= E && E < levelE + flevelTolerance/2 )
133 {
134 if ( flb == (lower_bound_itr->second)->GetFloatLevelBase() )
135 {
136 return lower_bound_itr->second; // found
137 }
138 }
139 else
140 {
141 break;
142 }
143 ++lower_bound_itr;
144 }
145 }
146
147 return fProperty; // not found
148}
G4double GetEnergy() const
#define DBL_MAX
Definition: templates.hh:62

References A, DBL_MAX, flevelTolerance, fUserDefinedList, G4IsotopeProperty::GetEnergy(), map_pre_load_list, second, and Z.

Referenced by GetIsotopeByIsoLvl().

◆ GetIsotopeByIndex()

G4IsotopeProperty * G4NuclideTable::GetIsotopeByIndex ( std::size_t  idx) const
inline

Definition at line 177 of file G4NuclideTable.hh.

178{
179 if ( fIsotopeList && idx<fIsotopeList->size()) return (*fIsotopeList)[idx];
180 else return nullptr;
181}

References fIsotopeList.

Referenced by G4IonTable::PreloadNuclide().

◆ GetIsotopeByIsoLvl()

G4IsotopeProperty * G4NuclideTable::GetIsotopeByIsoLvl ( G4int  Z,
G4int  A,
G4int  lvl = 0 
)
virtual

Reimplemented from G4VIsotopeTable.

Definition at line 179 of file G4NuclideTable.cc.

180{
181 if(lvl==0) return GetIsotope(Z,A,0.0);
182 return nullptr;
183}
virtual G4IsotopeProperty * GetIsotope(G4int Z, G4int A, G4double E, G4Ions::G4FloatLevelBase flb=G4Ions::G4FloatLevelBase::no_Float)

References A, GetIsotope(), and Z.

◆ GetLevelTolerance()

G4double G4NuclideTable::GetLevelTolerance ( )
inline

◆ GetName()

const G4String & G4VIsotopeTable::GetName ( ) const
inlineinherited

Definition at line 101 of file G4VIsotopeTable.hh.

102{
103 return fName;
104}

References G4VIsotopeTable::fName.

Referenced by G4IonTable::RegisterIsotopeTable().

◆ GetNuclideTable()

G4NuclideTable * G4NuclideTable::GetNuclideTable ( )
static

Definition at line 52 of file G4NuclideTable.cc.

53{
54 return GetInstance();
55}
static G4NuclideTable * GetInstance()

References GetInstance().

Referenced by G4IonTable::DestroyWorkerG4IonTable(), G4IonTable::PrepareNuclideTable(), and G4IonTable::~G4IonTable().

◆ GetSizeOfIsotopeList()

std::size_t G4NuclideTable::GetSizeOfIsotopeList ( )
inline

Definition at line 165 of file G4NuclideTable.hh.

166{
167 return ( fIsotopeList ? fIsotopeList->size() : static_cast<size_t>(0) );
168}

References fIsotopeList.

◆ GetThresholdOfHalfLife()

G4double G4NuclideTable::GetThresholdOfHalfLife ( )
inline

Definition at line 147 of file G4NuclideTable.hh.

148{
150}

References threshold_of_half_life.

◆ GetTruncationError()

G4double G4NuclideTable::GetTruncationError ( G4double  eex)
static

Definition at line 151 of file G4NuclideTable.cc.

152{
154 return eex - (G4long)(eex/tolerance)*tolerance;
155}
long G4long
Definition: G4Types.hh:87
G4double GetLevelTolerance()

References GetInstance(), and GetLevelTolerance().

◆ GetVerboseLevel()

G4int G4VIsotopeTable::GetVerboseLevel ( ) const
inlineinherited

Definition at line 107 of file G4VIsotopeTable.hh.

108{
109 return verboseLevel;
110}

References G4VIsotopeTable::verboseLevel.

◆ operator=()

G4NuclideTable & G4NuclideTable::operator= ( const G4NuclideTable )
delete

◆ Round()

G4double G4NuclideTable::Round ( G4double  eex)
static

Definition at line 158 of file G4NuclideTable.cc.

159{
161 return round(eex/tolerance)*tolerance;
162}

References GetInstance(), and GetLevelTolerance().

◆ SetLevelTolerance()

void G4NuclideTable::SetLevelTolerance ( G4double  x)
inline

Definition at line 153 of file G4NuclideTable.hh.

154{
155 flevelTolerance = x;
156}

References flevelTolerance.

Referenced by G4NuclideTableMessenger::SetNewValue().

◆ SetThresholdOfHalfLife()

void G4NuclideTable::SetThresholdOfHalfLife ( G4double  t)

◆ SetVerboseLevel()

void G4VIsotopeTable::SetVerboseLevel ( G4int  level)
inlineinherited

Definition at line 113 of file G4VIsotopeTable.hh.

114{
115 verboseLevel = level;
116}

References G4VIsotopeTable::verboseLevel.

◆ StripFloatLevelBase() [1/2]

G4Ions::G4FloatLevelBase G4NuclideTable::StripFloatLevelBase ( const G4String sFLB)
private

Definition at line 399 of file G4NuclideTable.cc.

400{
401 if ( sFLB.size() < 1 || 2 < sFLB.size() )
402 {
403 G4String text;
404 text += sFLB;
405 text += " is not valid indicator of G4Ions::G4FloatLevelBase.\n";
406 text += "You may use a wrong version of ENSDFSTATE data.\n";
407 text += "Please use G4ENSDFSTATE-2.0 or later.";
408
409 G4Exception( "G4NuclideTable", "PART70002", FatalException, text );
410 }
412 if ( !(sFLB == "-") )
413 {
414 flb = G4Ions::FloatLevelBase( sFLB.back() );
415 }
416 return flb;
417}
#define noFloat
Definition: G4Ions.hh:112
static G4Ions::G4FloatLevelBase FloatLevelBase(char flbChar)
Definition: G4Ions.cc:103

References FatalException, G4Ions::FloatLevelBase(), G4Exception(), and noFloat.

◆ StripFloatLevelBase() [2/2]

G4double G4NuclideTable::StripFloatLevelBase ( G4double  E,
G4int flbIndex 
)
private

Definition at line 390 of file G4NuclideTable.cc.

391{
392 G4double rem = std::fmod(E/(1.0E-3*eV),10.0);
393 flbIndex = G4int(rem);
394 return E-rem;
395}

References eV.

Referenced by AddState(), and GenerateNuclide().

◆ Tolerance()

G4double G4NuclideTable::Tolerance ( )
static

Definition at line 172 of file G4NuclideTable.cc.

173{
175}

References GetInstance(), and GetLevelTolerance().

◆ Truncate()

G4long G4NuclideTable::Truncate ( G4double  eex)
static

Definition at line 165 of file G4NuclideTable.cc.

166{
168 return (G4long)(eex/tolerance);
169}

References GetInstance(), and GetLevelTolerance().

Field Documentation

◆ fIsotopeList

G4IsotopeList* G4NuclideTable::fIsotopeList = nullptr
private

◆ flevelTolerance

G4double G4NuclideTable::flevelTolerance = 0.0
private

Definition at line 138 of file G4NuclideTable.hh.

Referenced by GetIsotope(), GetLevelTolerance(), and SetLevelTolerance().

◆ fMessenger

G4NuclideTableMessenger* G4NuclideTable::fMessenger = nullptr
private

Definition at line 139 of file G4NuclideTable.hh.

Referenced by G4NuclideTable(), and ~G4NuclideTable().

◆ fName

G4String G4VIsotopeTable::fName = ""
privateinherited

Definition at line 92 of file G4VIsotopeTable.hh.

Referenced by G4VIsotopeTable::GetName(), and G4VIsotopeTable::operator=().

◆ fUserDefinedList

G4IsotopeList* G4NuclideTable::fUserDefinedList = nullptr
private

Definition at line 119 of file G4NuclideTable.hh.

Referenced by AddState(), and GetIsotope().

◆ map_full_list

std::map<G4int, std::multimap<G4double, G4IsotopeProperty*> > G4NuclideTable::map_full_list
private

Definition at line 124 of file G4NuclideTable.hh.

Referenced by GenerateNuclide(), and ~G4NuclideTable().

◆ map_pre_load_list

std::map<G4int, std::multimap<G4double, G4IsotopeProperty*> > G4NuclideTable::map_pre_load_list
private

Definition at line 121 of file G4NuclideTable.hh.

Referenced by GenerateNuclide(), GetIsotope(), and ~G4NuclideTable().

◆ minimum_threshold_of_half_life

G4double G4NuclideTable::minimum_threshold_of_half_life = DBL_MAX
private

Definition at line 116 of file G4NuclideTable.hh.

Referenced by GenerateNuclide().

◆ threshold_of_half_life

G4double G4NuclideTable::threshold_of_half_life = 0.0
private

◆ verboseLevel

G4int G4VIsotopeTable::verboseLevel = 0
privateinherited

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