]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSRawStreamSPD.h
Trivial modifications for local tests (file list)
[u/mrichter/AliRoot.git] / ITS / AliITSRawStreamSPD.h
index ac5165588dcd62d0d2e11e517a41e9efb54ad822..5d7a70c933d828d44f36475bd6beae28ce8aeefb 100644 (file)
@@ -11,6 +11,7 @@
 ///
 ///////////////////////////////////////////////////////////////////////////////
 
+#include "AliRawReader.h"
 #include "AliITSRawStream.h"
 #include "AliITSRawStreamSPDErrorLog.h"
 
@@ -51,9 +52,12 @@ class AliITSRawStreamSPD: public AliITSRawStream {
     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  GetFastOrSignal(UInt_t eq, UInt_t hs, UInt_t chip);
+
     Int_t   GetEventCounter() const {return fEventCounter;}    // get last read event counter value
     Short_t GetEventCounterFullEq(UInt_t eq) const;
     Short_t GetEventCounterFullHS(UInt_t eq, UInt_t hs) const;
@@ -66,7 +70,8 @@ class AliITSRawStreamSPD: public AliITSRawStream {
 
     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);}
@@ -80,18 +85,35 @@ class AliITSRawStreamSPD: public AliITSRawStream {
     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,
@@ -109,7 +131,11 @@ class AliITSRawStreamSPD: public AliITSRawStream {
       kChipAddrErr,
       kCalHeaderLengthErr,
       kAdvEventCounterErr,     // used by SPDmood
-      kAdvEventCounterOrderErr // used by SPDmood
+      kAdvEventCounterOrderErr,// used by SPDmood
+      kTrailerErrorBitErr,
+      kLinkRxDetectorFatalErr,
+      kTSMtriggerErr,
+      kHighMultiplicityFlag
     };
 
   private :
@@ -128,7 +154,8 @@ class AliITSRawStreamSPD: public AliITSRawStream {
     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
@@ -149,6 +176,8 @@ class AliITSRawStreamSPD: public AliITSRawStream {
     Bool_t      fAdvancedErrorLog;           // is the advanced error logging activated?
     AliITSRawStreamSPDErrorLog *fAdvLogger;  // pointer to special error logger object
 
+    Bool_t      fFastOrSignal[20][6][10];    // fastor signal bit (one per chip)
+
     Bool_t      fActiveEq[20];               // which equipments are active (found in data)
     Bool_t      fActiveHS[20][6];            // which half-staves are active (blockattribute bits)
     Bool_t      fActiveChip[20][6][10];      // which chips are active (found in data)