22 #ifndef CONVERT2DENSE_H
23 #define CONVERT2DENSE_H
30 #include "pwiz/utility/findmf/base/resample/masscomparefunctors.hpp"
31 #include "pwiz/utility/findmf/base/resample/breakspec.hpp"
32 #include "pwiz/utility/findmf/base/resample/bin1d.hpp"
34 #include "../../../../exception/exceptionoutofrange.h"
46 ralab::base::resample::Bin1D
bin_;
56 defBreak(std::pair<double, double> &mzrange,
double ppm)
58 ralab::base::resample::PPMCompFunctor<double> ppmf(ppm);
59 ralab::base::resample::breaks(
60 mzrange.first - 1., mzrange.second + 1., ppmf,
bin_.breaks_);
62 return bin_.breaks_.size();
66 template <
typename Tmass,
typename T
intens,
typename Tout>
70 for(; beginMass != (endMass - 1); ++beginMass, ++intens)
72 double mass1 = *beginMass;
73 double mass2 = *(beginMass + 1);
74 double predmass2 = mass1 + (
am_ * sqrt(mass1)) * 1.01;
80 double deltamass = mass2 - mass1;
84 deltamasshalf = deltamass / 2.;
88 deltamasshalf = deltamass;
93 double intensd =
static_cast<double>(*intens);
96 if(fabs(deltamass - sum) > 1e-11)
100 QObject::tr(
"ERROR pwiz convert2dense :\n "
101 "BOOST_ASSERT(fabs(deltamass- sum) < 1e-11)"));
105 for(std::size_t i = 0; i <
idx_.size(); ++i)
108 (
idx_[i] <
static_cast<int32_t
>(
bin_.breaks_.size() - 1)))
110 double bb = intensd *
weight_[i] / deltamass;
111 *(ass +
idx_[i]) += bb;
122 ralab::base::resample::getMids(
bin_.breaks_, mids);
126 template <
typename Tmass,
typename T
intens>
132 std::vector<
typename std::iterator_traits<Tintens>::value_type> &gg)
134 gg.resize(
bin_.breaks_.size() - 1);
143 #endif // CONVERT2DENSE_H