]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpSlatPadIterator.h
Changing __sparc to __sun to compile on solarisCC5
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpSlatPadIterator.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: AliMpSlatPadIterator.h,v 1.4 2005/09/19 19:01:09 ivana Exp $
6
7 /// \ingroup slat
8 /// \class AliMpSlatPadIterator
9 /// \brief Iterator for slat pads.
10 /// 
11 /// Author: Laurent Aphecetche
12
13 #ifndef ALI_MP_SLAT_PAD_ITERATOR_H
14 #define ALI_MP_SLAT_PAD_ITERATOR_H
15
16 #include "AliMpVPadIterator.h"
17 #include <vector>
18
19 class AliMpSlat;
20 class AliMpArea;
21
22 class AliMpSlatPadIterator : public AliMpVPadIterator
23 {
24  public:
25   AliMpSlatPadIterator(); 
26   AliMpSlatPadIterator(const AliMpSlat* slat, const AliMpArea& area);
27   virtual ~AliMpSlatPadIterator();
28
29   void First();
30   void Next();
31   Bool_t IsDone() const;
32   AliMpPad CurrentItem() const;
33   void Invalidate();
34  
35  private:
36   AliMpSlatPadIterator(const AliMpSlatPadIterator&);
37         AliMpSlatPadIterator& operator=(const AliMpSlatPadIterator&);
38   Bool_t Prepare(const AliMpArea& area);
39   AliMpArea Intersect(const AliMpArea& a, const AliMpArea& b) const;
40
41  private:
42   const AliMpSlat* fkSlat;
43   std::vector<AliMpVPadIterator*> fDelegates;
44   AliMpVPadIterator* fCurrentDelegate;
45   UInt_t fCurrentDelegateIndex;
46
47   ClassDef(AliMpSlatPadIterator,1) // Pad iterator for St 345 Slats
48 };
49
50 #endif