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$ */

#include <Riostream.h>
#include <TMath.h>
#include <TGeoManager.h>
#include <TGeoVolume.h>
#include <TGeoBBox.h>
#include "AliITSsegmentationSSD.h"

//////////////////////////////////////////////////////
// Segmentation class for                           //
// silicon strips                                   //
//                                                  //
//////////////////////////////////////////////////////
const Float_t AliITSsegmentationSSD::fgkDxDefault = 73000.;
const Float_t AliITSsegmentationSSD::fgkDzDefault = 40000.;
const Float_t AliITSsegmentationSSD::fgkDyDefault = 300.;
const Float_t AliITSsegmentationSSD::fgkPitchDefault = 95.;
const Int_t AliITSsegmentationSSD::fgkNstripsDefault = 768;
const Int_t AliITSsegmentationSSD::fgkNchipsPerSide = 6;
const Int_t AliITSsegmentationSSD::fgkNstripsPerChip = 128;

using std::endl;
using std::cout;
ClassImp(AliITSsegmentationSSD)

AliITSsegmentationSSD::AliITSsegmentationSSD(Option_t *opt): AliITSsegmentation(),
fNstrips(0),
fStereoP(0),
fStereoN(0),
fPitch(0),
fLayer(0){
    // default constructor
  SetDetSize(fgkDxDefault,fgkDzDefault,fgkDyDefault);
  SetPadSize(fgkPitchDefault,0.);
  SetNPads(fgkNstripsDefault,0);
  SetAngles();
  if(strstr(opt,"TGeo")){
    if(!gGeoManager){
      AliError("Geometry is not initialized\n");
      return;
    }
    TGeoVolume *v=NULL;
    v = gGeoManager->GetVolume("ITSssdSensitivL5");
    if(!v){
      AliWarning("TGeo volumeITSssdSensitivL5  not found (hint: use v11Hybrid geometry)\n Using hardwired default values"); 
    }
    else {
      TGeoBBox *s=(TGeoBBox*)v->GetShape();
      SetDetSize(s->GetDX()*20000.,s->GetDZ()*20000.,s->GetDY()*20000.);
    }
  }
}

//______________________________________________________________________
void AliITSsegmentationSSD::Copy(TObject &obj) const {
  // protected method. copy this to obj
  AliITSsegmentation::Copy(obj);
  ((AliITSsegmentationSSD& ) obj).Clear();
  ((AliITSsegmentationSSD& ) obj).fNstrips = fNstrips;
  ((AliITSsegmentationSSD& ) obj).fStereoP = fStereoP;
  ((AliITSsegmentationSSD& ) obj).fStereoN = fStereoN;
  ((AliITSsegmentationSSD& ) obj).fLayer   = fLayer;
  ((AliITSsegmentationSSD& ) obj).fPitch   = fPitch;
  ((AliITSsegmentationSSD& ) obj).fLayer   = fLayer;
 
}

//______________________________________________________________________
AliITSsegmentationSSD& AliITSsegmentationSSD::operator=(
                        const AliITSsegmentationSSD &source){
// Operator =
  if(this != &source){
    source.Copy(*this);
  }
  return *this;
}
//______________________________________________________________________
AliITSsegmentationSSD::AliITSsegmentationSSD(const AliITSsegmentationSSD &source):
    AliITSsegmentation(source),
fNstrips(0),
fStereoP(0),
fStereoN(0),
fPitch(0),
fLayer(0){
    // copy constructor
  source.Copy(*this);
}
//----------------------------------------------------------------------
void AliITSsegmentationSSD::Init(){
    // standard initalizer

    SetPadSize(fgkPitchDefault,0.);
    SetNPads(fgkNstripsDefault,0);
    SetAngles();
}
//----------------------------------------------------------------------
void AliITSsegmentationSSD::Angles(Float_t &aP,Float_t &aN) const{
  // P and N side stereo angles
  aP = fStereoP;
  aN = fStereoN;
}
//----------------------------------------------------------------------
void AliITSsegmentationSSD::SetLayer(Int_t l){
  //set fLayer data member (only 5 or 6 are allowed)
    if (l==5) fLayer =5;
    else if (l==6) fLayer =6;
    else AliError(Form("Layer can be 5 or 6, not %d",l));
}
//----------------------------------------------------------------------
void AliITSsegmentationSSD::GetPadTxz(Float_t &x,Float_t &z) const{
    // returns P and N sided strip numbers for a given location.
    // Transformation from microns detector center local coordinates
    // to detector P and N side strip numbers..
    /*                       _-  Z
                    + angle /    ^
        fNstrips           v     |   N-Side        ...0
            \-------/------------|-----------\--------\
            |\\\\\\/////////////.|\\\\\\\\\\\\\\\\\\\\|
            |0\\\\/////////////..|.\\\\\\\\\\\\\\\\\\\|
            |00\\/////////////...|..\\\\\\\\\\\\\\\\\\|
       X <--|000/////////////... |...\\\\\\\\\\\\\\\\\|
            |00/////////////...  | ...\\\\\\\\\\\\\\\\|
            |0/////////////...   |  ...\\\\\\\\\\\\\\\|
            |//////////////...   |  ...\\\\\\\\\\\\\\\|
            /-----\--------------|--------------------/
        fNstrips-1             P-Side              ...0
                     |0\
                     |00\
	Dead region: |000/
                     |00/
                     |0/
    // expects x, z in cm
    */

  /*
    Float_t stereoP, stereoN;
    Angles(stereoP,stereoN);
    Float_t tanP = TMath::Tan(stereoP);
    Float_t tanN = TMath::Tan(-stereoN);
    Float_t x1 = x;
    Float_t z1 = z;
    x1 += fDx/2;
    z1 += fDz/2;
    x   = (x1 - z1*tanP)/fPitch;
    z   = (x1 - tanN*(z1 - fDz))/fPitch;
  */

  Float_t tP=0;
  Float_t tN=0;
  if(fLayer==5) {
    tP = 105.26*x - 0.7895*z + 382.000; //- 0.79*z + 381.89;
    tN = tP + 3.684*z - 4; 
  }
  else if(fLayer==6) {
    tP = -105.26*x - 0.7895*z + 385.000; //- 0.79*z + 384.66;
    tN = tP + 3.684*z + 4;
  }
  else AliError("Layer can be 5 or 6");

  x=tP;
  z=tN;

}
//----------------------------------------------------------------------
void AliITSsegmentationSSD::GetPadIxz(Float_t x,Float_t z,Int_t &iP,Int_t &iN) const {
  // returns P and N sided strip numbers for a given location.
  // expects x, z in cm

  GetPadTxz(x,z);
  iP = Int_t(x+0.5);
  iN = Int_t(z+0.5);
}
//-------------------------------------------------------
void AliITSsegmentationSSD::GetPadCxz(Float_t iP,Float_t iN,Float_t &x,Float_t &z) const {
    // actually this is the GetCrossing(Float_t &,Float_t &)
    // returns local x, z  in cm 
  const Float_t kStartXzero=3.64325;
  const Float_t kDeltaXzero5or6=0.02239;
  const Float_t kDeltaZ5to6=7.6/7.0;

  z = 1.9*(iN-iP)/7.0;
  x = kStartXzero-(285*iN + 1045*iP)/140000.0;

  if (fLayer==5){
    z += kDeltaZ5to6;
    x = -x + kDeltaXzero5or6;
  }
  else if (fLayer==6) {
    z -= kDeltaZ5to6;
    x += kDeltaXzero5or6;
  }
  else {
    AliWarning("Layer shoudl be 5 or 6");
    x = -99999;
    z = -99999;
  }
}
//______________________________________________________________________
Bool_t AliITSsegmentationSSD::LocalToDet(Float_t x,Float_t z,
				       Int_t &iP,Int_t &iN) const {
    // Transformation from Geant cm detector center local coordinates
    // to detector P and N side strip numbers..
    /*                       _-  Z
                    + angle /    ^
        fNstrips           v     |   N-Side        ...0
            \-------/------------|-----------\--------\
            |\\\\\\/////////////.|\\\\\\\\\\\\\\\\\\\\|
            |0\\\\/////////////..|.\\\\\\\\\\\\\\\\\\\|
            |00\\/////////////...|..\\\\\\\\\\\\\\\\\\|
       X <--|000/////////////... |...\\\\\\\\\\\\\\\\\|
            |00/////////////...  | ...\\\\\\\\\\\\\\\\|
            |0/////////////...   |  ...\\\\\\\\\\\\\\\|
            |//////////////...   |  ...\\\\\\\\\\\\\\\|
            /-----\--------------|--------------------/
        fNstrips-1             P-Side              ...0
                     |0\
                     |00\
	Dead region: |000/
                     |00/
                     |0/
    */
  Float_t dx,dz;
  const Double_t kconst = 1.0E-04; // convert microns to cm.
  dx = 0.5*kconst*Dx();
  dz = 0.5*kconst*Dz();
  if( (x<-dx) || (x>dx) ) { 
    iP=-1; 
    AliWarning(Form("Input argument %f out of range (%f, %f)",x,dx,-dx));
    return kFALSE; // outside of defined volume.
  } // outside x range.
  if( (z<-dz) || (z>dz) ) { 
    iN=-1; 
    AliWarning(Form("Input argument %f out of range (%f, %f)",z,dz,-dz));
    return kFALSE; // outside of defined volume.
  }
  
  //x /= kconst;  // convert to microns
  //z /= kconst;  // convert to microns
  this->GetPadTxz(x,z);
  
  // first for P side
  iP = (Int_t) x;
  if(iP<0 || iP>=fNstrips) iP=-1; // strip number must be in range.
  // Now for N side)
  iN = (Int_t) z;
  if(iN<0 || iN>=fNstrips) iN=-1; // strip number must be in range.
  return kTRUE;
}
//----------------------------------------------------------------------
void AliITSsegmentationSSD::DetToLocal(Int_t ix,Int_t iPN,
				       Float_t &x,Float_t &z) const{
    // Transformation from detector segmentation/cell coordiantes starting
    // from 0. iPN=0 for P side and 1 for N side strip. Returned is z=0.0
    // and the corresponding x value..
    /*                       _-  Z
                    + angle /    ^
        fNstrips           v     |   N-Side        ...0
            \-------/------------|-----------\--------\
            |\\\\\\/////////////.|\\\\\\\\\\\\\\\\\\\\|
            |0\\\\/////////////..|.\\\\\\\\\\\\\\\\\\\|
            |00\\/////////////...|..\\\\\\\\\\\\\\\\\\|
       X <--|000/////////////... |...\\\\\\\\\\\\\\\\\|
            |00/////////////...  | ...\\\\\\\\\\\\\\\\|
            |0/////////////...   |  ...\\\\\\\\\\\\\\\|
            |//////////////...   |  ...\\\\\\\\\\\\\\\|
            /-----\--------------|--------------------/
        fNstrips-1             P-Side              ...0
                     |0\
                     |00\
	Dead region: |000/
                     |00/
                     |0/
    */
    // for strips p-side
    // x = a + b + z*tan(fStereoP); a = Dpx(iP)*(iP+0.5)-dx; b = dz*th;
    // for strips n-side
    // x = a + b + z*tan(fStereoP); a = Dpx(iN)*(iN+0.5)-dx; b = -dz*th;
    AliWarning("This function has not been verified. Should probably use GetPadCxz");
    const Double_t kconst = 1.0E-04; // convert microns to cm.
    Float_t flag=kconst*Dx(); // error value
    Double_t th=0.0,dx,dz,i,a,b=0.0,xb[4],zb[4];
    Float_t stereoP, stereoN;
    Angles(stereoP,stereoN);

    z = 0.0;  // Strip center in z.
    if(iPN<0 || iPN>1){// if error return full detector size in x.
	x = z = flag; 
	return;
    } // end if
    if(ix<0 || ix>=fNstrips) { // if error return full detector size in x.
	x = z = flag;
	return;
    } // end if
    i  = (Double_t) ix;      // convert to double
    dx = 0.5*kconst*Dx();    // half distance in x in cm
    dz = 0.5*kconst*Dz();    // half distance in z in cm
    a  = kconst*Dpx(ix)*(i+0.5)-dx; // Min x value.
    if(iPN==0){ //P-side angle defined backwards.
	th = TMath::Tan(stereoP); 
	b  = dz*th;
    }else if(iPN==1){ // N-side
	 th = TMath::Tan(-stereoN);
	 b  = -dz*th;
    } // end if
    // compute average/center position of the strip.
    xb[0] = +dx; if(th!=0.0) zb[0] = (+dx-a-b)/th; else zb[0] = 0.0;
    xb[1] = -dx; if(th!=0.0) zb[1] = (-dx-a-b)/th; else zb[1] = 0.0;
    xb[2] = a+b+dz*th; zb[2] = +dz;
    xb[3] = a+b-dz*th; zb[3] = -dz;
    x = 0.0; z = 0.0;
    for(Int_t j=0;j<4;j++){
	if(xb[j]>=-dx && xb[j]<=dx && zb[j]>=-dz && zb[j]<=dz){
	    x += xb[j];
	    z += zb[j];
	} // end if
    } // end for
    x *= 0.5;
    z *= 0.5;
    return;
}
//----------------------------------------------------------------------
Int_t AliITSsegmentationSSD::GetChipFromChannel(Int_t ix, Int_t iz) const {
  // returns chip number (in range 0-11) starting from channel number

  if( (iz>=fgkNstripsDefault) || (iz<0) || (ix<0) || (ix>1) ) {
    AliError("Bad cell number");
    return -1;
  }
  
  if(ix==1) iz = 1535-iz;
  Int_t theChip =iz/fgkNstripsPerChip;
  return theChip;

}
//----------------------------------------------------------------------
Int_t AliITSsegmentationSSD::GetChipFromLocal(Float_t xloc, Float_t zloc) const
{
  // returns chip numbers starting from local coordinates
  // The two Nside chip number and Pside chip number are 
  // coded as chip=Nchip*10+Pchip

  Int_t iP=0;
  Int_t iN=0;
  if (!LocalToDet(xloc,zloc,iP,iN) || 
      (iP<0) || (iP>=fNstrips) || (iN<0) || (iN>=fNstrips) ) {
    //AliWarning("Bad local coordinate");
    return -1;
  }

  Int_t iChip = GetChipFromChannel(0,iP);
  iChip += 10*GetChipFromChannel(1,iN); // add Nside

  return iChip;

}
//

Int_t AliITSsegmentationSSD::GetChipsInLocalWindow(Int_t* array, Float_t zmin, Float_t zmax, 
						   Float_t xmin, Float_t xmax) const {
  // returns chip number in a given xz window

  Int_t nChipInW = 0;

  Float_t zminDet=-fDz*1.0E-04/2.;
  Float_t zmaxDet=fDz*1.0E-04/2.;
  if(zmin<zminDet) zmin=zminDet;
  if(zmax>zmaxDet) zmax=zmaxDet;

  Float_t xminDet=-fDx*1.0E-04/2;
  Float_t xmaxDet=fDx*1.0E-04/2;
  if(xmin<xminDet) xmin=xminDet;
  if(xmax>xmaxDet) xmax=xmaxDet;

  Int_t n1N=-1;
  Int_t n1P=-1;
  Int_t n1=GetChipFromLocal(xmin,zmin); 
  if(n1!=-1) { // Note! Recpoint can be on the sensor but in the dead area not covered by strips!
    n1N = (Int_t) (n1/10); // N-side chip coded as 10*chip_index
    n1P = n1 - 10 * n1N; // P-side chip coded 0-5
    array[nChipInW]=n1P;
    nChipInW++;
    array[nChipInW]=n1N;
    nChipInW++;
  }
  
  Int_t n2N=-1;
  Int_t n2P=-1;
  Int_t n2=GetChipFromLocal(xmin,zmax);
  if(n2!=-1) { // Note! Recpoint can be on the sensor but in the dead area not covered by strips!
    n2N = (Int_t) (n2/10); // N-side chip coded as 10*chip_index
    n2P = n2 - 10 * n2N; // P-side chip coded 0-5
    if(n2P!=n1P) { array[nChipInW]=n2P; nChipInW++;}
    if(n2N!=n1N) { array[nChipInW]=n2N; nChipInW++;}
  }

  Int_t n3N=-1;
  Int_t n3P=-1;
  Int_t n3=GetChipFromLocal(xmax,zmin);
  if(n3!=-1) {
    n3N=(Int_t) (n3/10); // N-side chip coded as 10*chip_index
    n3P=n3 - 10 * n3N; // P-side chip coded 0-5
    if((n3P!=n1P)&&(n3P!=n2P)) { array[nChipInW]=n3P; nChipInW++;}
    if((n3N!=n1N)&&(n3N!=n2N)) { array[nChipInW]=n3N; nChipInW++;}
  }
  
  Int_t n4N=-1;
  Int_t n4P=-1;
  Int_t n4=GetChipFromLocal(xmax,zmax);
  if(n4!=-1) {
    n4N=(Int_t) (n4/10); // N-side chip coded as 10*chip_index
    n4P=n4 - 10 * n4N; // P-side chip coded 0-5
    if((n4P!=n1P)&&(n4P!=n2P)&&(n4P!=n3P)) { array[nChipInW]=n4P; nChipInW++;}
    if((n4N!=n1N)&&(n4N!=n2N)&&(n4N!=n3N)) { array[nChipInW]=n4N; nChipInW++;}
  }
  
  return nChipInW;

}

//----------------------------------------------------------------------
void AliITSsegmentationSSD::PrintDefaultParameters() const {
// Print default values for parameters. 
// Values specified as static const data members are shown

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