]>
Commit | Line | Data |
---|---|---|
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); | |
44 | void SetPad(AliMpPad& pad, const AliMpIntPair& indices); | |
45 | ||
46 | private: | |
71a2d3aa | 47 | const AliMpSlat* fkSlat; //!< the slat we're iterating over |
618ea77a | 48 | AliMpSlatSegmentation* fSlatSegmentation; //!< segmentation pointer |
49 | AliMpIntPair fMinIndices; //!< indices of bottom left of region to iterate over | |
50 | AliMpIntPair fMaxIndices; //!< indices of top right of region to iterate over | |
51 | AliMpIntPair fOffset; //!< current position | |
52 | AliMpPad fCurrentPad; //!< current pad | |
53 | Bool_t fIsDone; //!< whether we've finished or not | |
54 | ||
55 | ClassDef(AliMpPCBPadIterator,2) // Pad iterator for a zone of constant density, for St345. | |
56 | }; | |
57 | ||
58 | #endif |