9#ifndef TRIGGERALGS_INCLUDE_TRIGGERALGS_TRIGGERCANDIDATEMAKER_HPP_
10#define TRIGGERALGS_INCLUDE_TRIGGERALGS_TRIGGERCANDIDATEMAKER_HPP_
20#include <nlohmann/json.hpp>
24#include "TRACE/trace.h"
78 virtual void postprocess(std::vector<TriggerCandidate>& output_tc)
81 if (output_tc.size() == 0) {
87 for (std::vector<TriggerCandidate>::iterator iter = output_tc.begin(); iter != output_tc.end();) {
91 iter = output_tc.erase(iter);
104 if (!config.is_object()) {
108 if (config.contains(
"prescale")) {
112 if (config.contains(
"tc_type_name")) {
121 (config.contains(
"tc_type_name") ?
122 std::string(config[
"tc_type_name"]) :
"null")));
126 TLOG() <<
"[TCM]: TC type out: " << config[
"tc_type_name"];
std::atomic< uint64_t > m_initial_offset
uint64_t m_tc_count
TC made count for prescaling.
TriggerCandidate::Type m_tc_type_out
Configurable TC type output.
virtual void configure(const nlohmann::json &config)
virtual ~TriggerCandidateMaker()=default
virtual void process(const TriggerActivity &input_ta, std::vector< TriggerCandidate > &output_tc)=0
TA processing function that creates & fills TCs.
std::atomic< uint64_t > m_data_vs_system_time
void operator()(const TriggerActivity &input_ta, std::vector< TriggerCandidate > &output_tc)
virtual void flush(timestamp_t, std::vector< TriggerCandidate > &)
uint64_t m_prescale
Configurable prescale factor.
virtual void postprocess(std::vector< TriggerCandidate > &output_tc)
Post-processing/filtering of the TCs, e.g. prescale.
virtual bool preprocess(const TriggerActivity &)
TA pre-processing/filtering.
#define TLOG_DEBUG(lvl,...)
dunedaq::trgdataformats::timestamp_t timestamp_t
Factory couldn t std::string alg_name InvalidConfiguration