From 984a565f35b9fb91cda233cd8a7cd149fd35e663 Mon Sep 17 00:00:00 2001 From: ivana Date: Tue, 6 Feb 2007 15:28:39 +0000 Subject: [PATCH] - Adding new CreateIterator() and GetNeighbours() methods (Laurent) - Corrected PadByXDirection(),PadByYDirection() (Ivana) --- MUON/mapping/AliMpSectorSegmentation.cxx | 28 ++++++++++++++++++++---- MUON/mapping/AliMpSectorSegmentation.h | 8 ++++++- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/MUON/mapping/AliMpSectorSegmentation.cxx b/MUON/mapping/AliMpSectorSegmentation.cxx index 1aa48fb1448..f6f1731e32d 100755 --- a/MUON/mapping/AliMpSectorSegmentation.cxx +++ b/MUON/mapping/AliMpSectorSegmentation.cxx @@ -282,10 +282,11 @@ AliMpSectorSegmentation::PadByXDirection(const TVector2& startPosition, pad = PadByPosition(position, false); position += TVector2(stepX, 0.); } - while ( !pad.IsValid() && position.X() < maxX ); + while ( !pad.IsValid() && + position.X() - fkSector->GetMaxPadDimensions().X() < maxX ); // Invalidate pad if it is outside limits - if ((pad.Position().X() - pad.Dimensions().X()) > maxX) + if ( (pad.Position().X() - pad.Dimensions().X()) > maxX ) pad = AliMpPad::Invalid(); return pad; @@ -309,7 +310,8 @@ AliMpSectorSegmentation::PadByYDirection(const TVector2& startPosition, pad = PadByPosition(position, false); position += TVector2(0., stepY); } - while ( !pad.IsValid() && position.Y() < maxY ); + while ( !pad.IsValid() && + position.Y() - fkSector->GetMaxPadDimensions().Y()< maxY ); // Invalidate pad if it is outside limits if ((pad.Position().Y() - pad.Dimensions().Y()) > maxY) @@ -322,6 +324,14 @@ AliMpSectorSegmentation::PadByYDirection(const TVector2& startPosition, // public methods // +//______________________________________________________________________________ +AliMpVPadIterator* +AliMpSectorSegmentation::CreateIterator() const +{ + /// Currently uses default implementation + return AliMpVSegmentation::CreateIterator(); +} + //______________________________________________________________________________ AliMpVPadIterator* AliMpSectorSegmentation::CreateIterator(const AliMpArea& area) const @@ -340,12 +350,22 @@ AliMpSectorSegmentation::CreateIterator(const AliMpArea& area) const return 0; } +//______________________________________________________________________________ +Int_t +AliMpSectorSegmentation::GetNeighbours(const AliMpPad& pad, TObjArray& neighbours, + Bool_t includeSelf, + Bool_t includeVoid) const +{ + /// Uses default implementation + return AliMpVSegmentation::GetNeighbours(pad,neighbours,includeSelf,includeVoid); +} + //______________________________________________________________________________ AliMpVPadIterator* AliMpSectorSegmentation::CreateIterator(const AliMpPad& centerPad, Bool_t includeCenter) const { -/// Create the neighbours pad iterator. + /// Create the neighbours pad iterator. return new AliMpNeighboursPadIterator(this, centerPad, includeCenter); } diff --git a/MUON/mapping/AliMpSectorSegmentation.h b/MUON/mapping/AliMpSectorSegmentation.h index 46dbfb9d9e1..719b745ff96 100755 --- a/MUON/mapping/AliMpSectorSegmentation.h +++ b/MUON/mapping/AliMpSectorSegmentation.h @@ -56,9 +56,15 @@ class AliMpSectorSegmentation : public AliMpVSegmentation // factory methods virtual AliMpVPadIterator* CreateIterator(const AliMpArea& area) const; + virtual AliMpVPadIterator* CreateIterator() const; + AliMpVPadIterator* CreateIterator(const AliMpPad& centerPad, - Bool_t includeCenter=kFALSE) const; + Bool_t includeCenter=kFALSE) const; + Int_t GetNeighbours(const AliMpPad& pad, TObjArray& neighbours, + Bool_t includeSelf = kFALSE, + Bool_t includeVoid = kFALSE) const; + // methods virtual AliMpPad PadByLocation(const AliMpIntPair& location, Bool_t warning = kTRUE) const; -- 2.43.0