CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Attributes
FEDHeader Class Reference

#include <FEDHeader.h>

Public Member Functions

uint16_t bxID () const
 The bunch crossing number. More...
 
bool check () const
 Check that the header is OK. More...
 
 FEDHeader (const unsigned char *header)
 Constructor. More...
 
uint32_t lvl1ID () const
 Level-1 event number generated by the TTC system. More...
 
bool moreHeaders () const
 
uint16_t sourceID () const
 Identifier of the FED. More...
 
uint8_t triggerType () const
 Event Trigger type identifier. More...
 
uint8_t version () const
 Version identifier of the FED data format. More...
 
 ~FEDHeader ()
 Destructor. More...
 

Static Public Member Functions

static void set (unsigned char *header, uint8_t triggerType, uint32_t lvl1ID, uint16_t bxID, uint16_t sourceID, uint8_t version=0, bool moreHeaders=false)
 Set all fields in the header. More...
 

Static Public Attributes

static const uint32_t length = sizeof(fedh_t)
 

Private Attributes

const fedh_structtheHeader
 

Detailed Description

Helper class to interpret/create FED header words.

Author
N. Amapane - CERN, R. Mommsen - FNAL

Definition at line 14 of file FEDHeader.h.

Constructor & Destructor Documentation

◆ FEDHeader()

FEDHeader::FEDHeader ( const unsigned char *  header)

Constructor.

Definition at line 9 of file FEDHeader.cc.

9 : theHeader(reinterpret_cast<const fedh_t*>(header)) {}
const fedh_struct * theHeader
Definition: FEDHeader.h:57

◆ ~FEDHeader()

FEDHeader::~FEDHeader ( )

Destructor.

Definition at line 11 of file FEDHeader.cc.

11 {}

Member Function Documentation

◆ bxID()

uint16_t FEDHeader::bxID ( ) const

◆ check()

bool FEDHeader::check ( ) const

◆ lvl1ID()

uint32_t FEDHeader::lvl1ID ( ) const

◆ moreHeaders()

bool FEDHeader::moreHeaders ( ) const

0 -> the current header word is the last one. 1-> other header words can follow (always 1 for ECAL)

Definition at line 23 of file FEDHeader.cc.

References FED_MORE_HEADERS_EXTRACT, fedh_struct::sourceid, and theHeader.

Referenced by ErrorCheckerBase::checkHeader(), RPixErrorChecker::checkHeader(), ESUnpacker::interpretRawData(), RPCUnpackingModule::produce(), omtf::OmtfUnpacker::produce(), set(), L1GlobalTriggerEvmRawToDigi::unpackHeader(), and L1GlobalTriggerRawToDigi::unpackHeader().

23 { return (FED_MORE_HEADERS_EXTRACT(theHeader->sourceid) != 0); }
const fedh_struct * theHeader
Definition: FEDHeader.h:57
#define FED_MORE_HEADERS_EXTRACT(a)
Definition: fed_header.h:60
uint32_t sourceid
Definition: fed_header.h:21

◆ set()

void FEDHeader::set ( unsigned char *  header,
uint8_t  triggerType,
uint32_t  lvl1ID,
uint16_t  bxID,
uint16_t  sourceID,
uint8_t  version = 0,
bool  moreHeaders = false 
)
static

Set all fields in the header.

Definition at line 25 of file FEDHeader.cc.

References bxID(), FED_BXID_MASK, FED_BXID_SHIFT, FED_BXID_WIDTH, FED_EVTY_MASK, FED_EVTY_SHIFT, FED_HCTRLID_SHIFT, FED_LVL1_MASK, FED_LVL1_SHIFT, FED_MORE_HEADERS_SHIFT, FED_MORE_HEADERS_WIDTH, FED_SLINK_START_MARKER, FED_SOID_MASK, FED_SOID_SHIFT, FED_VERSION_MASK, FED_VERSION_SHIFT, h, RecoTauValidation_cfi::header, lvl1ID(), moreHeaders(), sourceID(), triggerType(), and version().

Referenced by CSCDCCHeader::CSCDCCHeader(), ESDataFormatterV1_1::DigiToRaw(), ESDataFormatterV4::DigiToRaw(), DaqFakeReader::fillFEDs(), DaqFakeReader::fillTCDSFED(), CTPPSTotemDataFormatter::formatRawData(), PixelDataFormatter::formatRawData(), CTPPSPixelDataFormatter::formatRawData(), L1GTEvmDigiToRaw::packHeader(), L1GTDigiToRaw::packHeader(), DTDigiToRawModule::produce(), CSCTFPacker::produce(), RPCTwinMuxDigiToRaw::produce(), HGCalSlinkEmulator::produce(), GctDigiToRaw::produce(), HcalDigiToRawuHTR::produce(), and RPCPackingModule::rawData().

31  {
32  // FIXME: should check that input ranges are OK!!!
33  fedh_t* h = reinterpret_cast<fedh_t*>(header);
36 
37  h->sourceid = (((bxID & FED_BXID_WIDTH) << FED_BXID_SHIFT) & FED_BXID_MASK) |
39 
40  if (moreHeaders)
42 }
uint8_t triggerType() const
Event Trigger type identifier.
Definition: FEDHeader.cc:13
uint16_t sourceID() const
Identifier of the FED.
Definition: FEDHeader.cc:19
#define FED_SLINK_START_MARKER
Definition: fed_header.h:25
#define FED_MORE_HEADERS_WIDTH
Definition: fed_header.h:57
#define FED_BXID_WIDTH
Definition: fed_header.h:42
#define FED_SOID_SHIFT
Definition: fed_header.h:48
#define FED_EVTY_SHIFT
Definition: fed_header.h:33
#define FED_BXID_MASK
Definition: fed_header.h:44
#define FED_VERSION_MASK
Definition: fed_header.h:54
#define FED_BXID_SHIFT
Definition: fed_header.h:43
bool moreHeaders() const
Definition: FEDHeader.cc:23
#define FED_SOID_MASK
Definition: fed_header.h:49
uint16_t bxID() const
The bunch crossing number.
Definition: FEDHeader.cc:17
#define FED_MORE_HEADERS_SHIFT
Definition: fed_header.h:58
#define FED_LVL1_MASK
Definition: fed_header.h:39
#define FED_VERSION_SHIFT
Definition: fed_header.h:53
uint8_t version() const
Version identifier of the FED data format.
Definition: FEDHeader.cc:21
#define FED_LVL1_SHIFT
Definition: fed_header.h:38
uint32_t lvl1ID() const
Level-1 event number generated by the TTC system.
Definition: FEDHeader.cc:15
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
#define FED_EVTY_MASK
Definition: fed_header.h:34
#define FED_HCTRLID_SHIFT
Definition: fed_header.h:28

◆ sourceID()

uint16_t FEDHeader::sourceID ( ) const

◆ triggerType()

uint8_t FEDHeader::triggerType ( ) const

◆ version()

uint8_t FEDHeader::version ( ) const

Member Data Documentation

◆ length

const uint32_t FEDHeader::length = sizeof(fedh_t)
static

◆ theHeader

const fedh_struct* FEDHeader::theHeader
private

Definition at line 57 of file FEDHeader.h.

Referenced by bxID(), check(), lvl1ID(), moreHeaders(), sourceID(), triggerType(), and version().