#ifndef ALI_MP_PAD_H
#define ALI_MP_PAD_H
#include "AliMpEncodePair.h"
#include <TObject.h>
#include <TClonesArray.h>
class AliMpPad : public TObject
{
public:
AliMpPad(Int_t manuId, Int_t channel,
Int_t ix, Int_t iy,
Double_t x, Double_t y,
Double_t dx, Double_t dy,
Bool_t validity = true);
AliMpPad(Int_t manuId, Int_t channel,
MpPair_t indices,
Double_t positionX, Double_t positionY,
Double_t dx, Double_t dy,
Bool_t validity = true);
AliMpPad();
AliMpPad(const AliMpPad& src);
~AliMpPad();
Bool_t operator == (const AliMpPad& pos2) const;
Bool_t operator != (const AliMpPad& pos2) const;
AliMpPad& operator = (const AliMpPad& src) ;
void PrintOn(ostream& out) const;
void Print(const char* = "") const;
static AliMpPad Invalid() {return AliMpPad();}
Bool_t AddLocation(Int_t localBoardId, Int_t localBoardChannel,
Bool_t warn = true);
MpPair_t GetLocation() const { return fLLocation; }
Int_t GetManuId() const;
Int_t GetManuChannel() const;
MpPair_t GetIndices() const { return fLIndices; }
Int_t GetIx() const;
Int_t GetIy() const;
Double_t GetPositionX() const { return fPositionX; }
Double_t GetPositionY() const { return fPositionY; }
Double_t GetDimensionX() const {return fDimensionX;}
Double_t GetDimensionY() const {return fDimensionY;}
Bool_t IsValid() const {return fValidity ;}
Int_t GetNofLocations() const;
MpPair_t GetLocation(Int_t i) const;
Int_t GetLocalBoardId(Int_t i) const;
Int_t GetLocalBoardChannel(Int_t i) const;
Bool_t HasLocation(Int_t localBoardId, Int_t localBoardChannel) const;
private:
static const Int_t fgkMaxNofLocations;
UInt_t fNofLocations;
MpPair_t* fLLocations;
MpPair_t fLLocation;
MpPair_t fLIndices;
Double_t fPositionX;
Double_t fPositionY;
Double_t fDimensionX;
Double_t fDimensionY;
Bool_t fValidity;
ClassDef(AliMpPad,4)
};
ostream& operator << (ostream &out, const AliMpPad& op);
Bool_t operator < (const AliMpPad& left, const AliMpPad& right);
#endif //ALI_MP_PAD_H