1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
5 // $MpId: AliMpSlatPadIterator.h,v 1.4 2005/09/19 19:01:09 ivana Exp $
8 /// \class AliMpSlatPadIterator
9 /// \brief Iterator for slat pads.
11 /// Author: Laurent Aphecetche
13 #ifndef ALI_MP_SLAT_PAD_ITERATOR_H
14 #define ALI_MP_SLAT_PAD_ITERATOR_H
16 #include "AliMpVPadIterator.h"
22 class AliMpSlatPadIterator : public AliMpVPadIterator
25 AliMpSlatPadIterator();
26 // Area position must be relative to bottom-left of slat.
27 AliMpSlatPadIterator(const AliMpSlat* slat, const AliMpArea& area);
28 virtual ~AliMpSlatPadIterator();
32 Bool_t IsDone() const;
33 AliMpPad CurrentItem() const;
37 AliMpSlatPadIterator(const AliMpSlatPadIterator&);
38 AliMpSlatPadIterator& operator=(const AliMpSlatPadIterator&);
39 Bool_t Prepare(const AliMpArea& area);
40 AliMpArea Intersect(const AliMpArea& a, const AliMpArea& b) const;
43 const AliMpSlat* fkSlat;
44 std::vector<AliMpVPadIterator*> fDelegates;
45 AliMpVPadIterator* fCurrentDelegate;
46 UInt_t fCurrentDelegateIndex;
48 ClassDef(AliMpSlatPadIterator,1) // Pad iterator for St 345 Slats