FragmentHeader v6¶
This document describes the format of the FragmentHeader struct, version 6. It should not be updated, but rather kept as a historic record of the data format for this version.
FragmentHeader Description¶
Version 6 of the FragmentHeader consists of 18 32-bit words:
-
Marker (0x11112222)
-
Version (0x00000006)
-
Size in bytes, including header and Fragment payload (upper 32 bits)
-
Size in bytes, including header and Fragment payload (lower 32 bits)
-
Trigger number (upper 32 bits)
-
Trigger number (lower 32 bits)
-
Trigger timestamp (upper 32 bits)
-
Trigger timestamp (lower 32 bits)
-
Data window begin (upper 32 bits)
-
Data window begin (lower 32 bits)
-
Data window end (upper 32 bits)
-
Data window end (lower 32 bits)
-
Run Number
-
Status bits
-
Fragment Type
-
Sequence Number (upper 16 bits) / Detector ID (lower 16 bits)
-
SourceID version 2 Version (upper 16 bits) / Subsystem (lower 16 bits)
-
SourceID version 2 Element ID
C++ code for FragmentHeader¶
using run_number_t = uint32_t;
using trigger_number_t = uint64_t;
using fragment_type_t = uint32_t;
using fragment_size_t = uint64_t;
using timestamp_t = uint64_t;
using sequence_number_t = uint16_t;
struct FragmentHeader
{
static constexpr uint32_t s_fragment_header_marker = 0x11112222;
static constexpr uint32_t s_fragment_header_version = 6;
static constexpr uint32_t s_default_status_bits = 0;
uint32_t fragment_header_marker = s_fragment_header_marker;
uint32_t version = s_fragment_header_version;
fragment_size_t size{ TypeDefaults::s_invalid_fragment_size };
trigger_number_t trigger_number{ TypeDefaults::s_invalid_trigger_number };
timestamp_t trigger_timestamp{ TypeDefaults::s_invalid_timestamp };
timestamp_t window_begin{ TypeDefaults::s_invalid_timestamp };
timestamp_t window_end{ TypeDefaults::s_invalid_timestamp };
run_number_t run_number{ TypeDefaults::s_invalid_run_number };
uint32_t status_bits{ s_default_status_bits };
fragment_type_t fragment_type{ TypeDefaults::s_invalid_fragment_type };
sequence_number_t sequence_number {TypeDefaults::s_invalid_sequence_number };
uint16_t detector_id;
SourceID element_id;
};
Fragment Notes¶
A Fragment is a flat array consisting of a FragmentHeader and payload data (e.g. data from electronics readout). The format of this data should be able to be inferred from the fragment_type field of the FragmentHeader.
Changelog¶
v6. The only change from version 5 to version 6 of the FragmentHeader is that the error_bits field has been renamed to status_bits to better reflect its intended use.
v5. The only change from version 4 to version 5 of the FragmentHeader is that the lower 16 bits of word 15, which were previously unused padding, are now used to store a detector_id field.
Last git commit to the markdown source of this page:
Author: Eric Flumerfelt
Date: Thu Jan 22 08:45:15 2026 -0600
If you see a problem with the documentation on this page, please file an Issue at https://github.com/DUNE-DAQ/daqdataformats/issues