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

/*
$Log$
Revision 1.20.1  2007/05/19 decaro
         Added the following methods:
             GetVolumeIndices(Int_t index, Int_t *det), to get
          the volume indices (sector, plate, strip, padz, padx,
          stored respectively in det[0], det[1], det[2], det[3], det[4])
          from the calibration channel index;
             NStrip(Int_t nPlate), to get the strips number
          per each kind of TOF module.

Revision 1.20  2007/10/08 17:52:55  decaro
hole region in front of PHOS detector: update of sectors' numbers

Revision 1.19  2007/10/04 14:05:09  zampolli
AliTOFGeometryV5 becoming AliTOFGeometry

Revision 1.18  2007/02/19 18:55:26  decaro
Added getter methods for volume path (for Event Display)

Revision 1.17.1  2006/12/15 
         Added method DetToStripRF(...) to get
         a pad corner coordinates in its strip reference frame
         (A.De Caro, M.Di Stefano)
Revision 1.17  2006/08/22 13:30:02  arcelli
removal of effective c++ warnings (C.Zampolli)

Revision 1.16  2006/04/20 22:30:50  hristov
Coding conventions (Annalisa)

Revision 1.15  2006/04/16 22:29:05  hristov
Coding conventions (Annalisa)

Revision 1.14  2006/04/05 08:35:38  hristov
Coding conventions (S.Arcelli, C.Zampolli)

Revision 1.13  2006/03/12 14:37:54  arcelli
 Changes for TOF Reconstruction using TGeo

Revision 1.12  2006/02/28 10:38:00  decaro
AliTOFGeometry::fAngles, AliTOFGeometry::fHeights, AliTOFGeometry::fDistances arrays: dimension definition in the right location

Revision 1.11  2005/12/15 14:17:29  decaro
Correction of some parameter values

Revision 1.10  2005/12/15 08:55:32  decaro
New TOF geometry description (V5) -G. Cara Romeo and A. De Caro

Revision 1.9.1  2005/07/19 A. De Caro
        Created daughter-classes AliTOFGeometryV4 and AliTOFGeometryV5
	=> moved global methods IsInsideThePad, DistanceToPad,
	GetPlate, GetSector, GetStrip, GetPadX, GetPadZ,
	GetX, GetY, GetZ, GetPadDx, GetPadDy and GetPadDz
	in daughter-classes

Revision 1.9  2005/10/20 12:41:35  hristov
Implementation of parallel tracking. It is not the default version, one can use it passing option MI from AliReconstruction to TOF (M.Ivanov)

Revision 1.8  2004/11/29 08:28:01  decaro
Introduction of a new TOF constant (i.e. TDC bin width)

Revision 1.7  2004/11/05 07:20:08  decaro
TOF library splitting and conversion of some printout messages in AliLog schema (T.Kuhr)

Revision 1.6  2004/06/15 15:27:59  decaro
TOF raw data: preliminary implementation and style changes

Revision 1.5  2004/04/20 14:37:22  hristov
Using TMath::Abs instead of fabs, arrays of variable size created/deleted correctly (HP,Sun)

Revision 1.4  2004/04/13 09:42:51  decaro
Track reconstruction code for TOF: updating

Revision 1.3  2003/12/29 18:40:39  hristov
Copy/paste error corrected

Revision 1.2  2003/12/29 17:26:01  hristov
Using enum to initaialize static ints in the header file, the initialization of static floats moved to the implementation file

Revision 1.1  2003/12/29 15:18:03  decaro
TOF geometry updating (addition of AliTOFGeometry)

Revision 0.05  2004/6/11 A.De Caro
        Implement Global method NpadXStrip
        Insert four float constants (originally  in AliTOF class)
Revision 0.04  2004/4/05 S.Arcelli
        Implement Global methods IsInsideThePad 
                                  DistanceToPad 
Revision 0.03  2003/12/14 S.Arcelli
        Set Phi range [-180,180]->[0,360] 
Revision 0.02  2003/12/10 S.Arcelli:
        Implement Global methods GetPos & GetDetID 
Revision 0.01  2003/12/04 S.Arcelli
*/

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//  TOF Geometry class                                                       //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

#include "TGeoManager.h"
//#include "TGeoMatrix.h"
#include "TMath.h"

#include "AliConst.h"
#include "AliGeomManager.h"
#include "AliLog.h"

#include "AliTOFGeometry.h"

extern TGeoManager *gGeoManager;

ClassImp(AliTOFGeometry)

const Float_t AliTOFGeometry::fgkZlenA    = 370.6*2.; // length (cm) of the A module
const Float_t AliTOFGeometry::fgkZlenB    = 146.5;    // length (cm) of the B module
const Float_t AliTOFGeometry::fgkZlenC    = 170.45;   // length (cm) of the C module
const Float_t AliTOFGeometry::fgkMaxhZtof = 370.6;    // Max half z-size of TOF (cm)

const Float_t AliTOFGeometry::fgkxTOF     = 372.00;// Inner radius of the TOF for Reconstruction (cm)
const Float_t AliTOFGeometry::fgkRmin     = 371.00;// Inner radius of the TOF (cm)
const Float_t AliTOFGeometry::fgkRmax     = 400.05;// Outer radius of the TOF (cm)

const Float_t AliTOFGeometry::fgkXPad     = 2.5;    // Pad size in the x direction (cm)
const Float_t AliTOFGeometry::fgkZPad     = 3.5;    // Pad size in the z direction (cm)

const Float_t AliTOFGeometry::fgkStripLength = 122.;// Strip Length (rho X phi direction) (cm)

const Float_t AliTOFGeometry::fgkSigmaForTail1= 2.; //Sig1 for simulation of TDC tails 
const Float_t AliTOFGeometry::fgkSigmaForTail2= 0.5;//Sig2 for simulation of TDC tails

const Float_t AliTOFGeometry::fgkPhiSec= 20;//sector Phi width (deg)

Bool_t  AliTOFGeometry::fgHoles  = 1;//logical for geometry version (w/wo holes)

const Float_t AliTOFGeometry::fgkTdcBin = 24.4;     // time-of-flight bin width [ps]
const Float_t AliTOFGeometry::fgkToTBin = 48.8;     // time-over-threshold bin width [ps]
const Float_t AliTOFGeometry::fgkBunchCrossingBin = fgkTdcBin * 1024; // bunch-crossing bin width [ps]

const Float_t AliTOFGeometry::fgkSlewTOTMin = 10.; // min TOT for slewing correction [ns]
const Float_t AliTOFGeometry::fgkSlewTOTMax = 16.; // max TOT for slewing correction [ns]

const Float_t AliTOFGeometry::fgkDeadTime = 25E+03;        // Single channel dead time (ps)
const Float_t AliTOFGeometry::fgkMatchingWindow = fgkTdcBin*TMath::Power(2,13); // Matching window  (ps)

const Float_t AliTOFGeometry::fgkAngles[kNPlates][kMaxNstrip] = {
    { 43.99,  43.20,  42.40,  41.59,  40.77,  39.94,  39.11,  38.25,  37.40,  36.53,
      35.65,  34.76,  33.87,  32.96,  32.05,  31.13,  30.19,  29.24,  12.33,  0.00},

    { 27.26,  26.28,  25.30,  24.31,  23.31,  22.31,  21.30,  20.29,  19.26,  18.24,
      17.20,  16.16,  15.11,  14.05,  13.00,  11.93,  10.87,   9.80,   8.74,  0.00},

    {  0.00,   6.30,   5.31,   4.25,   3.19,   2.12,   1.06,   0.00,  -1.06,  -2.12,
      -3.19,  -4.25,  -5.31,  -6.30,   0.00,   0.00,   0.00,   0.00,   0.00,  0.00},

    { -8.74,  -9.80, -10.87, -11.93, -13.00, -14.05, -15.11, -16.16, -17.20, -18.24,
     -19.26, -20.29, -21.30, -22.31, -23.31, -24.31, -25.30, -26.28, -27.26,  0.00},
    
    {-12.33, -29.24, -30.19, -31.13, -32.05, -32.96, -33.87, -34.76, -35.65, -36.53,
     -37.40, -38.25, -39.11, -39.94, -40.77, -41.59, -42.40, -43.20, -43.99,  0.00}
  };

/*
const Float_t AliTOFGeometry::fgkHeights[kNPlates][kMaxNstrip] = {
    {-8.2,  -7.5,  -8.2,  -7.7,  -8.1,  -7.6,  -7.7,  -7.7,  -7.7,  -7.7,
     -7.5,  -7.2,  -7.3,  -7.5,  -7.6,  -7.8,  -8.3,  -9.3,  -3.1,   0.0},

    {-7.9,  -8.1,  -8.5,  -9.0, -10.1,  -3.9,  -5.9,  -7.7, -10.1,  -3.6,
     -5.8,  -8.0, -10.4,  -4.4,  -7.2, -10.2,  -4.6,  -7.4, -10.4,   0.0},

    {-2.5, -10.4,  -5.0,  -9.9,  -4.8,  -9.9,  -4.7, -10.2,  -4.7,  -9.9,
     -4.8,  -9.9,  -5.0, -10.4,  -2.5,   0.0,   0.0,   0.0,   0.0,   0.0},

    {-10.4, -7.4,  -4.6, -10.2,  -7.2,  -4.4, -10.4,  -8.0,  -5.8,  -3.6,
     -10.1, -7.7,  -5.9,  -3.9, -10.1,  -9.0,  -8.5,  -8.1,  -7.9,   0.0},

    { -3.1, -9.3,  -8.3,  -7.8,  -7.6,  -7.5,  -7.3,  -7.2,  -7.5,  -7.7,
      -7.7, -7.7,  -7.7,  -7.6,  -8.1,  -7.7,  -8.2,  -7.5,  -8.2,   0.0}
  };
*/
/*
const Float_t AliTOFGeometry::fgkHeights[kNPlates][kMaxNstrip] = {
  {  -8.405, -10.885,  -8.405,  -7.765,  -8.285,  -7.745,  -7.865,  -7.905,  -7.895,  -7.885,
     -7.705,  -7.395,  -7.525,  -7.645, -11.285, -10.355,  -8.365,  -9.385,  -3.255,   0.000 },
  {  -7.905,  -8.235,  -8.605,  -9.045, -10.205,  -3.975,  -5.915,  -7.765, -10.205,  -3.635,
     -5.885,  -8.005, -10.505,  -4.395,  -7.325, -10.235,  -4.655,  -7.495, -10.515,   0.000 },
  {  -2.705, -10.645,  -5.165, -10.095,  -4.995, -10.815,  -4.835, -10.385,  -4.835, -10.815,
     -4.995, -10.095,  -5.165, -10.645,  -2.705,   0.000,   0.000,   0.000,   0.000,   0.000 },
  { -10.515,  -7.495,  -4.655, -10.235,  -7.325,  -4.395, -10.505,  -8.005,  -5.885,  -3.635,
    -10.205,  -7.765,  -5.915,  -3.975, -10.205,  -9.045,  -8.605,  -8.235,  -7.905,   0.000 },
  {  -3.255,  -9.385,  -8.365, -10.355, -11.285,  -7.645,  -7.525,  -7.395,  -7.705,  -7.885,
     -7.895,  -7.905,  -7.865,  -7.745,  -8.285,  -7.765,  -8.405, -10.885,  -8.405,   0.000 }
};
*/


const Float_t AliTOFGeometry::fgkHeights[kNPlates][kMaxNstrip] = {
  { -8.405,  -7.725,  -8.405,  -7.765,  -8.285,  -7.745,  -7.865,  -7.905,  -7.895,  -7.885,
    -7.705,  -7.395,  -7.525,  -7.645,  -7.835,  -7.965,  -8.365,  -9.385,  -3.255,   0.000 },
  { -7.905,  -8.235,  -8.605,  -9.045, -10.205,  -3.975,  -5.915,  -7.765, -10.205,  -3.635,
    -5.885,  -8.005, -10.505,  -4.395,  -7.325, -10.235,  -4.655,  -7.495, -10.515,   0.000 },
  { -2.705, -10.645,  -5.165, -10.095,  -4.995, -10.085,  -4.835, -10.385,  -4.835, -10.085,
    -4.995, -10.095,  -5.165, -10.645,  -2.705,   0.000,   0.000,   0.000,   0.000,   0.000 },
  {-10.515,  -7.495,  -4.655, -10.235,  -7.325,  -4.395, -10.505,  -8.005,  -5.885,  -3.635,
   -10.205,  -7.765,  -5.915,  -3.975, -10.205,  -9.045,  -8.605,  -8.235,  -7.905,   0.000 },
  { -3.255,  -9.385,  -8.365,  -7.965,  -7.835,  -7.645,  -7.525,  -7.395,  -7.705,  -7.885,
    -7.895,  -7.905,  -7.865,  -7.745,  -8.285,  -7.765,  -8.405,  -7.725,  -8.405,   0.000 }
};



const Float_t AliTOFGeometry::fgkDistances[kNPlates][kMaxNstrip] = {
  { 364.14,  354.88,  344.49,  335.31,  325.44,  316.51,  307.11,  297.91,  288.84,  279.89,
    271.20,  262.62,  253.84,  245.20,  236.56,  228.06,  219.46,  210.63,  206.09,    0.00 },
  { 194.57,  186.38,  178.25,  170.13,  161.78,  156.62,  148.10,  139.72,  131.23,  125.87,
    117.61,  109.44,  101.29,   95.46,   87.36,   79.37,   73.17,   65.33,   57.71,    0.00 },
  {  49.28,   41.35,   35.37,   27.91,   21.20,   13.94,    7.06,    0.00,   -7.06,  -13.94,
    -21.20,  -27.91,  -35.37,  -41.35,  -49.28,    0.00,    0.00,    0.00,    0.00,    0.00 },
  { -57.71,  -65.33,  -73.17,  -79.37,  -87.36,  -95.46, -101.29, -109.44, -117.61, -125.87,
   -131.23, -139.72, -148.10, -156.62, -161.78, -170.13, -178.25, -186.38, -194.57,    0.00 },
  {-206.09, -210.63, -219.46, -228.06, -236.56, -245.20, -253.84, -262.62, -271.20, -279.89,
   -288.84, -297.91, -307.11, -316.51, -325.44, -335.31, -344.49, -354.88, -364.14,    0.00 }
};

/*
const Float_t AliTOFGeometry::fgkDistances[kNPlates][kMaxNstrip] = {
    { 364.1,  354.9,  344.5,  335.4,  325.5,  316.6,  307.2,  298.0,  288.9,  280.0,
      271.3,  262.7,  254.0,  244.8,  236.1,  227.7,  219.1,  210.3,  205.7,    0.0},

    { 194.2,  186.1,  177.9,  169.8,  161.5,  156.3,  147.8,  139.4,  130.9,  125.6,
      117.3,  109.2,  101.1,   95.3,   87.1,   79.2,   73.0,   65.1,   57.6,    0.0},

    {  49.5,   41.3,   35.3,   27.8,   21.2,   13.9,    7.0,    0.0,   -7.0,  -13.9,
      -21.2,  -27.8,  -35.3,  -41.3,  -49.5,    0.0,    0.0,    0.0,    0.0,    0.0},

    { -57.6,  -65.1,  -73.0,  -79.2,  -87.1,  -95.3, -101.1, -109.2, -117.3, -125.6,
     -130.9, -139.4, -147.8, -156.3, -161.5, -169.8, -177.9, -186.1, -194.2,    0.0},

    {-205.7, -210.3, -219.1, -227.7, -236.1, -244.8, -254.0, -262.7, -271.3, -280.0,
     -288.9, -298.0, -307.2, -316.6, -325.5, -335.4, -344.5, -354.9, -364.1,    0.0}
  };
*/
//_____________________________________________________________________________
AliTOFGeometry::AliTOFGeometry()
{
  //
  // AliTOFGeometry default constructor
  //

}

//_____________________________________________________________________________
AliTOFGeometry::~AliTOFGeometry()
{
  //
  // AliTOFGeometry destructor
  //
}
//_____________________________________________________________________________
void AliTOFGeometry::ImportGeometry(){
  TGeoManager::Import("geometry.root");
}
//_____________________________________________________________________________
void AliTOFGeometry::GetPosPar(Int_t *det, Float_t *pos)
{
//
// Returns space point coor (x,y,z) (cm)  for Detector 
// Indices  (iSect,iPlate,iStrip,iPadX,iPadZ) 
//

  pos[0]=GetX(det);  
  pos[1]=GetY(det);  
  pos[2]=GetZ(det);
  
}
//_____________________________________________________________________________
void AliTOFGeometry::GetDetID( Float_t *pos, Int_t *det)
{
 //
 // Returns Detector Indices (iSect,iPlate,iStrip,iPadX,iPadZ) 
 // space point coor (x,y,z) (cm)  


  det[0]=GetSector(pos);  
  det[1]=GetPlate(pos);  
  det[2]=GetStrip(pos);
  det[3]=GetPadZ(pos);
  det[4]=GetPadX(pos);
  
}
//_____________________________________________________________________________

void AliTOFGeometry::DetToStripRF(Int_t nPadX, Int_t nPadZ, Float_t &x,  Float_t &z) const
{
  //
  // Returns the local coordinates (x, z) in strip reference frame
  // for the bottom corner of the pad number (nPadX, nPadZ)
  //
  /*
  const Float_t xCenterStrip = kNpadX * fgkXPad / 2.;
  const Float_t zCenterStrip = kNpadZ * fgkZPad / 2.;

  const Float_t xCenterPad = nPadX*fgkXPad + fgkXPad / 2.;
  const Float_t zCenterPad = nPadZ*fgkZPad + fgkZPad / 2.;

  x = xCenterPad - xCenterStrip;
  z = zCenterPad - zCenterStrip;
  */


  x = (nPadX - kNpadX*0.5) * fgkXPad;
  z = (nPadZ - kNpadZ*0.5) * fgkZPad;


}
//_____________________________________________________________________________
Float_t AliTOFGeometry::DistanceToPadPar(Int_t *det, const Float_t * pos, Float_t *dist3d)
{
//
// Returns distance of  space point with coor pos (x,y,z) (cm) wrt 
// pad with Detector Indices idet (iSect,iPlate,iStrip,iPadX,iPadZ) 
//
    
  //Transform pos into Sector Frame

  Float_t x = pos[0];
  Float_t y = pos[1];
  Float_t z = pos[2];

  Float_t radius = TMath::Sqrt(x*x+y*y);
  //Float_t phi=TMath::ATan(y/x);	
  //if(phi<0) phi = k2PI+phi; //2.*TMath::Pi()+phi;
  Float_t phi = TMath::Pi()+TMath::ATan2(-y,-x);	
  //  Get the local angle in the sector philoc
  Float_t angle   = phi*kRaddeg-( Int_t (kRaddeg*phi/fgkPhiSec) + 0.5)*fgkPhiSec;
  Float_t xs = radius*TMath::Cos(angle/kRaddeg);
  Float_t ys = radius*TMath::Sin(angle/kRaddeg);
  Float_t zs = z;

  // Do the same for the selected pad

  Float_t g[3];
  GetPosPar(det,g);

  Float_t padRadius = TMath::Sqrt(g[0]*g[0]+g[1]*g[1]);
  //Float_t padPhi = TMath::ATan(g[1]/g[0]);	
  //if(padPhi<0) padPhi = k2Pi + padPhi;
  Float_t padPhi = TMath::Pi()+TMath::ATan2(-g[1],-g[0]);	

  //  Get the local angle in the sector philoc
  Float_t padAngle = padPhi*kRaddeg-( Int_t (padPhi*kRaddeg/fgkPhiSec)+ 0.5) * fgkPhiSec;
  Float_t padxs = padRadius*TMath::Cos(padAngle/kRaddeg);
  Float_t padys = padRadius*TMath::Sin(padAngle/kRaddeg);
  Float_t padzs = g[2];
  
  //Now move to local pad coordinate frame. Translate:
  
  Float_t xt = xs-padxs;
  Float_t yt = ys-padys;
  Float_t zt = zs-padzs;
  //Now Rotate:
  
  Float_t alpha = GetAngles(det[1],det[2]);
  Float_t xr =  xt*TMath::Cos(alpha/kRaddeg)+zt*TMath::Sin(alpha/kRaddeg);
  Float_t yr =  yt;
  Float_t zr = -xt*TMath::Sin(alpha/kRaddeg)+zt*TMath::Cos(alpha/kRaddeg);

  Float_t dist = TMath::Sqrt(xr*xr+yr*yr+zr*zr);

  if (dist3d){
    dist3d[0] = xr;
    dist3d[1] = yr;
    dist3d[2] = zr;
  }

  return dist;

}
//_____________________________________________________________________________
Bool_t AliTOFGeometry::IsInsideThePadPar(Int_t *det, const Float_t * pos)
{
//
// Returns true if space point with coor pos (x,y,z) (cm) falls 
// inside pad with Detector Indices idet (iSect,iPlate,iStrip,iPadX,iPadZ) 
//

  Bool_t isInside=false; 

  /*
  const Float_t khhony    = 1.0          ; // heigth of HONY  Layer
  const Float_t khpcby    = 0.08         ; // heigth of PCB   Layer
  const Float_t khrgly    = 0.055        ; // heigth of RED GLASS  Layer
  const Float_t khglfy    = 0.285        ; // heigth of GLASS+FISHLINE  Layer
  const Float_t khcpcby   = 0.16         ; // heigth of PCB  Central Layer
  //const Float_t kwcpcbz   = 12.4         ; // z dimension of PCB  Central Layer
  const Float_t khstripy = 2.*khhony+2.*khpcby+4.*khrgly+2.*khglfy+khcpcby;//3.11
  //const Float_t kwstripz = kwcpcbz;
  //const Float_t klstripx = fgkStripLength;
  */

  const Float_t kPadDepth = 0.5;//0.05;//0.11;//0.16;//          // heigth of Sensitive Layer

  //Transform pos into Sector Frame

  Float_t x = pos[0];
  Float_t y = pos[1];
  Float_t z = pos[2];

  Float_t radius = TMath::Sqrt(x*x+y*y);
  Float_t phi = TMath::Pi()+TMath::ATan2(-y,-x);	

  //  Get the local angle in the sector philoc
  Float_t angle = phi*kRaddeg-( Int_t (kRaddeg*phi/fgkPhiSec) + 0.5) *fgkPhiSec;
  Float_t xs = radius*TMath::Cos(angle/kRaddeg);
  Float_t ys = radius*TMath::Sin(angle/kRaddeg);
  Float_t zs = z;

  // Do the same for the selected pad

  Float_t g[3];
  GetPosPar(det,g);

  Float_t padRadius = TMath::Sqrt(g[0]*g[0]+g[1]*g[1]);
  Float_t padPhi = TMath::Pi()+TMath::ATan2(-g[1],-g[0]);	

  //  Get the local angle in the sector philoc
  Float_t padAngle = padPhi*kRaddeg-( Int_t (padPhi*kRaddeg/fgkPhiSec)+ 0.5) * fgkPhiSec; 
  Float_t padxs = padRadius*TMath::Cos(padAngle/kRaddeg);
  Float_t padys = padRadius*TMath::Sin(padAngle/kRaddeg);
  Float_t padzs = g[2];

  //Now move to local pad coordinate frame. Translate:

  Float_t xt = xs-padxs;
  Float_t yt = ys-padys;
  Float_t zt = zs-padzs;

  //Now Rotate:

  Float_t alpha = GetAngles(det[1],det[2]);
  Float_t xr =  xt*TMath::Cos(alpha/kRaddeg)+zt*TMath::Sin(alpha/kRaddeg);
  Float_t yr =  yt;
  Float_t zr = -xt*TMath::Sin(alpha/kRaddeg)+zt*TMath::Cos(alpha/kRaddeg);

  if(TMath::Abs(xr)<=kPadDepth*0.5 && TMath::Abs(yr)<= (fgkXPad*0.5) && TMath::Abs(zr)<= (fgkZPad*0.5))
    isInside=true;
  return isInside;

}
//_____________________________________________________________________________
Bool_t AliTOFGeometry::IsInsideThePad(TGeoHMatrix *mat, const Float_t * pos, Float_t *dist3d)
{
  //
  // Returns true if space point with coor pos (x,y,z) [cm] falls inside
  // pad identified by the matrix mat. In case dist3d!=0, dist3d vector
  // has been filled with the 3D distance between the impact point on
  // the pad and the pad centre (in the reference frame of the TOF pad
  // identified by the matrix mat).
  //

  const Float_t kPadDepth = 0.5;      // heigth of Sensitive Layer

  Double_t posg[3];
  posg[0] = pos[0];
  posg[1] = pos[1];
  posg[2] = pos[2];

  // from ALICE global reference system
  // towards TOF pad reference system
  Double_t posl[3] = {0., 0., 0.};
  mat->MasterToLocal(posg,posl);

  Float_t xr = posl[0];
  Float_t yr = posl[1];
  Float_t zr = posl[2];

  Bool_t isInside = false;
  if (TMath::Abs(yr)<= kPadDepth*0.5 &&
      TMath::Abs(xr)<= fgkXPad*0.5 &&
      TMath::Abs(zr)<= fgkZPad*0.5)
    isInside = true;

  if (dist3d) {
    //Double_t padl[3] = {0., 0., 0.};
    dist3d[0] = posl[0]/* - padl[0]*/;
    dist3d[1] = posl[1]/* - padl[1]*/;
    dist3d[2] = posl[2]/* - padl[2]*/;

    /*
    Double_t padg[3] = {0., 0., 0.};
    // from TOF pad local reference system
    // towards ALICE global reference system
    TGeoHMatrix inverse = mat->Inverse();
    inverse.MasterToLocal(padl,padg);

    // returns the 3d distance
    // between the impact point on the pad
    // and the pad centre (in the ALICE global reference frame)
    dist3d[0] = posg[0] - padg[0];
    dist3d[1] = posg[1] - padg[1];
    dist3d[2] = posg[2] - padg[2];
    */
  }
 
  return isInside;

}
//_____________________________________________________________________________
void AliTOFGeometry::GetVolumePath(const Int_t * ind, Char_t *path ) {
  //--------------------------------------------------------------------
  // This function returns the colume path of a given pad 
  //--------------------------------------------------------------------
  Int_t sector = ind[0];

  const Int_t kSize = 100;

  Char_t  string1[kSize];
  Char_t  string2[kSize];
  Char_t  string3[kSize];
  
  Int_t icopy=-1;
  icopy=sector;
 
  snprintf(string1,kSize,"/ALIC_1/B077_1/BSEGMO%i_1/BTOF%i_1",icopy,icopy);
  
  Int_t iplate=ind[1];
  Int_t istrip=ind[2];
  if( iplate==0) icopy=istrip; 
  if( iplate==1) icopy=istrip+NStripC(); 
  if( iplate==2) icopy=istrip+NStripC()+NStripB(); 
  if( iplate==3) icopy=istrip+NStripC()+NStripB()+NStripA(); 
  if( iplate==4) icopy=istrip+NStripC()+2*NStripB()+NStripA(); 
  icopy++;
  snprintf(string2,kSize,"FTOA_0/FLTA_0/FSTR_%i",icopy);
  if(fgHoles && (sector==13 || sector==14 || sector==15)){
    if(iplate<2)  snprintf(string2,kSize,"FTOB_0/FLTB_0/FSTR_%i",icopy);
    if(iplate>2)  snprintf(string2,kSize,"FTOC_0/FLTC_0/FSTR_%i",icopy);
  }
 
  Int_t padz = ind[3]+1; 
  Int_t padx = ind[4]+1;
  snprintf(string3,kSize,"FPCB_1/FSEN_1/FSEZ_%i/FPAD_%i",padz,padx);
  snprintf(path,2*kSize,"%s/%s/%s",string1,string2,string3); 

}
//_____________________________________________________________________________
void AliTOFGeometry::GetVolumePath(Int_t sector, Char_t *path ){
  //--------------------------------------------------------------------
  // This function returns the colume path of a given sector 
  //--------------------------------------------------------------------

  const Int_t kSize = 100;

  Char_t string[kSize];

  Int_t icopy = sector;

  snprintf(string,kSize,"/ALIC_1/B077_1/BSEGMO%i_1/BTOF%i_1",icopy,icopy);
  snprintf(path,2*kSize,"%s",string);

}
//_____________________________________________________________________________
void AliTOFGeometry::GetVolumePath(Int_t sector, Int_t plate, Int_t strip, Char_t *path ) {
  //--------------------------------------------------------------------
  // This function returns the colume path of a given strip 
  //--------------------------------------------------------------------

  const Int_t kSize = 100;

  Char_t string1[kSize];
  Char_t string2[kSize];
  Char_t string3[kSize];
  
  Int_t icopy = sector;

  snprintf(string1,kSize,"/ALIC_1/B077_1/BSEGMO%i_1/BTOF%i_1",icopy,icopy);
  
  if(plate==0) icopy=strip; 
  if(plate==1) icopy=strip+NStripC(); 
  if(plate==2) icopy=strip+NStripC()+NStripB(); 
  if(plate==3) icopy=strip+NStripC()+NStripB()+NStripA(); 
  if(plate==4) icopy=strip+NStripC()+2*NStripB()+NStripA(); 
  icopy++;
  snprintf(string2,kSize,"FTOA_0/FLTA_0/FSTR_%i",icopy);
  if(fgHoles && (sector==13 || sector==14 || sector==15)){
    if(plate<2)  snprintf(string2,kSize,"FTOB_0/FLTB_0/FSTR_%i",icopy);
    if(plate>2)  snprintf(string2,kSize,"FTOC_0/FLTC_0/FSTR_%i",icopy);
  }

  snprintf(string3,kSize,"FPCB_1/FSEN_1");
  snprintf(path,2*kSize,"%s/%s/%s",string1,string2,string3); 

}
//_____________________________________________________________________________
void AliTOFGeometry::GetPos(Int_t *det, Float_t *pos) 
{
//
// Returns space point coor (x,y,z) (cm)  for Detector 
// Indices  (iSect,iPlate,iStrip,iPadX,iPadZ) 
//
  Char_t path[200];
  GetVolumePath(det,path);
  if (!gGeoManager) {
    printf("ERROR: no TGeo\n");
  }
  gGeoManager->cd(path);
  TGeoHMatrix global;
  global = *gGeoManager->GetCurrentMatrix();
  const Double_t *tr = global.GetTranslation();

  pos[0]=tr[0];  
  pos[1]=tr[1];  
  pos[2]=tr[2];
}
//_____________________________________________________________________________
Int_t AliTOFGeometry::GetPlate(const Float_t * pos)
{
  //
  // Returns the Plate index 
  //
  const Float_t kInterCentrModBorder1 = 49.5;
  const Float_t kInterCentrModBorder2 = 57.5;
  const Float_t kExterInterModBorder1 = 196.0;
  const Float_t kExterInterModBorder2 = 203.5;

  const Float_t kLengthExInModBorder  = 4.7;
  const Float_t kLengthInCeModBorder  = 7.0;

  //const Float_t khAlWall = 0.1;
  const Float_t kModuleWallThickness = 0.3;
  //const Float_t kHoneycombLayerThickness = 1.5;

  Int_t iPlate=-1;

  Float_t posLocal[3];
  for (Int_t ii=0; ii<3; ii++) posLocal[ii] = pos[ii];

  Int_t isector = GetSector(posLocal);
  if(isector == -1){
    //AliError("Detector Index could not be determined");
    return iPlate;
  }

  // ALICE reference frame -> B071/B074/B075 = BTO1/2/3 reference frame
  Double_t angles[6] = 
    {90., 90.+(isector+0.5)*fgkPhiSec,
      0., 0.,
     90., (isector+0.5)*fgkPhiSec
    };
  Rotation(posLocal,angles);

  Float_t step[3] = {0., 0., static_cast<Float_t>((fgkRmax+fgkRmin)*0.5)};
  Translation(posLocal,step);

  // B071/B074/B075 = BTO1/2/3 reference frame -> FTOA = FLTA reference frame
  angles[0] = 90.;
  angles[1] =  0.;
  angles[2] =  0.;
  angles[3] =  0.;
  angles[4] = 90.;
  angles[5] =270.;

  Rotation(posLocal,angles);

  Float_t yLocal = posLocal[1];
  Float_t zLocal = posLocal[2];

  Float_t deltaRhoLoc  = (fgkRmax-fgkRmin)*0.5 - kModuleWallThickness + yLocal;
  Float_t deltaZetaLoc = TMath::Abs(zLocal);

  Float_t deltaRHOmax = 0.;

  if (TMath::Abs(zLocal)>=kExterInterModBorder1 && TMath::Abs(zLocal)<=kExterInterModBorder2) 
    {
      deltaRhoLoc -= kLengthExInModBorder;
      deltaZetaLoc = kExterInterModBorder2-deltaZetaLoc;
      deltaRHOmax  = (fgkRmax - fgkRmin)*0.5 - kModuleWallThickness - 2.*kLengthExInModBorder; // old 5.35, new 4.8

      if (deltaRhoLoc > deltaZetaLoc*deltaRHOmax/(kInterCentrModBorder2-kInterCentrModBorder1)) {
	if (zLocal<0) iPlate = 0;
	else iPlate = 4;
      }
      else {
	if (zLocal<0) iPlate = 1;
	else iPlate = 3;
      }
    }
  else if (TMath::Abs(zLocal)>=kInterCentrModBorder1 && TMath::Abs(zLocal)<=kInterCentrModBorder2) 
    {
      deltaRhoLoc -= kLengthInCeModBorder;
      deltaZetaLoc = deltaZetaLoc-kInterCentrModBorder1;
      deltaRHOmax = (fgkRmax - fgkRmin)*0.5 - kModuleWallThickness - 2.*kLengthInCeModBorder; // old 0.39, new 0.2

      if (deltaRhoLoc>deltaZetaLoc*deltaRHOmax/(kInterCentrModBorder2-kInterCentrModBorder1)) iPlate = 2;
      else {
	if (zLocal<0) iPlate = 1;
	else iPlate = 3;
      }
    }

  if      (zLocal>-fgkZlenA*0.5          && zLocal<-kExterInterModBorder2) iPlate = 0;
  else if (zLocal>-kExterInterModBorder1 && zLocal<-kInterCentrModBorder2) iPlate = 1;
  else if (zLocal>-kInterCentrModBorder1 && zLocal< kInterCentrModBorder1) iPlate = 2;
  else if (zLocal> kInterCentrModBorder2 && zLocal< kExterInterModBorder1) iPlate = 3;
  else if (zLocal> kExterInterModBorder2 && zLocal< fgkZlenA*0.5)          iPlate = 4;
  
  return iPlate;

}

//_____________________________________________________________________________
Int_t AliTOFGeometry::GetSector(const Float_t * pos)
{
  //
  // Returns the Sector index 
  //

  Int_t   iSect = -1; 

  Float_t x = pos[0];
  Float_t y = pos[1];
  Float_t z = pos[2];

  Float_t rho = TMath::Sqrt(x*x + y*y);

  if (!((z>=-fgkZlenA*0.5 && z<=fgkZlenA*0.5) &&
	(rho>=(fgkRmin) && rho<=(fgkRmax)))) {
    //AliError("Detector Index could not be determined");
    return iSect;
  }

  Float_t phi = TMath::Pi() + TMath::ATan2(-y,-x);	

  iSect  = (Int_t) (phi*kRaddeg/fgkPhiSec);
  
  return iSect;

}
//_____________________________________________________________________________
Int_t AliTOFGeometry::GetStrip(const Float_t * pos)
{
  //
  // Returns the Strip index 
  //
  const Float_t khhony    = 1.0          ; // heigth of HONY  Layer
  const Float_t khpcby    = 0.08         ; // heigth of PCB   Layer
  const Float_t khrgly    = 0.055        ; // heigth of RED GLASS  Layer
  const Float_t khglfy    = 0.285        ; // heigth of GLASS+FISHLINE  Layer
  const Float_t khcpcby   = 0.16         ; // heigth of PCB  Central Layer
  const Float_t kwcpcbz   = 12.4         ; // z dimension of PCB  Central Layer
  const Float_t khstripy = 2.*khhony+2.*khpcby+4.*khrgly+2.*khglfy+khcpcby;//3.11
  const Float_t kwstripz = kwcpcbz;
  const Float_t klstripx = fgkStripLength;
  
  Int_t iStrip=-1;
   
  Float_t posLocal[3];
  for (Int_t ii=0; ii<3; ii++) posLocal[ii] = pos[ii];
//   AliDebug(1,Form("  posLocal[0] = %f, posLocal[1] = %f, posLocal[2] = %f ",
// 		  posLocal[0],posLocal[1],posLocal[2]));

  Int_t isector = GetSector(posLocal);
  if(isector == -1){
    //AliError("Detector Index could not be determined");
    return iStrip;}
  Int_t iplate =  GetPlate(posLocal);
  if(iplate == -1){
    //AliError("Detector Index could not be determined");
    return iStrip;} 

  Int_t nstrips=0;
  switch (iplate) {
  case 0:
  case 4:
    nstrips=kNStripC;
    break;
  case 1:
  case 3:
    nstrips=kNStripB;
    break;
  case 2:
    nstrips=kNStripA;
    break;
  }
  
  // ALICE reference frame -> B071/B074/B075 = BTO1/2/3 reference frame
  Double_t angles[6] = 
    {90., 90.+(isector+0.5)*fgkPhiSec,
      0., 0.,
     90., (isector+0.5)*fgkPhiSec
    };
  Rotation(posLocal,angles);
  //  AliDebug(1,Form("  posLocal[0] = %f, posLocal[1] = %f, posLocal[2] = %f ",
  //		  posLocal[0],posLocal[1],posLocal[2]));

  Float_t step[3] = {0., 0., static_cast<Float_t>((fgkRmax+fgkRmin)*0.5)};
  Translation(posLocal,step);
  //  AliDebug(1,Form("  posLocal[0] = %f, posLocal[1] = %f, posLocal[2] = %f ",
  //		  posLocal[0],posLocal[1],posLocal[2]));

  // B071/B074/B075 = BTO1/2/3 reference frame -> FTOA = FLTA reference frame
  angles[0] = 90.;
  angles[1] =  0.;
  angles[2] =  0.;
  angles[3] =  0.;
  angles[4] = 90.;
  angles[5] =270.;

  Rotation(posLocal,angles);
  //  AliDebug(1,Form("  posLocal[0] = %f, posLocal[1] = %f, posLocal[2] = %f ",
  //		  posLocal[0],posLocal[1],posLocal[2]));

  // FTOA/B/C = FLTA/B/C reference frame -> FSTR reference frame
  Int_t totStrip=0;
  for (Int_t istrip=0; istrip<nstrips; istrip++){

    Float_t posLoc2[3]={posLocal[0],posLocal[1],posLocal[2]};	      

    step[0] = 0.;
    step[1] = GetHeights(iplate,istrip);
    step[2] = -GetDistances(iplate,istrip);
    Translation(posLoc2,step);

    if      (GetAngles(iplate,istrip) >0.) {
      angles[0] = 90.;
      angles[1] =  0.;
      angles[2] = 90.+GetAngles(iplate,istrip);
      angles[3] = 90.;
      angles[4] = GetAngles(iplate,istrip);
      angles[5] = 90.;
    }
    else if (GetAngles(iplate,istrip)==0.) {
      angles[0] = 90.;
      angles[1] =  0.;
      angles[2] = 90.;
      angles[3] = 90.;
      angles[4] =  0;
      angles[5] =  0.;
    }
    else if (GetAngles(iplate,istrip) <0.) {
      angles[0] = 90.;
      angles[1] =  0.;
      angles[2] = 90.+GetAngles(iplate,istrip);
      angles[3] = 90.;
      angles[4] =-GetAngles(iplate,istrip);
      angles[5] = 270.;
    }
    Rotation(posLoc2,angles);
    //    AliDebug(1,Form(" strip %2d:  posLoc2[0] = %f, posLoc2[1] = %f, posLoc2[2] = %f ",
    //		    istrip, posLoc2[0],posLoc2[1],posLoc2[2]));

    if ((TMath::Abs(posLoc2[0])<=klstripx*0.5) &&
	(TMath::Abs(posLoc2[1])<=khstripy*0.5) &&
	(TMath::Abs(posLoc2[2])<=kwstripz*0.5)) {
      iStrip = istrip;
      totStrip++;
      for (Int_t jj=0; jj<3; jj++) posLocal[jj]=posLoc2[jj];
      //      AliDebug(2,Form(" posLocal[0] = %f, posLocal[1] = %f, posLocal[2] = %f ",
      //		      posLocal[0],posLocal[1],posLocal[2]));

      //      AliDebug(2,Form(" GetAngles(%1i,%2i) = %f, pos[0] = %f, pos[1] = %f, pos[2] = %f",
      //		      iplate, istrip, GetAngles(iplate,istrip), pos[0], pos[1], pos[2]));
      break;
    }

    //    if (totStrip>1) AliInfo(Form("total strip number found %2i",totStrip));

  }

  return iStrip;
  
}
//_____________________________________________________________________________
Int_t AliTOFGeometry::GetPadZ(const Float_t * pos)
{
  //
  // Returns the Pad index along Z 
  //
  //const Float_t klsensmx = kNpadX*fgkXPad;  // length of Sensitive Layer
  //const Float_t khsensmy = 0.05;//0.11;//0.16;// heigth of Sensitive Layer
  //const Float_t kwsensmz = kNpadZ*fgkZPad;  // width of Sensitive Layer

  Int_t iPadZ = -1;

  Float_t posLocal[3];
  for (Int_t ii=0; ii<3; ii++) posLocal[ii] = pos[ii];
 
  Int_t isector = GetSector(posLocal);
  if(isector == -1){
    //AliError("Detector Index could not be determined");
    return iPadZ;}
  Int_t iplate =  GetPlate(posLocal);
  if(iplate == -1){
    //AliError("Detector Index could not be determined");
    return iPadZ;}
  Int_t istrip =  GetStrip(posLocal);
  if(istrip == -1){
    //AliError("Detector Index could not be determined");
    return iPadZ;}

  // ALICE reference frame -> B071/B074/B075 = BTO1/2/3 reference frame
  Double_t angles[6] = 
    {90., 90.+(isector+0.5)*fgkPhiSec,
      0., 0.,
     90., (isector+0.5)*fgkPhiSec
    };
  Rotation(posLocal,angles);

  Float_t step[3] = {0., 0., static_cast<Float_t>((fgkRmax+fgkRmin)*0.5)};
  Translation(posLocal,step);

  // B071/B074/B075 = BTO1/2/3 reference frame -> FTOA = FLTA reference frame
  angles[0] = 90.;
  angles[1] =  0.;
  angles[2] =  0.;
  angles[3] =  0.;
  angles[4] = 90.;
  angles[5] =270.;

  Rotation(posLocal,angles);

  // FTOA/B/C = FLTA/B/C reference frame -> FSTR reference frame
  step[0] = 0.;
  step[1] = GetHeights(iplate,istrip);
  step[2] = -GetDistances(iplate,istrip);
  Translation(posLocal,step);

  if      (GetAngles(iplate,istrip) >0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.+GetAngles(iplate,istrip);
    angles[3] = 90.;
    angles[4] = GetAngles(iplate,istrip);
    angles[5] = 90.;
  }
  else if (GetAngles(iplate,istrip)==0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.;
    angles[3] = 90.;
    angles[4] =  0;
    angles[5] =  0.;
  }
  else if (GetAngles(iplate,istrip) <0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.+GetAngles(iplate,istrip);
    angles[3] = 90.;
    angles[4] =-GetAngles(iplate,istrip);
    angles[5] = 270.;
  }
  Rotation(posLocal,angles);

  step[0] =-0.5*kNpadX*fgkXPad;
  step[1] = 0.;
  step[2] =-0.5*kNpadZ*fgkZPad;
  Translation(posLocal,step);

  iPadZ = (Int_t)(posLocal[2]/fgkZPad);
  if (iPadZ==kNpadZ) iPadZ--;
  else if (iPadZ>kNpadZ) iPadZ=-1;

  return iPadZ;

}
//_____________________________________________________________________________
Int_t AliTOFGeometry::GetPadX(const Float_t * pos)
{
  //
  // Returns the Pad index along X 
  //
  //const Float_t klsensmx = kNpadX*fgkXPad;  // length of Sensitive Layer
  //const Float_t khsensmy = 0.05;//0.11;//0.16;// heigth of Sensitive Layer
  //const Float_t kwsensmz = kNpadZ*fgkZPad;  // width of Sensitive Layer

  Int_t iPadX  = -1;

  Float_t posLocal[3];
  for (Int_t ii=0; ii<3; ii++) posLocal[ii] = pos[ii];
 
  Int_t isector = GetSector(posLocal);
  if(isector == -1){
    //AliError("Detector Index could not be determined");
    return iPadX;}
  Int_t iplate =  GetPlate(posLocal);
  if(iplate == -1){
    //AliError("Detector Index could not be determined");
    return iPadX;} 
  Int_t istrip =  GetStrip(posLocal);
  if(istrip == -1){  
    //AliError("Detector Index could not be determined");
    return iPadX;}

  // ALICE reference frame -> B071/B074/B075 = BTO1/2/3 reference frame
  Double_t angles[6] = 
    {90., 90.+(isector+0.5)*fgkPhiSec,
      0.,  0.,
     90., (isector+0.5)*fgkPhiSec
    };
  Rotation(posLocal,angles);

  Float_t step[3] = {0., 0., static_cast<Float_t>((fgkRmax+fgkRmin)*0.5)};
  Translation(posLocal,step);

  // B071/B074/B075 = BTO1/2/3 reference frame -> FTOA/B/C = FLTA/B/C reference frame
  angles[0] = 90.;
  angles[1] =  0.;
  angles[2] =  0.;
  angles[3] =  0.;
  angles[4] = 90.;
  angles[5] =270.;

  Rotation(posLocal,angles);

  // FTOA/B/C = FLTA/B/C reference frame -> FSTR reference frame
  step[0] = 0.;
  step[1] = GetHeights(iplate,istrip);
  step[2] = -GetDistances(iplate,istrip);
  Translation(posLocal,step);

  if      (GetAngles(iplate,istrip) >0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.+GetAngles(iplate,istrip);
    angles[3] = 90.;
    angles[4] = GetAngles(iplate,istrip);
    angles[5] = 90.;
  }
  else if (GetAngles(iplate,istrip)==0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.;
    angles[3] = 90.;
    angles[4] =  0;
    angles[5] =  0.;
  }
  else if (GetAngles(iplate,istrip) <0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.+GetAngles(iplate,istrip);
    angles[3] = 90.;
    angles[4] =-GetAngles(iplate,istrip);
    angles[5] = 270.;
  }
  Rotation(posLocal,angles);

  step[0] =-0.5*kNpadX*fgkXPad;
  step[1] = 0.;
  step[2] =-0.5*kNpadZ*fgkZPad;
  Translation(posLocal,step);

  iPadX = (Int_t)(posLocal[0]/fgkXPad);
  if (iPadX==kNpadX) iPadX--;
  else if (iPadX>kNpadX) iPadX=-1;

  return iPadX;

}
//_____________________________________________________________________________
Float_t AliTOFGeometry::GetX(const Int_t * det)
{
  //
  // Returns X coordinate (cm)
  //

  Int_t isector = det[0];
  Int_t iplate  = det[1];
  Int_t istrip  = det[2];
  Int_t ipadz   = det[3];
  Int_t ipadx   = det[4];

  /*
  // Find out distance d on the plane wrt median phi:
  Float_t d = (ipadx+0.5-kNpadX*0.5)*fgkXPad;

  // The radius r in xy plane:
  //Float_t r = (fgkRmin+fgkRmax)*0.5-0.01+GetHeights(iplate,istrip)+
  //  (ipadz-0.5)*fgkZPad*TMath::Sin(GetAngles(iplate,istrip)/kRaddeg)-0.25; ???
  Float_t r = (fgkRmin+fgkRmax)*0.5-0.01+GetHeights(iplate,istrip)+
    (ipadz-0.5)*fgkZPad*TMath::Sin(GetAngles(iplate,istrip)/kRaddeg);

  // local azimuthal angle in the sector philoc
  Float_t philoc  = TMath::ATan(d/r);
  //if(philoc<0.) philoc = k2PI + philoc;

  // azimuthal angle in the global frame  phi
  Float_t phi   = philoc*kRaddeg+(isector+0.5)*fgkPhiSec;

  Float_t xCoor = r/TMath::Cos(philoc)*TMath::Cos(phi/kRaddeg);
  */

  // Pad reference frame -> FSTR reference frame
  Float_t posLocal[3] = {0., 0., 0.};
  Float_t step[3] = {static_cast<Float_t>(-(ipadx+0.5)*fgkXPad), 0., static_cast<Float_t>(-(ipadz+0.5)*fgkZPad)};
  Translation(posLocal,step);

  step[0] = kNpadX*0.5*fgkXPad;
  step[1] = 0.;
  step[2] = kNpadZ*0.5*fgkZPad;
  /*
  Float_t posLocal[3] = {(ipadx+0.5)*fgkXPad, 0., (ipadz+0.5)*fgkZPad};
  Float_t step[3]= {kNpadX*0.5*fgkXPad, 0., kNpadZ*0.5*fgkZPad};
  */
  Translation(posLocal,step);

  // FSTR reference frame -> FTOA/B/C = FLTA/B/C reference frame
  Double_t angles[6] = {0.,0.,0.,0.,0.,0.};
  if      (GetAngles(iplate,istrip) >0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.+GetAngles(iplate,istrip);
    angles[3] = 90.;
    angles[4] = GetAngles(iplate,istrip);
    angles[5] = 90.;
  }
  else if (GetAngles(iplate,istrip)==0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.;
    angles[3] = 90.;
    angles[4] =  0;
    angles[5] =  0.;
  }
  else if (GetAngles(iplate,istrip) <0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.+GetAngles(iplate,istrip);
    angles[3] = 90.;
    angles[4] =-GetAngles(iplate,istrip);
    angles[5] = 270.;
  }

  InverseRotation(posLocal,angles);

  step[0] = 0.;
  step[1] = -GetHeights(iplate,istrip);
  step[2] =  GetDistances(iplate,istrip);
  Translation(posLocal,step);

  // FTOA = FLTA reference frame -> B071/B074/B075 = BTO1/2/3 reference frame
  angles[0] = 90.;
  angles[1] =  0.;
  angles[2] =  0.;
  angles[3] =  0.;
  angles[4] = 90.;
  angles[5] =270.;

  InverseRotation(posLocal,angles);

  // B071/B074/B075 = BTO1/2/3 reference frame -> ALICE reference frame
  step[0] = 0.;
  step[1] = 0.;
  step[2] = -((fgkRmax+fgkRmin)*0.5);
  Translation(posLocal,step);

  angles[0] = 90.;
  angles[1] = 90.+(isector+0.5)*fgkPhiSec;
  angles[2] = 0.;
  angles[3] = 0.;
  angles[4] = 90.;
  angles[5] = (isector+0.5)*fgkPhiSec;

  InverseRotation(posLocal,angles);

  Float_t xCoor = posLocal[0];

  return xCoor;

}
//_____________________________________________________________________________
Float_t AliTOFGeometry::GetY(const Int_t * det)
{
  //
  // Returns Y coordinate (cm)
  //

  Int_t isector = det[0];
  Int_t iplate  = det[1];
  Int_t istrip  = det[2];
  Int_t ipadz   = det[3];
  Int_t ipadx   = det[4];

  /*
  // Find out distance d on the plane wrt median phi:
  Float_t d = (ipadx+0.5-kNpadX*0.5)*fgkXPad;

  // The radius r in xy plane:
  //Float_t r = (fgkRmin+fgkRmax)*0.5-0.01+GetHeights(iplate,istrip)+
  //  (ipadz-0.5)*fgkZPad*TMath::Sin(GetAngles(iplate,istrip)/kRaddeg)-0.25; ???
  Float_t r = (fgkRmin+fgkRmax)*0.5-0.01+GetHeights(iplate,istrip)+
    (ipadz-0.5)*fgkZPad*TMath::Sin(GetAngles(iplate,istrip)/kRaddeg);

  // local azimuthal angle in the sector philoc
  Float_t philoc = TMath::ATan(d/r);
  //if(philoc<0.) philoc = k2PI + philoc;

  // azimuthal angle in the global frame  phi
  Float_t phi   = philoc*kRaddeg+(isector+0.5)*fgkPhiSec;

  Float_t yCoor = r/TMath::Cos(philoc)*TMath::Sin(phi/kRaddeg);
  */

  // Pad reference frame -> FSTR reference frame
  Float_t posLocal[3] = {0., 0., 0.};
  Float_t step[3] = {static_cast<Float_t>(-(ipadx+0.5)*fgkXPad), 0., static_cast<Float_t>(-(ipadz+0.5)*fgkZPad)};
  Translation(posLocal,step);

  step[0] = kNpadX*0.5*fgkXPad;
  step[1] = 0.;
  step[2] = kNpadZ*0.5*fgkZPad;
  /*
  Float_t posLocal[3] = {(ipadx+0.5)*fgkXPad, 0., (ipadz+0.5)*fgkZPad};
  Float_t step[3]= {kNpadX*0.5*fgkXPad, 0., kNpadZ*0.5*fgkZPad};
  */
  Translation(posLocal,step);

  // FSTR reference frame -> FTOA/B/C = FLTA/B/C reference frame

  Double_t angles[6] = {0.,0.,0.,0.,0.,0.};
  if      (GetAngles(iplate,istrip) >0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.+GetAngles(iplate,istrip);
    angles[3] = 90.;
    angles[4] = GetAngles(iplate,istrip);
    angles[5] = 90.;
  }
  else if (GetAngles(iplate,istrip)==0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.;
    angles[3] = 90.;
    angles[4] =  0;
    angles[5] =  0.;
  }
  else if (GetAngles(iplate,istrip) <0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.+GetAngles(iplate,istrip);
    angles[3] = 90.;
    angles[4] =-GetAngles(iplate,istrip);
    angles[5] = 270.;
  }

  InverseRotation(posLocal,angles);

  step[0] = 0.;
  step[1] = -GetHeights(iplate,istrip);
  step[2] =  GetDistances(iplate,istrip);
  Translation(posLocal,step);

  // FTOA = FLTA reference frame -> B071/B074/B075 = BTO1/2/3 reference frame
  angles[0] = 90.;
  angles[1] =  0.;
  angles[2] =  0.;
  angles[3] =  0.;
  angles[4] = 90.;
  angles[5] =270.;

  InverseRotation(posLocal,angles);

  // B071/B074/B075 = BTO1/2/3 reference frame -> ALICE reference frame
  step[0] = 0.;
  step[1] = 0.;
  step[2] = -((fgkRmax+fgkRmin)*0.5);
  Translation(posLocal,step);

  angles[0] = 90.;
  angles[1] = 90.+(isector+0.5)*fgkPhiSec;
  angles[2] = 0.;
  angles[3] = 0.;
  angles[4] = 90.;
  angles[5] = (isector+0.5)*fgkPhiSec;

  InverseRotation(posLocal,angles);

  Float_t yCoor = posLocal[1];

  return yCoor;

}

//_____________________________________________________________________________
Float_t AliTOFGeometry::GetZ(const Int_t * det)
{
  //
  // Returns Z coordinate (cm)
  //

  Int_t isector = det[0];
  Int_t iplate  = det[1];
  Int_t istrip  = det[2];
  Int_t ipadz   = det[3];
  Int_t ipadx   = det[4];

  /*
  Float_t zCoor = GetDistances(iplate,istrip) +
    (0.5-ipadz) * fgkZPad * TMath::Cos(GetAngles(iplate,istrip)*kDegrad);
  */

  // Pad reference frame -> FSTR reference frame
  Float_t posLocal[3] = {0., 0., 0.};
  Float_t step[3] = {static_cast<Float_t>(-(ipadx+0.5)*fgkXPad), 0., static_cast<Float_t>(-(ipadz+0.5)*fgkZPad)};
  Translation(posLocal,step);

  step[0] = kNpadX*0.5*fgkXPad;
  step[1] = 0.;
  step[2] = kNpadZ*0.5*fgkZPad;
  /*
  Float_t posLocal[3] = {(ipadx+0.5)*fgkXPad, 0., (ipadz+0.5)*fgkZPad};
  Float_t step[3]= {kNpadX*0.5*fgkXPad, 0., kNpadZ*0.5*fgkZPad};
  */
  Translation(posLocal,step);

  // FSTR reference frame -> FTOA/B/C = FLTA/B/C reference frame
  Double_t angles[6] = {0.,0.,0.,0.,0.,0.};
  if      (GetAngles(iplate,istrip) >0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.+GetAngles(iplate,istrip);
    angles[3] = 90.;
    angles[4] = GetAngles(iplate,istrip);
    angles[5] = 90.;
  }
  else if (GetAngles(iplate,istrip)==0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.;
    angles[3] = 90.;
    angles[4] =  0;
    angles[5] =  0.;
  }
  else if (GetAngles(iplate,istrip) <0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.+GetAngles(iplate,istrip);
    angles[3] = 90.;
    angles[4] =-GetAngles(iplate,istrip);
    angles[5] = 270.;
  }

  InverseRotation(posLocal,angles);

  step[0] = 0.;
  step[1] = -GetHeights(iplate,istrip);
  step[2] =  GetDistances(iplate,istrip);
  Translation(posLocal,step);

  // FTOA = FLTA reference frame -> B071/B074/B075 = BTO1/2/3 reference frame
  angles[0] = 90.;
  angles[1] =  0.;
  angles[2] =  0.;
  angles[3] =  0.;
  angles[4] = 90.;
  angles[5] =270.;

  InverseRotation(posLocal,angles);

  // B071/B074/B075 = BTO1/2/3 reference frame -> ALICE reference frame
  step[0] = 0.;
  step[1] = 0.;
  step[2] = -((fgkRmax+fgkRmin)*0.5);
  Translation(posLocal,step);

  angles[0] = 90.;
  angles[1] = 90.+(isector+0.5)*fgkPhiSec;
  angles[2] = 0.;
  angles[3] = 0.;
  angles[4] = 90.;
  angles[5] = (isector+0.5)*fgkPhiSec;

  InverseRotation(posLocal,angles);

  Float_t zCoor = posLocal[2];

  return zCoor;

}
//_____________________________________________________________________________

void AliTOFGeometry::DetToSectorRF(Int_t vol[5], Double_t coord[4][3])
{
  //
  // Returns the local coordinates (x, y, z) in sector reference frame
  // for the 4 corners of each sector pad (vol[1], vol[2], vol[3], vol[4])
  //

  if (!gGeoManager) printf("ERROR: no TGeo\n");

  // ALICE -> TOF Sector
  Char_t path1[200];
  GetVolumePath(vol[0],path1);
  gGeoManager->cd(path1);
  TGeoHMatrix aliceToSector;
  aliceToSector = *gGeoManager->GetCurrentMatrix();

  // TOF Sector -> ALICE
  //TGeoHMatrix sectorToALICE = aliceToSector.Inverse();

  // ALICE -> TOF Pad
  Char_t path2[200];
  GetVolumePath(vol,path2);
  gGeoManager->cd(path2);
  TGeoHMatrix aliceToPad;
  aliceToPad = *gGeoManager->GetCurrentMatrix();

  // TOF Pad -> ALICE
  TGeoHMatrix padToALICE = aliceToPad.Inverse();

  // TOF Pad -> TOF Sector
  TGeoHMatrix padToSector = padToALICE*aliceToSector;

  // TOF Sector -> TOF Pad
  //TGeoHMatrix sectorToPad = sectorToALICE*aliceToPad;

  // coordinates of the pad bottom corner
  Double_t **cornerPad = new Double_t*[4];
  for (Int_t ii=0; ii<4; ii++) cornerPad[ii] = new Double_t[3];

  cornerPad[0][0] = -fgkXPad/2.;
  cornerPad[0][1] =  0.;
  cornerPad[0][2] = -fgkZPad/2.;

  cornerPad[1][0] =  fgkXPad/2.;
  cornerPad[1][1] =  0.;
  cornerPad[1][2] = -fgkZPad/2.;

  cornerPad[2][0] =  fgkXPad/2.;
  cornerPad[2][1] =  0.;
  cornerPad[2][2] =  fgkZPad/2.;

  cornerPad[3][0] = -fgkXPad/2.;
  cornerPad[3][1] =  0.;
  cornerPad[3][2] =  fgkZPad/2.;

  for(Int_t aa=0; aa<4; aa++) for(Int_t bb=0; bb<3; bb++) coord[aa][bb]=0.;

  for (Int_t jj=0; jj<4; jj++) padToSector.MasterToLocal(&cornerPad[jj][0], &coord[jj][0]);

  delete [] cornerPad;

  //sectorToPad.LocalToMaster(cornerPad, coord);

}
//_____________________________________________________________________________
Float_t AliTOFGeometry::GetPadDx(const Float_t * pos)
{
  //
  // Returns the x coordinate in the Pad reference frame
  //

  Float_t xpad = -2.;

  Float_t posLocal[3];
  for (Int_t ii=0; ii<3; ii++) posLocal[ii] = pos[ii];
 
  Int_t isector = GetSector(posLocal);
  if(isector == -1){
    //AliError("Detector Index could not be determined");
    return xpad;}
  Int_t iplate =  GetPlate(posLocal);
  if(iplate == -1){
    //AliError("Detector Index could not be determined");
    return xpad;} 
  Int_t istrip =  GetStrip(posLocal);
  if(istrip == -1){  
    //AliError("Detector Index could not be determined");
    return xpad;}
  Int_t ipadz =  GetPadZ(posLocal);
  if(ipadz == -1){  
    //AliError("Detector Index could not be determined");
    return xpad;}
  Int_t ipadx =  GetPadX(posLocal);
  if(ipadx == -1){
    //AliError("Detector Index could not be determined");
    return xpad;}

  // ALICE reference frame -> B071/B074/B075 = BTO1/2/3 reference frame
  Double_t angles[6] = 
    {90., 90.+(isector+0.5)*fgkPhiSec,
      0.,  0.,
     90., (isector+0.5)*fgkPhiSec
    };
  Rotation(posLocal,angles);

  Float_t step[3] = {0., 0., static_cast<Float_t>((fgkRmax+fgkRmin)*0.5)};
  Translation(posLocal,step);

  // B071/B074/B075 = BTO1/2/3 reference frame -> FTOA/B/C = FLTA/B/C reference frame
  angles[0] = 90.;
  angles[1] =  0.;
  angles[2] =  0.;
  angles[3] =  0.;
  angles[4] = 90.;
  angles[5] =270.;

  Rotation(posLocal,angles);

  // FTOA/B/C = FLTA/B/C reference frame -> FSTR reference frame
  step[0] = 0.;
  step[1] = GetHeights(iplate,istrip);
  step[2] = -GetDistances(iplate,istrip);
  Translation(posLocal,step);

  if      (GetAngles(iplate,istrip) >0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.+GetAngles(iplate,istrip);
    angles[3] = 90.;
    angles[4] = GetAngles(iplate,istrip);
    angles[5] = 90.;
  }
  else if (GetAngles(iplate,istrip)==0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.;
    angles[3] = 90.;
    angles[4] =  0;
    angles[5] =  0.;
  }
  else if (GetAngles(iplate,istrip) <0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.+GetAngles(iplate,istrip);
    angles[3] = 90.;
    angles[4] =-GetAngles(iplate,istrip);
    angles[5] = 270.;
  }
  Rotation(posLocal,angles);

  step[0] =-0.5*kNpadX*fgkXPad;
  step[1] = 0.;
  step[2] =-0.5*kNpadZ*fgkZPad;
  Translation(posLocal,step);

  step[0] = (ipadx+0.5)*fgkXPad;
  step[1] = 0.;
  step[2] = (ipadz+0.5)*fgkZPad;
  Translation(posLocal,step);
  
  xpad=posLocal[0];

  return xpad;

}
//_____________________________________________________________________________
Float_t AliTOFGeometry::GetPadDy(const Float_t * pos)
{
  //
  // Returns the y coordinate in the Pad reference frame
  //

  Float_t ypad = -2.;

  Float_t posLocal[3];
  for (Int_t ii=0; ii<3; ii++) posLocal[ii] = pos[ii];
 
  Int_t isector = GetSector(posLocal);
  if(isector == -1){
    //AliError("Detector Index could not be determined");
    return ypad;}
  Int_t iplate =  GetPlate(posLocal);
  if(iplate == -1){
    //AliError("Detector Index could not be determined");
    return ypad;} 
  Int_t istrip =  GetStrip(posLocal);
  if(istrip == -1){  
    //AliError("Detector Index could not be determined");
    return ypad;}
  Int_t ipadz =  GetPadZ(posLocal);
  if(ipadz == -1){  
    //AliError("Detector Index could not be determined");
    return ypad;}
  Int_t ipadx =  GetPadX(posLocal);
  if(ipadx == -1){
    //AliError("Detector Index could not be determined");
    return ypad;}

  // ALICE reference frame -> B071/B074/B075 = BTO1/2/3 reference frame
  Double_t angles[6] = 
    {90., 90.+(isector+0.5)*fgkPhiSec,
      0.,  0.,
     90., (isector+0.5)*fgkPhiSec
    };
  Rotation(posLocal,angles);

  Float_t step[3] = {0., 0., static_cast<Float_t>((fgkRmax+fgkRmin)*0.5)};
  Translation(posLocal,step);

  // B071/B074/B075 = BTO1/2/3 reference frame -> FTOA/B/C = FLTA/B/C reference frame
  angles[0] = 90.;
  angles[1] =  0.;
  angles[2] =  0.;
  angles[3] =  0.;
  angles[4] = 90.;
  angles[5] =270.;

  Rotation(posLocal,angles);

  // FTOA/B/C = FLTA/B/C reference frame -> FSTR reference frame
  step[0] = 0.;
  step[1] = GetHeights(iplate,istrip);
  step[2] = -GetDistances(iplate,istrip);
  Translation(posLocal,step);

  if      (GetAngles(iplate,istrip) >0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.+GetAngles(iplate,istrip);
    angles[3] = 90.;
    angles[4] = GetAngles(iplate,istrip);
    angles[5] = 90.;
  }
  else if (GetAngles(iplate,istrip)==0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.;
    angles[3] = 90.;
    angles[4] =  0;
    angles[5] =  0.;
  }
  else if (GetAngles(iplate,istrip) <0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.+GetAngles(iplate,istrip);
    angles[3] = 90.;
    angles[4] =-GetAngles(iplate,istrip);
    angles[5] = 270.;
  }
  Rotation(posLocal,angles);

  step[0] =-0.5*kNpadX*fgkXPad;
  step[1] = 0.;
  step[2] =-0.5*kNpadZ*fgkZPad;
  Translation(posLocal,step);
  
  step[0] = (ipadx+0.5)*fgkXPad;
  step[1] = 0.;
  step[2] = (ipadz+0.5)*fgkZPad;
  Translation(posLocal,step);
  
  ypad=posLocal[1];
  
  return ypad;

}
//_____________________________________________________________________________
Float_t AliTOFGeometry::GetPadDz(const Float_t * pos)
{
  //
  // Returns the z coordinate in the Pad reference frame
  //

  Float_t zpad = -2.;

  Float_t posLocal[3];
  for (Int_t ii=0; ii<3; ii++) posLocal[ii] = pos[ii];
 
  Int_t isector = GetSector(posLocal);
  if(isector == -1){
    //AliError("Detector Index could not be determined");
    return zpad;}
  Int_t iplate =  GetPlate(posLocal);
  if(iplate == -1){
    //AliError("Detector Index could not be determined");
    return zpad;} 
  Int_t istrip =  GetStrip(posLocal);
  if(istrip == -1){  
    //AliError("Detector Index could not be determined");
    return zpad;}
  Int_t ipadz =  GetPadZ(posLocal);
  if(ipadz == -1){  
    //AliError("Detector Index could not be determined");
    return zpad;}
  Int_t ipadx =  GetPadX(posLocal);
  if(ipadx == -1){
    //AliError("Detector Index could not be determined");
    return zpad;}

  // ALICE reference frame -> B071/B074/B075 = BTO1/2/3 reference frame
  Double_t angles[6] = 
    {90., 90.+(isector+0.5)*fgkPhiSec,
      0.,  0.,
     90., (isector+0.5)*fgkPhiSec
    };
  Rotation(posLocal,angles);

  Float_t step[3] = {0., 0., static_cast<Float_t>((fgkRmax+fgkRmin)*0.5)};
  Translation(posLocal,step);

  // B071/B074/B075 = BTO1/2/3 reference frame -> FTOA/B/C = FLTA/B/C reference frame
  angles[0] = 90.;
  angles[1] =  0.;
  angles[2] =  0.;
  angles[3] =  0.;
  angles[4] = 90.;
  angles[5] =270.;

  Rotation(posLocal,angles);

  // FTOA/B/C = FLTA/B/C reference frame -> FSTR reference frame
  step[0] = 0.;
  step[1] = GetHeights(iplate,istrip);
  step[2] = -GetDistances(iplate,istrip);
  Translation(posLocal,step);

  if      (GetAngles(iplate,istrip) >0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.+GetAngles(iplate,istrip);
    angles[3] = 90.;
    angles[4] = GetAngles(iplate,istrip);
    angles[5] = 90.;
  }
  else if (GetAngles(iplate,istrip)==0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.;
    angles[3] = 90.;
    angles[4] =  0;
    angles[5] =  0.;
  }
  else if (GetAngles(iplate,istrip) <0.) {
    angles[0] = 90.;
    angles[1] =  0.;
    angles[2] = 90.+GetAngles(iplate,istrip);
    angles[3] = 90.;
    angles[4] =-GetAngles(iplate,istrip);
    angles[5] = 270.;
  }
  Rotation(posLocal,angles);

  step[0] =-0.5*kNpadX*fgkXPad;
  step[1] = 0.;
  step[2] =-0.5*kNpadZ*fgkZPad;
  Translation(posLocal,step);
  
  step[0] = (ipadx+0.5)*fgkXPad;
  step[1] = 0.;
  step[2] = (ipadz+0.5)*fgkZPad;
  Translation(posLocal,step);

  zpad=posLocal[2];

  return zpad;

}
//_____________________________________________________________________________

void AliTOFGeometry::Translation(Float_t *xyz, Float_t translationVector[3])
{
  //
  // Return the vector xyz translated by translationVector vector
  //

  Int_t ii=0;

  for (ii=0; ii<3; ii++)
    xyz[ii] -= translationVector[ii];

  return;

}
//_____________________________________________________________________________

void AliTOFGeometry::Rotation(Float_t *xyz, Double_t rotationAngles[6])
{
  //
  // Return the vector xyz rotated according to the rotationAngles angles
  //

  Int_t ii=0;
  /*
  TRotMatrix *matrix = new TRotMatrix("matrix","matrix", angles[0], angles[1],
				      angles[2], angles[3],
				      angles[4], angles[5]);
  */

  for (ii=0; ii<6; ii++) rotationAngles[ii]*=kDegrad;

  Float_t xyzDummy[3] = {0., 0., 0.};

  for (ii=0; ii<3; ii++) {
    xyzDummy[ii] =
      xyz[0]*TMath::Sin(rotationAngles[2*ii])*TMath::Cos(rotationAngles[2*ii+1]) +
      xyz[1]*TMath::Sin(rotationAngles[2*ii])*TMath::Sin(rotationAngles[2*ii+1]) +
      xyz[2]*TMath::Cos(rotationAngles[2*ii]);
  }

  for (ii=0; ii<3; ii++) xyz[ii]=xyzDummy[ii];

  return;

}
//_____________________________________________________________________________
void AliTOFGeometry::InverseRotation(Float_t *xyz, Double_t rotationAngles[6])
{
  //
  // Rotates the vector xyz acordint to the rotationAngles
  //

  Int_t ii=0;

  for (ii=0; ii<6; ii++) rotationAngles[ii]*=kDegrad;

  Float_t xyzDummy[3] = {0., 0., 0.};

  xyzDummy[0] =
    xyz[0]*TMath::Sin(rotationAngles[0])*TMath::Cos(rotationAngles[1]) +
    xyz[1]*TMath::Sin(rotationAngles[2])*TMath::Cos(rotationAngles[3]) +
    xyz[2]*TMath::Sin(rotationAngles[4])*TMath::Cos(rotationAngles[5]);
  
  xyzDummy[1] =
    xyz[0]*TMath::Sin(rotationAngles[0])*TMath::Sin(rotationAngles[1]) +
    xyz[1]*TMath::Sin(rotationAngles[2])*TMath::Sin(rotationAngles[3]) +
    xyz[2]*TMath::Sin(rotationAngles[4])*TMath::Sin(rotationAngles[5]);
  
  xyzDummy[2] =
    xyz[0]*TMath::Cos(rotationAngles[0]) +
    xyz[1]*TMath::Cos(rotationAngles[2]) +
    xyz[2]*TMath::Cos(rotationAngles[4]);
  
  for (ii=0; ii<3; ii++) xyz[ii]=xyzDummy[ii];

  return;

}
//_____________________________________________________________________________

Int_t AliTOFGeometry::GetIndex(const Int_t * detId)
{
  //Retrieve calibration channel index 
  Int_t isector = detId[0];
  if (isector >= kNSectors){
    printf("Wrong sector number in TOF (%d) !\n",isector);
    return -1;
  }
  Int_t iplate = detId[1];
  if (iplate >= kNPlates){
    printf("Wrong plate number in TOF (%d) !\n",iplate);
    return -1;
  }
  Int_t istrip = detId[2];
  Int_t stripOffset = GetStripNumberPerSM(iplate,istrip);
  if (stripOffset==-1) {
    printf("Wrong strip number per SM in TOF (%d) !\n",stripOffset);
    return -1;
  }

  Int_t ipadz = detId[3];
  Int_t ipadx = detId[4];

  Int_t idet = ((2*(kNStripC+kNStripB)+kNStripA)*kNpadZ*kNpadX)*isector +
               (stripOffset*kNpadZ*kNpadX)+
	       (kNpadX)*ipadz+
	        ipadx;
  return idet;
}
//_____________________________________________________________________________

void AliTOFGeometry::GetVolumeIndices(Int_t index, Int_t *detId)
{
  //
  // Retrieve volume indices from the calibration channel index 
  //

  detId[0] = index/NpadXStrip()/NStripXSector();

  Int_t dummyStripPerModule = 
    ( index - ( NStripXSector()*NpadXStrip()*detId[0]) ) / NpadXStrip();
  if (dummyStripPerModule<kNStripC) {
    detId[1] = 0;
    detId[2] = dummyStripPerModule;
  }
  else if (dummyStripPerModule>=kNStripC && dummyStripPerModule<kNStripC+kNStripB) {
    detId[1] = 1;
    detId[2] = dummyStripPerModule-kNStripC;
  }
  else if (dummyStripPerModule>=kNStripC+kNStripB && dummyStripPerModule<kNStripC+kNStripB+kNStripA) {
    detId[1] = 2;
    detId[2] = dummyStripPerModule-kNStripC-kNStripB;
  }
  else if (dummyStripPerModule>=kNStripC+kNStripB+kNStripA && dummyStripPerModule<kNStripC+kNStripB+kNStripA+kNStripB) {
    detId[1] = 3;
    detId[2] = dummyStripPerModule-kNStripC-kNStripB-kNStripA;
  }
  else if (dummyStripPerModule>=kNStripC+kNStripB+kNStripA+kNStripB && dummyStripPerModule<NStripXSector()) {
    detId[1] = 4;
    detId[2] = dummyStripPerModule-kNStripC-kNStripB-kNStripA-kNStripB;
  }

  Int_t padPerStrip = ( index - ( NStripXSector()*NpadXStrip()*detId[0]) ) - dummyStripPerModule*NpadXStrip();

  detId[3] = padPerStrip / kNpadX; // padZ
  detId[4] = padPerStrip - detId[3]*kNpadX; // padX

}
//_____________________________________________________________________________

Int_t AliTOFGeometry::NStrip(Int_t nPlate)
{
  //
  // Returns the strips number for the plate number 'nPlate'
  //

  Int_t nStrips = kNStripC;

  switch(nPlate) {
  case 2:
    nStrips = kNStripA;
    break;
  case 1:
  case 3:
    nStrips = kNStripB;
    break;
  case 0:
  case 4:
  default:
    nStrips = kNStripC;
    break;
  }

  return nStrips;

}
//-------------------------------------------------------------------------

UShort_t AliTOFGeometry::GetAliSensVolIndex(Int_t isector, Int_t iplate, Int_t istrip)
{
  //
  // Get the index of the TOF alignable volume in the AliGeomManager order.
  //

  Int_t index = GetStripNumber(isector, iplate, istrip);

  UShort_t volIndex = AliGeomManager::LayerToVolUID(AliGeomManager::kTOF,index);

  return volIndex;

}
//-------------------------------------------------------------------------

Int_t AliTOFGeometry::GetStripNumber(Int_t isector, Int_t iplate, Int_t istrip)
{
  //
  // Get the serial number of the TOF strip number istrip [0,14/18],
  //   in the module number iplate [0,4],
  //   in the TOF SM number isector [0,17].
  // This number will range in [0,1637].
  //

  Bool_t check = (isector >= kNSectors);

  if (check)
    printf("E-AliTOFGeometry::GetStripNumber: Wrong sector number in TOF (%d)!\n",isector);

  Int_t index = -1;
  Int_t stripInSM = GetStripNumberPerSM(iplate, istrip);
  if (!check && stripInSM!=-1)
    index = (2*(kNStripC+kNStripB)+kNStripA)*isector + stripInSM;

  return index;

}
//-------------------------------------------------------------------------

void AliTOFGeometry::GetStripAndModule(Int_t iStripPerSM, Int_t &iplate, Int_t &istrip)
{
  //
  // Convert the serial number of the TOF strip number iStripPerSM [0,90]
  // in module number iplate [0,4] and strip number istrip [0,14/18].
  //

  if (iStripPerSM<0 || iStripPerSM>=kNStripC+kNStripB+kNStripA+kNStripB+kNStripC) {
    iplate = -1;
    istrip = -1;
  }
  else if (iStripPerSM<kNStripC) {
    iplate = 0;
    istrip = iStripPerSM;
  }
  else if (iStripPerSM>=kNStripC && iStripPerSM<kNStripC+kNStripB) {
    iplate = 1;
    istrip = iStripPerSM-kNStripC;
  }
  else if (iStripPerSM>=kNStripC+kNStripB && iStripPerSM<kNStripC+kNStripB+kNStripA) {
    iplate = 2;
    istrip = iStripPerSM-kNStripC-kNStripB;
  }
  else if (iStripPerSM>=kNStripC+kNStripB+kNStripA && iStripPerSM<kNStripC+kNStripB+kNStripA+kNStripB) {
    iplate = 3;
    istrip = iStripPerSM-kNStripC-kNStripB-kNStripA;
  }
  else if (iStripPerSM>=kNStripC+kNStripB+kNStripA+kNStripB && iStripPerSM<kNStripC+kNStripB+kNStripA+kNStripB+kNStripC) {
    iplate = 4;
    istrip = iStripPerSM-kNStripC-kNStripB-kNStripA-kNStripB;
  }


}
//-------------------------------------------------------------------------

Int_t AliTOFGeometry::GetStripNumberPerSM(Int_t iplate, Int_t istrip)
{
  //
  // Get the serial number of the TOF strip number istrip [0,14/18],
  //   in the module number iplate [0,4].
  // This number will range in [0,90].
  //

  Int_t index = -1;

  Bool_t check = (
		  (iplate<0 || iplate>=kNPlates)
		  ||
		  (
		   (iplate==2 && (istrip<0 || istrip>=kNStripA))
		   ||
		   (iplate!=2 && (istrip<0 || istrip>=kNStripC))
		   )
		  );

  if (iplate<0 || iplate>=kNPlates)
    printf("E-AliTOFGeometry::GetStripNumberPerSM: Wrong plate number in TOF (%1d)!\n",iplate);

  if (
      (iplate==2 && (istrip<0 || istrip>=kNStripA))
      ||
      (iplate!=2 && (istrip<0 || istrip>=kNStripC))
      )
    printf("E-AliTOFGeometry::GetStripNumberPerSM: Wrong strip number in TOF "
	   "(strip=%2d in the plate=%1d)!\n",istrip,iplate);

  Int_t stripOffset = 0;
  switch (iplate) {
  case 0:
    stripOffset = 0;
    break;
  case 1:
    stripOffset = kNStripC;
    break;
  case 2:
    stripOffset = kNStripC+kNStripB;
    break;
  case 3:
    stripOffset = kNStripC+kNStripB+kNStripA;
    break;
  case 4:
    stripOffset = kNStripC+kNStripB+kNStripA+kNStripB;
    break;
  };

  if (!check) index = stripOffset + istrip;

  return index;

}
//-------------------------------------------------------------------------

void AliTOFGeometry::PadRF2TrackingRF(Float_t *ctrackPos, Float_t *differenceT)
{
  //
  // To convert the 3D distance ctrackPos, referred to the ALICE RF,
  // into the 3D distance differenceT, referred to the tracking RF
  // in case ctrakPos belongs to a TOF sensitive volume.
  //

  for (Int_t ii=0; ii<3; ii++) differenceT[ii] = 999.;

  AliDebug(1,Form(" track position in ALICE global Ref. frame -> %f, %f, %f",
		  ctrackPos[0],ctrackPos[1],ctrackPos[2]));

  Int_t detId[5] = {-1,-1,-1,-1,-1};

  detId[0] = GetSector(ctrackPos);
  if (detId[0]==-1) {
    AliWarning(Form("This point does not belong to any TOF sector"));
    return;
  }

  detId[1] = GetPlate(ctrackPos);
  if (detId[1]==-1) {
    AliWarning(Form("This point does not belong to any TOF module"));
    return;
  }

  detId[2] = GetStrip(ctrackPos);
  if (detId[2]==-1) {
    AliWarning(Form("This point does not belong to any TOF strip"));
    return;
  }

  detId[3] = GetPadZ(ctrackPos);
  if (detId[3]==-1) {
    AliWarning(Form("This point does not belong to any TOF pad-row"));
    return;
  }

  detId[4] = GetPadX(ctrackPos);
  if (detId[4]==-1) {
    AliWarning(Form("This point does not belong to any TOF pad"));
    return;
  }


  UShort_t alignableStripIndex =
    GetAliSensVolIndex(detId[0],detId[1],detId[2]);
  AliDebug(1,Form(" sector = %2d, plate = %1d, strip = %2d (padZ = %1d, padX = %2d) "
		  "---> stripIndex = %4d",
		  detId[0], detId[1], detId[2], detId[3], detId[4], alignableStripIndex));

  // pad centre coordinates in the strip ref. frame
  Double_t padCentreL[3] = {(detId[4]-AliTOFGeometry::NpadX()/2)*AliTOFGeometry::XPad()
			    +AliTOFGeometry::XPad()/2.,
			    0.,
			    (detId[3]-AliTOFGeometry::NpadZ()/2)*AliTOFGeometry::XPad()
			    +AliTOFGeometry::XPad()/2.};
  // pad centre coordinates in the strip tracking frame
  Double_t padCentreT[3] = {0., 0., 0.};
  TGeoHMatrix l2t = *AliGeomManager::GetTracking2LocalMatrix(alignableStripIndex);
  l2t.MasterToLocal(padCentreL,padCentreT);


  Char_t path[200];
  // pad centre coordinates in its ref. frame
  Double_t padCentreL2[3] = {0., 0., 0.};
  // pad centre coordinates in the ALICE global ref. frame
  Double_t padCentreG[3] = {0., 0., 0.};
  GetVolumePath(detId,path);
  gGeoManager->cd(path);
  TGeoHMatrix g2l = *gGeoManager->GetCurrentMatrix();
  TGeoHMatrix l2g = g2l.Inverse();
  l2g.MasterToLocal(padCentreL2,padCentreG);


  Char_t path2[200];
  // strip centre coordinates in its ref. frame
  Double_t stripCentreL[3] = {0., 0., 0.};
  // strip centre coordinates in the ALICE global ref. frame
  Double_t stripCentreG[3] = {0., 0., 0.};
  GetVolumePath(detId[0],detId[1],detId[2],path2);
  gGeoManager->cd(path2);
  TGeoHMatrix g2lb = *gGeoManager->GetCurrentMatrix();
  TGeoHMatrix l2gb = g2lb.Inverse();
  l2gb.MasterToLocal(stripCentreL,stripCentreG);

  TGeoHMatrix g2t = 0;
  AliGeomManager::GetTrackingMatrix(alignableStripIndex, g2t);

  // track position in the ALICE global ref. frame
  Double_t posG[3];
  for (Int_t ii=0; ii<3; ii++) posG[ii] = (Double_t)ctrackPos[ii];

  // strip centre coordinates in the tracking ref. frame
  Double_t stripCentreT[3] = {0., 0., 0.};
  // track position in the tracking ref. frame
  Double_t posT[3] = {0., 0., 0.};
  g2t.MasterToLocal(posG,posT);
  g2t.MasterToLocal(stripCentreG,stripCentreT);

  for (Int_t ii=0; ii<3; ii++)
    AliDebug(1,Form(" track position in ALICE global and tracking RFs -> posG[%d] = %f --- posT[%d] = %f",
		    ii, posG[ii], ii, posT[ii]));
  for (Int_t ii=0; ii<3; ii++)
    AliDebug(1,Form(" pad centre coordinates in its, the ALICE global and tracking RFs -> "
		    "padCentreL[%d] = %f --- padCentreG[%d] = %f --- padCentreT[%d] = %f",
		    ii, padCentreL[ii],
		    ii, padCentreG[ii],
		    ii, padCentreT[ii]));
  for (Int_t ii=0; ii<3; ii++)
    AliDebug(1,Form(" strip centre coordinates in its, the ALICE global and tracking RFs -> "
		    "stripCentreL[%d] = %f --- stripCentreG[%d] = %f --- stripCentreT[%d] = %f",
		    ii, stripCentreL[ii],
		    ii, stripCentreG[ii],
		    ii, stripCentreT[ii]));
  for (Int_t ii=0; ii<3; ii++)
    AliDebug(1,Form(" difference between the track position and the pad centre in the tracking RF "
		    "-> posT[%d]-padCentreT[%d] = %f",
		    ii,ii,
		    posT[ii]-padCentreT[ii]));

  for (Int_t ii=0; ii<3; ii++) differenceT[ii] = (Float_t)(posT[ii]-padCentreT[ii]);

}
//-------------------------------------------------------------------------

Int_t AliTOFGeometry::GetTOFsupermodule(Int_t index)
{
  // Return the TOF supermodule where TOF channel index is located

  if (index<0 || index>=NPadXSector()*NSectors()) return -1;
  else return index/NpadXStrip()/NStripXSector();

}
 AliTOFGeometry.cxx:1
 AliTOFGeometry.cxx:2
 AliTOFGeometry.cxx:3
 AliTOFGeometry.cxx:4
 AliTOFGeometry.cxx:5
 AliTOFGeometry.cxx:6
 AliTOFGeometry.cxx:7
 AliTOFGeometry.cxx:8
 AliTOFGeometry.cxx:9
 AliTOFGeometry.cxx:10
 AliTOFGeometry.cxx:11
 AliTOFGeometry.cxx:12
 AliTOFGeometry.cxx:13
 AliTOFGeometry.cxx:14
 AliTOFGeometry.cxx:15
 AliTOFGeometry.cxx:16
 AliTOFGeometry.cxx:17
 AliTOFGeometry.cxx:18
 AliTOFGeometry.cxx:19
 AliTOFGeometry.cxx:20
 AliTOFGeometry.cxx:21
 AliTOFGeometry.cxx:22
 AliTOFGeometry.cxx:23
 AliTOFGeometry.cxx:24
 AliTOFGeometry.cxx:25
 AliTOFGeometry.cxx:26
 AliTOFGeometry.cxx:27
 AliTOFGeometry.cxx:28
 AliTOFGeometry.cxx:29
 AliTOFGeometry.cxx:30
 AliTOFGeometry.cxx:31
 AliTOFGeometry.cxx:32
 AliTOFGeometry.cxx:33
 AliTOFGeometry.cxx:34
 AliTOFGeometry.cxx:35
 AliTOFGeometry.cxx:36
 AliTOFGeometry.cxx:37
 AliTOFGeometry.cxx:38
 AliTOFGeometry.cxx:39
 AliTOFGeometry.cxx:40
 AliTOFGeometry.cxx:41
 AliTOFGeometry.cxx:42
 AliTOFGeometry.cxx:43
 AliTOFGeometry.cxx:44
 AliTOFGeometry.cxx:45
 AliTOFGeometry.cxx:46
 AliTOFGeometry.cxx:47
 AliTOFGeometry.cxx:48
 AliTOFGeometry.cxx:49
 AliTOFGeometry.cxx:50
 AliTOFGeometry.cxx:51
 AliTOFGeometry.cxx:52
 AliTOFGeometry.cxx:53
 AliTOFGeometry.cxx:54
 AliTOFGeometry.cxx:55
 AliTOFGeometry.cxx:56
 AliTOFGeometry.cxx:57
 AliTOFGeometry.cxx:58
 AliTOFGeometry.cxx:59
 AliTOFGeometry.cxx:60
 AliTOFGeometry.cxx:61
 AliTOFGeometry.cxx:62
 AliTOFGeometry.cxx:63
 AliTOFGeometry.cxx:64
 AliTOFGeometry.cxx:65
 AliTOFGeometry.cxx:66
 AliTOFGeometry.cxx:67
 AliTOFGeometry.cxx:68
 AliTOFGeometry.cxx:69
 AliTOFGeometry.cxx:70
 AliTOFGeometry.cxx:71
 AliTOFGeometry.cxx:72
 AliTOFGeometry.cxx:73
 AliTOFGeometry.cxx:74
 AliTOFGeometry.cxx:75
 AliTOFGeometry.cxx:76
 AliTOFGeometry.cxx:77
 AliTOFGeometry.cxx:78
 AliTOFGeometry.cxx:79
 AliTOFGeometry.cxx:80
 AliTOFGeometry.cxx:81
 AliTOFGeometry.cxx:82
 AliTOFGeometry.cxx:83
 AliTOFGeometry.cxx:84
 AliTOFGeometry.cxx:85
 AliTOFGeometry.cxx:86
 AliTOFGeometry.cxx:87
 AliTOFGeometry.cxx:88
 AliTOFGeometry.cxx:89
 AliTOFGeometry.cxx:90
 AliTOFGeometry.cxx:91
 AliTOFGeometry.cxx:92
 AliTOFGeometry.cxx:93
 AliTOFGeometry.cxx:94
 AliTOFGeometry.cxx:95
 AliTOFGeometry.cxx:96
 AliTOFGeometry.cxx:97
 AliTOFGeometry.cxx:98
 AliTOFGeometry.cxx:99
 AliTOFGeometry.cxx:100
 AliTOFGeometry.cxx:101
 AliTOFGeometry.cxx:102
 AliTOFGeometry.cxx:103
 AliTOFGeometry.cxx:104
 AliTOFGeometry.cxx:105
 AliTOFGeometry.cxx:106
 AliTOFGeometry.cxx:107
 AliTOFGeometry.cxx:108
 AliTOFGeometry.cxx:109
 AliTOFGeometry.cxx:110
 AliTOFGeometry.cxx:111
 AliTOFGeometry.cxx:112
 AliTOFGeometry.cxx:113
 AliTOFGeometry.cxx:114
 AliTOFGeometry.cxx:115
 AliTOFGeometry.cxx:116
 AliTOFGeometry.cxx:117
 AliTOFGeometry.cxx:118
 AliTOFGeometry.cxx:119
 AliTOFGeometry.cxx:120
 AliTOFGeometry.cxx:121
 AliTOFGeometry.cxx:122
 AliTOFGeometry.cxx:123
 AliTOFGeometry.cxx:124
 AliTOFGeometry.cxx:125
 AliTOFGeometry.cxx:126
 AliTOFGeometry.cxx:127
 AliTOFGeometry.cxx:128
 AliTOFGeometry.cxx:129
 AliTOFGeometry.cxx:130
 AliTOFGeometry.cxx:131
 AliTOFGeometry.cxx:132
 AliTOFGeometry.cxx:133
 AliTOFGeometry.cxx:134
 AliTOFGeometry.cxx:135
 AliTOFGeometry.cxx:136
 AliTOFGeometry.cxx:137
 AliTOFGeometry.cxx:138
 AliTOFGeometry.cxx:139
 AliTOFGeometry.cxx:140
 AliTOFGeometry.cxx:141
 AliTOFGeometry.cxx:142
 AliTOFGeometry.cxx:143
 AliTOFGeometry.cxx:144
 AliTOFGeometry.cxx:145
 AliTOFGeometry.cxx:146
 AliTOFGeometry.cxx:147
 AliTOFGeometry.cxx:148
 AliTOFGeometry.cxx:149
 AliTOFGeometry.cxx:150
 AliTOFGeometry.cxx:151
 AliTOFGeometry.cxx:152
 AliTOFGeometry.cxx:153
 AliTOFGeometry.cxx:154
 AliTOFGeometry.cxx:155
 AliTOFGeometry.cxx:156
 AliTOFGeometry.cxx:157
 AliTOFGeometry.cxx:158
 AliTOFGeometry.cxx:159
 AliTOFGeometry.cxx:160
 AliTOFGeometry.cxx:161
 AliTOFGeometry.cxx:162
 AliTOFGeometry.cxx:163
 AliTOFGeometry.cxx:164
 AliTOFGeometry.cxx:165
 AliTOFGeometry.cxx:166
 AliTOFGeometry.cxx:167
 AliTOFGeometry.cxx:168
 AliTOFGeometry.cxx:169
 AliTOFGeometry.cxx:170
 AliTOFGeometry.cxx:171
 AliTOFGeometry.cxx:172
 AliTOFGeometry.cxx:173
 AliTOFGeometry.cxx:174
 AliTOFGeometry.cxx:175
 AliTOFGeometry.cxx:176
 AliTOFGeometry.cxx:177
 AliTOFGeometry.cxx:178
 AliTOFGeometry.cxx:179
 AliTOFGeometry.cxx:180
 AliTOFGeometry.cxx:181
 AliTOFGeometry.cxx:182
 AliTOFGeometry.cxx:183
 AliTOFGeometry.cxx:184
 AliTOFGeometry.cxx:185
 AliTOFGeometry.cxx:186
 AliTOFGeometry.cxx:187
 AliTOFGeometry.cxx:188
 AliTOFGeometry.cxx:189
 AliTOFGeometry.cxx:190
 AliTOFGeometry.cxx:191
 AliTOFGeometry.cxx:192
 AliTOFGeometry.cxx:193
 AliTOFGeometry.cxx:194
 AliTOFGeometry.cxx:195
 AliTOFGeometry.cxx:196
 AliTOFGeometry.cxx:197
 AliTOFGeometry.cxx:198
 AliTOFGeometry.cxx:199
 AliTOFGeometry.cxx:200
 AliTOFGeometry.cxx:201
 AliTOFGeometry.cxx:202
 AliTOFGeometry.cxx:203
 AliTOFGeometry.cxx:204
 AliTOFGeometry.cxx:205
 AliTOFGeometry.cxx:206
 AliTOFGeometry.cxx:207
 AliTOFGeometry.cxx:208
 AliTOFGeometry.cxx:209
 AliTOFGeometry.cxx:210
 AliTOFGeometry.cxx:211
 AliTOFGeometry.cxx:212
 AliTOFGeometry.cxx:213
 AliTOFGeometry.cxx:214
 AliTOFGeometry.cxx:215
 AliTOFGeometry.cxx:216
 AliTOFGeometry.cxx:217
 AliTOFGeometry.cxx:218
 AliTOFGeometry.cxx:219
 AliTOFGeometry.cxx:220
 AliTOFGeometry.cxx:221
 AliTOFGeometry.cxx:222
 AliTOFGeometry.cxx:223
 AliTOFGeometry.cxx:224
 AliTOFGeometry.cxx:225
 AliTOFGeometry.cxx:226
 AliTOFGeometry.cxx:227
 AliTOFGeometry.cxx:228
 AliTOFGeometry.cxx:229
 AliTOFGeometry.cxx:230
 AliTOFGeometry.cxx:231
 AliTOFGeometry.cxx:232
 AliTOFGeometry.cxx:233
 AliTOFGeometry.cxx:234
 AliTOFGeometry.cxx:235
 AliTOFGeometry.cxx:236
 AliTOFGeometry.cxx:237
 AliTOFGeometry.cxx:238
 AliTOFGeometry.cxx:239
 AliTOFGeometry.cxx:240
 AliTOFGeometry.cxx:241
 AliTOFGeometry.cxx:242
 AliTOFGeometry.cxx:243
 AliTOFGeometry.cxx:244
 AliTOFGeometry.cxx:245
 AliTOFGeometry.cxx:246
 AliTOFGeometry.cxx:247
 AliTOFGeometry.cxx:248
 AliTOFGeometry.cxx:249
 AliTOFGeometry.cxx:250
 AliTOFGeometry.cxx:251
 AliTOFGeometry.cxx:252
 AliTOFGeometry.cxx:253
 AliTOFGeometry.cxx:254
 AliTOFGeometry.cxx:255
 AliTOFGeometry.cxx:256
 AliTOFGeometry.cxx:257
 AliTOFGeometry.cxx:258
 AliTOFGeometry.cxx:259
 AliTOFGeometry.cxx:260
 AliTOFGeometry.cxx:261
 AliTOFGeometry.cxx:262
 AliTOFGeometry.cxx:263
 AliTOFGeometry.cxx:264
 AliTOFGeometry.cxx:265
 AliTOFGeometry.cxx:266
 AliTOFGeometry.cxx:267
 AliTOFGeometry.cxx:268
 AliTOFGeometry.cxx:269
 AliTOFGeometry.cxx:270
 AliTOFGeometry.cxx:271
 AliTOFGeometry.cxx:272
 AliTOFGeometry.cxx:273
 AliTOFGeometry.cxx:274
 AliTOFGeometry.cxx:275
 AliTOFGeometry.cxx:276
 AliTOFGeometry.cxx:277
 AliTOFGeometry.cxx:278
 AliTOFGeometry.cxx:279
 AliTOFGeometry.cxx:280
 AliTOFGeometry.cxx:281
 AliTOFGeometry.cxx:282
 AliTOFGeometry.cxx:283
 AliTOFGeometry.cxx:284
 AliTOFGeometry.cxx:285
 AliTOFGeometry.cxx:286
 AliTOFGeometry.cxx:287
 AliTOFGeometry.cxx:288
 AliTOFGeometry.cxx:289
 AliTOFGeometry.cxx:290
 AliTOFGeometry.cxx:291
 AliTOFGeometry.cxx:292
 AliTOFGeometry.cxx:293
 AliTOFGeometry.cxx:294
 AliTOFGeometry.cxx:295
 AliTOFGeometry.cxx:296
 AliTOFGeometry.cxx:297
 AliTOFGeometry.cxx:298
 AliTOFGeometry.cxx:299
 AliTOFGeometry.cxx:300
 AliTOFGeometry.cxx:301
 AliTOFGeometry.cxx:302
 AliTOFGeometry.cxx:303
 AliTOFGeometry.cxx:304
 AliTOFGeometry.cxx:305
 AliTOFGeometry.cxx:306
 AliTOFGeometry.cxx:307
 AliTOFGeometry.cxx:308
 AliTOFGeometry.cxx:309
 AliTOFGeometry.cxx:310
 AliTOFGeometry.cxx:311
 AliTOFGeometry.cxx:312
 AliTOFGeometry.cxx:313
 AliTOFGeometry.cxx:314
 AliTOFGeometry.cxx:315
 AliTOFGeometry.cxx:316
 AliTOFGeometry.cxx:317
 AliTOFGeometry.cxx:318
 AliTOFGeometry.cxx:319
 AliTOFGeometry.cxx:320
 AliTOFGeometry.cxx:321
 AliTOFGeometry.cxx:322
 AliTOFGeometry.cxx:323
 AliTOFGeometry.cxx:324
 AliTOFGeometry.cxx:325
 AliTOFGeometry.cxx:326
 AliTOFGeometry.cxx:327
 AliTOFGeometry.cxx:328
 AliTOFGeometry.cxx:329
 AliTOFGeometry.cxx:330
 AliTOFGeometry.cxx:331
 AliTOFGeometry.cxx:332
 AliTOFGeometry.cxx:333
 AliTOFGeometry.cxx:334
 AliTOFGeometry.cxx:335
 AliTOFGeometry.cxx:336
 AliTOFGeometry.cxx:337
 AliTOFGeometry.cxx:338
 AliTOFGeometry.cxx:339
 AliTOFGeometry.cxx:340
 AliTOFGeometry.cxx:341
 AliTOFGeometry.cxx:342
 AliTOFGeometry.cxx:343
 AliTOFGeometry.cxx:344
 AliTOFGeometry.cxx:345
 AliTOFGeometry.cxx:346
 AliTOFGeometry.cxx:347
 AliTOFGeometry.cxx:348
 AliTOFGeometry.cxx:349
 AliTOFGeometry.cxx:350
 AliTOFGeometry.cxx:351
 AliTOFGeometry.cxx:352
 AliTOFGeometry.cxx:353
 AliTOFGeometry.cxx:354
 AliTOFGeometry.cxx:355
 AliTOFGeometry.cxx:356
 AliTOFGeometry.cxx:357
 AliTOFGeometry.cxx:358
 AliTOFGeometry.cxx:359
 AliTOFGeometry.cxx:360
 AliTOFGeometry.cxx:361
 AliTOFGeometry.cxx:362
 AliTOFGeometry.cxx:363
 AliTOFGeometry.cxx:364
 AliTOFGeometry.cxx:365
 AliTOFGeometry.cxx:366
 AliTOFGeometry.cxx:367
 AliTOFGeometry.cxx:368
 AliTOFGeometry.cxx:369
 AliTOFGeometry.cxx:370
 AliTOFGeometry.cxx:371
 AliTOFGeometry.cxx:372
 AliTOFGeometry.cxx:373
 AliTOFGeometry.cxx:374
 AliTOFGeometry.cxx:375
 AliTOFGeometry.cxx:376
 AliTOFGeometry.cxx:377
 AliTOFGeometry.cxx:378
 AliTOFGeometry.cxx:379
 AliTOFGeometry.cxx:380
 AliTOFGeometry.cxx:381
 AliTOFGeometry.cxx:382
 AliTOFGeometry.cxx:383
 AliTOFGeometry.cxx:384
 AliTOFGeometry.cxx:385
 AliTOFGeometry.cxx:386
 AliTOFGeometry.cxx:387
 AliTOFGeometry.cxx:388
 AliTOFGeometry.cxx:389
 AliTOFGeometry.cxx:390
 AliTOFGeometry.cxx:391
 AliTOFGeometry.cxx:392
 AliTOFGeometry.cxx:393
 AliTOFGeometry.cxx:394
 AliTOFGeometry.cxx:395
 AliTOFGeometry.cxx:396
 AliTOFGeometry.cxx:397
 AliTOFGeometry.cxx:398
 AliTOFGeometry.cxx:399
 AliTOFGeometry.cxx:400
 AliTOFGeometry.cxx:401
 AliTOFGeometry.cxx:402
 AliTOFGeometry.cxx:403
 AliTOFGeometry.cxx:404
 AliTOFGeometry.cxx:405
 AliTOFGeometry.cxx:406
 AliTOFGeometry.cxx:407
 AliTOFGeometry.cxx:408
 AliTOFGeometry.cxx:409
 AliTOFGeometry.cxx:410
 AliTOFGeometry.cxx:411
 AliTOFGeometry.cxx:412
 AliTOFGeometry.cxx:413
 AliTOFGeometry.cxx:414
 AliTOFGeometry.cxx:415
 AliTOFGeometry.cxx:416
 AliTOFGeometry.cxx:417
 AliTOFGeometry.cxx:418
 AliTOFGeometry.cxx:419
 AliTOFGeometry.cxx:420
 AliTOFGeometry.cxx:421
 AliTOFGeometry.cxx:422
 AliTOFGeometry.cxx:423
 AliTOFGeometry.cxx:424
 AliTOFGeometry.cxx:425
 AliTOFGeometry.cxx:426
 AliTOFGeometry.cxx:427
 AliTOFGeometry.cxx:428
 AliTOFGeometry.cxx:429
 AliTOFGeometry.cxx:430
 AliTOFGeometry.cxx:431
 AliTOFGeometry.cxx:432
 AliTOFGeometry.cxx:433
 AliTOFGeometry.cxx:434
 AliTOFGeometry.cxx:435
 AliTOFGeometry.cxx:436
 AliTOFGeometry.cxx:437
 AliTOFGeometry.cxx:438
 AliTOFGeometry.cxx:439
 AliTOFGeometry.cxx:440
 AliTOFGeometry.cxx:441
 AliTOFGeometry.cxx:442
 AliTOFGeometry.cxx:443
 AliTOFGeometry.cxx:444
 AliTOFGeometry.cxx:445
 AliTOFGeometry.cxx:446
 AliTOFGeometry.cxx:447
 AliTOFGeometry.cxx:448
 AliTOFGeometry.cxx:449
 AliTOFGeometry.cxx:450
 AliTOFGeometry.cxx:451
 AliTOFGeometry.cxx:452
 AliTOFGeometry.cxx:453
 AliTOFGeometry.cxx:454
 AliTOFGeometry.cxx:455
 AliTOFGeometry.cxx:456
 AliTOFGeometry.cxx:457
 AliTOFGeometry.cxx:458
 AliTOFGeometry.cxx:459
 AliTOFGeometry.cxx:460
 AliTOFGeometry.cxx:461
 AliTOFGeometry.cxx:462
 AliTOFGeometry.cxx:463
 AliTOFGeometry.cxx:464
 AliTOFGeometry.cxx:465
 AliTOFGeometry.cxx:466
 AliTOFGeometry.cxx:467
 AliTOFGeometry.cxx:468
 AliTOFGeometry.cxx:469
 AliTOFGeometry.cxx:470
 AliTOFGeometry.cxx:471
 AliTOFGeometry.cxx:472
 AliTOFGeometry.cxx:473
 AliTOFGeometry.cxx:474
 AliTOFGeometry.cxx:475
 AliTOFGeometry.cxx:476
 AliTOFGeometry.cxx:477
 AliTOFGeometry.cxx:478
 AliTOFGeometry.cxx:479
 AliTOFGeometry.cxx:480
 AliTOFGeometry.cxx:481
 AliTOFGeometry.cxx:482
 AliTOFGeometry.cxx:483
 AliTOFGeometry.cxx:484
 AliTOFGeometry.cxx:485
 AliTOFGeometry.cxx:486
 AliTOFGeometry.cxx:487
 AliTOFGeometry.cxx:488
 AliTOFGeometry.cxx:489
 AliTOFGeometry.cxx:490
 AliTOFGeometry.cxx:491
 AliTOFGeometry.cxx:492
 AliTOFGeometry.cxx:493
 AliTOFGeometry.cxx:494
 AliTOFGeometry.cxx:495
 AliTOFGeometry.cxx:496
 AliTOFGeometry.cxx:497
 AliTOFGeometry.cxx:498
 AliTOFGeometry.cxx:499
 AliTOFGeometry.cxx:500
 AliTOFGeometry.cxx:501
 AliTOFGeometry.cxx:502
 AliTOFGeometry.cxx:503
 AliTOFGeometry.cxx:504
 AliTOFGeometry.cxx:505
 AliTOFGeometry.cxx:506
 AliTOFGeometry.cxx:507
 AliTOFGeometry.cxx:508
 AliTOFGeometry.cxx:509
 AliTOFGeometry.cxx:510
 AliTOFGeometry.cxx:511
 AliTOFGeometry.cxx:512
 AliTOFGeometry.cxx:513
 AliTOFGeometry.cxx:514
 AliTOFGeometry.cxx:515
 AliTOFGeometry.cxx:516
 AliTOFGeometry.cxx:517
 AliTOFGeometry.cxx:518
 AliTOFGeometry.cxx:519
 AliTOFGeometry.cxx:520
 AliTOFGeometry.cxx:521
 AliTOFGeometry.cxx:522
 AliTOFGeometry.cxx:523
 AliTOFGeometry.cxx:524
 AliTOFGeometry.cxx:525
 AliTOFGeometry.cxx:526
 AliTOFGeometry.cxx:527
 AliTOFGeometry.cxx:528
 AliTOFGeometry.cxx:529
 AliTOFGeometry.cxx:530
 AliTOFGeometry.cxx:531
 AliTOFGeometry.cxx:532
 AliTOFGeometry.cxx:533
 AliTOFGeometry.cxx:534
 AliTOFGeometry.cxx:535
 AliTOFGeometry.cxx:536
 AliTOFGeometry.cxx:537
 AliTOFGeometry.cxx:538
 AliTOFGeometry.cxx:539
 AliTOFGeometry.cxx:540
 AliTOFGeometry.cxx:541
 AliTOFGeometry.cxx:542
 AliTOFGeometry.cxx:543
 AliTOFGeometry.cxx:544
 AliTOFGeometry.cxx:545
 AliTOFGeometry.cxx:546
 AliTOFGeometry.cxx:547
 AliTOFGeometry.cxx:548
 AliTOFGeometry.cxx:549
 AliTOFGeometry.cxx:550
 AliTOFGeometry.cxx:551
 AliTOFGeometry.cxx:552
 AliTOFGeometry.cxx:553
 AliTOFGeometry.cxx:554
 AliTOFGeometry.cxx:555
 AliTOFGeometry.cxx:556
 AliTOFGeometry.cxx:557
 AliTOFGeometry.cxx:558
 AliTOFGeometry.cxx:559
 AliTOFGeometry.cxx:560
 AliTOFGeometry.cxx:561
 AliTOFGeometry.cxx:562
 AliTOFGeometry.cxx:563
 AliTOFGeometry.cxx:564
 AliTOFGeometry.cxx:565
 AliTOFGeometry.cxx:566
 AliTOFGeometry.cxx:567
 AliTOFGeometry.cxx:568
 AliTOFGeometry.cxx:569
 AliTOFGeometry.cxx:570
 AliTOFGeometry.cxx:571
 AliTOFGeometry.cxx:572
 AliTOFGeometry.cxx:573
 AliTOFGeometry.cxx:574
 AliTOFGeometry.cxx:575
 AliTOFGeometry.cxx:576
 AliTOFGeometry.cxx:577
 AliTOFGeometry.cxx:578
 AliTOFGeometry.cxx:579
 AliTOFGeometry.cxx:580
 AliTOFGeometry.cxx:581
 AliTOFGeometry.cxx:582
 AliTOFGeometry.cxx:583
 AliTOFGeometry.cxx:584
 AliTOFGeometry.cxx:585
 AliTOFGeometry.cxx:586
 AliTOFGeometry.cxx:587
 AliTOFGeometry.cxx:588
 AliTOFGeometry.cxx:589
 AliTOFGeometry.cxx:590
 AliTOFGeometry.cxx:591
 AliTOFGeometry.cxx:592
 AliTOFGeometry.cxx:593
 AliTOFGeometry.cxx:594
 AliTOFGeometry.cxx:595
 AliTOFGeometry.cxx:596
 AliTOFGeometry.cxx:597
 AliTOFGeometry.cxx:598
 AliTOFGeometry.cxx:599
 AliTOFGeometry.cxx:600
 AliTOFGeometry.cxx:601
 AliTOFGeometry.cxx:602
 AliTOFGeometry.cxx:603
 AliTOFGeometry.cxx:604
 AliTOFGeometry.cxx:605
 AliTOFGeometry.cxx:606
 AliTOFGeometry.cxx:607
 AliTOFGeometry.cxx:608
 AliTOFGeometry.cxx:609
 AliTOFGeometry.cxx:610
 AliTOFGeometry.cxx:611
 AliTOFGeometry.cxx:612
 AliTOFGeometry.cxx:613
 AliTOFGeometry.cxx:614
 AliTOFGeometry.cxx:615
 AliTOFGeometry.cxx:616
 AliTOFGeometry.cxx:617
 AliTOFGeometry.cxx:618
 AliTOFGeometry.cxx:619
 AliTOFGeometry.cxx:620
 AliTOFGeometry.cxx:621
 AliTOFGeometry.cxx:622
 AliTOFGeometry.cxx:623
 AliTOFGeometry.cxx:624
 AliTOFGeometry.cxx:625
 AliTOFGeometry.cxx:626
 AliTOFGeometry.cxx:627
 AliTOFGeometry.cxx:628
 AliTOFGeometry.cxx:629
 AliTOFGeometry.cxx:630
 AliTOFGeometry.cxx:631
 AliTOFGeometry.cxx:632
 AliTOFGeometry.cxx:633
 AliTOFGeometry.cxx:634
 AliTOFGeometry.cxx:635
 AliTOFGeometry.cxx:636
 AliTOFGeometry.cxx:637
 AliTOFGeometry.cxx:638
 AliTOFGeometry.cxx:639
 AliTOFGeometry.cxx:640
 AliTOFGeometry.cxx:641
 AliTOFGeometry.cxx:642
 AliTOFGeometry.cxx:643
 AliTOFGeometry.cxx:644
 AliTOFGeometry.cxx:645
 AliTOFGeometry.cxx:646
 AliTOFGeometry.cxx:647
 AliTOFGeometry.cxx:648
 AliTOFGeometry.cxx:649
 AliTOFGeometry.cxx:650
 AliTOFGeometry.cxx:651
 AliTOFGeometry.cxx:652
 AliTOFGeometry.cxx:653
 AliTOFGeometry.cxx:654
 AliTOFGeometry.cxx:655
 AliTOFGeometry.cxx:656
 AliTOFGeometry.cxx:657
 AliTOFGeometry.cxx:658
 AliTOFGeometry.cxx:659
 AliTOFGeometry.cxx:660
 AliTOFGeometry.cxx:661
 AliTOFGeometry.cxx:662
 AliTOFGeometry.cxx:663
 AliTOFGeometry.cxx:664
 AliTOFGeometry.cxx:665
 AliTOFGeometry.cxx:666
 AliTOFGeometry.cxx:667
 AliTOFGeometry.cxx:668
 AliTOFGeometry.cxx:669
 AliTOFGeometry.cxx:670
 AliTOFGeometry.cxx:671
 AliTOFGeometry.cxx:672
 AliTOFGeometry.cxx:673
 AliTOFGeometry.cxx:674
 AliTOFGeometry.cxx:675
 AliTOFGeometry.cxx:676
 AliTOFGeometry.cxx:677
 AliTOFGeometry.cxx:678
 AliTOFGeometry.cxx:679
 AliTOFGeometry.cxx:680
 AliTOFGeometry.cxx:681
 AliTOFGeometry.cxx:682
 AliTOFGeometry.cxx:683
 AliTOFGeometry.cxx:684
 AliTOFGeometry.cxx:685
 AliTOFGeometry.cxx:686
 AliTOFGeometry.cxx:687
 AliTOFGeometry.cxx:688
 AliTOFGeometry.cxx:689
 AliTOFGeometry.cxx:690
 AliTOFGeometry.cxx:691
 AliTOFGeometry.cxx:692
 AliTOFGeometry.cxx:693
 AliTOFGeometry.cxx:694
 AliTOFGeometry.cxx:695
 AliTOFGeometry.cxx:696
 AliTOFGeometry.cxx:697
 AliTOFGeometry.cxx:698
 AliTOFGeometry.cxx:699
 AliTOFGeometry.cxx:700
 AliTOFGeometry.cxx:701
 AliTOFGeometry.cxx:702
 AliTOFGeometry.cxx:703
 AliTOFGeometry.cxx:704
 AliTOFGeometry.cxx:705
 AliTOFGeometry.cxx:706
 AliTOFGeometry.cxx:707
 AliTOFGeometry.cxx:708
 AliTOFGeometry.cxx:709
 AliTOFGeometry.cxx:710
 AliTOFGeometry.cxx:711
 AliTOFGeometry.cxx:712
 AliTOFGeometry.cxx:713
 AliTOFGeometry.cxx:714
 AliTOFGeometry.cxx:715
 AliTOFGeometry.cxx:716
 AliTOFGeometry.cxx:717
 AliTOFGeometry.cxx:718
 AliTOFGeometry.cxx:719
 AliTOFGeometry.cxx:720
 AliTOFGeometry.cxx:721
 AliTOFGeometry.cxx:722
 AliTOFGeometry.cxx:723
 AliTOFGeometry.cxx:724
 AliTOFGeometry.cxx:725
 AliTOFGeometry.cxx:726
 AliTOFGeometry.cxx:727
 AliTOFGeometry.cxx:728
 AliTOFGeometry.cxx:729
 AliTOFGeometry.cxx:730
 AliTOFGeometry.cxx:731
 AliTOFGeometry.cxx:732
 AliTOFGeometry.cxx:733
 AliTOFGeometry.cxx:734
 AliTOFGeometry.cxx:735
 AliTOFGeometry.cxx:736
 AliTOFGeometry.cxx:737
 AliTOFGeometry.cxx:738
 AliTOFGeometry.cxx:739
 AliTOFGeometry.cxx:740
 AliTOFGeometry.cxx:741
 AliTOFGeometry.cxx:742
 AliTOFGeometry.cxx:743
 AliTOFGeometry.cxx:744
 AliTOFGeometry.cxx:745
 AliTOFGeometry.cxx:746
 AliTOFGeometry.cxx:747
 AliTOFGeometry.cxx:748
 AliTOFGeometry.cxx:749
 AliTOFGeometry.cxx:750
 AliTOFGeometry.cxx:751
 AliTOFGeometry.cxx:752
 AliTOFGeometry.cxx:753
 AliTOFGeometry.cxx:754
 AliTOFGeometry.cxx:755
 AliTOFGeometry.cxx:756
 AliTOFGeometry.cxx:757
 AliTOFGeometry.cxx:758
 AliTOFGeometry.cxx:759
 AliTOFGeometry.cxx:760
 AliTOFGeometry.cxx:761
 AliTOFGeometry.cxx:762
 AliTOFGeometry.cxx:763
 AliTOFGeometry.cxx:764
 AliTOFGeometry.cxx:765
 AliTOFGeometry.cxx:766
 AliTOFGeometry.cxx:767
 AliTOFGeometry.cxx:768
 AliTOFGeometry.cxx:769
 AliTOFGeometry.cxx:770
 AliTOFGeometry.cxx:771
 AliTOFGeometry.cxx:772
 AliTOFGeometry.cxx:773
 AliTOFGeometry.cxx:774
 AliTOFGeometry.cxx:775
 AliTOFGeometry.cxx:776
 AliTOFGeometry.cxx:777
 AliTOFGeometry.cxx:778
 AliTOFGeometry.cxx:779
 AliTOFGeometry.cxx:780
 AliTOFGeometry.cxx:781
 AliTOFGeometry.cxx:782
 AliTOFGeometry.cxx:783
 AliTOFGeometry.cxx:784
 AliTOFGeometry.cxx:785
 AliTOFGeometry.cxx:786
 AliTOFGeometry.cxx:787
 AliTOFGeometry.cxx:788
 AliTOFGeometry.cxx:789
 AliTOFGeometry.cxx:790
 AliTOFGeometry.cxx:791
 AliTOFGeometry.cxx:792
 AliTOFGeometry.cxx:793
 AliTOFGeometry.cxx:794
 AliTOFGeometry.cxx:795
 AliTOFGeometry.cxx:796
 AliTOFGeometry.cxx:797
 AliTOFGeometry.cxx:798
 AliTOFGeometry.cxx:799
 AliTOFGeometry.cxx:800
 AliTOFGeometry.cxx:801
 AliTOFGeometry.cxx:802
 AliTOFGeometry.cxx:803
 AliTOFGeometry.cxx:804
 AliTOFGeometry.cxx:805
 AliTOFGeometry.cxx:806
 AliTOFGeometry.cxx:807
 AliTOFGeometry.cxx:808
 AliTOFGeometry.cxx:809
 AliTOFGeometry.cxx:810
 AliTOFGeometry.cxx:811
 AliTOFGeometry.cxx:812
 AliTOFGeometry.cxx:813
 AliTOFGeometry.cxx:814
 AliTOFGeometry.cxx:815
 AliTOFGeometry.cxx:816
 AliTOFGeometry.cxx:817
 AliTOFGeometry.cxx:818
 AliTOFGeometry.cxx:819
 AliTOFGeometry.cxx:820
 AliTOFGeometry.cxx:821
 AliTOFGeometry.cxx:822
 AliTOFGeometry.cxx:823
 AliTOFGeometry.cxx:824
 AliTOFGeometry.cxx:825
 AliTOFGeometry.cxx:826
 AliTOFGeometry.cxx:827
 AliTOFGeometry.cxx:828
 AliTOFGeometry.cxx:829
 AliTOFGeometry.cxx:830
 AliTOFGeometry.cxx:831
 AliTOFGeometry.cxx:832
 AliTOFGeometry.cxx:833
 AliTOFGeometry.cxx:834
 AliTOFGeometry.cxx:835
 AliTOFGeometry.cxx:836
 AliTOFGeometry.cxx:837
 AliTOFGeometry.cxx:838
 AliTOFGeometry.cxx:839
 AliTOFGeometry.cxx:840
 AliTOFGeometry.cxx:841
 AliTOFGeometry.cxx:842
 AliTOFGeometry.cxx:843
 AliTOFGeometry.cxx:844
 AliTOFGeometry.cxx:845
 AliTOFGeometry.cxx:846
 AliTOFGeometry.cxx:847
 AliTOFGeometry.cxx:848
 AliTOFGeometry.cxx:849
 AliTOFGeometry.cxx:850
 AliTOFGeometry.cxx:851
 AliTOFGeometry.cxx:852
 AliTOFGeometry.cxx:853
 AliTOFGeometry.cxx:854
 AliTOFGeometry.cxx:855
 AliTOFGeometry.cxx:856
 AliTOFGeometry.cxx:857
 AliTOFGeometry.cxx:858
 AliTOFGeometry.cxx:859
 AliTOFGeometry.cxx:860
 AliTOFGeometry.cxx:861
 AliTOFGeometry.cxx:862
 AliTOFGeometry.cxx:863
 AliTOFGeometry.cxx:864
 AliTOFGeometry.cxx:865
 AliTOFGeometry.cxx:866
 AliTOFGeometry.cxx:867
 AliTOFGeometry.cxx:868
 AliTOFGeometry.cxx:869
 AliTOFGeometry.cxx:870
 AliTOFGeometry.cxx:871
 AliTOFGeometry.cxx:872
 AliTOFGeometry.cxx:873
 AliTOFGeometry.cxx:874
 AliTOFGeometry.cxx:875
 AliTOFGeometry.cxx:876
 AliTOFGeometry.cxx:877
 AliTOFGeometry.cxx:878
 AliTOFGeometry.cxx:879
 AliTOFGeometry.cxx:880
 AliTOFGeometry.cxx:881
 AliTOFGeometry.cxx:882
 AliTOFGeometry.cxx:883
 AliTOFGeometry.cxx:884
 AliTOFGeometry.cxx:885
 AliTOFGeometry.cxx:886
 AliTOFGeometry.cxx:887
 AliTOFGeometry.cxx:888
 AliTOFGeometry.cxx:889
 AliTOFGeometry.cxx:890
 AliTOFGeometry.cxx:891
 AliTOFGeometry.cxx:892
 AliTOFGeometry.cxx:893
 AliTOFGeometry.cxx:894
 AliTOFGeometry.cxx:895
 AliTOFGeometry.cxx:896
 AliTOFGeometry.cxx:897
 AliTOFGeometry.cxx:898
 AliTOFGeometry.cxx:899
 AliTOFGeometry.cxx:900
 AliTOFGeometry.cxx:901
 AliTOFGeometry.cxx:902
 AliTOFGeometry.cxx:903
 AliTOFGeometry.cxx:904
 AliTOFGeometry.cxx:905
 AliTOFGeometry.cxx:906
 AliTOFGeometry.cxx:907
 AliTOFGeometry.cxx:908
 AliTOFGeometry.cxx:909
 AliTOFGeometry.cxx:910
 AliTOFGeometry.cxx:911
 AliTOFGeometry.cxx:912
 AliTOFGeometry.cxx:913
 AliTOFGeometry.cxx:914
 AliTOFGeometry.cxx:915
 AliTOFGeometry.cxx:916
 AliTOFGeometry.cxx:917
 AliTOFGeometry.cxx:918
 AliTOFGeometry.cxx:919
 AliTOFGeometry.cxx:920
 AliTOFGeometry.cxx:921
 AliTOFGeometry.cxx:922
 AliTOFGeometry.cxx:923
 AliTOFGeometry.cxx:924
 AliTOFGeometry.cxx:925
 AliTOFGeometry.cxx:926
 AliTOFGeometry.cxx:927
 AliTOFGeometry.cxx:928
 AliTOFGeometry.cxx:929
 AliTOFGeometry.cxx:930
 AliTOFGeometry.cxx:931
 AliTOFGeometry.cxx:932
 AliTOFGeometry.cxx:933
 AliTOFGeometry.cxx:934
 AliTOFGeometry.cxx:935
 AliTOFGeometry.cxx:936
 AliTOFGeometry.cxx:937
 AliTOFGeometry.cxx:938
 AliTOFGeometry.cxx:939
 AliTOFGeometry.cxx:940
 AliTOFGeometry.cxx:941
 AliTOFGeometry.cxx:942
 AliTOFGeometry.cxx:943
 AliTOFGeometry.cxx:944
 AliTOFGeometry.cxx:945
 AliTOFGeometry.cxx:946
 AliTOFGeometry.cxx:947
 AliTOFGeometry.cxx:948
 AliTOFGeometry.cxx:949
 AliTOFGeometry.cxx:950
 AliTOFGeometry.cxx:951
 AliTOFGeometry.cxx:952
 AliTOFGeometry.cxx:953
 AliTOFGeometry.cxx:954
 AliTOFGeometry.cxx:955
 AliTOFGeometry.cxx:956
 AliTOFGeometry.cxx:957
 AliTOFGeometry.cxx:958
 AliTOFGeometry.cxx:959
 AliTOFGeometry.cxx:960
 AliTOFGeometry.cxx:961
 AliTOFGeometry.cxx:962
 AliTOFGeometry.cxx:963
 AliTOFGeometry.cxx:964
 AliTOFGeometry.cxx:965
 AliTOFGeometry.cxx:966
 AliTOFGeometry.cxx:967
 AliTOFGeometry.cxx:968
 AliTOFGeometry.cxx:969
 AliTOFGeometry.cxx:970
 AliTOFGeometry.cxx:971
 AliTOFGeometry.cxx:972
 AliTOFGeometry.cxx:973
 AliTOFGeometry.cxx:974
 AliTOFGeometry.cxx:975
 AliTOFGeometry.cxx:976
 AliTOFGeometry.cxx:977
 AliTOFGeometry.cxx:978
 AliTOFGeometry.cxx:979
 AliTOFGeometry.cxx:980
 AliTOFGeometry.cxx:981
 AliTOFGeometry.cxx:982
 AliTOFGeometry.cxx:983
 AliTOFGeometry.cxx:984
 AliTOFGeometry.cxx:985
 AliTOFGeometry.cxx:986
 AliTOFGeometry.cxx:987
 AliTOFGeometry.cxx:988
 AliTOFGeometry.cxx:989
 AliTOFGeometry.cxx:990
 AliTOFGeometry.cxx:991
 AliTOFGeometry.cxx:992
 AliTOFGeometry.cxx:993
 AliTOFGeometry.cxx:994
 AliTOFGeometry.cxx:995
 AliTOFGeometry.cxx:996
 AliTOFGeometry.cxx:997
 AliTOFGeometry.cxx:998
 AliTOFGeometry.cxx:999
 AliTOFGeometry.cxx:1000
 AliTOFGeometry.cxx:1001
 AliTOFGeometry.cxx:1002
 AliTOFGeometry.cxx:1003
 AliTOFGeometry.cxx:1004
 AliTOFGeometry.cxx:1005
 AliTOFGeometry.cxx:1006
 AliTOFGeometry.cxx:1007
 AliTOFGeometry.cxx:1008
 AliTOFGeometry.cxx:1009
 AliTOFGeometry.cxx:1010
 AliTOFGeometry.cxx:1011
 AliTOFGeometry.cxx:1012
 AliTOFGeometry.cxx:1013
 AliTOFGeometry.cxx:1014
 AliTOFGeometry.cxx:1015
 AliTOFGeometry.cxx:1016
 AliTOFGeometry.cxx:1017
 AliTOFGeometry.cxx:1018
 AliTOFGeometry.cxx:1019
 AliTOFGeometry.cxx:1020
 AliTOFGeometry.cxx:1021
 AliTOFGeometry.cxx:1022
 AliTOFGeometry.cxx:1023
 AliTOFGeometry.cxx:1024
 AliTOFGeometry.cxx:1025
 AliTOFGeometry.cxx:1026
 AliTOFGeometry.cxx:1027
 AliTOFGeometry.cxx:1028
 AliTOFGeometry.cxx:1029
 AliTOFGeometry.cxx:1030
 AliTOFGeometry.cxx:1031
 AliTOFGeometry.cxx:1032
 AliTOFGeometry.cxx:1033
 AliTOFGeometry.cxx:1034
 AliTOFGeometry.cxx:1035
 AliTOFGeometry.cxx:1036
 AliTOFGeometry.cxx:1037
 AliTOFGeometry.cxx:1038
 AliTOFGeometry.cxx:1039
 AliTOFGeometry.cxx:1040
 AliTOFGeometry.cxx:1041
 AliTOFGeometry.cxx:1042
 AliTOFGeometry.cxx:1043
 AliTOFGeometry.cxx:1044
 AliTOFGeometry.cxx:1045
 AliTOFGeometry.cxx:1046
 AliTOFGeometry.cxx:1047
 AliTOFGeometry.cxx:1048
 AliTOFGeometry.cxx:1049
 AliTOFGeometry.cxx:1050
 AliTOFGeometry.cxx:1051
 AliTOFGeometry.cxx:1052
 AliTOFGeometry.cxx:1053
 AliTOFGeometry.cxx:1054
 AliTOFGeometry.cxx:1055
 AliTOFGeometry.cxx:1056
 AliTOFGeometry.cxx:1057
 AliTOFGeometry.cxx:1058
 AliTOFGeometry.cxx:1059
 AliTOFGeometry.cxx:1060
 AliTOFGeometry.cxx:1061
 AliTOFGeometry.cxx:1062
 AliTOFGeometry.cxx:1063
 AliTOFGeometry.cxx:1064
 AliTOFGeometry.cxx:1065
 AliTOFGeometry.cxx:1066
 AliTOFGeometry.cxx:1067
 AliTOFGeometry.cxx:1068
 AliTOFGeometry.cxx:1069
 AliTOFGeometry.cxx:1070
 AliTOFGeometry.cxx:1071
 AliTOFGeometry.cxx:1072
 AliTOFGeometry.cxx:1073
 AliTOFGeometry.cxx:1074
 AliTOFGeometry.cxx:1075
 AliTOFGeometry.cxx:1076
 AliTOFGeometry.cxx:1077
 AliTOFGeometry.cxx:1078
 AliTOFGeometry.cxx:1079
 AliTOFGeometry.cxx:1080
 AliTOFGeometry.cxx:1081
 AliTOFGeometry.cxx:1082
 AliTOFGeometry.cxx:1083
 AliTOFGeometry.cxx:1084
 AliTOFGeometry.cxx:1085
 AliTOFGeometry.cxx:1086
 AliTOFGeometry.cxx:1087
 AliTOFGeometry.cxx:1088
 AliTOFGeometry.cxx:1089
 AliTOFGeometry.cxx:1090
 AliTOFGeometry.cxx:1091
 AliTOFGeometry.cxx:1092
 AliTOFGeometry.cxx:1093
 AliTOFGeometry.cxx:1094
 AliTOFGeometry.cxx:1095
 AliTOFGeometry.cxx:1096
 AliTOFGeometry.cxx:1097
 AliTOFGeometry.cxx:1098
 AliTOFGeometry.cxx:1099
 AliTOFGeometry.cxx:1100
 AliTOFGeometry.cxx:1101
 AliTOFGeometry.cxx:1102
 AliTOFGeometry.cxx:1103
 AliTOFGeometry.cxx:1104
 AliTOFGeometry.cxx:1105
 AliTOFGeometry.cxx:1106
 AliTOFGeometry.cxx:1107
 AliTOFGeometry.cxx:1108
 AliTOFGeometry.cxx:1109
 AliTOFGeometry.cxx:1110
 AliTOFGeometry.cxx:1111
 AliTOFGeometry.cxx:1112
 AliTOFGeometry.cxx:1113
 AliTOFGeometry.cxx:1114
 AliTOFGeometry.cxx:1115
 AliTOFGeometry.cxx:1116
 AliTOFGeometry.cxx:1117
 AliTOFGeometry.cxx:1118
 AliTOFGeometry.cxx:1119
 AliTOFGeometry.cxx:1120
 AliTOFGeometry.cxx:1121
 AliTOFGeometry.cxx:1122
 AliTOFGeometry.cxx:1123
 AliTOFGeometry.cxx:1124
 AliTOFGeometry.cxx:1125
 AliTOFGeometry.cxx:1126
 AliTOFGeometry.cxx:1127
 AliTOFGeometry.cxx:1128
 AliTOFGeometry.cxx:1129
 AliTOFGeometry.cxx:1130
 AliTOFGeometry.cxx:1131
 AliTOFGeometry.cxx:1132
 AliTOFGeometry.cxx:1133
 AliTOFGeometry.cxx:1134
 AliTOFGeometry.cxx:1135
 AliTOFGeometry.cxx:1136
 AliTOFGeometry.cxx:1137
 AliTOFGeometry.cxx:1138
 AliTOFGeometry.cxx:1139
 AliTOFGeometry.cxx:1140
 AliTOFGeometry.cxx:1141
 AliTOFGeometry.cxx:1142
 AliTOFGeometry.cxx:1143
 AliTOFGeometry.cxx:1144
 AliTOFGeometry.cxx:1145
 AliTOFGeometry.cxx:1146
 AliTOFGeometry.cxx:1147
 AliTOFGeometry.cxx:1148
 AliTOFGeometry.cxx:1149
 AliTOFGeometry.cxx:1150
 AliTOFGeometry.cxx:1151
 AliTOFGeometry.cxx:1152
 AliTOFGeometry.cxx:1153
 AliTOFGeometry.cxx:1154
 AliTOFGeometry.cxx:1155
 AliTOFGeometry.cxx:1156
 AliTOFGeometry.cxx:1157
 AliTOFGeometry.cxx:1158
 AliTOFGeometry.cxx:1159
 AliTOFGeometry.cxx:1160
 AliTOFGeometry.cxx:1161
 AliTOFGeometry.cxx:1162
 AliTOFGeometry.cxx:1163
 AliTOFGeometry.cxx:1164
 AliTOFGeometry.cxx:1165
 AliTOFGeometry.cxx:1166
 AliTOFGeometry.cxx:1167
 AliTOFGeometry.cxx:1168
 AliTOFGeometry.cxx:1169
 AliTOFGeometry.cxx:1170
 AliTOFGeometry.cxx:1171
 AliTOFGeometry.cxx:1172
 AliTOFGeometry.cxx:1173
 AliTOFGeometry.cxx:1174
 AliTOFGeometry.cxx:1175
 AliTOFGeometry.cxx:1176
 AliTOFGeometry.cxx:1177
 AliTOFGeometry.cxx:1178
 AliTOFGeometry.cxx:1179
 AliTOFGeometry.cxx:1180
 AliTOFGeometry.cxx:1181
 AliTOFGeometry.cxx:1182
 AliTOFGeometry.cxx:1183
 AliTOFGeometry.cxx:1184
 AliTOFGeometry.cxx:1185
 AliTOFGeometry.cxx:1186
 AliTOFGeometry.cxx:1187
 AliTOFGeometry.cxx:1188
 AliTOFGeometry.cxx:1189
 AliTOFGeometry.cxx:1190
 AliTOFGeometry.cxx:1191
 AliTOFGeometry.cxx:1192
 AliTOFGeometry.cxx:1193
 AliTOFGeometry.cxx:1194
 AliTOFGeometry.cxx:1195
 AliTOFGeometry.cxx:1196
 AliTOFGeometry.cxx:1197
 AliTOFGeometry.cxx:1198
 AliTOFGeometry.cxx:1199
 AliTOFGeometry.cxx:1200
 AliTOFGeometry.cxx:1201
 AliTOFGeometry.cxx:1202
 AliTOFGeometry.cxx:1203
 AliTOFGeometry.cxx:1204
 AliTOFGeometry.cxx:1205
 AliTOFGeometry.cxx:1206
 AliTOFGeometry.cxx:1207
 AliTOFGeometry.cxx:1208
 AliTOFGeometry.cxx:1209
 AliTOFGeometry.cxx:1210
 AliTOFGeometry.cxx:1211
 AliTOFGeometry.cxx:1212
 AliTOFGeometry.cxx:1213
 AliTOFGeometry.cxx:1214
 AliTOFGeometry.cxx:1215
 AliTOFGeometry.cxx:1216
 AliTOFGeometry.cxx:1217
 AliTOFGeometry.cxx:1218
 AliTOFGeometry.cxx:1219
 AliTOFGeometry.cxx:1220
 AliTOFGeometry.cxx:1221
 AliTOFGeometry.cxx:1222
 AliTOFGeometry.cxx:1223
 AliTOFGeometry.cxx:1224
 AliTOFGeometry.cxx:1225
 AliTOFGeometry.cxx:1226
 AliTOFGeometry.cxx:1227
 AliTOFGeometry.cxx:1228
 AliTOFGeometry.cxx:1229
 AliTOFGeometry.cxx:1230
 AliTOFGeometry.cxx:1231
 AliTOFGeometry.cxx:1232
 AliTOFGeometry.cxx:1233
 AliTOFGeometry.cxx:1234
 AliTOFGeometry.cxx:1235
 AliTOFGeometry.cxx:1236
 AliTOFGeometry.cxx:1237
 AliTOFGeometry.cxx:1238
 AliTOFGeometry.cxx:1239
 AliTOFGeometry.cxx:1240
 AliTOFGeometry.cxx:1241
 AliTOFGeometry.cxx:1242
 AliTOFGeometry.cxx:1243
 AliTOFGeometry.cxx:1244
 AliTOFGeometry.cxx:1245
 AliTOFGeometry.cxx:1246
 AliTOFGeometry.cxx:1247
 AliTOFGeometry.cxx:1248
 AliTOFGeometry.cxx:1249
 AliTOFGeometry.cxx:1250
 AliTOFGeometry.cxx:1251
 AliTOFGeometry.cxx:1252
 AliTOFGeometry.cxx:1253
 AliTOFGeometry.cxx:1254
 AliTOFGeometry.cxx:1255
 AliTOFGeometry.cxx:1256
 AliTOFGeometry.cxx:1257
 AliTOFGeometry.cxx:1258
 AliTOFGeometry.cxx:1259
 AliTOFGeometry.cxx:1260
 AliTOFGeometry.cxx:1261
 AliTOFGeometry.cxx:1262
 AliTOFGeometry.cxx:1263
 AliTOFGeometry.cxx:1264
 AliTOFGeometry.cxx:1265
 AliTOFGeometry.cxx:1266
 AliTOFGeometry.cxx:1267
 AliTOFGeometry.cxx:1268
 AliTOFGeometry.cxx:1269
 AliTOFGeometry.cxx:1270
 AliTOFGeometry.cxx:1271
 AliTOFGeometry.cxx:1272
 AliTOFGeometry.cxx:1273
 AliTOFGeometry.cxx:1274
 AliTOFGeometry.cxx:1275
 AliTOFGeometry.cxx:1276
 AliTOFGeometry.cxx:1277
 AliTOFGeometry.cxx:1278
 AliTOFGeometry.cxx:1279
 AliTOFGeometry.cxx:1280
 AliTOFGeometry.cxx:1281
 AliTOFGeometry.cxx:1282
 AliTOFGeometry.cxx:1283
 AliTOFGeometry.cxx:1284
 AliTOFGeometry.cxx:1285
 AliTOFGeometry.cxx:1286
 AliTOFGeometry.cxx:1287
 AliTOFGeometry.cxx:1288
 AliTOFGeometry.cxx:1289
 AliTOFGeometry.cxx:1290
 AliTOFGeometry.cxx:1291
 AliTOFGeometry.cxx:1292
 AliTOFGeometry.cxx:1293
 AliTOFGeometry.cxx:1294
 AliTOFGeometry.cxx:1295
 AliTOFGeometry.cxx:1296
 AliTOFGeometry.cxx:1297
 AliTOFGeometry.cxx:1298
 AliTOFGeometry.cxx:1299
 AliTOFGeometry.cxx:1300
 AliTOFGeometry.cxx:1301
 AliTOFGeometry.cxx:1302
 AliTOFGeometry.cxx:1303
 AliTOFGeometry.cxx:1304
 AliTOFGeometry.cxx:1305
 AliTOFGeometry.cxx:1306
 AliTOFGeometry.cxx:1307
 AliTOFGeometry.cxx:1308
 AliTOFGeometry.cxx:1309
 AliTOFGeometry.cxx:1310
 AliTOFGeometry.cxx:1311
 AliTOFGeometry.cxx:1312
 AliTOFGeometry.cxx:1313
 AliTOFGeometry.cxx:1314
 AliTOFGeometry.cxx:1315
 AliTOFGeometry.cxx:1316
 AliTOFGeometry.cxx:1317
 AliTOFGeometry.cxx:1318
 AliTOFGeometry.cxx:1319
 AliTOFGeometry.cxx:1320
 AliTOFGeometry.cxx:1321
 AliTOFGeometry.cxx:1322
 AliTOFGeometry.cxx:1323
 AliTOFGeometry.cxx:1324
 AliTOFGeometry.cxx:1325
 AliTOFGeometry.cxx:1326
 AliTOFGeometry.cxx:1327
 AliTOFGeometry.cxx:1328
 AliTOFGeometry.cxx:1329
 AliTOFGeometry.cxx:1330
 AliTOFGeometry.cxx:1331
 AliTOFGeometry.cxx:1332
 AliTOFGeometry.cxx:1333
 AliTOFGeometry.cxx:1334
 AliTOFGeometry.cxx:1335
 AliTOFGeometry.cxx:1336
 AliTOFGeometry.cxx:1337
 AliTOFGeometry.cxx:1338
 AliTOFGeometry.cxx:1339
 AliTOFGeometry.cxx:1340
 AliTOFGeometry.cxx:1341
 AliTOFGeometry.cxx:1342
 AliTOFGeometry.cxx:1343
 AliTOFGeometry.cxx:1344
 AliTOFGeometry.cxx:1345
 AliTOFGeometry.cxx:1346
 AliTOFGeometry.cxx:1347
 AliTOFGeometry.cxx:1348
 AliTOFGeometry.cxx:1349
 AliTOFGeometry.cxx:1350
 AliTOFGeometry.cxx:1351
 AliTOFGeometry.cxx:1352
 AliTOFGeometry.cxx:1353
 AliTOFGeometry.cxx:1354
 AliTOFGeometry.cxx:1355
 AliTOFGeometry.cxx:1356
 AliTOFGeometry.cxx:1357
 AliTOFGeometry.cxx:1358
 AliTOFGeometry.cxx:1359
 AliTOFGeometry.cxx:1360
 AliTOFGeometry.cxx:1361
 AliTOFGeometry.cxx:1362
 AliTOFGeometry.cxx:1363
 AliTOFGeometry.cxx:1364
 AliTOFGeometry.cxx:1365
 AliTOFGeometry.cxx:1366
 AliTOFGeometry.cxx:1367
 AliTOFGeometry.cxx:1368
 AliTOFGeometry.cxx:1369
 AliTOFGeometry.cxx:1370
 AliTOFGeometry.cxx:1371
 AliTOFGeometry.cxx:1372
 AliTOFGeometry.cxx:1373
 AliTOFGeometry.cxx:1374
 AliTOFGeometry.cxx:1375
 AliTOFGeometry.cxx:1376
 AliTOFGeometry.cxx:1377
 AliTOFGeometry.cxx:1378
 AliTOFGeometry.cxx:1379
 AliTOFGeometry.cxx:1380
 AliTOFGeometry.cxx:1381
 AliTOFGeometry.cxx:1382
 AliTOFGeometry.cxx:1383
 AliTOFGeometry.cxx:1384
 AliTOFGeometry.cxx:1385
 AliTOFGeometry.cxx:1386
 AliTOFGeometry.cxx:1387
 AliTOFGeometry.cxx:1388
 AliTOFGeometry.cxx:1389
 AliTOFGeometry.cxx:1390
 AliTOFGeometry.cxx:1391
 AliTOFGeometry.cxx:1392
 AliTOFGeometry.cxx:1393
 AliTOFGeometry.cxx:1394
 AliTOFGeometry.cxx:1395
 AliTOFGeometry.cxx:1396
 AliTOFGeometry.cxx:1397
 AliTOFGeometry.cxx:1398
 AliTOFGeometry.cxx:1399
 AliTOFGeometry.cxx:1400
 AliTOFGeometry.cxx:1401
 AliTOFGeometry.cxx:1402
 AliTOFGeometry.cxx:1403
 AliTOFGeometry.cxx:1404
 AliTOFGeometry.cxx:1405
 AliTOFGeometry.cxx:1406
 AliTOFGeometry.cxx:1407
 AliTOFGeometry.cxx:1408
 AliTOFGeometry.cxx:1409
 AliTOFGeometry.cxx:1410
 AliTOFGeometry.cxx:1411
 AliTOFGeometry.cxx:1412
 AliTOFGeometry.cxx:1413
 AliTOFGeometry.cxx:1414
 AliTOFGeometry.cxx:1415
 AliTOFGeometry.cxx:1416
 AliTOFGeometry.cxx:1417
 AliTOFGeometry.cxx:1418
 AliTOFGeometry.cxx:1419
 AliTOFGeometry.cxx:1420
 AliTOFGeometry.cxx:1421
 AliTOFGeometry.cxx:1422
 AliTOFGeometry.cxx:1423
 AliTOFGeometry.cxx:1424
 AliTOFGeometry.cxx:1425
 AliTOFGeometry.cxx:1426
 AliTOFGeometry.cxx:1427
 AliTOFGeometry.cxx:1428
 AliTOFGeometry.cxx:1429
 AliTOFGeometry.cxx:1430
 AliTOFGeometry.cxx:1431
 AliTOFGeometry.cxx:1432
 AliTOFGeometry.cxx:1433
 AliTOFGeometry.cxx:1434
 AliTOFGeometry.cxx:1435
 AliTOFGeometry.cxx:1436
 AliTOFGeometry.cxx:1437
 AliTOFGeometry.cxx:1438
 AliTOFGeometry.cxx:1439
 AliTOFGeometry.cxx:1440
 AliTOFGeometry.cxx:1441
 AliTOFGeometry.cxx:1442
 AliTOFGeometry.cxx:1443
 AliTOFGeometry.cxx:1444
 AliTOFGeometry.cxx:1445
 AliTOFGeometry.cxx:1446
 AliTOFGeometry.cxx:1447
 AliTOFGeometry.cxx:1448
 AliTOFGeometry.cxx:1449
 AliTOFGeometry.cxx:1450
 AliTOFGeometry.cxx:1451
 AliTOFGeometry.cxx:1452
 AliTOFGeometry.cxx:1453
 AliTOFGeometry.cxx:1454
 AliTOFGeometry.cxx:1455
 AliTOFGeometry.cxx:1456
 AliTOFGeometry.cxx:1457
 AliTOFGeometry.cxx:1458
 AliTOFGeometry.cxx:1459
 AliTOFGeometry.cxx:1460
 AliTOFGeometry.cxx:1461
 AliTOFGeometry.cxx:1462
 AliTOFGeometry.cxx:1463
 AliTOFGeometry.cxx:1464
 AliTOFGeometry.cxx:1465
 AliTOFGeometry.cxx:1466
 AliTOFGeometry.cxx:1467
 AliTOFGeometry.cxx:1468
 AliTOFGeometry.cxx:1469
 AliTOFGeometry.cxx:1470
 AliTOFGeometry.cxx:1471
 AliTOFGeometry.cxx:1472
 AliTOFGeometry.cxx:1473
 AliTOFGeometry.cxx:1474
 AliTOFGeometry.cxx:1475
 AliTOFGeometry.cxx:1476
 AliTOFGeometry.cxx:1477
 AliTOFGeometry.cxx:1478
 AliTOFGeometry.cxx:1479
 AliTOFGeometry.cxx:1480
 AliTOFGeometry.cxx:1481
 AliTOFGeometry.cxx:1482
 AliTOFGeometry.cxx:1483
 AliTOFGeometry.cxx:1484
 AliTOFGeometry.cxx:1485
 AliTOFGeometry.cxx:1486
 AliTOFGeometry.cxx:1487
 AliTOFGeometry.cxx:1488
 AliTOFGeometry.cxx:1489
 AliTOFGeometry.cxx:1490
 AliTOFGeometry.cxx:1491
 AliTOFGeometry.cxx:1492
 AliTOFGeometry.cxx:1493
 AliTOFGeometry.cxx:1494
 AliTOFGeometry.cxx:1495
 AliTOFGeometry.cxx:1496
 AliTOFGeometry.cxx:1497
 AliTOFGeometry.cxx:1498
 AliTOFGeometry.cxx:1499
 AliTOFGeometry.cxx:1500
 AliTOFGeometry.cxx:1501
 AliTOFGeometry.cxx:1502
 AliTOFGeometry.cxx:1503
 AliTOFGeometry.cxx:1504
 AliTOFGeometry.cxx:1505
 AliTOFGeometry.cxx:1506
 AliTOFGeometry.cxx:1507
 AliTOFGeometry.cxx:1508
 AliTOFGeometry.cxx:1509
 AliTOFGeometry.cxx:1510
 AliTOFGeometry.cxx:1511
 AliTOFGeometry.cxx:1512
 AliTOFGeometry.cxx:1513
 AliTOFGeometry.cxx:1514
 AliTOFGeometry.cxx:1515
 AliTOFGeometry.cxx:1516
 AliTOFGeometry.cxx:1517
 AliTOFGeometry.cxx:1518
 AliTOFGeometry.cxx:1519
 AliTOFGeometry.cxx:1520
 AliTOFGeometry.cxx:1521
 AliTOFGeometry.cxx:1522
 AliTOFGeometry.cxx:1523
 AliTOFGeometry.cxx:1524
 AliTOFGeometry.cxx:1525
 AliTOFGeometry.cxx:1526
 AliTOFGeometry.cxx:1527
 AliTOFGeometry.cxx:1528
 AliTOFGeometry.cxx:1529
 AliTOFGeometry.cxx:1530
 AliTOFGeometry.cxx:1531
 AliTOFGeometry.cxx:1532
 AliTOFGeometry.cxx:1533
 AliTOFGeometry.cxx:1534
 AliTOFGeometry.cxx:1535
 AliTOFGeometry.cxx:1536
 AliTOFGeometry.cxx:1537
 AliTOFGeometry.cxx:1538
 AliTOFGeometry.cxx:1539
 AliTOFGeometry.cxx:1540
 AliTOFGeometry.cxx:1541
 AliTOFGeometry.cxx:1542
 AliTOFGeometry.cxx:1543
 AliTOFGeometry.cxx:1544
 AliTOFGeometry.cxx:1545
 AliTOFGeometry.cxx:1546
 AliTOFGeometry.cxx:1547
 AliTOFGeometry.cxx:1548
 AliTOFGeometry.cxx:1549
 AliTOFGeometry.cxx:1550
 AliTOFGeometry.cxx:1551
 AliTOFGeometry.cxx:1552
 AliTOFGeometry.cxx:1553
 AliTOFGeometry.cxx:1554
 AliTOFGeometry.cxx:1555
 AliTOFGeometry.cxx:1556
 AliTOFGeometry.cxx:1557
 AliTOFGeometry.cxx:1558
 AliTOFGeometry.cxx:1559
 AliTOFGeometry.cxx:1560
 AliTOFGeometry.cxx:1561
 AliTOFGeometry.cxx:1562
 AliTOFGeometry.cxx:1563
 AliTOFGeometry.cxx:1564
 AliTOFGeometry.cxx:1565
 AliTOFGeometry.cxx:1566
 AliTOFGeometry.cxx:1567
 AliTOFGeometry.cxx:1568
 AliTOFGeometry.cxx:1569
 AliTOFGeometry.cxx:1570
 AliTOFGeometry.cxx:1571
 AliTOFGeometry.cxx:1572
 AliTOFGeometry.cxx:1573
 AliTOFGeometry.cxx:1574
 AliTOFGeometry.cxx:1575
 AliTOFGeometry.cxx:1576
 AliTOFGeometry.cxx:1577
 AliTOFGeometry.cxx:1578
 AliTOFGeometry.cxx:1579
 AliTOFGeometry.cxx:1580
 AliTOFGeometry.cxx:1581
 AliTOFGeometry.cxx:1582
 AliTOFGeometry.cxx:1583
 AliTOFGeometry.cxx:1584
 AliTOFGeometry.cxx:1585
 AliTOFGeometry.cxx:1586
 AliTOFGeometry.cxx:1587
 AliTOFGeometry.cxx:1588
 AliTOFGeometry.cxx:1589
 AliTOFGeometry.cxx:1590
 AliTOFGeometry.cxx:1591
 AliTOFGeometry.cxx:1592
 AliTOFGeometry.cxx:1593
 AliTOFGeometry.cxx:1594
 AliTOFGeometry.cxx:1595
 AliTOFGeometry.cxx:1596
 AliTOFGeometry.cxx:1597
 AliTOFGeometry.cxx:1598
 AliTOFGeometry.cxx:1599
 AliTOFGeometry.cxx:1600
 AliTOFGeometry.cxx:1601
 AliTOFGeometry.cxx:1602
 AliTOFGeometry.cxx:1603
 AliTOFGeometry.cxx:1604
 AliTOFGeometry.cxx:1605
 AliTOFGeometry.cxx:1606
 AliTOFGeometry.cxx:1607
 AliTOFGeometry.cxx:1608
 AliTOFGeometry.cxx:1609
 AliTOFGeometry.cxx:1610
 AliTOFGeometry.cxx:1611
 AliTOFGeometry.cxx:1612
 AliTOFGeometry.cxx:1613
 AliTOFGeometry.cxx:1614
 AliTOFGeometry.cxx:1615
 AliTOFGeometry.cxx:1616
 AliTOFGeometry.cxx:1617
 AliTOFGeometry.cxx:1618
 AliTOFGeometry.cxx:1619
 AliTOFGeometry.cxx:1620
 AliTOFGeometry.cxx:1621
 AliTOFGeometry.cxx:1622
 AliTOFGeometry.cxx:1623
 AliTOFGeometry.cxx:1624
 AliTOFGeometry.cxx:1625
 AliTOFGeometry.cxx:1626
 AliTOFGeometry.cxx:1627
 AliTOFGeometry.cxx:1628
 AliTOFGeometry.cxx:1629
 AliTOFGeometry.cxx:1630
 AliTOFGeometry.cxx:1631
 AliTOFGeometry.cxx:1632
 AliTOFGeometry.cxx:1633
 AliTOFGeometry.cxx:1634
 AliTOFGeometry.cxx:1635
 AliTOFGeometry.cxx:1636
 AliTOFGeometry.cxx:1637
 AliTOFGeometry.cxx:1638
 AliTOFGeometry.cxx:1639
 AliTOFGeometry.cxx:1640
 AliTOFGeometry.cxx:1641
 AliTOFGeometry.cxx:1642
 AliTOFGeometry.cxx:1643
 AliTOFGeometry.cxx:1644
 AliTOFGeometry.cxx:1645
 AliTOFGeometry.cxx:1646
 AliTOFGeometry.cxx:1647
 AliTOFGeometry.cxx:1648
 AliTOFGeometry.cxx:1649
 AliTOFGeometry.cxx:1650
 AliTOFGeometry.cxx:1651
 AliTOFGeometry.cxx:1652
 AliTOFGeometry.cxx:1653
 AliTOFGeometry.cxx:1654
 AliTOFGeometry.cxx:1655
 AliTOFGeometry.cxx:1656
 AliTOFGeometry.cxx:1657
 AliTOFGeometry.cxx:1658
 AliTOFGeometry.cxx:1659
 AliTOFGeometry.cxx:1660
 AliTOFGeometry.cxx:1661
 AliTOFGeometry.cxx:1662
 AliTOFGeometry.cxx:1663
 AliTOFGeometry.cxx:1664
 AliTOFGeometry.cxx:1665
 AliTOFGeometry.cxx:1666
 AliTOFGeometry.cxx:1667
 AliTOFGeometry.cxx:1668
 AliTOFGeometry.cxx:1669
 AliTOFGeometry.cxx:1670
 AliTOFGeometry.cxx:1671
 AliTOFGeometry.cxx:1672
 AliTOFGeometry.cxx:1673
 AliTOFGeometry.cxx:1674
 AliTOFGeometry.cxx:1675
 AliTOFGeometry.cxx:1676
 AliTOFGeometry.cxx:1677
 AliTOFGeometry.cxx:1678
 AliTOFGeometry.cxx:1679
 AliTOFGeometry.cxx:1680
 AliTOFGeometry.cxx:1681
 AliTOFGeometry.cxx:1682
 AliTOFGeometry.cxx:1683
 AliTOFGeometry.cxx:1684
 AliTOFGeometry.cxx:1685
 AliTOFGeometry.cxx:1686
 AliTOFGeometry.cxx:1687
 AliTOFGeometry.cxx:1688
 AliTOFGeometry.cxx:1689
 AliTOFGeometry.cxx:1690
 AliTOFGeometry.cxx:1691
 AliTOFGeometry.cxx:1692
 AliTOFGeometry.cxx:1693
 AliTOFGeometry.cxx:1694
 AliTOFGeometry.cxx:1695
 AliTOFGeometry.cxx:1696
 AliTOFGeometry.cxx:1697
 AliTOFGeometry.cxx:1698
 AliTOFGeometry.cxx:1699
 AliTOFGeometry.cxx:1700
 AliTOFGeometry.cxx:1701
 AliTOFGeometry.cxx:1702
 AliTOFGeometry.cxx:1703
 AliTOFGeometry.cxx:1704
 AliTOFGeometry.cxx:1705
 AliTOFGeometry.cxx:1706
 AliTOFGeometry.cxx:1707
 AliTOFGeometry.cxx:1708
 AliTOFGeometry.cxx:1709
 AliTOFGeometry.cxx:1710
 AliTOFGeometry.cxx:1711
 AliTOFGeometry.cxx:1712
 AliTOFGeometry.cxx:1713
 AliTOFGeometry.cxx:1714
 AliTOFGeometry.cxx:1715
 AliTOFGeometry.cxx:1716
 AliTOFGeometry.cxx:1717
 AliTOFGeometry.cxx:1718
 AliTOFGeometry.cxx:1719
 AliTOFGeometry.cxx:1720
 AliTOFGeometry.cxx:1721
 AliTOFGeometry.cxx:1722
 AliTOFGeometry.cxx:1723
 AliTOFGeometry.cxx:1724
 AliTOFGeometry.cxx:1725
 AliTOFGeometry.cxx:1726
 AliTOFGeometry.cxx:1727
 AliTOFGeometry.cxx:1728
 AliTOFGeometry.cxx:1729
 AliTOFGeometry.cxx:1730
 AliTOFGeometry.cxx:1731
 AliTOFGeometry.cxx:1732
 AliTOFGeometry.cxx:1733
 AliTOFGeometry.cxx:1734
 AliTOFGeometry.cxx:1735
 AliTOFGeometry.cxx:1736
 AliTOFGeometry.cxx:1737
 AliTOFGeometry.cxx:1738
 AliTOFGeometry.cxx:1739
 AliTOFGeometry.cxx:1740
 AliTOFGeometry.cxx:1741
 AliTOFGeometry.cxx:1742
 AliTOFGeometry.cxx:1743
 AliTOFGeometry.cxx:1744
 AliTOFGeometry.cxx:1745
 AliTOFGeometry.cxx:1746
 AliTOFGeometry.cxx:1747
 AliTOFGeometry.cxx:1748
 AliTOFGeometry.cxx:1749
 AliTOFGeometry.cxx:1750
 AliTOFGeometry.cxx:1751
 AliTOFGeometry.cxx:1752
 AliTOFGeometry.cxx:1753
 AliTOFGeometry.cxx:1754
 AliTOFGeometry.cxx:1755
 AliTOFGeometry.cxx:1756
 AliTOFGeometry.cxx:1757
 AliTOFGeometry.cxx:1758
 AliTOFGeometry.cxx:1759
 AliTOFGeometry.cxx:1760
 AliTOFGeometry.cxx:1761
 AliTOFGeometry.cxx:1762
 AliTOFGeometry.cxx:1763
 AliTOFGeometry.cxx:1764
 AliTOFGeometry.cxx:1765
 AliTOFGeometry.cxx:1766
 AliTOFGeometry.cxx:1767
 AliTOFGeometry.cxx:1768
 AliTOFGeometry.cxx:1769
 AliTOFGeometry.cxx:1770
 AliTOFGeometry.cxx:1771
 AliTOFGeometry.cxx:1772
 AliTOFGeometry.cxx:1773
 AliTOFGeometry.cxx:1774
 AliTOFGeometry.cxx:1775
 AliTOFGeometry.cxx:1776
 AliTOFGeometry.cxx:1777
 AliTOFGeometry.cxx:1778
 AliTOFGeometry.cxx:1779
 AliTOFGeometry.cxx:1780
 AliTOFGeometry.cxx:1781
 AliTOFGeometry.cxx:1782
 AliTOFGeometry.cxx:1783
 AliTOFGeometry.cxx:1784
 AliTOFGeometry.cxx:1785
 AliTOFGeometry.cxx:1786
 AliTOFGeometry.cxx:1787
 AliTOFGeometry.cxx:1788
 AliTOFGeometry.cxx:1789
 AliTOFGeometry.cxx:1790
 AliTOFGeometry.cxx:1791
 AliTOFGeometry.cxx:1792
 AliTOFGeometry.cxx:1793
 AliTOFGeometry.cxx:1794
 AliTOFGeometry.cxx:1795
 AliTOFGeometry.cxx:1796
 AliTOFGeometry.cxx:1797
 AliTOFGeometry.cxx:1798
 AliTOFGeometry.cxx:1799
 AliTOFGeometry.cxx:1800
 AliTOFGeometry.cxx:1801
 AliTOFGeometry.cxx:1802
 AliTOFGeometry.cxx:1803
 AliTOFGeometry.cxx:1804
 AliTOFGeometry.cxx:1805
 AliTOFGeometry.cxx:1806
 AliTOFGeometry.cxx:1807
 AliTOFGeometry.cxx:1808
 AliTOFGeometry.cxx:1809
 AliTOFGeometry.cxx:1810
 AliTOFGeometry.cxx:1811
 AliTOFGeometry.cxx:1812
 AliTOFGeometry.cxx:1813
 AliTOFGeometry.cxx:1814
 AliTOFGeometry.cxx:1815
 AliTOFGeometry.cxx:1816
 AliTOFGeometry.cxx:1817
 AliTOFGeometry.cxx:1818
 AliTOFGeometry.cxx:1819
 AliTOFGeometry.cxx:1820
 AliTOFGeometry.cxx:1821
 AliTOFGeometry.cxx:1822
 AliTOFGeometry.cxx:1823
 AliTOFGeometry.cxx:1824
 AliTOFGeometry.cxx:1825
 AliTOFGeometry.cxx:1826
 AliTOFGeometry.cxx:1827
 AliTOFGeometry.cxx:1828
 AliTOFGeometry.cxx:1829
 AliTOFGeometry.cxx:1830
 AliTOFGeometry.cxx:1831
 AliTOFGeometry.cxx:1832
 AliTOFGeometry.cxx:1833
 AliTOFGeometry.cxx:1834
 AliTOFGeometry.cxx:1835
 AliTOFGeometry.cxx:1836
 AliTOFGeometry.cxx:1837
 AliTOFGeometry.cxx:1838
 AliTOFGeometry.cxx:1839
 AliTOFGeometry.cxx:1840
 AliTOFGeometry.cxx:1841
 AliTOFGeometry.cxx:1842
 AliTOFGeometry.cxx:1843
 AliTOFGeometry.cxx:1844
 AliTOFGeometry.cxx:1845
 AliTOFGeometry.cxx:1846
 AliTOFGeometry.cxx:1847
 AliTOFGeometry.cxx:1848
 AliTOFGeometry.cxx:1849
 AliTOFGeometry.cxx:1850
 AliTOFGeometry.cxx:1851
 AliTOFGeometry.cxx:1852
 AliTOFGeometry.cxx:1853
 AliTOFGeometry.cxx:1854
 AliTOFGeometry.cxx:1855
 AliTOFGeometry.cxx:1856
 AliTOFGeometry.cxx:1857
 AliTOFGeometry.cxx:1858
 AliTOFGeometry.cxx:1859
 AliTOFGeometry.cxx:1860
 AliTOFGeometry.cxx:1861
 AliTOFGeometry.cxx:1862
 AliTOFGeometry.cxx:1863
 AliTOFGeometry.cxx:1864
 AliTOFGeometry.cxx:1865
 AliTOFGeometry.cxx:1866
 AliTOFGeometry.cxx:1867
 AliTOFGeometry.cxx:1868
 AliTOFGeometry.cxx:1869
 AliTOFGeometry.cxx:1870
 AliTOFGeometry.cxx:1871
 AliTOFGeometry.cxx:1872
 AliTOFGeometry.cxx:1873
 AliTOFGeometry.cxx:1874
 AliTOFGeometry.cxx:1875
 AliTOFGeometry.cxx:1876
 AliTOFGeometry.cxx:1877
 AliTOFGeometry.cxx:1878
 AliTOFGeometry.cxx:1879
 AliTOFGeometry.cxx:1880
 AliTOFGeometry.cxx:1881
 AliTOFGeometry.cxx:1882
 AliTOFGeometry.cxx:1883
 AliTOFGeometry.cxx:1884
 AliTOFGeometry.cxx:1885
 AliTOFGeometry.cxx:1886
 AliTOFGeometry.cxx:1887
 AliTOFGeometry.cxx:1888
 AliTOFGeometry.cxx:1889
 AliTOFGeometry.cxx:1890
 AliTOFGeometry.cxx:1891
 AliTOFGeometry.cxx:1892
 AliTOFGeometry.cxx:1893
 AliTOFGeometry.cxx:1894
 AliTOFGeometry.cxx:1895
 AliTOFGeometry.cxx:1896
 AliTOFGeometry.cxx:1897
 AliTOFGeometry.cxx:1898
 AliTOFGeometry.cxx:1899
 AliTOFGeometry.cxx:1900
 AliTOFGeometry.cxx:1901
 AliTOFGeometry.cxx:1902
 AliTOFGeometry.cxx:1903
 AliTOFGeometry.cxx:1904
 AliTOFGeometry.cxx:1905
 AliTOFGeometry.cxx:1906
 AliTOFGeometry.cxx:1907
 AliTOFGeometry.cxx:1908
 AliTOFGeometry.cxx:1909
 AliTOFGeometry.cxx:1910
 AliTOFGeometry.cxx:1911
 AliTOFGeometry.cxx:1912
 AliTOFGeometry.cxx:1913
 AliTOFGeometry.cxx:1914
 AliTOFGeometry.cxx:1915
 AliTOFGeometry.cxx:1916
 AliTOFGeometry.cxx:1917
 AliTOFGeometry.cxx:1918
 AliTOFGeometry.cxx:1919
 AliTOFGeometry.cxx:1920
 AliTOFGeometry.cxx:1921
 AliTOFGeometry.cxx:1922
 AliTOFGeometry.cxx:1923
 AliTOFGeometry.cxx:1924
 AliTOFGeometry.cxx:1925
 AliTOFGeometry.cxx:1926
 AliTOFGeometry.cxx:1927
 AliTOFGeometry.cxx:1928
 AliTOFGeometry.cxx:1929
 AliTOFGeometry.cxx:1930
 AliTOFGeometry.cxx:1931
 AliTOFGeometry.cxx:1932
 AliTOFGeometry.cxx:1933
 AliTOFGeometry.cxx:1934
 AliTOFGeometry.cxx:1935
 AliTOFGeometry.cxx:1936
 AliTOFGeometry.cxx:1937
 AliTOFGeometry.cxx:1938
 AliTOFGeometry.cxx:1939
 AliTOFGeometry.cxx:1940
 AliTOFGeometry.cxx:1941
 AliTOFGeometry.cxx:1942
 AliTOFGeometry.cxx:1943
 AliTOFGeometry.cxx:1944
 AliTOFGeometry.cxx:1945
 AliTOFGeometry.cxx:1946
 AliTOFGeometry.cxx:1947
 AliTOFGeometry.cxx:1948
 AliTOFGeometry.cxx:1949
 AliTOFGeometry.cxx:1950
 AliTOFGeometry.cxx:1951
 AliTOFGeometry.cxx:1952
 AliTOFGeometry.cxx:1953
 AliTOFGeometry.cxx:1954
 AliTOFGeometry.cxx:1955
 AliTOFGeometry.cxx:1956
 AliTOFGeometry.cxx:1957
 AliTOFGeometry.cxx:1958
 AliTOFGeometry.cxx:1959
 AliTOFGeometry.cxx:1960
 AliTOFGeometry.cxx:1961
 AliTOFGeometry.cxx:1962
 AliTOFGeometry.cxx:1963
 AliTOFGeometry.cxx:1964
 AliTOFGeometry.cxx:1965
 AliTOFGeometry.cxx:1966
 AliTOFGeometry.cxx:1967
 AliTOFGeometry.cxx:1968
 AliTOFGeometry.cxx:1969
 AliTOFGeometry.cxx:1970
 AliTOFGeometry.cxx:1971
 AliTOFGeometry.cxx:1972
 AliTOFGeometry.cxx:1973
 AliTOFGeometry.cxx:1974
 AliTOFGeometry.cxx:1975
 AliTOFGeometry.cxx:1976
 AliTOFGeometry.cxx:1977
 AliTOFGeometry.cxx:1978
 AliTOFGeometry.cxx:1979
 AliTOFGeometry.cxx:1980
 AliTOFGeometry.cxx:1981
 AliTOFGeometry.cxx:1982
 AliTOFGeometry.cxx:1983
 AliTOFGeometry.cxx:1984
 AliTOFGeometry.cxx:1985
 AliTOFGeometry.cxx:1986
 AliTOFGeometry.cxx:1987
 AliTOFGeometry.cxx:1988
 AliTOFGeometry.cxx:1989
 AliTOFGeometry.cxx:1990
 AliTOFGeometry.cxx:1991
 AliTOFGeometry.cxx:1992
 AliTOFGeometry.cxx:1993
 AliTOFGeometry.cxx:1994
 AliTOFGeometry.cxx:1995
 AliTOFGeometry.cxx:1996
 AliTOFGeometry.cxx:1997
 AliTOFGeometry.cxx:1998
 AliTOFGeometry.cxx:1999
 AliTOFGeometry.cxx:2000
 AliTOFGeometry.cxx:2001
 AliTOFGeometry.cxx:2002
 AliTOFGeometry.cxx:2003
 AliTOFGeometry.cxx:2004
 AliTOFGeometry.cxx:2005
 AliTOFGeometry.cxx:2006
 AliTOFGeometry.cxx:2007
 AliTOFGeometry.cxx:2008
 AliTOFGeometry.cxx:2009
 AliTOFGeometry.cxx:2010
 AliTOFGeometry.cxx:2011
 AliTOFGeometry.cxx:2012
 AliTOFGeometry.cxx:2013
 AliTOFGeometry.cxx:2014
 AliTOFGeometry.cxx:2015
 AliTOFGeometry.cxx:2016
 AliTOFGeometry.cxx:2017
 AliTOFGeometry.cxx:2018
 AliTOFGeometry.cxx:2019
 AliTOFGeometry.cxx:2020
 AliTOFGeometry.cxx:2021
 AliTOFGeometry.cxx:2022
 AliTOFGeometry.cxx:2023
 AliTOFGeometry.cxx:2024
 AliTOFGeometry.cxx:2025
 AliTOFGeometry.cxx:2026
 AliTOFGeometry.cxx:2027
 AliTOFGeometry.cxx:2028
 AliTOFGeometry.cxx:2029
 AliTOFGeometry.cxx:2030
 AliTOFGeometry.cxx:2031
 AliTOFGeometry.cxx:2032
 AliTOFGeometry.cxx:2033
 AliTOFGeometry.cxx:2034
 AliTOFGeometry.cxx:2035
 AliTOFGeometry.cxx:2036
 AliTOFGeometry.cxx:2037
 AliTOFGeometry.cxx:2038
 AliTOFGeometry.cxx:2039
 AliTOFGeometry.cxx:2040
 AliTOFGeometry.cxx:2041
 AliTOFGeometry.cxx:2042
 AliTOFGeometry.cxx:2043
 AliTOFGeometry.cxx:2044
 AliTOFGeometry.cxx:2045
 AliTOFGeometry.cxx:2046
 AliTOFGeometry.cxx:2047
 AliTOFGeometry.cxx:2048
 AliTOFGeometry.cxx:2049
 AliTOFGeometry.cxx:2050
 AliTOFGeometry.cxx:2051
 AliTOFGeometry.cxx:2052
 AliTOFGeometry.cxx:2053
 AliTOFGeometry.cxx:2054
 AliTOFGeometry.cxx:2055
 AliTOFGeometry.cxx:2056
 AliTOFGeometry.cxx:2057
 AliTOFGeometry.cxx:2058
 AliTOFGeometry.cxx:2059
 AliTOFGeometry.cxx:2060
 AliTOFGeometry.cxx:2061
 AliTOFGeometry.cxx:2062
 AliTOFGeometry.cxx:2063
 AliTOFGeometry.cxx:2064
 AliTOFGeometry.cxx:2065
 AliTOFGeometry.cxx:2066
 AliTOFGeometry.cxx:2067
 AliTOFGeometry.cxx:2068
 AliTOFGeometry.cxx:2069
 AliTOFGeometry.cxx:2070
 AliTOFGeometry.cxx:2071
 AliTOFGeometry.cxx:2072
 AliTOFGeometry.cxx:2073
 AliTOFGeometry.cxx:2074
 AliTOFGeometry.cxx:2075
 AliTOFGeometry.cxx:2076
 AliTOFGeometry.cxx:2077
 AliTOFGeometry.cxx:2078
 AliTOFGeometry.cxx:2079
 AliTOFGeometry.cxx:2080
 AliTOFGeometry.cxx:2081
 AliTOFGeometry.cxx:2082
 AliTOFGeometry.cxx:2083
 AliTOFGeometry.cxx:2084
 AliTOFGeometry.cxx:2085
 AliTOFGeometry.cxx:2086
 AliTOFGeometry.cxx:2087
 AliTOFGeometry.cxx:2088
 AliTOFGeometry.cxx:2089
 AliTOFGeometry.cxx:2090
 AliTOFGeometry.cxx:2091
 AliTOFGeometry.cxx:2092
 AliTOFGeometry.cxx:2093
 AliTOFGeometry.cxx:2094
 AliTOFGeometry.cxx:2095
 AliTOFGeometry.cxx:2096
 AliTOFGeometry.cxx:2097
 AliTOFGeometry.cxx:2098
 AliTOFGeometry.cxx:2099
 AliTOFGeometry.cxx:2100
 AliTOFGeometry.cxx:2101
 AliTOFGeometry.cxx:2102
 AliTOFGeometry.cxx:2103
 AliTOFGeometry.cxx:2104
 AliTOFGeometry.cxx:2105
 AliTOFGeometry.cxx:2106
 AliTOFGeometry.cxx:2107
 AliTOFGeometry.cxx:2108
 AliTOFGeometry.cxx:2109
 AliTOFGeometry.cxx:2110
 AliTOFGeometry.cxx:2111
 AliTOFGeometry.cxx:2112
 AliTOFGeometry.cxx:2113
 AliTOFGeometry.cxx:2114
 AliTOFGeometry.cxx:2115
 AliTOFGeometry.cxx:2116
 AliTOFGeometry.cxx:2117
 AliTOFGeometry.cxx:2118
 AliTOFGeometry.cxx:2119
 AliTOFGeometry.cxx:2120
 AliTOFGeometry.cxx:2121
 AliTOFGeometry.cxx:2122
 AliTOFGeometry.cxx:2123
 AliTOFGeometry.cxx:2124
 AliTOFGeometry.cxx:2125
 AliTOFGeometry.cxx:2126
 AliTOFGeometry.cxx:2127
 AliTOFGeometry.cxx:2128
 AliTOFGeometry.cxx:2129
 AliTOFGeometry.cxx:2130
 AliTOFGeometry.cxx:2131
 AliTOFGeometry.cxx:2132
 AliTOFGeometry.cxx:2133
 AliTOFGeometry.cxx:2134
 AliTOFGeometry.cxx:2135
 AliTOFGeometry.cxx:2136
 AliTOFGeometry.cxx:2137
 AliTOFGeometry.cxx:2138
 AliTOFGeometry.cxx:2139
 AliTOFGeometry.cxx:2140
 AliTOFGeometry.cxx:2141
 AliTOFGeometry.cxx:2142
 AliTOFGeometry.cxx:2143
 AliTOFGeometry.cxx:2144
 AliTOFGeometry.cxx:2145
 AliTOFGeometry.cxx:2146
 AliTOFGeometry.cxx:2147
 AliTOFGeometry.cxx:2148
 AliTOFGeometry.cxx:2149
 AliTOFGeometry.cxx:2150
 AliTOFGeometry.cxx:2151
 AliTOFGeometry.cxx:2152
 AliTOFGeometry.cxx:2153
 AliTOFGeometry.cxx:2154
 AliTOFGeometry.cxx:2155
 AliTOFGeometry.cxx:2156
 AliTOFGeometry.cxx:2157
 AliTOFGeometry.cxx:2158
 AliTOFGeometry.cxx:2159
 AliTOFGeometry.cxx:2160
 AliTOFGeometry.cxx:2161
 AliTOFGeometry.cxx:2162
 AliTOFGeometry.cxx:2163
 AliTOFGeometry.cxx:2164
 AliTOFGeometry.cxx:2165
 AliTOFGeometry.cxx:2166
 AliTOFGeometry.cxx:2167
 AliTOFGeometry.cxx:2168
 AliTOFGeometry.cxx:2169
 AliTOFGeometry.cxx:2170
 AliTOFGeometry.cxx:2171
 AliTOFGeometry.cxx:2172
 AliTOFGeometry.cxx:2173
 AliTOFGeometry.cxx:2174
 AliTOFGeometry.cxx:2175
 AliTOFGeometry.cxx:2176
 AliTOFGeometry.cxx:2177
 AliTOFGeometry.cxx:2178
 AliTOFGeometry.cxx:2179
 AliTOFGeometry.cxx:2180
 AliTOFGeometry.cxx:2181
 AliTOFGeometry.cxx:2182
 AliTOFGeometry.cxx:2183
 AliTOFGeometry.cxx:2184
 AliTOFGeometry.cxx:2185
 AliTOFGeometry.cxx:2186
 AliTOFGeometry.cxx:2187
 AliTOFGeometry.cxx:2188
 AliTOFGeometry.cxx:2189
 AliTOFGeometry.cxx:2190
 AliTOFGeometry.cxx:2191
 AliTOFGeometry.cxx:2192
 AliTOFGeometry.cxx:2193
 AliTOFGeometry.cxx:2194
 AliTOFGeometry.cxx:2195
 AliTOFGeometry.cxx:2196
 AliTOFGeometry.cxx:2197
 AliTOFGeometry.cxx:2198
 AliTOFGeometry.cxx:2199
 AliTOFGeometry.cxx:2200
 AliTOFGeometry.cxx:2201
 AliTOFGeometry.cxx:2202
 AliTOFGeometry.cxx:2203
 AliTOFGeometry.cxx:2204
 AliTOFGeometry.cxx:2205
 AliTOFGeometry.cxx:2206
 AliTOFGeometry.cxx:2207
 AliTOFGeometry.cxx:2208
 AliTOFGeometry.cxx:2209
 AliTOFGeometry.cxx:2210