ROOT logo
#ifndef ALIMUON2DMAPITERATORBYI_H
#define ALIMUON2DMAPITERATORBYI_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice                               */

// $Id$

/// \ingroup core
/// \class AliMUON2DMapIteratorByI
/// \brief Implementation of TIterator for 2D maps
/// 
//  Author Laurent Aphecetche

#ifndef ROOT_TIterator
#  include "TIterator.h"
#endif

class AliMpExMap;
class AliMpExMapIterator;

//_____________________________________________________________________________
class AliMUON2DMapIteratorByI : public TIterator
{
public:
  AliMUON2DMapIteratorByI(const AliMpExMap& theMap, 
                          Int_t firstI, Int_t lastI);
  
  virtual ~AliMUON2DMapIteratorByI();
  
  ///The returned object must not be deleted by the user.  
  virtual TObject* Next();
  
  virtual void Reset(); 

  virtual const TCollection* GetCollection() const;

private:
    AliMpExMapIterator* NextIterator();
  
private:
  /// Not implemented
  AliMUON2DMapIteratorByI(const AliMUON2DMapIteratorByI& rhs);
  /// Not implemented
  AliMUON2DMapIteratorByI& operator=(const AliMUON2DMapIteratorByI& rhs);
  /// Overriden TIterator virtual operator=
  AliMUON2DMapIteratorByI& operator=(const TIterator& rhs);

  const AliMpExMap* fkMap; ///< Top map we iterate upon
  AliMpExMapIterator* fIter1; ///< first iterator
  TIterator* fIter2; ///< second iterator
  Int_t fFirstI; ///< start of range for I
  Int_t fLastI; ///< end of range for I
  Int_t fCurrentI; ///< current value of I 
  
  ClassDef(AliMUON2DMapIteratorByI,0) // VDataIterator for 2D maps
};


#endif
 AliMUON2DMapIteratorByI.h:1
 AliMUON2DMapIteratorByI.h:2
 AliMUON2DMapIteratorByI.h:3
 AliMUON2DMapIteratorByI.h:4
 AliMUON2DMapIteratorByI.h:5
 AliMUON2DMapIteratorByI.h:6
 AliMUON2DMapIteratorByI.h:7
 AliMUON2DMapIteratorByI.h:8
 AliMUON2DMapIteratorByI.h:9
 AliMUON2DMapIteratorByI.h:10
 AliMUON2DMapIteratorByI.h:11
 AliMUON2DMapIteratorByI.h:12
 AliMUON2DMapIteratorByI.h:13
 AliMUON2DMapIteratorByI.h:14
 AliMUON2DMapIteratorByI.h:15
 AliMUON2DMapIteratorByI.h:16
 AliMUON2DMapIteratorByI.h:17
 AliMUON2DMapIteratorByI.h:18
 AliMUON2DMapIteratorByI.h:19
 AliMUON2DMapIteratorByI.h:20
 AliMUON2DMapIteratorByI.h:21
 AliMUON2DMapIteratorByI.h:22
 AliMUON2DMapIteratorByI.h:23
 AliMUON2DMapIteratorByI.h:24
 AliMUON2DMapIteratorByI.h:25
 AliMUON2DMapIteratorByI.h:26
 AliMUON2DMapIteratorByI.h:27
 AliMUON2DMapIteratorByI.h:28
 AliMUON2DMapIteratorByI.h:29
 AliMUON2DMapIteratorByI.h:30
 AliMUON2DMapIteratorByI.h:31
 AliMUON2DMapIteratorByI.h:32
 AliMUON2DMapIteratorByI.h:33
 AliMUON2DMapIteratorByI.h:34
 AliMUON2DMapIteratorByI.h:35
 AliMUON2DMapIteratorByI.h:36
 AliMUON2DMapIteratorByI.h:37
 AliMUON2DMapIteratorByI.h:38
 AliMUON2DMapIteratorByI.h:39
 AliMUON2DMapIteratorByI.h:40
 AliMUON2DMapIteratorByI.h:41
 AliMUON2DMapIteratorByI.h:42
 AliMUON2DMapIteratorByI.h:43
 AliMUON2DMapIteratorByI.h:44
 AliMUON2DMapIteratorByI.h:45
 AliMUON2DMapIteratorByI.h:46
 AliMUON2DMapIteratorByI.h:47
 AliMUON2DMapIteratorByI.h:48
 AliMUON2DMapIteratorByI.h:49
 AliMUON2DMapIteratorByI.h:50
 AliMUON2DMapIteratorByI.h:51
 AliMUON2DMapIteratorByI.h:52
 AliMUON2DMapIteratorByI.h:53
 AliMUON2DMapIteratorByI.h:54
 AliMUON2DMapIteratorByI.h:55
 AliMUON2DMapIteratorByI.h:56
 AliMUON2DMapIteratorByI.h:57
 AliMUON2DMapIteratorByI.h:58
 AliMUON2DMapIteratorByI.h:59
 AliMUON2DMapIteratorByI.h:60