DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
daqdataformats
include
daqdataformats
detail
FragmentHeader.hxx
Go to the documentation of this file.
1
2
namespace
dunedaq::daqdataformats
{
3
4
static_assert
(std::is_trivially_copyable<FragmentHeader>::value,
5
"FragmentHeader isn't trivially copyable and can't be safely std::memcpy'd"
);
6
7
static_assert
(std::is_standard_layout<FragmentHeader>::value,
8
"FragmentHeader isn't standard layout; reinterpret_cast and offsetof can't safely be used with it"
);
9
10
static_assert
(
FragmentHeader::s_fragment_header_version
== 6,
11
"This is intentionally designed to tell the developer to update the static_assert checks (including this "
12
"one) when the version is bumped"
);
13
14
static_assert
(
sizeof
(
FragmentHeader
) == 72,
"FragmentHeader struct size different than expected!"
);
15
static_assert
(offsetof(
FragmentHeader
, fragment_header_marker) == 0,
16
"FragmentHeader fragment_header_marker field not at expected offset!"
);
17
static_assert
(offsetof(
FragmentHeader
,
version
) == 4,
"FragmentHeader version field not at expected offset!"
);
18
static_assert
(offsetof(
FragmentHeader
,
size
) == 8,
"FragmentHeader size field not at expected offset!"
);
19
static_assert
(offsetof(
FragmentHeader
, trigger_number) == 16,
20
"FragmentHeader trigger_number field not at expected offset!"
);
21
static_assert
(offsetof(
FragmentHeader
, trigger_timestamp) == 24,
22
"FragmentHeader trigger_timestamp field not at expected offset!"
);
23
static_assert
(offsetof(
FragmentHeader
, window_begin) == 32,
24
"FragmentHeader window_begin field not at expected offset!"
);
25
static_assert
(offsetof(
FragmentHeader
, window_end) == 40,
"FragmentHeader window_end field not at expected offset!"
);
26
static_assert
(offsetof(
FragmentHeader
, run_number) == 48,
"FragmentHeader run_number field not at expected offset!"
);
27
static_assert
(offsetof(
FragmentHeader
, status_bits) == 52,
"FragmentHeader status_bits field not at expected offset!"
);
28
static_assert
(offsetof(
FragmentHeader
, fragment_type) == 56,
29
"FragmentHeader fragment_type field not at expected offset!"
);
30
static_assert
(offsetof(
FragmentHeader
, sequence_number) == 60,
31
"FragmentHeader sequence_number field not at expected offset!"
);
32
static_assert
(offsetof(
FragmentHeader
, detector_id) == 62,
"FragmentHeader detector_id field not at expected offset!"
);
33
static_assert
(offsetof(
FragmentHeader
, element_id) == 64,
"FragmentHeader element_id field not at expected offset!"
);
34
35
inline
std::string
36
fragment_type_to_string
(
const
FragmentType
&
type
)
37
{
38
try
{
39
return
get_fragment_type_names
().at(
type
);
40
}
catch
(std::exception& e) {
41
}
42
return
"Unknown"
;
43
}
44
45
inline
FragmentType
46
string_to_fragment_type
(
const
std::string& name)
47
{
48
for
(
auto
& it :
get_fragment_type_names
()) {
49
if
(it.second == name)
50
return
it.first;
51
}
52
return
FragmentType::kUnknown
;
53
}
54
55
inline
std::ostream&
56
operator<<
(std::ostream& o,
FragmentHeader
const
& hdr)
57
{
58
return
o <<
"check_word: "
<< std::hex << hdr.
fragment_header_marker
<< std::dec <<
", "
<<
"version: "
<< hdr.
version
59
<<
", "
<<
"size: "
<< hdr.
size
<<
", "
<<
"trigger_number: "
<< hdr.
trigger_number
<<
", "
60
<<
"run_number: "
<< hdr.
run_number
<<
", "
<<
"trigger_timestamp: "
<< hdr.
trigger_timestamp
<<
", "
61
<<
"window_begin: "
<< hdr.
window_begin
<<
", "
<<
"window_end: "
<< hdr.
window_end
<<
", "
62
<<
"status_bits: "
<< hdr.
status_bits
<<
", "
<<
"fragment_type: "
<< hdr.
fragment_type
<<
", "
63
<<
"sequence_number: "
<< hdr.
sequence_number
<<
", "
<<
"detector_id: "
<< hdr.
detector_id
<<
", "
64
<<
"element_id: "
<< hdr.
element_id
;
65
}
66
67
}
// namespace dunedaq::daqdataformats
version
version
Definition
TriggerActivity_serialization.hpp:50
type
type
Definition
TriggerActivity_serialization.hpp:48
dunedaq::daqdataformats
Definition
ComponentRequest.hpp:20
dunedaq::daqdataformats::FragmentType
FragmentType
All defined Fragment types.
Definition
FragmentHeader.hpp:114
dunedaq::daqdataformats::FragmentType::kUnknown
@ kUnknown
Definition
FragmentHeader.hpp:115
dunedaq::daqdataformats::string_to_fragment_type
FragmentType string_to_fragment_type(const std::string &name)
Definition
FragmentHeader.hxx:46
dunedaq::daqdataformats::fragment_type_to_string
std::string fragment_type_to_string(const FragmentType &type)
Definition
FragmentHeader.hxx:36
dunedaq::daqdataformats::operator<<
std::ostream & operator<<(std::ostream &o, ComponentRequest const &cr)
Definition
ComponentRequest.hxx:23
dunedaq::daqdataformats::get_fragment_type_names
std::map< FragmentType, std::string > get_fragment_type_names()
This map relates FragmentType values to string names.
Definition
FragmentHeader.hpp:153
dunedaq::size
FELIX Initialization std::string initerror FELIX queue timed std::string queuename Unexpected chunk size
Definition
FelixIssues.hpp:28
dunedaq::daqdataformats::FragmentHeader
The header for a DUNE Fragment.
Definition
FragmentHeader.hpp:31
dunedaq::daqdataformats::FragmentHeader::trigger_timestamp
timestamp_t trigger_timestamp
Timestamp of the TriggerDecision.
Definition
FragmentHeader.hpp:48
dunedaq::daqdataformats::FragmentHeader::fragment_type
fragment_type_t fragment_type
Type of the Fragment, indicating the format of the contained payload.
Definition
FragmentHeader.hpp:62
dunedaq::daqdataformats::FragmentHeader::element_id
SourceID element_id
Component that generated the data in this Fragment.
Definition
FragmentHeader.hpp:71
dunedaq::daqdataformats::FragmentHeader::detector_id
uint16_t detector_id
Identifier for the subdetector that produced the raw data in the Fragment payload.
Definition
FragmentHeader.hpp:68
dunedaq::daqdataformats::FragmentHeader::fragment_header_marker
uint32_t fragment_header_marker
Definition
FragmentHeader.hpp:38
dunedaq::daqdataformats::FragmentHeader::version
uint32_t version
Definition
FragmentHeader.hpp:39
dunedaq::daqdataformats::FragmentHeader::run_number
run_number_t run_number
Definition
FragmentHeader.hpp:56
dunedaq::daqdataformats::FragmentHeader::sequence_number
sequence_number_t sequence_number
Sequence number of this Fragment within a trigger record.
Definition
FragmentHeader.hpp:65
dunedaq::daqdataformats::FragmentHeader::s_fragment_header_version
static constexpr uint32_t s_fragment_header_version
Definition
FragmentHeader.hpp:35
dunedaq::daqdataformats::FragmentHeader::status_bits
uint32_t status_bits
Status bits set by the Upstream DAQ.
Definition
FragmentHeader.hpp:59
dunedaq::daqdataformats::FragmentHeader::trigger_number
trigger_number_t trigger_number
Trigger Number this Fragment is associated with.
Definition
FragmentHeader.hpp:45
dunedaq::daqdataformats::FragmentHeader::window_end
timestamp_t window_end
Window end of data in the Fragment.
Definition
FragmentHeader.hpp:54
dunedaq::daqdataformats::FragmentHeader::window_begin
timestamp_t window_begin
Window begin of data in the Fragment.
Definition
FragmentHeader.hpp:51
dunedaq::daqdataformats::FragmentHeader::size
fragment_size_t size
Size of the Fragment (including header and payload).
Definition
FragmentHeader.hpp:42
Generated on
for DUNE-DAQ by
1.17.0