1 #ifndef ALI_MP_PCB_PAD_ITERATOR_H
2 #define ALI_MP_PCB_PAD_ITERATOR_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
11 /// \class AliMpPCBPadIterator
12 /// \brief Iterates over slat pads within a region of constant pad size.
14 // Author: Laurent Aphecetche
16 #include "AliMpVPadIterator.h"
20 class AliMpSlatSegmentation;
22 class AliMpPCBPadIterator : public AliMpVPadIterator
25 AliMpPCBPadIterator(const AliMpSlat* slat, const AliMpArea& area);
26 virtual ~AliMpPCBPadIterator();
30 Bool_t IsDone() const;
31 AliMpPad CurrentItem() const;
34 void Print(Option_t* opt="") const;
38 AliMpPCBPadIterator(const AliMpPCBPadIterator& right);
40 AliMpPCBPadIterator& operator = (const AliMpPCBPadIterator& right);
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);
47 const AliMpSlat* fkSlat; //!< the slat we're iterating over
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
55 ClassDef(AliMpPCBPadIterator,2) // Pad iterator for a zone of constant density, for St345.