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