#ifndef ALIMPPCB_H
#define ALIMPPCB_H
#ifndef ALI_MP_VPAD_ITERATOR_H
# include "AliMpVPadIterator.h"
#endif
#ifndef ALI_MP_AREA_H
# include "AliMpArea.h"
#endif
#ifndef ROOT_TObject
# include "TObject.h"
#endif
#ifndef ROOT_TString
# include "TString.h"
#endif
#ifndef ROOT_TArraI
# include "TArrayI.h"
#endif
#ifndef ROOT_TObjArray
# include "TObjArray.h"
#endif
class AliMpSlatMotifMap;
class AliMpMotifPosition;
class AliMpMotifType;
class AliMpMotifSpecial;
class AliMpPCB : public TObject
{
public:
AliMpPCB();
AliMpPCB(AliMpSlatMotifMap* motifMap,
const char* id, Double_t padSizeX, Double_t padSizeY,
Double_t enveloppeSizeX, Double_t enveloppeSizeY);
AliMpPCB(const char* id, AliMpMotifSpecial* ms);
AliMpPCB(const AliMpPCB& o);
AliMpPCB& operator=(const AliMpPCB& o);
virtual ~AliMpPCB();
TObject* Clone(const char* newname="") const;
AliMpPCB* Clone(const TArrayI& manuids,
Int_t ixOffset, Double_t xOffset) const;
void Copy(TObject& o) const;
void Add(AliMpMotifType* motifType, Int_t ix, Int_t iy);
AliMpArea Area() const;
void Print(Option_t* option = "") const;
Bool_t HasMotifPositionID(Int_t manuId) const;
Double_t ActiveDX() const;
Double_t ActiveDY() const;
Double_t DX() const;
Double_t DY() const;
Double_t X() const;
Double_t Y() const;
Double_t Xmin() const;
Double_t Xmax() const;
Double_t ActiveXmin() const;
Double_t ActiveXmax() const;
Double_t Ymin() const;
Double_t Ymax() const;
Double_t PadSizeX() const;
Double_t PadSizeY() const;
AliMpMotifPosition* GetMotifPosition(Int_t i) const;
AliMpMotifPosition* FindMotifPosition(Int_t ix, Int_t iy) const;
AliMpMotifPosition* FindMotifPosition(Double_t x, Double_t y) const;
Int_t GetSize() const;
Int_t GetNofPadsX() const;
Int_t GetNofPadsY() const;
Int_t Ixmin() const;
Int_t Ixmax() const;
Int_t Iymin() const;
Int_t Iymax() const;
const char* GetID() const;
Int_t NofPads() const { return fNofPads; }
AliMpSlatMotifMap* MotifMap() const { return fMotifMap; }
void Save() const;
private:
TString fId;
Double_t fPadSizeX;
Double_t fPadSizeY;
Double_t fEnveloppeSizeX;
Double_t fEnveloppeSizeY;
Double_t fXoffset;
Double_t fActiveXmin;
Double_t fActiveXmax;
Int_t fIxmin;
Int_t fIxmax;
Int_t fIymin;
Int_t fIymax;
TObjArray fMotifPositions;
Int_t fNofPads;
AliMpSlatMotifMap* fMotifMap;
ClassDef(AliMpPCB,3)
};
#endif