|
DUNE-DAQ
DUNE Trigger and Data Acquisition software
|
AVX signal processor: Calculates the running sum of the signal. More...
#include <AVXRunSumProcessor.hpp>
Public Member Functions | |
| __m256i | process (const __m256i &signal) override |
| Calculate and store the running sum. | |
| void | configure (const nlohmann::json &config, const int16_t *plane_numbers) override |
Configures the R factor and S factor according to plane. | |
Public Member Functions inherited from tpglibs::AVXProcessor | |
Public Member Functions inherited from tpglibs::AbstractProcessor< __m256i > | |
| virtual | ~AbstractProcessor ()=default |
| ProcessorInternalStateBufferManager< __m256i > * | _get_internal_state_buffer_manager () |
| ProcessorInternalStateNameRegistry< __m256i > * | _get_internal_state_name_registry () |
| virtual void | configure_internal_state_collection (const nlohmann::json &config) |
| Configure common internal state collection parameters. | |
| void | set_next_processor (std::shared_ptr< AbstractProcessor< __m256i > > next_processor) |
| Setter for next processor. | |
| std::shared_ptr< AbstractProcessor< __m256i > > | get_next_processor () |
| Getter for next processor. | |
| virtual std::vector< std::string > | get_requested_internal_state_names () const |
| Get the names of requested internal states (delegates to registry). | |
| virtual ProcessorMetricArray< std::array< int16_t, 16 > > | read_internal_states_as_integer_array () |
Private Attributes | |
| __m256i | m_memory_factor |
The R factor in the model equation. | |
| __m256i | m_scale_factor |
The S factor in the model equation. | |
| __m256i | m_running_sum |
The RS in the model equation. | |
| __m256i | m_scale_divisor |
The divisor for the S factor. | |
| __m256i | m_memory_divisor |
The divisor for the R factor. | |
Additional Inherited Members | |
Public Types inherited from tpglibs::AbstractProcessor< __m256i > | |
| using | signal_type_t |
| Signal type to process on. General __m256i. | |
Protected Attributes inherited from tpglibs::AbstractProcessor< __m256i > | |
| ProcessorInternalStateBufferManager< __m256i > | m_internal_state_buffer_manager |
| ProcessorInternalStateNameRegistry< __m256i > | m_internal_state_name_registry |
| std::atomic< uint64_t > | m_samples |
| bool | m_collect_internal_state_flag |
| uint64_t | m_sample_period |
AVX signal processor: Calculates the running sum of the signal.
Calculates the running sum of the signal with some factors. This tries to model the following equation: RS = R * RS + S * signal, where
RS is the on-going running sum,R is the memory factor of the on-going running sum,S is the scale factor for the incoming signal to avoid overflowing,signal is the incoming signal. Definition at line 26 of file AVXRunSumProcessor.hpp.
|
overridevirtual |
Configures the R factor and S factor according to plane.
| config | JSON of the R and S factors to use per plane. |
| plane_numbers | Array of plane numbers. Gives the channels to apply the R and S factors. |
Implements tpglibs::AbstractProcessor< __m256i >.
Definition at line 15 of file AVXRunSumProcessor.cpp.
|
overridevirtual |
Calculate and store the running sum.
| signal | The input signal to process on. |
Reimplemented from tpglibs::AVXProcessor.
Definition at line 58 of file AVXRunSumProcessor.cpp.
|
private |
The divisor for the R factor.
Definition at line 40 of file AVXRunSumProcessor.hpp.
|
private |
The R factor in the model equation.
Definition at line 28 of file AVXRunSumProcessor.hpp.
|
private |
The RS in the model equation.
Definition at line 34 of file AVXRunSumProcessor.hpp.
|
private |
The divisor for the S factor.
Definition at line 37 of file AVXRunSumProcessor.hpp.
|
private |
The S factor in the model equation.
Definition at line 31 of file AVXRunSumProcessor.hpp.