Make it independent from (loading the) mapping
[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 calib
10 /// \class AliMUON2DMapIterator
11 /// \brief Implementation of TIterator for 2D maps
12 /// 
13 //  Author Laurent Aphecetche
14
15 #ifndef ROOT_TExMap
16 #  include "TExMap.h"
17 #endif
18 #ifndef ROOT_TIterator
19 #  include "TIterator.h"
20 #endif
21
22 class AliMpExMap;
23
24 //_____________________________________________________________________________
25 class AliMUON2DMapIterator : public TIterator
26 {
27 public:
28   AliMUON2DMapIterator(const AliMpExMap& theMap);
29   AliMUON2DMapIterator(const AliMUON2DMapIterator& rhs);
30   AliMUON2DMapIterator& operator=(const AliMUON2DMapIterator& rhs);
31   TIterator& operator=(const TIterator& rhs);
32   
33   virtual ~AliMUON2DMapIterator();
34   
35   ///The returned object must not be deleted by the user.  
36   virtual TObject* Next();
37   
38   virtual void Reset(); 
39   
40   virtual const TCollection* GetCollection() const;
41   
42 private:
43   TObject* GetValue(TExMapIter& iter, Int_t& key) const;
44   AliMpExMap* GetMap(TExMapIter& iter, Int_t& key) const;
45   
46 private:
47   TExMapIter fIter; //!< first iterator
48   TExMapIter* fIter2; //!< second iterator
49   Int_t fCurrentI; //!< current index in direction i 
50   Int_t fCurrentJ; //!< current index in direction j
51
52   ClassDef(AliMUON2DMapIterator,0) // VDataIterator for 2D maps
53 };
54
55
56 #endif