/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ // $Id$ // $MpId: AliMpRow.h,v 1.8 2005/09/26 16:12:11 ivana Exp $ /// \ingroup sector /// \class AliMpRow /// \brief A row composed of the row segments. /// /// Authors: David Guez, Ivana Hrivnacova; IPN Orsay #ifndef ALI_MP_ROW_H #define ALI_MP_ROW_H #include "AliMpContainers.h" #ifdef WITH_STL #include #endif #ifdef WITH_ROOT #include #endif #include #include "AliMpVIndexed.h" #include "AliMpDirection.h" class AliMpVRowSegment; class AliMpVPadIterator; class AliMpMotifPosition; class AliMpMotifMap; class AliMpRow : public AliMpVIndexed { public: #ifdef WITH_STL typedef std::vector RowSegmentVector; #endif #ifdef WITH_ROOT typedef TList RowSegmentVector; #endif public: AliMpRow(Int_t id, AliMpMotifMap* motifMap); AliMpRow(); virtual ~AliMpRow(); // methods void AddRowSegment(AliMpVRowSegment* rowSegment); void AddRowSegmentInFront(AliMpVRowSegment* rowSegment); AliMpVRowSegment* FindRowSegment(Double_t x) const; Double_t LowBorderY() const; Double_t UpperBorderY() const; virtual AliMpVPadIterator* CreateIterator() const; void SetRowSegmentOffsets(const TVector2& offset); Double_t SetOffsetY(Double_t offsetY); void SetMotifPositions(); void SetGlobalIndices(AliMpDirection constPadSizeDirection, AliMpRow* rowBefore); // geometry TVector2 Position() const; TVector2 Dimensions() const; // get methods UInt_t GetID() const; Int_t GetNofRowSegments() const; AliMpVRowSegment* GetRowSegment(Int_t i) const; AliMpMotifMap* GetMotifMap() const; protected: AliMpRow(const AliMpRow& right); AliMpRow& operator = (const AliMpRow& right); private: // methods AliMpVRowSegment* FindRowSegment(Int_t ix) const; AliMpMotifPosition* FindMotifPosition(AliMpVRowSegment* segment, Int_t ix) const; void SetHighIndicesLimits(Int_t iy); void CheckEmpty() const; // data members UInt_t fID; // row ID Double_t fOffsetY; // the y position of the centre of motifs RowSegmentVector fSegments;// row segments AliMpMotifMap* fMotifMap;// the motif map associated with its sector ClassDef(AliMpRow,1) //Row }; // inline functions inline UInt_t AliMpRow::GetID() const { return fID; } inline AliMpMotifMap* AliMpRow::GetMotifMap() const { return fMotifMap; } #endif //ALI_MP_ROW_H