46 inline double neutralMass(
double mz,
int protonDelta,
int electronDelta = 0,
int neutronDelta = 0)
48 int charge = protonDelta - electronDelta;
49 return charge == 0 ?
throw std::invalid_argument(
"[Ion::neutralMass()] m/z with protonDelta=electronDelta is impossible")
50 : mz * charge - ((
Proton * protonDelta) +
63 inline double ionMass(
double neutralMass,
int protonDelta,
int electronDelta = 0,
int neutronDelta = 0)
65 return neutralMass + (
Proton * protonDelta) +
78 inline double mz(
double neutralMass,
int protonDelta,
int electronDelta = 0,
int neutronDelta = 0)
80 int z = protonDelta - electronDelta;
81 double m =
ionMass(neutralMass, protonDelta, electronDelta, neutronDelta);
82 return z == 0 ?
throw std::invalid_argument(
"[Ion::mz()] m/z with protonDelta=electronDelta is impossible")
double neutralMass(double mz, int protonDelta, int electronDelta=0, int neutronDelta=0)
double ionMass(double neutralMass, int protonDelta, int electronDelta=0, int neutronDelta=0)
const double Neutron
the mass of a neutron in unified atomic mass units
const double Proton
the mass of a proton in unified atomic mass units
const double Electron
the mass of an electron in unified atomic mass units
double mz(double neutralMass, int protonDelta, int electronDelta=0, int neutronDelta=0)