ROOT logo
/**************************************************************************
 * 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: AliMpSectorSegmentation.cxx,v 1.15 2006/05/24 13:58:46 ivana Exp $
// Category: sector

//-----------------------------------------------------------------------------
// Class AliMpSectorSegmentation
// -----------------------------
// Class describing the segmentation of the sector.        
// Provides methods related to pads:
// conversion between pad indices, pad location, pad position;
// finding pad neighbour.
//
// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
//-----------------------------------------------------------------------------

#include "AliMpSectorSegmentation.h"
#include "AliMpSector.h"
#include "AliMpZone.h"
#include "AliMpSubZone.h"
#include "AliMpRow.h"
#include "AliMpVRowSegment.h"
#include "AliMpMotifMap.h"
#include "AliMpVMotif.h"
#include "AliMpMotifPosition.h"
#include "AliMpConnection.h"
#include "AliMpSectorAreaHPadIterator.h"
#include "AliMpSectorAreaVPadIterator.h"
#include "AliMpSectorPadIterator.h"
#include "AliMpArea.h"
#include "AliMpConstants.h"
#include "AliMpEncodePair.h"

#include "AliLog.h"

#include <Riostream.h>
#include <TMath.h>

using std::cout;
using std::endl;
/// \cond CLASSIMP
ClassImp(AliMpSectorSegmentation)
/// \endcond

//______________________________________________________________________________
AliMpSectorSegmentation::AliMpSectorSegmentation(
                            const AliMpSector* sector, Bool_t own) 
  : AliMpVSegmentation(),
    fkSector(sector),
    fIsOwner(own),
    fPadBuffer(0),
    fMaxIndexInX(0),
    fMaxIndexInY(0)
{
/// Standard constructor

  AliDebugStream(1) << "this = " << this << endl;

  fPadBuffer = new AliMpPad(AliMpPad::Invalid());
  
  //FillPadDimensionsMap();
}

//______________________________________________________________________________
AliMpSectorSegmentation::AliMpSectorSegmentation() 
  : AliMpVSegmentation(),
    fkSector(0),
    fIsOwner(false),
    fPadBuffer(0),
    fMaxIndexInX(0),
    fMaxIndexInY(0)
{
/// Default constructor

  AliDebugStream(1) << "this = " << this << endl;
}

//______________________________________________________________________________
AliMpSectorSegmentation::~AliMpSectorSegmentation() 
{
/// Destructor 

  AliDebugStream(1) << "this = " << this << endl;

  if ( fIsOwner ) delete fkSector;

  delete fPadBuffer;
  
}

//
// private methods
//

//______________________________________________________________________________
AliMpMotifPosition* 
AliMpSectorSegmentation::FindMotifPosition(Int_t ix, Int_t iy) const
{
/// Find the motif position which contains the given pad indices
/// return 0 if not found

  switch ( fkSector->GetDirection() ) {
    case AliMp::kX : {
    // Case where all the pads have the same size along X direction

      for ( Int_t irow=0; irow<fkSector->GetNofRows(); ++irow ) {
        AliMpRow* row = fkSector->GetRow(irow);
        if ( row->GetLowLimitIx() <= ix &&
             row->GetHighLimitIx()>= ix ) {
            
          for ( Int_t iseg=0;iseg<row->GetNofRowSegments();++iseg ) {
            AliMpVRowSegment* seg = row->GetRowSegment(iseg);
            if ( seg->GetLowLimitIx() <= ix &&
                 seg->GetHighLimitIx() >= ix ) {

              AliMpMotifPosition* motifPos;
              for ( Int_t imot=0;imot<seg->GetNofMotifs();++imot ) {
                motifPos 
		  = fkSector->GetMotifMap()
		    ->FindMotifPosition(seg->GetMotifPositionId(imot));
                if (motifPos && motifPos->HasPadByIndices(AliMp::Pair(ix,iy))) return motifPos;
              }
            }
          }
        }
      }
      return 0;
    }
    break;
    ////////////////////////////////////////////////////////////////////////////////
    case AliMp::kY : {
      // Case where all the pads have the same size along Y direction   
      // look for the row which contains the indices
      AliMpRow* row=0;
      Int_t irow;
      for ( irow=0; irow<fkSector->GetNofRows(); ++irow ) {
        row = fkSector->GetRow(irow);
        AliMpVRowSegment* lastSeg = row->GetRowSegment(row->GetNofRowSegments()-1);
        if ( lastSeg->GetLowLimitIy() <= iy &&
             lastSeg->GetHighLimitIy() >= iy ) break;
        // NOTE : We use the last row segment in order to ensure that
        // we are not on a special motif
      }
      if ( irow==fkSector->GetNofRows() ) return 0;
      // look for the row segment, in the found row, which contains the indices
      AliMpVRowSegment* seg=0;
      Int_t iseg;
      for ( iseg=0;iseg<row->GetNofRowSegments();++iseg ) {
        seg = row->GetRowSegment(iseg);
        if (seg->HasIndices(AliMp::Pair(ix, iy))) break;
      }
      if ( iseg==row->GetNofRowSegments() ) return 0;
  
      // look for the motif position which contains the indices
      AliMpMotifPosition* motifPos=0;
      Int_t imot=0;
      for ( imot=0;imot<seg->GetNofMotifs();++imot ) {
        motifPos 
	  = fkSector->GetMotifMap()
	    ->FindMotifPosition(seg->GetMotifPositionId(imot));
        if (motifPos && motifPos->HasPadByIndices(AliMp::Pair(ix, iy))) break;
      }      
      if (imot==seg->GetNofMotifs()) return 0;
   
      return motifPos;      
    }
    default: return 0;
  }
}

//______________________________________________________________________________
AliMpPad 
AliMpSectorSegmentation::PadByXDirection(Double_t startx, Double_t starty, 
                                         Double_t maxX) const
{
/// Find the first valid pad from starting position in the
/// direction of pad lines up to distance dx.

  // Define step limits
  Double_t  stepX = fkSector->GetMinPadDimensionX();
 
  // Search in X direction
  AliMpPad pad;
  Double_t posx = startx;
  do {
    pad = PadByPosition(posx, starty, false);
    posx += stepX;
  }   
  while ( ! pad.IsValid() && 
            posx - fkSector->GetMaxPadDimensionX() < maxX ); 
  
  // Invalidate pad if it is outside limits
  if ( ( pad.GetPositionX() - pad.GetDimensionX()) > maxX ) 
    pad = AliMpPad::Invalid();

  return pad;
}

//______________________________________________________________________________
AliMpPad 
AliMpSectorSegmentation::PadByYDirection(Double_t startx, Double_t starty, 
                                         Double_t maxY) const
{
/// Find the first valid pad from starting position in the
/// direction of pad columns up to distance dx.
  
  // Define step limits
  Double_t stepY = fkSector->GetMinPadDimensionY();
 
  // Search in Y direction
  AliMpPad pad;
  Double_t posy = starty;
  do {
    pad = PadByPosition(startx, posy, false);
    posy += stepY;
  }   
  while ( ! pad.IsValid() && 
            posy - fkSector->GetMaxPadDimensionY()< maxY ); 
  
  // Invalidate pad if it is outside limits
  if (( pad.GetPositionY() - pad.GetDimensionY()) > maxY ) 
    pad = AliMpPad::Invalid();

  return pad;
}

//
// public methods
//

//______________________________________________________________________________
AliMpVPadIterator* 
AliMpSectorSegmentation::CreateIterator(const AliMpArea& area) const
{
/// Create the area iterator. 

  switch (fkSector->GetDirection()) {
  
    case AliMp::kX: return new AliMpSectorAreaVPadIterator(this, area);
             ;;
    case AliMp::kY: return new AliMpSectorAreaHPadIterator(this, area);
             ;;
  }
  
  Fatal("CreateIterator", "Incomplete switch on Sector direction");
  return 0;  
}   
  
//______________________________________________________________________________
AliMpVPadIterator* 
AliMpSectorSegmentation::CreateIterator() const
{
/// Create the sector iterator

  return new AliMpSectorPadIterator(fkSector);
}

//______________________________________________________________________________
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);
}

//______________________________________________________________________________
AliMpPad 
AliMpSectorSegmentation::PadByLocation(Int_t manuId, Int_t manuChannel, 
                                       Bool_t warning) const
{
/// Find the pad which corresponds to the given location
 
  if ( fPadBuffer->GetManuId() == manuId &&
       fPadBuffer->GetManuChannel() == manuChannel ) return (*fPadBuffer);
  
  AliMpMotifPosition* motifPos = 
    fkSector->GetMotifMap()->FindMotifPosition(manuId);
  if (!motifPos){
    if (warning) Warning("PadByLocation","The pad motif position ID doesn't exists");
    return AliMpPad::Invalid();
  }
  
  AliMpVMotif* motif = motifPos->GetMotif();
  MpPair_t localIndices = 
    motif->GetMotifType()->FindLocalIndicesByGassiNum(manuChannel);
  if ( localIndices < 0 ) {
    if (warning) Warning("PadByLocation","The pad number doesn't exists");
    return AliMpPad::Invalid();
  }

  Double_t posx, posy;
  motif->PadPositionLocal(localIndices, posx, posy);
  posx += motifPos->GetPositionX();
  posy += motifPos->GetPositionY();

  Double_t dx, dy;
  motif->GetPadDimensionsByIndices(localIndices, dx, dy);

  return (*fPadBuffer) = AliMpPad(manuId, manuChannel,
              motifPos->GlobalIndices(localIndices),
              posx, posy, dx, dy);
}
//______________________________________________________________________________
AliMpPad 
AliMpSectorSegmentation::PadByIndices(Int_t ix, Int_t iy, Bool_t warning ) const
{
/// Find the pad which corresponds to the given indices  

  if ( fPadBuffer->GetIx() == ix &&
       fPadBuffer->GetIy() == iy ) return (*fPadBuffer);    
       
  MpPair_t indices = AliMp::Pair(ix, iy);     
  AliMpMotifPosition* motifPos = FindMotifPosition(ix, iy);
  if (!motifPos) {    
    if (warning) 
      Warning("PadByIndices","Pad indices not contained in any motif!");
    return AliMpPad::Invalid();
  }
  
  // retrieve the local indices in the found motif
  AliMpVMotif* motif = motifPos->GetMotif();
  MpPair_t localIndices = indices - motifPos->GetLowIndicesLimit();
  
  AliMpConnection* connection=
    motif->GetMotifType()->FindConnectionByLocalIndices(localIndices);
    
  if (!connection){
    if (warning) Warning("PadByIndices","No connection with the given indices!");
    return AliMpPad::Invalid();
  }

  Double_t posx, posy;
  motif->PadPositionLocal(localIndices, posx, posy);
  posx += motifPos->GetPositionX();
  posy += motifPos->GetPositionY();

  Double_t dx, dy;
  motif->GetPadDimensionsByIndices(localIndices, dx, dy);

  return (*fPadBuffer) 
    = AliMpPad(motifPos->GetID(),connection->GetManuChannel(),
               ix, iy, posx, posy, dx, dy);
}

//______________________________________________________________________________
AliMpPad 
AliMpSectorSegmentation::PadByPosition(Double_t x, Double_t y,
                                       Bool_t warning) const
{
/// Find the pad which corresponds to the given position

  if (fPadBuffer->GetPositionX()==x && 
      fPadBuffer->GetPositionY()==y) return (*fPadBuffer);  

  Int_t motifPosID = fkSector->FindMotifPositionId(x,y);
  AliMpMotifPosition* motifPos 
    = fkSector->GetMotifMap()
        ->FindMotifPosition(motifPosID);
    
  if (!motifPos){
    if (warning) Warning("PadByPosition","Position outside limits");
    return AliMpPad::Invalid();
  }

  AliMpVMotif* motif =  motifPos->GetMotif();  
  MpPair_t localIndices 
    = motif->PadIndicesLocal(x-motifPos->GetPositionX(),
                             y-motifPos->GetPositionY());

  if ( localIndices < 0 ) {
    if (warning) Warning("PadByPosition","Position outside motif limits");
    return AliMpPad::Invalid();
  }
    
  AliMpConnection* connect = 
    motif->GetMotifType()->FindConnectionByLocalIndices(localIndices);

  if ( ! connect ) {
    if (warning) Warning("PadByPosition","Position outside motif limits");
    return AliMpPad::Invalid();
  }

  Double_t posx, posy;
  motif->PadPositionLocal(localIndices, posx, posy);
  posx += motifPos->GetPositionX();
  posy += motifPos->GetPositionY();

  Double_t dx, dy;
  motif->GetPadDimensionsByIndices(localIndices, dx, dy);
  
  return (*fPadBuffer)
    = AliMpPad(motifPosID, connect->GetManuChannel(),
               motifPos->GlobalIndices(localIndices),
               posx, posy, dx, dy);
}

//______________________________________________________________________________
AliMpPad 
AliMpSectorSegmentation::PadByDirection(Double_t startx, Double_t starty, 
                                        Double_t distance) const
{
/// Find the first valid pad from starting position in the
/// direction of pad lines/columns up to the specified distance.
/// Pad lines are the lines of pads in the sector with constant pad y size,
/// pad columns are the columns of pads in the sector with constant pad x size. 

  switch (fkSector->GetDirection()) {
  
    case AliMp::kX: return PadByYDirection(startx, starty, distance);
             ;;
    case AliMp::kY: return PadByXDirection(startx, starty, distance);
             ;;
  }
  
  Fatal("PadByDirection", "Incomplete switch on Sector direction");
  return AliMpPad::Invalid();  
}

//_____________________________________________________________________________
Bool_t 
AliMpSectorSegmentation::HasPadByIndices(Int_t ix, Int_t iy) const
{
  ///  Whether or not we have a pad at indices=(ix,iy) 
  
  MpPair_t indices = AliMp::Pair(ix, iy);

  AliMpMotifPosition* motifPos = FindMotifPosition(ix, iy);
  
  if (motifPos) return motifPos->HasPadByIndices(indices);
  
  return kFALSE;
}

//_____________________________________________________________________________
Bool_t 
AliMpSectorSegmentation::HasPadByLocation(Int_t manuId, Int_t manuChannel) const
{
  /// Whether or not we have a pad at location=(manuId,manuChannel)
  
  AliMpMotifPosition* motifPos 
    = fkSector->GetMotifMap()->FindMotifPosition(manuId);
  
  if ( motifPos ) return motifPos->HasPadByManuChannel(manuChannel);
  
  return kFALSE;
}

//______________________________________________________________________________
Int_t  AliMpSectorSegmentation::MaxPadIndexX() const
{
/// Return maximum pad index in x

  return AliMp::PairFirst(fkSector->GetMaxPadIndices());
}

//______________________________________________________________________________
Int_t  AliMpSectorSegmentation::MaxPadIndexY() const
{
/// Return maximum pad index in y

  return AliMp::PairSecond(fkSector->GetMaxPadIndices());
}

//______________________________________________________________________________
Int_t  AliMpSectorSegmentation::NofPads() const
{
/// Return number of pads defined in the sector

  return fkSector->GetNofPads();
}

//_____________________________________________________________________________
void 
AliMpSectorSegmentation::GetAllElectronicCardIDs(TArrayI& ecn) const
{
  /// Fill the array ecn with all manuIds

  GetSector()->GetAllMotifPositionsIDs(ecn);
}

//_____________________________________________________________________________
Int_t 
AliMpSectorSegmentation::GetNofElectronicCards() const
{
  /// Get the number of manus of this sector
  
  return fkSector->GetNofMotifPositions();  
}

//_____________________________________________________________________________
Bool_t 
AliMpSectorSegmentation::HasMotifPosition(Int_t manuId) const
{
  /// Whether we get a given manu. Uses default implementation
  return (AliMpVSegmentation::HasMotifPosition(manuId) != 0x0);
}

//_____________________________________________________________________________
AliMpMotifPosition* 
AliMpSectorSegmentation::MotifPosition(Int_t manuId) const
{
  /// Return a given manu
  return fkSector->GetMotifMap()->FindMotifPosition(manuId);
}

//______________________________________________________________________________
AliMp::PlaneType
AliMpSectorSegmentation::PlaneType() const
{
  return GetSector()->GetPlaneType();
}

//_____________________________________________________________________________
Double_t  
AliMpSectorSegmentation::GetDimensionX() const
{
/// Return sector x dimensions
  return GetSector()->GetDimensionX();
}

//_____________________________________________________________________________
Double_t  
AliMpSectorSegmentation::GetDimensionY() const
{
/// Return sector y dimensions
  return GetSector()->GetDimensionY();
}

//_____________________________________________________________________________
Double_t  
AliMpSectorSegmentation::GetPositionX() const
{
/// Return x position 
  return 0.;
}

//_____________________________________________________________________________
Double_t  
AliMpSectorSegmentation::GetPositionY() const
{
/// Return y position 
  return 0.;
}

//______________________________________________________________________________
void
AliMpSectorSegmentation::Print(Option_t* opt) const
{
/// Print the sector

  fkSector->Print(opt);
}

//______________________________________________________________________________
Double_t AliMpSectorSegmentation::GetMinPadDimensionX() const
{
/// Return the x dimension of the smallest pad.

  return fkSector->GetMinPadDimensionX();
}  


//______________________________________________________________________________
Double_t AliMpSectorSegmentation::GetMinPadDimensionY() const
{
/// Return the y dimension of the smallest pad.

  return fkSector->GetMinPadDimensionY();
}  


//______________________________________________________________________________
Bool_t AliMpSectorSegmentation::CircleTest(Int_t ix, Int_t iy) const
{
/// Verify that all methods for retrieving pads are consistents between them.
/// Return true if the pad with specified indices was found and verified,
/// false otherwise.

  if ( ! HasPadByIndices(ix, iy) ) return false;

  // Verify the indice->location->position->indice way
  AliMpPad pad1 = PadByIndices(ix, iy);  
  AliMpPad pad2 = PadByLocation(pad1.GetManuId(), pad1.GetManuChannel());
  AliMpPad pad3 = PadByPosition(pad2.GetPositionX(),pad2.GetPositionY());
                                      
  MpPair_t retIndices = pad3.GetIndices();
    
  if ( retIndices != AliMp::Pair(ix, iy) ) {
    cout << "Pad (" << ix << ',' << iy << ") lead to inconsistency" << endl;
    cout << "in indice->location->position->indice way..." << endl;
    cout << "starting from indices " << pad1 << endl
         << "--> location " << pad2 << endl
         << "--> position " 
         << '(' << pad3.GetPositionX() << ',' << pad3.GetPositionY() << ')'
         <<  endl << endl;
  }
    
  // Verify the indice->position->location->indice way  
  AliMpPad pad2bis = PadByPosition(pad1.GetPositionX(),pad1.GetPositionY());
  AliMpPad pad3bis = PadByLocation(pad2bis.GetManuId(), pad2bis.GetManuChannel());
  
  retIndices = pad3bis.GetIndices();

  if ( retIndices != AliMp::Pair(ix, iy) ) {
    cout << "Pad (" << ix << ',' << iy << ") lead to inconsistency" << endl;
    cout << "in indice->position->location->indice way..." << endl;
    cout << "starting from indices " << pad1 << endl
         << "--> position " 
         << '(' << pad2bis.GetPositionX() << ',' << pad2bis.GetPositionY() << ')' << endl
         << "--> location " << pad3bis
         << endl << endl;
  }
  
  return true;
}
 AliMpSectorSegmentation.cxx:1
 AliMpSectorSegmentation.cxx:2
 AliMpSectorSegmentation.cxx:3
 AliMpSectorSegmentation.cxx:4
 AliMpSectorSegmentation.cxx:5
 AliMpSectorSegmentation.cxx:6
 AliMpSectorSegmentation.cxx:7
 AliMpSectorSegmentation.cxx:8
 AliMpSectorSegmentation.cxx:9
 AliMpSectorSegmentation.cxx:10
 AliMpSectorSegmentation.cxx:11
 AliMpSectorSegmentation.cxx:12
 AliMpSectorSegmentation.cxx:13
 AliMpSectorSegmentation.cxx:14
 AliMpSectorSegmentation.cxx:15
 AliMpSectorSegmentation.cxx:16
 AliMpSectorSegmentation.cxx:17
 AliMpSectorSegmentation.cxx:18
 AliMpSectorSegmentation.cxx:19
 AliMpSectorSegmentation.cxx:20
 AliMpSectorSegmentation.cxx:21
 AliMpSectorSegmentation.cxx:22
 AliMpSectorSegmentation.cxx:23
 AliMpSectorSegmentation.cxx:24
 AliMpSectorSegmentation.cxx:25
 AliMpSectorSegmentation.cxx:26
 AliMpSectorSegmentation.cxx:27
 AliMpSectorSegmentation.cxx:28
 AliMpSectorSegmentation.cxx:29
 AliMpSectorSegmentation.cxx:30
 AliMpSectorSegmentation.cxx:31
 AliMpSectorSegmentation.cxx:32
 AliMpSectorSegmentation.cxx:33
 AliMpSectorSegmentation.cxx:34
 AliMpSectorSegmentation.cxx:35
 AliMpSectorSegmentation.cxx:36
 AliMpSectorSegmentation.cxx:37
 AliMpSectorSegmentation.cxx:38
 AliMpSectorSegmentation.cxx:39
 AliMpSectorSegmentation.cxx:40
 AliMpSectorSegmentation.cxx:41
 AliMpSectorSegmentation.cxx:42
 AliMpSectorSegmentation.cxx:43
 AliMpSectorSegmentation.cxx:44
 AliMpSectorSegmentation.cxx:45
 AliMpSectorSegmentation.cxx:46
 AliMpSectorSegmentation.cxx:47
 AliMpSectorSegmentation.cxx:48
 AliMpSectorSegmentation.cxx:49
 AliMpSectorSegmentation.cxx:50
 AliMpSectorSegmentation.cxx:51
 AliMpSectorSegmentation.cxx:52
 AliMpSectorSegmentation.cxx:53
 AliMpSectorSegmentation.cxx:54
 AliMpSectorSegmentation.cxx:55
 AliMpSectorSegmentation.cxx:56
 AliMpSectorSegmentation.cxx:57
 AliMpSectorSegmentation.cxx:58
 AliMpSectorSegmentation.cxx:59
 AliMpSectorSegmentation.cxx:60
 AliMpSectorSegmentation.cxx:61
 AliMpSectorSegmentation.cxx:62
 AliMpSectorSegmentation.cxx:63
 AliMpSectorSegmentation.cxx:64
 AliMpSectorSegmentation.cxx:65
 AliMpSectorSegmentation.cxx:66
 AliMpSectorSegmentation.cxx:67
 AliMpSectorSegmentation.cxx:68
 AliMpSectorSegmentation.cxx:69
 AliMpSectorSegmentation.cxx:70
 AliMpSectorSegmentation.cxx:71
 AliMpSectorSegmentation.cxx:72
 AliMpSectorSegmentation.cxx:73
 AliMpSectorSegmentation.cxx:74
 AliMpSectorSegmentation.cxx:75
 AliMpSectorSegmentation.cxx:76
 AliMpSectorSegmentation.cxx:77
 AliMpSectorSegmentation.cxx:78
 AliMpSectorSegmentation.cxx:79
 AliMpSectorSegmentation.cxx:80
 AliMpSectorSegmentation.cxx:81
 AliMpSectorSegmentation.cxx:82
 AliMpSectorSegmentation.cxx:83
 AliMpSectorSegmentation.cxx:84
 AliMpSectorSegmentation.cxx:85
 AliMpSectorSegmentation.cxx:86
 AliMpSectorSegmentation.cxx:87
 AliMpSectorSegmentation.cxx:88
 AliMpSectorSegmentation.cxx:89
 AliMpSectorSegmentation.cxx:90
 AliMpSectorSegmentation.cxx:91
 AliMpSectorSegmentation.cxx:92
 AliMpSectorSegmentation.cxx:93
 AliMpSectorSegmentation.cxx:94
 AliMpSectorSegmentation.cxx:95
 AliMpSectorSegmentation.cxx:96
 AliMpSectorSegmentation.cxx:97
 AliMpSectorSegmentation.cxx:98
 AliMpSectorSegmentation.cxx:99
 AliMpSectorSegmentation.cxx:100
 AliMpSectorSegmentation.cxx:101
 AliMpSectorSegmentation.cxx:102
 AliMpSectorSegmentation.cxx:103
 AliMpSectorSegmentation.cxx:104
 AliMpSectorSegmentation.cxx:105
 AliMpSectorSegmentation.cxx:106
 AliMpSectorSegmentation.cxx:107
 AliMpSectorSegmentation.cxx:108
 AliMpSectorSegmentation.cxx:109
 AliMpSectorSegmentation.cxx:110
 AliMpSectorSegmentation.cxx:111
 AliMpSectorSegmentation.cxx:112
 AliMpSectorSegmentation.cxx:113
 AliMpSectorSegmentation.cxx:114
 AliMpSectorSegmentation.cxx:115
 AliMpSectorSegmentation.cxx:116
 AliMpSectorSegmentation.cxx:117
 AliMpSectorSegmentation.cxx:118
 AliMpSectorSegmentation.cxx:119
 AliMpSectorSegmentation.cxx:120
 AliMpSectorSegmentation.cxx:121
 AliMpSectorSegmentation.cxx:122
 AliMpSectorSegmentation.cxx:123
 AliMpSectorSegmentation.cxx:124
 AliMpSectorSegmentation.cxx:125
 AliMpSectorSegmentation.cxx:126
 AliMpSectorSegmentation.cxx:127
 AliMpSectorSegmentation.cxx:128
 AliMpSectorSegmentation.cxx:129
 AliMpSectorSegmentation.cxx:130
 AliMpSectorSegmentation.cxx:131
 AliMpSectorSegmentation.cxx:132
 AliMpSectorSegmentation.cxx:133
 AliMpSectorSegmentation.cxx:134
 AliMpSectorSegmentation.cxx:135
 AliMpSectorSegmentation.cxx:136
 AliMpSectorSegmentation.cxx:137
 AliMpSectorSegmentation.cxx:138
 AliMpSectorSegmentation.cxx:139
 AliMpSectorSegmentation.cxx:140
 AliMpSectorSegmentation.cxx:141
 AliMpSectorSegmentation.cxx:142
 AliMpSectorSegmentation.cxx:143
 AliMpSectorSegmentation.cxx:144
 AliMpSectorSegmentation.cxx:145
 AliMpSectorSegmentation.cxx:146
 AliMpSectorSegmentation.cxx:147
 AliMpSectorSegmentation.cxx:148
 AliMpSectorSegmentation.cxx:149
 AliMpSectorSegmentation.cxx:150
 AliMpSectorSegmentation.cxx:151
 AliMpSectorSegmentation.cxx:152
 AliMpSectorSegmentation.cxx:153
 AliMpSectorSegmentation.cxx:154
 AliMpSectorSegmentation.cxx:155
 AliMpSectorSegmentation.cxx:156
 AliMpSectorSegmentation.cxx:157
 AliMpSectorSegmentation.cxx:158
 AliMpSectorSegmentation.cxx:159
 AliMpSectorSegmentation.cxx:160
 AliMpSectorSegmentation.cxx:161
 AliMpSectorSegmentation.cxx:162
 AliMpSectorSegmentation.cxx:163
 AliMpSectorSegmentation.cxx:164
 AliMpSectorSegmentation.cxx:165
 AliMpSectorSegmentation.cxx:166
 AliMpSectorSegmentation.cxx:167
 AliMpSectorSegmentation.cxx:168
 AliMpSectorSegmentation.cxx:169
 AliMpSectorSegmentation.cxx:170
 AliMpSectorSegmentation.cxx:171
 AliMpSectorSegmentation.cxx:172
 AliMpSectorSegmentation.cxx:173
 AliMpSectorSegmentation.cxx:174
 AliMpSectorSegmentation.cxx:175
 AliMpSectorSegmentation.cxx:176
 AliMpSectorSegmentation.cxx:177
 AliMpSectorSegmentation.cxx:178
 AliMpSectorSegmentation.cxx:179
 AliMpSectorSegmentation.cxx:180
 AliMpSectorSegmentation.cxx:181
 AliMpSectorSegmentation.cxx:182
 AliMpSectorSegmentation.cxx:183
 AliMpSectorSegmentation.cxx:184
 AliMpSectorSegmentation.cxx:185
 AliMpSectorSegmentation.cxx:186
 AliMpSectorSegmentation.cxx:187
 AliMpSectorSegmentation.cxx:188
 AliMpSectorSegmentation.cxx:189
 AliMpSectorSegmentation.cxx:190
 AliMpSectorSegmentation.cxx:191
 AliMpSectorSegmentation.cxx:192
 AliMpSectorSegmentation.cxx:193
 AliMpSectorSegmentation.cxx:194
 AliMpSectorSegmentation.cxx:195
 AliMpSectorSegmentation.cxx:196
 AliMpSectorSegmentation.cxx:197
 AliMpSectorSegmentation.cxx:198
 AliMpSectorSegmentation.cxx:199
 AliMpSectorSegmentation.cxx:200
 AliMpSectorSegmentation.cxx:201
 AliMpSectorSegmentation.cxx:202
 AliMpSectorSegmentation.cxx:203
 AliMpSectorSegmentation.cxx:204
 AliMpSectorSegmentation.cxx:205
 AliMpSectorSegmentation.cxx:206
 AliMpSectorSegmentation.cxx:207
 AliMpSectorSegmentation.cxx:208
 AliMpSectorSegmentation.cxx:209
 AliMpSectorSegmentation.cxx:210
 AliMpSectorSegmentation.cxx:211
 AliMpSectorSegmentation.cxx:212
 AliMpSectorSegmentation.cxx:213
 AliMpSectorSegmentation.cxx:214
 AliMpSectorSegmentation.cxx:215
 AliMpSectorSegmentation.cxx:216
 AliMpSectorSegmentation.cxx:217
 AliMpSectorSegmentation.cxx:218
 AliMpSectorSegmentation.cxx:219
 AliMpSectorSegmentation.cxx:220
 AliMpSectorSegmentation.cxx:221
 AliMpSectorSegmentation.cxx:222
 AliMpSectorSegmentation.cxx:223
 AliMpSectorSegmentation.cxx:224
 AliMpSectorSegmentation.cxx:225
 AliMpSectorSegmentation.cxx:226
 AliMpSectorSegmentation.cxx:227
 AliMpSectorSegmentation.cxx:228
 AliMpSectorSegmentation.cxx:229
 AliMpSectorSegmentation.cxx:230
 AliMpSectorSegmentation.cxx:231
 AliMpSectorSegmentation.cxx:232
 AliMpSectorSegmentation.cxx:233
 AliMpSectorSegmentation.cxx:234
 AliMpSectorSegmentation.cxx:235
 AliMpSectorSegmentation.cxx:236
 AliMpSectorSegmentation.cxx:237
 AliMpSectorSegmentation.cxx:238
 AliMpSectorSegmentation.cxx:239
 AliMpSectorSegmentation.cxx:240
 AliMpSectorSegmentation.cxx:241
 AliMpSectorSegmentation.cxx:242
 AliMpSectorSegmentation.cxx:243
 AliMpSectorSegmentation.cxx:244
 AliMpSectorSegmentation.cxx:245
 AliMpSectorSegmentation.cxx:246
 AliMpSectorSegmentation.cxx:247
 AliMpSectorSegmentation.cxx:248
 AliMpSectorSegmentation.cxx:249
 AliMpSectorSegmentation.cxx:250
 AliMpSectorSegmentation.cxx:251
 AliMpSectorSegmentation.cxx:252
 AliMpSectorSegmentation.cxx:253
 AliMpSectorSegmentation.cxx:254
 AliMpSectorSegmentation.cxx:255
 AliMpSectorSegmentation.cxx:256
 AliMpSectorSegmentation.cxx:257
 AliMpSectorSegmentation.cxx:258
 AliMpSectorSegmentation.cxx:259
 AliMpSectorSegmentation.cxx:260
 AliMpSectorSegmentation.cxx:261
 AliMpSectorSegmentation.cxx:262
 AliMpSectorSegmentation.cxx:263
 AliMpSectorSegmentation.cxx:264
 AliMpSectorSegmentation.cxx:265
 AliMpSectorSegmentation.cxx:266
 AliMpSectorSegmentation.cxx:267
 AliMpSectorSegmentation.cxx:268
 AliMpSectorSegmentation.cxx:269
 AliMpSectorSegmentation.cxx:270
 AliMpSectorSegmentation.cxx:271
 AliMpSectorSegmentation.cxx:272
 AliMpSectorSegmentation.cxx:273
 AliMpSectorSegmentation.cxx:274
 AliMpSectorSegmentation.cxx:275
 AliMpSectorSegmentation.cxx:276
 AliMpSectorSegmentation.cxx:277
 AliMpSectorSegmentation.cxx:278
 AliMpSectorSegmentation.cxx:279
 AliMpSectorSegmentation.cxx:280
 AliMpSectorSegmentation.cxx:281
 AliMpSectorSegmentation.cxx:282
 AliMpSectorSegmentation.cxx:283
 AliMpSectorSegmentation.cxx:284
 AliMpSectorSegmentation.cxx:285
 AliMpSectorSegmentation.cxx:286
 AliMpSectorSegmentation.cxx:287
 AliMpSectorSegmentation.cxx:288
 AliMpSectorSegmentation.cxx:289
 AliMpSectorSegmentation.cxx:290
 AliMpSectorSegmentation.cxx:291
 AliMpSectorSegmentation.cxx:292
 AliMpSectorSegmentation.cxx:293
 AliMpSectorSegmentation.cxx:294
 AliMpSectorSegmentation.cxx:295
 AliMpSectorSegmentation.cxx:296
 AliMpSectorSegmentation.cxx:297
 AliMpSectorSegmentation.cxx:298
 AliMpSectorSegmentation.cxx:299
 AliMpSectorSegmentation.cxx:300
 AliMpSectorSegmentation.cxx:301
 AliMpSectorSegmentation.cxx:302
 AliMpSectorSegmentation.cxx:303
 AliMpSectorSegmentation.cxx:304
 AliMpSectorSegmentation.cxx:305
 AliMpSectorSegmentation.cxx:306
 AliMpSectorSegmentation.cxx:307
 AliMpSectorSegmentation.cxx:308
 AliMpSectorSegmentation.cxx:309
 AliMpSectorSegmentation.cxx:310
 AliMpSectorSegmentation.cxx:311
 AliMpSectorSegmentation.cxx:312
 AliMpSectorSegmentation.cxx:313
 AliMpSectorSegmentation.cxx:314
 AliMpSectorSegmentation.cxx:315
 AliMpSectorSegmentation.cxx:316
 AliMpSectorSegmentation.cxx:317
 AliMpSectorSegmentation.cxx:318
 AliMpSectorSegmentation.cxx:319
 AliMpSectorSegmentation.cxx:320
 AliMpSectorSegmentation.cxx:321
 AliMpSectorSegmentation.cxx:322
 AliMpSectorSegmentation.cxx:323
 AliMpSectorSegmentation.cxx:324
 AliMpSectorSegmentation.cxx:325
 AliMpSectorSegmentation.cxx:326
 AliMpSectorSegmentation.cxx:327
 AliMpSectorSegmentation.cxx:328
 AliMpSectorSegmentation.cxx:329
 AliMpSectorSegmentation.cxx:330
 AliMpSectorSegmentation.cxx:331
 AliMpSectorSegmentation.cxx:332
 AliMpSectorSegmentation.cxx:333
 AliMpSectorSegmentation.cxx:334
 AliMpSectorSegmentation.cxx:335
 AliMpSectorSegmentation.cxx:336
 AliMpSectorSegmentation.cxx:337
 AliMpSectorSegmentation.cxx:338
 AliMpSectorSegmentation.cxx:339
 AliMpSectorSegmentation.cxx:340
 AliMpSectorSegmentation.cxx:341
 AliMpSectorSegmentation.cxx:342
 AliMpSectorSegmentation.cxx:343
 AliMpSectorSegmentation.cxx:344
 AliMpSectorSegmentation.cxx:345
 AliMpSectorSegmentation.cxx:346
 AliMpSectorSegmentation.cxx:347
 AliMpSectorSegmentation.cxx:348
 AliMpSectorSegmentation.cxx:349
 AliMpSectorSegmentation.cxx:350
 AliMpSectorSegmentation.cxx:351
 AliMpSectorSegmentation.cxx:352
 AliMpSectorSegmentation.cxx:353
 AliMpSectorSegmentation.cxx:354
 AliMpSectorSegmentation.cxx:355
 AliMpSectorSegmentation.cxx:356
 AliMpSectorSegmentation.cxx:357
 AliMpSectorSegmentation.cxx:358
 AliMpSectorSegmentation.cxx:359
 AliMpSectorSegmentation.cxx:360
 AliMpSectorSegmentation.cxx:361
 AliMpSectorSegmentation.cxx:362
 AliMpSectorSegmentation.cxx:363
 AliMpSectorSegmentation.cxx:364
 AliMpSectorSegmentation.cxx:365
 AliMpSectorSegmentation.cxx:366
 AliMpSectorSegmentation.cxx:367
 AliMpSectorSegmentation.cxx:368
 AliMpSectorSegmentation.cxx:369
 AliMpSectorSegmentation.cxx:370
 AliMpSectorSegmentation.cxx:371
 AliMpSectorSegmentation.cxx:372
 AliMpSectorSegmentation.cxx:373
 AliMpSectorSegmentation.cxx:374
 AliMpSectorSegmentation.cxx:375
 AliMpSectorSegmentation.cxx:376
 AliMpSectorSegmentation.cxx:377
 AliMpSectorSegmentation.cxx:378
 AliMpSectorSegmentation.cxx:379
 AliMpSectorSegmentation.cxx:380
 AliMpSectorSegmentation.cxx:381
 AliMpSectorSegmentation.cxx:382
 AliMpSectorSegmentation.cxx:383
 AliMpSectorSegmentation.cxx:384
 AliMpSectorSegmentation.cxx:385
 AliMpSectorSegmentation.cxx:386
 AliMpSectorSegmentation.cxx:387
 AliMpSectorSegmentation.cxx:388
 AliMpSectorSegmentation.cxx:389
 AliMpSectorSegmentation.cxx:390
 AliMpSectorSegmentation.cxx:391
 AliMpSectorSegmentation.cxx:392
 AliMpSectorSegmentation.cxx:393
 AliMpSectorSegmentation.cxx:394
 AliMpSectorSegmentation.cxx:395
 AliMpSectorSegmentation.cxx:396
 AliMpSectorSegmentation.cxx:397
 AliMpSectorSegmentation.cxx:398
 AliMpSectorSegmentation.cxx:399
 AliMpSectorSegmentation.cxx:400
 AliMpSectorSegmentation.cxx:401
 AliMpSectorSegmentation.cxx:402
 AliMpSectorSegmentation.cxx:403
 AliMpSectorSegmentation.cxx:404
 AliMpSectorSegmentation.cxx:405
 AliMpSectorSegmentation.cxx:406
 AliMpSectorSegmentation.cxx:407
 AliMpSectorSegmentation.cxx:408
 AliMpSectorSegmentation.cxx:409
 AliMpSectorSegmentation.cxx:410
 AliMpSectorSegmentation.cxx:411
 AliMpSectorSegmentation.cxx:412
 AliMpSectorSegmentation.cxx:413
 AliMpSectorSegmentation.cxx:414
 AliMpSectorSegmentation.cxx:415
 AliMpSectorSegmentation.cxx:416
 AliMpSectorSegmentation.cxx:417
 AliMpSectorSegmentation.cxx:418
 AliMpSectorSegmentation.cxx:419
 AliMpSectorSegmentation.cxx:420
 AliMpSectorSegmentation.cxx:421
 AliMpSectorSegmentation.cxx:422
 AliMpSectorSegmentation.cxx:423
 AliMpSectorSegmentation.cxx:424
 AliMpSectorSegmentation.cxx:425
 AliMpSectorSegmentation.cxx:426
 AliMpSectorSegmentation.cxx:427
 AliMpSectorSegmentation.cxx:428
 AliMpSectorSegmentation.cxx:429
 AliMpSectorSegmentation.cxx:430
 AliMpSectorSegmentation.cxx:431
 AliMpSectorSegmentation.cxx:432
 AliMpSectorSegmentation.cxx:433
 AliMpSectorSegmentation.cxx:434
 AliMpSectorSegmentation.cxx:435
 AliMpSectorSegmentation.cxx:436
 AliMpSectorSegmentation.cxx:437
 AliMpSectorSegmentation.cxx:438
 AliMpSectorSegmentation.cxx:439
 AliMpSectorSegmentation.cxx:440
 AliMpSectorSegmentation.cxx:441
 AliMpSectorSegmentation.cxx:442
 AliMpSectorSegmentation.cxx:443
 AliMpSectorSegmentation.cxx:444
 AliMpSectorSegmentation.cxx:445
 AliMpSectorSegmentation.cxx:446
 AliMpSectorSegmentation.cxx:447
 AliMpSectorSegmentation.cxx:448
 AliMpSectorSegmentation.cxx:449
 AliMpSectorSegmentation.cxx:450
 AliMpSectorSegmentation.cxx:451
 AliMpSectorSegmentation.cxx:452
 AliMpSectorSegmentation.cxx:453
 AliMpSectorSegmentation.cxx:454
 AliMpSectorSegmentation.cxx:455
 AliMpSectorSegmentation.cxx:456
 AliMpSectorSegmentation.cxx:457
 AliMpSectorSegmentation.cxx:458
 AliMpSectorSegmentation.cxx:459
 AliMpSectorSegmentation.cxx:460
 AliMpSectorSegmentation.cxx:461
 AliMpSectorSegmentation.cxx:462
 AliMpSectorSegmentation.cxx:463
 AliMpSectorSegmentation.cxx:464
 AliMpSectorSegmentation.cxx:465
 AliMpSectorSegmentation.cxx:466
 AliMpSectorSegmentation.cxx:467
 AliMpSectorSegmentation.cxx:468
 AliMpSectorSegmentation.cxx:469
 AliMpSectorSegmentation.cxx:470
 AliMpSectorSegmentation.cxx:471
 AliMpSectorSegmentation.cxx:472
 AliMpSectorSegmentation.cxx:473
 AliMpSectorSegmentation.cxx:474
 AliMpSectorSegmentation.cxx:475
 AliMpSectorSegmentation.cxx:476
 AliMpSectorSegmentation.cxx:477
 AliMpSectorSegmentation.cxx:478
 AliMpSectorSegmentation.cxx:479
 AliMpSectorSegmentation.cxx:480
 AliMpSectorSegmentation.cxx:481
 AliMpSectorSegmentation.cxx:482
 AliMpSectorSegmentation.cxx:483
 AliMpSectorSegmentation.cxx:484
 AliMpSectorSegmentation.cxx:485
 AliMpSectorSegmentation.cxx:486
 AliMpSectorSegmentation.cxx:487
 AliMpSectorSegmentation.cxx:488
 AliMpSectorSegmentation.cxx:489
 AliMpSectorSegmentation.cxx:490
 AliMpSectorSegmentation.cxx:491
 AliMpSectorSegmentation.cxx:492
 AliMpSectorSegmentation.cxx:493
 AliMpSectorSegmentation.cxx:494
 AliMpSectorSegmentation.cxx:495
 AliMpSectorSegmentation.cxx:496
 AliMpSectorSegmentation.cxx:497
 AliMpSectorSegmentation.cxx:498
 AliMpSectorSegmentation.cxx:499
 AliMpSectorSegmentation.cxx:500
 AliMpSectorSegmentation.cxx:501
 AliMpSectorSegmentation.cxx:502
 AliMpSectorSegmentation.cxx:503
 AliMpSectorSegmentation.cxx:504
 AliMpSectorSegmentation.cxx:505
 AliMpSectorSegmentation.cxx:506
 AliMpSectorSegmentation.cxx:507
 AliMpSectorSegmentation.cxx:508
 AliMpSectorSegmentation.cxx:509
 AliMpSectorSegmentation.cxx:510
 AliMpSectorSegmentation.cxx:511
 AliMpSectorSegmentation.cxx:512
 AliMpSectorSegmentation.cxx:513
 AliMpSectorSegmentation.cxx:514
 AliMpSectorSegmentation.cxx:515
 AliMpSectorSegmentation.cxx:516
 AliMpSectorSegmentation.cxx:517
 AliMpSectorSegmentation.cxx:518
 AliMpSectorSegmentation.cxx:519
 AliMpSectorSegmentation.cxx:520
 AliMpSectorSegmentation.cxx:521
 AliMpSectorSegmentation.cxx:522
 AliMpSectorSegmentation.cxx:523
 AliMpSectorSegmentation.cxx:524
 AliMpSectorSegmentation.cxx:525
 AliMpSectorSegmentation.cxx:526
 AliMpSectorSegmentation.cxx:527
 AliMpSectorSegmentation.cxx:528
 AliMpSectorSegmentation.cxx:529
 AliMpSectorSegmentation.cxx:530
 AliMpSectorSegmentation.cxx:531
 AliMpSectorSegmentation.cxx:532
 AliMpSectorSegmentation.cxx:533
 AliMpSectorSegmentation.cxx:534
 AliMpSectorSegmentation.cxx:535
 AliMpSectorSegmentation.cxx:536
 AliMpSectorSegmentation.cxx:537
 AliMpSectorSegmentation.cxx:538
 AliMpSectorSegmentation.cxx:539
 AliMpSectorSegmentation.cxx:540
 AliMpSectorSegmentation.cxx:541
 AliMpSectorSegmentation.cxx:542
 AliMpSectorSegmentation.cxx:543
 AliMpSectorSegmentation.cxx:544
 AliMpSectorSegmentation.cxx:545
 AliMpSectorSegmentation.cxx:546
 AliMpSectorSegmentation.cxx:547
 AliMpSectorSegmentation.cxx:548
 AliMpSectorSegmentation.cxx:549
 AliMpSectorSegmentation.cxx:550
 AliMpSectorSegmentation.cxx:551
 AliMpSectorSegmentation.cxx:552
 AliMpSectorSegmentation.cxx:553
 AliMpSectorSegmentation.cxx:554
 AliMpSectorSegmentation.cxx:555
 AliMpSectorSegmentation.cxx:556
 AliMpSectorSegmentation.cxx:557
 AliMpSectorSegmentation.cxx:558
 AliMpSectorSegmentation.cxx:559
 AliMpSectorSegmentation.cxx:560
 AliMpSectorSegmentation.cxx:561
 AliMpSectorSegmentation.cxx:562
 AliMpSectorSegmentation.cxx:563
 AliMpSectorSegmentation.cxx:564
 AliMpSectorSegmentation.cxx:565
 AliMpSectorSegmentation.cxx:566
 AliMpSectorSegmentation.cxx:567
 AliMpSectorSegmentation.cxx:568
 AliMpSectorSegmentation.cxx:569
 AliMpSectorSegmentation.cxx:570
 AliMpSectorSegmentation.cxx:571
 AliMpSectorSegmentation.cxx:572
 AliMpSectorSegmentation.cxx:573
 AliMpSectorSegmentation.cxx:574
 AliMpSectorSegmentation.cxx:575
 AliMpSectorSegmentation.cxx:576
 AliMpSectorSegmentation.cxx:577
 AliMpSectorSegmentation.cxx:578
 AliMpSectorSegmentation.cxx:579
 AliMpSectorSegmentation.cxx:580
 AliMpSectorSegmentation.cxx:581
 AliMpSectorSegmentation.cxx:582
 AliMpSectorSegmentation.cxx:583
 AliMpSectorSegmentation.cxx:584
 AliMpSectorSegmentation.cxx:585
 AliMpSectorSegmentation.cxx:586
 AliMpSectorSegmentation.cxx:587
 AliMpSectorSegmentation.cxx:588
 AliMpSectorSegmentation.cxx:589
 AliMpSectorSegmentation.cxx:590
 AliMpSectorSegmentation.cxx:591
 AliMpSectorSegmentation.cxx:592
 AliMpSectorSegmentation.cxx:593
 AliMpSectorSegmentation.cxx:594
 AliMpSectorSegmentation.cxx:595
 AliMpSectorSegmentation.cxx:596
 AliMpSectorSegmentation.cxx:597
 AliMpSectorSegmentation.cxx:598
 AliMpSectorSegmentation.cxx:599
 AliMpSectorSegmentation.cxx:600
 AliMpSectorSegmentation.cxx:601
 AliMpSectorSegmentation.cxx:602
 AliMpSectorSegmentation.cxx:603
 AliMpSectorSegmentation.cxx:604
 AliMpSectorSegmentation.cxx:605
 AliMpSectorSegmentation.cxx:606
 AliMpSectorSegmentation.cxx:607
 AliMpSectorSegmentation.cxx:608
 AliMpSectorSegmentation.cxx:609
 AliMpSectorSegmentation.cxx:610
 AliMpSectorSegmentation.cxx:611
 AliMpSectorSegmentation.cxx:612
 AliMpSectorSegmentation.cxx:613
 AliMpSectorSegmentation.cxx:614
 AliMpSectorSegmentation.cxx:615
 AliMpSectorSegmentation.cxx:616
 AliMpSectorSegmentation.cxx:617
 AliMpSectorSegmentation.cxx:618
 AliMpSectorSegmentation.cxx:619
 AliMpSectorSegmentation.cxx:620
 AliMpSectorSegmentation.cxx:621
 AliMpSectorSegmentation.cxx:622
 AliMpSectorSegmentation.cxx:623
 AliMpSectorSegmentation.cxx:624
 AliMpSectorSegmentation.cxx:625
 AliMpSectorSegmentation.cxx:626
 AliMpSectorSegmentation.cxx:627
 AliMpSectorSegmentation.cxx:628
 AliMpSectorSegmentation.cxx:629
 AliMpSectorSegmentation.cxx:630
 AliMpSectorSegmentation.cxx:631