#ifndef ALIHLTTPCDIGITREADER_H
#define ALIHLTTPCDIGITREADER_H
-/* This file is property of and copyright by the ALICE HLT Project *
- * ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice */
+//* This file is property of and copyright by the ALICE HLT Project *
+//* ALICE Experiment at CERN, All rights reserved. *
+//* See cxx source for full Copyright notice *
/** @file AliHLTTPCDigitReader.h
@author Timm Steinbeck, Jochen Thaeder, Matthias Richter, Kenneth Aamodt
@brief An abstract reader class for TPC data.
*/
-// see below for class documentation
-// or
-// refer to README to build package
-// or
-// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
-
#include "AliHLTLogging.h"
#include "TObject.h"
+#include "AliHLTTPCDigitData.h"
/**
* @class AliHLTTPCDigitReader
*/
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,
*/
virtual int NextBunch();
+ /**
+ * Get current hardware address.
+ */
+ virtual AliHLTUInt32_t GetAltroBlockHWaddr() const;
+
+ /**
+ * Get current hardware address from row and pad number.
+ */
+ virtual AliHLTUInt32_t GetAltroBlockHWaddr(Int_t row, Int_t pad) const;
+
/**
* Get the row number of the current value.
*/
/**
* Get pointer to the the current ADC value.
*/
- virtual AliHLTUInt32_t* GetSignals();
+ 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.
*/
int RewindChannel();
+ /**
+ * Returns the bunch size. Used by the fast decoder.
+ */
+ virtual int GetBunchSize();
+
+ /**
+ * Returns the row offset. Used by the fast decoder.
+ */
+ 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.
kNoRewind = 0x4,
/** warning missing fast access methods */
kWarnMissFastAccess = 0x8,
+ /** warning on missing RCU trailer getters */
+ kWarnMissTrailerGetters = 0x10,
/** channel caching enabled */
kChannelCaching = 0x100
};
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