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);
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);
constexpr int p1()
constexpr to accelerate the coordinates changing
#define MAXDESCRIPTIONLENGHT
static constexpr int MAXEQUIPMENTS
uint32_t * mStartStreamPtr
double getChannelSquare(int Equipment, int Column, int Dilogic, int Channel)
bool isRowMarker(uint32_t wp, int *Err, int *rowSize, int *mark)
void dumpPads(int Equipment, int type=0)
HmpidEquipment * evaluateHeaderContents(int EquipmentIndex)
float getAverageBusyTime(int Equipment)
virtual bool setUpStream(void *Buffer, long BufferLen)=0
double getChannelSum(int Equipment, int Column, int Dilogic, int Channel)
double getPadSquares(int Module, int Row, int Column)
double getPadSum(int Module, int Row, int Column)
void decodePage(uint32_t **streamBuffer)
int getEquipmentID(int CruId, int LinkId)
virtual bool getHeaderFromStream(uint32_t **streamPtr)=0
HmpidDecoder(int *EqIds, int *CruIds, int *LinkIds, int numOfEquipments)
bool isEoEmarker(uint32_t wp, int *Err, int *Col, int *Dilogic, int *Eoesize)
int checkType(uint32_t wp, int *p1, int *p2, int *p3, int *p4)
int decodeHeader(uint32_t *streamPtrAdr, int *EquipIndex)
uint16_t getPadSamples(int Module, int Row, int Column)
void dumpErrors(int Equipment)
bool isSegmentMarker(uint32_t wp, int *Err, int *segSize, int *Seg, int *mark)
uint16_t getChannelSamples(int Equipment, int Column, int Dilogic, int Channel)
bool decodeHmpidError(int ErrorField, char *outbuf)
uint32_t * getActualStreamPtr()
virtual bool getWordFromStream(uint32_t *word)=0
HmpidDecoder(int numOfEquipments)
virtual void setPad(HmpidEquipment *eq, int col, int dil, int ch, uint16_t charge)=0
bool isPadWord(uint32_t wp, int *Err, int *Col, int *Dilogic, int *Channel, int *Charge)
void writeSummaryFile(char *summaryFileName)
o2::InteractionRecord mIntReco
static char sHmpidErrorDescription[MAXHMPIDERRORS][MAXDESCRIPTIONLENGHT]
HmpidEquipment * mTheEquipments[Geo::MAXEQUIPMENTS]
void setVerbosity(int Level)
static char sErrorDescription[MAXERRORS][MAXDESCRIPTIONLENGHT]
uint32_t * mActualStreamPtr
int getEquipmentIndex(int CruID, int LinkId)
float getAverageEventSize(int Equipment)
void decodePageFast(uint32_t **streamBuf)
int getEquipmentIndex(int EquipmentId)
void dumpHmpidError(int ErrorField)
virtual bool getBlockFromStream(uint32_t **streamPtr, uint32_t Size)=0
int getNumberOfEquipments()
void updateStatistics(HmpidEquipment *eq)
GLint GLint GLsizei GLint GLenum GLenum type
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...