618ea77a |
1 | #ifndef ALI_MP_PCB_PAD_ITERATOR_H |
2 | #define ALI_MP_PCB_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$ |
9 | |
10 | /// \ingroup slat |
11 | /// \class AliMpPCBPadIterator |
12 | /// \brief Iterates over slat pads within a region of constant pad size. |
13 | /// |
14 | // Author: Laurent Aphecetche |
15 | |
16 | #include "AliMpVPadIterator.h" |
17 | |
18 | class AliMpArea; |
19 | class AliMpSlat; |
20 | class AliMpSlatSegmentation; |
21 | |
22 | class AliMpPCBPadIterator : public AliMpVPadIterator |
23 | { |
24 | public: |
25 | AliMpPCBPadIterator(const AliMpSlat* slat, const AliMpArea& area); |
26 | virtual ~AliMpPCBPadIterator(); |
27 | |
28 | void First(); |
29 | void Next(); |
30 | Bool_t IsDone() const; |
31 | AliMpPad CurrentItem() const; |
32 | void Invalidate(); |
33 | |
34 | void Print(Option_t* opt="") const; |
35 | |
36 | private: |
71a2d3aa |
37 | /// Not implemented |
38 | AliMpPCBPadIterator(const AliMpPCBPadIterator& right); |
39 | /// Not implemented |
618ea77a |
40 | AliMpPCBPadIterator& operator = (const AliMpPCBPadIterator& right); |
41 | |
42 | Bool_t GetNextPosition(Int_t& ix, Int_t& iy); |
43 | Bool_t CropArea(const AliMpArea& area); |
168e9c4d |
44 | void SetPad(AliMpPad& pad, Int_t ix, Int_t iy); |
618ea77a |
45 | |
46 | private: |
71a2d3aa |
47 | const AliMpSlat* fkSlat; //!< the slat we're iterating over |
618ea77a |
48 | AliMpSlatSegmentation* fSlatSegmentation; //!< segmentation pointer |
168e9c4d |
49 | MpPair_t fMinIndices; //!< indices of bottom left of region to iterate over |
50 | MpPair_t fMaxIndices; //!< indices of top right of region to iterate over |
51 | MpPair_t fOffset; //!< current position |
618ea77a |
52 | AliMpPad fCurrentPad; //!< current pad |
53 | Bool_t fIsDone; //!< whether we've finished or not |
54 | |
168e9c4d |
55 | ClassDef(AliMpPCBPadIterator,0) // Pad iterator for a zone of constant density, for St345. |
618ea77a |
56 | }; |
57 | |
58 | #endif |