OpenMS  2.8.0
List of all members
ElementDB Class Reference

Singleton that stores elements. More...

#include <OpenMS/CHEMISTRY/ElementDB.h>

Collaboration diagram for ElementDB:
[legend]

Predicates

std::map< std::string, const Element * > names_
 
std::map< std::string, const Element * > symbols_
 
std::map< unsigned int, const Element * > atomic_numbers_
 
bool hasElement (const std::string &name) const
 returns true if the db contains an element with the given name More...
 
bool hasElement (unsigned int atomic_number) const
 returns true if the db contains an element with the given atomic_number More...
 
IsotopeDistribution parseIsotopeDistribution_ (const std::map< unsigned int, double > &abundance, const std::map< unsigned int, double > &mass)
 
double calculateAvgWeight_ (const std::map< unsigned int, double > &abundance, const std::map< unsigned int, double > &mass)
 
double calculateMonoWeight_ (const std::map< unsigned int, double > &Z_to_mass)
 
void storeElements_ ()
 
void buildElement_ (const std::string &name, const std::string &symbol, const unsigned int an, const std::map< unsigned int, double > &abundance, const std::map< unsigned int, double > &mass)
 
void addElementToMaps_ (const std::string &name, const std::string &symbol, const unsigned int an, const Element *e)
 
void storeIsotopes_ (const std::string &name, const std::string &symbol, const unsigned int an, const std::map< unsigned int, double > &Z_to_mass, const IsotopeDistribution &isotopes)
 
void clear_ ()
 
 ElementDB ()
 
 ~ElementDB ()
 
 ElementDB (const ElementDB &db)=delete
 
 ElementDB (const ElementDB &&db)=delete
 
ElementDBoperator= (const ElementDB &db)=delete
 

Accessors

static const ElementDBgetInstance ()
 
const std::map< std::string, const Element * > & getNames () const
 returns a hashmap that contains names mapped to pointers to the elements More...
 
const std::map< std::string, const Element * > & getSymbols () const
 returns a hashmap that contains symbols mapped to pointers to the elements More...
 
const std::map< unsigned int, const Element * > & getAtomicNumbers () const
 returns a hashmap that contains atomic numbers mapped to pointers of the elements More...
 
const ElementgetElement (const std::string &name) const
 
const ElementgetElement (unsigned int atomic_number) const
 returns a pointer to the element of atomic number; if no element is found 0 is returned More...
 

Detailed Description

Singleton that stores elements.

The elements weights (in the default file) are taken from "Isotopic Compositions of the Elements 1997", Pure Appl. Chem., 70(1), 217-235, 1998. (http://www.iupac.org/reports/1998/7001rosman/)

The isotope distributions (in the default file) are taken from "Atomic weights of the elements. Review 2000" (IUPAC Technical Report) Pure Appl. Chem., 2003, Vol. 75, No. 6, pp. 683-799 doi:10.1351/pac200375060683

Specific isotopes of elements can be accessed by writing the atomic number of the isotope in brackets followed by the element name, e.g. "(2)H" for deuterium.

Improvement:

include exact mass values for the isotopes (done) and update IsotopeDistribution (Andreas)

add exact isotope distribution based on exact isotope values (Andreas)

Constructor & Destructor Documentation

◆ ElementDB() [1/3]

ElementDB ( )
private

◆ ~ElementDB()

~ElementDB ( )
private

◆ ElementDB() [2/3]

ElementDB ( const ElementDB db)
privatedelete

◆ ElementDB() [3/3]

ElementDB ( const ElementDB &&  db)
privatedelete

Member Function Documentation

◆ addElementToMaps_()

void addElementToMaps_ ( const std::string &  name,
const std::string &  symbol,
const unsigned int  an,
const Element e 
)
protected

◆ buildElement_()

void buildElement_ ( const std::string &  name,
const std::string &  symbol,
const unsigned int  an,
const std::map< unsigned int, double > &  abundance,
const std::map< unsigned int, double > &  mass 
)
protected

◆ calculateAvgWeight_()

double calculateAvgWeight_ ( const std::map< unsigned int, double > &  abundance,
const std::map< unsigned int, double > &  mass 
)
protected

◆ calculateMonoWeight_()

double calculateMonoWeight_ ( const std::map< unsigned int, double > &  Z_to_mass)
protected

◆ clear_()

void clear_ ( )
protected

◆ getAtomicNumbers()

const std::map<unsigned int, const Element*>& getAtomicNumbers ( ) const

returns a hashmap that contains atomic numbers mapped to pointers of the elements

◆ getElement() [1/2]

const Element* getElement ( const std::string &  name) const

returns a pointer to the element with name or symbol given in parameter name; if no element exists with that name or symbol 0 is returned

Parameters
namename or symbol of the element

◆ getElement() [2/2]

const Element* getElement ( unsigned int  atomic_number) const

returns a pointer to the element of atomic number; if no element is found 0 is returned

◆ getInstance()

static const ElementDB* getInstance ( )
static

returns a pointer to the singleton instance of the element db This is thread safe upon first and subsequent calls.

◆ getNames()

const std::map<std::string, const Element*>& getNames ( ) const

returns a hashmap that contains names mapped to pointers to the elements

◆ getSymbols()

const std::map<std::string, const Element*>& getSymbols ( ) const

returns a hashmap that contains symbols mapped to pointers to the elements

◆ hasElement() [1/2]

bool hasElement ( const std::string &  name) const

returns true if the db contains an element with the given name

◆ hasElement() [2/2]

bool hasElement ( unsigned int  atomic_number) const

returns true if the db contains an element with the given atomic_number

◆ operator=()

ElementDB& operator= ( const ElementDB db)
privatedelete

◆ parseIsotopeDistribution_()

IsotopeDistribution parseIsotopeDistribution_ ( const std::map< unsigned int, double > &  abundance,
const std::map< unsigned int, double > &  mass 
)
protected

◆ storeElements_()

void storeElements_ ( )
protected

◆ storeIsotopes_()

void storeIsotopes_ ( const std::string &  name,
const std::string &  symbol,
const unsigned int  an,
const std::map< unsigned int, double > &  Z_to_mass,
const IsotopeDistribution isotopes 
)
protected

Member Data Documentation

◆ atomic_numbers_

std::map<unsigned int, const Element*> atomic_numbers_
protected

◆ names_

std::map<std::string, const Element*> names_
protected

◆ symbols_

std::map<std::string, const Element*> symbols_
protected