19 m_internal_state_name_registry.register_internal_state(
"pedestal",
20 std::shared_ptr<naive_array_t>(&m_pedestal, [](
auto*){}));
21 m_internal_state_name_registry.register_internal_state(
"accum",
22 std::shared_ptr<naive_array_t>(&m_accum, [](
auto*){}));
24 configure_internal_state_collection(config);
26 m_accum_limit = config[
"accum_limit"];
38 for (
int i = 0; i < 16; i++) {
59 subtracted_signal[i] = signal[i] -
m_pedestal[i];
#define REGISTER_NAIVEPROCESSOR_CREATOR(processor_name, processor_class)
Factory registration macro.
ProcessorInternalStateBufferManager< std::array< int16_t, 16 > > m_internal_state_buffer_manager
std::atomic< uint64_t > m_samples
bool m_collect_internal_state_flag
Naive signal processor: Estimates the pedestal and subtracts.
naive_array_t process(const naive_array_t &signal) override
Estimate the pedestal using the given signal and subtract.
naive_array_t m_pedestal
Vector of estimated pedestals for each channel.
int16_t m_accum_limit
Count limit before committing to a pedestal shift.
naive_array_t m_accum
Vector of counts that a channel's signal was above or below m_pedestal.
virtual naive_array_t process(const naive_array_t &signal) override
Simple signal pass-through on naive type.
std::array< int16_t, 16 > naive_array_t
The naive version uses a standard array instead of __m256i.
void write_to_active_buffer()
Write to the active buffer.