38#include <QRegularExpression>
51 MapDaltonPrecision ret;
88 QStringList list = str.split(QRegularExpression(
"\\s+"), Qt::SkipEmptyParts);
97 "convert %1 to number in %2")
105 else if(list.size() == 2)
107 if(list[1].toLower() ==
"dalton")
112 if(list[1].toLower() ==
"ppm")
117 if(list[1].toLower() ==
"res")
123 "unit %1 to not known in %2")
130 ":\nunable to convert %1 to precision")
137 MapDaltonPrecision::iterator it =
m_mapDalton.find(value);
141 std::pair<MapDaltonPrecision::iterator, bool> insert_res =
m_mapDalton.insert(
142 std::pair<pappso_double, DaltonPrecision *>(value,
new DaltonPrecision(value)));
143 it = insert_res.first;
158 QObject::tr(
"Fatal error at precision.cpp "
159 "-- ERROR trying to set a Resolution precision value of 0. "
160 "Program aborted."));
162 MapPpmPrecision::iterator it =
m_mapPpm.find(value);
167 std::pair<MapPpmPrecision::iterator, bool> insert_res =
169 it = insert_res.first;
187 QObject::tr(
"Fatal error at precision.cpp "
188 "-- ERROR trying to set a Resolution precision value of 0. "
189 "Program aborted."));
191 MapResPrecision::iterator it =
m_mapRes.find(value);
196 std::pair<MapResPrecision::iterator, bool> insert_res =
198 it = insert_res.first;
211 double value = origin->
getNominal() * fraction;
265 return (QString(
"%1 dalton").arg(
m_nominal));
295 return (QString(
"%1 ppm").arg(
m_nominal));
325 return (QString(
"%1 res").arg(
m_nominal));
virtual QString toString() const override
virtual Enums::PrecisionUnit unit() const override
virtual ~DaltonPrecision()
DaltonPrecision(pappso_double x)
virtual pappso_double delta(pappso_double value) const override
PpmPrecision(pappso_double x)
virtual pappso_double delta(pappso_double value) const override
virtual Enums::PrecisionUnit unit() const override
virtual QString toString() const override
const pappso_double m_nominal
PrecisionBase(pappso_double nominal)
virtual pappso_double getNominal() const final
virtual Enums::PrecisionUnit unit() const =0
static PrecisionPtr getPrecisionPtrInstance(Enums::PrecisionUnit unit, double value)
get a precision pointer instance
static PrecisionPtr getResInstance(pappso_double value)
get a resolution precision pointer
static PrecisionPtr fromString(const QString &str)
get a precision pointer from a string
static MapResPrecision m_mapRes
static MapPpmPrecision m_mapPpm
std::map< pappso_double, PpmPrecision * > MapPpmPrecision
static PrecisionPtr getPpmInstance(pappso_double value)
get a ppm precision pointer
static PrecisionPtr getPrecisionPtrFractionInstance(PrecisionPtr origin, double fraction)
get the fraction of an existing precision pointer
static PrecisionPtr getDaltonInstance(pappso_double value)
get a Dalton precision pointer
std::map< pappso_double, DaltonPrecision * > MapDaltonPrecision
static MapDaltonPrecision m_mapDalton
std::map< pappso_double, ResPrecision * > MapResPrecision
virtual Enums::PrecisionUnit unit() const override
virtual pappso_double delta(pappso_double value) const override
virtual QString toString() const override
ResPrecision(pappso_double x)
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
const pappso_double ONEMILLION(1000000)
double pappso_double
A type definition for doubles.
const PrecisionBase * PrecisionPtr
std::map< Enums::PrecisionUnit, QString > precisionUnitMap