#ifndef ALITRDARRAYSIGNAL_H
#define ALITRDARRAYSIGNAL_H
#include <TObject.h>
class AliTRDarraySignal: public TObject
{
public:
AliTRDarraySignal();
AliTRDarraySignal(Int_t nrow, Int_t ncol,Int_t ntime);
AliTRDarraySignal(const AliTRDarraySignal &d);
~AliTRDarraySignal();
AliTRDarraySignal &operator=(const AliTRDarraySignal &d);
void Allocate(Int_t nrow, Int_t ncol, Int_t ntime);
void SetNdet(Int_t ndet) {fNdet=ndet;};
Int_t GetNdet() const {return fNdet;};
Int_t GetNrow() const {return fNrow;};
Int_t GetNcol() const {return fNcol;};
Int_t GetNtime() const {return fNtime;};
Float_t GetDataByAdcCol(Int_t row, Int_t col, Int_t time) const
{return fSignal[(row*fNumberOfChannels+col)*fNtime+time];};
void SetDataByAdcCol(Int_t row, Int_t col, Int_t time, Float_t value)
{fSignal[(row*fNumberOfChannels+col)*fNtime+time]=value;};
Bool_t HasData() const {return fNtime ? 1 : 0;};
Int_t GetDim() const {return fNdim;};
Int_t GetOverThreshold(Float_t threshold) const;
void Compress(Float_t minval);
void Expand();
void Reset();
Float_t GetData(Int_t nrow, Int_t ncol, Int_t ntime) const;
void SetData(Int_t nrow, Int_t ncol, Int_t ntime, Float_t value);
static void CreateLut();
protected:
Int_t fNdet;
Int_t fNrow;
Int_t fNcol;
Int_t fNumberOfChannels;
Int_t fNtime;
Int_t fNdim;
Float_t *fSignal;
static Short_t *fgLutPadNumbering;
ClassDef(AliTRDarraySignal,3)
};
#endif