Fixing a backward compatibility issue
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpPCBPadIterator.h
CommitLineData
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
18class AliMpArea;
19class AliMpSlat;
20class AliMpSlatSegmentation;
21
22class AliMpPCBPadIterator : public AliMpVPadIterator
23{
24public:
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
36private:
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
46private:
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