29 #include "../../trace/trace.h"
32 #include "../../massspectrum/massspectrum.h"
33 #include "../../exception/exceptionoutofrange.h"
42 : m_passY(other.m_passY)
58 Trace new_data_points;
59 for(
auto &&data_point : data_points)
63 new_data_points.push_back(data_point);
66 data_points = std::move(new_data_points);
74 : m_passY(other.m_passY)
90 Trace new_data_points;
91 for(
auto &&data_point : data_points)
95 new_data_points.push_back(data_point);
98 data_points = std::move(new_data_points);
104 : m_ratioPassY(ratio_pass_y)
110 : m_ratioPassY(other.m_ratioPassY)
126 auto it_max =
maxYDataPoint(data_points.begin(), data_points.end());
127 if(it_max == data_points.end())
130 Trace new_data_points;
131 for(
auto &&data_point : data_points)
133 if(data_point.y > pass)
135 new_data_points.push_back(data_point);
138 data_points = std::move(new_data_points);
144 : m_numberOfPoints(number_of_points)
150 : m_numberOfPoints(other.m_numberOfPoints)
174 std::sort(data_points.begin(),
178 data_points.erase(data_points.begin() +
m_numberOfPoints, data_points.end());
181 std::sort(data_points.begin(),
197 double window_range, std::size_t number_of_points_per_window)
198 : m_xWindowRange(window_range), m_numberOfPoints(number_of_points_per_window)
205 QObject::tr(
"window_range must be greater than 0.5"));
214 : m_xWindowRange(other.m_xWindowRange),
215 m_numberOfPoints(other.m_numberOfPoints)
236 int window_number = 0;
237 int old_window_number = -1;
238 std::size_t number_of_peaks_in_window = 0;
239 auto itbegin = new_trace.begin();
249 for(
auto &data_point : data_points)
251 qDebug() <<
" data_point.x=" << data_point.x
252 <<
" data_point.y=" << data_point.y;
254 qDebug() << window_number;
255 if(window_number != old_window_number)
257 old_window_number = window_number;
258 number_of_peaks_in_window = 0;
259 itbegin = new_trace.end();
264 new_trace.push_back(data_point);
265 number_of_peaks_in_window++;
266 if(number_of_peaks_in_window == 1)
268 itbegin = new_trace.begin() + (new_trace.size() - 1);
276 if(it_min != new_trace.end())
279 if(it_min->y < data_point.y)
282 it_min->x = data_point.x;
283 it_min->y = data_point.y;
291 data_points = std::move(new_trace);
321 for(
auto &&dataPoint : data_points)
323 dataPoint.y = std::floor(dataPoint.y);
345 for(
auto &&dataPoint : data_points)
347 dataPoint.y = std::round(dataPoint.y);
357 : m_dynamic(other.m_dynamic)
365 auto it_max =
maxYDataPoint(data_points.begin(), data_points.end());
366 if(it_max == data_points.end())
368 double maximum = it_max->y;
369 for(
auto &&dataPoint : data_points)
371 dataPoint.y = (dataPoint.y / maximum) *
m_dynamic;
393 std::size_t number_of_points)
394 : m_filterGreatestY(number_of_points)
400 : m_filterGreatestY(other.m_filterGreatestY)
426 : m_factor(other.m_factor)
444 for(
auto &&dataPoint : data_points)
446 dataPoint.y = dataPoint.y *
m_factor;