1
0
Fork 0
mirror of https://github.com/gwm17/Mask.git synced 2024-11-26 12:08:52 -05:00
Mask/include/MassLookup.h

47 lines
1021 B
C
Raw Normal View History

2020-11-16 13:38:39 -05:00
/*
MassLookup.h
Generates a map for isotopic masses using AMDC data; subtracts away
electron mass from the atomic mass by default. Creates a static global instance
of this map (MASS) for use throughout code it is included into.
Written by G.W. McCann Aug. 2020
Converted to true singleton to simplify usage -- Aug. 2021 GWM
2020-11-16 13:38:39 -05:00
*/
#ifndef MASS_LOOKUP_H
#define MASS_LOOKUP_H
#include <fstream>
#include <string>
#include <unordered_map>
namespace Mask {
class MassLookup {
public:
~MassLookup();
double FindMass(int Z, int A);
double FindMassU(int Z, int A) { return FindMass(Z, A)/u_to_mev; }
std::string FindSymbol(int Z, int A);
static MassLookup& GetInstance() {
static MassLookup s_instance;
return s_instance;
}
private:
MassLookup();
std::unordered_map<std::string, double> massTable;
std::unordered_map<int, std::string> elementTable;
//constants
static constexpr double u_to_mev = 931.4940954;
static constexpr double electron_mass = 0.000548579909;
};
}
2020-11-16 13:38:39 -05:00
#endif