ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* 
$Id$ 
*/
////////////////////////////////////////////////////////////////////////
// This is the implementation file for AliITSgeomMatrix class. It 
// contains the routines to manipulate, setup, and queary the geometry 
// of a given ITS module. An ITS module may be one of at least three
// ITS detector technologies, Silicon Pixel, Drift, or Strip Detectors,
// and variations of these in size and/or layout. These routines let
// one go between ALICE global coordiantes (cm) to a given modules 
// specific local coordinates (cm).
////////////////////////////////////////////////////////////////////////

#include <Riostream.h>
#include <TClass.h>
#include <TMath.h>
#include <TBuffer.h>
#include <TCanvas.h>
#if ROOT_VERSION_CODE>= 331523
#include <TView3D.h>
#else
#include <TView.h>
#endif
#include <TPolyLine3D.h>
#include <TNode.h>
#include <TPCON.h>
#include <TBRIK.h>
#include <TXTRU.h>

#include "AliLog.h"
#include "AliITSgeomMatrix.h"

using std::endl;
using std::cout;
using std::ios;
using std::setprecision;
ClassImp(AliITSgeomMatrix)
//----------------------------------------------------------------------
AliITSgeomMatrix::AliITSgeomMatrix():
TObject(),         // Base Class.
fDetectorIndex(0), // Detector type index (like fShapeIndex was)
fid(),       // layer, ladder, detector numbers.
frot(),      //! vector of rotations about x,y,z [radians].
ftran(),     // Translation vector of module x,y,z.
fCylR(0.0),  //! R Translation in Cylinderical coordinates
fCylPhi(0.0),//! Phi Translation vector in Cylindrical coord.
fm(),        // Rotation matrix based on frot.
fPath(){     // Path in geometry to this module
    // The Default constructor for the AliITSgeomMatrix class. By Default
    // the angles of rotations are set to zero, meaning that the rotation
    // matrix is the unit matrix. The translation vector is also set to 
    // zero as are the module id number. The detector type is set to -1 
    // (an undefined value). The full rotation matrix is kept so that 
    // the evaluation  of a coordinate transformation can be done 
    // quickly and with a minimum of CPU overhead. The basic coordinate 
    // systems are the ALICE global coordinate system and the detector 
    // local coordinate system. In general this structure is not limited 
    // to just those two coordinate systems.
    //Begin_Html
    /*
      <img src="picts/ITS/AliITSgeomMatrix_L1.gif">
    */
    //End_Html
    // Inputs:
    //    none.
    // Outputs:
    //    none.
    // Return:
    //    A default constructes AliITSgeomMatrix class.
    Int_t i,j;

    fDetectorIndex = -1; // a value never defined.
    for(i=0;i<3;i++){
	fid[i] = 0;
	frot[i] = ftran[i] = 0.0;
	for(j=0;j<3;j++) fm[i][j] = 0.0;
    }// end for i
    fm[0][0] = fm[1][1] = fm[2][2] = 1.0;
}

//----------------------------------------------------------------------
AliITSgeomMatrix::AliITSgeomMatrix(const AliITSgeomMatrix &source) : 
TObject(source),         // Base Class.
fDetectorIndex(source.fDetectorIndex),// Detector type index (like 
                                      // fShapeIndex was)
fid(),       // layer, ladder, detector numbers.
frot(),      //! vector of rotations about x,y,z [radians].
ftran(),     // Translation vector of module x,y,z.
fCylR(source.fCylR),  //! R Translation in Cylinderical coordinates
fCylPhi(source.fCylPhi),//! Phi Translation vector in Cylindrical coord.
fm(),        // Rotation matrix based on frot.
fPath(source.fPath){
    // The standard Copy constructor. This make a full / proper copy of
    // this class.
    // Inputs:
    //    AliITSgeomMatrix &source   The source of this copy
    // Outputs:
    //    none.
    // Return:
    //    A copy constructes AliITSgeomMatrix class.
    Int_t i,j;

    for(i=0;i<3;i++){
        this->fid[i]     = source.fid[i];
        this->frot[i]    = source.frot[i];
        this->ftran[i]   = source.ftran[i];
        for(j=0;j<3;j++) this->fm[i][j] = source.fm[i][j];
    }// end for i
}
//----------------------------------------------------------------------
AliITSgeomMatrix& AliITSgeomMatrix::operator=(const AliITSgeomMatrix &source){
    // The standard = operator. This make a full / proper copy of
    // this class.
    // The standard Copy constructor. This make a full / proper copy of
    // this class.
    // Inputs:
    //    AliITSgeomMatrix &source   The source of this copy
    // Outputs:
    //    none.
    // Return:
    //    A copy of the source AliITSgeomMatrix class.

    if(this == &source)return *this;
    Int_t i,j;

    this->fDetectorIndex = source.fDetectorIndex;
    this->fCylR      = source.fCylR;
    this->fCylPhi    = source.fCylPhi;
    for(i=0;i<3;i++){
        this->fid[i]     = source.fid[i];
        this->frot[i]    = source.frot[i];
        this->ftran[i]   = source.ftran[i];
        for(j=0;j<3;j++) this->fm[i][j] = source.fm[i][j];
    } // end for i
    this->fPath   = source.fPath;
    return *this;
}
//----------------------------------------------------------------------
AliITSgeomMatrix::AliITSgeomMatrix(Int_t idt,const Int_t id[3],
                        const Double_t rot[3],const Double_t tran[3]):
TObject(),           // Base class
fDetectorIndex(idt), // Detector type index (like fShapeIndex was)
fid(),       // layer, ladder, detector numbers.
frot(),      //! vector of rotations about x,y,z [radians].
ftran(),     // Translation vector of module x,y,z.
fCylR(0.0),  //! R Translation in Cylinderical coordinates
fCylPhi(0.0),//! Phi Translation vector in Cylindrical coord.
fm(),        // Rotation matrix based on frot.
fPath(){     // Path in geometry to this moduel
    // This is a constructor for the AliITSgeomMatrix class. The matrix is
    // defined by 3 standard rotation angles [radians], and the translation
    // vector tran [cm]. In addition the layer, ladder, and detector number
    // for this particular module and the type of module must be given.
    // The full rotation matrix is kept so that the evaluation 
    // of a coordinate transformation can be done quickly and with a minimum
    // of CPU overhead. The basic coordinate systems are the ALICE global
    // coordinate system and the detector local coordinate system. In general
    // this structure is not limited to just those two coordinate systems.
    //Begin_Html
    /*
      <img src="picts/ITS/AliITSgeomMatrix_L1.gif">
    */
    //End_Html
    // Inputs:
    //    Int_t idt        The detector index value
    //    Int_t id[3]      The layer, ladder, and detector numbers
    //    Double_t rot[3]  The 3 Cartician rotaion angles [radians]
    //    Double_t tran[3] The 3 Cartician translation distnaces
    // Outputs:
    //    none.
    // Return:
    //    A properly inilized AliITSgeomMatrix class.
    Int_t i;

    for(i=0;i<3;i++){
	fid[i]   = id[i];
	frot[i]  = rot[i];
	ftran[i] = tran[i];
    }// end for i
    fCylR   = TMath::Sqrt(ftran[0]*ftran[0]+ftran[1]*ftran[1]);
    fCylPhi = TMath::ATan2(ftran[1],ftran[0]);
    if(fCylPhi<0.0) fCylPhi += 2.*TMath::Pi();
    this->MatrixFromAngle();
}
//----------------------------------------------------------------------
AliITSgeomMatrix::AliITSgeomMatrix(Int_t idt, const Int_t id[3],
                                   Double_t matrix[3][3],
                                   const Double_t tran[3]):
TObject(),            // Base class
fDetectorIndex(idt), // Detector type index (like fShapeIndex was)
fid(),       // layer, ladder, detector numbers.
frot(),      //! vector of rotations about x,y,z [radians].
ftran(),     // Translation vector of module x,y,z.
fCylR(0.0),  //! R Translation in Cylinderical coordinates
fCylPhi(0.0),//! Phi Translation vector in Cylindrical coord.
fm(),        // Rotation matrix based on frot.
fPath(){     // Path in geometry to this module
    // This is a constructor for the AliITSgeomMatrix class. The 
    // rotation matrix is given as one of the inputs, and the 
    // translation vector tran [cm]. In  addition the layer, ladder, 
    // and detector number for this particular module and the type of 
    // module must be given. The full rotation matrix is kept so that 
    // the evaluation of a coordinate transformation can be done quickly 
    // and with a minimum of CPU overhead. The basic coordinate systems 
    // are the ALICE global coordinate system and the detector local
    // coordinate system. In general this structure is not limited to just
    // those two coordinate systems.
    //Begin_Html
    /*
      <img src="picts/ITS/AliITSgeomMatrix_L1.gif">
    */
    //End_Html
    // Inputs:
    //    Int_t idt          The detector index value
    //    Int_t id[3]        The layer, ladder, and detector numbers
    //    Double_t rot[3][3] The 3x3 Cartician rotaion matrix
    //    Double_t tran[3]   The 3 Cartician translation distnaces
    // Outputs:
    //    none.
    // Return:
    //    A properly inilized AliITSgeomMatrix class.
    Int_t i,j;

    for(i=0;i<3;i++){
	fid[i]   = id[i];
	ftran[i] = tran[i];
	for(j=0;j<3;j++) fm[i][j] = matrix[i][j];
    }// end for i
    fCylR   = TMath::Sqrt(ftran[0]*ftran[0]+ftran[1]*ftran[1]);
    fCylPhi = TMath::ATan2(ftran[1],ftran[0]);
    if(fCylPhi<0.0) fCylPhi += 2.*TMath::Pi();
    this->AngleFromMatrix();
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::SixAnglesFromMatrix(Double_t *ang)const{
    // This function returns the 6 GEANT 3.21 rotation angles [degrees] in
    // the array ang which must be at least [6] long.
    // Inputs:
    //   none.
    // Outputs:
    //   Double_t ang[6]  The 6 Geant3.21 rotation angles. [degrees]
    // Return:
    //   noting
    Double_t si,c=180./TMath::Pi();
    const Double_t epsil=1.e-15;

    ang[1] = TMath::ATan2(fm[0][1],fm[0][0]);
    if( !(TMath::AreEqualAbs(TMath::Cos(ang[1]),0.,epsil))) si = fm[0][0]/TMath::Cos(ang[1]);
    else si = fm[0][1]/TMath::Sin(ang[1]);
    ang[0] = TMath::ATan2(si,fm[0][2]);

    ang[3] = TMath::ATan2(fm[1][1],fm[1][0]);
    if(!(TMath::AreEqualAbs(TMath::Cos(ang[3]),0.,epsil))) si = fm[1][0]/TMath::Cos(ang[3]);
    else si = fm[1][1]/TMath::Sin(ang[3]);
    ang[2] = TMath::ATan2(si,fm[1][2]);

    ang[5] = TMath::ATan2(fm[2][1],fm[2][0]);
    if(!(TMath::AreEqualAbs(TMath::Cos(ang[5]),0.,epsil))) si = fm[2][0]/TMath::Cos(ang[5]);
    else si = fm[2][1]/TMath::Sin(ang[5]);
    ang[4] = TMath::ATan2(si,fm[2][2]);

    for(Int_t i=0;i<6;i++) {ang[i] *= c; if(ang[i]<0.0) ang[i] += 360.;}
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::MatrixFromSixAngles(const Double_t *ang){
    // Given the 6 GEANT 3.21 rotation angles [degree], this will compute and
    // set the rotations matrix and 3 standard rotation angles [radians].
    // These angles and rotation matrix are overwrite the existing values in
    // this class.
    // Inputs:
    //   Double_t ang[6]  The 6 Geant3.21 rotation angles. [degrees]
    // Outputs:
    //   none.
    // Return:
    //   noting
    Int_t    i,j;
    Double_t si,lr[9],c=TMath::Pi()/180.;
    const Double_t epsil = 1.e-15;

    si    = TMath::Sin(c*ang[0]);
    if(TMath::AreEqualAbs(ang[0],90.,epsil)) si = +1.0;
    if(TMath::AreEqualAbs(ang[0],270.,epsil)) si = -1.0;
    if(TMath::AreEqualAbs(ang[0],0.,epsil) ||TMath::AreEqualAbs(ang[0],180.,epsil)) si =  0.0;
    lr[0] = si * TMath::Cos(c*ang[1]);
    lr[1] = si * TMath::Sin(c*ang[1]);
    lr[2] = TMath::Cos(c*ang[0]);
    if(TMath::AreEqualAbs(ang[0],90.,epsil)||TMath::AreEqualAbs(ang[0],270.,epsil)) lr[2] =  0.0;
    if(TMath::AreEqualAbs(ang[0],0.,epsil))                  lr[2] = +1.0;
    if(TMath::AreEqualAbs(ang[0],180.,epsil))                 lr[2] = -1.0;
//
    si    =  TMath::Sin(c*ang[2]);
    if(TMath::AreEqualAbs(ang[2],90.,epsil))                 si = +1.0; 
    if(TMath::AreEqualAbs(ang[2],270.,epsil))                 si = -1.0;
    if(TMath::AreEqualAbs(ang[2],0.,epsil) || TMath::AreEqualAbs(ang[2],180.,epsil)) si =  0.0;
    lr[3] = si * TMath::Cos(c*ang[3]);
    lr[4] = si * TMath::Sin(c*ang[3]);
    lr[5] = TMath::Cos(c*ang[2]);
    if(TMath::AreEqualAbs(ang[2],90.,epsil) || TMath::AreEqualAbs(ang[2],270.,epsil)) lr[5] =  0.0;
    if(TMath::AreEqualAbs(ang[2],0.,epsil))                 lr[5] = +1.0;
    if(TMath::AreEqualAbs(ang[2],180.,epsil))                 lr[5] = -1.0;
//
    si    = TMath::Sin(c*ang[4]);
    if(TMath::AreEqualAbs(ang[4],90.,epsil))                 si = +1.0;
    if(TMath::AreEqualAbs(ang[4],270.0,epsil))                 si = -1.0;
    if(TMath::AreEqualAbs(ang[4],0.,epsil)|| TMath::AreEqualAbs(ang[4],180.,epsil)) si =  0.0;
    lr[6] = si * TMath::Cos(c*ang[5]);
    lr[7] = si * TMath::Sin(c*ang[5]);
    lr[8] = TMath::Cos(c*ang[4]);
    if(TMath::AreEqualAbs(ang[4],90.0,epsil) ||TMath::AreEqualAbs(ang[4],270.,epsil)) lr[8] =  0.0;
    if(TMath::AreEqualAbs(ang[4],0.,epsil))                  lr[8] = +1.0;
    if(TMath::AreEqualAbs(ang[4],180.0,epsil))                  lr[8] = -1.0;
    // Normalize these elements and fill matrix fm.
    for(i=0;i<3;i++){// reuse si.
	si = 0.0;
	for(j=0;j<3;j++) si += lr[3*i+j]*lr[3*i+j];
	si = TMath::Sqrt(1./si);
	for(j=0;j<3;j++) fm[i][j] = si*lr[3*i+j];
    } // end for i
    this->AngleFromMatrix();
}
//----------------------------------------------------------------------
AliITSgeomMatrix::AliITSgeomMatrix(const Double_t rotd[6]/*degrees*/,
                                   Int_t idt,const Int_t id[3],
                                   const Double_t tran[3]):
TObject(),            // Base class
fDetectorIndex(idt), // Detector type index (like fShapeIndex was)
fid(),       // layer, ladder, detector numbers.
frot(),      //! vector of rotations about x,y,z [radians].
ftran(),     // Translation vector of module x,y,z.
fCylR(0.0),  //! R Translation in Cylinderical coordinates
fCylPhi(0.0),//! Phi Translation vector in Cylindrical coord.
fm(),        // Rotation matrix based on frot.
fPath(){     // Path in geometry to this module
    // This is a constructor for the AliITSgeomMatrix class. The matrix 
    // is defined by the 6 GEANT 3.21 rotation angles [degrees], and 
    // the translation vector tran [cm]. In addition the layer, ladder, 
    // and detector number for this particular module and the type of 
    // module must be given. The full rotation matrix is kept so that 
    // the evaluation  of a coordinate transformation can be done 
    // quickly and with a minimum of CPU overhead. The basic coordinate 
    // systems are the ALICE global coordinate system and the detector 
    // local coordinate system. In general this structure is not limited 
    // to just those two coordinate systems.
    //Begin_Html
    /*
      <img src="picts/ITS/AliITSgeomMatrix_L1.gif">
    */
    //End_Html
    // Inputs:
    //    Double_t rotd[6]  The 6 Geant 3.21 rotation angles [degrees]
    //    Int_t idt         The module Id number
    //    Int_t id[3]       The layer, ladder and detector number
    //    Double_t tran[3]  The translation vector
    Int_t i;

    for(i=0;i<3;i++){
	fid[i]   = id[i];
	ftran[i] = tran[i];
    }// end for i
    fCylR   = TMath::Sqrt(ftran[0]*ftran[0]+ftran[1]*ftran[1]);
    fCylPhi = TMath::ATan2(ftran[1],ftran[0]);
    if(fCylPhi<0.0) fCylPhi += 2.*TMath::Pi();
    this->MatrixFromSixAngles(rotd);
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::AngleFromMatrix(){
    // Computes the angles from the rotation matrix up to a phase of 
    // 180 degrees. The matrix used in AliITSgeomMatrix::MatrixFromAngle()
    // and  its inverse AliITSgeomMatrix::AngleFromMatrix() are defined in 
    // the following ways, R = Rz*Ry*Rx (M=R*L+T) where
    //     1   0   0       Cy  0 +Sy       Cz -Sz  0
    // Rx= 0   Cx -Sx  Ry=  0  1   0   Rz=+Sz  Cz  0
    //     0  +Sx  Cx     -Sy  0  Cy        0   0  1
    // The choice of the since of S, comes from the choice between 
    // the rotation of the object or the coordinate system (view). I think
    // that this choice is the first, the rotation of the object.
    // Inputs:
    //   none
    // Outputs:
    //   none
    // Return:
    //   none
    Double_t rx,ry,rz;
    // get angles from matrix up to a phase of 180 degrees.

    rx = TMath::ATan2(fm[2][1],fm[2][2]);if(rx<0.0) rx += 2.0*TMath::Pi();
    ry = TMath::ASin(-fm[0][2]);         if(ry<0.0) ry += 2.0*TMath::Pi();
    rz = TMath::ATan2(fm[1][0],fm[0][0]);if(rz<0.0) rz += 2.0*TMath::Pi();
    frot[0] = rx;
    frot[1] = ry;
    frot[2] = rz;
    return;
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::MatrixFromAngle(){
    // Computes the Rotation matrix from the angles [radians] kept in this
    // class. The matrix used in AliITSgeomMatrix::MatrixFromAngle() and 
    // its inverse AliITSgeomMatrix::AngleFromMatrix() are defined in 
    // the following ways, R = Rz*Ry*Rx (M=R*L+T) where
    //     1   0   0       Cy  0 +Sy       Cz -Sz  0
    // Rx= 0   Cx -Sx  Ry=  0  1   0   Rz=+Sz  Cz  0
    //     0  +Sx  Cx     -Sy  0  Cy        0   0  1
    // The choice of the since of S, comes from the choice between 
    // the rotation of the object or the coordinate system (view). I think
    // that this choice is the first, the rotation of the object.
    // Inputs:
    //   none
    // Outputs:
    //   none
    // Return:
    //   none
    Double_t sx,sy,sz,cx,cy,cz;

    sx = TMath::Sin(frot[0]); cx = TMath::Cos(frot[0]);
    sy = TMath::Sin(frot[1]); cy = TMath::Cos(frot[1]);
    sz = TMath::Sin(frot[2]); cz = TMath::Cos(frot[2]);
    fm[0][0] = +cz*cy;             // fr[0]
    fm[0][1] = +cz*sy*sx - sz*cx;  // fr[1]
    fm[0][2] = +cz*sy*cx + sz*sx;  // fr[2]
    fm[1][0] = +sz*cy;             // fr[3]
    fm[1][1] = +sz*sy*sx + cz*cx;  // fr[4]
    fm[1][2] = +sz*sy*cx - cz*sx;  // fr[5]
    fm[2][0] = -sy;                // fr[6]
    fm[2][1] = +cy*sx;             // fr[7]
    fm[2][2] = +cy*cx;             // fr[8]
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::SetEulerAnglesChi(const Double_t ang[3]){
    // Computes the Rotation matrix from the Euler angles [radians], 
    // Chi-convention, kept in this class. The matrix used in 
    // AliITSgeomMatrix::SetEulerAnglesChi and 
    // its inverse AliITSgeomMatrix::GetEulerAnglesChi() are defined in 
    // the following ways, R = Rb*Rc*Rd (M=R*L+T) where
    //     C2 +S2  0       1  0    0       C0 +S0  0
    // Rb=-S2  C2  0  Rc=  0  C1 +S1   Rd=-S0  C0  0
    //     0   0   1       0 -S1  C1       0   0   1
    // This form is taken from Wolfram Research's Geometry>
    // Transformations>Rotations web page (also should be
    // found in their book).
    // Inputs:
    //   Double_t ang[3] The three Euler Angles Phi, Theta, Psi
    // Outputs:
    //   none
    // Return:
    //   none
    Double_t s0,s1,s2,c0,c1,c2;

    s0 = TMath::Sin(ang[0]); c0 = TMath::Cos(ang[0]);
    s1 = TMath::Sin(ang[1]); c1 = TMath::Cos(ang[1]);
    s2 = TMath::Sin(ang[2]); c2 = TMath::Cos(ang[2]);
    fm[0][0] = +c2*c0-c1*s0*s2;  // fr[0]
    fm[0][1] = +c2*s0+c1*c0*s2;  // fr[1]
    fm[0][2] = +s2*s1;           // fr[2]
    fm[1][0] = -s2*c0-c1*s0*c2;  // fr[3]
    fm[1][1] = -s2*s0+c1*c0*c2;  // fr[4]
    fm[1][2] = +c2*s1;           // fr[5]
    fm[2][0] = s1*s0;            // fr[6]
    fm[2][1] = -s1*c0;           // fr[7]
    fm[2][2] = +c1;              // fr[8]
    AngleFromMatrix();
    return ;
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::GtoLPosition(const Double_t g0[3],Double_t l[3]) const {
    // Returns the local coordinates given the global coordinates [cm].
    // Inputs:
    //   Double_t g[3]   The position represented in the ALICE 
    //                   global coordinate system
    // Outputs:
    //   Double_t l[3]  The poistion represented in the local
    //                  detector coordiante system
    // Return:
    //   none
    Int_t    i,j;
    Double_t g[3];

    for(i=0;i<3;i++) g[i] = g0[i] - ftran[i];
    for(i=0;i<3;i++){
        l[i] = 0.0;
        for(j=0;j<3;j++) l[i] += fm[i][j]*g[j];
        // g = R l + translation
    } // end for i
    return;
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::LtoGPosition(const Double_t l[3],Double_t g[3]) const {
    // Returns the global coordinates given the local coordinates [cm].
    // Inputs:
    //   Double_t l[3]   The poistion represented in the detector 
    //                   local coordinate system
    // Outputs:
    //   Double_t g[3]   The poistion represented in the ALICE
    //                   Global coordinate system
    // Return:
    //   none.
    Int_t    i,j;

    for(i=0;i<3;i++){
        g[i] = 0.0;
        for(j=0;j<3;j++) g[i] += fm[j][i]*l[j];
        g[i] += ftran[i];
        // g = R^t l + translation
    } // end for i
    return;
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::GtoLMomentum(const Double_t g[3],Double_t l[3]) const{
    // Returns the local coordinates of the momentum given the global
    // coordinates of the momentum. It transforms just like GtoLPosition
    // except that the translation vector is zero.
    // Inputs:
    //   Double_t g[3] The momentum represented in the ALICE global 
    //                 coordinate system
    // Outputs:
    //   Double_t l[3] the momentum represented in the detector 
    //                 local coordinate system
    // Return:
    //   none.
    Int_t    i,j;

    for(i=0;i<3;i++){
        l[i] = 0.0;
        for(j=0;j<3;j++) l[i] += fm[i][j]*g[j];
        // g = R l
    } // end for i
    return;
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::LtoGMomentum(const Double_t l[3],Double_t g[3]) const {
    // Returns the Global coordinates of the momentum given the local
    // coordinates of the momentum. It transforms just like LtoGPosition
    // except that the translation vector is zero.
    // Inputs:
    //   Double_t l[3] the momentum represented in the detector 
    //                 local coordinate system
    // Outputs:
    //   Double_t g[3] The momentum represented in the ALICE global 
    //                 coordinate system
    // Return:
    //   none.
    Int_t    i,j;

    for(i=0;i<3;i++){
        g[i] = 0.0;
        for(j=0;j<3;j++) g[i] += fm[j][i]*l[j];
        // g = R^t l
    } // end for i
    return;
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::GtoLPositionError(const Double_t g[3][3],
                                         Double_t l[3][3]) const {
    // Given an Uncertainty matrix in Global coordinates it is 
    // rotated so that  its representation in local coordinates can 
    // be returned. There is no effect due to the translation vector 
    // or its uncertainty.
    // Inputs:
    //   Double_t g[3][3] The error matrix represented in the ALICE global 
    //                    coordinate system
    // Outputs:
    //   Double_t l[3][3] the error matrix represented in the detector 
    //                    local coordinate system
    // Return:
    //   none.
    Int_t    i,j,k,m;

    for(i=0;i<3;i++)for(m=0;m<3;m++){
        l[i][m] = 0.0;
        for(j=0;j<3;j++)for(k=0;k<3;k++)
            l[i][m] += fm[j][i]*g[j][k]*fm[k][m];
    } // end for i,m
    // g = R^t l R
    return;
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::LtoGPositionError(const Double_t l[3][3],
                                               Double_t g[3][3]) const {
    // Given an Uncertainty matrix in Local coordinates it is rotated so that 
    // its representation in global coordinates can be returned. There is no
    // effect due to the translation vector or its uncertainty.
    // Inputs:
    //   Double_t l[3][3] the error matrix represented in the detector 
    //                    local coordinate system
    // Outputs:
    //   Double_t g[3][3] The error matrix represented in the ALICE global 
    //                    coordinate system
    // Return:
    //   none.
    Int_t    i,j,k,m;

    for(i=0;i<3;i++)for(m=0;m<3;m++){
        g[i][m] = 0.0;
        for(j=0;j<3;j++)for(k=0;k<3;k++)
            g[i][m] += fm[i][j]*l[j][k]*fm[m][k];
    } // end for i,m
    // g = R l R^t
    return;
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::GtoLPositionTracking(const Double_t g[3],
                                            Double_t l[3]) const {
    // A slightly different coordinate system is used when tracking.
    // This coordinate system is only relevant when the geometry represents
    // the cylindrical ALICE ITS geometry. For tracking the Z axis is left
    // alone but X -> -Y and Y -> X such that X always points out of the
    // ITS Cylinder for every layer including layer 1 (where the detector 
    // are mounted upside down).
    //Begin_Html
    /*
      <img src="picts/ITS/AliITSgeomMatrix_T1.gif">
    */
    //End_Html
    // Inputs:
    //   Double_t g[3]   The position represented in the ALICE 
    //                   global coordinate system
    // Outputs:
    //   Double_t l[3]  The poistion represented in the local
    //                  detector coordiante system
    // Return:
    //   none
    Double_t l0[3];

    this->GtoLPosition(g,l0);
    if(fid[0]==1){ // for layer 1 the detector are flipped upside down
	           // with respect to the others.
	l[0] = +l0[1];
	l[1] = -l0[0];
	l[2] = +l0[2];
    }else{
	l[0] = -l0[1];
	l[1] = +l0[0];
	l[2] = +l0[2];
    } // end if
    return;
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::LtoGPositionTracking(const Double_t l[3],
                                            Double_t g[3]) const {
    // A slightly different coordinate system is used when tracking.
    // This coordinate system is only relevant when the geometry represents
    // the cylindrical ALICE ITS geometry. For tracking the Z axis is left
    // alone but X -> -Y and Y -> X such that X always points out of the
    // ITS Cylinder for every layer including layer 1 (where the detector 
    // are mounted upside down).
    //Begin_Html
    /*
      <img src="picts/ITS/AliITSgeomMatrix_T1.gif">
    */
    //End_Html
    // Inputs:
    //   Double_t l[3]   The poistion represented in the detector 
    //                   local coordinate system
    // Outputs:
    //   Double_t g[3]   The poistion represented in the ALICE
    //                   Global coordinate system
    // Return:
    //   none.
    Double_t l0[3];

    if(fid[0]==1){ // for layer 1 the detector are flipped upside down
	           // with respect to the others.
	l0[0] = -l[1];
	l0[1] = +l[0];
	l0[2] = +l[2];
    }else{
	l0[0] = +l[1];
	l0[1] = -l[0];
	l0[2] = +l[2];
    } // end if
    this->LtoGPosition(l0,g);
    return;
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::GtoLMomentumTracking(const Double_t g[3],
                                            Double_t l[3]) const {
    // A slightly different coordinate system is used when tracking.
    // This coordinate system is only relevant when the geometry represents
    // the cylindrical ALICE ITS geometry. For tracking the Z axis is left
    // alone but X -> -Y and Y -> X such that X always points out of the
    // ITS Cylinder for every layer including layer 1 (where the detector 
    // are mounted upside down).
    //Begin_Html
    /*
      <img src="picts/ITS/AliITSgeomMatrix_T1.gif">
    */
    //End_Html
    // Inputs:
    //   Double_t g[3] The momentum represented in the ALICE global 
    //                 coordinate system
    // Outputs:
    //   Double_t l[3] the momentum represented in the detector 
    //                 local coordinate system
    // Return:
    //   none.
    Double_t l0[3];

    this->GtoLMomentum(g,l0);
    if(fid[0]==1){ // for layer 1 the detector are flipped upside down
	           // with respect to the others.
	l[0] = +l0[1];
	l[1] = -l0[0];
	l[2] = +l0[2];
    }else{
	l[0] = -l0[1];
	l[1] = +l0[0];
	l[2] = +l0[2];
    } // end if
    return;
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::LtoGMomentumTracking(const Double_t l[3],
                                            Double_t g[3]) const {
    // A slightly different coordinate system is used when tracking.
    // This coordinate system is only relevant when the geometry represents
    // the cylindrical ALICE ITS geometry. For tracking the Z axis is left
    // alone but X -> -Y and Y -> X such that X always points out of the
    // ITS Cylinder for every layer including layer 1 (where the detector 
    // are mounted upside down).
    //Begin_Html
    /*
      <img src="picts/ITS/AliITSgeomMatrix_T1.gif">
    */
    //End_Html
    // Inputs:
    //   Double_t l[3] the momentum represented in the detector 
    //                 local coordinate system
    // Outputs:
    //   Double_t g[3] The momentum represented in the ALICE global 
    //                 coordinate system
    // Return:
    //   none.
    Double_t l0[3];

    if(fid[0]==1){ // for layer 1 the detector are flipped upside down
	           // with respect to the others.
	l0[0] = -l[1];
	l0[1] = +l[0];
	l0[2] = +l[2];
    }else{
	l0[0] = +l[1];
	l0[1] = -l[0];
	l0[2] = +l[2];
    } // end if
    this->LtoGMomentum(l0,g);
	return;
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::GtoLPositionErrorTracking(const Double_t g[3][3],
                                                 Double_t l[3][3]) const {
    // A slightly different coordinate system is used when tracking.
    // This coordinate system is only relevant when the geometry represents
    // the cylindrical ALICE ITS geometry. For tracking the Z axis is left
    // alone but X -> -Y and Y -> X such that X always points out of the
    // ITS Cylinder for every layer including layer 1 (where the detector 
    // are mounted upside down).
    //Begin_Html
    /*
      <img src="picts/ITS/AliITSgeomMatrix_TE1.gif">
    */
    //End_Html
    // Inputs:
    //   Double_t g[3][3] The error matrix represented in the ALICE global 
    //                    coordinate system
    // Outputs:
    //   Double_t l[3][3] the error matrix represented in the detector 
    //                    local coordinate system
    // Return:
    Int_t    i,j,k,m;
    Double_t rt[3][3];
    Double_t a0[3][3] = {{0.,+1.,0.},{-1.,0.,0.},{0.,0.,+1.}};
    Double_t a1[3][3] = {{0.,-1.,0.},{+1.,0.,0.},{0.,0.,+1.}};

    if(fid[0]==1) for(i=0;i<3;i++)for(j=0;j<3;j++)for(k=0;k<3;k++)
        rt[i][k] = a0[i][j]*fm[j][k];
    else for(i=0;i<3;i++)for(j=0;j<3;j++)for(k=0;k<3;k++)
        rt[i][k] = a1[i][j]*fm[j][k];
    for(i=0;i<3;i++)for(m=0;m<3;m++){
        l[i][m] = 0.0;
        for(j=0;j<3;j++)for(k=0;k<3;k++)
            l[i][m] += rt[j][i]*g[j][k]*rt[k][m];
    } // end for i,m
    // g = R^t l R
    return;
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::LtoGPositionErrorTracking(const Double_t l[3][3],
                                                 Double_t g[3][3]) const {
    // A slightly different coordinate system is used when tracking.
    // This coordinate system is only relevant when the geometry represents
    // the cylindrical ALICE ITS geometry. For tracking the Z axis is left
    // alone but X -> -Y and Y -> X such that X always points out of the
    // ITS Cylinder for every layer including layer 1 (where the detector 
    // are mounted upside down).
    //Begin_Html
    /*
      <img src="picts/ITS/AliITSgeomMatrix_TE1.gif">
    */
    //End_Html
    // Inputs:
    //   Double_t l[3][3] the error matrix represented in the detector 
    //                    local coordinate system
    // Outputs:
    //   Double_t g[3][3] The error matrix represented in the ALICE global 
    //                    coordinate system
    // Return:
    //   none.
    Int_t    i,j,k,m;
    Double_t rt[3][3];
    Double_t a0[3][3] = {{0.,+1.,0.},{-1.,0.,0.},{0.,0.,+1.}};
    Double_t a1[3][3] = {{0.,-1.,0.},{+1.,0.,0.},{0.,0.,+1.}};

    if(fid[0]==1) for(i=0;i<3;i++)for(j=0;j<3;j++)for(k=0;k<3;k++)
        rt[i][k] = a0[i][j]*fm[j][k];
    else for(i=0;i<3;i++)for(j=0;j<3;j++)for(k=0;k<3;k++)
        rt[i][k] = a1[i][j]*fm[j][k];
    for(i=0;i<3;i++)for(m=0;m<3;m++){
        g[i][m] = 0.0;
        for(j=0;j<3;j++)for(k=0;k<3;k++)
            g[i][m] += rt[i][j]*l[j][k]*rt[m][k];
    } // end for i,m
    // g = R l R^t
    return;
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::PrintTitles(ostream *os) const {
    // Standard output format for this class but it includes variable
    // names and formatting that makes it easer to read.
    // Inputs:
    //    ostream *os   The output stream to print the title on
    // Outputs:
    //    none.
    // Return:
    //    none.
    Int_t i,j;

    *os << "fDetectorIndex=" << fDetectorIndex << " fid[3]={";
    for(i=0;i<3;i++) *os << fid[i]   << " ";
    *os << "} frot[3]={";
    for(i=0;i<3;i++) *os << frot[i]  << " ";
    *os << "} ftran[3]={";
    for(i=0;i<3;i++) *os << ftran[i] << " ";
    *os << "} fm[3][3]={";
    for(i=0;i<3;i++){for(j=0;j<3;j++){  *os << fm[i][j] << " ";} *os <<"}{";}
    *os << "}" << endl;
    return;
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::PrintComment(ostream *os) const {
    //  output format used by Print.
    // Inputs:
    //    ostream *os   The output stream to print the comments on
    // Outputs:
    //    none.
    // Return:
    //    none.
    *os << "fDetectorIndex fid[0] fid[1] fid[2] ftran[0] ftran[1] ftran[2] ";
    *os << "fm[0][0]  fm[0][1]  fm[0][2]  fm[1][0]  fm[1][1]  fm[1][2]  ";
    *os << "fm[2][0]  fm[2][1]  fm[2][2] ";
    return;
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::Print(ostream *os)const{
    // Standard output format for this class.
    // Inputs:
    //    ostream *os   The output stream to print the class data on
    // Outputs:
    //    none.
    // Return:
    //    none.
    Int_t i,j;
#if defined __GNUC__
#if __GNUC__ > 2
    ios::fmtflags fmt;
#else
    Int_t fmt;
#endif
#else
#if defined __ICC || defined __ECC || defined __xlC__
    ios::fmtflags fmt;
#else
    Int_t fmt;
#endif
#endif

    fmt = os->setf(ios::scientific);  // set scientific floating point output
    *os << fDetectorIndex << " ";
    for(i=0;i<3;i++) *os << fid[i]   << " ";
//    for(i=0;i<3;i++) *os << frot[i]  << " ";  // Redundant with fm[][].
    for(i=0;i<3;i++) *os << setprecision(16) << ftran[i] << " ";
    for(i=0;i<3;i++)for(j=0;j<3;j++)  *os << setprecision(16) << 
					  fm[i][j] << " ";
    *os << fPath.Length()<< " ";
    for(i=0;i<fPath.Length();i++) *os << fPath[i];
    *os << endl;
    os->flags(fmt); // reset back to old formating.
    return;
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::Read(istream *is){
    // Standard input format for this class.
    // Inputs:
    //    istream *is   The input stream to read on
    // Outputs:
    //    none.
    // Return:
    //    none.
    Int_t i,j;
    const Int_t kMxVal=10000;
    *is >> fDetectorIndex;
    for(i=0;i<3;i++) *is >> fid[i];
//    for(i=0;i<3;i++) *is >> frot[i]; // Redundant with fm[][].
    for(i=0;i<3;i++) *is >> ftran[i];
    for(i=0;i<3;i++)for(j=0;j<3;j++)  *is >> fm[i][j];
    while(is->peek()==' ')is->get(); // skip white spaces
    if(isprint(is->peek())){ // old format did not have path.
	*is >> j; // string length
	if(j>kMxVal || j<0){
	  AliError(Form("j> %d",kMxVal));
	  return;
	}
	fPath.Resize(j);
	for(i=0;i<j;i++) {*is >> fPath[i];}
    } // end if
    AngleFromMatrix(); // compute angles frot[].
    fCylR   = TMath::Sqrt(ftran[0]*ftran[0]+ftran[1]*ftran[1]);
    fCylPhi = TMath::ATan2(ftran[1],ftran[0]);
    if(fCylPhi<0.0) fCylPhi += 2.*TMath::Pi();
    return;
}
//______________________________________________________________________
void AliITSgeomMatrix::Streamer(TBuffer &R__b){
   // Stream an object of class AliITSgeomMatrix.
    // Inputs:
    //     TBuffer &R__b   The output buffer to stream data on.
    // Outputs:
    //    none.
    // Return:
    //    none.

    if (R__b.IsReading()) {
        AliITSgeomMatrix::Class()->ReadBuffer(R__b, this);
        fCylR   = TMath::Sqrt(ftran[0]*ftran[0]+ftran[1]*ftran[1]);
        fCylPhi = TMath::ATan2(ftran[1],ftran[0]);
        this->AngleFromMatrix();
        if(fCylPhi<0.0) fCylPhi += 2.*TMath::Pi();
    } else {
        AliITSgeomMatrix::Class()->WriteBuffer(R__b, this);
    } // end if
}
//______________________________________________________________________
void AliITSgeomMatrix::SetTranslation(const Double_t tran[3]){
    // Sets the translation vector and computes fCylR and fCylPhi.
    // Inputs:
    //   Double_t trans[3]   The translation vector to be used
    // Outputs:
    //   none.
    // Return:
    //   none.
    for(Int_t i=0;i<3;i++) ftran[i] = tran[i];
    fCylR   = TMath::Sqrt(ftran[0]*ftran[0]+ftran[1]*ftran[1]);
    fCylPhi = TMath::ATan2(ftran[1],ftran[0]);
    if(fCylPhi<0.0) fCylPhi += 2.*TMath::Pi();
}
//----------------------------------------------------------------------
TPolyLine3D* AliITSgeomMatrix::CreateLocalAxis() const {
    // This class is used as part of the documentation of this class
    // Inputs:
    //   none.
    // Outputs:
    //   none.
    // Return:
    //   A pointer to a new TPolyLine3D object showing the 3 line
    //   segments that make up the this local axis in the global
    //   reference system.
    Float_t  gf[15];
    Double_t g[5][3];
    Double_t l[5][3]={{1.0,0.0,0.0},{0.0,0.0,0.0},{0.0,1.0,0.0},{0.0,0.0,0.0},
                      {0.0,0.0,1.0}};
    Int_t i;

    for(i=0;i<5;i++) {
        LtoGPosition(l[i],g[i]);
        gf[3*i]=(Float_t)g[i][0];
        gf[3*i+1]=(Float_t)g[i][1];
        gf[3*i+2]=(Float_t)g[i][2];
    } // end for i
    return new TPolyLine3D(5,gf);
}
//----------------------------------------------------------------------
TPolyLine3D* AliITSgeomMatrix::CreateLocalAxisTracking() const {
    // This class is used as part of the documentation of this class
    // Inputs:
    //   none.
    // Outputs:
    //   none.
    // Return:
    //   A pointer to a new TPolyLine3D object showing the 3 line
    //   segments that make up the this local axis in the global
    //   reference system.
    Float_t gf[15];
    Double_t g[5][3];
    Double_t l[5][3]={{1.0,0.0,0.0},{0.0,0.0,0.0},{0.0,1.0,0.0},{0.0,0.0,0.0},
                      {0.0,0.0,1.0}};
    Int_t i;

    for(i=0;i<5;i++) {
        LtoGPositionTracking(l[i],g[i]);
        gf[3*i]=(Float_t)g[i][0];
        gf[3*i+1]=(Float_t)g[i][1];
        gf[3*i+2]=(Float_t)g[i][2];
    } // end for i
    return new TPolyLine3D(5,gf);
}
//----------------------------------------------------------------------
TNode* AliITSgeomMatrix::CreateNode(const Char_t *nodeName,
                                    const Char_t *nodeTitle,TNode *mother,
                                    TShape *shape,Bool_t axis) const {
    // Creates a node inside of the node mother out of the shape shape
    // in the position, with respect to mother, indecated by "this". If axis
    // is ture, it will insert an axis within this node/shape.
    // Inputs:
    //   Char_t *nodeName  This name of this node
    //   Char_t *nodeTitle This node title
    //   TNode  *mother    The node this node will be inside of/with respect to
    //   TShape *shape     The shape of this node
    //   Bool_t axis       If ture, a set of x,y,z axis will be included
    // Outputs:
    //   none.
    // Return:
    //   A pointer to "this" node.
    Double_t trans[3],matrix[3][3],*matr;
    TRotMatrix *rot = new TRotMatrix();
    TString name,title;

    matr = &(matrix[0][0]);
    this->GetTranslation(trans);
    this->GetMatrix(matrix);
    rot->SetMatrix(matr);
    //
    name = nodeName;
    title = nodeTitle;
    //
    mother->cd();
    TNode *node1 = new TNode(name.Data(),title.Data(),shape,
                             trans[0],trans[1],trans[2],rot);
    if(axis){
        Int_t i,j;
        const Float_t kScale=0.5,kLw=0.2;
        Float_t xchar[13][2]={
	  {static_cast<Float_t>(0.5*kLw),1.},{0.,static_cast<Float_t>(0.5*kLw)},{static_cast<Float_t>(0.5-0.5*kLw),0.5},
	  {0.,static_cast<Float_t>(0.5*kLw)},{static_cast<Float_t>(0.5*kLw),0.},{0.5,static_cast<Float_t>(0.5-0.5*kLw)},
	  {static_cast<Float_t>(1-0.5*kLw),0.},{1.,static_cast<Float_t>(0.5*kLw)},{static_cast<Float_t>(0.5+0.5*kLw),0.5},
	  {1.,static_cast<Float_t>(1.-0.5*kLw)},{static_cast<Float_t>(1.-0.5*kLw),1.},{0.5,static_cast<Float_t>(0.5+0.5*kLw)},
	  {static_cast<Float_t>(0.5*kLw),1.}};
        Float_t ychar[10][2]={
	  {static_cast<Float_t>(.5-0.5*kLw),0.},{static_cast<Float_t>(.5+0.5*kLw),0.},{static_cast<Float_t>(.5+0.5*kLw),static_cast<Float_t>(0.5-0.5*kLw)},
	  {1.,static_cast<Float_t>(1.-0.5*kLw)},{static_cast<Float_t>(1.-0.5*kLw),1.},{static_cast<Float_t>(0.5+0.5*kLw),0.5},
	  {static_cast<Float_t>(0.5*kLw),1.}   ,{0.,static_cast<Float_t>(1-0.5*kLw)} ,{static_cast<Float_t>(0.5-0.5*kLw),0.5},
	  {static_cast<Float_t>(.5-0.5*kLw),0.}};
        Float_t zchar[11][2]={
	  {0.,1.},{0,static_cast<Float_t>(1.-kLw)},{static_cast<Float_t>(1.-kLw),static_cast<Float_t>(1.-kLw)},{0.,kLw}   ,{0.,0.},
	  {1.,0.},{1.,kLw}  ,{kLw,kLw}      ,{1.,static_cast<Float_t>(1.-kLw)},{1.,1.},
            {0.,1.}};
        for(i=0;i<13;i++)for(j=0;j<2;j++){
            if(i<13) xchar[i][j] = kScale*xchar[i][j];
            if(i<10) ychar[i][j] = kScale*ychar[i][j];
            if(i<11) zchar[i][j] = kScale*zchar[i][j];
        } // end for i,j
        TXTRU *axisxl = new TXTRU("x","x","text",12,2);
        for(i=0;i<12;i++) axisxl->DefineVertex(i,xchar[i][0],xchar[i][1]);
        axisxl->DefineSection(0,-0.5*kLw);axisxl->DefineSection(1,0.5*kLw);
        TXTRU *axisyl = new TXTRU("y","y","text",9,2);
        for(i=0;i<9;i++) axisyl->DefineVertex(i,ychar[i][0],ychar[i][1]);
        axisyl->DefineSection(0,-0.5*kLw);axisyl->DefineSection(1,0.5*kLw);
        TXTRU *axiszl = new TXTRU("z","z","text",10,2);
        for(i=0;i<10;i++) axiszl->DefineVertex(i,zchar[i][0],zchar[i][1]);
        axiszl->DefineSection(0,-0.5*kLw);axiszl->DefineSection(1,0.5*kLw);
        Float_t lxy[13][2]={
	  {static_cast<Float_t>(-0.5*kLw),static_cast<Float_t>(-0.5*kLw)},{0.8,static_cast<Float_t>(-0.5*kLw)},{0.8,-0.1},{1.0,0.0},
	  {0.8,0.1},{0.8,static_cast<Float_t>(0.5*kLw)},{static_cast<Float_t>(0.5*kLw),static_cast<Float_t>(0.5*kLw)},{static_cast<Float_t>(0.5*kLw),0.8},
	  {0.1,0.8},{0.0,1.0},{-0.1,0.8},{static_cast<Float_t>(-0.5*kLw),0.8},
	  {static_cast<Float_t>(-0.5*kLw),static_cast<Float_t>(-0.5*kLw)}};
        TXTRU *axisxy = new TXTRU("axisxy","axisxy","text",13,2);
        for(i=0;i<13;i++) axisxy->DefineVertex(i,lxy[i][0],lxy[i][1]);
        axisxy->DefineSection(0,-0.5*kLw);axisxy->DefineSection(1,0.5*kLw);
        Float_t lz[8][2]={
	  {static_cast<Float_t>(0.5*kLw),static_cast<Float_t>(-0.5*kLw)},{0.8,static_cast<Float_t>(-0.5*kLw)},{0.8,-0.1},{1.0,0.0},
	  {0.8,0.1},{0.8,static_cast<Float_t>(0.5*kLw)},{static_cast<Float_t>(0.5*kLw),static_cast<Float_t>(0.5*kLw)},
	  {static_cast<Float_t>(0.5*kLw),static_cast<Float_t>(-0.5*kLw)}};
        TXTRU *axisz = new TXTRU("axisz","axisz","text",8,2);
        for(i=0;i<8;i++) axisz->DefineVertex(i,lz[i][0],lz[i][1]);
        axisz->DefineSection(0,-0.5*kLw);axisz->DefineSection(1,0.5*kLw);
        //TRotMatrix *xaxis90= new TRotMatrix("xaixis90","",90.0, 0.0, 0.0);
        TRotMatrix *yaxis90= new TRotMatrix("yaixis90","", 0.0,90.0, 0.0);
        TRotMatrix *zaxis90= new TRotMatrix("zaixis90","", 0.0, 0.0,90.0);
        //
        node1->cd();
        title = name.Append("axisxy");
        TNode *nodeaxy = new TNode(title.Data(),title.Data(),axisxy);
        title = name.Append("axisz");
        TNode *nodeaz = new TNode(title.Data(),title.Data(),axisz,
                                  0.,0.,0.,yaxis90);
        TNode *textboxX0 = new TNode("textboxX0","textboxX0",axisxl,
                                    lxy[3][0],lxy[3][1],0.0);
        TNode *textboxX1 = new TNode("textboxX1","textboxX1",axisxl,
                                    lxy[3][0],lxy[3][1],0.0,yaxis90);
        TNode *textboxX2 = new TNode("textboxX2","textboxX2",axisxl,
                                    lxy[3][0],lxy[3][1],0.0,zaxis90);
        TNode *textboxY0 = new TNode("textboxY0","textboxY0",axisyl,
                                    lxy[9][0],lxy[9][1],0.0);
        TNode *textboxY1 = new TNode("textboxY1","textboxY1",axisyl,
                                    lxy[9][0],lxy[9][1],0.0,yaxis90);
        TNode *textboxY2 = new TNode("textboxY2","textboxY2",axisyl,
                                    lxy[9][0],lxy[9][1],0.0,zaxis90);
        TNode *textboxZ0 = new TNode("textboxZ0","textboxZ0",axiszl,
                                    0.0,0.0,lz[3][0]);
        TNode *textboxZ1 = new TNode("textboxZ1","textboxZ1",axiszl,
                                    0.0,0.0,lz[3][0],yaxis90);
        TNode *textboxZ2 = new TNode("textboxZ2","textboxZ2",axiszl,
                                    0.0,0.0,lz[3][0],zaxis90);
        nodeaxy->Draw();
        nodeaz->Draw();
        textboxX0->Draw();
        textboxX1->Draw();
        textboxX2->Draw();
        textboxY0->Draw();
        textboxY1->Draw();
        textboxY2->Draw();
        textboxZ0->Draw();
        textboxZ1->Draw();
        textboxZ2->Draw();
    } // end if
    mother->cd();
    return node1;
}
//----------------------------------------------------------------------
void AliITSgeomMatrix::MakeFigures() const {
    // make figures to help document this class
    // Inputs:
    //   none.
    // Outputs:
    //   none.
    // Return:
    //   none.
    const Double_t kDx0=550.,kDy0=550.,kDz0=550.; // cm
    const Double_t kDx=1.0,kDy=0.300,kDz=3.0,kRmax=0.1; // cm
    Float_t l[5][3]={{1.0,0.0,0.0},{0.0,0.0,0.0},{0.0,1.0,0.0},{0.0,0.0,0.0},
                      {0.0,0.0,1.0}};
    TCanvas *c = new TCanvas(kFALSE);// create a batch mode canvas.
#if ROOT_VERSION_CODE>= 331523
    Double_t rmin[]={-1,-1,-1};
    Double_t rmax[]={ 1, 1, 1};
    TView *view = new TView3D(1,rmin,rmax);
#else
    TView   *view = new TView(1); // Create Cartesian coordiante view
#endif
    TBRIK   *mother  = new TBRIK("Mother","Mother","void",kDx0,kDy0,kDz0);
    TBRIK   *det  = new TBRIK("Detector","","Si",kDx,kDy,kDz);
    TPolyLine3D *axis = new TPolyLine3D(5,&(l[0][0]));
    TPCON *arrow      = new TPCON("arrow","","air",0.0,360.,2);
    TRotMatrix *xarrow= new TRotMatrix("xarrow","",90.,0.0,0.0);
    TRotMatrix *yarrow= new TRotMatrix("yarrow","",0.0,90.,0.0);

    det->SetLineColor(0); // black
    det->SetLineStyle(1); // solid line
    det->SetLineWidth(2); // pixel units
    det->SetFillColor(1); // black
    det->SetFillStyle(4010); // window is 90% transparent
    arrow->SetLineColor(det->GetLineColor());
    arrow->SetLineWidth(det->GetLineWidth());
    arrow->SetLineStyle(det->GetLineStyle());
    arrow->SetFillColor(1); // black
    arrow->SetFillStyle(4100); // window is 100% opaque
    arrow->DefineSection(0,0.0,0.0,kRmax);
    arrow->DefineSection(1,2.*kRmax,0.0,0.0);
    view->SetRange(-kDx0,-kDy0,-kDz0,kDx0,kDy0,kDz0);
    //
    TNode *node0 = new TNode("NODE0","NODE0",mother);
    node0->cd();
    TNode *node1 = new TNode("NODE1","NODE1",det);
    node1->cd();
    TNode *nodex = new TNode("NODEx","NODEx",arrow,
                             l[0][0],l[0][1],l[0][2],xarrow);
    TNode *nodey = new TNode("NODEy","NODEy",arrow,
                             l[2][0],l[2][1],l[2][2],yarrow);
    TNode *nodez = new TNode("NODEz","NODEz",arrow,l[4][0],l[4][1],l[4][2]);
    //
    axis->Draw();
    nodex->Draw();
    nodey->Draw();
    nodez->Draw();
    
    //
    node0->cd();
    node0->Draw();
    c->Update();
    c->SaveAs("AliITSgeomMatrix_L1.gif");
}
//----------------------------------------------------------------------
ostream &operator<<(ostream &os,AliITSgeomMatrix &p){
    // Standard output streaming function.
    // Inputs:
    //    ostream &os          The output stream to print the class data on
    //    AliITSgeomMatrix &p  This class
    // Outputs:
    //    none.
    // Return:
    //    none.

    p.Print(&os);
    return os;
}
//----------------------------------------------------------------------
istream &operator>>(istream &is,AliITSgeomMatrix &r){
    // Standard input streaming function.
    // Inputs:
    //    ostream &os          The input stream to print the class data on
    //    AliITSgeomMatrix &p  This class
    // Outputs:
    //    none.
    // Return:
    //    none.

    r.Read(&is);
    return is;
}
//----------------------------------------------------------------------
 AliITSgeomMatrix.cxx:1
 AliITSgeomMatrix.cxx:2
 AliITSgeomMatrix.cxx:3
 AliITSgeomMatrix.cxx:4
 AliITSgeomMatrix.cxx:5
 AliITSgeomMatrix.cxx:6
 AliITSgeomMatrix.cxx:7
 AliITSgeomMatrix.cxx:8
 AliITSgeomMatrix.cxx:9
 AliITSgeomMatrix.cxx:10
 AliITSgeomMatrix.cxx:11
 AliITSgeomMatrix.cxx:12
 AliITSgeomMatrix.cxx:13
 AliITSgeomMatrix.cxx:14
 AliITSgeomMatrix.cxx:15
 AliITSgeomMatrix.cxx:16
 AliITSgeomMatrix.cxx:17
 AliITSgeomMatrix.cxx:18
 AliITSgeomMatrix.cxx:19
 AliITSgeomMatrix.cxx:20
 AliITSgeomMatrix.cxx:21
 AliITSgeomMatrix.cxx:22
 AliITSgeomMatrix.cxx:23
 AliITSgeomMatrix.cxx:24
 AliITSgeomMatrix.cxx:25
 AliITSgeomMatrix.cxx:26
 AliITSgeomMatrix.cxx:27
 AliITSgeomMatrix.cxx:28
 AliITSgeomMatrix.cxx:29
 AliITSgeomMatrix.cxx:30
 AliITSgeomMatrix.cxx:31
 AliITSgeomMatrix.cxx:32
 AliITSgeomMatrix.cxx:33
 AliITSgeomMatrix.cxx:34
 AliITSgeomMatrix.cxx:35
 AliITSgeomMatrix.cxx:36
 AliITSgeomMatrix.cxx:37
 AliITSgeomMatrix.cxx:38
 AliITSgeomMatrix.cxx:39
 AliITSgeomMatrix.cxx:40
 AliITSgeomMatrix.cxx:41
 AliITSgeomMatrix.cxx:42
 AliITSgeomMatrix.cxx:43
 AliITSgeomMatrix.cxx:44
 AliITSgeomMatrix.cxx:45
 AliITSgeomMatrix.cxx:46
 AliITSgeomMatrix.cxx:47
 AliITSgeomMatrix.cxx:48
 AliITSgeomMatrix.cxx:49
 AliITSgeomMatrix.cxx:50
 AliITSgeomMatrix.cxx:51
 AliITSgeomMatrix.cxx:52
 AliITSgeomMatrix.cxx:53
 AliITSgeomMatrix.cxx:54
 AliITSgeomMatrix.cxx:55
 AliITSgeomMatrix.cxx:56
 AliITSgeomMatrix.cxx:57
 AliITSgeomMatrix.cxx:58
 AliITSgeomMatrix.cxx:59
 AliITSgeomMatrix.cxx:60
 AliITSgeomMatrix.cxx:61
 AliITSgeomMatrix.cxx:62
 AliITSgeomMatrix.cxx:63
 AliITSgeomMatrix.cxx:64
 AliITSgeomMatrix.cxx:65
 AliITSgeomMatrix.cxx:66
 AliITSgeomMatrix.cxx:67
 AliITSgeomMatrix.cxx:68
 AliITSgeomMatrix.cxx:69
 AliITSgeomMatrix.cxx:70
 AliITSgeomMatrix.cxx:71
 AliITSgeomMatrix.cxx:72
 AliITSgeomMatrix.cxx:73
 AliITSgeomMatrix.cxx:74
 AliITSgeomMatrix.cxx:75
 AliITSgeomMatrix.cxx:76
 AliITSgeomMatrix.cxx:77
 AliITSgeomMatrix.cxx:78
 AliITSgeomMatrix.cxx:79
 AliITSgeomMatrix.cxx:80
 AliITSgeomMatrix.cxx:81
 AliITSgeomMatrix.cxx:82
 AliITSgeomMatrix.cxx:83
 AliITSgeomMatrix.cxx:84
 AliITSgeomMatrix.cxx:85
 AliITSgeomMatrix.cxx:86
 AliITSgeomMatrix.cxx:87
 AliITSgeomMatrix.cxx:88
 AliITSgeomMatrix.cxx:89
 AliITSgeomMatrix.cxx:90
 AliITSgeomMatrix.cxx:91
 AliITSgeomMatrix.cxx:92
 AliITSgeomMatrix.cxx:93
 AliITSgeomMatrix.cxx:94
 AliITSgeomMatrix.cxx:95
 AliITSgeomMatrix.cxx:96
 AliITSgeomMatrix.cxx:97
 AliITSgeomMatrix.cxx:98
 AliITSgeomMatrix.cxx:99
 AliITSgeomMatrix.cxx:100
 AliITSgeomMatrix.cxx:101
 AliITSgeomMatrix.cxx:102
 AliITSgeomMatrix.cxx:103
 AliITSgeomMatrix.cxx:104
 AliITSgeomMatrix.cxx:105
 AliITSgeomMatrix.cxx:106
 AliITSgeomMatrix.cxx:107
 AliITSgeomMatrix.cxx:108
 AliITSgeomMatrix.cxx:109
 AliITSgeomMatrix.cxx:110
 AliITSgeomMatrix.cxx:111
 AliITSgeomMatrix.cxx:112
 AliITSgeomMatrix.cxx:113
 AliITSgeomMatrix.cxx:114
 AliITSgeomMatrix.cxx:115
 AliITSgeomMatrix.cxx:116
 AliITSgeomMatrix.cxx:117
 AliITSgeomMatrix.cxx:118
 AliITSgeomMatrix.cxx:119
 AliITSgeomMatrix.cxx:120
 AliITSgeomMatrix.cxx:121
 AliITSgeomMatrix.cxx:122
 AliITSgeomMatrix.cxx:123
 AliITSgeomMatrix.cxx:124
 AliITSgeomMatrix.cxx:125
 AliITSgeomMatrix.cxx:126
 AliITSgeomMatrix.cxx:127
 AliITSgeomMatrix.cxx:128
 AliITSgeomMatrix.cxx:129
 AliITSgeomMatrix.cxx:130
 AliITSgeomMatrix.cxx:131
 AliITSgeomMatrix.cxx:132
 AliITSgeomMatrix.cxx:133
 AliITSgeomMatrix.cxx:134
 AliITSgeomMatrix.cxx:135
 AliITSgeomMatrix.cxx:136
 AliITSgeomMatrix.cxx:137
 AliITSgeomMatrix.cxx:138
 AliITSgeomMatrix.cxx:139
 AliITSgeomMatrix.cxx:140
 AliITSgeomMatrix.cxx:141
 AliITSgeomMatrix.cxx:142
 AliITSgeomMatrix.cxx:143
 AliITSgeomMatrix.cxx:144
 AliITSgeomMatrix.cxx:145
 AliITSgeomMatrix.cxx:146
 AliITSgeomMatrix.cxx:147
 AliITSgeomMatrix.cxx:148
 AliITSgeomMatrix.cxx:149
 AliITSgeomMatrix.cxx:150
 AliITSgeomMatrix.cxx:151
 AliITSgeomMatrix.cxx:152
 AliITSgeomMatrix.cxx:153
 AliITSgeomMatrix.cxx:154
 AliITSgeomMatrix.cxx:155
 AliITSgeomMatrix.cxx:156
 AliITSgeomMatrix.cxx:157
 AliITSgeomMatrix.cxx:158
 AliITSgeomMatrix.cxx:159
 AliITSgeomMatrix.cxx:160
 AliITSgeomMatrix.cxx:161
 AliITSgeomMatrix.cxx:162
 AliITSgeomMatrix.cxx:163
 AliITSgeomMatrix.cxx:164
 AliITSgeomMatrix.cxx:165
 AliITSgeomMatrix.cxx:166
 AliITSgeomMatrix.cxx:167
 AliITSgeomMatrix.cxx:168
 AliITSgeomMatrix.cxx:169
 AliITSgeomMatrix.cxx:170
 AliITSgeomMatrix.cxx:171
 AliITSgeomMatrix.cxx:172
 AliITSgeomMatrix.cxx:173
 AliITSgeomMatrix.cxx:174
 AliITSgeomMatrix.cxx:175
 AliITSgeomMatrix.cxx:176
 AliITSgeomMatrix.cxx:177
 AliITSgeomMatrix.cxx:178
 AliITSgeomMatrix.cxx:179
 AliITSgeomMatrix.cxx:180
 AliITSgeomMatrix.cxx:181
 AliITSgeomMatrix.cxx:182
 AliITSgeomMatrix.cxx:183
 AliITSgeomMatrix.cxx:184
 AliITSgeomMatrix.cxx:185
 AliITSgeomMatrix.cxx:186
 AliITSgeomMatrix.cxx:187
 AliITSgeomMatrix.cxx:188
 AliITSgeomMatrix.cxx:189
 AliITSgeomMatrix.cxx:190
 AliITSgeomMatrix.cxx:191
 AliITSgeomMatrix.cxx:192
 AliITSgeomMatrix.cxx:193
 AliITSgeomMatrix.cxx:194
 AliITSgeomMatrix.cxx:195
 AliITSgeomMatrix.cxx:196
 AliITSgeomMatrix.cxx:197
 AliITSgeomMatrix.cxx:198
 AliITSgeomMatrix.cxx:199
 AliITSgeomMatrix.cxx:200
 AliITSgeomMatrix.cxx:201
 AliITSgeomMatrix.cxx:202
 AliITSgeomMatrix.cxx:203
 AliITSgeomMatrix.cxx:204
 AliITSgeomMatrix.cxx:205
 AliITSgeomMatrix.cxx:206
 AliITSgeomMatrix.cxx:207
 AliITSgeomMatrix.cxx:208
 AliITSgeomMatrix.cxx:209
 AliITSgeomMatrix.cxx:210
 AliITSgeomMatrix.cxx:211
 AliITSgeomMatrix.cxx:212
 AliITSgeomMatrix.cxx:213
 AliITSgeomMatrix.cxx:214
 AliITSgeomMatrix.cxx:215
 AliITSgeomMatrix.cxx:216
 AliITSgeomMatrix.cxx:217
 AliITSgeomMatrix.cxx:218
 AliITSgeomMatrix.cxx:219
 AliITSgeomMatrix.cxx:220
 AliITSgeomMatrix.cxx:221
 AliITSgeomMatrix.cxx:222
 AliITSgeomMatrix.cxx:223
 AliITSgeomMatrix.cxx:224
 AliITSgeomMatrix.cxx:225
 AliITSgeomMatrix.cxx:226
 AliITSgeomMatrix.cxx:227
 AliITSgeomMatrix.cxx:228
 AliITSgeomMatrix.cxx:229
 AliITSgeomMatrix.cxx:230
 AliITSgeomMatrix.cxx:231
 AliITSgeomMatrix.cxx:232
 AliITSgeomMatrix.cxx:233
 AliITSgeomMatrix.cxx:234
 AliITSgeomMatrix.cxx:235
 AliITSgeomMatrix.cxx:236
 AliITSgeomMatrix.cxx:237
 AliITSgeomMatrix.cxx:238
 AliITSgeomMatrix.cxx:239
 AliITSgeomMatrix.cxx:240
 AliITSgeomMatrix.cxx:241
 AliITSgeomMatrix.cxx:242
 AliITSgeomMatrix.cxx:243
 AliITSgeomMatrix.cxx:244
 AliITSgeomMatrix.cxx:245
 AliITSgeomMatrix.cxx:246
 AliITSgeomMatrix.cxx:247
 AliITSgeomMatrix.cxx:248
 AliITSgeomMatrix.cxx:249
 AliITSgeomMatrix.cxx:250
 AliITSgeomMatrix.cxx:251
 AliITSgeomMatrix.cxx:252
 AliITSgeomMatrix.cxx:253
 AliITSgeomMatrix.cxx:254
 AliITSgeomMatrix.cxx:255
 AliITSgeomMatrix.cxx:256
 AliITSgeomMatrix.cxx:257
 AliITSgeomMatrix.cxx:258
 AliITSgeomMatrix.cxx:259
 AliITSgeomMatrix.cxx:260
 AliITSgeomMatrix.cxx:261
 AliITSgeomMatrix.cxx:262
 AliITSgeomMatrix.cxx:263
 AliITSgeomMatrix.cxx:264
 AliITSgeomMatrix.cxx:265
 AliITSgeomMatrix.cxx:266
 AliITSgeomMatrix.cxx:267
 AliITSgeomMatrix.cxx:268
 AliITSgeomMatrix.cxx:269
 AliITSgeomMatrix.cxx:270
 AliITSgeomMatrix.cxx:271
 AliITSgeomMatrix.cxx:272
 AliITSgeomMatrix.cxx:273
 AliITSgeomMatrix.cxx:274
 AliITSgeomMatrix.cxx:275
 AliITSgeomMatrix.cxx:276
 AliITSgeomMatrix.cxx:277
 AliITSgeomMatrix.cxx:278
 AliITSgeomMatrix.cxx:279
 AliITSgeomMatrix.cxx:280
 AliITSgeomMatrix.cxx:281
 AliITSgeomMatrix.cxx:282
 AliITSgeomMatrix.cxx:283
 AliITSgeomMatrix.cxx:284
 AliITSgeomMatrix.cxx:285
 AliITSgeomMatrix.cxx:286
 AliITSgeomMatrix.cxx:287
 AliITSgeomMatrix.cxx:288
 AliITSgeomMatrix.cxx:289
 AliITSgeomMatrix.cxx:290
 AliITSgeomMatrix.cxx:291
 AliITSgeomMatrix.cxx:292
 AliITSgeomMatrix.cxx:293
 AliITSgeomMatrix.cxx:294
 AliITSgeomMatrix.cxx:295
 AliITSgeomMatrix.cxx:296
 AliITSgeomMatrix.cxx:297
 AliITSgeomMatrix.cxx:298
 AliITSgeomMatrix.cxx:299
 AliITSgeomMatrix.cxx:300
 AliITSgeomMatrix.cxx:301
 AliITSgeomMatrix.cxx:302
 AliITSgeomMatrix.cxx:303
 AliITSgeomMatrix.cxx:304
 AliITSgeomMatrix.cxx:305
 AliITSgeomMatrix.cxx:306
 AliITSgeomMatrix.cxx:307
 AliITSgeomMatrix.cxx:308
 AliITSgeomMatrix.cxx:309
 AliITSgeomMatrix.cxx:310
 AliITSgeomMatrix.cxx:311
 AliITSgeomMatrix.cxx:312
 AliITSgeomMatrix.cxx:313
 AliITSgeomMatrix.cxx:314
 AliITSgeomMatrix.cxx:315
 AliITSgeomMatrix.cxx:316
 AliITSgeomMatrix.cxx:317
 AliITSgeomMatrix.cxx:318
 AliITSgeomMatrix.cxx:319
 AliITSgeomMatrix.cxx:320
 AliITSgeomMatrix.cxx:321
 AliITSgeomMatrix.cxx:322
 AliITSgeomMatrix.cxx:323
 AliITSgeomMatrix.cxx:324
 AliITSgeomMatrix.cxx:325
 AliITSgeomMatrix.cxx:326
 AliITSgeomMatrix.cxx:327
 AliITSgeomMatrix.cxx:328
 AliITSgeomMatrix.cxx:329
 AliITSgeomMatrix.cxx:330
 AliITSgeomMatrix.cxx:331
 AliITSgeomMatrix.cxx:332
 AliITSgeomMatrix.cxx:333
 AliITSgeomMatrix.cxx:334
 AliITSgeomMatrix.cxx:335
 AliITSgeomMatrix.cxx:336
 AliITSgeomMatrix.cxx:337
 AliITSgeomMatrix.cxx:338
 AliITSgeomMatrix.cxx:339
 AliITSgeomMatrix.cxx:340
 AliITSgeomMatrix.cxx:341
 AliITSgeomMatrix.cxx:342
 AliITSgeomMatrix.cxx:343
 AliITSgeomMatrix.cxx:344
 AliITSgeomMatrix.cxx:345
 AliITSgeomMatrix.cxx:346
 AliITSgeomMatrix.cxx:347
 AliITSgeomMatrix.cxx:348
 AliITSgeomMatrix.cxx:349
 AliITSgeomMatrix.cxx:350
 AliITSgeomMatrix.cxx:351
 AliITSgeomMatrix.cxx:352
 AliITSgeomMatrix.cxx:353
 AliITSgeomMatrix.cxx:354
 AliITSgeomMatrix.cxx:355
 AliITSgeomMatrix.cxx:356
 AliITSgeomMatrix.cxx:357
 AliITSgeomMatrix.cxx:358
 AliITSgeomMatrix.cxx:359
 AliITSgeomMatrix.cxx:360
 AliITSgeomMatrix.cxx:361
 AliITSgeomMatrix.cxx:362
 AliITSgeomMatrix.cxx:363
 AliITSgeomMatrix.cxx:364
 AliITSgeomMatrix.cxx:365
 AliITSgeomMatrix.cxx:366
 AliITSgeomMatrix.cxx:367
 AliITSgeomMatrix.cxx:368
 AliITSgeomMatrix.cxx:369
 AliITSgeomMatrix.cxx:370
 AliITSgeomMatrix.cxx:371
 AliITSgeomMatrix.cxx:372
 AliITSgeomMatrix.cxx:373
 AliITSgeomMatrix.cxx:374
 AliITSgeomMatrix.cxx:375
 AliITSgeomMatrix.cxx:376
 AliITSgeomMatrix.cxx:377
 AliITSgeomMatrix.cxx:378
 AliITSgeomMatrix.cxx:379
 AliITSgeomMatrix.cxx:380
 AliITSgeomMatrix.cxx:381
 AliITSgeomMatrix.cxx:382
 AliITSgeomMatrix.cxx:383
 AliITSgeomMatrix.cxx:384
 AliITSgeomMatrix.cxx:385
 AliITSgeomMatrix.cxx:386
 AliITSgeomMatrix.cxx:387
 AliITSgeomMatrix.cxx:388
 AliITSgeomMatrix.cxx:389
 AliITSgeomMatrix.cxx:390
 AliITSgeomMatrix.cxx:391
 AliITSgeomMatrix.cxx:392
 AliITSgeomMatrix.cxx:393
 AliITSgeomMatrix.cxx:394
 AliITSgeomMatrix.cxx:395
 AliITSgeomMatrix.cxx:396
 AliITSgeomMatrix.cxx:397
 AliITSgeomMatrix.cxx:398
 AliITSgeomMatrix.cxx:399
 AliITSgeomMatrix.cxx:400
 AliITSgeomMatrix.cxx:401
 AliITSgeomMatrix.cxx:402
 AliITSgeomMatrix.cxx:403
 AliITSgeomMatrix.cxx:404
 AliITSgeomMatrix.cxx:405
 AliITSgeomMatrix.cxx:406
 AliITSgeomMatrix.cxx:407
 AliITSgeomMatrix.cxx:408
 AliITSgeomMatrix.cxx:409
 AliITSgeomMatrix.cxx:410
 AliITSgeomMatrix.cxx:411
 AliITSgeomMatrix.cxx:412
 AliITSgeomMatrix.cxx:413
 AliITSgeomMatrix.cxx:414
 AliITSgeomMatrix.cxx:415
 AliITSgeomMatrix.cxx:416
 AliITSgeomMatrix.cxx:417
 AliITSgeomMatrix.cxx:418
 AliITSgeomMatrix.cxx:419
 AliITSgeomMatrix.cxx:420
 AliITSgeomMatrix.cxx:421
 AliITSgeomMatrix.cxx:422
 AliITSgeomMatrix.cxx:423
 AliITSgeomMatrix.cxx:424
 AliITSgeomMatrix.cxx:425
 AliITSgeomMatrix.cxx:426
 AliITSgeomMatrix.cxx:427
 AliITSgeomMatrix.cxx:428
 AliITSgeomMatrix.cxx:429
 AliITSgeomMatrix.cxx:430
 AliITSgeomMatrix.cxx:431
 AliITSgeomMatrix.cxx:432
 AliITSgeomMatrix.cxx:433
 AliITSgeomMatrix.cxx:434
 AliITSgeomMatrix.cxx:435
 AliITSgeomMatrix.cxx:436
 AliITSgeomMatrix.cxx:437
 AliITSgeomMatrix.cxx:438
 AliITSgeomMatrix.cxx:439
 AliITSgeomMatrix.cxx:440
 AliITSgeomMatrix.cxx:441
 AliITSgeomMatrix.cxx:442
 AliITSgeomMatrix.cxx:443
 AliITSgeomMatrix.cxx:444
 AliITSgeomMatrix.cxx:445
 AliITSgeomMatrix.cxx:446
 AliITSgeomMatrix.cxx:447
 AliITSgeomMatrix.cxx:448
 AliITSgeomMatrix.cxx:449
 AliITSgeomMatrix.cxx:450
 AliITSgeomMatrix.cxx:451
 AliITSgeomMatrix.cxx:452
 AliITSgeomMatrix.cxx:453
 AliITSgeomMatrix.cxx:454
 AliITSgeomMatrix.cxx:455
 AliITSgeomMatrix.cxx:456
 AliITSgeomMatrix.cxx:457
 AliITSgeomMatrix.cxx:458
 AliITSgeomMatrix.cxx:459
 AliITSgeomMatrix.cxx:460
 AliITSgeomMatrix.cxx:461
 AliITSgeomMatrix.cxx:462
 AliITSgeomMatrix.cxx:463
 AliITSgeomMatrix.cxx:464
 AliITSgeomMatrix.cxx:465
 AliITSgeomMatrix.cxx:466
 AliITSgeomMatrix.cxx:467
 AliITSgeomMatrix.cxx:468
 AliITSgeomMatrix.cxx:469
 AliITSgeomMatrix.cxx:470
 AliITSgeomMatrix.cxx:471
 AliITSgeomMatrix.cxx:472
 AliITSgeomMatrix.cxx:473
 AliITSgeomMatrix.cxx:474
 AliITSgeomMatrix.cxx:475
 AliITSgeomMatrix.cxx:476
 AliITSgeomMatrix.cxx:477
 AliITSgeomMatrix.cxx:478
 AliITSgeomMatrix.cxx:479
 AliITSgeomMatrix.cxx:480
 AliITSgeomMatrix.cxx:481
 AliITSgeomMatrix.cxx:482
 AliITSgeomMatrix.cxx:483
 AliITSgeomMatrix.cxx:484
 AliITSgeomMatrix.cxx:485
 AliITSgeomMatrix.cxx:486
 AliITSgeomMatrix.cxx:487
 AliITSgeomMatrix.cxx:488
 AliITSgeomMatrix.cxx:489
 AliITSgeomMatrix.cxx:490
 AliITSgeomMatrix.cxx:491
 AliITSgeomMatrix.cxx:492
 AliITSgeomMatrix.cxx:493
 AliITSgeomMatrix.cxx:494
 AliITSgeomMatrix.cxx:495
 AliITSgeomMatrix.cxx:496
 AliITSgeomMatrix.cxx:497
 AliITSgeomMatrix.cxx:498
 AliITSgeomMatrix.cxx:499
 AliITSgeomMatrix.cxx:500
 AliITSgeomMatrix.cxx:501
 AliITSgeomMatrix.cxx:502
 AliITSgeomMatrix.cxx:503
 AliITSgeomMatrix.cxx:504
 AliITSgeomMatrix.cxx:505
 AliITSgeomMatrix.cxx:506
 AliITSgeomMatrix.cxx:507
 AliITSgeomMatrix.cxx:508
 AliITSgeomMatrix.cxx:509
 AliITSgeomMatrix.cxx:510
 AliITSgeomMatrix.cxx:511
 AliITSgeomMatrix.cxx:512
 AliITSgeomMatrix.cxx:513
 AliITSgeomMatrix.cxx:514
 AliITSgeomMatrix.cxx:515
 AliITSgeomMatrix.cxx:516
 AliITSgeomMatrix.cxx:517
 AliITSgeomMatrix.cxx:518
 AliITSgeomMatrix.cxx:519
 AliITSgeomMatrix.cxx:520
 AliITSgeomMatrix.cxx:521
 AliITSgeomMatrix.cxx:522
 AliITSgeomMatrix.cxx:523
 AliITSgeomMatrix.cxx:524
 AliITSgeomMatrix.cxx:525
 AliITSgeomMatrix.cxx:526
 AliITSgeomMatrix.cxx:527
 AliITSgeomMatrix.cxx:528
 AliITSgeomMatrix.cxx:529
 AliITSgeomMatrix.cxx:530
 AliITSgeomMatrix.cxx:531
 AliITSgeomMatrix.cxx:532
 AliITSgeomMatrix.cxx:533
 AliITSgeomMatrix.cxx:534
 AliITSgeomMatrix.cxx:535
 AliITSgeomMatrix.cxx:536
 AliITSgeomMatrix.cxx:537
 AliITSgeomMatrix.cxx:538
 AliITSgeomMatrix.cxx:539
 AliITSgeomMatrix.cxx:540
 AliITSgeomMatrix.cxx:541
 AliITSgeomMatrix.cxx:542
 AliITSgeomMatrix.cxx:543
 AliITSgeomMatrix.cxx:544
 AliITSgeomMatrix.cxx:545
 AliITSgeomMatrix.cxx:546
 AliITSgeomMatrix.cxx:547
 AliITSgeomMatrix.cxx:548
 AliITSgeomMatrix.cxx:549
 AliITSgeomMatrix.cxx:550
 AliITSgeomMatrix.cxx:551
 AliITSgeomMatrix.cxx:552
 AliITSgeomMatrix.cxx:553
 AliITSgeomMatrix.cxx:554
 AliITSgeomMatrix.cxx:555
 AliITSgeomMatrix.cxx:556
 AliITSgeomMatrix.cxx:557
 AliITSgeomMatrix.cxx:558
 AliITSgeomMatrix.cxx:559
 AliITSgeomMatrix.cxx:560
 AliITSgeomMatrix.cxx:561
 AliITSgeomMatrix.cxx:562
 AliITSgeomMatrix.cxx:563
 AliITSgeomMatrix.cxx:564
 AliITSgeomMatrix.cxx:565
 AliITSgeomMatrix.cxx:566
 AliITSgeomMatrix.cxx:567
 AliITSgeomMatrix.cxx:568
 AliITSgeomMatrix.cxx:569
 AliITSgeomMatrix.cxx:570
 AliITSgeomMatrix.cxx:571
 AliITSgeomMatrix.cxx:572
 AliITSgeomMatrix.cxx:573
 AliITSgeomMatrix.cxx:574
 AliITSgeomMatrix.cxx:575
 AliITSgeomMatrix.cxx:576
 AliITSgeomMatrix.cxx:577
 AliITSgeomMatrix.cxx:578
 AliITSgeomMatrix.cxx:579
 AliITSgeomMatrix.cxx:580
 AliITSgeomMatrix.cxx:581
 AliITSgeomMatrix.cxx:582
 AliITSgeomMatrix.cxx:583
 AliITSgeomMatrix.cxx:584
 AliITSgeomMatrix.cxx:585
 AliITSgeomMatrix.cxx:586
 AliITSgeomMatrix.cxx:587
 AliITSgeomMatrix.cxx:588
 AliITSgeomMatrix.cxx:589
 AliITSgeomMatrix.cxx:590
 AliITSgeomMatrix.cxx:591
 AliITSgeomMatrix.cxx:592
 AliITSgeomMatrix.cxx:593
 AliITSgeomMatrix.cxx:594
 AliITSgeomMatrix.cxx:595
 AliITSgeomMatrix.cxx:596
 AliITSgeomMatrix.cxx:597
 AliITSgeomMatrix.cxx:598
 AliITSgeomMatrix.cxx:599
 AliITSgeomMatrix.cxx:600
 AliITSgeomMatrix.cxx:601
 AliITSgeomMatrix.cxx:602
 AliITSgeomMatrix.cxx:603
 AliITSgeomMatrix.cxx:604
 AliITSgeomMatrix.cxx:605
 AliITSgeomMatrix.cxx:606
 AliITSgeomMatrix.cxx:607
 AliITSgeomMatrix.cxx:608
 AliITSgeomMatrix.cxx:609
 AliITSgeomMatrix.cxx:610
 AliITSgeomMatrix.cxx:611
 AliITSgeomMatrix.cxx:612
 AliITSgeomMatrix.cxx:613
 AliITSgeomMatrix.cxx:614
 AliITSgeomMatrix.cxx:615
 AliITSgeomMatrix.cxx:616
 AliITSgeomMatrix.cxx:617
 AliITSgeomMatrix.cxx:618
 AliITSgeomMatrix.cxx:619
 AliITSgeomMatrix.cxx:620
 AliITSgeomMatrix.cxx:621
 AliITSgeomMatrix.cxx:622
 AliITSgeomMatrix.cxx:623
 AliITSgeomMatrix.cxx:624
 AliITSgeomMatrix.cxx:625
 AliITSgeomMatrix.cxx:626
 AliITSgeomMatrix.cxx:627
 AliITSgeomMatrix.cxx:628
 AliITSgeomMatrix.cxx:629
 AliITSgeomMatrix.cxx:630
 AliITSgeomMatrix.cxx:631
 AliITSgeomMatrix.cxx:632
 AliITSgeomMatrix.cxx:633
 AliITSgeomMatrix.cxx:634
 AliITSgeomMatrix.cxx:635
 AliITSgeomMatrix.cxx:636
 AliITSgeomMatrix.cxx:637
 AliITSgeomMatrix.cxx:638
 AliITSgeomMatrix.cxx:639
 AliITSgeomMatrix.cxx:640
 AliITSgeomMatrix.cxx:641
 AliITSgeomMatrix.cxx:642
 AliITSgeomMatrix.cxx:643
 AliITSgeomMatrix.cxx:644
 AliITSgeomMatrix.cxx:645
 AliITSgeomMatrix.cxx:646
 AliITSgeomMatrix.cxx:647
 AliITSgeomMatrix.cxx:648
 AliITSgeomMatrix.cxx:649
 AliITSgeomMatrix.cxx:650
 AliITSgeomMatrix.cxx:651
 AliITSgeomMatrix.cxx:652
 AliITSgeomMatrix.cxx:653
 AliITSgeomMatrix.cxx:654
 AliITSgeomMatrix.cxx:655
 AliITSgeomMatrix.cxx:656
 AliITSgeomMatrix.cxx:657
 AliITSgeomMatrix.cxx:658
 AliITSgeomMatrix.cxx:659
 AliITSgeomMatrix.cxx:660
 AliITSgeomMatrix.cxx:661
 AliITSgeomMatrix.cxx:662
 AliITSgeomMatrix.cxx:663
 AliITSgeomMatrix.cxx:664
 AliITSgeomMatrix.cxx:665
 AliITSgeomMatrix.cxx:666
 AliITSgeomMatrix.cxx:667
 AliITSgeomMatrix.cxx:668
 AliITSgeomMatrix.cxx:669
 AliITSgeomMatrix.cxx:670
 AliITSgeomMatrix.cxx:671
 AliITSgeomMatrix.cxx:672
 AliITSgeomMatrix.cxx:673
 AliITSgeomMatrix.cxx:674
 AliITSgeomMatrix.cxx:675
 AliITSgeomMatrix.cxx:676
 AliITSgeomMatrix.cxx:677
 AliITSgeomMatrix.cxx:678
 AliITSgeomMatrix.cxx:679
 AliITSgeomMatrix.cxx:680
 AliITSgeomMatrix.cxx:681
 AliITSgeomMatrix.cxx:682
 AliITSgeomMatrix.cxx:683
 AliITSgeomMatrix.cxx:684
 AliITSgeomMatrix.cxx:685
 AliITSgeomMatrix.cxx:686
 AliITSgeomMatrix.cxx:687
 AliITSgeomMatrix.cxx:688
 AliITSgeomMatrix.cxx:689
 AliITSgeomMatrix.cxx:690
 AliITSgeomMatrix.cxx:691
 AliITSgeomMatrix.cxx:692
 AliITSgeomMatrix.cxx:693
 AliITSgeomMatrix.cxx:694
 AliITSgeomMatrix.cxx:695
 AliITSgeomMatrix.cxx:696
 AliITSgeomMatrix.cxx:697
 AliITSgeomMatrix.cxx:698
 AliITSgeomMatrix.cxx:699
 AliITSgeomMatrix.cxx:700
 AliITSgeomMatrix.cxx:701
 AliITSgeomMatrix.cxx:702
 AliITSgeomMatrix.cxx:703
 AliITSgeomMatrix.cxx:704
 AliITSgeomMatrix.cxx:705
 AliITSgeomMatrix.cxx:706
 AliITSgeomMatrix.cxx:707
 AliITSgeomMatrix.cxx:708
 AliITSgeomMatrix.cxx:709
 AliITSgeomMatrix.cxx:710
 AliITSgeomMatrix.cxx:711
 AliITSgeomMatrix.cxx:712
 AliITSgeomMatrix.cxx:713
 AliITSgeomMatrix.cxx:714
 AliITSgeomMatrix.cxx:715
 AliITSgeomMatrix.cxx:716
 AliITSgeomMatrix.cxx:717
 AliITSgeomMatrix.cxx:718
 AliITSgeomMatrix.cxx:719
 AliITSgeomMatrix.cxx:720
 AliITSgeomMatrix.cxx:721
 AliITSgeomMatrix.cxx:722
 AliITSgeomMatrix.cxx:723
 AliITSgeomMatrix.cxx:724
 AliITSgeomMatrix.cxx:725
 AliITSgeomMatrix.cxx:726
 AliITSgeomMatrix.cxx:727
 AliITSgeomMatrix.cxx:728
 AliITSgeomMatrix.cxx:729
 AliITSgeomMatrix.cxx:730
 AliITSgeomMatrix.cxx:731
 AliITSgeomMatrix.cxx:732
 AliITSgeomMatrix.cxx:733
 AliITSgeomMatrix.cxx:734
 AliITSgeomMatrix.cxx:735
 AliITSgeomMatrix.cxx:736
 AliITSgeomMatrix.cxx:737
 AliITSgeomMatrix.cxx:738
 AliITSgeomMatrix.cxx:739
 AliITSgeomMatrix.cxx:740
 AliITSgeomMatrix.cxx:741
 AliITSgeomMatrix.cxx:742
 AliITSgeomMatrix.cxx:743
 AliITSgeomMatrix.cxx:744
 AliITSgeomMatrix.cxx:745
 AliITSgeomMatrix.cxx:746
 AliITSgeomMatrix.cxx:747
 AliITSgeomMatrix.cxx:748
 AliITSgeomMatrix.cxx:749
 AliITSgeomMatrix.cxx:750
 AliITSgeomMatrix.cxx:751
 AliITSgeomMatrix.cxx:752
 AliITSgeomMatrix.cxx:753
 AliITSgeomMatrix.cxx:754
 AliITSgeomMatrix.cxx:755
 AliITSgeomMatrix.cxx:756
 AliITSgeomMatrix.cxx:757
 AliITSgeomMatrix.cxx:758
 AliITSgeomMatrix.cxx:759
 AliITSgeomMatrix.cxx:760
 AliITSgeomMatrix.cxx:761
 AliITSgeomMatrix.cxx:762
 AliITSgeomMatrix.cxx:763
 AliITSgeomMatrix.cxx:764
 AliITSgeomMatrix.cxx:765
 AliITSgeomMatrix.cxx:766
 AliITSgeomMatrix.cxx:767
 AliITSgeomMatrix.cxx:768
 AliITSgeomMatrix.cxx:769
 AliITSgeomMatrix.cxx:770
 AliITSgeomMatrix.cxx:771
 AliITSgeomMatrix.cxx:772
 AliITSgeomMatrix.cxx:773
 AliITSgeomMatrix.cxx:774
 AliITSgeomMatrix.cxx:775
 AliITSgeomMatrix.cxx:776
 AliITSgeomMatrix.cxx:777
 AliITSgeomMatrix.cxx:778
 AliITSgeomMatrix.cxx:779
 AliITSgeomMatrix.cxx:780
 AliITSgeomMatrix.cxx:781
 AliITSgeomMatrix.cxx:782
 AliITSgeomMatrix.cxx:783
 AliITSgeomMatrix.cxx:784
 AliITSgeomMatrix.cxx:785
 AliITSgeomMatrix.cxx:786
 AliITSgeomMatrix.cxx:787
 AliITSgeomMatrix.cxx:788
 AliITSgeomMatrix.cxx:789
 AliITSgeomMatrix.cxx:790
 AliITSgeomMatrix.cxx:791
 AliITSgeomMatrix.cxx:792
 AliITSgeomMatrix.cxx:793
 AliITSgeomMatrix.cxx:794
 AliITSgeomMatrix.cxx:795
 AliITSgeomMatrix.cxx:796
 AliITSgeomMatrix.cxx:797
 AliITSgeomMatrix.cxx:798
 AliITSgeomMatrix.cxx:799
 AliITSgeomMatrix.cxx:800
 AliITSgeomMatrix.cxx:801
 AliITSgeomMatrix.cxx:802
 AliITSgeomMatrix.cxx:803
 AliITSgeomMatrix.cxx:804
 AliITSgeomMatrix.cxx:805
 AliITSgeomMatrix.cxx:806
 AliITSgeomMatrix.cxx:807
 AliITSgeomMatrix.cxx:808
 AliITSgeomMatrix.cxx:809
 AliITSgeomMatrix.cxx:810
 AliITSgeomMatrix.cxx:811
 AliITSgeomMatrix.cxx:812
 AliITSgeomMatrix.cxx:813
 AliITSgeomMatrix.cxx:814
 AliITSgeomMatrix.cxx:815
 AliITSgeomMatrix.cxx:816
 AliITSgeomMatrix.cxx:817
 AliITSgeomMatrix.cxx:818
 AliITSgeomMatrix.cxx:819
 AliITSgeomMatrix.cxx:820
 AliITSgeomMatrix.cxx:821
 AliITSgeomMatrix.cxx:822
 AliITSgeomMatrix.cxx:823
 AliITSgeomMatrix.cxx:824
 AliITSgeomMatrix.cxx:825
 AliITSgeomMatrix.cxx:826
 AliITSgeomMatrix.cxx:827
 AliITSgeomMatrix.cxx:828
 AliITSgeomMatrix.cxx:829
 AliITSgeomMatrix.cxx:830
 AliITSgeomMatrix.cxx:831
 AliITSgeomMatrix.cxx:832
 AliITSgeomMatrix.cxx:833
 AliITSgeomMatrix.cxx:834
 AliITSgeomMatrix.cxx:835
 AliITSgeomMatrix.cxx:836
 AliITSgeomMatrix.cxx:837
 AliITSgeomMatrix.cxx:838
 AliITSgeomMatrix.cxx:839
 AliITSgeomMatrix.cxx:840
 AliITSgeomMatrix.cxx:841
 AliITSgeomMatrix.cxx:842
 AliITSgeomMatrix.cxx:843
 AliITSgeomMatrix.cxx:844
 AliITSgeomMatrix.cxx:845
 AliITSgeomMatrix.cxx:846
 AliITSgeomMatrix.cxx:847
 AliITSgeomMatrix.cxx:848
 AliITSgeomMatrix.cxx:849
 AliITSgeomMatrix.cxx:850
 AliITSgeomMatrix.cxx:851
 AliITSgeomMatrix.cxx:852
 AliITSgeomMatrix.cxx:853
 AliITSgeomMatrix.cxx:854
 AliITSgeomMatrix.cxx:855
 AliITSgeomMatrix.cxx:856
 AliITSgeomMatrix.cxx:857
 AliITSgeomMatrix.cxx:858
 AliITSgeomMatrix.cxx:859
 AliITSgeomMatrix.cxx:860
 AliITSgeomMatrix.cxx:861
 AliITSgeomMatrix.cxx:862
 AliITSgeomMatrix.cxx:863
 AliITSgeomMatrix.cxx:864
 AliITSgeomMatrix.cxx:865
 AliITSgeomMatrix.cxx:866
 AliITSgeomMatrix.cxx:867
 AliITSgeomMatrix.cxx:868
 AliITSgeomMatrix.cxx:869
 AliITSgeomMatrix.cxx:870
 AliITSgeomMatrix.cxx:871
 AliITSgeomMatrix.cxx:872
 AliITSgeomMatrix.cxx:873
 AliITSgeomMatrix.cxx:874
 AliITSgeomMatrix.cxx:875
 AliITSgeomMatrix.cxx:876
 AliITSgeomMatrix.cxx:877
 AliITSgeomMatrix.cxx:878
 AliITSgeomMatrix.cxx:879
 AliITSgeomMatrix.cxx:880
 AliITSgeomMatrix.cxx:881
 AliITSgeomMatrix.cxx:882
 AliITSgeomMatrix.cxx:883
 AliITSgeomMatrix.cxx:884
 AliITSgeomMatrix.cxx:885
 AliITSgeomMatrix.cxx:886
 AliITSgeomMatrix.cxx:887
 AliITSgeomMatrix.cxx:888
 AliITSgeomMatrix.cxx:889
 AliITSgeomMatrix.cxx:890
 AliITSgeomMatrix.cxx:891
 AliITSgeomMatrix.cxx:892
 AliITSgeomMatrix.cxx:893
 AliITSgeomMatrix.cxx:894
 AliITSgeomMatrix.cxx:895
 AliITSgeomMatrix.cxx:896
 AliITSgeomMatrix.cxx:897
 AliITSgeomMatrix.cxx:898
 AliITSgeomMatrix.cxx:899
 AliITSgeomMatrix.cxx:900
 AliITSgeomMatrix.cxx:901
 AliITSgeomMatrix.cxx:902
 AliITSgeomMatrix.cxx:903
 AliITSgeomMatrix.cxx:904
 AliITSgeomMatrix.cxx:905
 AliITSgeomMatrix.cxx:906
 AliITSgeomMatrix.cxx:907
 AliITSgeomMatrix.cxx:908
 AliITSgeomMatrix.cxx:909
 AliITSgeomMatrix.cxx:910
 AliITSgeomMatrix.cxx:911
 AliITSgeomMatrix.cxx:912
 AliITSgeomMatrix.cxx:913
 AliITSgeomMatrix.cxx:914
 AliITSgeomMatrix.cxx:915
 AliITSgeomMatrix.cxx:916
 AliITSgeomMatrix.cxx:917
 AliITSgeomMatrix.cxx:918
 AliITSgeomMatrix.cxx:919
 AliITSgeomMatrix.cxx:920
 AliITSgeomMatrix.cxx:921
 AliITSgeomMatrix.cxx:922
 AliITSgeomMatrix.cxx:923
 AliITSgeomMatrix.cxx:924
 AliITSgeomMatrix.cxx:925
 AliITSgeomMatrix.cxx:926
 AliITSgeomMatrix.cxx:927
 AliITSgeomMatrix.cxx:928
 AliITSgeomMatrix.cxx:929
 AliITSgeomMatrix.cxx:930
 AliITSgeomMatrix.cxx:931
 AliITSgeomMatrix.cxx:932
 AliITSgeomMatrix.cxx:933
 AliITSgeomMatrix.cxx:934
 AliITSgeomMatrix.cxx:935
 AliITSgeomMatrix.cxx:936
 AliITSgeomMatrix.cxx:937
 AliITSgeomMatrix.cxx:938
 AliITSgeomMatrix.cxx:939
 AliITSgeomMatrix.cxx:940
 AliITSgeomMatrix.cxx:941
 AliITSgeomMatrix.cxx:942
 AliITSgeomMatrix.cxx:943
 AliITSgeomMatrix.cxx:944
 AliITSgeomMatrix.cxx:945
 AliITSgeomMatrix.cxx:946
 AliITSgeomMatrix.cxx:947
 AliITSgeomMatrix.cxx:948
 AliITSgeomMatrix.cxx:949
 AliITSgeomMatrix.cxx:950
 AliITSgeomMatrix.cxx:951
 AliITSgeomMatrix.cxx:952
 AliITSgeomMatrix.cxx:953
 AliITSgeomMatrix.cxx:954
 AliITSgeomMatrix.cxx:955
 AliITSgeomMatrix.cxx:956
 AliITSgeomMatrix.cxx:957
 AliITSgeomMatrix.cxx:958
 AliITSgeomMatrix.cxx:959
 AliITSgeomMatrix.cxx:960
 AliITSgeomMatrix.cxx:961
 AliITSgeomMatrix.cxx:962
 AliITSgeomMatrix.cxx:963
 AliITSgeomMatrix.cxx:964
 AliITSgeomMatrix.cxx:965
 AliITSgeomMatrix.cxx:966
 AliITSgeomMatrix.cxx:967
 AliITSgeomMatrix.cxx:968
 AliITSgeomMatrix.cxx:969
 AliITSgeomMatrix.cxx:970
 AliITSgeomMatrix.cxx:971
 AliITSgeomMatrix.cxx:972
 AliITSgeomMatrix.cxx:973
 AliITSgeomMatrix.cxx:974
 AliITSgeomMatrix.cxx:975
 AliITSgeomMatrix.cxx:976
 AliITSgeomMatrix.cxx:977
 AliITSgeomMatrix.cxx:978
 AliITSgeomMatrix.cxx:979
 AliITSgeomMatrix.cxx:980
 AliITSgeomMatrix.cxx:981
 AliITSgeomMatrix.cxx:982
 AliITSgeomMatrix.cxx:983
 AliITSgeomMatrix.cxx:984
 AliITSgeomMatrix.cxx:985
 AliITSgeomMatrix.cxx:986
 AliITSgeomMatrix.cxx:987
 AliITSgeomMatrix.cxx:988
 AliITSgeomMatrix.cxx:989
 AliITSgeomMatrix.cxx:990
 AliITSgeomMatrix.cxx:991
 AliITSgeomMatrix.cxx:992
 AliITSgeomMatrix.cxx:993
 AliITSgeomMatrix.cxx:994
 AliITSgeomMatrix.cxx:995
 AliITSgeomMatrix.cxx:996
 AliITSgeomMatrix.cxx:997
 AliITSgeomMatrix.cxx:998
 AliITSgeomMatrix.cxx:999
 AliITSgeomMatrix.cxx:1000
 AliITSgeomMatrix.cxx:1001
 AliITSgeomMatrix.cxx:1002
 AliITSgeomMatrix.cxx:1003
 AliITSgeomMatrix.cxx:1004
 AliITSgeomMatrix.cxx:1005
 AliITSgeomMatrix.cxx:1006
 AliITSgeomMatrix.cxx:1007
 AliITSgeomMatrix.cxx:1008
 AliITSgeomMatrix.cxx:1009
 AliITSgeomMatrix.cxx:1010
 AliITSgeomMatrix.cxx:1011
 AliITSgeomMatrix.cxx:1012
 AliITSgeomMatrix.cxx:1013
 AliITSgeomMatrix.cxx:1014
 AliITSgeomMatrix.cxx:1015
 AliITSgeomMatrix.cxx:1016
 AliITSgeomMatrix.cxx:1017
 AliITSgeomMatrix.cxx:1018
 AliITSgeomMatrix.cxx:1019
 AliITSgeomMatrix.cxx:1020
 AliITSgeomMatrix.cxx:1021
 AliITSgeomMatrix.cxx:1022
 AliITSgeomMatrix.cxx:1023
 AliITSgeomMatrix.cxx:1024
 AliITSgeomMatrix.cxx:1025
 AliITSgeomMatrix.cxx:1026
 AliITSgeomMatrix.cxx:1027
 AliITSgeomMatrix.cxx:1028
 AliITSgeomMatrix.cxx:1029
 AliITSgeomMatrix.cxx:1030
 AliITSgeomMatrix.cxx:1031
 AliITSgeomMatrix.cxx:1032
 AliITSgeomMatrix.cxx:1033
 AliITSgeomMatrix.cxx:1034
 AliITSgeomMatrix.cxx:1035
 AliITSgeomMatrix.cxx:1036
 AliITSgeomMatrix.cxx:1037
 AliITSgeomMatrix.cxx:1038
 AliITSgeomMatrix.cxx:1039
 AliITSgeomMatrix.cxx:1040
 AliITSgeomMatrix.cxx:1041
 AliITSgeomMatrix.cxx:1042
 AliITSgeomMatrix.cxx:1043
 AliITSgeomMatrix.cxx:1044
 AliITSgeomMatrix.cxx:1045
 AliITSgeomMatrix.cxx:1046
 AliITSgeomMatrix.cxx:1047
 AliITSgeomMatrix.cxx:1048
 AliITSgeomMatrix.cxx:1049
 AliITSgeomMatrix.cxx:1050
 AliITSgeomMatrix.cxx:1051
 AliITSgeomMatrix.cxx:1052
 AliITSgeomMatrix.cxx:1053
 AliITSgeomMatrix.cxx:1054
 AliITSgeomMatrix.cxx:1055
 AliITSgeomMatrix.cxx:1056
 AliITSgeomMatrix.cxx:1057
 AliITSgeomMatrix.cxx:1058
 AliITSgeomMatrix.cxx:1059
 AliITSgeomMatrix.cxx:1060
 AliITSgeomMatrix.cxx:1061
 AliITSgeomMatrix.cxx:1062
 AliITSgeomMatrix.cxx:1063
 AliITSgeomMatrix.cxx:1064
 AliITSgeomMatrix.cxx:1065
 AliITSgeomMatrix.cxx:1066
 AliITSgeomMatrix.cxx:1067
 AliITSgeomMatrix.cxx:1068
 AliITSgeomMatrix.cxx:1069
 AliITSgeomMatrix.cxx:1070
 AliITSgeomMatrix.cxx:1071
 AliITSgeomMatrix.cxx:1072
 AliITSgeomMatrix.cxx:1073
 AliITSgeomMatrix.cxx:1074
 AliITSgeomMatrix.cxx:1075
 AliITSgeomMatrix.cxx:1076
 AliITSgeomMatrix.cxx:1077
 AliITSgeomMatrix.cxx:1078
 AliITSgeomMatrix.cxx:1079
 AliITSgeomMatrix.cxx:1080
 AliITSgeomMatrix.cxx:1081
 AliITSgeomMatrix.cxx:1082
 AliITSgeomMatrix.cxx:1083
 AliITSgeomMatrix.cxx:1084
 AliITSgeomMatrix.cxx:1085
 AliITSgeomMatrix.cxx:1086
 AliITSgeomMatrix.cxx:1087
 AliITSgeomMatrix.cxx:1088
 AliITSgeomMatrix.cxx:1089
 AliITSgeomMatrix.cxx:1090
 AliITSgeomMatrix.cxx:1091
 AliITSgeomMatrix.cxx:1092
 AliITSgeomMatrix.cxx:1093
 AliITSgeomMatrix.cxx:1094
 AliITSgeomMatrix.cxx:1095
 AliITSgeomMatrix.cxx:1096
 AliITSgeomMatrix.cxx:1097
 AliITSgeomMatrix.cxx:1098
 AliITSgeomMatrix.cxx:1099
 AliITSgeomMatrix.cxx:1100
 AliITSgeomMatrix.cxx:1101
 AliITSgeomMatrix.cxx:1102
 AliITSgeomMatrix.cxx:1103
 AliITSgeomMatrix.cxx:1104
 AliITSgeomMatrix.cxx:1105
 AliITSgeomMatrix.cxx:1106
 AliITSgeomMatrix.cxx:1107
 AliITSgeomMatrix.cxx:1108
 AliITSgeomMatrix.cxx:1109
 AliITSgeomMatrix.cxx:1110
 AliITSgeomMatrix.cxx:1111
 AliITSgeomMatrix.cxx:1112
 AliITSgeomMatrix.cxx:1113
 AliITSgeomMatrix.cxx:1114
 AliITSgeomMatrix.cxx:1115
 AliITSgeomMatrix.cxx:1116
 AliITSgeomMatrix.cxx:1117
 AliITSgeomMatrix.cxx:1118
 AliITSgeomMatrix.cxx:1119
 AliITSgeomMatrix.cxx:1120
 AliITSgeomMatrix.cxx:1121
 AliITSgeomMatrix.cxx:1122
 AliITSgeomMatrix.cxx:1123
 AliITSgeomMatrix.cxx:1124
 AliITSgeomMatrix.cxx:1125
 AliITSgeomMatrix.cxx:1126
 AliITSgeomMatrix.cxx:1127
 AliITSgeomMatrix.cxx:1128
 AliITSgeomMatrix.cxx:1129
 AliITSgeomMatrix.cxx:1130
 AliITSgeomMatrix.cxx:1131
 AliITSgeomMatrix.cxx:1132
 AliITSgeomMatrix.cxx:1133
 AliITSgeomMatrix.cxx:1134
 AliITSgeomMatrix.cxx:1135
 AliITSgeomMatrix.cxx:1136
 AliITSgeomMatrix.cxx:1137
 AliITSgeomMatrix.cxx:1138
 AliITSgeomMatrix.cxx:1139
 AliITSgeomMatrix.cxx:1140
 AliITSgeomMatrix.cxx:1141
 AliITSgeomMatrix.cxx:1142
 AliITSgeomMatrix.cxx:1143
 AliITSgeomMatrix.cxx:1144
 AliITSgeomMatrix.cxx:1145
 AliITSgeomMatrix.cxx:1146
 AliITSgeomMatrix.cxx:1147
 AliITSgeomMatrix.cxx:1148
 AliITSgeomMatrix.cxx:1149
 AliITSgeomMatrix.cxx:1150
 AliITSgeomMatrix.cxx:1151
 AliITSgeomMatrix.cxx:1152
 AliITSgeomMatrix.cxx:1153
 AliITSgeomMatrix.cxx:1154
 AliITSgeomMatrix.cxx:1155
 AliITSgeomMatrix.cxx:1156
 AliITSgeomMatrix.cxx:1157
 AliITSgeomMatrix.cxx:1158
 AliITSgeomMatrix.cxx:1159
 AliITSgeomMatrix.cxx:1160
 AliITSgeomMatrix.cxx:1161
 AliITSgeomMatrix.cxx:1162
 AliITSgeomMatrix.cxx:1163
 AliITSgeomMatrix.cxx:1164
 AliITSgeomMatrix.cxx:1165
 AliITSgeomMatrix.cxx:1166
 AliITSgeomMatrix.cxx:1167
 AliITSgeomMatrix.cxx:1168
 AliITSgeomMatrix.cxx:1169
 AliITSgeomMatrix.cxx:1170
 AliITSgeomMatrix.cxx:1171
 AliITSgeomMatrix.cxx:1172
 AliITSgeomMatrix.cxx:1173
 AliITSgeomMatrix.cxx:1174
 AliITSgeomMatrix.cxx:1175
 AliITSgeomMatrix.cxx:1176
 AliITSgeomMatrix.cxx:1177
 AliITSgeomMatrix.cxx:1178
 AliITSgeomMatrix.cxx:1179
 AliITSgeomMatrix.cxx:1180
 AliITSgeomMatrix.cxx:1181
 AliITSgeomMatrix.cxx:1182
 AliITSgeomMatrix.cxx:1183
 AliITSgeomMatrix.cxx:1184
 AliITSgeomMatrix.cxx:1185
 AliITSgeomMatrix.cxx:1186
 AliITSgeomMatrix.cxx:1187
 AliITSgeomMatrix.cxx:1188
 AliITSgeomMatrix.cxx:1189
 AliITSgeomMatrix.cxx:1190
 AliITSgeomMatrix.cxx:1191
 AliITSgeomMatrix.cxx:1192
 AliITSgeomMatrix.cxx:1193
 AliITSgeomMatrix.cxx:1194
 AliITSgeomMatrix.cxx:1195
 AliITSgeomMatrix.cxx:1196
 AliITSgeomMatrix.cxx:1197
 AliITSgeomMatrix.cxx:1198
 AliITSgeomMatrix.cxx:1199
 AliITSgeomMatrix.cxx:1200
 AliITSgeomMatrix.cxx:1201
 AliITSgeomMatrix.cxx:1202
 AliITSgeomMatrix.cxx:1203
 AliITSgeomMatrix.cxx:1204
 AliITSgeomMatrix.cxx:1205
 AliITSgeomMatrix.cxx:1206
 AliITSgeomMatrix.cxx:1207
 AliITSgeomMatrix.cxx:1208
 AliITSgeomMatrix.cxx:1209
 AliITSgeomMatrix.cxx:1210
 AliITSgeomMatrix.cxx:1211
 AliITSgeomMatrix.cxx:1212
 AliITSgeomMatrix.cxx:1213
 AliITSgeomMatrix.cxx:1214
 AliITSgeomMatrix.cxx:1215
 AliITSgeomMatrix.cxx:1216
 AliITSgeomMatrix.cxx:1217
 AliITSgeomMatrix.cxx:1218
 AliITSgeomMatrix.cxx:1219
 AliITSgeomMatrix.cxx:1220
 AliITSgeomMatrix.cxx:1221
 AliITSgeomMatrix.cxx:1222
 AliITSgeomMatrix.cxx:1223
 AliITSgeomMatrix.cxx:1224
 AliITSgeomMatrix.cxx:1225
 AliITSgeomMatrix.cxx:1226
 AliITSgeomMatrix.cxx:1227
 AliITSgeomMatrix.cxx:1228
 AliITSgeomMatrix.cxx:1229
 AliITSgeomMatrix.cxx:1230
 AliITSgeomMatrix.cxx:1231
 AliITSgeomMatrix.cxx:1232
 AliITSgeomMatrix.cxx:1233
 AliITSgeomMatrix.cxx:1234
 AliITSgeomMatrix.cxx:1235
 AliITSgeomMatrix.cxx:1236
 AliITSgeomMatrix.cxx:1237
 AliITSgeomMatrix.cxx:1238
 AliITSgeomMatrix.cxx:1239
 AliITSgeomMatrix.cxx:1240
 AliITSgeomMatrix.cxx:1241
 AliITSgeomMatrix.cxx:1242