EGSnrc C++ class library  Report PIRS-898 (2021)
Iwan Kawrakow, Ernesto Mainegra-Hing, Frederic Tessier, Reid Townson and Blake Walters
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
EGS_Ensdf Class Reference

The ensdf class for reading ensdf format data files. More...

#include <egs_ensdf.h>

Public Member Functions

 EGS_Ensdf (const string nuclide, const string ensdf_filename="", const string relaxType="eadl", const bool allowMultiTrans=false, int verbosity=1)
 Construct an ensdf object. More...
 
 ~EGS_Ensdf ()
 Destructor.
 
vector< Record * > getRecords () const
 
vector< BetaRecordLeaf * > getBetaRecords () const
 
vector< ParentRecord * > getParentRecords () const
 
vector< LevelRecord * > getLevelRecords () const
 
vector< AlphaRecord * > getAlphaRecords () const
 
vector< GammaRecord * > getGammaRecords () const
 
vector< GammaRecord * > getMetastableGammaRecords () const
 
vector< GammaRecord * > getUncorrelatedGammaRecords () const
 
vector< double > getXRayIntensities () const
 
vector< double > getXRayEnergies () const
 
vector< double > getAugerIntensities () const
 
vector< double > getAugerEnergies () const
 
void normalizeIntensities ()
 

Public Attributes

string radionuclide
 
int verbose
 
string relaxationType
 
unsigned short int Z
 
double decayDiscrepancy
 
bool allowMultiTransition
 

Protected Member Functions

unsigned short int findAtomicWeight (string element)
 
void parseEnsdf (vector< string > ensdf)
 
void buildRecords ()
 
void getEmissionsFromComments ()
 

Protected Attributes

ifstream ensdf_file
 
unsigned short int A
 
vector< Record * > myRecords
 
vector< CommentRecord * > myCommentRecords
 
vector< ParentRecord * > myParentRecords
 
vector< NormalizationRecord * > myNormalizationRecords
 
vector< LevelRecord * > myLevelRecords
 
vector< BetaRecordLeaf * > myBetaRecords
 
vector< BetaMinusRecord * > myBetaMinusRecords
 
vector< BetaPlusRecord * > myBetaPlusRecords
 
vector< AlphaRecord * > myAlphaRecords
 
vector< GammaRecord * > myGammaRecords
 
vector< GammaRecord * > myMetastableGammaRecords
 
vector< GammaRecord * > myUncorrelatedGammaRecords
 

Detailed Description

The ensdf class for reading ensdf format data files.

Parses decay spectrum file in ensdf format, and builds the decay scheme into an object oriented tree-like structure. This decay structure is useful for EGS_RadionuclideSpectrum used by EGS_RadionuclideSource.

Note: Uncertainties on values are ignored. The energies and intensities for various emissions are taken as is. Very low probability emissions (<1e-10) are discarded.

When processing an ensdf file, only the following records are considered: Comment, Parent, Normalization, Level, Beta-, EC / Beta+, Alpha, Gamma.

When the input 'atomic relaxations = ensdf' in EGS_RadionuclideSpectrum, the X-Ray fluorescence and Auger emissions are obtained from ensdf Comment records. This assumes a particular format for the data currently used by the LNHB, which may or may not be forward compatible. When using this option, be aware that fluorescent photons and Auger emissions are modeled statistically. In other words, the relaxation emissions are not correlated with specific disintegration events. If you are coincidence counting, use 'atomic relaxations = eadl'.

There are a few nuances to the data interpretation with 'atomic relaxations = ensdf'. If a single emission intensity value is present for a combination of lines (where multiple energies are provided), then the average energy of the lines is used. For example, in the case below a single line of energy 97.4527 keV would be used with an emission intensity of 0.57 per 100 disintegrations.

221FR T        96.815         |]                 XKB3
221FR T        97.474         |]  0.57     5     XKB1
221FR T        98.069         |]                 XKB5II

If an energy and intensity are given for the "total" of several lines, it is only used if the intensities of the individual lines are not provided. For example, in the case below a single line of energy 14.0895 keV would be used.

221FR T        10.38-17.799       18.7     9     XL (total)
221FR T        10.38                             XLL
221FR T        11.89-12.03                       XLA
221FR T        13.254                            XLC
221FR T        13.877-15.639                     XLB
221FR T        16.752-17.799                     XLG

The ensdf class has been tested on radionuclide data from LNHB DDEP.

Definition at line 492 of file egs_ensdf.h.

Constructor & Destructor Documentation

EGS_Ensdf::EGS_Ensdf ( const string  nuclide,
const string  ensdf_filename = "",
const string  relaxType = "eadl",
const bool  allowMultiTrans = false,
int  verbosity = 1 
)

Construct an ensdf object.

Definition at line 196 of file egs_ensdf.cpp.

References egsInformation, and egsWarning.


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