84 const Trace &trace)
const
98 using TraceIter = std::vector<DataPoint>::const_iterator;
99 TraceIter trace_iter_begin = trace.begin();
100 TraceIter trace_iter = trace_iter_begin;
101 TraceIter trace_iter_end = trace.end();
110 using BinIter = std::vector<pappso_double>::const_iterator;
112 BinIter bin_iter =
m_bins.begin();
113 BinIter bin_end_iter =
m_bins.end();
136 auto bin_iter_for_mz = lower_bound(bin_iter, bin_end_iter, trace_iter->x);
138 if(bin_iter_for_mz != bin_end_iter)
143 if(bin_iter_for_mz !=
m_bins.begin())
144 bin_iter = --bin_iter_for_mz;
151 while(bin_iter != bin_end_iter)
153 current_bin_mz_value = *bin_iter;
169 bin_data_point.
x = current_bin_mz_value;
176 while(trace_iter != trace_iter_end)
178 bool trace_matched =
false;
197 trace_x = trace_iter->x;
198 trace_y = trace_iter->y;
204 if(trace_x <= current_bin_mz_value)
219 bin_data_point.
y -= trace_y;
225 trace_matched =
true;
256 trace_matched =
true;
287 std::pair<std::map<pappso_double, pappso_double>::iterator,
290 map_trace.insert(std::pair<pappso_double, pappso_double>(
291 bin_data_point.
x, -bin_data_point.
y));
311 result.first->second += bin_data_point.
y;
341 if(trace_iter == trace_iter_end)
350 std::pair<std::map<pappso_double, pappso_double>::iterator,
bool>
352 map_trace.insert(std::pair<pappso_double, pappso_double>(
353 bin_data_point.
x, -bin_data_point.
y));
375 result.first->second += bin_data_point.
y;