CbmRoot
StsXyterMessage.h File Reference
#include <iostream>
#include <stdint.h>
#include "bitmask_operators.hpp"
Include dependency graph for StsXyterMessage.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  stsxyter::MessField
 
class  stsxyter::Message
 

Namespaces

 stsxyter
 

Enumerations

enum  stsxyter::MessType : uint16_t {
  stsxyter::MessType::Dummy, stsxyter::MessType::Hit, stsxyter::MessType::TsMsb, stsxyter::MessType::Epoch,
  stsxyter::MessType::Status, stsxyter::MessType::Empty, stsxyter::MessType::EndOfMs
}
 Message types. More...
 
enum  stsxyter::MessSubType : uint16_t { stsxyter::MessSubType::TsMsb = 0, stsxyter::MessSubType::Epoch = 1, stsxyter::MessSubType::Status = 2, stsxyter::MessSubType::Empty = 3 }
 Non-hit Message sub-types. More...
 
enum  stsxyter::MessagePrintMask : uint16_t { stsxyter::MessagePrintMask::msg_print_Prefix = (0x1 << 0), stsxyter::MessagePrintMask::msg_print_Data = (0x1 << 1), stsxyter::MessagePrintMask::msg_print_Hex = (0x1 << 2), stsxyter::MessagePrintMask::msg_print_Human = (0x1 << 3) }
 Printout control. More...
 

Functions

static const MessField stsxyter::kFieldLinkIndex (kusPosLinkIndex, kusLenLinkIndex)
 Fields Info. More...
 
static const MessField stsxyter::kFieldNotHitFlag (kusPosNotHitFlag, kusLenNotHitFlag)
 
static const MessField stsxyter::kFieldHitChannel (kusPosHitChannel, kusLenHitChannel)
 
static const MessField stsxyter::kFieldHitAdc (kusPosHitAdc, kusLenHitAdc)
 
static const MessField stsxyter::kFieldHitTsFull (kusPosHitTs, kusLenHitTsFull)
 
static const MessField stsxyter::kFieldHitTsOver (kusPosHitTsOver, kusLenHitTsOver)
 
static const MessField stsxyter::kFieldHitTs (kusPosHitTs, kusLenHitTs)
 
static const MessField stsxyter::kFieldHitEmFlag (kusPosHitEmFlag, kusLenHitEmFlag)
 
static const MessField stsxyter::kFieldSubtype (kusPosSubtype, kusLenSubtype)
 
static const MessField stsxyter::kFieldTsMsbVal (kusPosTsMsbVal, kusLenTsMsbVal)
 
static const MessField stsxyter::kFieldTsMsbValBinning (kusPosTsMsbVal, kusLenTsMsbValBinning)
 
static const MessField stsxyter::kFieldEpochVal (kusPosEpochVal, kusLenEpochVal)
 
static const MessField stsxyter::kFieldStatLinkId (kusPosStatLinkId, kusLenStatLinkId)
 
static const MessField stsxyter::kFieldStatSxTs (kusPosStatSxTs, kusLenStatSxTs)
 
static const MessField stsxyter::kFieldStatStatus (kusPosStatStatus, kusLenStatStatus)
 
static const MessField stsxyter::kFieldStatDpbTs (kusPosStatDpbTs, kusLenStatDpbTs)
 
static const MessField stsxyter::kFieldStatCpFlag (kusPosStatCpFlag, kusLenStatCpFlag)
 
static const MessField stsxyter::kFieldEmptyFlag (kusPosEmptyFlag, kusLenEmptyFlag)
 
static const MessField stsxyter::kFieldMsErrFlag (kusPosMsErrFlag, kusLenMsErrFlag)
 
static const MessField stsxyter::kFieldMsErrType (kusPosMsErrType, kusLenMsErrType)
 

Variables

static ENABLE_BITMASK_OPERATORS(stsxyter::MessagePrintMask) enum class MsErrorFlags const uint16_t stsxyter::kusPosNotHitFlag = 31
 MS error flags. More...
 
static const uint16_t stsxyter::kusPosLinkIndex = 22
 
static const uint16_t stsxyter::kusPosHitChannel = 15
 
static const uint16_t stsxyter::kusPosHitAdc = 10
 
static const uint16_t stsxyter::kusPosHitTsOver = 9
 
static const uint16_t stsxyter::kusPosHitTs = 1
 
static const uint16_t stsxyter::kusPosHitEmFlag = 0
 
static const uint16_t stsxyter::kusPosSubtype = 29
 
static const uint16_t stsxyter::kusPosTsMsbVal = 0
 
static const uint16_t stsxyter::kusPosEpochVal = 0
 
static const uint16_t stsxyter::kusPosStatLinkId = 20
 
static const uint16_t stsxyter::kusPosStatSxTs = 14
 
static const uint16_t stsxyter::kusPosStatStatus = 10
 
static const uint16_t stsxyter::kusPosStatDpbTs = 1
 
static const uint16_t stsxyter::kusPosStatCpFlag = 0
 
static const uint16_t stsxyter::kusPosEmptyFlag = 28
 
static const uint16_t stsxyter::kusPosMsErrType = 1
 
static const uint16_t stsxyter::kusPosMsErrFlag = 0
 
static const uint16_t stsxyter::kusLenNotHitFlag = 1
 Fields length (bits) More...
 
static const uint16_t stsxyter::kusLenLinkIndex = 9
 
static const uint16_t stsxyter::kusLenHitChannel = 7
 
static const uint16_t stsxyter::kusLenHitAdc = 5
 
static const uint16_t stsxyter::kusLenHitTsFull
 
static const uint16_t stsxyter::kusLenHitTsOver = 0
 
static const uint16_t stsxyter::kusLenHitTs = 9
 
static const uint16_t stsxyter::kusLenHitEmFlag = 1
 
static const uint16_t stsxyter::kusLenSubtype = 2
 
static const uint16_t stsxyter::kusLenTsMsbVal = 22
 
static const uint16_t stsxyter::kusLenTsMsbValBinning = 29
 
static const uint16_t stsxyter::kusLenEpochVal = 29
 
static const uint16_t stsxyter::kusLenStatLinkId = 9
 
static const uint16_t stsxyter::kusLenStatSxTs = 6
 
static const uint16_t stsxyter::kusLenStatStatus = 4
 
static const uint16_t stsxyter::kusLenStatDpbTs = 9
 
static const uint16_t stsxyter::kusLenStatCpFlag = 1
 
static const uint16_t stsxyter::kusLenEmptyFlag = 1
 
static const uint16_t stsxyter::kusLenMsErrType = 4
 
static const uint16_t stsxyter::kusLenMsErrFlag = 1
 
static const uint32_t stsxyter::kuHitNbAdcBins
 Status/properties constants. More...
 
static const uint32_t stsxyter::kuHitNbTsBins
 
static const uint32_t stsxyter::kuHitNbOverBins
 
static const uint32_t stsxyter::kuTsMsbNbTsBins
 
static const uint64_t stsxyter::kulTsCycleNbBins
 
static const uint16_t stsxyter::kusMaskTsMsbOver = (1 << kusLenHitTsOver) - 1
 
static const double stsxyter::kdClockCycleNs
 
static const uint32_t stsxyter::kuHitNbTsBinsBinning = 1 << 10
 
static const uint64_t stsxyter::kulTsCycleNbBinsBinning