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: AliMpSector.cxx,v 1.14 2006/05/24 13:58:46 ivana Exp $
// Category: sector

//-----------------------------------------------------------------------------
// Class AliMpSector
// -----------------
// Class describing the sector of the MUON chamber of station 1.
// Included in AliRoot: 2003/05/02
// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
//-----------------------------------------------------------------------------

#include "AliMpSector.h"
#include "AliMpSectorPadIterator.h"
#include "AliMpZone.h"
#include "AliMpRow.h"
#include "AliMpVRowSegment.h"
#include "AliMpVMotif.h"
#include "AliMpMotifMap.h"
#include "AliMpEncodePair.h"
#include "AliMpConstants.h"

#include "AliLog.h"

#include <Riostream.h>

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

//_____________________________________________________________________________
AliMpSector::AliMpSector(const TString& id, Int_t nofZones, Int_t nofRows, 
                         AliMp::Direction direction, 
                         Double_t offsetx, Double_t offsety) 
  : TNamed("Sector", ""),
    fID(id),
    fOffsetX(offsetx),
    fOffsetY(offsety),
    fDimensionX(0.),
    fDimensionY(0.),
    fZones(),
    fRows(),
    fMotifMap(0),
    fDirection(direction),
    fMinPadDimensionX(1.e6),
    fMinPadDimensionY(1.e6),
    fMaxPadDimensionX(0.),
    fMaxPadDimensionY(0.),
    fLMaxPadIndices(0),
    fNofPads(0)
{
/// Standard constructor

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

  fMotifMap = new AliMpMotifMap;

  for (Int_t izone = 0; izone<nofZones; izone++) 
    fZones.Add(new AliMpZone(izone+1));
    
  for (Int_t irow = 0; irow<nofRows; irow++) 
    fRows.Add(new AliMpRow(irow, fMotifMap));
    
}

//_____________________________________________________________________________
AliMpSector::AliMpSector() 
  : TNamed(),
    fID(""),    
    fOffsetX(0.),
    fOffsetY(0.),
    fDimensionX(0.),
    fDimensionY(0.),
    fZones(),
    fRows(),
    fMotifMap(0),
    fDirection(AliMp::kX),
    fMinPadDimensionX(0.),
    fMinPadDimensionY(0.),
    fMaxPadDimensionX(0.),
    fMaxPadDimensionY(0.),
    fLMaxPadIndices(0),
    fNofPads(0)
{
/// Default constructor

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

//_____________________________________________________________________________
AliMpSector::~AliMpSector() 
{
/// Destructor 

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

  // deletes 
  for (Int_t izone = 0; izone<GetNofZones(); izone++) 
    delete fZones[izone];
    
  for (Int_t irow = 0; irow<GetNofRows(); irow++) 
    delete fRows[irow];

  delete fMotifMap;
}

//
// private methods
//

//_____________________________________________________________________________
AliMpRow* AliMpSector::FindRow(Double_t y) const
{
/// Find the row for the specified y position.                              \n
/// If y is on border the lowest row is returned.
  
  for (Int_t i=0; i<GetNofRows(); i++) {
    if ( y >= ((AliMpRow*)fRows[i])->LowBorderY() && 
         y <= ((AliMpRow*)fRows[i])->UpperBorderY())
      return (AliMpRow*)fRows[i];
  }    
  
  return 0;
}

//_____________________________________________________________________________
Int_t AliMpSector::FindMotifPositionId(Double_t x, Double_t y) const
{
/// Find the motif position ID in the specified position.                   \n
/// Return 0 if no motif is found.
 
  // Find the row segment
  AliMpVRowSegment* rowSegment = FindRowSegment(x,y);
  
  if ( ! rowSegment ) return 0;
    
  // Find motif position ID
  return rowSegment->FindMotifPositionId(x, y);  
}

//_____________________________________________________________________________
AliMpVRowSegment* AliMpSector::FindRowSegment(Double_t x, Double_t y) const
{
/// Find the row segment in the specified position.                         \n
/// Return if no motif is found.
  
  // Find row
  AliMpRow* row = FindRow(y);
  
  if (!row) return 0;

  // Find the row segment and return its motif
  AliMpVRowSegment* rowSegment = row->FindRowSegment(x);
  
  return rowSegment;
}

//_____________________________________________________________________________
void  AliMpSector::SetRowOffsets()
{
/// For each row check consitency of the row segments
/// and calculate the row offset.

  Double_t offset = fOffsetY;
  
  for (Int_t irow=0; irow<GetNofRows(); irow++)
    offset = GetRow(irow)->SetOffsetY(offset);    
}

//_____________________________________________________________________________
void  AliMpSector::SetMotifPositions()
{
/// Create motif positions objects and fills them in the motif map.

  for (Int_t i=0; i<GetNofRows(); i++)
    GetRow(i)->SetMotifPositions();
}

//_____________________________________________________________________________
void  AliMpSector::SetGlobalIndices()
{
/// Set the indices limits to all indexed elements
/// (row, row segment, motif positions).

  AliMpRow* rowBefore=0;
  for (Int_t i=0; i<GetNofRows(); i++) {
    GetRow(i)->SetGlobalIndices(fDirection, rowBefore);
    rowBefore = GetRow(i);
  }
}

//_____________________________________________________________________________
void  AliMpSector::SetMinMaxPadDimensions()
{
/// Set the minimal pad dimensions.

  for (Int_t i=1; i<GetNofZones()+1; i++) {
    Double_t dx = GetZone(i)->GetPadDimensionX();
    Double_t dy = GetZone(i)->GetPadDimensionY();
    
    if ( ( fDirection == AliMp::kX && dy > 0. && dy < fMinPadDimensionY ) ||
         ( fDirection == AliMp::kY && dx > 0. && dx < fMinPadDimensionX ) ) {
      
      fMinPadDimensionX = dx;
      fMinPadDimensionY = dy;
    }  

    if ( ( fDirection == AliMp::kX && dy > 0. && dy > fMaxPadDimensionY ) ||
         ( fDirection == AliMp::kY && dx > 0. && dx > fMinPadDimensionX ) ) {
      
      fMaxPadDimensionX = dx;
      fMaxPadDimensionY = dy;
    }  
  }
}

//_____________________________________________________________________________
void  AliMpSector::SetMaxPadIndices()
{
/// Set maximum pad indices in x, y

  if ( fLMaxPadIndices != 0 ) return;
  
  Int_t maxIndexInX = 0;
  Int_t maxIndexInY = 0;
  for (Int_t i=0; i<GetNofRows(); i++) {

    Int_t ixh = GetRow(i)->GetHighLimitIx();
    if ( ixh > maxIndexInX ) maxIndexInX = ixh;

    Int_t iyh = GetRow(i)->GetHighLimitIy();
    if ( iyh > maxIndexInY ) maxIndexInY = iyh;
  }  
  
  fLMaxPadIndices = AliMp::Pair(maxIndexInX, maxIndexInY);
}


//_____________________________________________________________________________
void  AliMpSector::SetNofPads()
{
/// Set the total number of pads

  fNofPads = fMotifMap->CalculateNofPads();
}

//_____________________________________________________________________________
void  AliMpSector::SetDimensions()
{
/// Set the maximum halflengths in x, y.

  fDimensionX = 0.;
  fDimensionY = 0.;
  
  for (Int_t i=0; i<GetNofRows(); i++) {

    // take the largest x row dimension
    if ( ((AliMpRow*)fRows[i])->GetDimensionX() > fDimensionX ) 
      fDimensionX = ((AliMpRow*)fRows[i])->GetDimensionX();
      
    // add all rows y dimensions  
    fDimensionY += ((AliMpRow*)fRows[i])->GetDimensionY();
  }
}  

//
// public methods
//

//_____________________________________________________________________________
AliMpVPadIterator* AliMpSector::CreateIterator() const
{
/// Create sector pad iterator

  return new AliMpSectorPadIterator(this);
}


//_____________________________________________________________________________
void  AliMpSector::SetRowSegmentOffsets()
{
/// For all rows set the offset to all row segments.

  for (Int_t irow=0; irow<GetNofRows(); irow++)
    GetRow(irow)->SetRowSegmentOffsets(fOffsetX);    
}

//_____________________________________________________________________________
void AliMpSector::Initialize() 
{
/// Make needed settings after sector is read from
/// data files.

  SetRowOffsets();
  SetMotifPositions();
  SetGlobalIndices();
  SetMinMaxPadDimensions();
  SetMaxPadIndices();
  SetNofPads();
  SetDimensions();
}  

//_____________________________________________________________________________
void AliMpSector::PrintGeometry()  const
{
/// Print the positions of rows, rows segments

  for (Int_t i=0; i<GetNofRows(); i++) {
    AliMpRow* row = GetRow(i);
    
    cout << "ROW " << row->GetID() 
         << "  center Y " << row->GetPositionY() << endl;

    for (Int_t j=0; j<row->GetNofRowSegments(); j++) {
       AliMpVRowSegment* rowSegment = row->GetRowSegment(j);
	
       cout << "   ROW Segment " << j 
            << "  borders " 
            << rowSegment->LeftBorderX() << "  "
            << rowSegment->RightBorderX()
            << "  x-size " 
            << 2*rowSegment->GetDimensionX() << "  "
	    << endl;
    }
  }
}     
      	     

//_____________________________________________________________________________
AliMpRow* AliMpSector::FindRow(Int_t motifPositionId) const
{
/// Find the row with the the specified motif position.                     \n
/// Return 0 if no row is found.

  AliMpVRowSegment* segment = FindRowSegment(motifPositionId);
  
  if (segment) return segment->GetRow();
  
  return 0;  
}

//_____________________________________________________________________________
AliMpVRowSegment* AliMpSector::FindRowSegment(Int_t motifPositionId) const
{
/// Find the row segment with the the specified motif position.            \n
/// Return 0 if no row segment is found.

  for (Int_t irow=0; irow<GetNofRows(); irow++) {

    AliMpRow* row = (AliMpRow*)fRows[irow];

    for (Int_t iseg=0; iseg<row->GetNofRowSegments(); iseg++) {
      AliMpVRowSegment* segment = row->GetRowSegment(iseg); 
      if (segment->HasMotifPosition(motifPositionId)) return segment;
    }
  }
  
  return 0;    
}

//_____________________________________________________________________________
Double_t AliMpSector::GetPositionX() const
{
/// Return the sector offset.

  return fOffsetX;
}  


//_____________________________________________________________________________
Double_t AliMpSector::GetPositionY() const
{
/// Return the sector offset.

  return fOffsetY;
}  

//_____________________________________________________________________________
Double_t  AliMpSector::GetDimensionX() const
{
/// Return the maximum halflengths in x.

  return fDimensionX;
}  

//_____________________________________________________________________________
Double_t  AliMpSector::GetDimensionY() const
{
/// Return the maximum halflengths in y.

  return fDimensionY;
}  

//_____________________________________________________________________________
Int_t AliMpSector::GetNofZones() const
{    
/// Return the number of zones.

  return fZones.GetEntriesFast();
}  

//_____________________________________________________________________________
AliMpZone* AliMpSector::GetZone(Int_t zoneID) const
{
/// Return zone with specified ID.

  if (zoneID < 1 || zoneID > GetNofZones()) {
    AliWarningStream() << "Index outside range" << endl;
    return 0;
  }
  
  return (AliMpZone*)fZones[zoneID-1];
}  

//_____________________________________________________________________________
Int_t AliMpSector::GetNofRows() const
{
/// Return the number of rows.

  return fRows.GetEntriesFast();
}  

//_____________________________________________________________________________
AliMpRow* AliMpSector::GetRow(Int_t rowID) const
{
/// Return row with specified ID.

  if (rowID < 0 || rowID >= GetNofRows()) {
    AliWarningStream() << "Index outside range" << endl;
    return 0;
  }
  
  return (AliMpRow*)fRows[rowID];
}

//_____________________________________________________________________________
AliMp::PlaneType
AliMpSector::GetPlaneType() const
{
/// Return the plane type

  return GetDirection()==AliMp::kY ? AliMp::kBendingPlane : AliMp::kNonBendingPlane;
}

//_____________________________________________________________________________
Int_t 
AliMpSector::GetNofMotifPositions() const
{
  /// Return the number of manus
  
  return fMotifMap->GetNofMotifPositions();
}

//_____________________________________________________________________________
void 
AliMpSector::GetAllMotifPositionsIDs(TArrayI& ecn) const
{
/// Return the array of all motif positions IDs

  fMotifMap->GetAllMotifPositionsIDs(ecn);
}

//_____________________________________________________________________________
void
AliMpSector::Print(Option_t* opt) const
{
/// Print the map of motifs

  cout << "Sector," << PlaneTypeName(GetPlaneType()) << endl;
  fMotifMap->Print(opt);
}
 AliMpSector.cxx:1
 AliMpSector.cxx:2
 AliMpSector.cxx:3
 AliMpSector.cxx:4
 AliMpSector.cxx:5
 AliMpSector.cxx:6
 AliMpSector.cxx:7
 AliMpSector.cxx:8
 AliMpSector.cxx:9
 AliMpSector.cxx:10
 AliMpSector.cxx:11
 AliMpSector.cxx:12
 AliMpSector.cxx:13
 AliMpSector.cxx:14
 AliMpSector.cxx:15
 AliMpSector.cxx:16
 AliMpSector.cxx:17
 AliMpSector.cxx:18
 AliMpSector.cxx:19
 AliMpSector.cxx:20
 AliMpSector.cxx:21
 AliMpSector.cxx:22
 AliMpSector.cxx:23
 AliMpSector.cxx:24
 AliMpSector.cxx:25
 AliMpSector.cxx:26
 AliMpSector.cxx:27
 AliMpSector.cxx:28
 AliMpSector.cxx:29
 AliMpSector.cxx:30
 AliMpSector.cxx:31
 AliMpSector.cxx:32
 AliMpSector.cxx:33
 AliMpSector.cxx:34
 AliMpSector.cxx:35
 AliMpSector.cxx:36
 AliMpSector.cxx:37
 AliMpSector.cxx:38
 AliMpSector.cxx:39
 AliMpSector.cxx:40
 AliMpSector.cxx:41
 AliMpSector.cxx:42
 AliMpSector.cxx:43
 AliMpSector.cxx:44
 AliMpSector.cxx:45
 AliMpSector.cxx:46
 AliMpSector.cxx:47
 AliMpSector.cxx:48
 AliMpSector.cxx:49
 AliMpSector.cxx:50
 AliMpSector.cxx:51
 AliMpSector.cxx:52
 AliMpSector.cxx:53
 AliMpSector.cxx:54
 AliMpSector.cxx:55
 AliMpSector.cxx:56
 AliMpSector.cxx:57
 AliMpSector.cxx:58
 AliMpSector.cxx:59
 AliMpSector.cxx:60
 AliMpSector.cxx:61
 AliMpSector.cxx:62
 AliMpSector.cxx:63
 AliMpSector.cxx:64
 AliMpSector.cxx:65
 AliMpSector.cxx:66
 AliMpSector.cxx:67
 AliMpSector.cxx:68
 AliMpSector.cxx:69
 AliMpSector.cxx:70
 AliMpSector.cxx:71
 AliMpSector.cxx:72
 AliMpSector.cxx:73
 AliMpSector.cxx:74
 AliMpSector.cxx:75
 AliMpSector.cxx:76
 AliMpSector.cxx:77
 AliMpSector.cxx:78
 AliMpSector.cxx:79
 AliMpSector.cxx:80
 AliMpSector.cxx:81
 AliMpSector.cxx:82
 AliMpSector.cxx:83
 AliMpSector.cxx:84
 AliMpSector.cxx:85
 AliMpSector.cxx:86
 AliMpSector.cxx:87
 AliMpSector.cxx:88
 AliMpSector.cxx:89
 AliMpSector.cxx:90
 AliMpSector.cxx:91
 AliMpSector.cxx:92
 AliMpSector.cxx:93
 AliMpSector.cxx:94
 AliMpSector.cxx:95
 AliMpSector.cxx:96
 AliMpSector.cxx:97
 AliMpSector.cxx:98
 AliMpSector.cxx:99
 AliMpSector.cxx:100
 AliMpSector.cxx:101
 AliMpSector.cxx:102
 AliMpSector.cxx:103
 AliMpSector.cxx:104
 AliMpSector.cxx:105
 AliMpSector.cxx:106
 AliMpSector.cxx:107
 AliMpSector.cxx:108
 AliMpSector.cxx:109
 AliMpSector.cxx:110
 AliMpSector.cxx:111
 AliMpSector.cxx:112
 AliMpSector.cxx:113
 AliMpSector.cxx:114
 AliMpSector.cxx:115
 AliMpSector.cxx:116
 AliMpSector.cxx:117
 AliMpSector.cxx:118
 AliMpSector.cxx:119
 AliMpSector.cxx:120
 AliMpSector.cxx:121
 AliMpSector.cxx:122
 AliMpSector.cxx:123
 AliMpSector.cxx:124
 AliMpSector.cxx:125
 AliMpSector.cxx:126
 AliMpSector.cxx:127
 AliMpSector.cxx:128
 AliMpSector.cxx:129
 AliMpSector.cxx:130
 AliMpSector.cxx:131
 AliMpSector.cxx:132
 AliMpSector.cxx:133
 AliMpSector.cxx:134
 AliMpSector.cxx:135
 AliMpSector.cxx:136
 AliMpSector.cxx:137
 AliMpSector.cxx:138
 AliMpSector.cxx:139
 AliMpSector.cxx:140
 AliMpSector.cxx:141
 AliMpSector.cxx:142
 AliMpSector.cxx:143
 AliMpSector.cxx:144
 AliMpSector.cxx:145
 AliMpSector.cxx:146
 AliMpSector.cxx:147
 AliMpSector.cxx:148
 AliMpSector.cxx:149
 AliMpSector.cxx:150
 AliMpSector.cxx:151
 AliMpSector.cxx:152
 AliMpSector.cxx:153
 AliMpSector.cxx:154
 AliMpSector.cxx:155
 AliMpSector.cxx:156
 AliMpSector.cxx:157
 AliMpSector.cxx:158
 AliMpSector.cxx:159
 AliMpSector.cxx:160
 AliMpSector.cxx:161
 AliMpSector.cxx:162
 AliMpSector.cxx:163
 AliMpSector.cxx:164
 AliMpSector.cxx:165
 AliMpSector.cxx:166
 AliMpSector.cxx:167
 AliMpSector.cxx:168
 AliMpSector.cxx:169
 AliMpSector.cxx:170
 AliMpSector.cxx:171
 AliMpSector.cxx:172
 AliMpSector.cxx:173
 AliMpSector.cxx:174
 AliMpSector.cxx:175
 AliMpSector.cxx:176
 AliMpSector.cxx:177
 AliMpSector.cxx:178
 AliMpSector.cxx:179
 AliMpSector.cxx:180
 AliMpSector.cxx:181
 AliMpSector.cxx:182
 AliMpSector.cxx:183
 AliMpSector.cxx:184
 AliMpSector.cxx:185
 AliMpSector.cxx:186
 AliMpSector.cxx:187
 AliMpSector.cxx:188
 AliMpSector.cxx:189
 AliMpSector.cxx:190
 AliMpSector.cxx:191
 AliMpSector.cxx:192
 AliMpSector.cxx:193
 AliMpSector.cxx:194
 AliMpSector.cxx:195
 AliMpSector.cxx:196
 AliMpSector.cxx:197
 AliMpSector.cxx:198
 AliMpSector.cxx:199
 AliMpSector.cxx:200
 AliMpSector.cxx:201
 AliMpSector.cxx:202
 AliMpSector.cxx:203
 AliMpSector.cxx:204
 AliMpSector.cxx:205
 AliMpSector.cxx:206
 AliMpSector.cxx:207
 AliMpSector.cxx:208
 AliMpSector.cxx:209
 AliMpSector.cxx:210
 AliMpSector.cxx:211
 AliMpSector.cxx:212
 AliMpSector.cxx:213
 AliMpSector.cxx:214
 AliMpSector.cxx:215
 AliMpSector.cxx:216
 AliMpSector.cxx:217
 AliMpSector.cxx:218
 AliMpSector.cxx:219
 AliMpSector.cxx:220
 AliMpSector.cxx:221
 AliMpSector.cxx:222
 AliMpSector.cxx:223
 AliMpSector.cxx:224
 AliMpSector.cxx:225
 AliMpSector.cxx:226
 AliMpSector.cxx:227
 AliMpSector.cxx:228
 AliMpSector.cxx:229
 AliMpSector.cxx:230
 AliMpSector.cxx:231
 AliMpSector.cxx:232
 AliMpSector.cxx:233
 AliMpSector.cxx:234
 AliMpSector.cxx:235
 AliMpSector.cxx:236
 AliMpSector.cxx:237
 AliMpSector.cxx:238
 AliMpSector.cxx:239
 AliMpSector.cxx:240
 AliMpSector.cxx:241
 AliMpSector.cxx:242
 AliMpSector.cxx:243
 AliMpSector.cxx:244
 AliMpSector.cxx:245
 AliMpSector.cxx:246
 AliMpSector.cxx:247
 AliMpSector.cxx:248
 AliMpSector.cxx:249
 AliMpSector.cxx:250
 AliMpSector.cxx:251
 AliMpSector.cxx:252
 AliMpSector.cxx:253
 AliMpSector.cxx:254
 AliMpSector.cxx:255
 AliMpSector.cxx:256
 AliMpSector.cxx:257
 AliMpSector.cxx:258
 AliMpSector.cxx:259
 AliMpSector.cxx:260
 AliMpSector.cxx:261
 AliMpSector.cxx:262
 AliMpSector.cxx:263
 AliMpSector.cxx:264
 AliMpSector.cxx:265
 AliMpSector.cxx:266
 AliMpSector.cxx:267
 AliMpSector.cxx:268
 AliMpSector.cxx:269
 AliMpSector.cxx:270
 AliMpSector.cxx:271
 AliMpSector.cxx:272
 AliMpSector.cxx:273
 AliMpSector.cxx:274
 AliMpSector.cxx:275
 AliMpSector.cxx:276
 AliMpSector.cxx:277
 AliMpSector.cxx:278
 AliMpSector.cxx:279
 AliMpSector.cxx:280
 AliMpSector.cxx:281
 AliMpSector.cxx:282
 AliMpSector.cxx:283
 AliMpSector.cxx:284
 AliMpSector.cxx:285
 AliMpSector.cxx:286
 AliMpSector.cxx:287
 AliMpSector.cxx:288
 AliMpSector.cxx:289
 AliMpSector.cxx:290
 AliMpSector.cxx:291
 AliMpSector.cxx:292
 AliMpSector.cxx:293
 AliMpSector.cxx:294
 AliMpSector.cxx:295
 AliMpSector.cxx:296
 AliMpSector.cxx:297
 AliMpSector.cxx:298
 AliMpSector.cxx:299
 AliMpSector.cxx:300
 AliMpSector.cxx:301
 AliMpSector.cxx:302
 AliMpSector.cxx:303
 AliMpSector.cxx:304
 AliMpSector.cxx:305
 AliMpSector.cxx:306
 AliMpSector.cxx:307
 AliMpSector.cxx:308
 AliMpSector.cxx:309
 AliMpSector.cxx:310
 AliMpSector.cxx:311
 AliMpSector.cxx:312
 AliMpSector.cxx:313
 AliMpSector.cxx:314
 AliMpSector.cxx:315
 AliMpSector.cxx:316
 AliMpSector.cxx:317
 AliMpSector.cxx:318
 AliMpSector.cxx:319
 AliMpSector.cxx:320
 AliMpSector.cxx:321
 AliMpSector.cxx:322
 AliMpSector.cxx:323
 AliMpSector.cxx:324
 AliMpSector.cxx:325
 AliMpSector.cxx:326
 AliMpSector.cxx:327
 AliMpSector.cxx:328
 AliMpSector.cxx:329
 AliMpSector.cxx:330
 AliMpSector.cxx:331
 AliMpSector.cxx:332
 AliMpSector.cxx:333
 AliMpSector.cxx:334
 AliMpSector.cxx:335
 AliMpSector.cxx:336
 AliMpSector.cxx:337
 AliMpSector.cxx:338
 AliMpSector.cxx:339
 AliMpSector.cxx:340
 AliMpSector.cxx:341
 AliMpSector.cxx:342
 AliMpSector.cxx:343
 AliMpSector.cxx:344
 AliMpSector.cxx:345
 AliMpSector.cxx:346
 AliMpSector.cxx:347
 AliMpSector.cxx:348
 AliMpSector.cxx:349
 AliMpSector.cxx:350
 AliMpSector.cxx:351
 AliMpSector.cxx:352
 AliMpSector.cxx:353
 AliMpSector.cxx:354
 AliMpSector.cxx:355
 AliMpSector.cxx:356
 AliMpSector.cxx:357
 AliMpSector.cxx:358
 AliMpSector.cxx:359
 AliMpSector.cxx:360
 AliMpSector.cxx:361
 AliMpSector.cxx:362
 AliMpSector.cxx:363
 AliMpSector.cxx:364
 AliMpSector.cxx:365
 AliMpSector.cxx:366
 AliMpSector.cxx:367
 AliMpSector.cxx:368
 AliMpSector.cxx:369
 AliMpSector.cxx:370
 AliMpSector.cxx:371
 AliMpSector.cxx:372
 AliMpSector.cxx:373
 AliMpSector.cxx:374
 AliMpSector.cxx:375
 AliMpSector.cxx:376
 AliMpSector.cxx:377
 AliMpSector.cxx:378
 AliMpSector.cxx:379
 AliMpSector.cxx:380
 AliMpSector.cxx:381
 AliMpSector.cxx:382
 AliMpSector.cxx:383
 AliMpSector.cxx:384
 AliMpSector.cxx:385
 AliMpSector.cxx:386
 AliMpSector.cxx:387
 AliMpSector.cxx:388
 AliMpSector.cxx:389
 AliMpSector.cxx:390
 AliMpSector.cxx:391
 AliMpSector.cxx:392
 AliMpSector.cxx:393
 AliMpSector.cxx:394
 AliMpSector.cxx:395
 AliMpSector.cxx:396
 AliMpSector.cxx:397
 AliMpSector.cxx:398
 AliMpSector.cxx:399
 AliMpSector.cxx:400
 AliMpSector.cxx:401
 AliMpSector.cxx:402
 AliMpSector.cxx:403
 AliMpSector.cxx:404
 AliMpSector.cxx:405
 AliMpSector.cxx:406
 AliMpSector.cxx:407
 AliMpSector.cxx:408
 AliMpSector.cxx:409
 AliMpSector.cxx:410
 AliMpSector.cxx:411
 AliMpSector.cxx:412
 AliMpSector.cxx:413
 AliMpSector.cxx:414
 AliMpSector.cxx:415
 AliMpSector.cxx:416
 AliMpSector.cxx:417
 AliMpSector.cxx:418
 AliMpSector.cxx:419
 AliMpSector.cxx:420
 AliMpSector.cxx:421
 AliMpSector.cxx:422
 AliMpSector.cxx:423
 AliMpSector.cxx:424
 AliMpSector.cxx:425
 AliMpSector.cxx:426
 AliMpSector.cxx:427
 AliMpSector.cxx:428
 AliMpSector.cxx:429
 AliMpSector.cxx:430
 AliMpSector.cxx:431
 AliMpSector.cxx:432
 AliMpSector.cxx:433
 AliMpSector.cxx:434
 AliMpSector.cxx:435
 AliMpSector.cxx:436
 AliMpSector.cxx:437
 AliMpSector.cxx:438
 AliMpSector.cxx:439
 AliMpSector.cxx:440
 AliMpSector.cxx:441
 AliMpSector.cxx:442
 AliMpSector.cxx:443
 AliMpSector.cxx:444
 AliMpSector.cxx:445
 AliMpSector.cxx:446
 AliMpSector.cxx:447
 AliMpSector.cxx:448
 AliMpSector.cxx:449
 AliMpSector.cxx:450
 AliMpSector.cxx:451
 AliMpSector.cxx:452
 AliMpSector.cxx:453
 AliMpSector.cxx:454
 AliMpSector.cxx:455
 AliMpSector.cxx:456
 AliMpSector.cxx:457
 AliMpSector.cxx:458
 AliMpSector.cxx:459
 AliMpSector.cxx:460
 AliMpSector.cxx:461
 AliMpSector.cxx:462
 AliMpSector.cxx:463
 AliMpSector.cxx:464
 AliMpSector.cxx:465
 AliMpSector.cxx:466
 AliMpSector.cxx:467
 AliMpSector.cxx:468
 AliMpSector.cxx:469
 AliMpSector.cxx:470
 AliMpSector.cxx:471
 AliMpSector.cxx:472
 AliMpSector.cxx:473
 AliMpSector.cxx:474
 AliMpSector.cxx:475
 AliMpSector.cxx:476
 AliMpSector.cxx:477
 AliMpSector.cxx:478
 AliMpSector.cxx:479
 AliMpSector.cxx:480
 AliMpSector.cxx:481
 AliMpSector.cxx:482
 AliMpSector.cxx:483
 AliMpSector.cxx:484
 AliMpSector.cxx:485
 AliMpSector.cxx:486
 AliMpSector.cxx:487
 AliMpSector.cxx:488