DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
trigger
include
trigger
TCWrapper.hpp
Go to the documentation of this file.
1
8
9
#ifndef TRIGGER_INCLUDE_TRIGGER_TCWRAPPER_HPP_
10
#define TRIGGER_INCLUDE_TRIGGER_TCWRAPPER_HPP_
11
12
#include "
daqdataformats/Fragment.hpp
"
13
14
#include "
triggeralgs/TriggerObjectOverlay.hpp
"
15
#include "
triggeralgs/TriggerActivity.hpp
"
16
#include "
triggeralgs/TriggerCandidate.hpp
"
17
18
namespace
dunedaq
{
19
namespace
trigger
{
20
struct
TCWrapper
21
{
22
using
FrameType
=
TCWrapper
;
23
triggeralgs::TriggerCandidate
candidate
;
24
std::vector<uint8_t>
candidate_overlay_buffer
;
25
// Don't really want this default ctor, but IterableQueueModel requires it
26
//TCWrapper() {}
27
28
TCWrapper
(
triggeralgs::TriggerCandidate
c =
triggeralgs::TriggerCandidate
())
29
:
candidate
(c)
30
{
31
populate_buffer
();
32
}
33
34
void
populate_buffer
()
35
{
36
candidate_overlay_buffer
.resize(
triggeralgs::get_overlay_nbytes
(
candidate
));
37
triggeralgs::write_overlay
(
candidate
,
candidate_overlay_buffer
.data());
38
}
39
40
// comparable based on first timestamp
41
bool
operator<
(
const
TCWrapper
& other)
const
42
{
43
return
std::tie(this->candidate.
time_start
, this->candidate.type) < std::tie(other.
candidate
.
time_start
, other.
candidate
.
type
);
44
}
45
46
uint64_t
get_timestamp
() const
// NOLINT(build/unsigned)
47
{
48
return
candidate
.time_start;
49
}
50
51
void
set_timestamp
(uint64_t ts)
// NOLINT(build/unsigned)
52
{
53
candidate
.time_start = ts;
54
}
55
56
void
fake_timestamps
(uint64_t first_timestamp, uint64_t
/*offset */
= 0)
// NOLINT(build/unsigned)
57
{
58
candidate
.time_start = first_timestamp;
59
populate_buffer
();
60
}
61
62
size_t
get_payload_size
() {
return
candidate_overlay_buffer
.size(); }
63
64
size_t
get_num_frames
() {
return
1; }
65
66
size_t
get_frame_size
() {
return
get_payload_size
(); }
67
68
TCWrapper
*
begin
()
69
{
70
return
(
TCWrapper
*)(
candidate_overlay_buffer
.data());
71
}
72
73
TCWrapper
*
end
()
74
{
75
return
(
TCWrapper
*)(
candidate_overlay_buffer
.data()+
candidate_overlay_buffer
.size());
76
}
77
78
//static const constexpr size_t fixed_payload_size = 5568;
79
static
const
constexpr
daqdataformats::SourceID::Subsystem
subsystem
=
daqdataformats::SourceID::Subsystem::kTrigger
;
80
static
const
constexpr
daqdataformats::FragmentType
fragment_type
=
daqdataformats::FragmentType::kTriggerCandidate
;
81
// No idea what this should really be set to
82
static
const
constexpr
uint64_t
expected_tick_difference
= 1;
// NOLINT(build/unsigned)
83
84
};
85
}
// namespace trigger
86
}
// namespace dunedaq
87
#endif
// TRIGGER_INCLUDE_TRIGGER_TCWRAPPER_HPP_
Fragment.hpp
TriggerActivity.hpp
TriggerCandidate.hpp
dunedaq::daqdataformats::FragmentType
FragmentType
All defined Fragment types.
Definition
FragmentHeader.hpp:114
dunedaq::daqdataformats::FragmentType::kTriggerCandidate
@ kTriggerCandidate
Definition
FragmentHeader.hpp:133
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::TriggerCandidateData::type
Type type
Definition
TriggerCandidateData.hpp:94
dunedaq::trgdataformats::TriggerCandidateData::time_start
timestamp_t time_start
Definition
TriggerCandidateData.hpp:86
dunedaq::trigger::TCWrapper::FrameType
TCWrapper FrameType
Definition
TCWrapper.hpp:22
dunedaq::trigger::TCWrapper::set_timestamp
void set_timestamp(uint64_t ts)
Definition
TCWrapper.hpp:51
dunedaq::trigger::TCWrapper::fake_timestamps
void fake_timestamps(uint64_t first_timestamp, uint64_t=0)
Definition
TCWrapper.hpp:56
dunedaq::trigger::TCWrapper::TCWrapper
TCWrapper(triggeralgs::TriggerCandidate c=triggeralgs::TriggerCandidate())
Definition
TCWrapper.hpp:28
dunedaq::trigger::TCWrapper::operator<
bool operator<(const TCWrapper &other) const
Definition
TCWrapper.hpp:41
dunedaq::trigger::TCWrapper::get_timestamp
uint64_t get_timestamp() const
Definition
TCWrapper.hpp:46
dunedaq::trigger::TCWrapper::begin
TCWrapper * begin()
Definition
TCWrapper.hpp:68
dunedaq::trigger::TCWrapper::fragment_type
static const constexpr daqdataformats::FragmentType fragment_type
Definition
TCWrapper.hpp:80
dunedaq::trigger::TCWrapper::candidate_overlay_buffer
std::vector< uint8_t > candidate_overlay_buffer
Definition
TCWrapper.hpp:24
dunedaq::trigger::TCWrapper::populate_buffer
void populate_buffer()
Definition
TCWrapper.hpp:34
dunedaq::trigger::TCWrapper::get_frame_size
size_t get_frame_size()
Definition
TCWrapper.hpp:66
dunedaq::trigger::TCWrapper::get_num_frames
size_t get_num_frames()
Definition
TCWrapper.hpp:64
dunedaq::trigger::TCWrapper::expected_tick_difference
static const constexpr uint64_t expected_tick_difference
Definition
TCWrapper.hpp:82
dunedaq::trigger::TCWrapper::candidate
triggeralgs::TriggerCandidate candidate
Definition
TCWrapper.hpp:23
dunedaq::trigger::TCWrapper::get_payload_size
size_t get_payload_size()
Definition
TCWrapper.hpp:62
dunedaq::trigger::TCWrapper::end
TCWrapper * end()
Definition
TCWrapper.hpp:73
dunedaq::trigger::TCWrapper::subsystem
static const constexpr daqdataformats::SourceID::Subsystem subsystem
Definition
TCWrapper.hpp:79
triggeralgs::TriggerCandidate
Definition
TriggerCandidate.hpp:20
TriggerObjectOverlay.hpp
Generated on
for DUNE-DAQ by
1.17.0