18#ifndef COMMON_HMPIDDECODER_H_
19#define COMMON_HMPIDDECODER_H_
26#include <fairlogger/Logger.h>
31#define MAXDESCRIPTIONLENGHT 50
34#define RAWBLOCKDIMENSION_W 2048
35#define HEADERDIMENSION_W 16
36#define PAYLOADDIMENSION_W 2032
105 HmpidDecoder(
int* EqIds,
int* CruIds,
int* LinkIds,
int numOfEquipments);
134 double getChannelSum(
int Equipment,
int Column,
int Dilogic,
int Channel);
135 double getChannelSquare(
int Equipment,
int Column,
int Dilogic,
int Channel);
137 double getPadSum(
int Module,
int Row,
int Column);
150 int checkType(uint32_t wp,
int*
p1,
int*
p2,
int* p3,
int* p4);
151 bool isRowMarker(uint32_t wp,
int* Err,
int* rowSize,
int* mark);
152 bool isSegmentMarker(uint32_t wp,
int* Err,
int* segSize,
int* Seg,
int* mark);
153 bool isEoEmarker(uint32_t wp,
int* Err,
int* Col,
int* Dilogic,
int* Eoesize);
158 bool isPadWord(uint32_t wp,
int* Err,
int* Col,
int* Dilogic,
int* Channel,
int* Charge);
159 int decodeHeader(uint32_t* streamPtrAdr,
int* EquipIndex);
constexpr int p1()
constexpr to accelerate the coordinates changing
#define MAXDESCRIPTIONLENGHT
static constexpr int MAXEQUIPMENTS
double getChannelSum(int Equipment, int Column, int Dilogic, int Channel)
uint32_t * mStartStreamPtr
uint16_t getPadSamples(int Module, int Row, int Column)
virtual bool setUpStream(void *Buffer, long BufferLen)=0
bool isRowMarker(uint32_t wp, int *Err, int *rowSize, int *mark)
int checkType(uint32_t wp, int *p1, int *p2, int *p3, int *p4)
int decodeHeader(uint32_t *streamPtrAdr, int *EquipIndex)
void decodePage(uint32_t **streamBuffer)
uint16_t getChannelSamples(int Equipment, int Column, int Dilogic, int Channel)
static char sErrorDescription[MAXERRORS][MAXDESCRIPTIONLENGHT]
Decoding Error Messages Definitions.
virtual bool getHeaderFromStream(uint32_t **streamPtr)=0
bool decodeHmpidError(int ErrorField, char *outbuf)
void updateStatistics(HmpidEquipment *eq)
void dumpHmpidError(int ErrorField)
double getPadSquares(int Module, int Row, int Column)
int getEquipmentIndex(int EquipmentId)
bool isPadWord(uint32_t wp, int *Err, int *Col, int *Dilogic, int *Channel, int *Charge)
uint32_t * getActualStreamPtr()
void decodePageFast(uint32_t **streamBuf)
virtual bool getWordFromStream(uint32_t *word)=0
virtual void setPad(HmpidEquipment *eq, int col, int dil, int ch, uint16_t charge)=0
~HmpidDecoder()
Destructor : remove the Equipments instances.
bool isEoEmarker(uint32_t wp, int *Err, int *Col, int *Dilogic, int *Eoesize)
double getChannelSquare(int Equipment, int Column, int Dilogic, int Channel)
HmpidEquipment * evaluateHeaderContents(int EquipmentIndex)
o2::InteractionRecord mIntReco
void writeSummaryFile(char *summaryFileName)
HmpidEquipment * mTheEquipments[Geo::MAXEQUIPMENTS]
void setVerbosity(int Level)
uint32_t * mActualStreamPtr
float getAverageBusyTime(int Equipment)
void init()
Init all the members variables.
double getPadSum(int Module, int Row, int Column)
static char sHmpidErrorDescription[MAXHMPIDERRORS][MAXDESCRIPTIONLENGHT]
HMPID Firmware Error Messages Definitions.
float getAverageEventSize(int Equipment)
void dumpErrors(int Equipment)
void dumpPads(int Equipment, int type=0)
virtual bool getBlockFromStream(uint32_t **streamPtr, uint32_t Size)=0
int getEquipmentID(int CruId, int LinkId)
int getNumberOfEquipments()
bool isSegmentMarker(uint32_t wp, int *Err, int *segSize, int *Seg, int *mark)
GLint GLint GLsizei GLint GLenum GLenum type
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...