9#ifndef TRIGGERALGS_INCLUDE_TRIGGERALGS_TRIGGERACTIVITYMAKER_HPP_
10#define TRIGGERALGS_INCLUDE_TRIGGERALGS_TRIGGERACTIVITYMAKER_HPP_
20#include <nlohmann/json.hpp>
24#include "TRACE/trace.h"
85 virtual void postprocess(std::vector<TriggerActivity>& output_ta)
88 if (output_ta.size() == 0) {
94 for (std::vector<TriggerActivity>::iterator iter = output_ta.begin(); iter != output_ta.end();) {
98 iter = output_ta.erase(iter);
103 <<
" with time start/end/activity: " << iter->time_start
104 <<
" " << iter->time_end <<
" " << iter->time_activity;
114 if (!config.is_object()) {
118 if (config.contains(
"prescale"))
120 if (config.contains(
"max_samples_over_threshold"))
virtual void flush(timestamp_t, std::vector< TriggerActivity > &)
std::atomic< uint64_t > m_data_vs_system_time
virtual void configure(const nlohmann::json &config)
uint64_t m_ta_count
TA made count for prescaling.
virtual ~TriggerActivityMaker()=default
virtual void process(const TriggerPrimitive &input_tp, std::vector< TriggerActivity > &output_ta)=0
TP processing function that creates & fills TAs.
virtual void postprocess(std::vector< TriggerActivity > &output_ta)
Post-processing/filtering of the TAs, e.g. prescale.
uint32_t m_max_samples_over_threshold
Time-over-threshold TP filtering.
std::atomic< uint64_t > m_initial_offset
virtual bool preprocess(const TriggerPrimitive &input_tp)
TP pre-processing/filtering.
uint64_t m_prescale
Configurable prescale factor.
void operator()(const TriggerPrimitive &input_tp, std::vector< TriggerActivity > &output_ta)
#define TLOG_DEBUG(lvl,...)
dunedaq::trgdataformats::timestamp_t timestamp_t