Line data Source code
1 : #ifndef ALIMUON2DMAPITERATORBYI_H
2 : #define ALIMUON2DMAPITERATORBYI_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 AliMUON2DMapIteratorByI
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 : class AliMpExMapIterator;
21 :
22 : //_____________________________________________________________________________
23 : class AliMUON2DMapIteratorByI : public TIterator
24 : {
25 : public:
26 : AliMUON2DMapIteratorByI(const AliMpExMap& theMap,
27 : Int_t firstI, Int_t lastI);
28 :
29 : virtual ~AliMUON2DMapIteratorByI();
30 :
31 : ///The returned object must not be deleted by the user.
32 : virtual TObject* Next();
33 :
34 : virtual void Reset();
35 :
36 : virtual const TCollection* GetCollection() const;
37 :
38 : private:
39 : AliMpExMapIterator* NextIterator();
40 :
41 : private:
42 : /// Not implemented
43 : AliMUON2DMapIteratorByI(const AliMUON2DMapIteratorByI& rhs);
44 : /// Not implemented
45 : AliMUON2DMapIteratorByI& operator=(const AliMUON2DMapIteratorByI& rhs);
46 : /// Overriden TIterator virtual operator=
47 : AliMUON2DMapIteratorByI& operator=(const TIterator& rhs);
48 :
49 : const AliMpExMap* fkMap; ///< Top map we iterate upon
50 : AliMpExMapIterator* fIter1; ///< first iterator
51 : TIterator* fIter2; ///< second iterator
52 : Int_t fFirstI; ///< start of range for I
53 : Int_t fLastI; ///< end of range for I
54 : Int_t fCurrentI; ///< current value of I
55 :
56 18 : ClassDef(AliMUON2DMapIteratorByI,0) // VDataIterator for 2D maps
57 : };
58 :
59 :
60 : #endif
|