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 qDebug() << ppm << ppmf.ppm_ << ppmf.window_;
60 ralab::base::resample::breaks(
61 mzrange.first - 1., mzrange.second + 1., ppmf,
bin_.breaks_);
63 return bin_.breaks_.size();
67 template <
typename Tmass,
typename T
intens,
typename Tout>
71 for(; beginMass != (endMass - 1); ++beginMass, ++intens)
73 double mass1 = *beginMass;
74 double mass2 = *(beginMass + 1);
75 double predmass2 = mass1 + (
am_ * sqrt(mass1)) * 1.01;
82 double deltamass = mass2 - mass1;
86 deltamasshalf = deltamass / 2.;
90 deltamasshalf = deltamass;
95 double intensd =
static_cast<double>(*intens);
98 if(fabs(deltamass - sum) > 1e-11)
102 QObject::tr(
"ERROR pwiz convert2dense :\n "
103 "BOOST_ASSERT(fabs(deltamass- sum) < 1e-11)"));
107 for(std::size_t i = 0; i <
idx_.size(); ++i)
110 (
idx_[i] <
static_cast<int32_t
>(
bin_.breaks_.size() - 1)))
112 double bb = intensd *
weight_[i] / deltamass;
113 *(ass +
idx_[i]) += bb;
124 ralab::base::resample::getMids(
bin_.breaks_, mids);
128 template <
typename Tmass,
typename T
intens>
134 std::vector<
typename std::iterator_traits<Tintens>::value_type> &gg)
136 gg.resize(
bin_.breaks_.size() - 1);
145 #endif // CONVERT2DENSE_H