X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2Fmapping%2FAliMpMotifPositionPadIterator.cxx;h=0e7291427a1b5821b6ca32b854b8cf901ada56eb;hb=b1fea14f4c91213151537f91ffdd7189de82447b;hp=c9cb635d490e370fcd42a71e15906cb4fd79c474;hpb=5f91c9e8258ef2957fffa70b9de7d628bcd95b9f;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/mapping/AliMpMotifPositionPadIterator.cxx b/MUON/mapping/AliMpMotifPositionPadIterator.cxx index c9cb635d490..0e7291427a1 100755 --- a/MUON/mapping/AliMpMotifPositionPadIterator.cxx +++ b/MUON/mapping/AliMpMotifPositionPadIterator.cxx @@ -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(); }