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