Line data Source code
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.7 2006/05/24 13:58:21 ivana Exp $
6 :
7 : /// \ingroup sector
8 : /// \class AliMpSectorPadIterator
9 : /// \brief An iterator over the pads of a sector
10 : ///
11 : /// \author 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 : UInt_t fCurrentIndex; ///< the current motif position index
49 : AliMpMotifPosition* fMotifPos; ///< the current motif position
50 : AliMpMotifPositionPadIterator fIterator; ///< iterator over the current motif type
51 :
52 18 : ClassDef(AliMpSectorPadIterator,1) // iterator over motif's pads
53 : };
54 :
55 : #endif // ALI_MP_SECTOR_PAD_ITERATOR_H
|