]>
Commit | Line | Data |
---|---|---|
f246123b | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | ||
16 | // $Id$ | |
17 | ||
18 | #include "AliMUON2DMapIterator.h" | |
f246123b | 19 | |
3d1463c8 | 20 | //----------------------------------------------------------------------------- |
f246123b | 21 | /// \class AliMUON2DMapIterator |
cb6388d5 | 22 | /// Implementation of TIterator for 2Dmaps |
f246123b | 23 | /// |
24 | /// A simple implementation of VDataIterator for 2Dmaps. | |
25 | /// | |
26 | /// \author Laurent Aphecetche | |
3d1463c8 | 27 | //----------------------------------------------------------------------------- |
f246123b | 28 | |
cb6388d5 | 29 | #include "AliMpExMap.h" |
630711ed | 30 | #include "AliMpExMapIterator.h" |
31 | #include "AliLog.h" | |
cb6388d5 | 32 | |
f246123b | 33 | /// \cond CLASSIMP |
34 | ClassImp(AliMUON2DMapIterator) | |
35 | /// \endcond | |
36 | ||
37 | //_____________________________________________________________________________ | |
7332f213 | 38 | AliMUON2DMapIterator::AliMUON2DMapIterator(const AliMpExMap& theMap) |
39 | : TIterator(), | |
40 | fkMap(&theMap), | |
630711ed | 41 | fIter1(theMap.CreateIterator()), |
42 | fIter2(NextIterator()) | |
f246123b | 43 | { |
c4ee792d | 44 | /// default ctor |
f246123b | 45 | Reset(); |
46 | } | |
47 | ||
cb6388d5 | 48 | //_____________________________________________________________________________ |
6805f5be | 49 | AliMUON2DMapIterator& |
50 | AliMUON2DMapIterator::operator=(const TIterator& /*rhs*/) | |
cb6388d5 | 51 | { |
6805f5be | 52 | // overriden operator= (imposed by Root's definition of TIterator::operator= ?) |
cb6388d5 | 53 | |
6805f5be | 54 | AliFatalGeneral("operator=(TIterator&)",""); // as in copy ctor |
cb6388d5 | 55 | return *this; |
56 | } | |
57 | ||
f246123b | 58 | //_____________________________________________________________________________ |
59 | AliMUON2DMapIterator::~AliMUON2DMapIterator() | |
60 | { | |
c4ee792d | 61 | /// dtor |
f246123b | 62 | } |
63 | ||
cb6388d5 | 64 | //_____________________________________________________________________________ |
65 | const TCollection* | |
66 | AliMUON2DMapIterator::GetCollection() const | |
67 | { | |
68 | /// Return 0 as we're not really dealing with a Root TCollection... | |
69 | return 0x0; | |
70 | } | |
71 | ||
f246123b | 72 | //_____________________________________________________________________________ |
630711ed | 73 | TIterator* |
74 | AliMUON2DMapIterator::NextIterator() | |
f246123b | 75 | { |
630711ed | 76 | /// Get next map (from fIter1) and create an iterator to it |
77 | ||
78 | AliMpExMap* m = static_cast<AliMpExMap*>(fIter1->Next()); | |
79 | ||
80 | if (!m) return 0x0; | |
81 | ||
82 | return m->CreateIterator(); | |
f246123b | 83 | } |
84 | ||
85 | //_____________________________________________________________________________ | |
86 | TObject* | |
87 | AliMUON2DMapIterator::Next() | |
88 | { | |
47a48067 | 89 | /// return next object |
90 | ||
630711ed | 91 | if (!fIter2) return 0x0; |
92 | ||
93 | TObject* o = fIter2->Next(); | |
f246123b | 94 | |
630711ed | 95 | if (!o) |
47a48067 | 96 | { |
630711ed | 97 | fIter2 = NextIterator(); |
98 | return Next(); | |
cb6388d5 | 99 | } |
630711ed | 100 | |
101 | return o; | |
f246123b | 102 | } |
103 | ||
104 | //_____________________________________________________________________________ | |
105 | void | |
106 | AliMUON2DMapIterator::Reset() | |
107 | { | |
c4ee792d | 108 | /// rewind the iterator |
47a48067 | 109 | |
630711ed | 110 | delete fIter2; |
111 | fIter1->Reset(); | |
112 | fIter2 = NextIterator(); | |
f246123b | 113 | } |
47a48067 | 114 |