]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - MUON/AliMUON2DMapIterator.cxx
improve cluster res. calculation (fit) + add pT and DE res.
[u/mrichter/AliRoot.git] / MUON / AliMUON2DMapIterator.cxx
... / ...
CommitLineData
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"
19
20//-----------------------------------------------------------------------------
21/// \class AliMUON2DMapIterator
22/// Implementation of TIterator for 2Dmaps
23///
24/// A simple implementation of VDataIterator for 2Dmaps.
25///
26/// \author Laurent Aphecetche
27//-----------------------------------------------------------------------------
28
29#include "AliMpExMap.h"
30#include "AliMpExMapIterator.h"
31#include "AliLog.h"
32
33/// \cond CLASSIMP
34ClassImp(AliMUON2DMapIterator)
35/// \endcond
36
37//_____________________________________________________________________________
38AliMUON2DMapIterator::AliMUON2DMapIterator(const AliMpExMap& theMap)
39: TIterator(),
40fkMap(&theMap),
41fIter1(theMap.CreateIterator()),
42fIter2(NextIterator())
43{
44 /// default ctor
45 Reset();
46}
47
48//_____________________________________________________________________________
49AliMUON2DMapIterator&
50AliMUON2DMapIterator::operator=(const TIterator& /*rhs*/)
51{
52 // overriden operator= (imposed by Root's definition of TIterator::operator= ?)
53
54 AliFatalGeneral("operator=(TIterator&)",""); // as in copy ctor
55 return *this;
56}
57
58//_____________________________________________________________________________
59AliMUON2DMapIterator::~AliMUON2DMapIterator()
60{
61 /// dtor
62 delete fIter1;
63 delete fIter2;
64}
65
66//_____________________________________________________________________________
67const TCollection*
68AliMUON2DMapIterator::GetCollection() const
69{
70 /// Return 0 as we're not really dealing with a Root TCollection...
71 return 0x0;
72}
73
74//_____________________________________________________________________________
75TIterator*
76AliMUON2DMapIterator::NextIterator()
77{
78 /// Get next map (from fIter1) and create an iterator to it
79
80 AliMpExMap* m = static_cast<AliMpExMap*>(fIter1->Next());
81
82 if (!m) return 0x0;
83
84 return m->CreateIterator();
85}
86
87//_____________________________________________________________________________
88TObject*
89AliMUON2DMapIterator::Next()
90{
91 /// return next object
92
93 if (!fIter2) return 0x0;
94
95 TObject* o = fIter2->Next();
96
97 if (!o)
98 {
99 delete fIter2;
100 fIter2 = NextIterator();
101 return Next();
102 }
103
104 return o;
105}
106
107//_____________________________________________________________________________
108void
109AliMUON2DMapIterator::Reset()
110{
111 /// rewind the iterator
112
113 delete fIter2;
114 fIter1->Reset();
115 fIter2 = NextIterator();
116}
117