]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/TPCLib/AliHLTTPCDigitReader.h
After playing, Andrew needs to cleanup :-)
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCDigitReader.h
index 7b61cd8cdf7086e5fe1d026e7cf243a116b30bab..7f4bc714364f5f1a237531c821fa1b2d43519c03 100644 (file)
@@ -16,6 +16,7 @@
 
 #include "AliHLTLogging.h"
 #include "TObject.h"
+#include "AliHLTTPCDigitData.h"
 
 /**
  * @class AliHLTTPCDigitReader
@@ -67,6 +68,11 @@ public:
    */
   virtual int InitBlock(void* ptr,unsigned long size,Int_t firstrow,Int_t lastrow, Int_t patch, Int_t slice);
 
+  /**
+   * Reset digit reader and release internal structures.
+   */
+  virtual int Reset() {return 0;}
+
   enum {
     kNextSignal = 1,
     kNextChannel,
@@ -143,6 +149,11 @@ public:
    */
   virtual const UInt_t* GetSignals();
 
+  /**
+   * Get pointer to the the current ADC value. In UShort_t, used by the 32BitFormat decoder
+   */
+  virtual const UShort_t* GetSignalsShort();
+
   /**
    * Get the time bin of the current value.
    * If @ref NextBunch has been used the function returns the
@@ -188,6 +199,22 @@ public:
    */  
   virtual int GetRowOffset() const;
 
+  /**
+   * Returns the trailer size.
+   */
+  virtual int GetRCUTrailerSize();
+
+  /**
+   * Returns the trailer data.
+   */
+  virtual bool GetRCUTrailerData(UChar_t*& trData);
+
+  /**
+   * Returns the digits
+   */
+  virtual const AliHLTTPCDigitData* GetBunchDigits(){return 0;}
+
+
   /**
    * Access operator to the data of a specific time bin.
    * Not clear if we can manage this.
@@ -218,6 +245,8 @@ public:
     kNoRewind = 0x4,
     /** warning missing fast access methods */
     kWarnMissFastAccess = 0x8,
+    /** warning on missing RCU trailer getters */
+    kWarnMissTrailerGetters = 0x10,
     /** channel caching enabled */
     kChannelCaching = 0x100
   };
@@ -258,10 +287,10 @@ protected:
 
 private:
   /**
-   * Print a warning on the missing fast access methods.
+   * Print a warning once for missing functionality.
    * Set corresponding flag to avoid repetitive warnings.
    */
-  void PrintMissingFastAccessWarning();
+  void PrintWarningOnce(int type, const char* message);
 
   /** pad/channel is locked */
   unsigned int fFlags;                                    //!transient