DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
tpglibs::AbstractProcessor< T > Class Template Referenceabstract

Abstract signal processor. More...

#include <AbstractProcessor.hpp>

Public Types

using signal_type_t = T
 Signal type to process on. General __m256i.
 

Public Member Functions

virtual ~AbstractProcessor ()=default
 
virtual void configure (const nlohmann::json &config, const int16_t *plane_numbers)=0
 Pure virtual function that will configure the processor using plane numbers.
 
void set_next_processor (std::shared_ptr< AbstractProcessor< T > > next_processor)
 Setter for next processor.
 
virtual T process (const T &signal)
 Simple signal pass-through.
 
virtual void save_metric_to_store_buffer ()
 Save metrics to store buffer; default does nothing.
 
virtual std::vector< std::string > get_metric_items ()
 Returns the string name of metrics recorded (stored and can be read) for this processor.
 
virtual ProcessorMetricArray< signal_type_tread_from_metric_store_buffer ()
 Read metrics from store buffer; default empty.
 
virtual void attach_to_metric_collector (ProcessorMetricCollector< signal_type_t > &collector, size_t pipeline_id)
 Register this processor and next processor with the metric collector.
 

Private Attributes

std::shared_ptr< AbstractProcessor< T > > m_next_processor
 Points to next processor in the chain.
 

Detailed Description

template<typename T>
class tpglibs::AbstractProcessor< T >

Abstract signal processor.

Configurable signal processor for TPG.

Definition at line 27 of file ProcessorMetricCollector.hpp.

Member Typedef Documentation

◆ signal_type_t

template<typename T >
using tpglibs::AbstractProcessor< T >::signal_type_t = T

Signal type to process on. General __m256i.

Definition at line 31 of file AbstractProcessor.hpp.

Constructor & Destructor Documentation

◆ ~AbstractProcessor()

template<typename T >
virtual tpglibs::AbstractProcessor< T >::~AbstractProcessor ( )
virtualdefault

Member Function Documentation

◆ attach_to_metric_collector()

template<typename T >
virtual void tpglibs::AbstractProcessor< T >::attach_to_metric_collector ( ProcessorMetricCollector< signal_type_t > & collector,
size_t pipeline_id )
inlinevirtual

Register this processor and next processor with the metric collector.

Definition at line 65 of file AbstractProcessor.hpp.

65 {
66 collector.attach_processor(*this, pipeline_id);
67 if (m_next_processor == nullptr) return;
68 m_next_processor->attach_to_metric_collector(collector, pipeline_id);
69 }
std::shared_ptr< AbstractProcessor< T > > m_next_processor
Points to next processor in the chain.

◆ configure()

template<typename T >
virtual void tpglibs::AbstractProcessor< T >::configure ( const nlohmann::json & config,
const int16_t * plane_numbers )
pure virtual

◆ get_metric_items()

template<typename T >
virtual std::vector< std::string > tpglibs::AbstractProcessor< T >::get_metric_items ( )
inlinevirtual

Returns the string name of metrics recorded (stored and can be read) for this processor.

Reimplemented in tpglibs::AVXFrugalPedestalSubtractProcessor.

Definition at line 55 of file AbstractProcessor.hpp.

55 {
56 return {};
57 }

◆ process()

◆ read_from_metric_store_buffer()

template<typename T >
virtual ProcessorMetricArray< signal_type_t > tpglibs::AbstractProcessor< T >::read_from_metric_store_buffer ( )
inlinevirtual

Read metrics from store buffer; default empty.

Reimplemented in tpglibs::AVXFrugalPedestalSubtractProcessor, and tpglibs::AVXProcessor.

Definition at line 60 of file AbstractProcessor.hpp.

60 {
61 return {};
62 }

◆ save_metric_to_store_buffer()

template<typename T >
virtual void tpglibs::AbstractProcessor< T >::save_metric_to_store_buffer ( )
inlinevirtual

Save metrics to store buffer; default does nothing.

Reimplemented in tpglibs::AVXFrugalPedestalSubtractProcessor, and tpglibs::AVXProcessor.

Definition at line 52 of file AbstractProcessor.hpp.

52{}

◆ set_next_processor()

template<typename T >
void tpglibs::AbstractProcessor< T >::set_next_processor ( std::shared_ptr< AbstractProcessor< T > > next_processor)
inline

Setter for next processor.

Definition at line 39 of file AbstractProcessor.hpp.

39 {
40 m_next_processor = next_processor;
41 }

Member Data Documentation

◆ m_next_processor

template<typename T >
std::shared_ptr<AbstractProcessor<T> > tpglibs::AbstractProcessor< T >::m_next_processor
private

Points to next processor in the chain.

Definition at line 27 of file AbstractProcessor.hpp.


The documentation for this class was generated from the following files: