]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/mapping/AliMpMotifPositionPadIterator.cxx
1. Adding the new histograms TPC z vertex correlation in order
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpMotifPositionPadIterator.cxx
index c9cb635d490e370fcd42a71e15906cb4fd79c474..0e7291427a1b5821b6ca32b854b8cf901ada56eb 100755 (executable)
@@ -1,26 +1,47 @@
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notice   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
 // $Id$
+// $MpId: AliMpMotifPositionPadIterator.cxx,v 1.6 2006/05/24 13:58:41 ivana Exp $
 // Category: motif
-//
+
+//-----------------------------------------------------------------------------
 // Class AliMpMotifPositionPadIterator
 // -----------------------------------
 // Class, which defines an iterator over the pads of a given motif type
-//
+// Included in AliRoot: 2003/05/02
 // Authors: David Guez, Ivana Hrivnacova; IPN Orsay
+//-----------------------------------------------------------------------------
 
 #include "AliMpMotifPositionPadIterator.h"
 #include "AliMpMotifPosition.h"
 #include "AliMpMotifType.h"
 #include "AliMpConnection.h"
+#include "AliMpEncodePair.h"
 
+/// \cond CLASSIMP
 ClassImp(AliMpMotifPositionPadIterator)
+/// \endcond
 
 //______________________________________________________________________________
 AliMpMotifPositionPadIterator::AliMpMotifPositionPadIterator():
     AliMpVPadIterator(),
-    fMotifPos(0),
+    fkMotifPos(0),
     fIterator()
 {
-// default constructor, set the current position to "invalid"
+/// Default constructor, set the current position to "invalid"
 }
 
 //______________________________________________________________________________
@@ -28,27 +49,27 @@ AliMpMotifPositionPadIterator::AliMpMotifPositionPadIterator():
 AliMpMotifPositionPadIterator::AliMpMotifPositionPadIterator(
                                     const AliMpMotifPosition* motifPos)
   : AliMpVPadIterator(),
-    fMotifPos(motifPos),
+    fkMotifPos(motifPos),
     fIterator(motifPos->GetMotif()->GetMotifType())
 {
-// normal constructor, let *this to invalid position
+/// Standard constructor, let *this to invalid position
 }
 
 //______________________________________________________________________________
 AliMpMotifPositionPadIterator::AliMpMotifPositionPadIterator(
                                     const AliMpMotifPositionPadIterator& right)
   : AliMpVPadIterator(right),
-    fMotifPos(right.fMotifPos),
+    fkMotifPos(right.fkMotifPos),
     fIterator(right.fIterator)
     
 {
-// copy constructor
+/// Copy constructor
 }
 
 //______________________________________________________________________________
 AliMpMotifPositionPadIterator::~AliMpMotifPositionPadIterator()
 {
-// destructor
+/// Destructor
 }
 
 // operators
@@ -57,17 +78,18 @@ AliMpMotifPositionPadIterator::~AliMpMotifPositionPadIterator()
 AliMpMotifPositionPadIterator& 
 AliMpMotifPositionPadIterator::operator = (const AliMpMotifPositionPadIterator& right)
 {
-// assignement operator
+/// Assignment operator
+
 // if the right hand iterator isn't of good type
 // the current operator is invalidated
 
-  // check assignement to self
+  // check assignment to self
   if (this == &right) return *this;
 
-  // base class assignement
+  // base class assignment
   AliMpVPadIterator::operator=(right);
 
-  fMotifPos = right.fMotifPos;
+  fkMotifPos = right.fkMotifPos;
   fIterator = right.fIterator;
 
   return *this;
@@ -79,20 +101,22 @@ AliMpMotifPositionPadIterator::operator = (const AliMpMotifPositionPadIterator&
 //______________________________________________________________________________
 Bool_t AliMpMotifPositionPadIterator::IsValid() const
 {
-// Is the iterator in a valid position?
+/// Is the iterator in a valid position?
 
-    return (fMotifPos!=0) && (!fIterator.IsDone());
+    return (fkMotifPos!=0) && (!fIterator.IsDone());
 } 
 
-//public methods
+//
+// public methods
+//
 
 //______________________________________________________________________________
 void AliMpMotifPositionPadIterator::First()
 {
-// Reset the iterator, so that it points to the first available
-// pad in the motif type
+/// Reset the iterator, so that it points to the first available
+/// pad in the motif type
 
-    if (!fMotifPos) {
+    if (!fkMotifPos) {
         Invalidate();
         return ;
     }
@@ -104,40 +128,52 @@ void AliMpMotifPositionPadIterator::First()
 //______________________________________________________________________________
 void AliMpMotifPositionPadIterator::Next()
 {
-// Move the iterator to the next valid pad.
+/// Move the iterator to the next valid pad.
+
   fIterator.Next();
 }
 
 //______________________________________________________________________________
 Bool_t AliMpMotifPositionPadIterator::IsDone() const
 {
-// 
+/// Is the iterator in the end? 
+
   return !IsValid();
 }
 
 //______________________________________________________________________________
 AliMpPad AliMpMotifPositionPadIterator::CurrentItem() const 
 {
-// Returns current pad.
+/// Return current pad.
 
-    if (!fMotifPos)
+    if (!fkMotifPos)
         return AliMpPad::Invalid();
     else {
-      AliMpIntPair ind = fIterator.CurrentItem().GetIndices();
-      AliMpMotifType* mt = fMotifPos->GetMotif()->GetMotifType();
+      MpPair_t ind = fIterator.CurrentItem().GetIndices();
+      AliMpMotifType* mt = fkMotifPos->GetMotif()->GetMotifType();
       AliMpConnection* connect = 
         mt->FindConnectionByLocalIndices(ind);
-      return AliMpPad(AliMpIntPair(fMotifPos->GetID(),connect->GetGassiNum()),
-                  fMotifPos->GlobalIndices(ind),
-                  fMotifPos->Position()+fMotifPos->GetMotif()->PadPositionLocal(ind),
-                  fMotifPos->GetMotif()->GetPadDimensions(ind));
+
+      Double_t posx, posy;
+      fkMotifPos->GetMotif()->PadPositionLocal(ind, posx, posy);
+      posx += fkMotifPos->GetPositionX();
+      posy += fkMotifPos->GetPositionY();
+        
+      Double_t dx, dy;
+      fkMotifPos->GetMotif()->GetPadDimensionsByIndices(ind, dx, dy);           
+
+      return AliMpPad(
+                  fkMotifPos->GetID(),connect->GetManuChannel(), 
+                  fkMotifPos->GlobalIndices(ind),
+                  posx, posy, dx, dy);
     }
 }
 
 //______________________________________________________________________________
 void AliMpMotifPositionPadIterator::Invalidate()
 {
-// Let the iterator points to the invalid position
+/// Let the iterator point to the invalid position
+
   fIterator.Invalidate();
 }