]>
Commit | Line | Data |
---|---|---|
85fec35d | 1 | #ifndef ALI_MP_SLAT_ZONE_PAD_ITERATOR_H |
2 | #define ALI_MP_SLAT_ZONE_PAD_ITERATOR_H | |
3 | ||
dee1d5f1 | 4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | // $Id$ | |
13985652 | 8 | // $MpId: AliMpSlatZonePadIterator.h,v 1.7 2006/05/24 13:58:24 ivana Exp $ |
dee1d5f1 | 9 | |
10 | /// \ingroup slat | |
11 | /// \class AliMpSlatZonePadIterator | |
85fec35d | 12 | /// \brief Iterates over slat pads within a region of constant pad size. |
13985652 | 13 | /// |
14 | // Author: Laurent Aphecetche | |
dee1d5f1 | 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 | ||
13e7956b | 35 | private: |
884a73f1 | 36 | AliMpSlatZonePadIterator(const AliMpSlatZonePadIterator& right); |
37 | AliMpSlatZonePadIterator& operator = (const AliMpSlatZonePadIterator& right); | |
13e7956b | 38 | |
dee1d5f1 | 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: | |
829425a5 | 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 | |
dee1d5f1 | 54 | |
55 | ClassDef(AliMpSlatZonePadIterator,1) // Pad iterator for a zone of constant density, for St345. | |
56 | }; | |
57 | ||
58 | #endif |