34 #include <QStringList>
37 #include <QRegularExpression>
44 MapDaltonPrecision ret;
81 QStringList list = str.split(QRegularExpression(
"\\s+"), Qt::SkipEmptyParts);
90 QObject::tr(
"ERROR getting precision from string :\nunable to "
91 "convert %1 to number in %2")
99 else if(list.size() == 2)
101 if(list[1].toLower() ==
"dalton")
106 if(list[1].toLower() ==
"ppm")
111 if(list[1].toLower() ==
"res")
117 QObject::tr(
"ERROR getting precision from string :\nprecision "
118 "unit %1 to not known in %2")
125 ":\nunable to convert %1 to precision")
132 MapDaltonPrecision::iterator it =
m_mapDalton.find(value);
136 std::pair<MapDaltonPrecision::iterator, bool> insert_res =
137 m_mapDalton.insert(std::pair<pappso_double, DaltonPrecision *>(
139 it = insert_res.first;
154 QObject::tr(
"Fatal error at precision.cpp "
155 "-- ERROR trying to set a Resolution precision value of 0. "
156 "Program aborted."));
158 MapPpmPrecision::iterator it =
m_mapPpm.find(value);
163 std::pair<MapPpmPrecision::iterator, bool> insert_res =
164 m_mapPpm.insert(std::pair<pappso_double, PpmPrecision *>(
166 it = insert_res.first;
181 QObject::tr(
"Fatal error at precision.cpp "
182 "-- ERROR trying to set a Resolution precision value of 0. "
183 "Program aborted."));
185 MapResPrecision::iterator it =
m_mapRes.find(value);
190 std::pair<MapResPrecision::iterator, bool> insert_res =
191 m_mapRes.insert(std::pair<pappso_double, ResPrecision *>(
193 it = insert_res.first;
207 double value = origin->
getNominal() * fraction;
261 return (QString(
"%1 dalton").arg(
m_nominal));
291 return (QString(
"%1 ppm").arg(
m_nominal));
321 return (QString(
"%1 res").arg(
m_nominal));
virtual QString toString() const override
virtual ~DaltonPrecision()
DaltonPrecision(pappso_double x)
virtual pappso_double delta(pappso_double value) const override
virtual PrecisionUnit unit() const override
PpmPrecision(pappso_double x)
virtual pappso_double delta(pappso_double value) const override
virtual PrecisionUnit unit() const override
virtual QString toString() const override
const pappso_double m_nominal
virtual pappso_double getNominal() const final
virtual PrecisionUnit unit() const =0
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 PrecisionPtr getPrecisionPtrInstance(PrecisionUnit unit, double value)
get a precision pointer instance
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 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.