]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/mapping/AliMpSlatPadIterator.h
Updates to AddTask macro from Chris
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpSlatPadIterator.h
CommitLineData
dee1d5f1 1/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
3
4// $Id$
13985652 5// $MpId: AliMpSlatPadIterator.h,v 1.8 2006/05/24 13:58:24 ivana Exp $
dee1d5f1 6
7/// \ingroup slat
8/// \class AliMpSlatPadIterator
9/// \brief Iterator for slat pads.
10///
13985652 11// Author: Laurent Aphecetche
dee1d5f1 12
13#ifndef ALI_MP_SLAT_PAD_ITERATOR_H
14#define ALI_MP_SLAT_PAD_ITERATOR_H
15
16#include "AliMpVPadIterator.h"
e37ad718 17#include "TObjArray.h"
dee1d5f1 18
19class AliMpSlat;
20class AliMpArea;
21
22class AliMpSlatPadIterator : public AliMpVPadIterator
23{
24 public:
25 AliMpSlatPadIterator();
1964cd2e 26 // Area position must be relative to bottom-left of slat.
dee1d5f1 27 AliMpSlatPadIterator(const AliMpSlat* slat, const AliMpArea& area);
28 virtual ~AliMpSlatPadIterator();
29
30 void First();
31 void Next();
32 Bool_t IsDone() const;
33 AliMpPad CurrentItem() const;
34 void Invalidate();
35
36 private:
71a2d3aa 37 /// Not implemented
dee1d5f1 38 AliMpSlatPadIterator(const AliMpSlatPadIterator&);
71a2d3aa 39 /// Not implemented
40 AliMpSlatPadIterator& operator=(const AliMpSlatPadIterator&);
41
dee1d5f1 42 Bool_t Prepare(const AliMpArea& area);
43 AliMpArea Intersect(const AliMpArea& a, const AliMpArea& b) const;
44
45 private:
829425a5 46 const AliMpSlat* fkSlat; ///< pointer to the slat being iterated over
e37ad718 47 TObjArray fDelegates; ///< iterators we do use (array of AliMpVPadIterator*)
829425a5 48 AliMpVPadIterator* fCurrentDelegate; ///< current iterator
e37ad718 49 Int_t fCurrentDelegateIndex; ///< current iterator index
dee1d5f1 50
e37ad718 51 ClassDef(AliMpSlatPadIterator,2) // Pad iterator for St 345 Slats
dee1d5f1 52};
53
54#endif