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>

List of all members.

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.
void setSystemType (uint8_t stype)
 Sets the type field to the specified system type.

Static Public Member Functions

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

Public Attributes

RawDataType word_count: 32
 number of RawDataType words in this Fragment
RawDataType version: 16
 The version of the fragment. Currently always InvalidVersion.
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 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 32-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 (  )  [inline, static]

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 68 of file RawFragmentHeader.hh.

static std::map<type_t, std::string> artdaq::detail::RawFragmentHeader::MakeVerboseSystemTypeMap (  )  [inline, static]

Returns a map of all system types.

Returns:
A map of all defined system types

Definition at line 81 of file RawFragmentHeader.hh.

constexpr std::size_t artdaq::detail::RawFragmentHeader::num_words (  )  [inline, static]

Returns the number of RawDataType words present in the header.

Returns:
The number of RawDataType words present in the header

Definition at line 146 of file RawFragmentHeader.hh.

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

Sets the type field to the specified system type.

Parameters:
stype The type code to set
Exceptions:
cet::exception if stype is not in the allowed range for system types

Definition at line 176 of file RawFragmentHeader.hh.

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

Sets the type field to the specified user type.

Parameters:
utype The type code to set
Exceptions:
cet::exception if utype is not in the allowed range for user types

Definition at line 162 of file RawFragmentHeader.hh.


The documentation for this struct was generated from the following file:
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator

Generated on 7 Aug 2017 for artdaq_core by  doxygen 1.6.1