]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/PHOS/AliHLTPHOSDigitReader.h
Changes for #64259 Request for including the new class AliTRDresponse in STEER and...
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSDigitReader.h
index 837b7c4407292cfe15b041d0d9f4e79abad7b135..9b4f8f4426aefc35aa3e89adaead16e7c527b107 100644 (file)
@@ -28,8 +28,8 @@
 // or
 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
 
-
-class AliHLTPHOSDigitDataStruct;
+#include "AliHLTLogging.h"
+#include "AliHLTPHOSDigitDataStruct.h"
 
 /** 
  * @class AliHLTPHOSDigitReader
@@ -37,8 +37,9 @@ class AliHLTPHOSDigitDataStruct;
  * the list of digits following the header
  * @ingroup alihlt_phos
  */
-class AliHLTPHOSDigitReader
+class AliHLTPHOSDigitReader : public AliHLTLogging
 {
+
 public:
   AliHLTPHOSDigitReader();                     
   virtual ~AliHLTPHOSDigitReader();
@@ -48,7 +49,7 @@ public:
     fDigitHeader = digitHeader; 
     if(fDigitHeader->fNDigits != 0)
       {
-       fFirstDigit = reinterpret_cast<AliHLTPHOSDigitDataStruct>(reinterpret_cast<Int_t>(fDigitHeader) + sizeof(AliHLTPHOSDigitHeaderStruct) + fDigitHeader->fFirstDigitOffset);
+       fFirstDigit = reinterpret_cast<AliHLTPHOSDigitDataStruct*>(reinterpret_cast<Long_t>(fDigitHeader) + fDigitHeader->fFirstDigitOffset);
       }
     else 
       {
@@ -57,15 +58,30 @@ public:
     fNextDigit = fFirstDigit;
   }
     
-  void SetCurrentDigit(AliHLTPHOSDigitDataStruct *currentDigit) { fCurrentDigit = currentDigit; }
+  void SetCurrentDigit(AliHLTPHOSDigitDataStruct *currentDigit) 
+  { 
+    fCurrentDigit = currentDigit; 
+    //    fNextDigit = reinterpret_cast<AliHLTPHOSDigitDataStruct*>(reinterpret_cast<UChar_t*>(fCurrentDigit) + fCurrentDigit->fMemOffsetNext);
+  }
+  void SetNextDigit(AliHLTPHOSDigitDataStruct *nextDigit) 
+  { 
+    fNextDigit = nextDigit; 
+    //    fNextDigit = reinterpret_cast<AliHLTPHOSDigitDataStruct*>(reinterpret_cast<UChar_t*>(fCurrentDigit) + fCurrentDigit->fMemOffsetNext);
+  }
 
   AliHLTPHOSDigitDataStruct* NextDigit();
 
   void DropDigit();
 
-  void Rewind() { fCurrentDigit = fFirstDigit; }
+  void Rewind() 
+  { 
+    fNextDigit = fFirstDigit; 
+    fPrevDigit = 0;
+  }
+
+  //  Int_t GetCurrentDigitOffset() { return reinterpret_cast<Long_t>(fCurrentDigit) - reinterpret_cast<Long_t>(fDigitHeader) + sizeof(AliHLTPHOSDigitHeaderStruct); }
 
-  Int_t GetCurrentDigitOffset() { return reinterpret_cast<Int_t>(fCurrentDigit) - reinterpret_cast<Int_t>(fDigitHeader) + sizeof(AliHLTPHOSDigitHeaderStruct);
+  Int_t GetCurrentDigitOffset() { return reinterpret_cast<Long_t>(fCurrentDigit) - reinterpret_cast<Long_t>(fDigitHeader); }
 
 private:
   
@@ -75,11 +91,19 @@ private:
   /** Pointer to the current digit */
   AliHLTPHOSDigitDataStruct *fCurrentDigit;    //COMMENT
 
+  /** Pointer to the next digit */
+  AliHLTPHOSDigitDataStruct *fNextDigit;    //COMMENT
+
   /** Pointer to the current digit */
   AliHLTPHOSDigitDataStruct *fPrevDigit;    //COMMENT
 
   /** Pointer to the first digit */
   AliHLTPHOSDigitDataStruct *fFirstDigit;    //COMMENT
+
+  AliHLTPHOSDigitReader (const AliHLTPHOSDigitReader  & );
+  AliHLTPHOSDigitReader & operator = (const AliHLTPHOSDigitReader &);
+
+
 };