#ifndef ALIT0RAWDATA_H
#define ALIT0RAWDATA_H
#include "TObject.h"
class AliT0;
class AliT0digit;
class AliFstream;
class TFile;
class TMap;
class AliRawDataHeaderSim;
class AliT0RawData : public TObject {
public:
AliT0RawData();
AliT0RawData(const AliT0RawData &r);
virtual ~AliT0RawData();
AliT0RawData &operator=(const AliT0RawData &r);
Int_t RawDataT0 (AliT0digit *fDigits);
void SetVerbose(Int_t Verbose){fVerbose=Verbose;}
void GetDigits(AliT0digit *fDigits);
void WriteDataHeader(Bool_t dummy, Bool_t compressed);
void WriteDRMDataHeader();
void WriteTRMDataHeader(UInt_t slotID, Int_t nWords, Int_t positionOfTRMHeader);
void WriteTrailer(UInt_t slot, Int_t word1, UInt_t word2, UInt_t word3);
void WriteChainDataHeader(UInt_t chainNumber,UInt_t slotID);
void WriteChainDataTrailer(UInt_t chainNumber);
void FillTime(Int_t ch, Int_t iTDC, Int_t time);
TArrayI *TimeLED() {return fTimeLED;}
TArrayI *ADC1() {return fADC1;}
TArrayI *TimeCFD() {return fTimeCFD;}
TArrayI *ADC0() {return fADC0;}
protected:
Int_t fVerbose;
UInt_t fBuffer[512];
Int_t fIndex;
Int_t fEventNumber;
TArrayI * fTimeCFD;
TArrayI * fADC1;
TArrayI * fTimeLED;
TArrayI * fADC0;
AliFstream* fFile;
UInt_t fDataHeaderPos;
UInt_t fDRMDataHeaderPos;
UInt_t fTRMDataHeaderPos;
AliT0Parameters *fParam;
TMap fLookUp;
ClassDef(AliT0RawData,2)
};
typedef AliT0RawData AliSTARTRawData;
#endif