]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpSlatZonePadIterator.h
- Reordering includes and/or
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpSlatZonePadIterator.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: AliMpSlatZonePadIterator.h,v 1.3 2005/08/26 15:42:32 ivana Exp $
6
7 /// \ingroup slat
8 /// \class AliMpSlatZonePadIterator
9 /// \brief To be added ...
10 /// 
11 /// Author: Laurent Aphecetche
12
13 #ifndef ALI_MP_SLAT_ZONE_PAD_ITERATOR_H
14 #define ALI_MP_SLAT_ZONE_PAD_ITERATOR_H
15
16 #include "AliMpVPadIterator.h"
17 #include "AliMpArea.h"
18 #include "TVector2.h"
19
20 class AliMpSlat;
21 class AliMpSlatSegmentation;
22
23 class AliMpSlatZonePadIterator : public AliMpVPadIterator
24 {
25  public:
26   AliMpSlatZonePadIterator(const AliMpSlat* slat, const AliMpArea& area);
27   virtual ~AliMpSlatZonePadIterator();
28
29   void First();
30   void Next();
31   Bool_t IsDone() const;
32   AliMpPad CurrentItem() const;
33   void Invalidate();
34  
35  private:
36   Bool_t CropArea();
37   Bool_t GetNextPosition(Double_t& x, Double_t& y);
38   void SetPad(AliMpPad& pad, const TVector2& pos);
39
40  private:
41   const AliMpSlat*       fkSlat;
42   AliMpSlatSegmentation* fSlatSegmentation;
43   AliMpArea  fArea;
44   TVector2   fOffset;
45   TVector2   fStep;
46   AliMpPad   fCurrentPad;
47   Bool_t     fIsDone;
48
49   ClassDef(AliMpSlatZonePadIterator,1) // Pad iterator for a zone of constant density, for St345.
50 };
51
52 #endif