]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PMD/AliPMDRawStream.h
geometry for 2008 run
[u/mrichter/AliRoot.git] / PMD / AliPMDRawStream.h
index 0bb5b0b6a7506a6255cc34d7d8b54a2b6c3f346b..af3c2a95e3c48d88a0c9bcf28fb0112cdae6ea96 100644 (file)
@@ -21,15 +21,21 @@ class AliPMDRawStream: public TObject {
     AliPMDRawStream(AliRawReader* rawReader);
     virtual ~AliPMDRawStream();
 
-    Bool_t DdlData(Int_t indexDDL, TObjArray *pmdddlcont);
+    Int_t DdlData(TObjArray *pmdddlcont);
 
     enum {kDDLOffset = 0xC00};      // offset for DDL numbers
 
+    enum EPMDRawStreamError {
+      kDDLIndexMismatch = 1,
+      kNoMappingFile = 2,
+      kParityError = 3
+    };
+
   private :
     AliPMDRawStream(const AliPMDRawStream& stream);
     AliPMDRawStream& operator = (const AliPMDRawStream& stream);
 
-    void             GetRowCol(Int_t ddlno, Int_t pbusid, 
+    void             GetRowCol(Int_t ddlno, Int_t smn, Int_t pbusid, 
                               UInt_t mcmno, UInt_t chno,
                               Int_t startRowBus[], Int_t endRowBus[],
                               Int_t startColBus[], Int_t endColBus[],
@@ -37,12 +43,32 @@ class AliPMDRawStream: public TObject {
     void             ConvertDDL2SMN(Int_t iddl, Int_t imodule,
                                    Int_t &smn, Int_t &detector) const;
     void             TransformH2S(Int_t smn, Int_t &row, Int_t &col) const;
-    int              ComputeParity(Int_t data);
+    Int_t            ComputeParity(UInt_t data1);
+    UInt_t           GetNextWord();
+    void             Ddl0Mapping(Int_t moduleNo[],    Int_t mcmperBus[],
+                                Int_t startRowBus[], Int_t endRowBus[],
+                                Int_t startColBus[], Int_t endColBus[]);
+    void             Ddl1Mapping(Int_t moduleNo[],    Int_t mcmperBus[],
+                                Int_t startRowBus[], Int_t endRowBus[],
+                                Int_t startColBus[], Int_t endColBus[]);
+    void             Ddl2Mapping(Int_t moduleNo[],    Int_t mcmperBus[],
+                                Int_t startRowBus[], Int_t endRowBus[],
+                                Int_t startColBus[], Int_t endColBus[]);
+    void             Ddl3Mapping(Int_t moduleNo[],    Int_t mcmperBus[],
+                                Int_t startRowBus[], Int_t endRowBus[],
+                                Int_t startColBus[], Int_t endColBus[]);
+    void             Ddl4Mapping(Int_t moduleNo[],    Int_t mcmperBus[],
+                                Int_t startRowBus[], Int_t endRowBus[],
+                                Int_t startColBus[], Int_t endColBus[]);
+    void             Ddl5Mapping(Int_t moduleNo[],    Int_t mcmperBus[],
+                                Int_t startRowBus[], Int_t endRowBus[],
+                                Int_t startColBus[], Int_t endColBus[]);
 
     AliRawReader*    fRawReader;    // object for reading the raw data
+    UChar_t*         fData;         // pointer to the data
+    Int_t            fPosition;
 
-
-    ClassDef(AliPMDRawStream, 3)    // class for reading PMD raw digits
+    ClassDef(AliPMDRawStream, 6)    // class for reading PMD raw digits
 };
 
 #endif