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

Namespaces

namespace  python
 

Classes

struct  ComponentRequest
 A request sent to a Component, including the SourceID of the component and the window offset and width. More...
 
class  Fragment
 C++ Representation of a DUNE Fragment, wrapping the flat byte array that is the Fragment's "actual" form. More...
 
struct  FragmentHeader
 The header for a DUNE Fragment. More...
 
struct  SourceID
 SourceID is a generalized representation of the source of a piece of data in the DAQ. That source could be a physical location in the detector, a running process in the DAQ (e.g. a dataflow app, the source of a data request), etc. More...
 
class  TimeSlice
 C++ Representation of a DUNE TimeSlice, consisting of a TimeSliceHeader object and a vector of pointers to Fragment objects. More...
 
struct  TimeSliceHeader
 Additional data fields associated with a TimeSliceHeader. More...
 
class  TriggerRecord
 C++ Representation of a DUNE TriggerRecord, consisting of a TriggerRecordHeader object and a vector of pointers to Fragment objects. More...
 
class  TriggerRecordHeader
 C++ representation of a TriggerRecordHeader, which wraps a flat array that is the TriggerRecordHeader's "actual" form. More...
 
struct  TriggerRecordHeaderData
 Additional data fields associated with a TriggerRecordHeader. More...
 
class  TypeDefaults
 Default values for daqdataformats types. More...
 

Typedefs

using run_number_t = uint32_t
 Type used to represent run number.
 
using trigger_number_t = uint64_t
 Type used to represent trigger number.
 
using fragment_type_t = uint32_t
 Type used to represent Fragment type ID.
 
using fragment_size_t = uint64_t
 Type used to represent Fragment size.
 
using timestamp_t = uint64_t
 Type used to represent DUNE timing system timestamps.
 
using timestamp_diff_t = int64_t
 Used to represent differences between timestamps.
 
using trigger_type_t = uint64_t
 Type used to represent Trigger Decision trigger types.
 
using sequence_number_t = uint16_t
 Type used to represent sequence within a trigger record.
 
using timeslice_number_t = uint64_t
 Type used to represent timeslice number.
 

Enumerations

enum class  FragmentErrorBits : size_t {
  kDataNotFound = 0 , kIncomplete = 1 , kInvalidWindow = 2 , kUnassigned3 = 3 ,
  kUnassigned4 = 4 , kUnassigned5 = 5 , kUnassigned6 = 6 , kUnassigned7 = 7 ,
  kUnassigned8 = 8 , kUnassigned9 = 9 , kUnassigned10 = 10 , kUnassigned11 = 11 ,
  kUnassigned12 = 12 , kUnassigned13 = 13 , kUnassigned14 = 14 , kUnassigned15 = 15 ,
  kUnassigned16 = 16 , kUnassigned17 = 17 , kUnassigned18 = 18 , kUnassigned19 = 19 ,
  kUnassigned20 = 20 , kUnassigned21 = 21 , kUnassigned22 = 22 , kUnassigned23 = 23 ,
  kUnassigned24 = 24 , kUnassigned25 = 25 , kUnassigned26 = 26 , kUnassigned27 = 27 ,
  kUnassigned28 = 28 , kUnassigned29 = 29 , kUnassigned30 = 30 , kUnassigned31 = 31 ,
  kInvalid = 32
}
 This enumeration should list all defined error bits, as well as a short documentation of their meaning. More...
 
enum class  FragmentType : fragment_type_t {
  kUnknown = 0 , kProtoWIB = 1 , kWIB = 2 , kDAPHNE = 3 ,
  kTDE_AMC = 4 , kFW_TriggerPrimitive = 5 , kTriggerPrimitive = 6 , kTriggerActivity = 7 ,
  kTriggerCandidate = 8 , kHardwareSignal = 9 , kPACMAN = 10 , kMPD = 11 ,
  kWIBEth = 12 , kDAPHNEStream = 13 , kCRT = 14 , kTDEEth = 15 ,
  kCRTBern = 16 , kCRTGrenoble = 17
}
 This enumeration should list all defined Fragment types. More...
 
enum class  TriggerRecordErrorBits : size_t {
  kIncomplete = 0 , kMismatch = 1 , kUnassigned2 = 2 , kUnassigned3 = 3 ,
  kUnassigned4 = 4 , kUnassigned5 = 5 , kUnassigned6 = 6 , kUnassigned7 = 7 ,
  kUnassigned8 = 8 , kUnassigned9 = 9 , kUnassigned10 = 10 , kUnassigned11 = 11 ,
  kUnassigned12 = 12 , kUnassigned13 = 13 , kUnassigned14 = 14 , kUnassigned15 = 15 ,
  kUnassigned16 = 16 , kUnassigned17 = 17 , kUnassigned18 = 18 , kUnassigned19 = 19 ,
  kUnassigned20 = 20 , kUnassigned21 = 21 , kUnassigned22 = 22 , kUnassigned23 = 23 ,
  kUnassigned24 = 24 , kUnassigned25 = 25 , kUnassigned26 = 26 , kUnassigned27 = 27 ,
  kUnassigned28 = 28 , kUnassigned29 = 29 , kUnassigned30 = 30 , kUnassigned31 = 31 ,
  kInvalid = 32
}
 This enumeration should list all defined error bits, as well as a short documentation of their meaning. More...
 

Functions

std::ostream & operator<< (std::ostream &o, ComponentRequest const &cr)
 Write out a ComponentRequest in human-readable form.
 
std::istream & operator>> (std::istream &is, ComponentRequest &cr)
 Read a ComponentRequest from a string stream.
 
std::ostream & operator<< (std::ostream &o, SourceID::Subsystem const &type)
 Stream a Subsystem instance in a human-readable form.
 
std::ostream & operator<< (std::ostream &o, SourceID const &source_id)
 Stream a SourceID instance in a human-readable form.
 
std::istream & operator>> (std::istream &is, SourceID::Subsystem &t)
 Read a SourceID::Subsystem from a string stream.
 
std::istream & operator>> (std::istream &is, SourceID &source_id)
 Read a SourceID from a string stream.
 
std::map< FragmentType, std::string > get_fragment_type_names ()
 This map relates FragmentType values to string names.
 
std::string fragment_type_to_string (const FragmentType &type)
 Convert a FragmentType enum value to string.
 
FragmentType string_to_fragment_type (const std::string &name)
 Convert a string to a FragmentType value.
 
std::ostream & operator<< (std::ostream &o, FragmentHeader const &hdr)
 Stream a Fragment Header in human-readable form.
 
std::istream & operator>> (std::istream &o, FragmentHeader &hdr)
 Read a FragmentHeader instance from a string stream.
 
std::ostream & operator<< (std::ostream &o, TimeSliceHeader const &hdr)
 Stream a TimeSliceHeader instance in human-readable form.
 
std::istream & operator>> (std::istream &o, TimeSliceHeader &hdr)
 Read a TimeSliceHeader instance from a string stream.
 
std::ostream & operator<< (std::ostream &o, TriggerRecordHeaderData const &hdr)
 Stream a TriggerRecordHeaderData instance in human-readable form.
 
std::istream & operator>> (std::istream &o, TriggerRecordHeaderData &hdr)
 Read a TriggerRecordHeaderData instance from a string stream.
 

Typedef Documentation

◆ fragment_size_t

Type used to represent Fragment size.

Definition at line 32 of file Types.hpp.

◆ fragment_type_t

Type used to represent Fragment type ID.

Definition at line 28 of file Types.hpp.

◆ run_number_t

Type used to represent run number.

Definition at line 20 of file Types.hpp.

◆ sequence_number_t

Type used to represent sequence within a trigger record.

Definition at line 45 of file Types.hpp.

◆ timeslice_number_t

Type used to represent timeslice number.

Definition at line 49 of file Types.hpp.

◆ timestamp_diff_t

Used to represent differences between timestamps.

Definition at line 37 of file Types.hpp.

◆ timestamp_t

Type used to represent DUNE timing system timestamps.

Definition at line 36 of file Types.hpp.

◆ trigger_number_t

Type used to represent trigger number.

Definition at line 24 of file Types.hpp.

◆ trigger_type_t

Type used to represent Trigger Decision trigger types.

Definition at line 41 of file Types.hpp.

Enumeration Type Documentation

◆ FragmentErrorBits

enum class dunedaq::daqdataformats::FragmentErrorBits : size_t
strong

This enumeration should list all defined error bits, as well as a short documentation of their meaning.

Enumerator
kDataNotFound 

The requested data was not found at all, so the fragment is empty.

kIncomplete 

Only part of the requested data is present in the fragment.

kInvalidWindow 

The requested data window was too large.

kUnassigned3 

Error bit 3 is not assigned.

kUnassigned4 

Error bit 4 is not assigned.

kUnassigned5 

Error bit 5 is not assigned.

kUnassigned6 

Error bit 6 is not assigned.

kUnassigned7 

Error bit 7 is not assigned.

kUnassigned8 

Error bit 8 is not assigned.

kUnassigned9 

Error bit 9 is not assigned.

kUnassigned10 

Error bit 10 is not assigned.

kUnassigned11 

Error bit 11 is not assigned.

kUnassigned12 

Error bit 12 is not assigned.

kUnassigned13 

Error bit 13 is not assigned.

kUnassigned14 

Error bit 14 is not assigned.

kUnassigned15 

Error bit 15 is not assigned.

kUnassigned16 

Error bit 16 is not assigned.

kUnassigned17 

Error bit 17 is not assigned.

kUnassigned18 

Error bit 18 is not assigned.

kUnassigned19 

Error bit 19 is not assigned.

kUnassigned20 

Error bit 20 is not assigned.

kUnassigned21 

Error bit 21 is not assigned.

kUnassigned22 

Error bit 22 is not assigned.

kUnassigned23 

Error bit 23 is not assigned.

kUnassigned24 

Error bit 24 is not assigned.

kUnassigned25 

Error bit 25 is not assigned.

kUnassigned26 

Error bit 26 is not assigned.

kUnassigned27 

Error bit 27 is not assigned.

kUnassigned28 

Error bit 28 is not assigned.

kUnassigned29 

Error bit 29 is not assigned.

kUnassigned30 

Error bit 30 is not assigned.

kUnassigned31 

Error bit 31 is not assigned.

kInvalid 

Error bit 32 and higher are not valid (error_bits is only 32 bits)

Definition at line 148 of file FragmentHeader.hpp.

149{
150 kDataNotFound = 0,
151 kIncomplete = 1,
152 kInvalidWindow = 2,
153 kUnassigned3 = 3,
154 kUnassigned4 = 4,
155 kUnassigned5 = 5,
156 kUnassigned6 = 6,
157 kUnassigned7 = 7,
158 kUnassigned8 = 8,
159 kUnassigned9 = 9,
160 kUnassigned10 = 10,
161 kUnassigned11 = 11,
162 kUnassigned12 = 12,
163 kUnassigned13 = 13,
164 kUnassigned14 = 14,
165 kUnassigned15 = 15,
166 kUnassigned16 = 16,
167 kUnassigned17 = 17,
168 kUnassigned18 = 18,
169 kUnassigned19 = 19,
170 kUnassigned20 = 20,
171 kUnassigned21 = 21,
172 kUnassigned22 = 22,
173 kUnassigned23 = 23,
174 kUnassigned24 = 24,
175 kUnassigned25 = 25,
176 kUnassigned26 = 26,
177 kUnassigned27 = 27,
178 kUnassigned28 = 28,
179 kUnassigned29 = 29,
180 kUnassigned30 = 30,
181 kUnassigned31 = 31,
182 kInvalid = 32
183};
@ kUnassigned20
Error bit 20 is not assigned.
@ kUnassigned13
Error bit 13 is not assigned.
@ kUnassigned26
Error bit 26 is not assigned.
@ kUnassigned6
Error bit 6 is not assigned.
@ kUnassigned14
Error bit 14 is not assigned.
@ kUnassigned4
Error bit 4 is not assigned.
@ kUnassigned16
Error bit 16 is not assigned.
@ kUnassigned27
Error bit 27 is not assigned.
@ kUnassigned10
Error bit 10 is not assigned.
@ kIncomplete
Only part of the requested data is present in the fragment.
@ kUnassigned9
Error bit 9 is not assigned.
@ kUnassigned24
Error bit 24 is not assigned.
@ kUnassigned7
Error bit 7 is not assigned.
@ kUnassigned28
Error bit 28 is not assigned.
@ kUnassigned21
Error bit 21 is not assigned.
@ kUnassigned3
Error bit 3 is not assigned.
@ kInvalidWindow
The requested data window was too large.
@ kUnassigned31
Error bit 31 is not assigned.
@ kUnassigned18
Error bit 18 is not assigned.
@ kUnassigned25
Error bit 25 is not assigned.
@ kUnassigned19
Error bit 19 is not assigned.
@ kUnassigned5
Error bit 5 is not assigned.
@ kUnassigned29
Error bit 29 is not assigned.
@ kUnassigned23
Error bit 23 is not assigned.
@ kUnassigned11
Error bit 11 is not assigned.
@ kDataNotFound
The requested data was not found at all, so the fragment is empty.
@ kUnassigned15
Error bit 15 is not assigned.
@ kUnassigned17
Error bit 17 is not assigned.
@ kUnassigned22
Error bit 22 is not assigned.
@ kUnassigned12
Error bit 12 is not assigned.
@ kUnassigned30
Error bit 30 is not assigned.
@ kUnassigned8
Error bit 8 is not assigned.

◆ FragmentType

This enumeration should list all defined Fragment types.

Enumerator
kUnknown 
kProtoWIB 
kWIB 
kDAPHNE 
kTDE_AMC 
kFW_TriggerPrimitive 

FW TP frame format.

kTriggerPrimitive 

Trigger format TPs produced by trigger code.

kTriggerActivity 
kTriggerCandidate 
kHardwareSignal 
kPACMAN 
kMPD 
kWIBEth 
kDAPHNEStream 
kCRT 
kTDEEth 
kCRTBern 
kCRTGrenoble 

Definition at line 188 of file FragmentHeader.hpp.

189{
190 kUnknown = 0,
191 kProtoWIB = 1,
192 kWIB = 2,
193 kDAPHNE = 3,
194 kTDE_AMC = 4,
195 // This fragment type is for the "raw" data from the firmware
196 // trigger primitive generation. We store this in fragments for the
197 // purposes of inspecting/debugging the firmware TPG
199 // This fragment type is for TPs saved via the trigger subsystem's
200 // TP buffer, which are in the format defined by
201 // dunedaq::trgdataformats::TriggerPrimitive. It is also
202 // used for the stream of TPs that are sent directly from the readout
203 // subsystem to the dataflow subsystem for storage on disk.
204 // TPs stored in this format may have been _originally_ produced
205 // by either software _or_ firmware.
209 kHardwareSignal = 9,
210 kPACMAN = 10,
211 kMPD = 11,
212 kWIBEth = 12,
213 kDAPHNEStream = 13,
214 kCRT = 14,
215 kTDEEth = 15,
216 kCRTBern = 16,
217 kCRTGrenoble = 17,
218};
@ kTriggerPrimitive
Trigger format TPs produced by trigger code.
@ kFW_TriggerPrimitive
FW TP frame format.

◆ TriggerRecordErrorBits

This enumeration should list all defined error bits, as well as a short documentation of their meaning.

Enumerator
kIncomplete 

Indicates a trigger record with incomplete fragments.

kMismatch 

We have as many fragments as requested but they do not match the requested components.

kUnassigned2 

Error bit 2 is not assigned.

kUnassigned3 

Error bit 3 is not assigned.

kUnassigned4 

Error bit 4 is not assigned.

kUnassigned5 

Error bit 5 is not assigned.

kUnassigned6 

Error bit 6 is not assigned.

kUnassigned7 

Error bit 7 is not assigned.

kUnassigned8 

Error bit 8 is not assigned.

kUnassigned9 

Error bit 9 is not assigned.

kUnassigned10 

Error bit 10 is not assigned.

kUnassigned11 

Error bit 11 is not assigned.

kUnassigned12 

Error bit 12 is not assigned.

kUnassigned13 

Error bit 13 is not assigned.

kUnassigned14 

Error bit 14 is not assigned.

kUnassigned15 

Error bit 15 is not assigned.

kUnassigned16 

Error bit 16 is not assigned.

kUnassigned17 

Error bit 17 is not assigned.

kUnassigned18 

Error bit 18 is not assigned.

kUnassigned19 

Error bit 19 is not assigned.

kUnassigned20 

Error bit 20 is not assigned.

kUnassigned21 

Error bit 21 is not assigned.

kUnassigned22 

Error bit 22 is not assigned.

kUnassigned23 

Error bit 23 is not assigned.

kUnassigned24 

Error bit 24 is not assigned.

kUnassigned25 

Error bit 25 is not assigned.

kUnassigned26 

Error bit 26 is not assigned.

kUnassigned27 

Error bit 27 is not assigned.

kUnassigned28 

Error bit 28 is not assigned.

kUnassigned29 

Error bit 29 is not assigned.

kUnassigned30 

Error bit 30 is not assigned.

kUnassigned31 

Error bit 31 is not assigned.

kInvalid 

Error bit 32 and higher are not valid (error_bits is only 32 bits)

Definition at line 138 of file TriggerRecordHeaderData.hpp.

139{
140 kIncomplete = 0,
141 kMismatch = 1,
142 kUnassigned2 = 2,
143 kUnassigned3 = 3,
144 kUnassigned4 = 4,
145 kUnassigned5 = 5,
146 kUnassigned6 = 6,
147 kUnassigned7 = 7,
148 kUnassigned8 = 8,
149 kUnassigned9 = 9,
150 kUnassigned10 = 10,
151 kUnassigned11 = 11,
152 kUnassigned12 = 12,
153 kUnassigned13 = 13,
154 kUnassigned14 = 14,
155 kUnassigned15 = 15,
156 kUnassigned16 = 16,
157 kUnassigned17 = 17,
158 kUnassigned18 = 18,
159 kUnassigned19 = 19,
160 kUnassigned20 = 20,
161 kUnassigned21 = 21,
162 kUnassigned22 = 22,
163 kUnassigned23 = 23,
164 kUnassigned24 = 24,
165 kUnassigned25 = 25,
166 kUnassigned26 = 26,
167 kUnassigned27 = 27,
168 kUnassigned28 = 28,
169 kUnassigned29 = 29,
170 kUnassigned30 = 30,
171 kUnassigned31 = 31,
172 kInvalid = 32
173};
@ kMismatch
We have as many fragments as requested but they do not match the requested components.
@ kUnassigned2
Error bit 2 is not assigned.

Function Documentation

◆ fragment_type_to_string()

std::string dunedaq::daqdataformats::fragment_type_to_string ( const FragmentType & type)
inline

Convert a FragmentType enum value to string.

Parameters
typeType to convert
Returns
String representation of the given type

Definition at line 254 of file FragmentHeader.hpp.

255{
256 try {
257 return get_fragment_type_names().at(type);
258 }
259 catch(std::exception &e) {
260 }
261 return "Unknown";
262}
std::map< FragmentType, std::string > get_fragment_type_names()
This map relates FragmentType values to string names.

◆ get_fragment_type_names()

std::map< FragmentType, std::string > dunedaq::daqdataformats::get_fragment_type_names ( )
inline

This map relates FragmentType values to string names.

These names can be used, for example, as HDF5 Group names

Definition at line 226 of file FragmentHeader.hpp.

227{
228 return {
229 { FragmentType::kUnknown, "Unknown" },
230 { FragmentType::kProtoWIB, "ProtoWIB" },
231 { FragmentType::kWIB, "WIB" },
232 { FragmentType::kDAPHNE, "DAPHNE" },
233 { FragmentType::kDAPHNEStream, "DAPHNEStream" },
234 { FragmentType::kTDE_AMC, "TDE_AMC" },
235 { FragmentType::kFW_TriggerPrimitive, "FW_Trigger_Primitive" },
236 { FragmentType::kTriggerPrimitive, "Trigger_Primitive" },
237 { FragmentType::kTriggerActivity, "Trigger_Activity" },
238 { FragmentType::kTriggerCandidate, "Trigger_Candidate" },
239 { FragmentType::kHardwareSignal, "Hardware_Signal" },
240 { FragmentType::kPACMAN, "PACMAN"},
241 { FragmentType::kMPD, "MPD"},
242 { FragmentType::kWIBEth, "WIBEth"},
243 { FragmentType::kCRT, "CRT"},
244 { FragmentType::kTDEEth, "TDEEth"},
245 };
246}

◆ operator<<() [1/6]

std::ostream & dunedaq::daqdataformats::operator<< ( std::ostream & o,
ComponentRequest const & cr )
inline

Write out a ComponentRequest in human-readable form.

Parameters
oOutput stream
crComponentRequest to write
Returns
Stream instance for continued streaming

Definition at line 70 of file ComponentRequest.hpp.

72{
73 return o << cr.component << ", begin: " << cr.window_begin << ", end: " << cr.window_end;
74}

◆ operator<<() [2/6]

std::ostream & dunedaq::daqdataformats::operator<< ( std::ostream & o,
FragmentHeader const & hdr )
inline

Stream a Fragment Header in human-readable form.

Parameters
oStream to write to
hdrFragmentHeader to stream
Returns
Stream instance for further streaming

Definition at line 285 of file FragmentHeader.hpp.

287{
288 return o << "check_word: " << std::hex << hdr.fragment_header_marker << std::dec << ", "
289 << "version: " << hdr.version << ", "
290 << "size: " << hdr.size << ", "
291 << "trigger_number: " << hdr.trigger_number << ", "
292 << "run_number: " << hdr.run_number << ", "
293 << "trigger_timestamp: " << hdr.trigger_timestamp << ", "
294 << "window_begin: " << hdr.window_begin << ", "
295 << "window_end: " << hdr.window_end << ", "
296 << "error_bits: " << hdr.error_bits << ", "
297 << "fragment_type: " << hdr.fragment_type << ", "
298 << "sequence_number: " << hdr.sequence_number << ", "
299 << "detector_id: " << hdr.detector_id << ", "
300 << "element_id: " << hdr.element_id ;
301}

◆ operator<<() [3/6]

std::ostream & dunedaq::daqdataformats::operator<< ( std::ostream & o,
SourceID const & source_id )
inline

Stream a SourceID instance in a human-readable form.

Parameters
oStream to output to
idSourceID to stream
Returns
Stream instance for further streaming

Definition at line 30 of file SourceID.hxx.

32{
33 return o << "subsystem: " << source_id.subsystem << " id: " << source_id.id;
34}

◆ operator<<() [4/6]

std::ostream & dunedaq::daqdataformats::operator<< ( std::ostream & o,
SourceID::Subsystem const & type )
inline

Stream a Subsystem instance in a human-readable form.

Parameters
oStream to output to
idSubsystem to stream
Returns
Stream instance for further streaming

Definition at line 18 of file SourceID.hxx.

20{
21 return o << SourceID::subsystem_to_string(type);
22}

◆ operator<<() [5/6]

std::ostream & dunedaq::daqdataformats::operator<< ( std::ostream & o,
TimeSliceHeader const & hdr )
inline

Stream a TimeSliceHeader instance in human-readable form.

Parameters
oStream to write to
hdrTimeSliceHeader to write
Returns
Stream instance for continued streaming

Definition at line 82 of file TimeSliceHeader.hpp.

84{
85 return o << "check_word: " << std::hex << hdr.timeslice_header_marker << std::dec << ", "
86 << "version: " << hdr.version << ", "
87
88 << "timeslice_number: " << hdr.timeslice_number << ", "
89 << "run_number: " << hdr.run_number << ", "
90 << "element_id: { " << hdr.element_id << " }";
91}

◆ operator<<() [6/6]

std::ostream & dunedaq::daqdataformats::operator<< ( std::ostream & o,
TriggerRecordHeaderData const & hdr )
inline

Stream a TriggerRecordHeaderData instance in human-readable form.

Parameters
oStream to write to
hdrTriggerRecordHeaderData to write
Returns
Stream instance for continued streaming

Definition at line 181 of file TriggerRecordHeaderData.hpp.

183{
184 return o << "check_word: " << std::hex << hdr.trigger_record_header_marker << std::dec << ", "
185 << "version: " << hdr.version << ", "
186
187 << "trigger_number: " << hdr.trigger_number << ", "
188 << "run_number: " << hdr.run_number << ", "
189 << "trigger_timestamp: " << hdr.trigger_timestamp << ", "
190 << "trigger_type: " << hdr.trigger_type << ", "
191
192 << "error_bits: " << hdr.error_bits << ", "
193
194 << "num_requested_components: " << hdr.num_requested_components << ", "
195 << "sequence_number: " << hdr.sequence_number << ", "
196 << "max_sequence_number: " << hdr.max_sequence_number << ", "
197 << "element_id: { " << hdr.element_id << " }";
198}

◆ operator>>() [1/6]

std::istream & dunedaq::daqdataformats::operator>> ( std::istream & is,
ComponentRequest & cr )
inline

Read a ComponentRequest from a string stream.

Parameters
isInput stream
crComponentRequest to read
Returns
Stream instance for continued streaming

Definition at line 83 of file ComponentRequest.hpp.

84{
85 std::string tmp;
86 return is >> cr.component >> tmp >> tmp >> cr.window_begin >> tmp >> tmp >> cr.window_end;
87}
timestamp_t window_end
End of the data collection window.
SourceID component
The Requested Component.
timestamp_t window_begin
Start of the data collection window.

◆ operator>>() [2/6]

std::istream & dunedaq::daqdataformats::operator>> ( std::istream & is,
SourceID & source_id )
inline

Read a SourceID from a string stream.

Parameters
isStream to read from
idSourceID to fill
Returns
Stream instance for further streaming

Definition at line 60 of file SourceID.hxx.

61{
62 std::string tmp ;
63 is >> tmp >> source_id.subsystem >> tmp >> source_id.id; // Eat last three tokens, e.g. "-> (314, 159)"
64
65 return is;
66}
Subsystem subsystem
The general subsystem of the source of the data.
Definition SourceID.hpp:69
ID_t id
Unique identifier of the source of the data.
Definition SourceID.hpp:74

◆ operator>>() [3/6]

std::istream & dunedaq::daqdataformats::operator>> ( std::istream & is,
SourceID::Subsystem & t )
inline

Read a SourceID::Subsystem from a string stream.

Parameters
isStream to read from
idSubsystem to fill
Returns
Stream instance for further streaming

Definition at line 43 of file SourceID.hxx.

44{
45 std::string tmp;
46 is >> tmp;
47
48 t = SourceID::string_to_subsystem(tmp);
49
50 return is;
51}

◆ operator>>() [4/6]

std::istream & dunedaq::daqdataformats::operator>> ( std::istream & o,
FragmentHeader & hdr )
inline

Read a FragmentHeader instance from a string stream.

Parameters
isStream to read from
hdrFragmentHeader to read
Returns
Stream instance for continued streaming

Definition at line 310 of file FragmentHeader.hpp.

311{
312 std::string tmp;
313 return o >> tmp >> std::hex >> hdr.fragment_header_marker >> std::dec >> tmp >> tmp >> hdr.version >> tmp >> tmp >>
314 hdr.size >> tmp >> tmp >> hdr.trigger_number >> tmp >> tmp >> hdr.run_number >> tmp >> tmp >>
315 hdr.trigger_timestamp >> tmp >> tmp >> hdr.window_begin >> tmp >> tmp >> hdr.window_end >> tmp >> tmp >>
316 hdr.error_bits >> tmp >> tmp >> hdr.fragment_type >> tmp >> tmp >>
317 hdr.sequence_number >> tmp >> tmp >> hdr.detector_id >> tmp >> tmp >> hdr.element_id;
318
319}
timestamp_t trigger_timestamp
Timestamp of the TriggerDecision.
fragment_type_t fragment_type
Type of the Fragment, indicating the format of the contained payload.
SourceID element_id
Component that generated the data in this Fragment.
uint16_t detector_id
Identifier for the subdetector that produced the raw data in the Fragment payload.
uint32_t error_bits
Error bits set by the Upstream DAQ.
uint32_t fragment_header_marker
Marker Bytes used to identify FragmentHeaders in a raw data stream.
uint32_t version
Version of the FragmentHeader.
run_number_t run_number
Run number this Fragment is associated with.
sequence_number_t sequence_number
Sequence number of this Fragment within a trigger record.
trigger_number_t trigger_number
Trigger Number this Fragment is associated with.
timestamp_t window_end
Window end of data in the Fragment.
timestamp_t window_begin
Window begin of data in the Fragment.
fragment_size_t size
Size of the Fragment (including header and payload)

◆ operator>>() [5/6]

std::istream & dunedaq::daqdataformats::operator>> ( std::istream & o,
TimeSliceHeader & hdr )
inline

Read a TimeSliceHeader instance from a string stream.

Parameters
isStream to read from
hdrTimeSliceHeader toread
Returns
Stream instance for continued streaming

Definition at line 100 of file TimeSliceHeader.hpp.

101{
102 std::string tmp;
103 return o >> tmp >> std::hex >> hdr.timeslice_header_marker >> std::dec >> tmp >> tmp >> hdr.version >> tmp >> tmp >>
104 hdr.timeslice_number >> tmp >> tmp >> hdr.run_number >> tmp >> tmp >> tmp >> hdr.element_id;
105}
run_number_t run_number
Run Number for the TimeSlice.
uint32_t version
Version of the TimeSliceHeader structure.
uint32_t timeslice_header_marker
Marker bytes used to identify a TimeSliceHeader struct in a raw data stream.
timeslice_number_t timeslice_number
Slice number of this TimeSlice within the stream.

◆ operator>>() [6/6]

std::istream & dunedaq::daqdataformats::operator>> ( std::istream & o,
TriggerRecordHeaderData & hdr )
inline

Read a TriggerRecordHeaderData instance from a string stream.

Parameters
isStream to read from
hdrTriggerRecordHeaderData toread
Returns
Stream instance for continued streaming

Definition at line 207 of file TriggerRecordHeaderData.hpp.

208{
209 std::string tmp;
210 return o >> tmp >> std::hex >> hdr.trigger_record_header_marker >> std::dec >> tmp >> tmp >> hdr.version >> tmp >>
211 tmp >> hdr.trigger_number >> tmp >> tmp >> hdr.run_number >> tmp >> tmp >> hdr.trigger_timestamp >> tmp >>
212 tmp >> hdr.trigger_type >> tmp >> tmp >> hdr.error_bits >> tmp >> tmp >> hdr.num_requested_components >> tmp >>
213 tmp >> hdr.sequence_number >> tmp >> tmp >> hdr.max_sequence_number >> tmp >> tmp >> tmp >> hdr.element_id;
214}
uint32_t version
Version of the TriggerRecordHeaderData structure.
sequence_number_t max_sequence_number
Maximum sequence number of TriggerRecords corresponding to this trigger.
sequence_number_t sequence_number
Sequence number of this TriggerRecord within the trigger response.
timestamp_t trigger_timestamp
Timestamp of the TriggerDecision.
uint64_t num_requested_components
Number of ComponentRequest objects stored in the TriggerRecordHeader.
trigger_type_t trigger_type
Type of the TriggerDecision.
uint32_t trigger_record_header_marker
Magic bytes used to identify a TriggerRecordHeaderData struct in a raw data stream.
run_number_t run_number
Run Number for the TriggerRecord.
uint32_t error_bits
Error bits for the TriggerRecord.

◆ string_to_fragment_type()

FragmentType dunedaq::daqdataformats::string_to_fragment_type ( const std::string & name)
inline

Convert a string to a FragmentType value.

Parameters
nameName of the type
Returns
FragmentType corresponding to given string

Definition at line 270 of file FragmentHeader.hpp.

271{
272 for (auto& it : get_fragment_type_names()) {
273 if (it.second == name)
274 return it.first;
275 }
276 return FragmentType::kUnknown;
277}