]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpSectorPadIterator.h
New class - the factory for building mapping segmentations
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpSectorPadIterator.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 // $Id$
5 // $MpId: AliMpSectorPadIterator.h,v 1.5 2005/08/26 15:43:36 ivana Exp $
6
7 /// \ingroup sector
8 /// \class AliMpSectorPadIterator
9 /// \brief An iterator over the pads of a sector
10 ///
11 /// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
12
13 #ifndef ALI_MP_SECTOR_PAD_ITERATOR_H
14 #define ALI_MP_SECTOR_PAD_ITERATOR_H
15
16 #include "AliMpVPadIterator.h"
17 #include "AliMpMotifPositionPadIterator.h"
18
19 class AliMpSector;
20 class AliMpMotifPosition;
21
22
23 class AliMpSectorPadIterator : public AliMpVPadIterator
24 {
25   public:
26     AliMpSectorPadIterator();
27     AliMpSectorPadIterator(const AliMpSector* sector);
28     AliMpSectorPadIterator(const AliMpSectorPadIterator& src);
29     virtual ~AliMpSectorPadIterator();
30
31     // operators
32     AliMpSectorPadIterator& operator = (const AliMpSectorPadIterator& right);
33
34     // methods
35     virtual void First();
36     virtual void Next();
37     virtual Bool_t IsDone() const;
38     virtual AliMpPad CurrentItem() const;
39     virtual void Invalidate();
40
41   private:
42     // private methods
43     AliMpMotifPosition* ResetToCurrentMotifPosition();
44     Bool_t IsValid() const;
45
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
53
54  ClassDef(AliMpSectorPadIterator,1) // iterator over motif's pads
55 };
56
57 #endif // ALI_MP_SECTOR_PAD_ITERATOR_H