]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUON2DMapIterator.h
AliMUONRecoParam:
[u/mrichter/AliRoot.git] / MUON / AliMUON2DMapIterator.h
1 #ifndef ALIMUON2DMAPITERATOR_H
2 #define ALIMUON2DMAPITERATOR_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
9 /// \ingroup core
10 /// \class AliMUON2DMapIterator
11 /// \brief Implementation of TIterator for 2D maps
12 /// 
13 //  Author Laurent Aphecetche
14
15 #ifndef ROOT_TIterator
16 #  include "TIterator.h"
17 #endif
18
19 class AliMpExMap;
20
21 //_____________________________________________________________________________
22 class AliMUON2DMapIterator : public TIterator
23 {
24 public:
25   AliMUON2DMapIterator(const AliMpExMap& theMap);
26   AliMUON2DMapIterator(const AliMUON2DMapIterator& rhs);
27   AliMUON2DMapIterator& operator=(const AliMUON2DMapIterator& rhs);
28   TIterator& operator=(const TIterator& rhs);
29   
30   virtual ~AliMUON2DMapIterator();
31   
32   ///The returned object must not be deleted by the user.  
33   virtual TObject* Next();
34   
35   virtual void Reset(); 
36   
37   virtual const TCollection* GetCollection() const;
38   
39 private:
40     
41   AliMpExMap* Map(Int_t i) const;
42   
43 private:
44   const AliMpExMap* fkMap; ///< Top map we iterate upon
45   AliMpExMap* fCurrentMap; ///< Current map (inside top map) we are iterating upon
46   Int_t fI;                ///< Map(fI) is fCurrentMap  
47   Int_t fJ;                ///< Current position in fCurrentMap
48   
49   ClassDef(AliMUON2DMapIterator,0) // VDataIterator for 2D maps
50 };
51
52
53 #endif