#ifndef ALI_MP_ROW_SEGMENT_H
#define ALI_MP_ROW_SEGMENT_H
#include "AliMpVRowSegment.h"
class AliMpRow;
class AliMpVMotif;
class AliMpRowSegment : public AliMpVRowSegment
{
public:
AliMpRowSegment(AliMpRow* row, AliMpVMotif* motif,
Int_t padOffsetX, Int_t padOffsetY,
Int_t nofMotifs, Int_t motifPositionId, Int_t motifPositionDId);
AliMpRowSegment();
virtual ~AliMpRowSegment();
virtual Double_t LeftBorderX() const;
virtual Double_t RightBorderX() const;
virtual Double_t HalfSizeY() const;
virtual AliMpVMotif* FindMotif(Double_t x, Double_t y) const;
virtual Int_t FindMotifPositionId(Double_t x, Double_t y) const;
virtual Bool_t HasMotifPosition(Int_t motifPositionId) const;
virtual void MotifCenter(Int_t motifPositionId,
Double_t& x, Double_t& y) const;
virtual Double_t GetPositionX() const;
virtual Double_t GetPositionY() const;
virtual Double_t GetDimensionX() const;
virtual Double_t GetDimensionY() const;
virtual void SetOffset(Double_t x, Double_t y);
virtual void SetGlobalIndices(AliMpRow* rowBefore);
virtual Int_t SetIndicesToMotifPosition(Int_t i, MpPair_t indices);
virtual AliMpRow* GetRow() const;
virtual Int_t GetNofMotifs() const;
virtual AliMpVMotif* GetMotif(Int_t ) const;
virtual Int_t GetMotifPositionId(Int_t i) const;
private:
AliMpRowSegment(const AliMpRowSegment& right);
AliMpRowSegment& operator = (const AliMpRowSegment& right);
Double_t FirstMotifCenterX() const;
Double_t LastMotifCenterX() const;
Double_t MotifCenterX(Int_t motifPositionId) const;
Double_t MotifCenterY(Int_t motifPositionId) const;
Bool_t IsInside(Double_t x, Double_t y, Bool_t warn = true) const;
Int_t fNofMotifs;
MpPair_t fLPadOffset;
Double_t fOffsetX;
Double_t fOffsetY;
AliMpRow* fRow;
AliMpVMotif* fMotif;
Int_t fMotifPositionId;
Int_t fMotifPositionDId;
ClassDef(AliMpRowSegment,2)
};
#endif //ALI_MP_ROW_SEGMENT_H