Code for MUON Station1 (I.Hrivnacova)
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpSectorAreaHPadIterator.h
CommitLineData
5f91c9e8 1// $Id$
2// Category: sector
3//
4// Class AliMpSectorAreaHPadIterator
5// ---------------------------------
6// Class, which defines an iterator over the pads
7// inside a given area in a sector in horizontal direction.
8//
9// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
10
11#ifndef ALI_MP_SECTOR_AREA_H_PAD_ITERATOR_H
12#define ALI_MP_SECTOR_AREA_H_PAD_ITERATOR_H
13
14#include <TObject.h>
15
16#include "AliMpVPadIterator.h"
17#include "AliMpArea.h"
18#include "AliMpPad.h"
19
20class AliMpSectorSegmentation;
21
22class AliMpSectorAreaHPadIterator : public AliMpVPadIterator
23{
24 public:
25 AliMpSectorAreaHPadIterator(const AliMpSectorSegmentation* segmentation,
26 const AliMpArea& area);
27 AliMpSectorAreaHPadIterator(const AliMpSectorAreaHPadIterator& src);
28 AliMpSectorAreaHPadIterator();
29 virtual ~AliMpSectorAreaHPadIterator();
30
31 // operators
32 AliMpSectorAreaHPadIterator&
33 operator = (const AliMpSectorAreaHPadIterator& 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 Bool_t IsValid() const;
45 void MoveUp();
46
47 // private data members
48 const AliMpSectorSegmentation* fkSegmentation; // the sector segmentation
49 // over which we iterate
50 //const AliMpArea fkArea; // the area
51 // (const caused problem with CINT)
52 AliMpArea fkArea; // the area
53 AliMpPad fCurrentPad; // the current pad
54 Double_t fCurrentRowPosition; // the current row position
55
56 ClassDef(AliMpSectorAreaHPadIterator,1) // iterator over motif's pads
57};
58
59#endif // ALI_MP_SECTOR_AREA_H_PAD_ITERATOR_H