DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
triggeralgs
src
TCMakerBundleNAlgorithm.cpp
Go to the documentation of this file.
1
8
9
#include "
triggeralgs/BundleN/TCMakerBundleNAlgorithm.hpp
"
10
11
#include "TRACE/trace.h"
12
#define TRACE_NAME "TCMakerBundleNAlgorithm"
13
14
namespace
triggeralgs
{
15
16
using
Logging::TLVL_IMPORTANT
;
17
using
Logging::TLVL_DEBUG_HIGH
;
18
19
void
TCMakerBundleNAlgorithm::set_tc_attributes
() {
20
// Using the first TA as reference.
21
dunedaq::trgdataformats::TriggerActivityData
front_ta =
m_current_tc
.inputs.front();
22
23
m_current_tc
.time_start = front_ta.
time_start
;
24
m_current_tc
.time_end =
m_current_tc
.inputs.back().time_end;
25
m_current_tc
.time_candidate = front_ta.
time_start
;
// TODO: Conforming. Do we change this?
26
m_current_tc
.detid = front_ta.
detid
;
27
m_current_tc
.type =
m_tc_type_out
;
28
m_current_tc
.algorithm =
TriggerCandidate::Algorithm::kBundle
;
29
return
;
30
}
31
32
bool
TCMakerBundleNAlgorithm::bundle_condition
() {
33
return
m_current_tc
.inputs.size() ==
m_bundle_size
;
34
}
35
36
void
37
TCMakerBundleNAlgorithm::process
(
const
TriggerActivity
& input_ta, std::vector<TriggerCandidate>& output_tcs)
38
{
39
// Expect that TAs are inherently time ordered.
40
m_current_tc
.inputs.push_back(input_ta);
41
42
if
(
bundle_condition
()) {
43
TLOG_DEBUG
(
TLVL_DEBUG_HIGH
) <<
"[TC:BN] Emitting BundleN TriggerCandidate with "
<<
m_current_tc
.inputs.size() <<
" TAs."
;
44
set_tc_attributes
();
45
output_tcs.push_back(
m_current_tc
);
46
47
// Reset the current.
48
m_current_tc
=
TriggerCandidate
();
49
}
50
51
// Should never reach this step. In this case, send it out.
52
if
(
m_current_tc
.inputs.size() >
m_bundle_size
) {
53
TLOG_DEBUG
(
TLVL_IMPORTANT
) <<
"[TC:BN] Emitting large BundleN TriggerCandidate with "
<<
m_current_tc
.inputs.size() <<
" TAs."
;
54
set_tc_attributes
();
55
output_tcs.push_back(
m_current_tc
);
56
57
// Reset the current.
58
m_current_tc
=
TriggerCandidate
();
59
}
60
}
61
62
void
63
TCMakerBundleNAlgorithm::configure
(
const
nlohmann::json& config)
64
{
65
TriggerCandidateMaker::configure
(config);
66
if
(config.is_object() && config.contains(
"bundle_size"
)) {
67
m_bundle_size
= config[
"bundle_size"
];
68
}
69
}
70
71
REGISTER_TRIGGER_CANDIDATE_MAKER
(
TRACE_NAME
,
TCMakerBundleNAlgorithm
)
72
}
// namespace triggeralgs
73
TRACE_NAME
#define TRACE_NAME
Definition
TimestampEstimatorTimeSync.cpp:17
REGISTER_TRIGGER_CANDIDATE_MAKER
#define REGISTER_TRIGGER_CANDIDATE_MAKER(tcm_name, tcm_class)
Definition
TriggerCandidateFactory.hpp:14
triggeralgs::TCMakerBundleNAlgorithm
Definition
TCMakerBundleNAlgorithm.hpp:19
triggeralgs::TCMakerBundleNAlgorithm::bundle_condition
bool bundle_condition()
Definition
TCMakerBundleNAlgorithm.cpp:32
triggeralgs::TCMakerBundleNAlgorithm::process
void process(const TriggerActivity &input_ta, std::vector< TriggerCandidate > &output_tcs)
TA processing function that creates & fills TCs.
Definition
TCMakerBundleNAlgorithm.cpp:37
triggeralgs::TCMakerBundleNAlgorithm::m_bundle_size
uint64_t m_bundle_size
Definition
TCMakerBundleNAlgorithm.hpp:26
triggeralgs::TCMakerBundleNAlgorithm::m_current_tc
TriggerCandidate m_current_tc
Definition
TCMakerBundleNAlgorithm.hpp:27
triggeralgs::TCMakerBundleNAlgorithm::set_tc_attributes
void set_tc_attributes()
Definition
TCMakerBundleNAlgorithm.cpp:19
triggeralgs::TCMakerBundleNAlgorithm::configure
void configure(const nlohmann::json &config)
Definition
TCMakerBundleNAlgorithm.cpp:63
triggeralgs::TriggerCandidateMaker::m_tc_type_out
TriggerCandidate::Type m_tc_type_out
Configurable TC type output.
Definition
TriggerCandidateMaker.hpp:138
triggeralgs::TriggerCandidateMaker::configure
virtual void configure(const nlohmann::json &config)
Definition
TriggerCandidateMaker.hpp:101
TLOG_DEBUG
#define TLOG_DEBUG(lvl,...)
Definition
Logging.hpp:112
triggeralgs
Definition
AbstractFactory.hpp:18
triggeralgs::TLVL_IMPORTANT
@ TLVL_IMPORTANT
Definition
Logging.hpp:19
triggeralgs::TLVL_DEBUG_HIGH
@ TLVL_DEBUG_HIGH
Definition
Logging.hpp:24
TCMakerBundleNAlgorithm.hpp
dunedaq::trgdataformats::TriggerActivityData
Definition
TriggerActivityData.hpp:18
dunedaq::trgdataformats::TriggerActivityData::time_start
timestamp_t time_start
Definition
TriggerActivityData.hpp:46
dunedaq::trgdataformats::TriggerActivityData::detid
detid_t detid
Definition
TriggerActivityData.hpp:55
dunedaq::trgdataformats::TriggerCandidateData::Algorithm::kBundle
@ kBundle
Definition
TriggerCandidateData.hpp:78
triggeralgs::TriggerActivity
Definition
TriggerActivity.hpp:20
triggeralgs::TriggerCandidate
Definition
TriggerCandidate.hpp:20
Generated on
for DUNE-DAQ by
1.17.0