]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpPlaneAreaPadIterator.h
Mapping test macros (D. Guez, I. Hrivnacova)
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpPlaneAreaPadIterator.h
1 // $Id$
2 // Category: plane
3 //
4 // Class AliMpPlaneAreaPadIterator
5 // -------------------------------
6 // Class, which defines an iterator over the pads 
7 // inside a given area in a plane in horizontal direction.
8 //
9 // Authors: David Guez, Ivana Hrivnacova; IPN Orsay
10
11 #ifndef ALI_MP_PLANE_AREA_PAD_ITERATOR_H
12 #define ALI_MP_PLANE_AREA_PAD_ITERATOR_H
13
14 #include "AliMpPlaneTypes.h"
15 #include "AliMpVPadIterator.h"
16 #include "AliMpTransformPadIterator.h"
17 #include "AliMpArea.h"
18 #include "AliMpPad.h"
19
20 class AliMpPlaneSegmentation;
21
22 class AliMpPlaneAreaPadIterator : public AliMpVPadIterator
23 {
24   public:
25     AliMpPlaneAreaPadIterator(const AliMpPlaneSegmentation* segmentation, 
26                               const AliMpArea& area);
27     AliMpPlaneAreaPadIterator(const AliMpPlaneAreaPadIterator& src);
28     AliMpPlaneAreaPadIterator();
29     virtual ~AliMpPlaneAreaPadIterator();
30
31     // operators
32     AliMpPlaneAreaPadIterator& 
33       operator = (const AliMpPlaneAreaPadIterator& right);
34
35     // methods
36     virtual void First();
37     virtual void Next();
38     virtual Bool_t IsDone() const;
39     virtual AliMpPad CurrentItem() const;
40     virtual void Invalidate();
41
42   private:
43     // private methods
44     void DecomposeArea();
45
46     // private data members
47     const AliMpPlaneSegmentation*  fkPlaneSegmentation; // the plane segmentation 
48                                                // over which we iterate
49     //const AliMpArea  fkArea; // the area
50                                // (const caused problem with CINT)
51     AliMpArea                 fkArea;          // the area
52     PadIteratorVector         fPadIterators;   // pad iterators
53     PadIteratorVectorIterator fCurrentIterator;// the current iterator 
54                                                // in the vector of pad iterators
55
56  ClassDef(AliMpPlaneAreaPadIterator,1) // iterator over motif's pads
57 };
58 #endif // ALI_MP_PLANE_AREA_PAD_ITERATOR_H