]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpSectorAreaHPadIterator.h
From Laurent
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpSectorAreaHPadIterator.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: AliMpSectorAreaHPadIterator.h,v 1.5 2005/08/26 15:43:36 ivana Exp $
6
7 /// \ingroup sector
8 /// \class AliMpSectorAreaHPadIterator
9 /// \brief An iterator over the pads inside a given area in a sector
10 /// in horizontal direction.
11 ///
12 /// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
13
14 #ifndef ALI_MP_SECTOR_AREA_H_PAD_ITERATOR_H
15 #define ALI_MP_SECTOR_AREA_H_PAD_ITERATOR_H
16
17 #include "AliMpVPadIterator.h"
18 #include "AliMpArea.h"
19 #include "AliMpPad.h"
20
21 class AliMpSectorSegmentation;
22
23 class AliMpSectorAreaHPadIterator : public AliMpVPadIterator
24 {
25   public:
26     AliMpSectorAreaHPadIterator(const AliMpSectorSegmentation* segmentation, 
27                                 const AliMpArea& area);
28     AliMpSectorAreaHPadIterator(const AliMpSectorAreaHPadIterator& src);
29     AliMpSectorAreaHPadIterator();
30     virtual ~AliMpSectorAreaHPadIterator();
31
32     // operators
33     AliMpSectorAreaHPadIterator& 
34       operator = (const AliMpSectorAreaHPadIterator& right);
35
36     // methods
37     virtual void First();
38     virtual void Next();
39     virtual Bool_t IsDone() const;
40     virtual AliMpPad CurrentItem() const;
41     virtual void Invalidate();
42
43   private:
44     // private methods
45     Bool_t IsValid() const;
46     void MoveUp();
47
48     // private data members
49     const AliMpSectorSegmentation*  fkSegmentation; // the sector segmentation 
50                                     // over which we iterate
51     //const AliMpArea  fkArea;         // the area
52                                        // (const caused problem with CINT)
53     AliMpArea  fkArea;                 // the area
54     AliMpPad   fCurrentPad;         // the current pad
55     Double_t   fCurrentRowPosition; // the current row position
56
57  ClassDef(AliMpSectorAreaHPadIterator,1) // iterator over motif's pads
58 };
59
60 #endif // ALI_MP_SECTOR_AREA_H_PAD_ITERATOR_H