DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
daqdataformats
pybindsrc
trigger_record.cpp
Go to the documentation of this file.
1
8
9
#include "
daqdataformats/TriggerRecord.hpp
"
10
#include "
daqdataformats/TriggerRecordHeader.hpp
"
11
12
#include <pybind11/pybind11.h>
13
#include <pybind11/stl.h>
14
15
#include <memory>
16
#include <sstream>
17
#include <vector>
18
19
namespace
py = pybind11;
20
21
namespace
dunedaq::daqdataformats::python
{
22
23
void
24
register_trigger_record
(py::module& m)
25
{
26
py::class_<TriggerRecordHeader>(m,
"TriggerRecordHeader"
, pybind11::buffer_protocol())
27
.def(py::init<std::vector<ComponentRequest>
const
&>())
28
.def(py::init([](py::capsule capsule,
bool
copy_from_buffer) {
29
return
std::make_unique<TriggerRecordHeader>(capsule.get_pointer(), copy_from_buffer);
30
}))
31
.def(py::init<TriggerRecordHeader const&>())
32
.def(
"get_header"
, &
TriggerRecordHeader::get_header
)
33
.def(
"get_trigger_number"
, &
TriggerRecordHeader::get_trigger_number
)
34
//.def("set_trigger_number", &TriggerRecordHeader::set_trigger_number)
35
.def(
"get_trigger_timestamp"
, &
TriggerRecordHeader::get_trigger_timestamp
)
36
//.def("set_trigger_timestamp", &TriggerRecordHeader::set_trigger_timestamp)
37
.def(
"get_num_requested_components"
, &
TriggerRecordHeader::get_num_requested_components
)
38
.def(
"get_run_number"
, &
TriggerRecordHeader::get_run_number
)
39
//.def("set_run_number", &TriggerRecordHeader::set_run_number)
40
.def(
"get_status_bits"
, &
TriggerRecordHeader::get_status_bits
)
41
//.def("set_status_bits", &TriggerRecordHeader::set_status_bits)
42
.def(
"get_status_bit"
, &
TriggerRecordHeader::get_status_bit
)
43
//.def("set_status_bit", &TriggerRecordHeader::set_status_bit)
44
.def(
"get_trigger_type"
, &
TriggerRecordHeader::get_trigger_type
)
45
//.def("set_trigger_type", &TriggerRecordHeader::set_trigger_type)
46
.def(
"get_sequence_number"
, &
TriggerRecordHeader::get_sequence_number
)
47
//.def("set_sequence_number", &TriggerRecordHeader::set_sequence_number)
48
.def(
"get_max_sequence_number"
, &
TriggerRecordHeader::get_max_sequence_number
)
49
//.def("set_max_sequence_number", &TriggerRecordHeader::set_max_sequence_number)
50
.def(
"get_total_size_bytes"
, &
TriggerRecordHeader::get_total_size_bytes
)
51
.def(
52
"get_storage_location"
, &
TriggerRecordHeader::get_storage_location
, py::return_value_policy::reference_internal)
53
.def(
"get_element_id"
, &
TriggerRecordHeader::get_element_id
)
54
.def(
"get_component_for_source_id"
,
55
&
TriggerRecordHeader::get_component_for_source_id
,
56
py::return_value_policy::reference_internal)
57
.def(
"at"
, &
TriggerRecordHeader::at
)
58
.def(
"__getitem__"
, &
TriggerRecordHeader::at
, py::return_value_policy::reference_internal);
59
60
py::class_<TriggerRecordHeaderData>(m,
"TriggerRecordHeaderData"
)
61
.def(py::init<>())
62
.def_property_readonly_static(
"s_trigger_record_header_magic"
,
63
[](
const
py::object&) -> uint32_t {
// NOLINT(build/unsigned)
64
return
TriggerRecordHeaderData::s_trigger_record_header_magic
;
65
})
66
.def_property_readonly_static(
"s_trigger_record_header_version"
,
67
[](
const
py::object&) -> uint32_t {
// NOLINT(build/unsigned)
68
return
TriggerRecordHeaderData::s_trigger_record_header_version
;
69
})
70
.def_property_readonly_static(
"s_invalid_number_components"
,
71
[](
const
py::object&) -> uint64_t {
// NOLINT(build/unsigned)
72
return
TriggerRecordHeaderData::s_invalid_number_components
;
73
})
74
.def_property_readonly_static(
"s_default_status_bits"
,
75
[](
const
py::object&) -> uint32_t {
// NOLINT(build/unsigned)
76
return
TriggerRecordHeaderData::s_default_status_bits
;
77
})
78
.def_property_readonly(
"trigger_record_header_marker"
,
79
[](
const
TriggerRecordHeaderData
& self) -> uint32_t {
// NOLINT(build/unsigned)
80
return
self.
trigger_record_header_marker
;
81
})
82
.def_property_readonly(
83
"version"
, [](
const
TriggerRecordHeaderData
& self) -> uint32_t {
return
self.
version
; })
// NOLINT(build/unsigned)
84
.def_property_readonly(
"trigger_number"
,
85
[](
const
TriggerRecordHeaderData
& self) ->
trigger_number_t
{
return
self.
trigger_number
; })
86
.def_property_readonly(
"trigger_timestamp"
,
87
[](
const
TriggerRecordHeaderData
& self) ->
timestamp_t
{
return
self.
trigger_timestamp
; })
88
.def_property_readonly(
"num_requested_components"
,
89
[](
const
TriggerRecordHeaderData
& self) -> uint64_t {
// NOLINT(build/unsigned)
90
return
self.
num_requested_components
;
91
})
92
.def_property_readonly(
"run_number"
,
93
[](
const
TriggerRecordHeaderData
& self) ->
run_number_t
{
return
self.
run_number
; })
94
.def_property_readonly(
95
"status_bits"
,
96
[](
const
TriggerRecordHeaderData
& self) -> uint32_t {
return
self.
status_bits
; })
// NOLINT(build/unsigned)
97
.def_property_readonly(
"trigger_type"
,
98
[](
const
TriggerRecordHeaderData
& self) ->
trigger_type_t
{
return
self.
trigger_type
; })
99
.def_property_readonly(
100
"sequence_number"
, [](
const
TriggerRecordHeaderData
& self) ->
sequence_number_t
{
return
self.
sequence_number
; })
101
.def_property_readonly(
102
"max_sequence_number"
,
103
[](
const
TriggerRecordHeaderData
& self) ->
sequence_number_t
{
return
self.
max_sequence_number
; })
104
.def_property_readonly(
"element_id"
,
105
[](
const
TriggerRecordHeaderData
& self) ->
SourceID
{
return
self.
element_id
; })
106
.def(
"__str__"
,
107
[](
const
TriggerRecordHeaderData
& hdr) {
108
std::ostringstream oss;
109
oss << hdr;
110
return
oss.str();
111
})
112
.def(
"__repr__"
, [](
const
TriggerRecordHeaderData
& hdr) {
113
std::ostringstream oss;
114
oss <<
"<daqdataformats::TriggerRecordHeaderData "
<< hdr <<
">"
;
115
return
oss.str();
116
});
117
118
py::enum_<TriggerRecordStatusBits>(m,
"TriggerRecordStatusBits"
)
119
.value(
"kIncomplete"
,
TriggerRecordStatusBits::kIncomplete
)
120
.value(
"kMismatch"
,
TriggerRecordStatusBits::kMismatch
)
121
.value(
"kUnassigned2"
,
TriggerRecordStatusBits::kUnassigned2
)
122
.value(
"kUnassigned3"
,
TriggerRecordStatusBits::kUnassigned3
)
123
.value(
"kUnassigned4"
,
TriggerRecordStatusBits::kUnassigned4
)
124
.value(
"kUnassigned5"
,
TriggerRecordStatusBits::kUnassigned5
)
125
.value(
"kUnassigned6"
,
TriggerRecordStatusBits::kUnassigned6
)
126
.value(
"kUnassigned7"
,
TriggerRecordStatusBits::kUnassigned7
)
127
.value(
"kUnassigned8"
,
TriggerRecordStatusBits::kUnassigned8
)
128
.value(
"kUnassigned9"
,
TriggerRecordStatusBits::kUnassigned9
)
129
.value(
"kUnassigned10"
,
TriggerRecordStatusBits::kUnassigned10
)
130
.value(
"kUnassigned11"
,
TriggerRecordStatusBits::kUnassigned11
)
131
.value(
"kUnassigned12"
,
TriggerRecordStatusBits::kUnassigned12
)
132
.value(
"kUnassigned13"
,
TriggerRecordStatusBits::kUnassigned13
)
133
.value(
"kUnassigned14"
,
TriggerRecordStatusBits::kUnassigned14
)
134
.value(
"kUnassigned15"
,
TriggerRecordStatusBits::kUnassigned15
)
135
.value(
"kUnassigned16"
,
TriggerRecordStatusBits::kUnassigned16
)
136
.value(
"kUnassigned17"
,
TriggerRecordStatusBits::kUnassigned17
)
137
.value(
"kUnassigned18"
,
TriggerRecordStatusBits::kUnassigned18
)
138
.value(
"kUnassigned19"
,
TriggerRecordStatusBits::kUnassigned19
)
139
.value(
"kUnassigned20"
,
TriggerRecordStatusBits::kUnassigned20
)
140
.value(
"kUnassigned21"
,
TriggerRecordStatusBits::kUnassigned21
)
141
.value(
"kUnassigned22"
,
TriggerRecordStatusBits::kUnassigned22
)
142
.value(
"kUnassigned23"
,
TriggerRecordStatusBits::kUnassigned23
)
143
.value(
"kUnassigned24"
,
TriggerRecordStatusBits::kUnassigned24
)
144
.value(
"kUnassigned25"
,
TriggerRecordStatusBits::kUnassigned25
)
145
.value(
"kUnassigned26"
,
TriggerRecordStatusBits::kUnassigned26
)
146
.value(
"kUnassigned27"
,
TriggerRecordStatusBits::kUnassigned27
)
147
.value(
"kUnassigned28"
,
TriggerRecordStatusBits::kUnassigned28
)
148
.value(
"kUnassigned29"
,
TriggerRecordStatusBits::kUnassigned29
)
149
.value(
"kUnassigned30"
,
TriggerRecordStatusBits::kUnassigned30
)
150
.value(
"kUnassigned31"
,
TriggerRecordStatusBits::kUnassigned31
)
151
.value(
"kInvalid"
,
TriggerRecordStatusBits::kInvalid
);
152
153
py::class_<TriggerRecord> py_trigger_record(m,
"TriggerRecord"
, pybind11::buffer_protocol());
154
py_trigger_record.def(py::init<TriggerRecordHeader const&>())
155
.def(py::init<std::vector<ComponentRequest>
const
&>())
156
.def(
157
"get_header_ref"
,
158
[](
TriggerRecord
& self) {
return
self.get_header_ref(); },
159
py::return_value_policy::reference_internal)
160
.def(
"get_header_data"
, &
TriggerRecord::get_header_data
)
161
.def(
162
"get_fragments_ref"
,
163
[](
TriggerRecord
& self) {
164
auto
fragments = py::list();
165
for
(
auto
& fragment : self.get_fragments_ref()) {
166
auto
py_fragment = py::cast(*fragment, py::return_value_policy::reference);
167
fragments.append(py_fragment);
168
}
169
return
fragments;
170
},
171
py::return_value_policy::reference_internal)
172
.def(
"get_total_size_bytes"
, &
TriggerRecord::get_total_size_bytes
);
173
}
// NOLINT
174
175
}
// namespace dunedaq::daqdataformats::python
TriggerRecordHeader.hpp
TriggerRecord.hpp
dunedaq::daqdataformats::TriggerRecordHeader::get_num_requested_components
uint64_t get_num_requested_components() const
Definition
TriggerRecordHeader.hpp:61
dunedaq::daqdataformats::TriggerRecordHeader::at
const ComponentRequest & at(size_t idx) const
Access ComponentRequest by index.
Definition
TriggerRecordHeader.hpp:232
dunedaq::daqdataformats::TriggerRecordHeader::get_total_size_bytes
size_t get_total_size_bytes() const
Get the total size of the TriggerRecordHeader, including header and all component requests.
Definition
TriggerRecordHeader.hpp:111
dunedaq::daqdataformats::TriggerRecordHeader::get_storage_location
const void * get_storage_location() const
Get read-only access to the underlying flat data array.
Definition
TriggerRecordHeader.hpp:117
dunedaq::daqdataformats::TriggerRecordHeader::get_component_for_source_id
ComponentRequest const & get_component_for_source_id(SourceID const &source_id) const
Access ComponentRequest by SourceID.
Definition
TriggerRecordHeader.hpp:244
dunedaq::daqdataformats::TriggerRecordHeader::get_max_sequence_number
trigger_number_t get_max_sequence_number() const
Definition
TriggerRecordHeader.hpp:96
dunedaq::daqdataformats::TriggerRecordHeader::get_trigger_type
trigger_type_t get_trigger_type() const
Definition
TriggerRecordHeader.hpp:90
dunedaq::daqdataformats::TriggerRecordHeader::get_run_number
run_number_t get_run_number() const
Definition
TriggerRecordHeader.hpp:66
dunedaq::daqdataformats::TriggerRecordHeader::get_element_id
SourceID get_element_id() const
Get the SourceID for this TriggerRecordHeader.
Definition
TriggerRecordHeader.hpp:103
dunedaq::daqdataformats::TriggerRecordHeader::get_header
TriggerRecordHeaderData get_header() const
Definition
TriggerRecordHeader.hpp:53
dunedaq::daqdataformats::TriggerRecordHeader::get_trigger_timestamp
timestamp_t get_trigger_timestamp() const
Definition
TriggerRecordHeader.hpp:58
dunedaq::daqdataformats::TriggerRecordHeader::get_status_bits
std::bitset< 32 > get_status_bits() const
Definition
TriggerRecordHeader.hpp:69
dunedaq::daqdataformats::TriggerRecordHeader::get_trigger_number
trigger_number_t get_trigger_number() const
Definition
TriggerRecordHeader.hpp:55
dunedaq::daqdataformats::TriggerRecordHeader::get_sequence_number
trigger_number_t get_sequence_number() const
Definition
TriggerRecordHeader.hpp:93
dunedaq::daqdataformats::TriggerRecordHeader::get_status_bit
bool get_status_bit(TriggerRecordStatusBits bit) const
Get the value of the given status bit.
Definition
TriggerRecordHeader.hpp:77
dunedaq::daqdataformats::TriggerRecord
C++ Representation of a DUNE TriggerRecord, consisting of a TriggerRecordHeader object and a vector o...
Definition
TriggerRecord.hpp:27
dunedaq::daqdataformats::TriggerRecord::get_header_data
TriggerRecordHeaderData get_header_data() const
Definition
TriggerRecord.hpp:48
dunedaq::daqdataformats::TriggerRecord::get_total_size_bytes
size_t get_total_size_bytes() const
Get size of trigger record from underlying TriggerRecordHeader and Fragments.
Definition
TriggerRecord.hpp:66
dunedaq::daqdataformats::python
Definition
component_request.cpp:18
dunedaq::daqdataformats::python::register_trigger_record
void register_trigger_record(py::module &)
Definition
trigger_record.cpp:24
dunedaq::daqdataformats::run_number_t
uint32_t run_number_t
Definition
Types.hpp:17
dunedaq::daqdataformats::trigger_number_t
uint64_t trigger_number_t
Definition
Types.hpp:18
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned20
@ kUnassigned20
Definition
TriggerRecordHeaderData.hpp:91
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned13
@ kUnassigned13
Definition
TriggerRecordHeaderData.hpp:84
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned26
@ kUnassigned26
Definition
TriggerRecordHeaderData.hpp:97
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned6
@ kUnassigned6
Definition
TriggerRecordHeaderData.hpp:77
dunedaq::daqdataformats::TriggerRecordStatusBits::kMismatch
@ kMismatch
We have as many fragments as requested but they do not match the requested components.
Definition
TriggerRecordHeaderData.hpp:72
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned14
@ kUnassigned14
Definition
TriggerRecordHeaderData.hpp:85
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned4
@ kUnassigned4
Definition
TriggerRecordHeaderData.hpp:75
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned2
@ kUnassigned2
Definition
TriggerRecordHeaderData.hpp:73
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned16
@ kUnassigned16
Definition
TriggerRecordHeaderData.hpp:87
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned27
@ kUnassigned27
Definition
TriggerRecordHeaderData.hpp:98
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned10
@ kUnassigned10
Definition
TriggerRecordHeaderData.hpp:81
dunedaq::daqdataformats::TriggerRecordStatusBits::kIncomplete
@ kIncomplete
Indicates a trigger record that is missing requested components.
Definition
TriggerRecordHeaderData.hpp:71
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned9
@ kUnassigned9
Definition
TriggerRecordHeaderData.hpp:80
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned24
@ kUnassigned24
Definition
TriggerRecordHeaderData.hpp:95
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned7
@ kUnassigned7
Definition
TriggerRecordHeaderData.hpp:78
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned28
@ kUnassigned28
Definition
TriggerRecordHeaderData.hpp:99
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned21
@ kUnassigned21
Definition
TriggerRecordHeaderData.hpp:92
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned3
@ kUnassigned3
Definition
TriggerRecordHeaderData.hpp:74
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned31
@ kUnassigned31
Definition
TriggerRecordHeaderData.hpp:102
dunedaq::daqdataformats::TriggerRecordStatusBits::kInvalid
@ kInvalid
Status bit 32 and higher are not valid (status_bits is only 32 bits).
Definition
TriggerRecordHeaderData.hpp:103
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned18
@ kUnassigned18
Definition
TriggerRecordHeaderData.hpp:89
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned25
@ kUnassigned25
Definition
TriggerRecordHeaderData.hpp:96
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned19
@ kUnassigned19
Definition
TriggerRecordHeaderData.hpp:90
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned5
@ kUnassigned5
Definition
TriggerRecordHeaderData.hpp:76
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned29
@ kUnassigned29
Definition
TriggerRecordHeaderData.hpp:100
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned23
@ kUnassigned23
Definition
TriggerRecordHeaderData.hpp:94
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned11
@ kUnassigned11
Definition
TriggerRecordHeaderData.hpp:82
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned15
@ kUnassigned15
Definition
TriggerRecordHeaderData.hpp:86
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned17
@ kUnassigned17
Definition
TriggerRecordHeaderData.hpp:88
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned22
@ kUnassigned22
Definition
TriggerRecordHeaderData.hpp:93
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned12
@ kUnassigned12
Definition
TriggerRecordHeaderData.hpp:83
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned30
@ kUnassigned30
Definition
TriggerRecordHeaderData.hpp:101
dunedaq::daqdataformats::TriggerRecordStatusBits::kUnassigned8
@ kUnassigned8
Definition
TriggerRecordHeaderData.hpp:79
dunedaq::daqdataformats::sequence_number_t
uint16_t sequence_number_t
Type used to represent sequence within a trigger record.
Definition
Types.hpp:38
dunedaq::daqdataformats::timestamp_t
uint64_t timestamp_t
Type used to represent DUNE timing system timestamps.
Definition
Types.hpp:26
dunedaq::daqdataformats::trigger_type_t
uint64_t trigger_type_t
Type used to represent Trigger Decision trigger types.
Definition
Types.hpp:35
dunedaq::daqdataformats::SourceID
SourceID is a generalized representation of the source of a piece of data in the DAQ....
Definition
SourceID.hpp:32
dunedaq::daqdataformats::TriggerRecordHeaderData
Data fields associated with a TriggerRecordHeader.
Definition
TriggerRecordHeaderData.hpp:28
dunedaq::daqdataformats::TriggerRecordHeaderData::version
uint32_t version
Definition
TriggerRecordHeaderData.hpp:39
dunedaq::daqdataformats::TriggerRecordHeaderData::max_sequence_number
sequence_number_t max_sequence_number
Maximum sequence number of TriggerRecords corresponding to this trigger.
Definition
TriggerRecordHeaderData.hpp:60
dunedaq::daqdataformats::TriggerRecordHeaderData::trigger_number
trigger_number_t trigger_number
Definition
TriggerRecordHeaderData.hpp:41
dunedaq::daqdataformats::TriggerRecordHeaderData::sequence_number
sequence_number_t sequence_number
Sequence number of this TriggerRecord within the trigger response.
Definition
TriggerRecordHeaderData.hpp:57
dunedaq::daqdataformats::TriggerRecordHeaderData::element_id
SourceID element_id
Definition
TriggerRecordHeaderData.hpp:64
dunedaq::daqdataformats::TriggerRecordHeaderData::trigger_timestamp
timestamp_t trigger_timestamp
Timestamp of the TriggerDecision.
Definition
TriggerRecordHeaderData.hpp:44
dunedaq::daqdataformats::TriggerRecordHeaderData::num_requested_components
uint64_t num_requested_components
Number of ComponentRequest objects stored in the TriggerRecordHeader.
Definition
TriggerRecordHeaderData.hpp:47
dunedaq::daqdataformats::TriggerRecordHeaderData::status_bits
uint32_t status_bits
Definition
TriggerRecordHeaderData.hpp:51
dunedaq::daqdataformats::TriggerRecordHeaderData::trigger_type
trigger_type_t trigger_type
Type of the TriggerDecision.
Definition
TriggerRecordHeaderData.hpp:54
dunedaq::daqdataformats::TriggerRecordHeaderData::s_trigger_record_header_version
static constexpr uint32_t s_trigger_record_header_version
Definition
TriggerRecordHeaderData.hpp:32
dunedaq::daqdataformats::TriggerRecordHeaderData::trigger_record_header_marker
uint32_t trigger_record_header_marker
Definition
TriggerRecordHeaderData.hpp:38
dunedaq::daqdataformats::TriggerRecordHeaderData::s_trigger_record_header_magic
static constexpr uint32_t s_trigger_record_header_magic
Magic bytes used to identify a TriggerRecordHeaderData struct in a raw data stream.
Definition
TriggerRecordHeaderData.hpp:30
dunedaq::daqdataformats::TriggerRecordHeaderData::run_number
run_number_t run_number
Definition
TriggerRecordHeaderData.hpp:49
dunedaq::daqdataformats::TriggerRecordHeaderData::s_default_status_bits
static constexpr uint32_t s_default_status_bits
Definition
TriggerRecordHeaderData.hpp:36
dunedaq::daqdataformats::TriggerRecordHeaderData::s_invalid_number_components
static constexpr uint64_t s_invalid_number_components
Definition
TriggerRecordHeaderData.hpp:33
Generated on
for DUNE-DAQ by
1.17.0