1 #ifndef EventFilter_SiStripRawToDigi_SiStripFEDBufferComponents_H 2 #define EventFilter_SiStripRawToDigi_SiStripFEDBufferComponents_H 143 uint8_t
internalFEDChannelNum(
const uint8_t internalFEUnitNum,
const uint8_t internalFEUnitChannelNum);
144 void printHex(
const void* pointer,
const size_t length, std::ostream& os);
184 uint8_t boeNibble()
const;
185 uint8_t eventTypeNibble()
const;
187 uint32_t l1ID()
const;
188 uint16_t bxID()
const;
189 uint16_t sourceID()
const;
193 bool lastHeader()
const;
194 void print(std::ostream& os)
const;
196 const uint8_t*
data()
const;
203 const uint16_t sourceID,
216 uint8_t eoeNibble()
const;
217 uint32_t eventLengthIn64BitWords()
const;
218 uint32_t eventLengthInBytes()
const;
219 uint16_t crc()
const;
226 uint8_t eventStatusNibble()
const;
227 uint8_t ttsNibble()
const;
235 void print(std::ostream& os)
const;
237 const uint8_t*
data()
const;
238 FEDDAQTrailer& setEventLengthIn64BitWords(
const uint32_t eventLengthIn64BitWords);
240 FEDDAQTrailer& setSLinkTransmissionErrorBit(
const bool bitSet);
243 FEDDAQTrailer& setEventStatusNibble(
const uint8_t eventStatusNibble);
246 const uint16_t crc = 0,
248 const bool slinkTransmissionError =
false,
249 const bool badFEDID =
false,
250 const bool slinkCRCError =
false,
251 const uint8_t eventStatusNibble = 0);
260 bool slinkFullFlag()
const;
261 bool trackerHeaderMonitorDataReadyFlag()
const;
262 bool qdrMemoryFullFlag()
const;
263 bool qdrMemoryPartialFullFlag()
const;
264 bool qdrMemoryEmptyFlag()
const;
265 bool l1aBxFIFOFullFlag()
const;
266 bool l1aBxFIFOPartialFullFlag()
const;
267 bool l1aBxFIFOEmptyFlag()
const;
270 bool feDataMissingFlag(
const uint8_t internalFEUnitNum)
const;
271 void print(std::ostream& os)
const;
272 void printFlags(std::ostream& os)
const;
273 operator uint16_t()
const;
281 const bool trackerHeaderMonitorDataReadyFlagSet =
false,
282 const bool slinkFullFlagSet =
false);
286 void setBit(
const uint8_t num,
const bool bitSet);
287 void setQDRMemoryFullFlag(
const bool bitSet);
288 void setQDRMemoryPartialFullFlag(
const bool bitSet);
289 void setQDRMemoryEmptyFlag(
const bool bitSet);
290 void setL1ABXFIFOFullFlag(
const bool bitSet);
291 void setL1ABXFIFOPartialFullFlag(
const bool bitSet);
292 void setL1ABXFIFOEmptyFlag(
const bool bitSet);
301 uint8_t bufferFormatByte()
const;
303 uint8_t headerTypeNibble()
const;
305 uint8_t trackerEventTypeNibble()
const;
308 uint8_t apveAddress()
const;
309 uint8_t apvAddressErrorRegister()
const;
310 bool majorityAddressErrorForFEUnit(
const uint8_t internalFEUnitNum)
const;
311 uint8_t feEnableRegister()
const;
312 bool feEnabled(
const uint8_t internalFEUnitNum)
const;
313 uint8_t feOverflowRegister()
const;
314 bool feOverflow(
const uint8_t internalFEUnitNum)
const;
315 uint16_t fedStatusRegisterWord()
const;
317 void print(std::ostream& os)
const;
320 const uint8_t*
data()
const;
321 bool wasSwapped()
const;
331 TrackerSpecialHeader& setFEOverflowForFEUnit(
const uint8_t internalFEUnitNum,
const bool overflow);
336 const uint8_t address = 0x00,
337 const uint8_t addressErrorRegister = 0x00,
338 const uint8_t feEnableRegister = 0xFF,
339 const uint8_t feOverflowRegister = 0x00,
344 void setHeaderTypeNibble(
const uint8_t
value);
345 void setReadoutModeBits(
const uint8_t value);
356 uint8_t specialHeader_[8];
364 bool internalFreezeFlag()
const;
365 bool slinkDownFlag()
const;
366 bool slinkFullFlag()
const;
367 bool backpressureFlag()
const;
368 bool ttcReadyFlag()
const;
369 bool trackerHeaderMonitorDataReadyFlag()
const;
377 void print(std::ostream& os)
const;
378 void printFlags(std::ostream& os)
const;
379 operator uint32_t()
const;
401 const bool backpressure =
false,
402 const bool slinkFull =
false,
403 const bool slinkDown =
false,
404 const bool internalFreeze =
false,
405 const bool trackerHeaderMonitorDataReady =
false,
406 const bool ttcReady =
true);
410 void setBit(
const uint8_t num,
const bool bitSet);
412 FEDBufferState getBufferState(
const uint8_t bufferPosition)
const;
414 void setBufferSate(
const uint8_t bufferPosition,
const FEDBufferState state);
421 BUFFER_POSITION_QDR_MEMORY = 0,
422 BUFFER_POSITION_FRAME_ADDRESS_FIFO = 1,
423 BUFFER_POSITION_TOTAL_LENGTH_FIFO = 2,
424 BUFFER_POSITION_TRACKER_HEADER_FIFO = 3,
425 BUFFER_POSITION_L1ABX_FIFO = 4,
426 BUFFER_POSITION_FE_EVENT_LENGTH_FIFO = 5,
427 BUFFER_POSITION_FE_FPGA_BUFFER = 6
429 enum stateOffsets { STATE_OFFSET_FULL = 8, STATE_OFFSET_PARTIAL_FULL = 16, STATE_OFFSET_EMPTY = 24 };
436 static std::unique_ptr<FEDFEHeader> newFEHeader(
const FEDHeaderType headerType,
const uint8_t* headerBuffer);
438 static std::unique_ptr<FEDFEHeader> newFEHeader(
const FEDHeaderType headerType);
440 static std::unique_ptr<FEDFEHeader> newFEFakeHeader(
const FEDHeaderType headerType);
443 virtual size_t lengthInBytes()
const = 0;
446 bool checkChannelStatusBits(
const uint8_t internalFEUnitNum,
const uint8_t internalFEUnitChannelNum)
const;
449 bool checkStatusBits(
const uint8_t internalFEUnitNum,
450 const uint8_t internalFEUnitChannelNum,
451 const uint8_t apvNum)
const;
452 virtual bool checkStatusBits(
const uint8_t internalFEDChannelNum,
const uint8_t apvNum)
const = 0;
453 virtual void print(std::ostream& os)
const = 0;
456 virtual const uint8_t*
data()
const = 0;
458 virtual void setFEUnitMajorityAddress(
const uint8_t internalFEUnitNum,
const uint8_t address) = 0;
460 virtual void setDAQRegister(
const uint32_t daqRegister) = 0;
461 virtual void setDAQRegister2(
const uint32_t daqRegister2) = 0;
462 virtual void set32BitReservedRegister(
const uint8_t internalFEUnitNum,
const uint32_t reservedRegister) = 0;
463 virtual void setFEUnitLength(
const uint8_t internalFEUnitNum,
const uint16_t length) = 0;
464 void setChannelStatus(
const uint8_t internalFEUnitNum,
465 const uint8_t internalFEUnitChannelNum,
473 size_t lengthInBytes()
const override;
475 bool checkStatusBits(
const uint8_t internalFEDChannelNum,
const uint8_t apvNum)
const override;
476 void print(std::ostream& os)
const override;
479 const uint8_t*
data()
const override;
480 FEDAPVErrorHeader& setAPVStatusBit(
const uint8_t internalFEDChannelNum,
const uint8_t apvNum,
const bool apvGood);
482 const uint8_t internalFEUnitChannelNum,
483 const uint8_t apvNum,
489 void setFEUnitMajorityAddress(
const uint8_t internalFEUnitNum,
const uint8_t address)
override;
491 void setDAQRegister(
const uint32_t daqRegister)
override;
492 void setDAQRegister2(
const uint32_t daqRegister2)
override;
493 void set32BitReservedRegister(
const uint8_t internalFEUnitNum,
const uint32_t reservedRegister)
override;
494 void setFEUnitLength(
const uint8_t internalFEUnitNum,
const uint16_t length)
override;
497 static const size_t APV_ERROR_HEADER_SIZE_IN_64BIT_WORDS = 3;
498 static const size_t APV_ERROR_HEADER_SIZE_IN_BYTES = APV_ERROR_HEADER_SIZE_IN_64BIT_WORDS * 8;
499 uint8_t header_[APV_ERROR_HEADER_SIZE_IN_BYTES];
506 size_t lengthInBytes()
const override;
508 bool checkStatusBits(
const uint8_t internalFEDChannelNum,
const uint8_t apvNum)
const override;
509 void print(std::ostream& os)
const override;
512 uint8_t feUnitMajorityAddress(
const uint8_t internalFEUnitNum)
const;
514 uint32_t daqRegister()
const;
515 uint32_t daqRegister2()
const;
516 uint16_t feUnitLength(
const uint8_t internalFEUnitNum)
const;
517 bool fePresent(
const uint8_t internalFEUnitNum)
const;
519 FEDChannelStatus getChannelStatus(
const uint8_t internalFEDChannelNum)
const;
520 FEDChannelStatus getChannelStatus(
const uint8_t internalFEUnitNum,
const uint8_t internalFEUnitChannelNum)
const;
525 bool unlocked(
const uint8_t internalFEDChannelNum)
const;
526 bool unlocked(
const uint8_t internalFEUnitNum,
const uint8_t internalFEUnitChannelNum)
const;
528 bool outOfSync(
const uint8_t internalFEDChannelNum)
const;
529 bool outOfSync(
const uint8_t internalFEUnitNum,
const uint8_t internalFEUnitChannelNum)
const;
531 bool apvError(
const uint8_t internalFEDChannelNum,
const uint8_t apvNum)
const;
532 bool apvError(
const uint8_t internalFEUnitNum,
const uint8_t internalFEUnitChannelNum,
const uint8_t apvNum)
const;
534 bool apvAddressError(
const uint8_t internalFEDChannelNum,
const uint8_t apvNum)
const;
535 bool apvAddressError(
const uint8_t internalFEUnitNum,
536 const uint8_t internalFEUnitChannelNum,
537 const uint8_t apvNum)
const;
540 const uint8_t*
data()
const override;
542 void setFEUnitMajorityAddress(
const uint8_t internalFEUnitNum,
const uint8_t address)
override;
544 void setDAQRegister(
const uint32_t daqRegister)
override;
545 void setDAQRegister2(
const uint32_t daqRegister2)
override;
546 void set32BitReservedRegister(
const uint8_t internalFEUnitNum,
const uint32_t reservedRegister)
override;
547 void setFEUnitLength(
const uint8_t internalFEUnitNum,
const uint16_t length)
override;
548 static uint32_t get32BitWordFrom(
const uint8_t* startOfWord);
549 const uint8_t* feWord(
const uint8_t internalFEUnitNum)
const;
550 uint8_t* feWord(
const uint8_t internalFEUnitNum);
552 const std::vector<uint8_t>& feMajorityAddresses = std::vector<uint8_t>(
FEUNITS_PER_FED, 0),
553 const std::vector<FEDChannelStatus>& channelStatus =
556 const uint32_t daqRegister = 0,
557 const uint32_t daqRegister2 = 0);
560 bool getBit(
const uint8_t internalFEDChannelNum,
const uint8_t bit)
const;
561 static void set32BitWordAt(uint8_t* startOfWord,
const uint32_t
value);
562 void setBit(
const uint8_t internalFEDChannelNum,
const uint8_t bit,
const bool value);
567 bool unlockedFromBit(
const uint8_t internalFEDChannelNum)
const;
568 bool outOfSyncFromBit(
const uint8_t internalFEDChannelNum)
const;
569 bool apvErrorFromBit(
const uint8_t internalFEDChannelNum,
const uint8_t apvNum)
const;
570 bool apvAddressErrorFromBit(
const uint8_t internalFEDChannelNum,
const uint8_t apvNum)
const;
573 void setUnlocked(
const uint8_t internalFEDChannelNum,
const bool value);
574 void setOutOfSync(
const uint8_t internalFEDChannelNum,
const bool value);
575 void setAPVAddressError(
const uint8_t internalFEDChannelNum,
const uint8_t apvNum,
const bool value);
576 void setAPVError(
const uint8_t internalFEDChannelNum,
const uint8_t apvNum,
const bool value);
578 static const size_t FULL_DEBUG_HEADER_SIZE_IN_BYTES = FULL_DEBUG_HEADER_SIZE_IN_64BIT_WORDS * 8;
579 uint8_t header_[FULL_DEBUG_HEADER_SIZE_IN_BYTES];
587 FEDChannel(
const uint8_t*
const data,
const size_t offset);
588 uint16_t length()
const;
589 const uint8_t*
data()
const;
591 uint16_t cmMedian(
const uint8_t apvIndex)
const;
593 uint8_t packetCode()
const;
605 FEDBufferBase(
const uint8_t* fedBuffer,
const size_t fedBufferSize,
const bool allowUnrecognizedFormat =
false);
608 void dump(std::ostream& os)
const;
610 void dumpOriginalBuffer(std::ostream& os)
const;
611 virtual void print(std::ostream& os)
const;
618 size_t bufferSize()
const;
622 uint32_t daqLvl1ID()
const;
623 uint16_t daqBXID()
const;
624 uint16_t daqSourceID()
const;
625 uint16_t sourceID()
const;
627 uint32_t daqEventLengthIn64bitWords()
const;
628 uint32_t daqEventLengthInBytes()
const;
629 uint16_t daqCRC()
const;
637 uint8_t apveAddress()
const;
638 bool majorityAddressErrorForFEUnit(
const uint8_t internalFEUnitNum)
const;
639 bool feEnabled(
const uint8_t internalFEUnitNum)
const;
640 uint8_t nFEUnitsEnabled()
const;
641 bool feOverflow(
const uint8_t internalFEUnitNum)
const;
646 bool channelGood(
const uint8_t internalFEUnitNum,
const uint8_t internalChannelNum)
const;
648 const FEDChannel& channel(
const uint8_t internalFEDChannelNum)
const;
649 const FEDChannel& channel(
const uint8_t internalFEUnitNum,
const uint8_t internalChannelNum)
const;
653 bool doTrackerSpecialHeaderChecks()
const;
655 bool doDAQHeaderAndTrailerChecks()
const;
657 virtual bool doChecks()
const;
662 bool checkCRC()
const;
663 bool checkMajorityAddresses()
const;
665 bool checkBufferFormat()
const;
666 bool checkHeaderType()
const;
667 bool checkReadoutMode()
const;
668 bool checkAPVEAddressValid()
const;
669 bool checkNoFEOverflows()
const;
671 bool checkNoSlinkCRCError()
const;
672 bool checkNoSLinkTransmissionError()
const;
673 bool checkSourceIDs()
const;
674 bool checkNoUnexpectedSourceID()
const;
675 bool checkNoExtraHeadersOrTrailers()
const;
676 bool checkLengthFromTrailer()
const;
679 const uint8_t* getPointerToDataAfterTrackerSpecialHeader()
const;
680 const uint8_t* getPointerToByteAfterEndOfPayload()
const;
682 const size_t fedBufferSize,
683 const bool allowUnrecognizedFormat,
684 const bool fillChannelVector);
688 void init(
const uint8_t* fedBuffer,
const size_t fedBufferSize,
const bool allowUnrecognizedFormat);
741 (physicalOrderStripIndexInChannel / 128));
745 return ((32 * (readout_order % 4)) + (8 * static_cast<uint16_t>(static_cast<float>(readout_order) / 4.0)) -
746 (31 * static_cast<uint16_t>(static_cast<float>(readout_order) / 16.0)));
750 return (4 * ((static_cast<uint16_t>((static_cast<float>(physical_order) / 8.0))) % 4) +
751 static_cast<uint16_t>(static_cast<float>(physical_order) / 32.0) + 16 * (physical_order % 8));
787 return statusRegister;
859 return getBit(8 + internalFEUnitNum);
888 const bool trackerHeaderMonitorDataReadyFlagSet,
889 const bool slinkFullFlagSet)
900 :
data_(backendStatusRegister) {}
1016 const uint8_t* headerBuffer) {
1017 switch (headerType) {
1023 return std::unique_ptr<FEDFEHeader>();
1028 switch (headerType) {
1034 return std::unique_ptr<FEDFEHeader>();
1039 switch (headerType) {
1045 return std::unique_ptr<FEDFEHeader>();
1050 const uint8_t internalFEUnitChannelNum)
const {
1055 const uint8_t internalFEUnitChannelNum,
1056 const uint8_t apvNum)
const {
1061 const uint8_t internalFEUnitChannelNum,
1067 memcpy(header_, headerBuffer, APV_ERROR_HEADER_SIZE_IN_BYTES);
1071 const uint8_t internalFEUnitChannelNum,
1072 const uint8_t apvNum,
1073 const bool apvGood) {
1074 return setAPVStatusBit(
internalFEDChannelNum(internalFEUnitNum, internalFEUnitChannelNum), apvNum, apvGood);
1078 memcpy(header_, headerBuffer, FULL_DEBUG_HEADER_SIZE_IN_BYTES);
1082 return feWord(internalFEUnitNum)[9];
1094 return ((feWord(internalFEUnitNum)[15] << 8) | (feWord(internalFEUnitNum)[14]));
1098 return (feUnitLength(internalFEUnitNum) != 0);
1102 return unlockedFromBit(internalFEDChannelNum);
1106 const uint8_t internalFEUnitChannelNum)
const {
1111 return (!unlocked(internalFEDChannelNum) && outOfSyncFromBit(internalFEDChannelNum));
1115 const uint8_t internalFEUnitChannelNum)
const {
1120 return (!unlockedFromBit(internalFEDChannelNum) && !outOfSyncFromBit(internalFEDChannelNum) &&
1121 apvErrorFromBit(internalFEDChannelNum, apvNum));
1125 const uint8_t internalFEUnitChannelNum,
1126 const uint8_t apvNum)
const {
1131 return (!unlockedFromBit(internalFEDChannelNum) && !outOfSyncFromBit(internalFEDChannelNum) &&
1132 apvAddressErrorFromBit(internalFEDChannelNum, apvNum));
1136 const uint8_t internalFEUnitChannelNum,
1137 const uint8_t apvNum)
const {
1142 const uint8_t internalFEUnitChannelNum)
const {
1147 return !
getBit(internalFEDChannelNum, 5);
1151 return !
getBit(internalFEDChannelNum, 4);
1161 return !
getBit(internalFEDChannelNum, 0 + 2 * (1 - apvNum));
1165 const uint8_t apvNum)
const {
1166 return !
getBit(internalFEDChannelNum, 1 + 2 * apvNum);
1172 return (pFEWord[bitInFeWord / 8] & (0
x1 << (bitInFeWord % 8)));
1176 return (startOfWord[0] | (startOfWord[1] << 8) | (startOfWord[2] << 16) | (startOfWord[3] << 24));
1180 memcpy(startOfWord, &value, 4);
1184 return header_ + internalFEUnitNum * 2 * 8;
1189 return const_cast<uint8_t*
>(
static_cast<const FEDFullDebugHeader*
>(
this)->feWord(internalFEUnitNum));
1193 setBit(internalFEDChannelNum, 5, !value);
1197 setBit(internalFEDChannelNum, 4, !value);
1201 const uint8_t apvNum,
1203 setBit(internalFEDChannelNum, 1 + 2 * apvNum, !value);
1207 const uint8_t apvNum,
1215 setBit(internalFEDChannelNum, 0 + 2 * (1 - apvNum), !value);
1226 inline uint32_t
FEDDAQHeader::l1ID()
const {
return (header_[4] | (header_[5] << 8) | (header_[6] << 16)); }
1249 return (trailer_[4] | (trailer_[5] << 8) | (trailer_[6] << 16));
1341 return channel(internalFEDChannelNum).packetCode();
1345 return channel(internalFEDChannelNum).packetCode();
1366 return (specialHeader_.majorityAddressErrorForFEUnit(internalFEUnitNum) && (specialHeader_.apveAddress() != 0x00));
1370 return specialHeader_.feEnabled(internalFEUnitNum);
1374 return specialHeader_.feOverflow(internalFEUnitNum);
1388 const uint8_t internalChannelNum)
const {
1393 return (checkBufferFormat() && checkHeaderType() && checkReadoutMode() &&
1395 checkNoFEOverflows());
1399 return (checkNoSLinkTransmissionError() && checkSourceIDs() && checkNoUnexpectedSourceID() &&
1400 checkNoExtraHeadersOrTrailers() && checkLengthFromTrailer());
1422 return ((daqHeader_.boeNibble() == 0x5) && (daqTrailer_.eoeNibble() == 0xA));
1430 return orderedBuffer_ + bufferSize_ - 8;
1452 #endif //ndef EventFilter_SiStripRawToDigi_FEDBufferComponents_H
static uint8_t physicalOrderForStripInChannel(const uint8_t readoutOrderStripIndexInChannel)
bool checkNoUnexpectedSourceID() const
FEDBackendStatusRegister & setFEFPGABufferState(const FEDBufferState state)
FEDBackendStatusRegister & setQDRMemoryState(const FEDBufferState state)
FEDBackendStatusRegister & setL1ABXFIFOState(const FEDBufferState state)
bool checkNoExtraHeadersOrTrailers() const
static const uint8_t PACKET_CODE_ZERO_SUPPRESSED8_BOTBOT
bool feDataMissingFlag(const uint8_t internalFEUnitNum) const
bool qdrMemoryPartialFullFlag() const
void setBit(const uint8_t num, const bool bitSet)
bool ttcReadyFlag() const
bool checkReadoutMode() const
bool getBit(const uint8_t num) const
void setQDRMemoryEmptyFlag(const bool bitSet)
uint32_t daqEventLengthIn64bitWords() const
virtual std::string checkSummary() const
uint8_t apveAddress() const
FEDStatusRegister & setTrackerHeaderMonitorDataReadyFlag(const bool bitSet)
FEDBackendStatusRegister & setFrameAddressFIFOState(const FEDBufferState state)
uint32_t daqEventLengthInBytes() const
const uint8_t * getPointerToByteAfterEndOfPayload() const
FEDDAQTrailer daqTrailer() const
static const uint8_t PACKET_CODE_SCOPE
FEDBackendStatusRegister & setTrackerHeaderFIFOState(const FEDBufferState state)
bool slinkDownFlag() const
bool l1aBxFIFOPartialFullFlag() const
void print(std::ostream &os) const
static const uint8_t PACKET_CODE_PROC_RAW10
bool checkHeaderType() const
bool doDAQHeaderAndTrailerChecks() const
uint8_t eoeNibble() const
bool trackerHeaderMonitorDataReadyFlag() const
FEDReadoutMode readoutMode() const
bool getBit(const uint8_t num) const
FEDStatusRegister(const uint16_t fedStatusRegister)
FEDStatusRegister & setSLinkFullFlag(const bool bitSet)
uint8_t internalFEDChannelNum(const uint8_t internalFEUnitNum, const uint8_t internalFEUnitChannelNum)
void print(std::ostream &os) const
bool checkNoFEOverflows() const
const uint8_t * getPointerToDataAfterTrackerSpecialHeader() const
FEDHeaderType fedHeaderTypeFromString(const std::string &headerTypeString)
uint32_t eventLengthIn64BitWords() const
uint16_t calculateFEDBufferCRC(const uint8_t *buffer, const size_t lengthInBytes)
bool backpressureFlag() const
FEDChannel(const uint8_t *const data, const size_t offset, const uint16_t length)
uint8_t packetCodeFromString(const std::string &packetCodeString, FEDReadoutMode mode)
S & print(S &os, JobReport::InputFile const &f)
std::ostream & operator<<(std::ostream &os, const FEDBufferFormat &value)
bool slinkCRCError() const
FEDBufferFormat fedBufferFormatFromString(const std::string &bufferFormatString)
void setBit(const uint8_t num, const bool bitSet)
FEDDAQEventType daqEventType() const
const uint8_t * orderedBuffer_
void dumpOriginalBuffer(std::ostream &os) const
FEDTTSBits daqTTSState() const
bool checkNoSlinkCRCError() const
bool checkNoSLinkTransmissionError() const
FEDReadoutMode fedReadoutModeFromString(const std::string &readoutModeString)
static const uint8_t PACKET_CODE_ZERO_SUPPRESSED8_TOPBOT
FEDBufferState qdrMemoryState() const
static uint8_t readoutOrderForStripInChannel(const uint8_t physicalOrderStripIndexInChannel)
FEDBufferState frameAddressFIFOState() const
static const uint8_t PACKET_CODE_ZERO_SUPPRESSED10
FEDBackendStatusRegister(const uint32_t backendStatusRegister)
FEDDAQTrailer daqTrailer_
static const uint8_t PACKET_CODE_VIRGIN_RAW10
bool slinkFullFlag() const
const uint8_t * data() const
static const uint8_t PACKET_CODE_ZERO_SUPPRESSED
uint8_t ttsNibble() const
FEDBackendStatusRegister & setTotalLengthFIFOState(const FEDBufferState state)
bool qdrMemoryEmptyFlag() const
bool majorityAddressErrorForFEUnit(const uint8_t internalFEUnitNum) const
FEDBackendStatusRegister & setTTCReadyFlag(const bool bitSet)
FEDStatusRegister & setL1ABXFIFOBufferState(const FEDBufferState state)
static const uint16_t FEUNITS_PER_FED
void print(std::ostream &os) const
FEDLegacyReadoutMode legacyReadoutMode() const
void setQDRMemoryFullFlag(const bool bitSet)
bool feEnabled(const uint8_t internalFEUnitNum) const
FEDBufferState trackerHeaderFIFOState() const
void dump(std::ostream &os) const
void setL1ABXFIFOFullFlag(const bool bitSet)
static const uint8_t BUFFER_FORMAT_CODE_NEW
bool qdrMemoryFullFlag() const
bool internalFreezeFlag() const
FEDHeaderType headerType() const
const uint8_t * originalBuffer_
bool checkAPVEAddressValid() const
static const uint8_t APV_MAX_ADDRESS
uint8_t packetCode(bool legacy=false, const uint8_t internalFEDChannelNum=0) const
void setL1ABXFIFOPartialFullFlag(const bool bitSet)
bool slinkTransmissionError() const
static const uint8_t INVALID
const FEDChannel & channel(const uint8_t internalFEDChannelNum) const
static const uint8_t PACKET_CODE_VIRGIN_RAW8_TOPBOT
FEDDAQEventType fedDAQEventTypeFromString(const std::string &daqEventTypeString)
std::vector< FEDChannel > channels_
void setBit(int &_bitArray, unsigned _iBit)
FEDBufferState getBufferState(const uint8_t bufferPosition) const
bool l1aBxFIFOFullFlag() const
bool l1aBxFIFOEmptyFlag() const
static const uint8_t PACKET_CODE_PROC_RAW
static const uint16_t APVS_PER_FED
static const uint8_t PACKET_CODE_VIRGIN_RAW8_BOTBOT
void printHex(const void *pointer, const size_t length, std::ostream &os)
bool checkBufferFormat() const
static uint8_t physicalOrderForStripInAPV(const uint8_t readoutOrderStripIndexInAPV)
static const uint16_t FEDCH_PER_FEUNIT
Constants and enumerated types for FED/FEC systems.
bool trackerHeaderMonitorDataReadyFlag() const
FEDBackendStatusRegister & setTrackerHeaderMonitorDataReadyFlag(const bool bitSet)
const uint8_t * data() const
TrackerSpecialHeader trackerSpecialHeader() const
size_t bufferSize() const
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
FEDBackendStatusRegister & setSLinkFullFlag(const bool bitSet)
FEDBufferState feFPGABufferState() const
uint8_t packetCode() const
uint32_t daqLvl1ID() const
void setBufferSate(const uint8_t bufferPosition, const FEDBufferState state)
FEDBufferState l1aBxFIFOState() const
TrackerSpecialHeader specialHeader_
void calcCRC(long, int &)
virtual void print(std::ostream &os) const
char data[epos_bytes_allocation]
bool doTrackerSpecialHeaderChecks() const
static const uint16_t FEDCH_PER_FED
static const uint16_t STRIPS_PER_APV
FEDBufferState totalLengthFIFOState() const
bool checkLengthFromTrailer() const
virtual bool channelGood(const uint8_t internalFEDChannelNum) const
bool slinkFullFlag() const
FEDBackendStatusRegister & setFEEventLengthFIFOState(const FEDBufferState state)
static const uint8_t PACKET_CODE_PROC_RAW8_BOTBOT
static const uint8_t BUFFER_FORMAT_CODE_OLD
uint8_t eventStatusNibble() const
static const uint16_t SCOPE_MODE_MAX_SCOPE_LENGTH
static uint8_t readoutOrderForStripInAPV(const uint8_t physicalOrderStripIndexInAPV)
uint16_t daqSourceID() const
FEDStatusRegister & setQDRMemoryBufferState(const FEDBufferState state)
FEDBackendStatusRegister & setInternalFreezeFlag(const bool bitSet)
static const uint8_t PACKET_CODE_PROC_RAW8_TOPBOT
void setL1ABXFIFOEmptyFlag(const bool bitSet)
bool getBit(int &_bitArray, unsigned _iBit)
FEDDAQHeader daqHeader() const
FEDBackendStatusRegister & setBackpressureFlag(const bool bitSet)
static const uint8_t PACKET_CODE_VIRGIN_RAW
bool feOverflow(const uint8_t internalFEUnitNum) const
uint32_t eventLengthInBytes() const
FEDBufferState feEventLengthFIFOState() const
FEDStatusRegister fedStatusRegister() const
void setQDRMemoryPartialFullFlag(const bool bitSet)
FEDBackendStatusRegister & setSLinkDownFlag(const bool bitSet)
FEDBufferFormat bufferFormat() const