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