]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpSlatZonePadIterator.h
Removing implementation of protected copy constructor &
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpSlatZonePadIterator.h
1 #ifndef ALI_MP_SLAT_ZONE_PAD_ITERATOR_H
2 #define ALI_MP_SLAT_ZONE_PAD_ITERATOR_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 // $Id$
8 // $MpId: AliMpSlatZonePadIterator.h,v 1.7 2006/05/24 13:58:24 ivana Exp $
9
10 /// \ingroup slat
11 /// \class AliMpSlatZonePadIterator
12 /// \brief Iterates over slat pads within a region of constant pad size.
13 ///
14 //  Author: Laurent Aphecetche
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   AliMpSlatZonePadIterator(const AliMpSlatZonePadIterator& right);
37   AliMpSlatZonePadIterator&  operator = (const AliMpSlatZonePadIterator& right);
38
39   Bool_t CropArea();
40   Bool_t GetNextPosition(Double_t& x, Double_t& y);
41   void SetPad(AliMpPad& pad, const TVector2& pos);
42
43  private:
44   const AliMpSlat*       fkSlat; //!< the slat we're iterating over
45   AliMpSlatSegmentation* fSlatSegmentation; //!< segmentation pointer
46   AliMpArea  fArea; //!< area we're iterating over
47   TVector2   fOffset; //!< current position (relative to bottom-left of area)
48   TVector2   fStep; //!< step sizes
49   AliMpPad   fCurrentPad; //!< current pad
50   Bool_t     fIsDone; //!< whether we've finished or not
51
52   static const Double_t fgkDmax; ///< maximum double
53   static const Double_t fgkEpsilon; ///< comparison precision 
54
55   ClassDef(AliMpSlatZonePadIterator,1) // Pad iterator for a zone of constant density, for St345.
56 };
57
58 #endif