DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
trgdataformats
pybindsrc
trigger_activity.cpp
Go to the documentation of this file.
1
8
9
#include "
trgdataformats/TriggerObjectOverlay.hpp
"
10
11
#include <pybind11/pybind11.h>
12
#include <pybind11/stl.h>
13
#include <cstring>
14
15
namespace
py = pybind11;
16
17
namespace
dunedaq
{
18
namespace
trgdataformats
{
19
namespace
python
{
20
21
/*
22
Doesn't work
23
*/
24
struct
TriggerActivityHolder
{
25
26
27
TriggerActivityHolder
(
void
*
ptr
,
size_t
size
) {
28
m_size
=
size
;
29
m_data
.reset(
new
uint8_t[
m_size
]);
30
std::memcpy(
m_data
.get(),
ptr
,
size
);
31
}
32
33
TriggerActivity
*
ptr
() {
return
reinterpret_cast<
TriggerActivity
*
>
(
m_data
.get()); }
34
35
size_t
m_size
;
36
std::unique_ptr<uint8_t[]>
m_data
;
37
38
};
39
40
void
41
register_trigger_activity
(py::module& m)
42
{
43
44
45
py::class_<TriggerActivityData> trigger_activity_data(m,
"TriggerActivityData"
, py::buffer_protocol());
46
trigger_activity_data
47
.def(py::init())
48
.def(py::init([](py::capsule capsule) {
49
auto
tp = *
static_cast<
TriggerActivityData
*
>
(capsule.get_pointer());
50
return
tp;
51
} ))
52
.def(py::init([](py::bytes bytes){
53
py::buffer_info info(py::buffer(bytes).request());
54
auto
tp = *
static_cast<
TriggerActivityData
*
>
(info.ptr);
55
return
tp;
56
}))
57
.def_property_readonly(
"version"
, [](
TriggerActivityData
& self) -> uint16_t {
return
self.
version
;})
58
.def_property_readonly(
"time_start"
, [](
TriggerActivityData
& self) -> uint64_t {
return
self.
time_start
;})
59
.def_property_readonly(
"time_end"
, [](
TriggerActivityData
& self) -> uint64_t {
return
self.
time_end
;})
60
.def_property_readonly(
"time_peak"
, [](
TriggerActivityData
& self) -> uint64_t {
return
self.
time_peak
;})
61
.def_property_readonly(
"time_activity"
, [](
TriggerActivityData
& self) -> uint64_t {
return
self.
time_activity
;})
62
.def_property_readonly(
"channel_start"
, [](
TriggerActivityData
& self) -> int32_t {
return
self.
channel_start
;})
63
.def_property_readonly(
"channel_end"
, [](
TriggerActivityData
& self) -> int32_t {
return
self.
channel_end
;})
64
.def_property_readonly(
"channel_peak"
, [](
TriggerActivityData
& self) -> int32_t {
return
self.
channel_peak
;})
65
.def_property_readonly(
"adc_integral"
, [](
TriggerActivityData
& self) -> uint32_t {
return
self.
adc_integral
;})
66
.def_property_readonly(
"adc_peak"
, [](
TriggerActivityData
& self) -> uint32_t {
return
self.
adc_peak
;})
67
.def_property_readonly(
"detid"
, [](
TriggerActivityData
& self) -> uint16_t {
return
self.
detid
;})
68
.def_property_readonly(
"type"
, [](
TriggerActivityData
& self) ->
TriggerActivityData::Type
{
return
self.
type
;})
69
.def_property_readonly(
"algorithm"
, [](
TriggerActivityData
& self) ->
TriggerActivityData::Algorithm
{
return
self.
algorithm
;})
70
.def_static(
"sizeof"
, [](){
return
sizeof
(
TriggerActivityData
); })
71
;
72
73
74
py::enum_<TriggerActivityData::Type>(trigger_activity_data,
"Type"
)
75
.value(
"kUnknown"
,
TriggerActivityData::Type::kUnknown
)
76
.value(
"kTPC"
,
TriggerActivityData::Type::kTPC
)
77
.value(
"kPDS"
,
TriggerActivityData::Type::kPDS
);
78
79
py::enum_<TriggerActivityData::Algorithm>(trigger_activity_data,
"Algorithm"
)
80
.value(
"kUnknown"
,
TriggerActivityData::Algorithm::kUnknown
)
81
.value(
"kSupernova"
,
TriggerActivityData::Algorithm::kSupernova
)
82
.value(
"kPrescale"
,
TriggerActivityData::Algorithm::kPrescale
)
83
.value(
"kADCSimpleWindow"
,
TriggerActivityData::Algorithm::kADCSimpleWindow
)
84
.value(
"kHorizontalMuon"
,
TriggerActivityData::Algorithm::kHorizontalMuon
)
85
.value(
"kMichelElectron"
,
TriggerActivityData::Algorithm::kMichelElectron
)
86
.value(
"kDBSCAN"
,
TriggerActivityData::Algorithm::kDBSCAN
)
87
.value(
"kPlaneCoincidence"
,
TriggerActivityData::Algorithm::kPlaneCoincidence
)
88
.value(
"kBundle"
,
TriggerActivityData::Algorithm::kBundle
)
89
.value(
"kChannelDistance"
,
TriggerActivityData::Algorithm::kChannelDistance
)
90
.value(
"kChannelAdjacency"
,
TriggerActivityData::Algorithm::kChannelAdjacency
)
91
.value(
"kSWIFT"
,
TriggerActivityData::Algorithm::kSWIFT
);
92
93
py::class_<TriggerActivity>(m,
"TriggerActivityOverlay"
, py::buffer_protocol())
94
.def(py::init())
95
.def(py::init([](py::capsule capsule) {
96
auto
tp = *
static_cast<
TriggerActivity
*
>
(capsule.get_pointer());
97
return
tp;
98
} ))
99
.def_property_readonly(
"data"
, [](
TriggerActivity
& self) ->
TriggerActivityData
& {
return
self.data;})
100
.def(
"__len__"
, [](
TriggerActivity
& self){
return
self.n_inputs; })
101
.def(
"sizeof"
, [](
TriggerActivity
& self){
return
sizeof
(
TriggerActivity
)+self.n_inputs*
sizeof
(
TriggerPrimitive
); })
102
;
103
104
105
py::class_<TriggerActivityHolder>(m,
"TriggerActivity"
, py::buffer_protocol())
106
// .def(py::init())
107
.def(py::init([](py::capsule capsule) {
108
auto
ta_ptr =
static_cast<
TriggerActivity
*
>
(capsule.get_pointer());
109
TriggerActivityHolder
tah(ta_ptr,
sizeof
(
TriggerActivity
)+ta_ptr->n_inputs*
sizeof
(
TriggerPrimitive
));
110
return
tah;
111
}))
112
.def(py::init([](py::bytes bytes){
113
py::buffer_info info(py::buffer(bytes).request());
114
TriggerActivityHolder
tah(info.ptr, info.size);
115
116
return
tah;
117
}))
118
119
.def(
"get_bytes"
,
120
[](
TriggerActivityHolder
& tah) -> py::bytes {
121
return
py::bytes(
reinterpret_cast<
char
*
>
(tah.
ptr
()), tah.
m_size
);
122
}, py::return_value_policy::reference_internal
123
)
124
.def_property_readonly(
"data"
, [](
TriggerActivityHolder
& self) ->
TriggerActivityData
& {
return
self.ptr()->data;})
125
.def(
"n_inputs"
, [](
TriggerActivityHolder
& self){
return
self.ptr()->n_inputs; })
126
.def(
"__len__"
, [](
TriggerActivityHolder
& self){
return
self.ptr()->n_inputs; })
127
.def(
"__getitem__"
,
128
[](
TriggerActivityHolder
&self,
size_t
i) ->
const
TriggerPrimitive
& {
129
if
(i >= self.ptr()->n_inputs) {
130
throw
py::index_error();
131
}
132
return
self.ptr()->inputs[i];
133
}, py::return_value_policy::reference_internal)
134
.def(
"sizeof"
, [](
TriggerActivityHolder
& self){
return
self.m_size; })
135
136
;
137
}
138
139
}
// namespace python
140
}
// namespace trgdataformats
141
}
// namespace dunedaq
dunedaq::trgdataformats::python
Definition
module.cpp:16
dunedaq::trgdataformats::python::register_trigger_activity
void register_trigger_activity(pybind11::module &)
dunedaq::trgdataformats
Definition
TriggerActivityData.hpp:15
dunedaq::trgdataformats::TriggerActivity
TriggerObjectOverlay< TriggerActivityData, TriggerPrimitive > TriggerActivity
Definition
TriggerObjectOverlay.hpp:31
dunedaq
Including Qt Headers.
Definition
module.cpp:16
dunedaq::size
FELIX Initialization std::string initerror FELIX queue timed std::string queuename Unexpected chunk size
Definition
FelixIssues.hpp:28
dunedaq::trgdataformats::TriggerActivityData
Definition
TriggerActivityData.hpp:18
dunedaq::trgdataformats::TriggerActivityData::algorithm
Algorithm algorithm
Definition
TriggerActivityData.hpp:57
dunedaq::trgdataformats::TriggerActivityData::channel_peak
channel_t channel_peak
Definition
TriggerActivityData.hpp:52
dunedaq::trgdataformats::TriggerActivityData::time_activity
timestamp_t time_activity
Definition
TriggerActivityData.hpp:49
dunedaq::trgdataformats::TriggerActivityData::adc_integral
uint64_t adc_integral
Definition
TriggerActivityData.hpp:53
dunedaq::trgdataformats::TriggerActivityData::Type
Type
Definition
TriggerActivityData.hpp:20
dunedaq::trgdataformats::TriggerActivityData::Type::kUnknown
@ kUnknown
Definition
TriggerActivityData.hpp:21
dunedaq::trgdataformats::TriggerActivityData::Type::kPDS
@ kPDS
Definition
TriggerActivityData.hpp:23
dunedaq::trgdataformats::TriggerActivityData::Type::kTPC
@ kTPC
Definition
TriggerActivityData.hpp:22
dunedaq::trgdataformats::TriggerActivityData::type
Type type
Definition
TriggerActivityData.hpp:56
dunedaq::trgdataformats::TriggerActivityData::time_peak
timestamp_t time_peak
Definition
TriggerActivityData.hpp:48
dunedaq::trgdataformats::TriggerActivityData::Algorithm
Algorithm
Definition
TriggerActivityData.hpp:27
dunedaq::trgdataformats::TriggerActivityData::Algorithm::kSWIFT
@ kSWIFT
Definition
TriggerActivityData.hpp:39
dunedaq::trgdataformats::TriggerActivityData::Algorithm::kChannelAdjacency
@ kChannelAdjacency
Definition
TriggerActivityData.hpp:38
dunedaq::trgdataformats::TriggerActivityData::Algorithm::kUnknown
@ kUnknown
Definition
TriggerActivityData.hpp:28
dunedaq::trgdataformats::TriggerActivityData::Algorithm::kHorizontalMuon
@ kHorizontalMuon
Definition
TriggerActivityData.hpp:32
dunedaq::trgdataformats::TriggerActivityData::Algorithm::kChannelDistance
@ kChannelDistance
Definition
TriggerActivityData.hpp:36
dunedaq::trgdataformats::TriggerActivityData::Algorithm::kADCSimpleWindow
@ kADCSimpleWindow
Definition
TriggerActivityData.hpp:31
dunedaq::trgdataformats::TriggerActivityData::Algorithm::kBundle
@ kBundle
Definition
TriggerActivityData.hpp:37
dunedaq::trgdataformats::TriggerActivityData::Algorithm::kPrescale
@ kPrescale
Definition
TriggerActivityData.hpp:30
dunedaq::trgdataformats::TriggerActivityData::Algorithm::kDBSCAN
@ kDBSCAN
Definition
TriggerActivityData.hpp:34
dunedaq::trgdataformats::TriggerActivityData::Algorithm::kPlaneCoincidence
@ kPlaneCoincidence
Definition
TriggerActivityData.hpp:35
dunedaq::trgdataformats::TriggerActivityData::Algorithm::kMichelElectron
@ kMichelElectron
Definition
TriggerActivityData.hpp:33
dunedaq::trgdataformats::TriggerActivityData::Algorithm::kSupernova
@ kSupernova
Definition
TriggerActivityData.hpp:29
dunedaq::trgdataformats::TriggerActivityData::adc_peak
uint16_t adc_peak
Definition
TriggerActivityData.hpp:54
dunedaq::trgdataformats::TriggerActivityData::channel_end
channel_t channel_end
Definition
TriggerActivityData.hpp:51
dunedaq::trgdataformats::TriggerActivityData::time_end
timestamp_t time_end
Definition
TriggerActivityData.hpp:47
dunedaq::trgdataformats::TriggerActivityData::version
version_t version
Definition
TriggerActivityData.hpp:45
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::trgdataformats::TriggerActivityData::detid
detid_t detid
Definition
TriggerActivityData.hpp:55
dunedaq::trgdataformats::TriggerPrimitive
A single energy deposition on a TPC or PDS channel.
Definition
TriggerPrimitive.hpp:27
dunedaq::trgdataformats::python::TriggerActivityHolder
Definition
trigger_activity.cpp:24
dunedaq::trgdataformats::python::TriggerActivityHolder::m_data
std::unique_ptr< uint8_t[]> m_data
Definition
trigger_activity.cpp:36
dunedaq::trgdataformats::python::TriggerActivityHolder::ptr
TriggerActivity * ptr()
Definition
trigger_activity.cpp:33
dunedaq::trgdataformats::python::TriggerActivityHolder::TriggerActivityHolder
TriggerActivityHolder(void *ptr, size_t size)
Definition
trigger_activity.cpp:27
dunedaq::trgdataformats::python::TriggerActivityHolder::m_size
size_t m_size
Definition
trigger_activity.cpp:35
TriggerObjectOverlay.hpp
Generated on
for DUNE-DAQ by
1.17.0