CMS 3D CMS Logo

Classes | Namespaces | Enumerations | Functions | Variables
SiStripFEDBufferComponents.h File Reference
#include <ostream>
#include <memory>
#include <cstring>
#include <vector>
#include "DataFormats/FEDRawData/interface/FEDRawData.h"
#include "DataFormats/SiStripCommon/interface/ConstantsForHardwareSystems.h"
#include "FWCore/Utilities/interface/Exception.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include <cstdint>

Go to the source code of this file.

Classes

class  sistrip::FEDAPVErrorHeader
 
class  sistrip::FEDBackendStatusRegister
 
class  sistrip::FEDBufferBase
 
class  sistrip::FEDChannel
 
class  sistrip::FEDDAQHeader
 
class  sistrip::FEDDAQTrailer
 
class  sistrip::FEDFEHeader
 
class  sistrip::FEDFullDebugHeader
 
class  sistrip::FEDStatusRegister
 
class  sistrip::FEDStripOrdering
 
class  sistrip::TrackerSpecialHeader
 

Namespaces

 sistrip
 sistrip classes
 

Enumerations

enum  sistrip::FEDBufferFormat { sistrip::BUFFER_FORMAT_INVALID = INVALID, sistrip::BUFFER_FORMAT_OLD_VME, sistrip::BUFFER_FORMAT_OLD_SLINK, sistrip::BUFFER_FORMAT_NEW }
 
enum  sistrip::FEDBufferState { sistrip::BUFFER_STATE_UNSET = 0x0, sistrip::BUFFER_STATE_EMPTY = 0x1, sistrip::BUFFER_STATE_PARTIAL_FULL = 0x4, sistrip::BUFFER_STATE_FULL = 0x8 }
 
enum  sistrip::FEDBufferStatusCode {
  sistrip::FEDBufferStatusCode::SUCCESS = 0, sistrip::FEDBufferStatusCode::BUFFER_NULL, sistrip::FEDBufferStatusCode::BUFFER_TOO_SHORT, sistrip::FEDBufferStatusCode::UNRECOGNIZED_FORMAT,
  sistrip::FEDBufferStatusCode::EXPECT_NOT_SPY, sistrip::FEDBufferStatusCode::EXPECT_SPY, sistrip::FEDBufferStatusCode::WRONG_HEADERTYPE, sistrip::FEDBufferStatusCode::CHANNEL_BEGIN_BEYOND_PAYLOAD,
  sistrip::FEDBufferStatusCode::CHANNEL_TOO_SHORT, sistrip::FEDBufferStatusCode::CHANNEL_END_BEYOND_PAYLOAD
}
 
enum  sistrip::FEDChannelStatus {
  sistrip::CHANNEL_STATUS_LOCKED = 0x20, sistrip::CHANNEL_STATUS_IN_SYNC = 0x10, sistrip::CHANNEL_STATUS_APV1_ADDRESS_GOOD = 0x08, sistrip::CHANNEL_STATUS_APV0_NO_ERROR_BIT = 0x04,
  sistrip::CHANNEL_STATUS_APV0_ADDRESS_GOOD = 0x02, sistrip::CHANNEL_STATUS_APV1_NO_ERROR_BIT = 0x01, sistrip::CHANNEL_STATUS_NO_PROBLEMS
}
 
enum  sistrip::FEDDAQEventType {
  sistrip::DAQ_EVENT_TYPE_PHYSICS = 0x1, sistrip::DAQ_EVENT_TYPE_CALIBRATION = 0x2, sistrip::DAQ_EVENT_TYPE_TEST = 0x3, sistrip::DAQ_EVENT_TYPE_TECHNICAL = 0x4,
  sistrip::DAQ_EVENT_TYPE_SIMULATED = 0x5, sistrip::DAQ_EVENT_TYPE_TRACED = 0x6, sistrip::DAQ_EVENT_TYPE_ERROR = 0xF, sistrip::DAQ_EVENT_TYPE_INVALID = INVALID
}
 
enum  sistrip::FEDHeaderType { sistrip::HEADER_TYPE_INVALID = INVALID, sistrip::HEADER_TYPE_FULL_DEBUG = 1, sistrip::HEADER_TYPE_APV_ERROR = 2, sistrip::HEADER_TYPE_NONE = 4 }
 
enum  sistrip::FEDLegacyReadoutMode {
  sistrip::READOUT_MODE_LEGACY_INVALID = INVALID, sistrip::READOUT_MODE_LEGACY_SCOPE = 0x1, sistrip::READOUT_MODE_LEGACY_VIRGIN_RAW_REAL = 0x2, sistrip::READOUT_MODE_LEGACY_VIRGIN_RAW_FAKE = 0x3,
  sistrip::READOUT_MODE_LEGACY_PROC_RAW_REAL = 0x6, sistrip::READOUT_MODE_LEGACY_PROC_RAW_FAKE = 0x7, sistrip::READOUT_MODE_LEGACY_ZERO_SUPPRESSED_REAL = 0xA, sistrip::READOUT_MODE_LEGACY_ZERO_SUPPRESSED_FAKE = 0xB,
  sistrip::READOUT_MODE_LEGACY_ZERO_SUPPRESSED_LITE_REAL = 0xC, sistrip::READOUT_MODE_LEGACY_ZERO_SUPPRESSED_LITE_FAKE = 0xD, sistrip::READOUT_MODE_LEGACY_SPY = 0xE, sistrip::READOUT_MODE_LEGACY_PREMIX_RAW = 0xF
}
 
enum  sistrip::FEDReadoutMode {
  sistrip::READOUT_MODE_INVALID = INVALID, sistrip::READOUT_MODE_SCOPE = 0x1, sistrip::READOUT_MODE_VIRGIN_RAW = 0x2, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE10 = 0x3,
  sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE10_CMOVERRIDE = 0x4, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_TOPBOT = 0x5, sistrip::READOUT_MODE_PROC_RAW = 0x6, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_TOPBOT_CMOVERRIDE = 0x7,
  sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_CMOVERRIDE = 0x8, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_BOTBOT = 0x9, sistrip::READOUT_MODE_ZERO_SUPPRESSED = 0xA, sistrip::READOUT_MODE_ZERO_SUPPRESSED_FAKE = 0xB,
  sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8 = 0xC, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_BOTBOT_CMOVERRIDE = 0xD, sistrip::READOUT_MODE_SPY = 0xE, sistrip::READOUT_MODE_PREMIX_RAW = 0xF
}
 
enum  sistrip::FEDTTSBits {
  sistrip::TTS_DISCONNECTED0 = 0x0, sistrip::TTS_WARN_OVERFLOW = 0x1, sistrip::TTS_OUT_OF_SYNC = 0x2, sistrip::TTS_BUSY = 0x4,
  sistrip::TTS_READY = 0x8, sistrip::TTS_ERROR = 0x12, sistrip::TTS_DISCONNECTED1 = 0xF, sistrip::TTS_INVALID = INVALID
}
 

Functions

uint16_t sistrip::calculateFEDBufferCRC (const uint8_t *buffer, const size_t lengthInBytes)
 
FEDBufferFormat sistrip::fedBufferFormatFromString (const std::string &bufferFormatString)
 
FEDDAQEventType sistrip::fedDAQEventTypeFromString (const std::string &daqEventTypeString)
 
FEDHeaderType sistrip::fedHeaderTypeFromString (const std::string &headerTypeString)
 
FEDReadoutMode sistrip::fedReadoutModeFromString (const std::string &readoutModeString)
 
uint8_t sistrip::internalFEDChannelNum (const uint8_t internalFEUnitNum, const uint8_t internalFEUnitChannelNum)
 
std::ostream & sistrip::operator<< (std::ostream &os, const FEDBufferBase &obj)
 
std::ostream & sistrip::operator<< (std::ostream &os, const FEDBufferFormat &value)
 
std::ostream & sistrip::operator<< (std::ostream &os, const FEDBufferState &value)
 
std::ostream & sistrip::operator<< (std::ostream &os, const FEDBufferStatusCode &value)
 
std::ostream & sistrip::operator<< (std::ostream &os, const FEDChannelStatus &value)
 
std::ostream & sistrip::operator<< (std::ostream &os, const FEDDAQEventType &value)
 
std::ostream & sistrip::operator<< (std::ostream &os, const FEDDAQHeader &obj)
 
std::ostream & sistrip::operator<< (std::ostream &os, const FEDDAQTrailer &obj)
 
std::ostream & sistrip::operator<< (std::ostream &os, const FEDFEHeader &obj)
 
std::ostream & sistrip::operator<< (std::ostream &os, const FEDHeaderType &value)
 
std::ostream & sistrip::operator<< (std::ostream &os, const FEDLegacyReadoutMode &value)
 
std::ostream & sistrip::operator<< (std::ostream &os, const FEDReadoutMode &value)
 
std::ostream & sistrip::operator<< (std::ostream &os, const FEDStatusRegister &obj)
 
std::ostream & sistrip::operator<< (std::ostream &os, const FEDTTSBits &value)
 
std::ostream & sistrip::operator<< (std::ostream &os, const TrackerSpecialHeader &obj)
 
uint8_t sistrip::packetCodeFromString (const std::string &packetCodeString, FEDReadoutMode mode)
 
FEDBufferStatusCode sistrip::preconstructCheckFEDBufferBase (const FEDRawData &fedBuffer, bool checkRecognizedFormat=true)
 
void sistrip::printHex (const void *pointer, const size_t length, std::ostream &os)
 

Variables

static const uint8_t sistrip::APV_MAX_ADDRESS = 192
 
static const uint8_t sistrip::BUFFER_FORMAT_CODE_NEW = 0xC5
 
static const uint8_t sistrip::BUFFER_FORMAT_CODE_OLD = 0xED
 
static const uint8_t sistrip::INVALID = 0xFF
 
static const uint8_t sistrip::PACKET_CODE_PROC_RAW = 0xF2
 
static const uint8_t sistrip::PACKET_CODE_PROC_RAW10 = 0x92
 
static const uint8_t sistrip::PACKET_CODE_PROC_RAW8_BOTBOT = 0xCA
 
static const uint8_t sistrip::PACKET_CODE_PROC_RAW8_TOPBOT = 0xB2
 
static const uint8_t sistrip::PACKET_CODE_SCOPE = 0xE1
 
static const uint8_t sistrip::PACKET_CODE_VIRGIN_RAW = 0xE6
 
static const uint8_t sistrip::PACKET_CODE_VIRGIN_RAW10 = 0x86
 
static const uint8_t sistrip::PACKET_CODE_VIRGIN_RAW8_BOTBOT = 0xC6
 
static const uint8_t sistrip::PACKET_CODE_VIRGIN_RAW8_TOPBOT = 0xA6
 
static const uint8_t sistrip::PACKET_CODE_ZERO_SUPPRESSED = 0xEA
 
static const uint8_t sistrip::PACKET_CODE_ZERO_SUPPRESSED10 = 0x8A
 
static const uint8_t sistrip::PACKET_CODE_ZERO_SUPPRESSED8_BOTBOT = 0xCA
 
static const uint8_t sistrip::PACKET_CODE_ZERO_SUPPRESSED8_TOPBOT = 0xAA
 
static const uint16_t sistrip::SCOPE_MODE_MAX_SCOPE_LENGTH = 1022