#include <SiStripFEDBuffer.h>
Public Member Functions | |
virtual bool | channelGood (const uint8_t internalFEDannelNum, const bool doAPVeCheck=true) const |
bool | checkAllChannelStatusBits () const |
bool | checkChannelLengths () const |
bool | checkChannelLengthsMatchBufferLength () const |
bool | checkChannelPacketCodes () const |
bool | checkFEPayloadsPresent () const |
bool | checkFEUnitAPVAddresses () const |
bool | checkFEUnitLengths () const |
bool | checkStatusBits (const uint8_t internalFEDChannelNum) const |
bool | checkStatusBits (const uint8_t internalFEUnitNum, const uint8_t internalChannelNum) const |
std::string | checkSummary () const override |
virtual bool | doChecks (bool doCRC=true) const |
virtual bool | doCorruptBufferChecks () const |
FEDBuffer (const FEDRawData &fedBuffer, const bool allowBadBuffer=false) | |
bool | feGood (const uint8_t internalFEUnitNum) const |
bool | feGoodWithoutAPVEmulatorCheck (const uint8_t internalFEUnitNum) const |
const FEDFEHeader * | feHeader () const |
bool | fePresent (uint8_t internalFEUnitNum) const |
FEDBufferStatusCode | findChannels () |
void | print (std::ostream &os) const override |
void | setLegacyMode (bool legacy) |
~FEDBuffer () override | |
Public Member Functions inherited from sistrip::FEDBufferBase | |
uint8_t | apveAddress () const |
FEDBufferFormat | bufferFormat () const |
size_t | bufferSize () const |
uint16_t | calcCRC () const |
const FEDChannel & | channel (const uint8_t internalFEDChannelNum) const |
const FEDChannel & | channel (const uint8_t internalFEUnitNum, const uint8_t internalChannelNum) const |
virtual bool | channelGood (const uint8_t internalFEDChannelNum) const |
bool | channelGood (const uint8_t internalFEUnitNum, const uint8_t internalChannelNum) const |
bool | checkAPVEAddressValid () const |
bool | checkBufferFormat () const |
bool | checkCRC () const |
bool | checkHeaderType () const |
bool | checkLengthFromTrailer () const |
bool | checkMajorityAddresses () const |
bool | checkNoExtraHeadersOrTrailers () const |
bool | checkNoFEOverflows () const |
bool | checkNoSlinkCRCError () const |
bool | checkNoSLinkTransmissionError () const |
bool | checkNoUnexpectedSourceID () const |
bool | checkReadoutMode () const |
bool | checkSourceIDs () const |
uint16_t | daqBXID () const |
uint16_t | daqCRC () const |
uint32_t | daqEventLengthIn64bitWords () const |
uint32_t | daqEventLengthInBytes () const |
FEDDAQEventType | daqEventType () const |
FEDDAQHeader | daqHeader () const |
uint32_t | daqLvl1ID () const |
uint16_t | daqSourceID () const |
FEDDAQTrailer | daqTrailer () const |
FEDTTSBits | daqTTSState () const |
virtual bool | doChecks () const |
bool | doDAQHeaderAndTrailerChecks () const |
bool | doTrackerSpecialHeaderChecks () const |
void | dump (std::ostream &os) const |
void | dumpOriginalBuffer (std::ostream &os) const |
FEDBufferBase (const FEDRawData &fedBuffer) | |
FEDStatusRegister | fedStatusRegister () const |
bool | feEnabled (const uint8_t internalFEUnitNum) const |
bool | feOverflow (const uint8_t internalFEUnitNum) const |
FEDHeaderType | headerType () const |
FEDLegacyReadoutMode | legacyReadoutMode () const |
bool | majorityAddressErrorForFEUnit (const uint8_t internalFEUnitNum) const |
uint8_t | nFEUnitsEnabled () const |
uint8_t | packetCode (bool legacy=false, const uint8_t internalFEDChannelNum=0) const |
FEDReadoutMode | readoutMode () const |
uint16_t | sourceID () const |
TrackerSpecialHeader | trackerSpecialHeader () const |
virtual | ~FEDBufferBase () |
Private Member Functions | |
uint16_t | calculateFEUnitLength (const uint8_t internalFEUnitNumber) const |
uint8_t | getCorrectPacketCode () const |
uint8_t | nFEUnitsPresent () const |
Private Attributes | |
std::unique_ptr< FEDFEHeader > | feHeader_ |
bool | fePresent_ [FEUNITS_PER_FED] |
bool | legacyUnpacker_ = false |
uint16_t | payloadLength_ |
const uint8_t * | payloadPointer_ |
uint8_t | validChannels_ |
Additional Inherited Members | |
Protected Member Functions inherited from sistrip::FEDBufferBase | |
FEDBufferBase (const FEDRawData &fedBuffer, const bool fillChannelVector) | |
const uint8_t * | getPointerToByteAfterEndOfPayload () const |
const uint8_t * | getPointerToDataAfterTrackerSpecialHeader () const |
Protected Attributes inherited from sistrip::FEDBufferBase | |
std::vector< FEDChannel > | channels_ |
Definition at line 24 of file SiStripFEDBuffer.h.
|
explicit |
constructor from a FEDRawData buffer
The sistrip::preconstructCheckFEDBuffer() method should be used (with the same value of allowBadBuffer) to check the validity of fedBuffer before constructing a sistrip::FEDBuffer. If allowBadBuffer is set to true, the initialization proceeds even if the event format is not recognized. To initialize also the channel information, the FEDBuffer::findChannels() method should be called as well, and its return status checked (unless bad buffers, with an unrecognized event format or channel lengths that do not make sense, should also be included).
Definition at line 13 of file SiStripFEDBuffer.cc.
References sistrip::FEDBufferBase::channels_, sistrip::FEDStatusRegister::feDataMissingFlag(), sistrip::FEDCH_PER_FED, sistrip::FEDBufferBase::fedStatusRegister(), feHeader_, sistrip::FEDFullDebugHeader::fePresent(), fePresent_, sistrip::FEUNITS_PER_FED, sistrip::FEDBufferBase::getPointerToByteAfterEndOfPayload(), sistrip::FEDBufferBase::getPointerToDataAfterTrackerSpecialHeader(), sistrip::HEADER_TYPE_INVALID, sistrip::HEADER_TYPE_NONE, sistrip::FEDBufferBase::headerType(), sistrip::FEDFEHeader::newFEHeader(), payloadLength_, payloadPointer_, and validChannels_.
|
override |
Definition at line 48 of file SiStripFEDBuffer.cc.
|
private |
Definition at line 284 of file SiStripFEDBuffer.cc.
References sistrip::FEDBufferBase::channels_, sistrip::FEDCH_PER_FEUNIT, and sistrip::internalFEDChannelNum().
Referenced by checkFEUnitLengths(), and checkSummary().
|
virtual |
Definition at line 149 of file SiStripFEDBuffer.cc.
References checkStatusBits(), sistrip::FEDCH_PER_FEUNIT, feGood(), feGoodWithoutAPVEmulatorCheck(), sistrip::internalFEDChannelNum(), sistrip::READOUT_MODE_SCOPE, sistrip::FEDBufferBase::readoutMode(), and validChannels_.
Referenced by checkChannelPacketCodes().
bool sistrip::FEDBuffer::checkAllChannelStatusBits | ( | ) | const |
Definition at line 176 of file SiStripFEDBuffer.cc.
References checkStatusBits(), sistrip::FEDCH_PER_FED, sistrip::FEDCH_PER_FEUNIT, and feGood().
Referenced by checkSummary().
bool sistrip::FEDBuffer::checkChannelLengths | ( | ) | const |
Definition at line 191 of file SiStripFEDBuffer.cc.
References sistrip::FEDCH_PER_FED, and validChannels_.
Referenced by checkChannelLengthsMatchBufferLength().
bool sistrip::FEDBuffer::checkChannelLengthsMatchBufferLength | ( | ) | const |
Definition at line 193 of file SiStripFEDBuffer.cc.
References sistrip::FEDBufferBase::channels_, checkChannelLengths(), sistrip::FEDCH_PER_FEUNIT, sistrip::FEDBufferBase::feEnabled(), fePresent(), sistrip::internalFEDChannelNum(), sistrip::FEDChannel::length(), sistrip::FEDChannel::offset(), and payloadLength_.
Referenced by checkSummary(), and doCorruptBufferChecks().
bool sistrip::FEDBuffer::checkChannelPacketCodes | ( | ) | const |
Definition at line 224 of file SiStripFEDBuffer.cc.
References channelGood(), sistrip::FEDBufferBase::channels_, sistrip::FEDCH_PER_FED, sistrip::FEDCH_PER_FEUNIT, feGood(), getCorrectPacketCode(), and sistrip::FEDBufferBase::packetCode().
Referenced by checkSummary(), and doCorruptBufferChecks().
bool sistrip::FEDBuffer::checkFEPayloadsPresent | ( | ) | const |
Definition at line 293 of file SiStripFEDBuffer.cc.
References fePresent(), and sistrip::FEUNITS_PER_FED.
Referenced by checkSummary().
bool sistrip::FEDBuffer::checkFEUnitAPVAddresses | ( | ) | const |
Definition at line 246 of file SiStripFEDBuffer.cc.
References sistrip::FEDBufferBase::apveAddress(), feGood(), feHeader_, sistrip::FEDFullDebugHeader::feUnitMajorityAddress(), and sistrip::FEUNITS_PER_FED.
Referenced by checkSummary().
bool sistrip::FEDBuffer::checkFEUnitLengths | ( | ) | const |
Definition at line 268 of file SiStripFEDBuffer.cc.
References calculateFEUnitLength(), feGood(), feHeader_, sistrip::FEDFullDebugHeader::feUnitLength(), and sistrip::FEUNITS_PER_FED.
Referenced by checkSummary(), and doCorruptBufferChecks().
|
inline |
Definition at line 167 of file SiStripFEDBuffer.h.
References feHeader_, and sistrip::internalFEDChannelNum().
Referenced by channelGood(), checkAllChannelStatusBits(), checkStatusBits(), and checkSummary().
|
inline |
Definition at line 171 of file SiStripFEDBuffer.h.
References checkStatusBits(), and sistrip::internalFEDChannelNum().
|
overridevirtual |
Reimplemented from sistrip::FEDBufferBase.
Definition at line 301 of file SiStripFEDBuffer.cc.
References sistrip::FEDBufferBase::apveAddress(), calculateFEUnitLength(), sistrip::FEDBufferBase::channels_, checkAllChannelStatusBits(), checkChannelLengthsMatchBufferLength(), checkChannelPacketCodes(), checkFEPayloadsPresent(), checkFEUnitAPVAddresses(), checkFEUnitLengths(), checkStatusBits(), sistrip::FEDBufferBase::checkSummary(), sistrip::FEDCH_PER_FED, sistrip::FEDCH_PER_FEUNIT, feGood(), feHeader_, fePresent(), sistrip::FEDFullDebugHeader::feUnitLength(), sistrip::FEDFullDebugHeader::feUnitMajorityAddress(), sistrip::FEUNITS_PER_FED, sistrip::FEDFullDebugHeader::getChannelStatus(), getCorrectPacketCode(), sistrip::HEADER_TYPE_FULL_DEBUG, sistrip::FEDBufferBase::headerType(), sistrip::FEDBufferBase::packetCode(), and edmLumisInFiles::summary.
|
virtual |
Definition at line 156 of file SiStripFEDBuffer.cc.
References sistrip::FEDBufferBase::checkCRC(), sistrip::FEDBufferBase::doChecks(), sistrip::FEDCH_PER_FED, and validChannels_.
|
virtual |
Definition at line 169 of file SiStripFEDBuffer.cc.
References checkChannelLengthsMatchBufferLength(), checkChannelPacketCodes(), sistrip::FEDBufferBase::checkCRC(), and checkFEUnitLengths().
|
inline |
Definition at line 156 of file SiStripFEDBuffer.h.
References sistrip::FEDBufferBase::feOverflow(), fePresent(), and sistrip::FEDBufferBase::majorityAddressErrorForFEUnit().
Referenced by channelGood(), checkAllChannelStatusBits(), checkChannelPacketCodes(), checkFEUnitAPVAddresses(), checkFEUnitLengths(), and checkSummary().
|
inline |
Definition at line 161 of file SiStripFEDBuffer.h.
References sistrip::FEDBufferBase::feOverflow(), and fePresent().
Referenced by channelGood().
|
inline |
Definition at line 154 of file SiStripFEDBuffer.h.
References feHeader_.
Referenced by print(), and sistrip::RawToDigiUnpacker::updateEventSummary().
|
inline |
Definition at line 165 of file SiStripFEDBuffer.h.
References fePresent_.
Referenced by checkChannelLengthsMatchBufferLength(), checkFEPayloadsPresent(), checkSummary(), feGood(), feGoodWithoutAPVEmulatorCheck(), findChannels(), and nFEUnitsPresent().
FEDBufferStatusCode sistrip::FEDBuffer::findChannels | ( | ) |
Read the channel lengths from the payload
This method should be called to after the constructor (and should not be called more than once for the same sistrip::FEDBuffer). In case any check fails, a value different from sistrip::FEDBufferStatusCode::SUCCESS is returned, and detailed information printed to LogDebug("FEDBuffer"), if relevant.
Definition at line 50 of file SiStripFEDBuffer.cc.
References sistrip::CHANNEL_BEGIN_BEYOND_PAYLOAD, sistrip::CHANNEL_END_BEYOND_PAYLOAD, sistrip::CHANNEL_TOO_SHORT, sistrip::FEDBufferBase::channels_, sistrip::FEDCH_PER_FED, sistrip::FEDCH_PER_FEUNIT, sistrip::FEDBufferBase::feEnabled(), fePresent(), mps_fire::i, crabWrapper::key, LogDebug, payloadLength_, payloadPointer_, sistrip::READOUT_MODE_PREMIX_RAW, sistrip::READOUT_MODE_ZERO_SUPPRESSED, sistrip::READOUT_MODE_ZERO_SUPPRESSED_FAKE, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE10, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE10_CMOVERRIDE, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_BOTBOT, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_BOTBOT_CMOVERRIDE, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_CMOVERRIDE, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_TOPBOT, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_TOPBOT_CMOVERRIDE, sistrip::FEDBufferBase::readoutMode(), sistrip::SUCCESS, UNLIKELY, and validChannels_.
|
inlineprivate |
Definition at line 104 of file SiStripFEDBuffer.h.
References legacyUnpacker_, and sistrip::FEDBufferBase::packetCode().
Referenced by checkChannelPacketCodes(), and checkSummary().
|
private |
Definition at line 393 of file SiStripFEDBuffer.cc.
References fePresent(), sistrip::FEUNITS_PER_FED, and mps_fire::result.
Referenced by print().
|
overridevirtual |
Reimplemented from sistrip::FEDBufferBase.
Definition at line 402 of file SiStripFEDBuffer.cc.
References feHeader(), sistrip::HEADER_TYPE_FULL_DEBUG, sistrip::FEDBufferBase::headerType(), nFEUnitsPresent(), and sistrip::FEDBufferBase::print().
|
inline |
|
private |
Definition at line 106 of file SiStripFEDBuffer.h.
Referenced by checkFEUnitAPVAddresses(), checkFEUnitLengths(), checkStatusBits(), checkSummary(), FEDBuffer(), and feHeader().
|
private |
Definition at line 110 of file SiStripFEDBuffer.h.
Referenced by FEDBuffer(), and fePresent().
|
private |
Definition at line 111 of file SiStripFEDBuffer.h.
Referenced by getCorrectPacketCode(), and setLegacyMode().
|
private |
Definition at line 108 of file SiStripFEDBuffer.h.
Referenced by checkChannelLengthsMatchBufferLength(), FEDBuffer(), and findChannels().
|
private |
Definition at line 107 of file SiStripFEDBuffer.h.
Referenced by FEDBuffer(), and findChannels().
|
private |
Definition at line 109 of file SiStripFEDBuffer.h.
Referenced by channelGood(), checkChannelLengths(), doChecks(), FEDBuffer(), and findChannels().