]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpSectorPadIterator.h
Mapping test macros (D. Guez, I. Hrivnacova)
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpSectorPadIterator.h
1 // $Id$
2 // Category: sector
3 //
4 // Class AliMpSectorPadIterator
5 // ----------------------------
6 // Class, which defines an iterator over the pads of a sector
7 //
8 // Authors: David Guez, Ivana Hrivnacova; IPN Orsay
9
10 #ifndef ALI_MP_SECTOR_PAD_ITERATOR_H
11 #define ALI_MP_SECTOR_PAD_ITERATOR_H
12
13 #include "AliMpVPadIterator.h"
14 #include "AliMpMotifPositionPadIterator.h"
15
16 class AliMpSector;
17 class AliMpMotifPosition;
18
19
20 class AliMpSectorPadIterator : public AliMpVPadIterator
21 {
22   public:
23     AliMpSectorPadIterator();
24     AliMpSectorPadIterator(const AliMpSector* sector);
25     AliMpSectorPadIterator(const AliMpSectorPadIterator& src);
26     virtual ~AliMpSectorPadIterator();
27
28     // operators
29     AliMpSectorPadIterator& operator = (const AliMpSectorPadIterator& right);
30
31     // methods
32     virtual void First();
33     virtual void Next();
34     virtual Bool_t IsDone() const;
35     virtual AliMpPad CurrentItem() const;
36     virtual void Invalidate();
37
38   private:
39     // private methods
40     AliMpMotifPosition* ResetToCurrentMotifPosition();
41     Bool_t IsValid() const;
42
43     // private data members
44     const AliMpSector*  fkSector; // the sector over which to iterate
45     Int_t  fCurrentRow;       // the current row number
46     Int_t  fCurrentSeg;       // the current Row Segment number in fCurrentRow
47     Int_t  fCurrentMotif;     // the current motif number in fCurrentSeg
48     AliMpMotifPosition* fMotifPos; // the current motif position
49     AliMpMotifPositionPadIterator  fIterator; // iterator over the current motif type
50
51  ClassDef(AliMpSectorPadIterator,1) // iterator over motif's pads
52 };
53
54 #endif // ALI_MP_SECTOR_PAD_ITERATOR_H