#ifndef ALIT0RAWREADER_H
#define ALIT0RAWREADER_H
#include <TTask.h>
#include "AliRawReader.h"
#include "AliT0Parameters.h"
class AliT0RawReader : public TTask {
public :
AliT0RawReader(AliRawReader *rawReader,Bool_t isOnline = kFALSE) ;
virtual ~AliT0RawReader();
AliT0RawReader(const AliT0RawReader& o): TTask(o),
fRawReader(0),
fData(NULL),
fPosition(0),
fParam(0),
fIsOnline(kFALSE),
fBunchID(0),
fPrintout(kFALSE)
{}
AliT0RawReader& operator=(const AliT0RawReader&) { return *this; }
Bool_t Next();
Int_t GetPosition();
UInt_t GetNextWord();
Int_t GetData( Int_t channel, Int_t hit) {return fAllData[channel][hit];}
enum ET0RawReaderError {
kIncorrectDataSize = 1,
kWrongDRMHeader = 2,
kWrongDRMTrailer = 3,
kWrongTRMHeader = 4,
kWrongTRMTrailer = 5,
kWrongChain0Header = 6,
kWrongChain0Trailer = 7,
kWrongChain1Header = 8,
kWrongChain1Trailer = 9,
kIncorrectLUT = 10
};
Bool_t IsOnlineMode () {return fIsOnline;}
Int_t GetTRMBunchID() {return fBunchID;};
void SetPrintout(Bool_t pp ) {fPrintout = pp;}
protected :
AliRawReader* fRawReader;
UChar_t* fData;
Int_t fPosition;
AliT0Parameters *fParam;
Bool_t fIsOnline;
Int_t fBunchID;
Bool_t fPrintout;
Int_t fAllData[220][5];
ClassDef(AliT0RawReader,4)
};
typedef AliT0RawReader AliSTARTRawReader;
#endif