CMS 3D CMS Logo

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

#include <FEDTrailer.h>

Public Member Functions

bool check () const
 Check that the trailer is OK. More...
 
uint32_t conscheck () const
 Return the word containing the consistency checks. More...
 
uint16_t crc () const
 Cyclic Redundancy Code of the event fragment including header and trailer. More...
 
bool crcModified () const
 True if the CRC value has been modified by the S-link sender card. More...
 
uint8_t evtStatus () const
 Event fragment status information. More...
 
 FEDTrailer (const unsigned char *trailer)
 Constructor. More...
 
uint32_t fragmentLength () const
 The length of the event fragment counted in 64-bit words including header and trailer. More...
 
bool moreTrailers () const
 
bool slinkError () const
 True if the FRL has detected a transmission error over the s-link cable. More...
 
uint8_t ttsBits () const
 Current value of the Trigger Throttling System bits. More...
 
bool wrongFedId () const
 True if the FED_ID given by the FED is not the one expected by the FRL. More...
 
virtual ~FEDTrailer ()
 Destructor. More...
 

Static Public Member Functions

static void set (unsigned char *trailer, uint32_t lenght, uint16_t crc, uint8_t evt_stat, uint8_t tts, bool moreTrailers=false)
 Set all fields in the trailer. More...
 

Static Public Attributes

static const uint32_t length = sizeof(fedt_t)
 

Private Attributes

const fedt_structtheTrailer
 

Detailed Description

Helper class to interpret/create FED trailer words.

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

Definition at line 14 of file FEDTrailer.h.

Constructor & Destructor Documentation

◆ FEDTrailer()

FEDTrailer::FEDTrailer ( const unsigned char *  trailer)

Constructor.

Definition at line 9 of file FEDTrailer.cc.

9 : theTrailer(reinterpret_cast<const fedt_t*>(trailer)) {}

◆ ~FEDTrailer()

FEDTrailer::~FEDTrailer ( )
virtual

Destructor.

Definition at line 11 of file FEDTrailer.cc.

11 {}

Member Function Documentation

◆ check()

bool FEDTrailer::check ( ) const

◆ conscheck()

uint32_t FEDTrailer::conscheck ( ) const

Return the word containing the consistency checks.

Definition at line 29 of file FEDTrailer.cc.

29 { return theTrailer->conscheck; }

References fedt_struct::conscheck, and theTrailer.

◆ crc()

uint16_t FEDTrailer::crc ( ) const

◆ crcModified()

bool FEDTrailer::crcModified ( ) const

True if the CRC value has been modified by the S-link sender card.

Definition at line 23 of file FEDTrailer.cc.

References fedt_struct::conscheck, FED_CRC_MODIFIED_EXTRACT, and theTrailer.

Referenced by DTDDUData::checkCRCBit().

◆ evtStatus()

uint8_t FEDTrailer::evtStatus ( ) const

◆ fragmentLength()

uint32_t FEDTrailer::fragmentLength ( ) const

◆ moreTrailers()

bool FEDTrailer::moreTrailers ( ) const

◆ set()

void FEDTrailer::set ( unsigned char *  trailer,
uint32_t  lenght,
uint16_t  crc,
uint8_t  evt_stat,
uint8_t  tts,
bool  moreTrailers = false 
)
static

Set all fields in the trailer.

Definition at line 31 of file FEDTrailer.cc.

32  {
33  // FIXME: should check that input ranges are OK!!!
34  fedt_t* t = reinterpret_cast<fedt_t*>(trailer);
35 
36  t->eventsize = (FED_SLINK_END_MARKER << FED_TCTRLID_SHIFT) | ((lenght << FED_EVSZ_SHIFT) & FED_EVSZ_MASK);
37 
38  t->conscheck = ((crc << FED_CRCS_SHIFT) & FED_CRCS_MASK) | ((evtStatus << FED_STAT_SHIFT) & FED_STAT_MASK) |
40 
41  if (moreTrailers)
43 }

References crc(), evtStatus(), FED_CRCS_MASK, FED_CRCS_SHIFT, FED_EVSZ_MASK, FED_EVSZ_SHIFT, FED_MORE_TRAILERS_SHIFT, FED_MORE_TRAILERS_WIDTH, FED_SLINK_END_MARKER, FED_STAT_MASK, FED_STAT_SHIFT, FED_TCTRLID_SHIFT, FED_TTSI_MASK, FED_TTSI_SHIFT, moreTrailers(), submitPVValidationJobs::t, and ttsBits().

Referenced by ESDataFormatterV1_1::DigiToRaw(), ESDataFormatterV4::DigiToRaw(), DaqFakeReader::fillFEDs(), DaqFakeReader::fillTCDSFED(), l1t::AMCDumpToRaw::formatRaw(), l1t::MP7BufferDumpToRaw::formatRaw(), CTPPSTotemDataFormatter::formatRawData(), PixelDataFormatter::formatRawData(), CTPPSPixelDataFormatter::formatRawData(), CastorPacker::pack(), CastorCtdcPacker::pack(), HcalPacker::pack(), L1GTEvmDigiToRaw::packTrailer(), L1GTDigiToRaw::packTrailer(), DTDigiToRawModule::produce(), RPCTwinMuxDigiToRaw::produce(), CSCTFPacker::produce(), GctDigiToRaw::produce(), HcalDigiToRawuHTR::produce(), omtf::OmtfPacker::produce(), l1t::L1TDigiToRaw::produce(), and RPCPackingModule::rawData().

◆ slinkError()

bool FEDTrailer::slinkError ( ) const

True if the FRL has detected a transmission error over the s-link cable.

Definition at line 25 of file FEDTrailer.cc.

25 { return (FED_SLINK_ERROR_EXTRACT(theTrailer->conscheck) != 0); }

References fedt_struct::conscheck, FED_SLINK_ERROR_EXTRACT, and theTrailer.

◆ ttsBits()

uint8_t FEDTrailer::ttsBits ( ) const

◆ wrongFedId()

bool FEDTrailer::wrongFedId ( ) const

True if the FED_ID given by the FED is not the one expected by the FRL.

Definition at line 27 of file FEDTrailer.cc.

27 { return (FED_WRONG_FEDID_EXTRACT(theTrailer->conscheck) != 0); }

References fedt_struct::conscheck, FED_WRONG_FEDID_EXTRACT, and theTrailer.

Member Data Documentation

◆ length

const uint32_t FEDTrailer::length = sizeof(fedt_t)
static

◆ theTrailer

const fedt_struct* FEDTrailer::theTrailer
private
FED_CRC_MODIFIED_EXTRACT
#define FED_CRC_MODIFIED_EXTRACT(a)
Definition: fed_trailer.h:59
FED_CRCS_MASK
#define FED_CRCS_MASK
Definition: fed_trailer.h:38
FED_MORE_TRAILERS_WIDTH
#define FED_MORE_TRAILERS_WIDTH
Definition: fed_trailer.h:51
FED_EVSZ_SHIFT
#define FED_EVSZ_SHIFT
Definition: fed_trailer.h:32
FEDTrailer::crc
uint16_t crc() const
Cyclic Redundancy Code of the event fragment including header and trailer.
Definition: FEDTrailer.cc:15
FED_MORE_TRAILERS_SHIFT
#define FED_MORE_TRAILERS_SHIFT
Definition: fed_trailer.h:52
FEDTrailer::evtStatus
uint8_t evtStatus() const
Event fragment status information.
Definition: FEDTrailer.cc:17
fedt_struct::conscheck
uint32_t conscheck
Definition: fed_trailer.h:23
fedt_struct
Definition: fed_trailer.h:19
FED_STAT_MASK
#define FED_STAT_MASK
Definition: fed_trailer.h:43
FED_SLINK_END_MARKER
#define FED_SLINK_END_MARKER
Definition: fed_trailer.h:24
FED_MORE_TRAILERS_EXTRACT
#define FED_MORE_TRAILERS_EXTRACT(a)
Definition: fed_trailer.h:54
FED_EVSZ_MASK
#define FED_EVSZ_MASK
Definition: fed_trailer.h:33
fedt_struct::eventsize
uint32_t eventsize
Definition: fed_trailer.h:24
FED_TCTRLID_EXTRACT
#define FED_TCTRLID_EXTRACT(a)
Definition: fed_trailer.h:29
FEDTrailer::moreTrailers
bool moreTrailers() const
Definition: FEDTrailer.cc:21
FED_TCTRLID_SHIFT
#define FED_TCTRLID_SHIFT
Definition: fed_trailer.h:27
FED_EVSZ_EXTRACT
#define FED_EVSZ_EXTRACT(a)
Definition: fed_trailer.h:34
FED_TTSI_MASK
#define FED_TTSI_MASK
Definition: fed_trailer.h:48
FED_CRCS_EXTRACT
#define FED_CRCS_EXTRACT(a)
Definition: fed_trailer.h:39
FED_TTSI_SHIFT
#define FED_TTSI_SHIFT
Definition: fed_trailer.h:47
FEDTrailer::theTrailer
const fedt_struct * theTrailer
Definition: FEDTrailer.h:60
FED_SLINK_ERROR_EXTRACT
#define FED_SLINK_ERROR_EXTRACT(a)
Definition: fed_trailer.h:64
FEDTrailer::ttsBits
uint8_t ttsBits() const
Current value of the Trigger Throttling System bits.
Definition: FEDTrailer.cc:19
FED_STAT_EXTRACT
#define FED_STAT_EXTRACT(a)
Definition: fed_trailer.h:44
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
FED_TTSI_EXTRACT
#define FED_TTSI_EXTRACT(a)
Definition: fed_trailer.h:49
FED_WRONG_FEDID_EXTRACT
#define FED_WRONG_FEDID_EXTRACT(a)
Definition: fed_trailer.h:69
FED_CRCS_SHIFT
#define FED_CRCS_SHIFT
Definition: fed_trailer.h:37
FED_STAT_SHIFT
#define FED_STAT_SHIFT
Definition: fed_trailer.h:42