Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions
G4NuclideTable Class Reference

#include <G4NuclideTable.hh>

Inheritance diagram for G4NuclideTable:
G4VIsotopeTable

Public Types

typedef std::vector
< G4IsotopeProperty * > 
G4IsotopeList
 

Public Member Functions

virtual ~G4NuclideTable ()
 
void GenerateNuclide ()
 
void SetThresholdOfHalfLife (G4double t)
 
G4double GetThresholdOfHalfLife ()
 
void AddState (G4int, G4int, G4double, G4double, G4int, G4double)
 
size_t GetSizeOfIsotopeList ()
 
virtual G4IsotopePropertyGetIsotope (G4int Z, G4int A, G4double E)
 
virtual G4IsotopePropertyGetIsotopeByIsoLvl (G4int Z, G4int A, G4int lvl=0)
 
size_t entries () const
 
G4IsotopePropertyGetIsotopeByIndex (size_t idx) const
 
- Public Member Functions inherited from G4VIsotopeTable
 G4VIsotopeTable ()
 
 G4VIsotopeTable (const G4String &)
 
 G4VIsotopeTable (const G4VIsotopeTable &)
 
G4VIsotopeTableoperator= (const G4VIsotopeTable &)
 
virtual ~G4VIsotopeTable ()
 
G4int GetVerboseLevel () const
 
void SetVerboseLevel (G4int level)
 
void DumpTable (G4int Zmin=1, G4int Zmax=118)
 
const G4StringGetName () const
 

Static Public Member Functions

static G4NuclideTableGetInstance ()
 
static G4NuclideTableGetNuclideTable ()
 
static G4double GetTrancationError (G4double eex)
 
static G4double Round (G4double eex)
 
static G4long Trancate (G4double eex)
 
static G4double Tolerance ()
 

Protected Member Functions

void FillHardCodeList ()
 

Detailed Description

Definition at line 55 of file G4NuclideTable.hh.

Member Typedef Documentation

Definition at line 70 of file G4NuclideTable.hh.

Constructor & Destructor Documentation

G4NuclideTable::~G4NuclideTable ( )
virtual

Definition at line 72 of file G4NuclideTable.cc.

73 {
74  if (fIsotopeList!=0) {
75  for (size_t i = 0 ; i<fIsotopeList->size(); i++) {
76  delete (*fIsotopeList)[i];
77  }
78  fIsotopeList->clear();
79  delete fIsotopeList;
80  fIsotopeList = 0;
81  }
82 
83  for ( std::map< G4int , std::multimap< G4double , G4IsotopeProperty* > >::iterator
84  it = map_pre_load_list.begin(); it != map_pre_load_list.end(); it++ ) {
85  it->second.clear();
86  }
87  map_pre_load_list.clear();
88 
89  for ( std::map< G4int , std::multimap< G4double , G4IsotopeProperty* > >::iterator
90  it = map_hard_code_list.begin(); it != map_hard_code_list.end(); it++ ) {
91  for ( std::multimap< G4double , G4IsotopeProperty* >::iterator
92  itt = it->second.begin(); itt != it->second.end(); itt++ ) {
93  delete itt->second;
94  }
95  it->second.clear();
96  }
97  map_hard_code_list.clear();
98 
99  for ( std::map< G4int , std::multimap< G4double , G4IsotopeProperty* > >::iterator
100  it = map_full_list.begin(); it != map_full_list.end(); it++ ) {
101  for ( std::multimap< G4double , G4IsotopeProperty* >::iterator
102  itt = it->second.begin(); itt != it->second.end(); itt++ ) {
103  delete itt->second;
104  }
105  it->second.clear();
106  }
107  map_full_list.clear();
108 }
int G4int
Definition: G4Types.hh:78

Member Function Documentation

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

Definition at line 492 of file G4NuclideTable.cc.

References G4IsotopeProperty::SetAtomicMass(), G4IsotopeProperty::SetAtomicNumber(), G4IsotopeProperty::SetDecayTable(), G4IsotopeProperty::SetEnergy(), G4IsotopeProperty::SetIsomerLevel(), G4IsotopeProperty::SetiSpin(), G4IsotopeProperty::SetLifeTime(), and G4IsotopeProperty::SetMagneticMoment().

493 {
494  if ( fUserDefinedList == NULL ) fUserDefinedList = new G4IsotopeList();
495 
496  G4IsotopeProperty* fProperty = new G4IsotopeProperty();
497 
498  // Set Isotope Property
499  fProperty->SetAtomicNumber(ionZ);
500  fProperty->SetAtomicMass(ionA);
501  fProperty->SetIsomerLevel(9);
502  fProperty->SetEnergy(ionE);
503  fProperty->SetiSpin(ionJ);
504  fProperty->SetLifeTime(ionLife);
505  fProperty->SetDecayTable(0);
506  fProperty->SetMagneticMoment(ionMu);
507 
508  fUserDefinedList->push_back(fProperty);
509 
510 }
void SetAtomicMass(G4int A)
std::vector< G4IsotopeProperty * > G4IsotopeList
void SetiSpin(G4int J)
void SetMagneticMoment(G4double M)
void SetLifeTime(G4double T)
void SetEnergy(G4double E)
void SetDecayTable(G4DecayTable *table)
void SetAtomicNumber(G4int Z)
void SetIsomerLevel(G4int level)
size_t G4NuclideTable::entries ( ) const
inline

Definition at line 158 of file G4NuclideTable.hh.

Referenced by G4IonTable::PreloadNuclide().

159 {
160  return fIsotopeList->size();
161 }
void G4NuclideTable::FillHardCodeList ( )
protected

Definition at line 246 of file G4NuclideTable.cc.

References python.hepunit::joule, python.hepunit::keV, ns, python.hepunit::second, G4IsotopeProperty::SetAtomicMass(), G4IsotopeProperty::SetAtomicNumber(), G4IsotopeProperty::SetDecayTable(), G4IsotopeProperty::SetEnergy(), G4IsotopeProperty::SetIsomerLevel(), G4IsotopeProperty::SetiSpin(), G4IsotopeProperty::SetLifeTime(), G4IsotopeProperty::SetMagneticMoment(), and python.hepunit::tesla.

247 {
248  for (size_t i=0; i<nEntries_ground_state; i++) {
249 
250  G4int ionZ = (G4int)groundStateTable[i][idxZ];
251  G4int ionA = (G4int)groundStateTable[i][idxA];
252  G4int lvl = 0; // ground state
253  G4double ionE = groundStateTable[i][idxEnergy]*keV;
254  G4double ionLife = groundStateTable[i][idxLife]*ns;
255  G4int ionJ = (G4int)(groundStateTable[i][idxSpin]);
256  G4double ionMu = groundStateTable[i][idxMu]*(joule/tesla);
257 
258  G4int ionCode = 1000*ionZ + ionA;
259 
260  G4IsotopeProperty* fProperty = new G4IsotopeProperty();
261 
262  // Set Isotope Property
263  fProperty->SetAtomicNumber(ionZ);
264  fProperty->SetAtomicMass(ionA);
265  fProperty->SetIsomerLevel(lvl);
266  fProperty->SetEnergy(ionE);
267  fProperty->SetiSpin(ionJ);
268  fProperty->SetLifeTime(ionLife);
269  fProperty->SetDecayTable(0);
270  fProperty->SetMagneticMoment(ionMu);
271 
272  if ( map_hard_code_list.find ( ionCode ) == map_hard_code_list.end() ) {
273  std::multimap<G4double, G4IsotopeProperty*> aMultiMap;
274  map_hard_code_list.insert( std::pair< G4int , std::multimap< G4double , G4IsotopeProperty* > > ( ionCode , aMultiMap ) );
275  }
276  map_hard_code_list.find ( ionCode ) -> second.insert( std::pair< G4double, G4IsotopeProperty* >( ionE , fProperty ) );
277 
278  }
279 
280  for (size_t i=0; i<nEntries_excite_state; i++) {
281 
282  G4int ionZ = (G4int)exciteStateTable[i][idxZ];
283  G4int ionA = (G4int)exciteStateTable[i][idxA];
284  G4double ionE = exciteStateTable[i][idxEnergy]*keV;
285  G4double ionLife = exciteStateTable[i][idxLife]*ns;
286  G4int ionJ = (G4int)(exciteStateTable[i][idxSpin]);
287  G4double ionMu = exciteStateTable[i][idxMu]*(joule/tesla);
288 
289  G4int ionCode = 1000*ionZ + ionA;
290 
291  G4IsotopeProperty* fProperty = new G4IsotopeProperty();
292 
293  // Set Isotope Property
294  fProperty->SetAtomicNumber(ionZ);
295  fProperty->SetAtomicMass(ionA);
296  fProperty->SetIsomerLevel(9);
297  fProperty->SetEnergy(ionE);
298  fProperty->SetiSpin(ionJ);
299  fProperty->SetLifeTime(ionLife);
300  fProperty->SetDecayTable(0);
301  fProperty->SetMagneticMoment(ionMu);
302 
303  if ( map_hard_code_list.find ( ionCode ) == map_hard_code_list.end() ) {
304  std::multimap<G4double, G4IsotopeProperty*> aMultiMap;
305  map_hard_code_list.insert( std::pair< G4int , std::multimap< G4double , G4IsotopeProperty* > > ( ionCode , aMultiMap ) );
306  }
307  map_hard_code_list.find ( ionCode ) -> second.insert( std::pair< G4double, G4IsotopeProperty* >( ionE , fProperty ) );
308 
309  }
310 }
void SetAtomicMass(G4int A)
int G4int
Definition: G4Types.hh:78
void SetiSpin(G4int J)
void SetMagneticMoment(G4double M)
void SetLifeTime(G4double T)
void SetEnergy(G4double E)
void SetDecayTable(G4DecayTable *table)
double G4double
Definition: G4Types.hh:76
void SetAtomicNumber(G4int Z)
#define ns
Definition: xmlparse.cc:597
void SetIsomerLevel(G4int level)
void G4NuclideTable::GenerateNuclide ( )

Definition at line 313 of file G4NuclideTable.cc.

References FatalException, G4Exception(), python.hepunit::joule, python.hepunit::keV, ns, python.hepunit::second, G4IsotopeProperty::SetAtomicMass(), G4IsotopeProperty::SetAtomicNumber(), G4IsotopeProperty::SetDecayTable(), G4IsotopeProperty::SetEnergy(), G4IsotopeProperty::SetIsomerLevel(), G4IsotopeProperty::SetiSpin(), G4IsotopeProperty::SetLifeTime(), G4IsotopeProperty::SetMagneticMoment(), and python.hepunit::tesla.

Referenced by G4IonTable::PreloadNuclide().

314 {
315 
316  if( fIsotopeList !=0 ) return;
317  fIsotopeList = new G4IsotopeList();
318 
319  for (size_t i=0; i<nEntries_ground_state; i++) {
320 
321  G4int ionZ = (G4int)groundStateTable[i][idxZ];
322  G4int ionA = (G4int)groundStateTable[i][idxA];
323  G4int lvl = 0; // ground state
324  G4double ionE = groundStateTable[i][idxEnergy]*keV;
325  G4double ionLife = groundStateTable[i][idxLife]*ns;
326  G4int ionJ = (G4int)(groundStateTable[i][idxSpin]);
327  G4double ionMu = groundStateTable[i][idxMu]*(joule/tesla);
328 
329  if ( ionLife < 0.0 || ionLife*std::log(2.0) > threshold_of_half_life ) {
330 
331  G4IsotopeProperty* fProperty = new G4IsotopeProperty();
332 
333  // Set Isotope Property
334  fProperty->SetAtomicNumber(ionZ);
335  fProperty->SetAtomicMass(ionA);
336  fProperty->SetIsomerLevel(lvl);
337  fProperty->SetEnergy(ionE);
338  fProperty->SetiSpin(ionJ);
339  fProperty->SetLifeTime(ionLife);
340  fProperty->SetDecayTable(0);
341  fProperty->SetMagneticMoment(ionMu);
342 
343  //G4cout << ionZ << " " << ionA << " " << lvl << " " << ionE/keV << " [keV]" << G4endl;
344  fIsotopeList->push_back(fProperty);
345 
346  G4int ionCode = 1000*ionZ + ionA;
347  if ( map_pre_load_list.find ( ionCode ) == map_pre_load_list.end() ) {
348  std::multimap<G4double, G4IsotopeProperty*> aMultiMap;
349  map_pre_load_list.insert( std::pair< G4int , std::multimap< G4double , G4IsotopeProperty* > > ( ionCode , aMultiMap ) );
350  }
351  map_pre_load_list.find ( ionCode ) -> second.insert( std::pair< G4double, G4IsotopeProperty* >( ionE , fProperty ) );
352 
353  }
354  }
355 
356  if ( threshold_of_half_life >= 1.0*ns ) {
357 
358  G4int ionCode=0;
359  G4int iLevel=0;
360  G4double previousE=0.0;
361 
362  for (size_t i=0; i<nEntries_excite_state; i++) {
363 
364  G4int ionZ = (G4int)exciteStateTable[i][idxZ];
365  G4int ionA = (G4int)exciteStateTable[i][idxA];
366  if ( ionCode != 1000*ionZ + ionA ) {
367  previousE=0.0;
368  iLevel = 0;
369  ionCode = 1000*ionZ + ionA;
370  }
371 
372  G4double ionE = exciteStateTable[i][idxEnergy]*keV;
373  G4double ionLife = exciteStateTable[i][idxLife]*ns;
374  G4int ionJ = (G4int)(exciteStateTable[i][idxSpin]);
375  G4double ionMu = exciteStateTable[i][idxMu]*(joule/tesla);
376 
377  if (( ionLife < 0.0 || ionLife > threshold_of_half_life )
378  && (ionE > levelTolerance+previousE)) {
379  previousE = ionE;
380  iLevel++;
381  if ( iLevel > 9 ) iLevel=9;
382  //G4cout << ionZ << " " << ionA << " " << iLevel << " " << ionE/keV << " [keV]" << G4endl;
383 
384  G4IsotopeProperty* fProperty = new G4IsotopeProperty();
385 
386  // Set Isotope Property
387  fProperty->SetAtomicNumber(ionZ);
388  fProperty->SetAtomicMass(ionA);
389  fProperty->SetIsomerLevel(iLevel);
390  fProperty->SetEnergy(ionE);
391  fProperty->SetiSpin(ionJ);
392  fProperty->SetLifeTime(ionLife);
393  fProperty->SetDecayTable(0);
394  fProperty->SetMagneticMoment(ionMu);
395 
396  fIsotopeList->push_back(fProperty);
397 
398  if ( map_pre_load_list.find ( ionCode ) == map_pre_load_list.end() ) {
399  std::multimap<G4double, G4IsotopeProperty*> aMultiMap;
400  map_pre_load_list.insert( std::pair< G4int , std::multimap< G4double , G4IsotopeProperty* > > ( ionCode , aMultiMap ) );
401  }
402  map_pre_load_list.find ( ionCode ) -> second.insert( std::pair< G4double, G4IsotopeProperty* >( ionE , fProperty ) );
403 
404  }
405  }
406  } else {
407 
408  char* path = getenv("G4ENSDFSTATEDATA");
409 
410  if ( !path ) {
411  G4Exception("G4NuclideTable", "PART70000",
412  FatalException, "G4ENSDFSTATEDATA environment variable must be set");
413  }
414 
415  std::fstream ifs;
416  G4String filename(path);
417  filename += "/ENSDFSTATE.dat";
418 
419  ifs.open( filename.c_str() );
420 
421  if ( !ifs.good() ) {
422  G4Exception("G4NuclideTable", "PART70001",
423  FatalException, "ENSDFSTATE.dat is not found.");
424  }
425 
426 
427  G4int ionCode=0;
428  G4int iLevel=0;
429 
430  G4int ionZ;
431  G4int ionA;
432  G4double ionE;
433  G4double ionLife;
434  G4int ionJ;
435  G4double ionMu;
436 
437  ifs >> ionZ >> ionA >> ionE >> ionLife >> ionJ >> ionMu;
438 
439  while ( ifs.good() ) {
440 
441  if ( ionCode != 1000*ionZ + ionA ) {
442  iLevel = 0;
443  ionCode = 1000*ionZ + ionA;
444  }
445 
446  ionE *= keV;
447  ionLife *= ns;
448  ionMu *= (joule/tesla);
449 
450  //if ( ionLife == -1 || ionLife > threshold_of_half_life ) {
451  if ( ionLife*std::log(2.0) > threshold_of_half_life && ionE != 0 ) {
452 
453  iLevel++;
454  if ( iLevel > 9 ) iLevel=9;
455  //G4cout << ionZ << " " << ionA << " " << iLevel << " " << ionE/keV << " [keV]" << G4endl;
456 
457  G4IsotopeProperty* fProperty = new G4IsotopeProperty();
458 
459  // Set Isotope Property
460  fProperty->SetAtomicNumber(ionZ);
461  fProperty->SetAtomicMass(ionA);
462  fProperty->SetIsomerLevel(iLevel);
463  fProperty->SetEnergy(ionE);
464  fProperty->SetiSpin(ionJ);
465  fProperty->SetLifeTime(ionLife);
466  fProperty->SetDecayTable(0);
467  fProperty->SetMagneticMoment(ionMu);
468 
469  fIsotopeList->push_back(fProperty);
470 
471  if ( map_pre_load_list.find ( ionCode ) == map_pre_load_list.end() ) {
472  std::multimap<G4double, G4IsotopeProperty*> aMultiMap;
473  map_pre_load_list.insert( std::pair< G4int , std::multimap< G4double , G4IsotopeProperty* > > ( ionCode , aMultiMap ) );
474  }
475  map_pre_load_list.find ( ionCode ) -> second.insert( std::pair< G4double, G4IsotopeProperty* >( ionE , fProperty ) );
476 
477  }
478 
479  ifs >> ionZ >> ionA >> ionE >> ionLife >> ionJ >> ionMu;
480  }
481 
482  }
483 
484  if ( fUserDefinedList != NULL ) {
485  for ( G4IsotopeList::iterator it = fUserDefinedList->begin() ; it != fUserDefinedList->end() ; it++ ) {
486  fIsotopeList->push_back( *it );
487  }
488  }
489 
490 }
void SetAtomicMass(G4int A)
std::vector< G4IsotopeProperty * > G4IsotopeList
int G4int
Definition: G4Types.hh:78
void SetiSpin(G4int J)
void SetMagneticMoment(G4double M)
void SetLifeTime(G4double T)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
void SetEnergy(G4double E)
void SetDecayTable(G4DecayTable *table)
double G4double
Definition: G4Types.hh:76
void SetAtomicNumber(G4int Z)
#define ns
Definition: xmlparse.cc:597
void SetIsomerLevel(G4int level)
G4NuclideTable * G4NuclideTable::GetInstance ( void  )
static

Definition at line 55 of file G4NuclideTable.cc.

Referenced by GetNuclideTable().

55  {
56  static G4NuclideTable instance;
57  return &instance;
58 }
G4IsotopeProperty * G4NuclideTable::GetIsotope ( G4int  Z,
G4int  A,
G4double  E 
)
virtual

Implements G4VIsotopeTable.

Definition at line 112 of file G4NuclideTable.cc.

References DBL_MAX, python.hepunit::joule, python.hepunit::keV, ns, python.hepunit::second, and python.hepunit::tesla.

Referenced by GetIsotopeByIsoLvl(), and G4IonTable::GetLifeTime().

113 {
114 
115  G4IsotopeProperty* fProperty = 0;
116  G4int ionCode = 1000*Z + A;
117 
118  //Serching pre-load
119  //Note: isomer level is properly set only for pre_load_list.
120  if ( map_pre_load_list.find( ionCode ) != map_pre_load_list.end() ) {
121 
122  std::multimap< G4double , G4IsotopeProperty* >::iterator lower_bound_itr =
123  map_pre_load_list.find( ionCode ) -> second.lower_bound ( E - levelTolerance/2 );
124 
125  //std::multimap< G4double , G4IsotopeProperty* >::iterator upper_bound_itr =
126  //map_pre_load_list.find( ionCode ) -> second.upper_bound ( E );
127 
128  G4double levelE = DBL_MAX;
129  if ( lower_bound_itr != map_pre_load_list.find( ionCode ) -> second.end() ) {
130  levelE = lower_bound_itr->first;
131  if ( levelE - levelTolerance/2 <= E && E < levelE + levelTolerance/2 ) {
132  return lower_bound_itr->second; // found
133  }
134  }
135  }
136 
137  //Searching hard-code
138  if ( map_hard_code_list.find( ionCode ) != map_hard_code_list.end() ) {
139  std::multimap< G4double , G4IsotopeProperty* >::iterator lower_bound_itr =
140  map_hard_code_list.find( ionCode ) -> second.lower_bound ( E - levelTolerance/2 );
141 
142  //std::multimap< G4double , G4IsotopeProperty* >::iterator upper_bound_itr =
143  //map_pre_load_list.find( ionCode ) -> second.upper_bound ( E );
144 
145  G4double levelE = DBL_MAX;
146  if ( lower_bound_itr != map_hard_code_list.find( ionCode ) -> second.end() ) {
147  levelE = lower_bound_itr->first;
148  if ( levelE - levelTolerance/2 <= E && E < levelE + levelTolerance/2 ) {
149  return lower_bound_itr->second; // found
150  }
151  }
152  }
153 
154  //Searching big-list
155  char* path = getenv("G4ENSDFSTATEDATA");
156 
157  if ( !path ) {
158  return fProperty; // not found;
159  }
160 
161  if ( map_full_list.find( ionCode ) == map_full_list.end() ) {
162 
163  std::multimap<G4double, G4IsotopeProperty*> aMultiMap;
164  map_full_list.insert( std::pair< G4int , std::multimap< G4double , G4IsotopeProperty* > > ( ionCode , aMultiMap ) );
165 
166  std::fstream ifs;
167  G4String filename(path);
168  filename += "/ENSDFSTATE.dat";
169  ifs.open( filename.c_str() );
170 
171  G4bool reading_target = false;
172 
173  G4int ionZ;
174  G4int ionA;
175  G4double ionE;
176  G4double ionLife;
177  G4int ionJ;
178  G4double ionMu;
179 
180  ifs >> ionZ >> ionA >> ionE >> ionLife >> ionJ >> ionMu;
181 
182  while ( ifs.good() ) {
183 
184  if ( ionZ == Z && ionA == A ) {
185 
186  reading_target = true;
187 
188  ionE *= keV;
189  ionLife *= ns;
190  ionMu *= (joule/tesla);
191 
192  G4IsotopeProperty* property = new G4IsotopeProperty();
193 
194  G4int iLevel=9;
195  property->SetAtomicNumber(ionZ);
196  property->SetAtomicMass(ionA);
197  property->SetIsomerLevel(iLevel);
198  property->SetEnergy(ionE);
199  property->SetiSpin(ionJ);
200  property->SetLifeTime(ionLife);
201  property->SetMagneticMoment(ionMu);
202 
203  map_full_list.find ( ionCode ) -> second.insert( std::pair< G4double, G4IsotopeProperty* >( ionE , property ) );
204 
205  } else if ( reading_target == true ) {
206  ifs.close();
207  break;
208  }
209 
210  ifs >> ionZ >> ionA >> ionE >> ionLife >> ionJ >> ionMu;
211  }
212 
213  ifs.close();
214  }
215 
216 
217  if ( map_full_list.find( ionCode ) != map_full_list.end() ) {
218 
219  std::multimap< G4double , G4IsotopeProperty* >::iterator lower_bound_itr =
220  map_full_list.find( ionCode ) -> second.lower_bound ( E - levelTolerance/2 );
221 
222  //std::multimap< G4double , G4IsotopeProperty* >::iterator upper_bound_itr =
223  //map_full_list.find( ionCode ) -> second.upper_bound ( E - levelTolerance/2 );
224 
225  G4double levelE = DBL_MAX;
226  if ( lower_bound_itr != map_full_list.find( ionCode ) -> second.end() ) {
227  levelE = lower_bound_itr->first;
228  if ( levelE - levelTolerance/2 < E && E < levelE + levelTolerance/2 ) {
229  return lower_bound_itr->second; // found
230  }
231  }
232  }
233 
234  return fProperty; // not found;
235 }
int G4int
Definition: G4Types.hh:78
bool G4bool
Definition: G4Types.hh:79
double G4double
Definition: G4Types.hh:76
#define DBL_MAX
Definition: templates.hh:83
#define ns
Definition: xmlparse.cc:597
G4IsotopeProperty * G4NuclideTable::GetIsotopeByIndex ( size_t  idx) const
inline

Definition at line 164 of file G4NuclideTable.hh.

Referenced by G4IonTable::PreloadNuclide().

165 {
166  if (idx<fIsotopeList->size()) return (*fIsotopeList)[idx];
167  else return 0;
168 }
G4IsotopeProperty * G4NuclideTable::GetIsotopeByIsoLvl ( G4int  Z,
G4int  A,
G4int  lvl = 0 
)
virtual

Reimplemented from G4VIsotopeTable.

Definition at line 239 of file G4NuclideTable.cc.

References GetIsotope().

240 {
241  if(lvl==0) return GetIsotope(Z,A,0.0);
242  return (G4IsotopeProperty*)0;
243 }
virtual G4IsotopeProperty * GetIsotope(G4int Z, G4int A, G4double E)
static G4NuclideTable* G4NuclideTable::GetNuclideTable ( )
inlinestatic

Definition at line 70 of file G4NuclideTable.hh.

References GetInstance().

Referenced by G4IonTable::PreloadNuclide(), and G4IonTable::~G4IonTable().

70 { return GetInstance(); };
static G4NuclideTable * GetInstance()
size_t G4NuclideTable::GetSizeOfIsotopeList ( )
inline

Definition at line 97 of file G4NuclideTable.hh.

97 { return fIsotopeList->size(); };
G4double G4NuclideTable::GetThresholdOfHalfLife ( )
inline

Definition at line 87 of file G4NuclideTable.hh.

87 { return threshold_of_half_life; };
static G4double G4NuclideTable::GetTrancationError ( G4double  eex)
inlinestatic

Definition at line 119 of file G4NuclideTable.hh.

120  { return eex - (G4long)(eex/levelTolerance)*levelTolerance; }
long G4long
Definition: G4Types.hh:80
static G4double G4NuclideTable::Round ( G4double  eex)
inlinestatic

Definition at line 121 of file G4NuclideTable.hh.

Referenced by G4IonTable::CreateIon().

122  { return (G4long)(eex/levelTolerance)*levelTolerance; }
long G4long
Definition: G4Types.hh:80
void G4NuclideTable::SetThresholdOfHalfLife ( G4double  t)
inline

Definition at line 86 of file G4NuclideTable.hh.

86 { threshold_of_half_life=t;};
static G4double G4NuclideTable::Tolerance ( )
inlinestatic

Definition at line 125 of file G4NuclideTable.hh.

126  { return levelTolerance; }
static G4long G4NuclideTable::Trancate ( G4double  eex)
inlinestatic

Definition at line 123 of file G4NuclideTable.hh.

124  { return (G4long)(eex/levelTolerance); }
long G4long
Definition: G4Types.hh:80

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