Classes | Public Member Functions | Protected Attributes | Friends | List of all members
o2scl::nucmass_ame Class Reference

Masses from the Atomic Mass Evaluation. More...

#include <nucmass_ame.h>

Inheritance diagram for o2scl::nucmass_ame:
o2scl::nucmass_table o2scl::nucmass o2scl::nucmass_info o2scl::nucmass_ame_exp


struct  entry
 Atomic mass entry structure. More...

Public Member Functions

 nucmass_ame ()
 Create an AME mass object.
virtual const char * type ()
 Return the type, "nucmass_ame".
virtual bool is_included (int Z, int N)
 Return false if the mass formula does not include specified nucleus.
virtual double mass_excess (int Z, int N)
 Given Z and N, return the mass excess in MeV.
entry get_ZN (int l_Z, int l_N)
 Get element with Z=l_Z and N=l_N (e.g. 82,126).
entry get_ZA (int l_Z, int l_A)
 Get element with Z=l_Z and A=l_A (e.g. 82,208).
entry get_elA (std::string l_el, int l_A)
 Get element with name l_el and A=l_A (e.g. "Pb",208).
entry get (std::string nucleus)
 Get element with string (e.g. "Pb208")
bool is_loaded ()
 Returns true if data has been loaded.
int get_nentries ()
 Return number of entries.
std::string get_reference ()
 Return the reference.
- Public Member Functions inherited from o2scl::nucmass_table
virtual double mass_excess_d (double Z, double N)
 Given Z and N, return the mass excess in MeV.
- Public Member Functions inherited from o2scl::nucmass
virtual int get_nucleus (int Z, int N, nucleus &n)
 Fill n with the information from nucleus with the given neutron and proton number. More...
virtual double electron_binding (double Z)
 Return the approximate electron binding energy in MeV.
virtual double binding_energy (int Z, int N)
 Return the binding energy in MeV. More...
virtual double binding_energy_d (double Z, double N)
 Return the binding energy in MeV. More...
virtual double total_mass (int Z, int N)
 Return the total mass of the nucleus (without the electrons) in MeV.
virtual double total_mass_d (double Z, double N)
 Return the total mass of the nucleus (without the electrons) in MeV.
virtual double atomic_mass (int Z, int N)
 Return the atomic mass of the nucleus in MeV (includes electrons and their binding energy)
virtual double atomic_mass_d (double Z, double N)
 Return the atomic mass of the nucleus in MeV (includes electrons and their binding energy)
- Public Member Functions inherited from o2scl::nucmass_info
int parse_elstring (std::string ela, int &Z, int &N, int &A)
 Parse a string representing an element. More...
int eltoZ (std::string el)
 Return Z given the element name abbreviation. More...
std::string Ztoel (size_t Z)
 Return the element name abbreviation given Z. More...
std::string tostring (size_t Z, size_t N)
 Return a string of the form "Pb208" for a given Z and N. More...

Static Public Attributes

Accuracy modes
static const int measured =0
 Measured value from source data.
static const int estimated =1
 Value estimated in source data.
static const int not_calculable =2
 Value listed in data as not calculable.
static const int intl_computed =3
 Value computed by O2scl .

Protected Attributes

int n
 The number of entries (about 3000).
std::string reference
 The reference for the original data.
 The array containing the mass data of length ame::n. More...
int last
 The last table index for caching.
- Protected Attributes inherited from o2scl::nucmass_info
std::map< std::string, int, std::greater< std::string > > element_table
 A map containing the proton numbers organized by element abbreviation.
std::string element_list [nelements]
 The list of elements organized by proton number.


void o2scl_hdf::ame_load (nucmass_ame &ame, std::string file_name, std::string table_name)
void o2scl_hdf::ame_load (nucmass_ame &ame, std::string name)

Additional Inherited Members

- Public Attributes inherited from o2scl::nucmass
double m_neut
 Neutron mass in $ \mathrm{MeV} $ (defaults to o2scl_mks::mass_neutron converted into MeV)
double m_prot
 Proton mass in $ \mathrm{MeV} $ (defaults to o2scl_mks::mass_proton converted into MeV)
double m_elec
 Electron mass in $ \mathrm{MeV} $ (defaults to o2scl_mks::mass_electron converted into MeV)
double m_amu
 Atomic mass unit in $ \mathrm{MeV} $ (defaults to o2scl_mks::unified_atomic_mass converted into MeV)
- Protected Types inherited from o2scl::nucmass_info
typedef std::map< std::string, int, std::greater< std::string > >::iterator table_it
 A convenient typedef for an iterator for element_table.
- Static Protected Attributes inherited from o2scl::nucmass_info
static const int nelements =119
 The number of elements (proton number)

Detailed Description

This class requires data stored in an HDF file and thus requires HDF support for normal usage.

This class provides an interface to the atomic mass table using data from Audi95, Audi03, Audi12, and Wang12. To load data from the O2scl HDF5 data files, use o2scl_hdf::ame_load() .

The 1995 data provided the binding energy (stored in nucmass_ame::entry::be and nucmass_ame::entry::dbe), while the 2003 data provided the binding energy divided by the mass number (stored in nucmass_ame::entry::beoa and nucmass_ame::entry::dbeoa). When the 1995 data is used, nucmass_ame::entry::beoa and nucmass_ame::entry::dbeoa are calculated automatically, and when the 2003 data is used nucmass_ame::entry::be and nucmass_ame::entry::dbe are calculated automatically. To indicate that O2scl has automatically calculated a value in this way, the associated accuracy field is set to o2scl::nucmass_ame::intl_computed.

Note that all uncertainties are 1 sigma uncertainties.

The functions mass_excess() and o2scl::nucmass::mass_excess_d() directly return the value from the data. For consistency, the functions o2scl::nucmass::binding_energy(), o2scl::nucmass::binding_energy_d(), o2scl::nucmass::total_mass(), and o2scl::nucmass::total_mass_d() return values which are automatically computed from the mass excess with the neutron and proton mass in m_neut and m_prot. In order to obtain the value of the binding energy as reported in the original data instead of the value computed from the mass excess, you can use the function get_ZN(), and access the corresponding entry from the data directly.

In cases where the decimal point in the original table was replaced with a #, the associated accuracy field is set to o2scl::nucmass_ame::estimated. In cases where the original table contained a asterisk to indicate a value was not calculable, the accuracy field is set to o2scl::nucmass_ame::not_calculable and the value is set to zero. If O2scl internally computed the value because it was not present in the original table, the accuracy field is set to o2scl::nucmass_ame::intl_computed. In cases where either o2scl::nucmass_ame::entry::orig or o2scl::nucmass_ame::entry::bdmode in the original table was blank, the string is set to "blank".

In the original table, binding energies are defined with a positive sign, so that lead has a binding energy of +8 MeV and this is what is stored in o2scl::nucmass_ame::entry::be. However, for consistency with the other mass formulas, o2scl::nucmass_ame::binding_energy() gives -8 MeV for lead. See also the documentation for the class structure for each table entry in o2scl::nucmass_ame::entry.

Idea for Future:

Create a caching and more intelligent search system for the table. The table is sorted by A and then N, so we could probably just copy the search routine from mnmsk_mass, which is sorted by Z and then N (some code written for this, but it doesn't work yet).

Should m_neut and m_prot be set to the neutron and proton masses from the table by default?

Definition at line 123 of file nucmass_ame.h.

Member Data Documentation

◆ mass

entry* o2scl::nucmass_ame::mass

Definition at line 280 of file nucmass_ame.h.

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

Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).