artdaq_core  v3_04_09
artdaq::detail::RawFragmentHeader Struct Reference

The RawFragmentHeader class contains the basic fields used by artdaq for routing Fragment objects through the system. More...

#include <artdaq-core/Data/detail/RawFragmentHeader.hh>

Public Types

typedef unsigned long long RawDataType
 The RawDataType (currently a 64-bit integer) is the basic unit of data representation within artdaq
 
typedef uint16_t version_t
 version field is 16 bits
 
typedef uint64_t sequence_id_t
 sequence_id field is 48 bits
 
typedef uint8_t type_t
 type field is 8 bits
 
typedef uint16_t fragment_id_t
 fragment_id field is 16 bits
 
typedef uint8_t metadata_word_count_t
 metadata_word_count field is 8 bits
 
typedef uint64_t timestamp_t
 timestamp field is 32 bits
 

Public Member Functions

void setUserType (uint8_t utype)
 Sets the type field to the specified user type. More...
 
void setSystemType (uint8_t stype)
 Sets the type field to the specified system type. More...
 

Static Public Member Functions

static std::map< type_t,
std::string > 
MakeSystemTypeMap ()
 Returns a map of the most-commonly used system types. More...
 
static std::map< type_t,
std::string > 
MakeVerboseSystemTypeMap ()
 Returns a map of all system types. More...
 
static std::string SystemTypeToString (type_t type)
 Print a system type's string name. More...
 
static constexpr std::size_t num_words ()
 Returns the number of RawDataType words present in the header. More...
 

Public Attributes

RawDataType word_count: 32
 number of RawDataType words in this Fragment
 
RawDataType version: 16
 The version of the fragment.
 
RawDataType type: 8
 The type of the fragment, either system or user-defined.
 
RawDataType metadata_word_count: 8
 The number of RawDataType words in the user-defined metadata.
 
RawDataType sequence_id: 48
 The 48-bit sequence_id uniquely identifies events within the artdaq system.
 
RawDataType fragment_id: 16
 The fragment_id uniquely identifies a particular piece of hardware within the artdaq system.
 
RawDataType timestamp: 64
 The 64-bit timestamp field is the output of a user-defined clock used for building time-correlated events.
 

Static Public Attributes

static constexpr type_t INVALID_TYPE = 0
 Marks a Fragment as Invalid.
 
static constexpr type_t FIRST_USER_TYPE = 1
 The first user-accessible type.
 
static constexpr type_t LAST_USER_TYPE = 224
 The last user-accessible type (types above this number are system types.
 
static constexpr type_t FIRST_SYSTEM_TYPE = 225
 The first system type.
 
static constexpr type_t LAST_SYSTEM_TYPE = 255
 The last system type.
 
static constexpr type_t InvalidFragmentType = INVALID_TYPE
 Marks a Fragment as Invalid.
 
static constexpr type_t EndOfDataFragmentType = FIRST_SYSTEM_TYPE
 This Fragment indicates the end of data to art
 
static constexpr type_t DataFragmentType = FIRST_SYSTEM_TYPE + 1
 This Fragment holds data. Used for RawEvent Fragments sent from the EventBuilder to the Aggregator.
 
static constexpr type_t InitFragmentType = FIRST_SYSTEM_TYPE + 2
 This Fragment holds the necessary data for initializing art
 
static constexpr type_t EndOfRunFragmentType = FIRST_SYSTEM_TYPE + 3
 This Fragment indicates the end of a run to art
 
static constexpr type_t EndOfSubrunFragmentType = FIRST_SYSTEM_TYPE + 4
 This Fragment indicates the end of a subrun to art
 
static constexpr type_t ShutdownFragmentType = FIRST_SYSTEM_TYPE + 5
 This Fragment indicates a system shutdown to art
 
static constexpr type_t EmptyFragmentType = FIRST_SYSTEM_TYPE + 6
 This Fragment contains no data and serves as a placeholder for when no data from a FragmentGenerator is expected.
 
static constexpr type_t ContainerFragmentType = FIRST_SYSTEM_TYPE + 7
 This Fragment is a ContainerFragment and analysis code should unpack it.
 
static constexpr type_t ErrorFragmentType = FIRST_SYSTEM_TYPE + 8
 This Fragment has experienced some error, and no attempt should be made to read it.
 
static const version_t InvalidVersion = 0xFFFF
 The version field is currently 16-bits.
 
static const version_t CurrentVersion = 0x1
 The CurrentVersion field should be incremented whenever the RawFragmentHeader changes.
 
static const sequence_id_t InvalidSequenceID = 0xFFFFFFFFFFFF
 The sequence_id field is currently 48-bits.
 
static const fragment_id_t InvalidFragmentID = 0xFFFF
 The fragment_id field is currently 16-bits.
 
static const timestamp_t InvalidTimestamp = 0xFFFFFFFFFFFFFFFF
 The timestamp field is currently 64-bits.
 

Detailed Description

The RawFragmentHeader class contains the basic fields used by artdaq for routing Fragment objects through the system.

The RawFragmentHeader class contains the basic fields used by artdaq for routing Fragment objects through the system. It also contains static value definitions of values used in those fields.

Definition at line 33 of file RawFragmentHeader.hh.

Member Function Documentation

static std::map<type_t, std::string> artdaq::detail::RawFragmentHeader::MakeSystemTypeMap ( )
inlinestatic

Returns a map of the most-commonly used system types.

Returns
A map of the system types used in the artdaq data stream

Definition at line 69 of file RawFragmentHeader.hh.

static std::map<type_t, std::string> artdaq::detail::RawFragmentHeader::MakeVerboseSystemTypeMap ( )
inlinestatic

Returns a map of all system types.

Returns
A map of all defined system types

Definition at line 84 of file RawFragmentHeader.hh.

constexpr std::size_t artdaq::detail::RawFragmentHeader::num_words ( )
inlinestatic

Returns the number of RawDataType words present in the header.

Returns
The number of RawDataType words present in the header

Definition at line 178 of file RawFragmentHeader.hh.

void artdaq::detail::RawFragmentHeader::setSystemType ( uint8_t  stype)
inline

Sets the type field to the specified system type.

Parameters
stypeThe type code to set
Exceptions
cet::exceptionif stype is not in the allowed range for system types

Definition at line 208 of file RawFragmentHeader.hh.

void artdaq::detail::RawFragmentHeader::setUserType ( uint8_t  utype)
inline

Sets the type field to the specified user type.

Parameters
utypeThe type code to set
Exceptions
cet::exceptionif utype is not in the allowed range for user types

Definition at line 194 of file RawFragmentHeader.hh.

static std::string artdaq::detail::RawFragmentHeader::SystemTypeToString ( type_t  type)
inlinestatic

Print a system type's string name.

Parameters
typeType to print
Returns
String with "Name" of type

Definition at line 103 of file RawFragmentHeader.hh.


The documentation for this struct was generated from the following file: