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/TriggerObjectOverlay.hpp
"
15
#include "
triggeralgs/TriggerPrimitive.hpp
"
16
#include "
triggeralgs/TriggerActivity.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) < std::tie(other.
activity
.
time_start
, other.
activity
.
channel_start
);
47
}
48
49
uint64_t
get_timestamp
() const
// NOLINT(build/unsigned)
50
{
51
return
activity
.time_start;
52
}
53
54
void
set_timestamp
(uint64_t ts)
// NOLINT(build/unsigned)
55
{
56
activity
.time_start = ts;
57
}
58
59
void
fake_timestamps
(uint64_t first_timestamp, uint64_t
/*offset */
= 0)
// NOLINT(build/unsigned)
60
{
61
activity
.time_start = first_timestamp;
62
populate_buffer
();
63
}
64
65
size_t
get_payload_size
() {
return
activity_overlay_buffer
.size(); }
66
67
size_t
get_num_frames
() {
return
1; }
68
69
size_t
get_frame_size
() {
return
get_payload_size
(); }
70
71
TAWrapper
*
begin
()
72
{
73
return
(
TAWrapper
*)(
activity_overlay_buffer
.data());
74
}
75
76
TAWrapper
*
end
()
77
{
78
return
(
TAWrapper
*)(
activity_overlay_buffer
.data()+
activity_overlay_buffer
.size());
79
}
80
81
static
const
constexpr
daqdataformats::SourceID::Subsystem
subsystem
=
daqdataformats::SourceID::Subsystem::kTrigger
;
82
static
const
constexpr
daqdataformats::FragmentType
fragment_type
=
daqdataformats::FragmentType::kTriggerActivity
;
83
// No idea what this should really be set to
84
static
const
constexpr
uint64_t
expected_tick_difference
= 1;
// NOLINT(build/unsigned)
85
86
};
87
88
}
// namespace trigger
89
}
// namespace dunedaq
90
/*
91
namespace dunedaq {
92
namespace datahandlinglibs {
93
94
template<>
95
uint64_t
96
get_frame_iterator_timestamp(uint8_t* it)
97
{
98
trgdataformats::TriggerActivity* activity = reinterpret_cast<trgdataformats::TriggerActivity*>(it);
99
return activity->data.time_start;
100
}
101
102
}
103
}
104
*/
105
#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
Including Qt Headers.
Definition
module.cpp:16
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:68
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:50
dunedaq::trgdataformats::TriggerActivityData::time_start
timestamp_t time_start
Definition
TriggerActivityData.hpp:46
dunedaq::trigger::TAWrapper::subsystem
static const constexpr daqdataformats::SourceID::Subsystem subsystem
Definition
TAWrapper.hpp:81
dunedaq::trigger::TAWrapper::get_frame_size
size_t get_frame_size()
Definition
TAWrapper.hpp:69
dunedaq::trigger::TAWrapper::fragment_type
static const constexpr daqdataformats::FragmentType fragment_type
Definition
TAWrapper.hpp:82
dunedaq::trigger::TAWrapper::set_timestamp
void set_timestamp(uint64_t ts)
Definition
TAWrapper.hpp:54
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:67
dunedaq::trigger::TAWrapper::expected_tick_difference
static const constexpr uint64_t expected_tick_difference
Definition
TAWrapper.hpp:84
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:65
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:59
dunedaq::trigger::TAWrapper::begin
TAWrapper * begin()
Definition
TAWrapper.hpp:71
dunedaq::trigger::TAWrapper::get_timestamp
uint64_t get_timestamp() const
Definition
TAWrapper.hpp:49
dunedaq::trigger::TAWrapper::end
TAWrapper * end()
Definition
TAWrapper.hpp:76
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.17.0