DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
TCMakerSupernovaAlgorithm.cpp
Go to the documentation of this file.
1
10
11#include "TRACE/trace.h"
12#define TRACE_NAME "TCMakerSupernovaAlgorithm"
13
14using namespace triggeralgs;
15
16void
17TCMakerSupernovaAlgorithm::process(const TriggerActivity& activity, std::vector<TriggerCandidate>& cand)
18{
19 timestamp_t time = activity.time_start;
20 FlushOldActivity(time); // get rid of old activities in the buffer
21 if (activity.inputs.size() > m_hit_threshold)
22 m_activity.push_back(static_cast<TriggerActivity::TriggerActivityData>(activity));
23
24 // Yay! we have a trigger!
25 if (m_activity.size() > m_threshold) {
26
28
30 tc.time_start = time - 500'000'000; // time_start (10 seconds before the start of the activity)
31 tc.time_end = activity.time_end; // time_end; but that should probably be _at least_ this number
32 tc.time_candidate = time;
33 tc.detid = detid;
34 tc.type = m_tc_type_out; // type ( flag that says what type of trigger might be (e.g. SN/Muon/Beam) )
35 tc.algorithm = TriggerCandidate::Algorithm::kSupernova; // algorithm ( flag that says which algorithm created the trigger (e.g. SN/HE/Solar) )
36 tc.inputs = m_activity;
37
38 m_activity.clear();
39 // Give the trigger word back
40 cand.push_back(tc);
41 }
42}
43
#define REGISTER_TRIGGER_CANDIDATE_MAKER(tcm_name, tcm_class)
std::vector< TriggerActivity::TriggerActivityData > m_activity
void FlushOldActivity(timestamp_t time_now)
this function gets rid of the old activities
std::atomic< uint16_t > m_threshold
Minimum number of activities in the time window to issue a trigger.
void process(const TriggerActivity &, std::vector< TriggerCandidate > &)
The function that gets call when there is a new activity.
std::atomic< uint16_t > m_hit_threshold
Minimum number of primities in an activity.
TriggerCandidate::Type m_tc_type_out
Configurable TC type output.
constexpr detid_t WHOLE_DETECTOR
Definition Types.hpp:41
dunedaq::trgdataformats::timestamp_t timestamp_t
Definition Types.hpp:16
dunedaq::trgdataformats::detid_t detid_t
Definition Types.hpp:18
#define TRACE_NAME
std::vector< TriggerPrimitive > inputs
std::vector< dunedaq::trgdataformats::TriggerActivityData > inputs