Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[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   
27   virtual ~AliMUON2DMapIterator();
28   
29   ///The returned object must not be deleted by the user.  
30   virtual TObject* Next();
31   
32   virtual void Reset(); 
33   
34   virtual const TCollection* GetCollection() const;
35   
36 private:
37   TIterator* NextIterator();
38   
39 private:
40   /// Not implemented
41   AliMUON2DMapIterator(const AliMUON2DMapIterator& rhs);
42   /// Not implemented
43   AliMUON2DMapIterator& operator=(const AliMUON2DMapIterator& rhs);
44   /// Overriden TIterator virtual operator=
45   AliMUON2DMapIterator& operator=(const TIterator& rhs);
46
47   const AliMpExMap* fkMap; ///< Top map we iterate upon
48   TIterator* fIter1; ///< first iterator
49   TIterator* fIter2; ///< second iterator
50   
51   ClassDef(AliMUON2DMapIterator,0) // TIterator for AliMUON2D maps
52 };
53
54
55 #endif