///
///////////////////////////////////////////////////////////////////////////////
+#include "AliRawReader.h"
#include "AliITSRawStream.h"
#include "AliITSRawStreamSPDErrorLog.h"
static UInt_t GetOnlineRowFromOffline(UInt_t module, UInt_t rowM);
// coordinate conversions - online->offline
static UInt_t GetOfflineModuleFromOnline(UInt_t eqId, UInt_t hs, UInt_t chip);
+ static UInt_t GetOfflineChipKeyFromOnline(UInt_t eqId, UInt_t hs, UInt_t chip);
static UInt_t GetOfflineColFromOnline(UInt_t eqId, UInt_t hs, UInt_t chip, UInt_t col);
static UInt_t GetOfflineRowFromOnline(UInt_t eqId, UInt_t hs, UInt_t chip, UInt_t row);
Bool_t GetHalfStavePresent(UInt_t hs);
- // use the methods below to extract the information from the calibration header
+ Int_t GetHword(UInt_t index);
+ // use the methods below to extract the information from the scan calibration header:
UInt_t GetHrouterNr() const {return (fCalHeadWord[0] & 0x0000003f);}
Bool_t GetHhalfStaveScanned(UInt_t hs) const;
UInt_t GetHtype() const {return (Int_t)((fCalHeadWord[1]) & 0x000000ff);}
UInt_t GetHrowStart() const {return (UInt_t) ((fCalHeadWord[6]>>24) & 0x000000ff);}
UInt_t GetHrowEnd() const {return (UInt_t) ((fCalHeadWord[6]>>16) & 0x000000ff);}
UInt_t GetHrowValue() const {return (UInt_t) ((fCalHeadWord[6]>> 8) & 0x000000ff);}
+ UInt_t GetHrowSpan() const {return (UInt_t) ((fCalHeadWord[6]) & 0x000000ff);}
UInt_t GetHdacValue() const {return (Int_t) ((fCalHeadWord[6]) & 0x000000ff);}
UInt_t GetHdacHigh(UInt_t hs) const;
UInt_t GetHdacLow(UInt_t hs) const;
UInt_t GetHTPAmp(UInt_t hs) const;
Bool_t GetHminTHchipPresent(UInt_t chip) const;
+ UInt_t GetHglobalDBversion() const {return fCalHeadWord[16];}
+ // use the methods below to extract the information from the fo calibration header:
+ UInt_t GetFOHrouterNr() const {return GetHrouterNr();}
+ UInt_t GetFOHtype() const {return GetHtype();}
+ UInt_t GetFOHtriggers() const {return GetHtriggers();}
+ Bool_t GetFOHchipPresent(UInt_t hs, UInt_t chip) const {return GetHchipPresent(hs,chip);}
+ UInt_t GetFOHglobalDBversion() const {return fCalHeadWord[5];}
+ UInt_t GetFOHMatrixID() const {return fCalHeadWord[6] & 0x0000000f;}
+ UInt_t GetFOHpixelCol() const {return (fCalHeadWord[6] >> 20) & 0x0000001f;}
+ UInt_t GetFOHpixelRow() const {return (fCalHeadWord[6] >> 10) & 0x000000ff;}
+ UInt_t GetFOHnumDacs() const;
+ UInt_t GetFOHdacIndex(UInt_t index) const;
+ UInt_t GetFOHdacValue(UInt_t index) const;
+ UInt_t GetFOHchipCount(UInt_t hs, UInt_t chip) const;
+
void ActivateAdvancedErrorLog(Bool_t activate, AliITSRawStreamSPDErrorLog* advLogger = NULL);
- static const Char_t* GetErrorName(UInt_t errorCode);
+ AliITSRawStreamSPDErrorLog* GetAdvancedErrorLog() {return fAdvLogger;}
+ static const Char_t* GetErrorName(UInt_t errorCode);
enum {kDDLsNumber = 20}; // number of DDLs in SPD
enum {kModulesPerDDL = 12}; // number of modules in each DDL
- enum {kCalHeadLenMax = 16}; // maximum number of calib header words
+ enum {kCalHeadLenMax = 64}; // maximum number of calib header words
enum ESPDRawStreamError {
kTotal,
kHeaderMissingErr,
kCalHeaderLengthErr,
kAdvEventCounterErr, // used by SPDmood
kAdvEventCounterOrderErr,// used by SPDmood
- kTrailerErrorBitErr
+ kTrailerErrorBitErr,
+ kLinkRxDetectorFatalErr,
+ kTSMtriggerErr,
+ kHighMultiplicityFlag
};
private :
UInt_t fCol; // chip column nr
UInt_t fRow; // chip row nr
UInt_t fCalHeadWord[kCalHeadLenMax]; // calibration header words
-
+ UInt_t fCalHeadLen; // calibration header length
+
UShort_t fData; // 16 bit data word read
UInt_t fOffset; // offset for cell column
UInt_t fHitCount; // counter of hits