1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
5 // $MpId: AliMpSectorPadIterator.h,v 1.7 2006/05/24 13:58:21 ivana Exp $
8 /// \class AliMpSectorPadIterator
9 /// \brief An iterator over the pads of a sector
11 /// \author David Guez, Ivana Hrivnacova; IPN Orsay
13 #ifndef ALI_MP_SECTOR_PAD_ITERATOR_H
14 #define ALI_MP_SECTOR_PAD_ITERATOR_H
16 #include "AliMpVPadIterator.h"
17 #include "AliMpMotifPositionPadIterator.h"
20 class AliMpMotifPosition;
23 class AliMpSectorPadIterator : public AliMpVPadIterator
26 AliMpSectorPadIterator();
27 AliMpSectorPadIterator(const AliMpSector* sector);
28 AliMpSectorPadIterator(const AliMpSectorPadIterator& src);
29 virtual ~AliMpSectorPadIterator();
32 AliMpSectorPadIterator& operator = (const AliMpSectorPadIterator& right);
37 virtual Bool_t IsDone() const;
38 virtual AliMpPad CurrentItem() const;
39 virtual void Invalidate();
43 AliMpMotifPosition* ResetToCurrentMotifPosition();
44 Bool_t IsValid() const;
46 // private data members
47 const AliMpSector* fkSector; ///< the sector over which to iterate
48 Int_t fCurrentRow; ///< the current row number
49 Int_t fCurrentSeg; ///< the current Row Segment number in fCurrentRow
50 Int_t fCurrentMotif; ///< the current motif number in fCurrentSeg
51 AliMpMotifPosition* fMotifPos; ///< the current motif position
52 AliMpMotifPositionPadIterator fIterator; ///< iterator over the current motif type
54 ClassDef(AliMpSectorPadIterator,1) // iterator over motif's pads
57 #endif // ALI_MP_SECTOR_PAD_ITERATOR_H