]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpTransformPadIterator.cxx
New MUON Data container and MUON loader
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpTransformPadIterator.cxx
1 // $Id$
2 // Category: basic
3 //
4 // Class AliMpTransformPadIterator
5 // -------------------------------
6 // Composite of iterator and transformer.
7 // Transforms returned pad. 
8 //
9 // Authors: David Guez, Ivana Hrivnacova; IPN Orsay
10
11 #include "AliMpTransformPadIterator.h"
12
13 ClassImp(AliMpTransformPadIterator)
14
15 //______________________________________________________________________________
16 AliMpTransformPadIterator::AliMpTransformPadIterator(AliMpVPadIterator* it, 
17                                          const AliMpTransformer* transformer)
18   : AliMpVPadIterator(),
19     fIterator(it),
20     fkTransformer(transformer)
21 {
22 // Standard constructor
23 }
24
25 //______________________________________________________________________________
26 AliMpTransformPadIterator::AliMpTransformPadIterator(
27                                          const AliMpTransformPadIterator& right)
28   : AliMpVPadIterator(right)
29 {
30 // Copy constructor
31   
32   *this = right; 
33 }
34
35 //______________________________________________________________________________
36 AliMpTransformPadIterator::AliMpTransformPadIterator()
37   : AliMpVPadIterator(),
38     fIterator(0),
39     fkTransformer(0)
40 {
41 // Default constructor
42 }
43
44 //______________________________________________________________________________
45 AliMpTransformPadIterator::~AliMpTransformPadIterator()
46 {
47 // Destructor
48 // Not owner of its components, does not delete them.
49 }
50
51 //
52 // operators
53 //
54
55 //______________________________________________________________________________
56 AliMpTransformPadIterator& 
57 AliMpTransformPadIterator::operator = (const AliMpTransformPadIterator& right)
58 {
59 // assignement operator
60
61   // check assignement to self
62   if (this == &right) return *this;
63
64   // base class assignement
65   TObject::operator=(right);
66   
67   fIterator = right.fIterator;
68   fkTransformer = right.fkTransformer;
69
70   return *this;
71
72
73 // 
74 // public methods 
75 //
76
77 //______________________________________________________________________________
78 void AliMpTransformPadIterator::First()
79 {
80 // Reset the iterator, so that it points to the first available
81 // pad in the area
82
83   fIterator->First();
84 }  
85
86 //______________________________________________________________________________
87 void AliMpTransformPadIterator::Next()
88 {
89 // Move the iterator to the next valid pad.
90 // ---
91  
92   fIterator->Next();
93 }  
94
95 //______________________________________________________________________________
96 Bool_t AliMpTransformPadIterator::IsDone() const
97 {
98 // 
99
100   return fIterator->IsDone();
101 }  
102
103
104 //______________________________________________________________________________
105 AliMpPad AliMpTransformPadIterator::CurrentItem() const
106 {
107 // Returns current pad with applied transformation.
108 // ---
109
110   return fkTransformer->Transform(fIterator->CurrentItem());
111 }  
112
113 //______________________________________________________________________________
114 void AliMpTransformPadIterator::Invalidate()
115 {
116 // Set iterator to invalid state.
117 // ---
118
119   fIterator->Invalidate();
120 }  
121