artdaq::detail::RawFragmentHeaderV0 Struct Reference

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

#include <artdaq-core/Data/detail/RawFragmentHeaderV0.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 uint32_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.
RawFragmentHeader upgrade () const
 Upgrades the RawFragmentHeaderV0 to a RawFragmentHeader (Current version).

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: 32
 The 64-bit timestamp field is the output of a user-defined clock used for building time-correlated events.
RawDataType unused1: 16
 Extra space.
RawDataType unused2: 16
 Extra space.

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 = 0x0
 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 = 0xFFFFFFFF
 The timestamp field is currently 32-bits.

Detailed Description

The RawFragmentHeaderV0 class contains the basic fields used by _artdaq_ for routing Fragment objects through the system.

The RawFragmentHeaderV0 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. This is an old version of RawFragmentHeader, provided for compatibility

Definition at line 35 of file RawFragmentHeaderV0.hh.


Member Function Documentation

static std::map<type_t, std::string> artdaq::detail::RawFragmentHeaderV0::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 70 of file RawFragmentHeaderV0.hh.

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

Returns a map of all system types.

Returns:
A map of all defined system types

Definition at line 83 of file RawFragmentHeaderV0.hh.

constexpr std::size_t artdaq::detail::RawFragmentHeaderV0::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 158 of file RawFragmentHeaderV0.hh.

void artdaq::detail::RawFragmentHeaderV0::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 187 of file RawFragmentHeaderV0.hh.

void artdaq::detail::RawFragmentHeaderV0::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 173 of file RawFragmentHeaderV0.hh.

artdaq::detail::RawFragmentHeader artdaq::detail::RawFragmentHeaderV0::upgrade (  )  const [inline]

Upgrades the RawFragmentHeaderV0 to a RawFragmentHeader (Current version).

Returns:
Current-version RawFragmentHeader

The constraints on RawFragmentHeader upgrades are that no field may shrink in size or be deleted. Therefore, there will always be an upgrade path from old RawFragmentHeaders to new ones. By convention, all fields are initialized to the Invalid defines, and then the old data (guarenteed to be smaller) is cast to the new header. In the case of added fields, they will remain marked Invalid.

Definition at line 200 of file RawFragmentHeaderV0.hh.


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

Generated on 3 May 2018 for artdaq_core by  doxygen 1.6.1