DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::rawdatautils::daphneeth Namespace Reference

Functions

uint32_t get_n_frames (daqdataformats::Fragment const &frag)
 Gets number of DAPHNEFrames in a fragment

 
uint32_t get_n_frames_stream (daqdataformats::Fragment const &frag)
 Gets number of DAPHNEStreamFrames in a fragment

 
py::array_t< uint8_t > np_array_channels_stream_data (void *data, int nframes)
 Unpacks channel numbers for DAPHNEEthStreamFrames into a numpy array with dimensions (nframes, s_channels_per_frame)

 
py::array_t< uint8_t > np_array_channels_data (void *data, int nframes)
 Unpacks channel numbers for DAPHNEFrames into a numpy array with dimensions (nframes)

 
py::array_t< uint8_t > np_array_channels (daqdataformats::Fragment &frag)
 Unpacks channel numbers for Fragment that contains DAPHNEFrames into a numpy array with dimensions

 
py::array_t< uint8_t > np_array_channels_stream (daqdataformats::Fragment &frag)
 Unpacks channel numbers for Fragment that contains DAPHNEStreamFrames into a numpy array with dimensions

 
py::array_t< uint16_t > np_array_adc_data (void *data, int nframes)
 Unpacks data containing DAPHNEFrames into a numpy array with the ADC values and dimension (number of DAPHNEFrames, channels_per_daphne) Warning: It doesn't check that nframes is a sensible value (can read out of bounds)
 
py::array_t< uint16_t > np_array_adc_stream_data (void *data, int nframes)
 Unpacks data containing DAPHNEStreamFrames into a numpy array with the ADC
values and dimension (number of DAPHNEStreamFrames * adcs_per_channel (64), channels_per_frame (4))
Warning: It doesn't check that nframes is a sensible value (can read out of bounds)

 
py::array_t< uint64_t > np_array_timestamp_data (void *data, int nframes)
 Unpacks data containing DAPHNEFrames into a numpy array with the timestamps with dimension (number of DAPHNEFrames) Warning: It doesn't check that nframes is a sensible value (can read out of bounds)
 
py::array_t< uint64_t > np_array_timestamp_stream_data (void *data, int nframes)
 Unpacks data containing DAPHNEStreamFrames into a numpy array with the
timestamps with dimension (number of DAPHNEStreamFrames)
Warning: It doesn't check that nframes is a sensible value (can read out of bounds)

 
py::array_t< uint16_t > np_array_adc (daqdataformats::Fragment &frag)
 Unpacks a Fragment containing DAPHNEFrames into a numpy array with the ADC values and dimension (number of DAPHNEFrames in the Fragment, 320)
 
py::array_t< uint16_t > np_array_adc_stream (daqdataformats::Fragment &frag)
 Unpacks a Fragment containing DAPHNEStreamFrames into a numpy array with the
ADC values and dimension (number of DAPHNEStreamFrames in the Fragment, 4)

 
py::array_t< uint64_t > np_array_timestamp (daqdataformats::Fragment &frag)
 Unpacks the timestamps in a Fragment containing WIBFrames into a numpy array with dimension (number of DAPHNEFrames in the Fragment)
 
py::array_t< uint64_t > np_array_timestamp_stream (daqdataformats::Fragment &frag)
 Unpacks the timestamps in a Fragment containing DAPHNEStreamFrames into a numpy
array with dimension (number of DAPHNEStreamFrames in the Fragment)

 

Function Documentation

◆ get_n_frames()

uint32_t dunedaq::rawdatautils::daphneeth::get_n_frames ( daqdataformats::Fragment const & frag)

Gets number of DAPHNEFrames in a fragment

Definition at line 22 of file DAPHNEEthUnpacker.cpp.

22 {
23 return (frag.get_size() - sizeof(daqdataformats::FragmentHeader)) / sizeof(fddetdataformats::DAPHNEEthFrame);
24}
Class for accessing raw WIB eth frames, as used in ProtoDUNE-II.
The header for a DUNE Fragment.

◆ get_n_frames_stream()

uint32_t dunedaq::rawdatautils::daphneeth::get_n_frames_stream ( daqdataformats::Fragment const & frag)

Gets number of DAPHNEStreamFrames in a fragment

Definition at line 29 of file DAPHNEEthUnpacker.cpp.

29 {
30 return (frag.get_size() - sizeof(daqdataformats::FragmentHeader)) / sizeof(fddetdataformats::DAPHNEEthStreamFrame);
31}
Class for accessing raw DAPHNE eth stream frames, as used in ProtoDUNE-II.

◆ np_array_adc()

py::array_t< uint16_t > dunedaq::rawdatautils::daphneeth::np_array_adc ( daqdataformats::Fragment & frag)

Unpacks a Fragment containing DAPHNEFrames into a numpy array with the ADC values and dimension (number of DAPHNEFrames in the Fragment, 320)

Definition at line 183 of file DAPHNEEthUnpacker.cpp.

183 {
185}
void * get_data() const
Get a pointer to the data payload in the Fragmnet.
Definition Fragment.hpp:254
fragment_size_t get_size() const
Get the total size of the Fragment.
Definition Fragment.hpp:242
py::array_t< uint16_t > np_array_adc_data(void *data, int nframes)
Unpacks data containing DAPHNEFrames into a numpy array with the ADC values and dimension (number of ...

◆ np_array_adc_data()

py::array_t< uint16_t > dunedaq::rawdatautils::daphneeth::np_array_adc_data ( void * data,
int nframes )

Unpacks data containing DAPHNEFrames into a numpy array with the ADC values and dimension (number of DAPHNEFrames, channels_per_daphne) Warning: It doesn't check that nframes is a sensible value (can read out of bounds)

Definition at line 95 of file DAPHNEEthUnpacker.cpp.

95 {
96
97 const auto adcs_per_channel = fddetdataformats::DAPHNEEthFrame::s_num_adcs;
98
99 py::array_t<uint16_t> ret(nframes * adcs_per_channel);
100 auto ptr = static_cast<uint16_t*>(ret.request().ptr);
101 for (size_t i=0; i<(size_t)nframes; ++i) {
102 auto fr = reinterpret_cast<fddetdataformats::DAPHNEEthFrame*>(static_cast<char*>(data) + i * sizeof(fddetdataformats::DAPHNEEthFrame));
103 for (size_t j=0; j<adcs_per_channel; ++j) {
104 ptr[i*adcs_per_channel + j] = fr->get_adc(j);
105 }
106 //for (size_t j=0; j<channels_per_daphne; ++j)
107
108 }
109 ret.resize({nframes, adcs_per_channel});
110
111 return ret;
112}

◆ np_array_adc_stream()

py::array_t< uint16_t > dunedaq::rawdatautils::daphneeth::np_array_adc_stream ( daqdataformats::Fragment & frag)

Unpacks a Fragment containing DAPHNEStreamFrames into a numpy array with the
ADC values and dimension (number of DAPHNEStreamFrames in the Fragment, 4)

Definition at line 191 of file DAPHNEEthUnpacker.cpp.

191 {
193}
py::array_t< uint16_t > np_array_adc_stream_data(void *data, int nframes)
Unpacks data containing DAPHNEStreamFrames into a numpy array with the ADC values and dimension (nu...

◆ np_array_adc_stream_data()

py::array_t< uint16_t > dunedaq::rawdatautils::daphneeth::np_array_adc_stream_data ( void * data,
int nframes )

Unpacks data containing DAPHNEStreamFrames into a numpy array with the ADC
values and dimension (number of DAPHNEStreamFrames * adcs_per_channel (64), channels_per_frame (4))
Warning: It doesn't check that nframes is a sensible value (can read out of bounds)

Definition at line 119 of file DAPHNEEthUnpacker.cpp.

119 {
120
121 const auto channels_per_daphne = fddetdataformats::DAPHNEEthStreamFrame::s_num_channels;
122 const auto adcs_per_channel = fddetdataformats::DAPHNEEthStreamFrame::s_adcs_per_channel;
123
124
125 py::array_t<uint16_t> ret(channels_per_daphne * nframes * adcs_per_channel);
126 auto ptr = static_cast<uint16_t*>(ret.request().ptr);
127 for (size_t i=0; i<(size_t)nframes; ++i) {
128 auto fr = reinterpret_cast<fddetdataformats::DAPHNEEthStreamFrame*>(static_cast<char*>(data) + i * sizeof(fddetdataformats::DAPHNEEthStreamFrame));
129 for (size_t j=0; j<adcs_per_channel; ++j)
130 for (size_t k=0; k<channels_per_daphne; ++k)
131 ptr[channels_per_daphne * (adcs_per_channel * i + j) + k] = fr->get_adc(j,k);
132 }
133 ret.resize({nframes*adcs_per_channel, channels_per_daphne});
134
135 return ret;
136}
uint16_t get_adc(uint i, uint chn) const
Get the i ADC value of chn in the frame.

◆ np_array_channels()

py::array_t< uint8_t > dunedaq::rawdatautils::daphneeth::np_array_channels ( daqdataformats::Fragment & frag)

Unpacks channel numbers for Fragment that contains DAPHNEFrames into a numpy array with dimensions

Definition at line 78 of file DAPHNEEthUnpacker.cpp.

78 {
80}
py::array_t< uint8_t > np_array_channels_data(void *data, int nframes)
Unpacks channel numbers for DAPHNEFrames into a numpy array with dimensions (nframes)

◆ np_array_channels_data()

py::array_t< uint8_t > dunedaq::rawdatautils::daphneeth::np_array_channels_data ( void * data,
int nframes )

Unpacks channel numbers for DAPHNEFrames into a numpy array with dimensions (nframes)

Definition at line 63 of file DAPHNEEthUnpacker.cpp.

63 {
64
65 py::array_t<uint8_t> channels(nframes);
66 auto ptr = static_cast<uint8_t*>(channels.request().ptr);
67
68 for (size_t i=0; i<(size_t)nframes; ++i) {
69 auto fr = reinterpret_cast<fddetdataformats::DAPHNEEthFrame*>(static_cast<char*>(data) + i * sizeof(fddetdataformats::DAPHNEEthFrame));
70 ptr[i] = fr->get_channel();
71 }
72
73 return channels;
74}
uint8_t get_channel() const
Get the channel identifier of the frame.

◆ np_array_channels_stream()

py::array_t< uint8_t > dunedaq::rawdatautils::daphneeth::np_array_channels_stream ( daqdataformats::Fragment & frag)

Unpacks channel numbers for Fragment that contains DAPHNEStreamFrames into a numpy array with dimensions

Definition at line 85 of file DAPHNEEthUnpacker.cpp.

85 {
87}
py::array_t< uint8_t > np_array_channels_stream_data(void *data, int nframes)
Unpacks channel numbers for DAPHNEEthStreamFrames into a numpy array with dimensions (nframes,...

◆ np_array_channels_stream_data()

py::array_t< uint8_t > dunedaq::rawdatautils::daphneeth::np_array_channels_stream_data ( void * data,
int nframes )

Unpacks channel numbers for DAPHNEEthStreamFrames into a numpy array with dimensions (nframes, s_channels_per_frame)

Definition at line 39 of file DAPHNEEthUnpacker.cpp.

39 {
40
41 const auto channels_per_daphne = fddetdataformats::DAPHNEEthStreamFrame::s_num_channels;
42 py::array_t<uint8_t> channels(channels_per_daphne * nframes);
43 auto ptr = static_cast<uint8_t*>(channels.request().ptr);
44
45 for (size_t i=0; i<(size_t)nframes; ++i) {
46 auto fr = reinterpret_cast<fddetdataformats::DAPHNEEthStreamFrame*>(static_cast<char*>(data) + i * sizeof(fddetdataformats::DAPHNEEthStreamFrame));
47
48 ptr[i*channels_per_daphne + 0] = fr->get_channel0();
49 ptr[i*channels_per_daphne + 1] = fr->get_channel1();
50 ptr[i*channels_per_daphne + 2] = fr->get_channel2();
51 ptr[i*channels_per_daphne + 3] = fr->get_channel3();
52
53 }
54 channels.resize({nframes, channels_per_daphne});
55
56 return channels;
57}
uint8_t get_channel0() const
Get the channel 0 from the DAPHNE Stream frame header

◆ np_array_timestamp()

py::array_t< uint64_t > dunedaq::rawdatautils::daphneeth::np_array_timestamp ( daqdataformats::Fragment & frag)

Unpacks the timestamps in a Fragment containing WIBFrames into a numpy array with dimension (number of DAPHNEFrames in the Fragment)

Definition at line 200 of file DAPHNEEthUnpacker.cpp.

200 {
202}
py::array_t< uint64_t > np_array_timestamp_data(void *data, int nframes)
Unpacks data containing DAPHNEFrames into a numpy array with the timestamps with dimension (number of...

◆ np_array_timestamp_data()

py::array_t< uint64_t > dunedaq::rawdatautils::daphneeth::np_array_timestamp_data ( void * data,
int nframes )

Unpacks data containing DAPHNEFrames into a numpy array with the timestamps with dimension (number of DAPHNEFrames) Warning: It doesn't check that nframes is a sensible value (can read out of bounds)

Definition at line 144 of file DAPHNEEthUnpacker.cpp.

144 {
145
146 py::array_t<uint64_t> ret(nframes);
147 auto ptr = static_cast<uint64_t*>(ret.request().ptr);
148 for (size_t i=0; i<(size_t)nframes; ++i) {
149 auto fr = reinterpret_cast<fddetdataformats::DAPHNEEthFrame*>(static_cast<char*>(data) + i * sizeof(fddetdataformats::DAPHNEEthFrame));
150 ptr[i] = fr->get_timestamp();
151 }
152
153 return ret;
154}
uint64_t get_timestamp() const
Get the starting 64-bit timestamp of the frame.

◆ np_array_timestamp_stream()

py::array_t< uint64_t > dunedaq::rawdatautils::daphneeth::np_array_timestamp_stream ( daqdataformats::Fragment & frag)

Unpacks the timestamps in a Fragment containing DAPHNEStreamFrames into a numpy
array with dimension (number of DAPHNEStreamFrames in the Fragment)

Definition at line 208 of file DAPHNEEthUnpacker.cpp.

208 {
210}
py::array_t< uint64_t > np_array_timestamp_stream_data(void *data, int nframes)
Unpacks data containing DAPHNEStreamFrames into a numpy array with the timestamps with dimension (n...

◆ np_array_timestamp_stream_data()

py::array_t< uint64_t > dunedaq::rawdatautils::daphneeth::np_array_timestamp_stream_data ( void * data,
int nframes )

Unpacks data containing DAPHNEStreamFrames into a numpy array with the
timestamps with dimension (number of DAPHNEStreamFrames)
Warning: It doesn't check that nframes is a sensible value (can read out of bounds)

Definition at line 161 of file DAPHNEEthUnpacker.cpp.

161 {
162
163 const auto adcs_per_channel = fddetdataformats::DAPHNEEthStreamFrame::s_adcs_per_channel;
164 const size_t ticks_per_adc = 1;
165
166 py::array_t<uint64_t> ret(nframes*adcs_per_channel);
167
168 auto ptr = static_cast<uint64_t*>(ret.request().ptr);
169 for (size_t i=0; i<(size_t)nframes; ++i) {
170 auto fr = reinterpret_cast<fddetdataformats::DAPHNEEthStreamFrame*>(static_cast<char*>(data) + i * sizeof(fddetdataformats::DAPHNEEthStreamFrame));
171 for (size_t j=0; j<adcs_per_channel; ++j)
172 ptr[i*adcs_per_channel+j] = fr->get_timestamp()+j*ticks_per_adc;
173 }
174
175 return ret;
176}
uint64_t get_timestamp() const
Get the starting 64-bit timestamp of the frame.