DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
trigger
include
trigger
TAWrapper.hpp
Go to the documentation of this file.
1
8
9
#ifndef TRIGGER_INCLUDE_TRIGGER_TAWRAPPER_HPP_
10
#define TRIGGER_INCLUDE_TRIGGER_TAWRAPPER_HPP_
11
12
#include "
daqdataformats/Fragment.hpp
"
13
#include "
iomanager/Receiver.hpp
"
14
#include "
triggeralgs/TriggerActivity.hpp
"
15
#include "
triggeralgs/TriggerObjectOverlay.hpp
"
16
#include "
triggeralgs/TriggerPrimitive.hpp
"
17
18
namespace
dunedaq
{
19
namespace
trigger
{
20
struct
TAWrapper
21
{
22
23
using
FrameType
=
TAWrapper
;
24
25
triggeralgs::TriggerActivity
activity
;
26
std::vector<uint8_t>
activity_overlay_buffer
;
27
28
// Don't really want this default ctor, but IterableQueueModel requires it
29
// TAWrapper() {}
30
31
TAWrapper
(
triggeralgs::TriggerActivity
a =
triggeralgs::TriggerActivity
())
32
:
activity
(a)
33
{
34
populate_buffer
();
35
}
36
37
void
populate_buffer
()
38
{
39
activity_overlay_buffer
.resize(
triggeralgs::get_overlay_nbytes
(
activity
));
40
triggeralgs::write_overlay
(
activity
,
activity_overlay_buffer
.data());
41
}
42
43
// comparable based on first timestamp
44
bool
operator<
(
const
TAWrapper
& other)
const
45
{
46
return
std::tie(this->activity.
time_start
, this->activity.channel_start) <
47
std::tie(other.
activity
.
time_start
, other.
activity
.
channel_start
);
48
}
49
50
uint64_t
get_timestamp
() const
// NOLINT(build/unsigned)
51
{
52
return
activity
.
time_start
;
53
}
54
55
void
set_timestamp
(uint64_t ts)
// NOLINT(build/unsigned)
56
{
57
activity
.
time_start
= ts;
58
}
59
60
void
fake_timestamps
(uint64_t first_timestamp, uint64_t
/*offset */
= 0)
// NOLINT(build/unsigned)
61
{
62
activity
.
time_start
= first_timestamp;
63
populate_buffer
();
64
}
65
66
size_t
get_payload_size
() {
return
activity_overlay_buffer
.size(); }
67
68
size_t
get_num_frames
() {
return
1; }
69
70
size_t
get_frame_size
() {
return
get_payload_size
(); }
71
72
TAWrapper
*
begin
() {
return
(
TAWrapper
*)(
activity_overlay_buffer
.data()); }
73
74
TAWrapper
*
end
() {
return
(
TAWrapper
*)(
activity_overlay_buffer
.data() +
activity_overlay_buffer
.size()); }
75
76
static
const
constexpr
daqdataformats::SourceID::Subsystem
subsystem
=
daqdataformats::SourceID::Subsystem::kTrigger
;
77
static
const
constexpr
daqdataformats::FragmentType
fragment_type
=
daqdataformats::FragmentType::kTriggerActivity
;
78
// No idea what this should really be set to
79
static
const
constexpr
uint64_t
expected_tick_difference
= 1;
// NOLINT(build/unsigned)
80
};
81
82
}
// namespace trigger
83
}
// namespace dunedaq
84
/*
85
namespace dunedaq {
86
namespace datahandlinglibs {
87
88
template<>
89
uint64_t
90
get_frame_iterator_timestamp(uint8_t* it)
91
{
92
trgdataformats::TriggerActivity* activity = reinterpret_cast<trgdataformats::TriggerActivity*>(it);
93
return activity->data.time_start;
94
}
95
96
}
97
}
98
*/
99
#endif
// TRIGGER_INCLUDE_TRIGGER_TAWRAPPER_HPP_
Fragment.hpp
TriggerActivity.hpp
Receiver.hpp
dunedaq::daqdataformats::FragmentType
FragmentType
All defined Fragment types.
Definition
FragmentHeader.hpp:114
dunedaq::daqdataformats::FragmentType::kTriggerActivity
@ kTriggerActivity
Definition
FragmentHeader.hpp:132
dunedaq::trigger
Definition
AlgorithmPlugins.hpp:24
dunedaq
The DUNE-DAQ namespace.
Definition
cib_utilities.cpp:5
triggeralgs::write_overlay
void write_overlay(const Object &object, void *buffer)
Definition
TriggerObjectOverlay.hpp:54
triggeralgs::get_overlay_nbytes
size_t get_overlay_nbytes(const Object &object)
Definition
TriggerObjectOverlay.hpp:65
dunedaq::daqdataformats::SourceID::Subsystem
Subsystem
The Subsystem enum describes the kind of source we're dealing with.
Definition
SourceID.hpp:40
dunedaq::daqdataformats::SourceID::Subsystem::kTrigger
@ kTrigger
Definition
SourceID.hpp:44
dunedaq::trgdataformats::TriggerActivityData::channel_start
channel_t channel_start
Definition
TriggerActivityData.hpp:58
dunedaq::trgdataformats::TriggerActivityData::time_start
timestamp_t time_start
Definition
TriggerActivityData.hpp:54
dunedaq::trigger::TAWrapper::subsystem
static const constexpr daqdataformats::SourceID::Subsystem subsystem
Definition
TAWrapper.hpp:76
dunedaq::trigger::TAWrapper::get_frame_size
size_t get_frame_size()
Definition
TAWrapper.hpp:70
dunedaq::trigger::TAWrapper::fragment_type
static const constexpr daqdataformats::FragmentType fragment_type
Definition
TAWrapper.hpp:77
dunedaq::trigger::TAWrapper::set_timestamp
void set_timestamp(uint64_t ts)
Definition
TAWrapper.hpp:55
dunedaq::trigger::TAWrapper::activity_overlay_buffer
std::vector< uint8_t > activity_overlay_buffer
Definition
TAWrapper.hpp:26
dunedaq::trigger::TAWrapper::get_num_frames
size_t get_num_frames()
Definition
TAWrapper.hpp:68
dunedaq::trigger::TAWrapper::expected_tick_difference
static const constexpr uint64_t expected_tick_difference
Definition
TAWrapper.hpp:79
dunedaq::trigger::TAWrapper::activity
triggeralgs::TriggerActivity activity
Definition
TAWrapper.hpp:25
dunedaq::trigger::TAWrapper::get_payload_size
size_t get_payload_size()
Definition
TAWrapper.hpp:66
dunedaq::trigger::TAWrapper::operator<
bool operator<(const TAWrapper &other) const
Definition
TAWrapper.hpp:44
dunedaq::trigger::TAWrapper::fake_timestamps
void fake_timestamps(uint64_t first_timestamp, uint64_t=0)
Definition
TAWrapper.hpp:60
dunedaq::trigger::TAWrapper::begin
TAWrapper * begin()
Definition
TAWrapper.hpp:72
dunedaq::trigger::TAWrapper::get_timestamp
uint64_t get_timestamp() const
Definition
TAWrapper.hpp:50
dunedaq::trigger::TAWrapper::end
TAWrapper * end()
Definition
TAWrapper.hpp:74
dunedaq::trigger::TAWrapper::TAWrapper
TAWrapper(triggeralgs::TriggerActivity a=triggeralgs::TriggerActivity())
Definition
TAWrapper.hpp:31
dunedaq::trigger::TAWrapper::populate_buffer
void populate_buffer()
Definition
TAWrapper.hpp:37
dunedaq::trigger::TAWrapper::FrameType
TAWrapper FrameType
Definition
TAWrapper.hpp:23
triggeralgs::TriggerActivity
Definition
TriggerActivity.hpp:20
TriggerObjectOverlay.hpp
TriggerPrimitive.hpp
Generated on
for DUNE-DAQ by
1.18.0