#ifndef ALIITSMAPA1_H
#define ALIITSMAPA1_H
#include "AliITSMap.h"
#include "TArrayI.h"
class AliITSsegmentation;
class TObjArray;
class AliITSMapA1 : public AliITSMap{
public:
AliITSMapA1();
AliITSMapA1(AliITSsegmentation *seg);
AliITSMapA1(AliITSsegmentation *seg, TObjArray *dig);
AliITSMapA1(AliITSsegmentation *seg, TObjArray *dig, Int_t thr);
AliITSMapA1(AliITSsegmentation *seg, TObjArray *dig, TArrayI thr);
virtual ~AliITSMapA1();
virtual void FillMap();
virtual void FillMap2();
virtual void ClearMap();
virtual void SetHit(Int_t iz, Int_t ix, Int_t idigit);
virtual void SetThreshold(Int_t thresh) {fMapThreshold=thresh;}
virtual void SetThresholdArr(TArrayI th) {fMapThresholdArr=th;}
virtual void DeleteHit(Int_t iz, Int_t ix);
virtual Int_t GetHitIndex(Int_t iz, Int_t ix) const ;
virtual TObject* GetHit(Int_t iz, Int_t ix) const;
virtual void FlagHit(Int_t iz, Int_t ix);
virtual FlagTypeITS TestHit(Int_t iz, Int_t ix);
virtual Double_t GetSignal(Int_t iz, Int_t ix) const;
Int_t MaxIndex() const {return fMaxIndex;}
void SetArray(TObjArray *obj);
protected:
AliITSMapA1(const AliITSMapA1 &source);
AliITSMapA1& operator=(const AliITSMapA1 &source);
Int_t CheckedIndex(Int_t iz, Int_t ix) const;
AliITSsegmentation *fSegmentation;
Int_t fNpx;
Int_t fNpz;
TObjArray *fObjects;
Int_t fNobjects;
Int_t fMaxIndex;
TArrayI fMapThresholdArr;
private:
Int_t *fHitMap;
Int_t fMapThreshold;
ClassDef(AliITSMapA1,2)
};
#endif