DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
trigger_primitive.cpp
Go to the documentation of this file.
1
8
10
11#include <pybind11/pybind11.h>
12#include <pybind11/stl.h>
13
14// NOLINTBEGIN(build/unsigned)
15
16namespace py = pybind11;
17
19
20void
22{
23
24
25 py::class_<TriggerPrimitive> trigger_primitive(m, "TriggerPrimitive", py::buffer_protocol());
26 trigger_primitive
27 .def(py::init())
28 .def(py::init([](py::capsule capsule) {
29 auto tp = *static_cast<TriggerPrimitive*>(capsule.get_pointer());
30 return tp;
31 } ))
32 .def_property_readonly_static("s_trigger_primitive_version", [](py::object /*self*/) {return TriggerPrimitive::s_trigger_primitive_version;})
33 .def_property_readonly_static("s_invalid_samples_over_threshold", [](py::object /*self*/) {return TriggerPrimitive::s_invalid_samples_over_threshold;})
34 .def_property_readonly_static("s_invalid_samples_to_peak", [](py::object /*self*/) {return TriggerPrimitive::s_invalid_samples_to_peak;})
35 .def_property_readonly_static("s_invalid_tp_channel", [](py::object /*self*/) {return TriggerPrimitive::s_invalid_tp_channel;})
36 .def_property_readonly_static("s_expected_bytes", [](py::object /*self*/) {return TriggerPrimitive::s_expected_bytes;})
37 .def_property_readonly("version", [](TriggerPrimitive& self) -> uint8_t {return self.version;})
38 .def_property_readonly("flag", [](TriggerPrimitive& self) -> uint8_t {return self.flag;})
39 .def_property_readonly("detid", [](TriggerPrimitive& self) -> uint8_t {return self.detid;})
40 .def_property_readonly("channel", [](TriggerPrimitive& self) -> uint32_t {return uint32_t(self.channel);})
41 .def_property_readonly("samples_over_threshold", [](TriggerPrimitive& self) -> uint16_t {return self.samples_over_threshold;})
42 .def_property_readonly("time_start", [](TriggerPrimitive& self) -> uint64_t {return self.time_start;})
43 .def_property_readonly("samples_to_peak", [](TriggerPrimitive& self) -> uint16_t {return self.samples_to_peak;})
44 .def_property_readonly("adc_integral", [](TriggerPrimitive& self) -> uint32_t {return self.adc_integral;})
45 .def_property_readonly("adc_peak", [](TriggerPrimitive& self) -> uint16_t {return self.adc_peak;})
46 .def("get_timestamp", &TriggerPrimitive::get_timestamp)
47 .def("set_timestamp", &TriggerPrimitive::set_timestamp)
48 .def("__lt__", &TriggerPrimitive::operator<)
49 .def_static("sizeof", [](){ return sizeof(TriggerPrimitive); })
50 ;
51
52}
53
54} // namespace dunedaq::trgdataformats::python
55
56static_assert(
58 "Version of TriggerPrimitive appears to have changed; as a developer please update the Python bindings in this file before updating this static_assert");
59
60// NOLINTEND(build/unsigned)
void register_trigger_primitive(pybind11::module &)
A single energy deposition on a TPC or PDS channel.
static constexpr channel_t s_invalid_tp_channel
static constexpr version_t s_trigger_primitive_version
static constexpr uint16_t s_invalid_samples_over_threshold
static constexpr std::size_t s_expected_bytes
static constexpr uint16_t s_invalid_samples_to_peak