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

//-----------------------------------------------------------------------------
// Class AliMpRowSegmentLSpecial
// -----------------------------
// Class describing a special inner row segment composed of the 
// pad rows.
// Included in AliRoot: 2003/05/02
// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
//-----------------------------------------------------------------------------

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

#include "AliMpRowSegmentLSpecial.h"
#include "AliMpRow.h"
#include "AliMpPadRow.h"
#include "AliMpVPadRowSegment.h"
#include "AliMpMotif.h"
#include "AliMpMotifType.h"
#include "AliMpMotifMap.h"
#include "AliMpMotifPosition.h"
#include "AliMpConstants.h"
#include "AliMpEncodePair.h"

#include "AliLog.h"

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

//______________________________________________________________________________
AliMpRowSegmentLSpecial::AliMpRowSegmentLSpecial(AliMpRow* row, Double_t offsetX)
  : AliMpVRowSegmentSpecial(row, offsetX)
{
/// Standard constructor
}

//______________________________________________________________________________
AliMpRowSegmentLSpecial::AliMpRowSegmentLSpecial() 
  : AliMpVRowSegmentSpecial()
{
/// Default constructor
}

//______________________________________________________________________________
AliMpRowSegmentLSpecial::~AliMpRowSegmentLSpecial() 
{
/// Destructor  
}

//
// private methods  
//

//______________________________________________________________________________
AliMpVPadRowSegment*  
AliMpRowSegmentLSpecial::FindMostRightPadRowSegment(Int_t motifPositionId) const
{
/// Find the most right pad row segment with this motifPositionId.

  AliMpVPadRowSegment* found = 0;

  for (Int_t i=0; i<GetNofPadRows(); i++) {
    AliMpPadRow* padRow = GetPadRow(i);    

    for (Int_t j=0; j<padRow->GetNofPadRowSegments(); j++) { 
      AliMpVPadRowSegment* padRowSegment = padRow->GetPadRowSegment(j);

      if ( padRowSegment->GetMotifPositionId() == motifPositionId &&
           (!found || padRowSegment->RightBorderX() > found->RightBorderX()))
	   
        found = padRowSegment;  
    }
  }

  return found;   	
}

//
// protected methods  
//

//______________________________________________________________________________
void AliMpRowSegmentLSpecial::MotifCenterSlow(Int_t motifPositionId,
                                              Double_t& x, Double_t& y) const
{
/// Fill the coordinates of the motif specified with
/// the given position identifier.                                           \n
/// !! Applicable only for motifs that have their most down pad in
/// this row segment.

  // Find the first (left, down) pad row segment with this motifPositionId.
  AliMpVPadRowSegment* downPadRowSegment 
    = FindPadRowSegment(motifPositionId);
  AliMpVPadRowSegment* rightPadRowSegment 
    = FindMostRightPadRowSegment(motifPositionId);
  
  // Check if the motifPositionId is present 
  if (!downPadRowSegment || !rightPadRowSegment) {
    AliErrorStream() << "Outside row segment region" << endl;
    return;
  }

  // Check if both pad row segments have the same motif 
  if (downPadRowSegment->GetMotif() != rightPadRowSegment->GetMotif()) {
    AliFatal("Outside row segment region");
    return;
  }

  // Get position of found row segment
  x = rightPadRowSegment->RightBorderX();       
  y = GetRow()->LowBorderY()  ;   
  
  for (Int_t i=0; i<downPadRowSegment->GetPadRow()->GetID(); i++)
    y += GetPadRow(i)->HalfSizeY()*2.;
    
  // Add motifs dimensions
  x -= downPadRowSegment->GetMotif()->DimensionX();
  y += downPadRowSegment->GetMotif()->DimensionY();
}

//
// public methods  
//

//______________________________________________________________________________
void AliMpRowSegmentLSpecial::UpdatePadsOffset()
{
/// Set low indices limit to the pad offset calculated
/// from the neighbour normal segment.

  // Get the neighbour row segment
  // (the first normal segment)
  AliMpVRowSegment* neighbour = GetRow()->GetRowSegment(1);

  // Get the the pads offset of the neighbour row segment
  // (the first normal segment)
  MpPair_t offset = neighbour->GetLowIndicesLimit();
  
  // Find max nof pads in a row
  Int_t maxNofPads = MaxNofPadsInRow();

  // Set limits
  SetLowIndicesLimit(offset - AliMp::Pair(maxNofPads, 0));

  // Reset limits in the neighbour row segment
  // (pad offset is now included in the special segment)  
  neighbour->SetLowIndicesLimit(0, neighbour->GetLowLimitIy());
}

//______________________________________________________________________________
Double_t  AliMpRowSegmentLSpecial::LeftBorderX() const
{
/// Return the x coordinate of the left row segment border
/// in the global coordinate system.

  Double_t leftBorder = DBL_MAX;
  for (Int_t i=0; i<GetNofPadRows(); i++) {
    AliMpPadRow* padRow = GetPadRow(i);
    Double_t border 
      = padRow->GetPadRowSegment(padRow->GetNofPadRowSegments()-1)->LeftBorderX();
      
    if (border < leftBorder) leftBorder =  border;
  }  
  
  return leftBorder;
}

//______________________________________________________________________________
Double_t  AliMpRowSegmentLSpecial::RightBorderX() const
{
/// Returns the x coordinate of the right row segment border
/// in the global coordinate system.

  Double_t sameBorder = GetOffsetX();

  // Consistence check  
  Double_t rightBorder = -DBL_MAX;
  for (Int_t i=0; i<GetNofPadRows(); i++) {
    AliMpPadRow* padRow = GetPadRow(i);
    Double_t border = padRow->GetPadRowSegment(0)->RightBorderX();
    if (border > rightBorder) rightBorder =  border;
  }  

  if (TMath::Abs(GetOffsetX() - rightBorder) > 1.e-04)  {
    AliErrorStream() << "WrongBorder" << endl;
    return sameBorder;
  }  
  
  return rightBorder;
}

//______________________________________________________________________________
Double_t AliMpRowSegmentLSpecial::GetPositionX() const
{
/// Return the x position of the row segment centre.
/// The centre is defined as the centre of the rectangular
/// row segment envelope.

  return GetOffsetX() - GetDimensionX();		    
}

//______________________________________________________________________________
Double_t AliMpRowSegmentLSpecial::GetPositionY() const
{
/// Return the y position of the row segment centre.
/// The centre is defined as the centre of the rectangular
/// row segment envelope.

  return GetRow()->GetPositionY();  
}

#include <Riostream.h>
//______________________________________________________________________________
Int_t AliMpRowSegmentLSpecial::SetIndicesToMotifPosition(Int_t i, MpPair_t indices)
{
/// Set global indices to i-th motif position and returns next index in x.

  // Get motif position
  AliMpMotifPosition* motifPosition
    = GetRow()->GetMotifMap()->FindMotifPosition(GetMotifPositionId(i));

  // Low limit
  MpPair_t low 
    = AliMp::Pair(GetLowLimitIx() + AliMpConstants::StartPadIndex(), 
	          AliMp::PairSecond(indices))
      + FindRelativeLowIndicesOf(GetMotifPositionId(i));
            
  if (! motifPosition->IsHighLimitValid()) {   
     motifPosition->SetLowIndicesLimit(low);
  } 
  else {
    if ( motifPosition->GetLowLimitIx() > AliMp::PairFirst(low) )
      motifPosition->SetLowIndicesLimit(
                                 AliMp::PairFirst(low),
                                 motifPosition->GetLowLimitIy());

    if ( motifPosition->GetLowLimitIy() > AliMp::PairSecond(low) )
       motifPosition->SetLowIndicesLimit(
                                 motifPosition->GetLowLimitIx(),
                                 AliMp::PairSecond(low) );
  }
             
  // High limit	     
  AliMpMotifType* motifType = motifPosition->GetMotif()->GetMotifType();  
  MpPair_t high 
    = motifPosition->GetLowIndicesLimit()
      + AliMp::Pair(motifType->GetNofPadsX()-1, motifType->GetNofPadsY()-1);  
                
  motifPosition->SetHighIndicesLimit(high);

  // Increment index only if last motif position is processed 
  if ( i != GetNofMotifs()-1 ) 
    return AliMp::PairFirst(indices);
    //return 0;
  else
    return AliMp::PairFirst(indices) + MaxNofPadsInRow();  
    //return MaxNofPadsInRow();  
}
//______________________________________________________________________________
void AliMpRowSegmentLSpecial::SetGlobalIndices(AliMpRow* rowBefore)
{
/// Set indices limits
/// The limits are defined as the limits of the smallest rectangle which
/// includes all pads of this special row segment.

  // Low ix
  Int_t ixl = GetLowLimitIx() + AliMpConstants::StartPadIndex();
      // the pads offset was already defined by Reader

  // High ix
  Int_t ixh = ixl + MaxNofPadsInRow() - 1;

  // Low iy
  Int_t iyl = AliMpConstants::StartPadIndex();
  if (rowBefore) {
    //if (constPadSizeDirection == kY) {
      iyl = rowBefore->GetHighLimitIy()+1;
    //} 
    /*
    else {
      AliMpVRowSegment* seg = rowBefore->FindRowSegment(ixl);	
      AliMpMotifPosition* motPos =  rowBefore->FindMotifPosition(seg, ixl);
      if (!motPos) 
        Fatal("SetGlobalIndices", "Motif position in rowBefore not found.");
      iyl = motPos->GetHighLimitIy()+1;
    }
    */
  }  

  // High iy
  Int_t iyh = iyl + GetNofPadRows() - 1;
  
  SetLowIndicesLimit(ixl, iyl);
  SetHighIndicesLimit(ixh, iyh);
}  




 AliMpRowSegmentLSpecial.cxx:1
 AliMpRowSegmentLSpecial.cxx:2
 AliMpRowSegmentLSpecial.cxx:3
 AliMpRowSegmentLSpecial.cxx:4
 AliMpRowSegmentLSpecial.cxx:5
 AliMpRowSegmentLSpecial.cxx:6
 AliMpRowSegmentLSpecial.cxx:7
 AliMpRowSegmentLSpecial.cxx:8
 AliMpRowSegmentLSpecial.cxx:9
 AliMpRowSegmentLSpecial.cxx:10
 AliMpRowSegmentLSpecial.cxx:11
 AliMpRowSegmentLSpecial.cxx:12
 AliMpRowSegmentLSpecial.cxx:13
 AliMpRowSegmentLSpecial.cxx:14
 AliMpRowSegmentLSpecial.cxx:15
 AliMpRowSegmentLSpecial.cxx:16
 AliMpRowSegmentLSpecial.cxx:17
 AliMpRowSegmentLSpecial.cxx:18
 AliMpRowSegmentLSpecial.cxx:19
 AliMpRowSegmentLSpecial.cxx:20
 AliMpRowSegmentLSpecial.cxx:21
 AliMpRowSegmentLSpecial.cxx:22
 AliMpRowSegmentLSpecial.cxx:23
 AliMpRowSegmentLSpecial.cxx:24
 AliMpRowSegmentLSpecial.cxx:25
 AliMpRowSegmentLSpecial.cxx:26
 AliMpRowSegmentLSpecial.cxx:27
 AliMpRowSegmentLSpecial.cxx:28
 AliMpRowSegmentLSpecial.cxx:29
 AliMpRowSegmentLSpecial.cxx:30
 AliMpRowSegmentLSpecial.cxx:31
 AliMpRowSegmentLSpecial.cxx:32
 AliMpRowSegmentLSpecial.cxx:33
 AliMpRowSegmentLSpecial.cxx:34
 AliMpRowSegmentLSpecial.cxx:35
 AliMpRowSegmentLSpecial.cxx:36
 AliMpRowSegmentLSpecial.cxx:37
 AliMpRowSegmentLSpecial.cxx:38
 AliMpRowSegmentLSpecial.cxx:39
 AliMpRowSegmentLSpecial.cxx:40
 AliMpRowSegmentLSpecial.cxx:41
 AliMpRowSegmentLSpecial.cxx:42
 AliMpRowSegmentLSpecial.cxx:43
 AliMpRowSegmentLSpecial.cxx:44
 AliMpRowSegmentLSpecial.cxx:45
 AliMpRowSegmentLSpecial.cxx:46
 AliMpRowSegmentLSpecial.cxx:47
 AliMpRowSegmentLSpecial.cxx:48
 AliMpRowSegmentLSpecial.cxx:49
 AliMpRowSegmentLSpecial.cxx:50
 AliMpRowSegmentLSpecial.cxx:51
 AliMpRowSegmentLSpecial.cxx:52
 AliMpRowSegmentLSpecial.cxx:53
 AliMpRowSegmentLSpecial.cxx:54
 AliMpRowSegmentLSpecial.cxx:55
 AliMpRowSegmentLSpecial.cxx:56
 AliMpRowSegmentLSpecial.cxx:57
 AliMpRowSegmentLSpecial.cxx:58
 AliMpRowSegmentLSpecial.cxx:59
 AliMpRowSegmentLSpecial.cxx:60
 AliMpRowSegmentLSpecial.cxx:61
 AliMpRowSegmentLSpecial.cxx:62
 AliMpRowSegmentLSpecial.cxx:63
 AliMpRowSegmentLSpecial.cxx:64
 AliMpRowSegmentLSpecial.cxx:65
 AliMpRowSegmentLSpecial.cxx:66
 AliMpRowSegmentLSpecial.cxx:67
 AliMpRowSegmentLSpecial.cxx:68
 AliMpRowSegmentLSpecial.cxx:69
 AliMpRowSegmentLSpecial.cxx:70
 AliMpRowSegmentLSpecial.cxx:71
 AliMpRowSegmentLSpecial.cxx:72
 AliMpRowSegmentLSpecial.cxx:73
 AliMpRowSegmentLSpecial.cxx:74
 AliMpRowSegmentLSpecial.cxx:75
 AliMpRowSegmentLSpecial.cxx:76
 AliMpRowSegmentLSpecial.cxx:77
 AliMpRowSegmentLSpecial.cxx:78
 AliMpRowSegmentLSpecial.cxx:79
 AliMpRowSegmentLSpecial.cxx:80
 AliMpRowSegmentLSpecial.cxx:81
 AliMpRowSegmentLSpecial.cxx:82
 AliMpRowSegmentLSpecial.cxx:83
 AliMpRowSegmentLSpecial.cxx:84
 AliMpRowSegmentLSpecial.cxx:85
 AliMpRowSegmentLSpecial.cxx:86
 AliMpRowSegmentLSpecial.cxx:87
 AliMpRowSegmentLSpecial.cxx:88
 AliMpRowSegmentLSpecial.cxx:89
 AliMpRowSegmentLSpecial.cxx:90
 AliMpRowSegmentLSpecial.cxx:91
 AliMpRowSegmentLSpecial.cxx:92
 AliMpRowSegmentLSpecial.cxx:93
 AliMpRowSegmentLSpecial.cxx:94
 AliMpRowSegmentLSpecial.cxx:95
 AliMpRowSegmentLSpecial.cxx:96
 AliMpRowSegmentLSpecial.cxx:97
 AliMpRowSegmentLSpecial.cxx:98
 AliMpRowSegmentLSpecial.cxx:99
 AliMpRowSegmentLSpecial.cxx:100
 AliMpRowSegmentLSpecial.cxx:101
 AliMpRowSegmentLSpecial.cxx:102
 AliMpRowSegmentLSpecial.cxx:103
 AliMpRowSegmentLSpecial.cxx:104
 AliMpRowSegmentLSpecial.cxx:105
 AliMpRowSegmentLSpecial.cxx:106
 AliMpRowSegmentLSpecial.cxx:107
 AliMpRowSegmentLSpecial.cxx:108
 AliMpRowSegmentLSpecial.cxx:109
 AliMpRowSegmentLSpecial.cxx:110
 AliMpRowSegmentLSpecial.cxx:111
 AliMpRowSegmentLSpecial.cxx:112
 AliMpRowSegmentLSpecial.cxx:113
 AliMpRowSegmentLSpecial.cxx:114
 AliMpRowSegmentLSpecial.cxx:115
 AliMpRowSegmentLSpecial.cxx:116
 AliMpRowSegmentLSpecial.cxx:117
 AliMpRowSegmentLSpecial.cxx:118
 AliMpRowSegmentLSpecial.cxx:119
 AliMpRowSegmentLSpecial.cxx:120
 AliMpRowSegmentLSpecial.cxx:121
 AliMpRowSegmentLSpecial.cxx:122
 AliMpRowSegmentLSpecial.cxx:123
 AliMpRowSegmentLSpecial.cxx:124
 AliMpRowSegmentLSpecial.cxx:125
 AliMpRowSegmentLSpecial.cxx:126
 AliMpRowSegmentLSpecial.cxx:127
 AliMpRowSegmentLSpecial.cxx:128
 AliMpRowSegmentLSpecial.cxx:129
 AliMpRowSegmentLSpecial.cxx:130
 AliMpRowSegmentLSpecial.cxx:131
 AliMpRowSegmentLSpecial.cxx:132
 AliMpRowSegmentLSpecial.cxx:133
 AliMpRowSegmentLSpecial.cxx:134
 AliMpRowSegmentLSpecial.cxx:135
 AliMpRowSegmentLSpecial.cxx:136
 AliMpRowSegmentLSpecial.cxx:137
 AliMpRowSegmentLSpecial.cxx:138
 AliMpRowSegmentLSpecial.cxx:139
 AliMpRowSegmentLSpecial.cxx:140
 AliMpRowSegmentLSpecial.cxx:141
 AliMpRowSegmentLSpecial.cxx:142
 AliMpRowSegmentLSpecial.cxx:143
 AliMpRowSegmentLSpecial.cxx:144
 AliMpRowSegmentLSpecial.cxx:145
 AliMpRowSegmentLSpecial.cxx:146
 AliMpRowSegmentLSpecial.cxx:147
 AliMpRowSegmentLSpecial.cxx:148
 AliMpRowSegmentLSpecial.cxx:149
 AliMpRowSegmentLSpecial.cxx:150
 AliMpRowSegmentLSpecial.cxx:151
 AliMpRowSegmentLSpecial.cxx:152
 AliMpRowSegmentLSpecial.cxx:153
 AliMpRowSegmentLSpecial.cxx:154
 AliMpRowSegmentLSpecial.cxx:155
 AliMpRowSegmentLSpecial.cxx:156
 AliMpRowSegmentLSpecial.cxx:157
 AliMpRowSegmentLSpecial.cxx:158
 AliMpRowSegmentLSpecial.cxx:159
 AliMpRowSegmentLSpecial.cxx:160
 AliMpRowSegmentLSpecial.cxx:161
 AliMpRowSegmentLSpecial.cxx:162
 AliMpRowSegmentLSpecial.cxx:163
 AliMpRowSegmentLSpecial.cxx:164
 AliMpRowSegmentLSpecial.cxx:165
 AliMpRowSegmentLSpecial.cxx:166
 AliMpRowSegmentLSpecial.cxx:167
 AliMpRowSegmentLSpecial.cxx:168
 AliMpRowSegmentLSpecial.cxx:169
 AliMpRowSegmentLSpecial.cxx:170
 AliMpRowSegmentLSpecial.cxx:171
 AliMpRowSegmentLSpecial.cxx:172
 AliMpRowSegmentLSpecial.cxx:173
 AliMpRowSegmentLSpecial.cxx:174
 AliMpRowSegmentLSpecial.cxx:175
 AliMpRowSegmentLSpecial.cxx:176
 AliMpRowSegmentLSpecial.cxx:177
 AliMpRowSegmentLSpecial.cxx:178
 AliMpRowSegmentLSpecial.cxx:179
 AliMpRowSegmentLSpecial.cxx:180
 AliMpRowSegmentLSpecial.cxx:181
 AliMpRowSegmentLSpecial.cxx:182
 AliMpRowSegmentLSpecial.cxx:183
 AliMpRowSegmentLSpecial.cxx:184
 AliMpRowSegmentLSpecial.cxx:185
 AliMpRowSegmentLSpecial.cxx:186
 AliMpRowSegmentLSpecial.cxx:187
 AliMpRowSegmentLSpecial.cxx:188
 AliMpRowSegmentLSpecial.cxx:189
 AliMpRowSegmentLSpecial.cxx:190
 AliMpRowSegmentLSpecial.cxx:191
 AliMpRowSegmentLSpecial.cxx:192
 AliMpRowSegmentLSpecial.cxx:193
 AliMpRowSegmentLSpecial.cxx:194
 AliMpRowSegmentLSpecial.cxx:195
 AliMpRowSegmentLSpecial.cxx:196
 AliMpRowSegmentLSpecial.cxx:197
 AliMpRowSegmentLSpecial.cxx:198
 AliMpRowSegmentLSpecial.cxx:199
 AliMpRowSegmentLSpecial.cxx:200
 AliMpRowSegmentLSpecial.cxx:201
 AliMpRowSegmentLSpecial.cxx:202
 AliMpRowSegmentLSpecial.cxx:203
 AliMpRowSegmentLSpecial.cxx:204
 AliMpRowSegmentLSpecial.cxx:205
 AliMpRowSegmentLSpecial.cxx:206
 AliMpRowSegmentLSpecial.cxx:207
 AliMpRowSegmentLSpecial.cxx:208
 AliMpRowSegmentLSpecial.cxx:209
 AliMpRowSegmentLSpecial.cxx:210
 AliMpRowSegmentLSpecial.cxx:211
 AliMpRowSegmentLSpecial.cxx:212
 AliMpRowSegmentLSpecial.cxx:213
 AliMpRowSegmentLSpecial.cxx:214
 AliMpRowSegmentLSpecial.cxx:215
 AliMpRowSegmentLSpecial.cxx:216
 AliMpRowSegmentLSpecial.cxx:217
 AliMpRowSegmentLSpecial.cxx:218
 AliMpRowSegmentLSpecial.cxx:219
 AliMpRowSegmentLSpecial.cxx:220
 AliMpRowSegmentLSpecial.cxx:221
 AliMpRowSegmentLSpecial.cxx:222
 AliMpRowSegmentLSpecial.cxx:223
 AliMpRowSegmentLSpecial.cxx:224
 AliMpRowSegmentLSpecial.cxx:225
 AliMpRowSegmentLSpecial.cxx:226
 AliMpRowSegmentLSpecial.cxx:227
 AliMpRowSegmentLSpecial.cxx:228
 AliMpRowSegmentLSpecial.cxx:229
 AliMpRowSegmentLSpecial.cxx:230
 AliMpRowSegmentLSpecial.cxx:231
 AliMpRowSegmentLSpecial.cxx:232
 AliMpRowSegmentLSpecial.cxx:233
 AliMpRowSegmentLSpecial.cxx:234
 AliMpRowSegmentLSpecial.cxx:235
 AliMpRowSegmentLSpecial.cxx:236
 AliMpRowSegmentLSpecial.cxx:237
 AliMpRowSegmentLSpecial.cxx:238
 AliMpRowSegmentLSpecial.cxx:239
 AliMpRowSegmentLSpecial.cxx:240
 AliMpRowSegmentLSpecial.cxx:241
 AliMpRowSegmentLSpecial.cxx:242
 AliMpRowSegmentLSpecial.cxx:243
 AliMpRowSegmentLSpecial.cxx:244
 AliMpRowSegmentLSpecial.cxx:245
 AliMpRowSegmentLSpecial.cxx:246
 AliMpRowSegmentLSpecial.cxx:247
 AliMpRowSegmentLSpecial.cxx:248
 AliMpRowSegmentLSpecial.cxx:249
 AliMpRowSegmentLSpecial.cxx:250
 AliMpRowSegmentLSpecial.cxx:251
 AliMpRowSegmentLSpecial.cxx:252
 AliMpRowSegmentLSpecial.cxx:253
 AliMpRowSegmentLSpecial.cxx:254
 AliMpRowSegmentLSpecial.cxx:255
 AliMpRowSegmentLSpecial.cxx:256
 AliMpRowSegmentLSpecial.cxx:257
 AliMpRowSegmentLSpecial.cxx:258
 AliMpRowSegmentLSpecial.cxx:259
 AliMpRowSegmentLSpecial.cxx:260
 AliMpRowSegmentLSpecial.cxx:261
 AliMpRowSegmentLSpecial.cxx:262
 AliMpRowSegmentLSpecial.cxx:263
 AliMpRowSegmentLSpecial.cxx:264
 AliMpRowSegmentLSpecial.cxx:265
 AliMpRowSegmentLSpecial.cxx:266
 AliMpRowSegmentLSpecial.cxx:267
 AliMpRowSegmentLSpecial.cxx:268
 AliMpRowSegmentLSpecial.cxx:269
 AliMpRowSegmentLSpecial.cxx:270
 AliMpRowSegmentLSpecial.cxx:271
 AliMpRowSegmentLSpecial.cxx:272
 AliMpRowSegmentLSpecial.cxx:273
 AliMpRowSegmentLSpecial.cxx:274
 AliMpRowSegmentLSpecial.cxx:275
 AliMpRowSegmentLSpecial.cxx:276
 AliMpRowSegmentLSpecial.cxx:277
 AliMpRowSegmentLSpecial.cxx:278
 AliMpRowSegmentLSpecial.cxx:279
 AliMpRowSegmentLSpecial.cxx:280
 AliMpRowSegmentLSpecial.cxx:281
 AliMpRowSegmentLSpecial.cxx:282
 AliMpRowSegmentLSpecial.cxx:283
 AliMpRowSegmentLSpecial.cxx:284
 AliMpRowSegmentLSpecial.cxx:285
 AliMpRowSegmentLSpecial.cxx:286
 AliMpRowSegmentLSpecial.cxx:287
 AliMpRowSegmentLSpecial.cxx:288
 AliMpRowSegmentLSpecial.cxx:289
 AliMpRowSegmentLSpecial.cxx:290
 AliMpRowSegmentLSpecial.cxx:291
 AliMpRowSegmentLSpecial.cxx:292
 AliMpRowSegmentLSpecial.cxx:293
 AliMpRowSegmentLSpecial.cxx:294
 AliMpRowSegmentLSpecial.cxx:295
 AliMpRowSegmentLSpecial.cxx:296
 AliMpRowSegmentLSpecial.cxx:297
 AliMpRowSegmentLSpecial.cxx:298
 AliMpRowSegmentLSpecial.cxx:299
 AliMpRowSegmentLSpecial.cxx:300
 AliMpRowSegmentLSpecial.cxx:301
 AliMpRowSegmentLSpecial.cxx:302
 AliMpRowSegmentLSpecial.cxx:303
 AliMpRowSegmentLSpecial.cxx:304
 AliMpRowSegmentLSpecial.cxx:305
 AliMpRowSegmentLSpecial.cxx:306
 AliMpRowSegmentLSpecial.cxx:307
 AliMpRowSegmentLSpecial.cxx:308
 AliMpRowSegmentLSpecial.cxx:309
 AliMpRowSegmentLSpecial.cxx:310
 AliMpRowSegmentLSpecial.cxx:311
 AliMpRowSegmentLSpecial.cxx:312
 AliMpRowSegmentLSpecial.cxx:313
 AliMpRowSegmentLSpecial.cxx:314
 AliMpRowSegmentLSpecial.cxx:315
 AliMpRowSegmentLSpecial.cxx:316
 AliMpRowSegmentLSpecial.cxx:317
 AliMpRowSegmentLSpecial.cxx:318
 AliMpRowSegmentLSpecial.cxx:319