#ifndef ALI_MP_MOTIF_SPECIAL_H
#define ALI_MP_MOTIF_SPECIAL_H
#include "AliMpVMotif.h"
#include "AliMpExMap.h"
#include <TObjArray.h>
#include <TArrayD.h>
class TString;
class AliMpMotifSpecial : public AliMpVMotif
{
public:
AliMpMotifSpecial(const TString &id, AliMpMotifType *motifType);
AliMpMotifSpecial(TRootIOCtor* ioCtor);
virtual ~AliMpMotifSpecial();
virtual void GetPadDimensionsByIndices(MpPair_t localIndices,
Double_t& dx, Double_t& dy) const;
virtual void GetPadDimensionsByIndices(Int_t ixLocal, Int_t iyLocal,
Double_t& dx, Double_t& dy) const;
virtual Int_t GetNofPadDimensions() const;
virtual Double_t GetPadDimensionX(Int_t i) const;
virtual Double_t GetPadDimensionY(Int_t i) const;
void SetPadDimensions(MpPair_t localIndices,
Double_t dx, Double_t dy);
void SetPadDimensions(Int_t ixLocal, Int_t iyLocal,
Double_t dx, Double_t dy);
void CalculateDimensions();
virtual Double_t DimensionX() const;
virtual Double_t DimensionY() const;
virtual void PadPositionLocal(MpPair_t localIndices,
Double_t& posx, Double_t& posy ) const;
virtual void PadPositionLocal(Int_t ixLocal, Int_t iyLocal,
Double_t& posx, Double_t& posy ) const;
virtual MpPair_t PadIndicesLocal(
Double_t localPosX, Double_t localPosY) const;
private:
AliMpMotifSpecial();
static Int_t fgkPadDimensions2Size;
Double_t fDimensionX;
Double_t fDimensionY;
AliMpExMap fPadDimensionsVector;
Int_t fNofPadDimensions2;
TArrayD fPadDimensions2X;
TArrayD fPadDimensions2Y;
ClassDef(AliMpMotifSpecial,3)
};
#endif //ALI_MP_MOTIF_SPECIAL_H