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.8 2006/05/24 13:58:24 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"
17 #include "TObjArray.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;
38 AliMpSlatPadIterator(const AliMpSlatPadIterator&);
40 AliMpSlatPadIterator& operator=(const AliMpSlatPadIterator&);
42 Bool_t Prepare(const AliMpArea& area);
43 AliMpArea Intersect(const AliMpArea& a, const AliMpArea& b) const;
46 const AliMpSlat* fkSlat; ///< pointer to the slat being iterated over
47 TObjArray fDelegates; ///< iterators we do use (array of AliMpVPadIterator*)
48 AliMpVPadIterator* fCurrentDelegate; ///< current iterator
49 Int_t fCurrentDelegateIndex; ///< current iterator index
51 ClassDef(AliMpSlatPadIterator,2) // Pad iterator for St 345 Slats