63 {
64
65
66 if (m_samples.size() < 3)
67 B2ERROR("APV25 samples less than 3!?");
68
69 std::vector<float> Sum2bin(m_samples.size() - 1, 0);
70
71 for (int iBin = 0; iBin < static_cast<int>(m_samples.size()) - 1; ++iBin)
72 Sum2bin.at(iBin) = m_samples.at(iBin) + m_samples.at(iBin + 1);
73
74 auto itSum = std::max_element(std::begin(Sum2bin), std::end(Sum2bin));
75
76 int ctrFrame = std::distance(std::begin(Sum2bin), itSum);
77
78 if (ctrFrame == 0) ctrFrame = 1;
79
80 std::vector<float> selectedSamples = {m_samples.at(ctrFrame - 1), m_samples.at(ctrFrame), m_samples.at(ctrFrame + 1)};
81
82 m_result.first = ctrFrame - 1;
83 m_result.second = selectedSamples;
84
85 };