]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - MUON/mapping/AliMpSectorPadIterator.h
Code for MUON Station1 (I.Hrivnacova)
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpSectorPadIterator.h
... / ...
CommitLineData
1// $Id$
2// Category: sector
3//
4// Class AliMpSectorPadIterator
5// ----------------------------
6// Class, which defines an iterator over the pads of a sector
7//
8// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
9
10#ifndef M_SECTOR_PAD_ITERATOR_H
11#define M_SECTOR_PAD_ITERATOR_H
12
13#include <TObject.h>
14
15#include "AliMpMotifPositionPadIterator.h"
16
17class AliMpSector;
18class AliMpMotifPosition;
19
20
21class AliMpSectorPadIterator : public AliMpVPadIterator
22{
23 public:
24 AliMpSectorPadIterator();
25 AliMpSectorPadIterator(const AliMpSector* const sector);
26 AliMpSectorPadIterator(const AliMpSectorPadIterator& src);
27 virtual ~AliMpSectorPadIterator();
28
29 // operators
30 AliMpSectorPadIterator& operator = (const AliMpSectorPadIterator& right);
31
32 // methods
33 virtual void First();
34 virtual void Next();
35 virtual Bool_t IsDone() const;
36 virtual AliMpPad CurrentItem() const;
37 virtual void Invalidate();
38
39 private:
40 // private methods
41 AliMpMotifPosition* ResetToCurrentMotifPosition();
42 Bool_t IsValid() const;
43
44 // private data members
45 const AliMpSector* fkSector; // the sector over which to iterate
46 Int_t fCurrentRow; // the current row number
47 Int_t fCurrentSeg; // the current Row Segment number in fCurrentRow
48 Int_t fCurrentMotif; // the current motif number in fCurrentSeg
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 // M_SECTOR_PAD_ITERATOR_H