New macro to keep track of timing performances of the segmentation methods (Laurent)
[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.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  ClassDef(AliMpSectorPadIterator,1) // iterator over motif's pads
53 };
54
55 #endif // ALI_MP_SECTOR_PAD_ITERATOR_H