ROOT logo
#ifndef ALIITSGEOM_H
#define ALIITSGEOM_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

/////////////////////////////////////////////////////////////////////////
//  ITS geometry manipulation routines.
//  Created April 15 1999.
//  version: 0.0.0
//  By: Bjorn S. Nilsen
//
//     A package of geometry routines to do transformations between
// local, detector active area, and ALICE global coordinate system in such
// a way as to allow for detector alignment studies and the like. All of
// the information needed to do the coordinate transformation are kept in
// a specialized structure for ease of implementation.
/////////////////////////////////////////////////////////////////////////
#include <Riostream.h>
#include <TObject.h>
#include <TObjArray.h>
#include <TVector.h>
#include <TString.h>
#include <TArrayI.h>
#include <TMath.h>
//
#include "AliITSgeomMatrix.h"
#include "AliLog.h"

typedef enum {kND=-1,kSPD=0, kSDD=1, kSSD=2, kSSDp=3,kSDDp=4, kUPG=5} AliITSDetector;

//_______________________________________________________________________

class AliITSgeom : public TObject {

 public:
    AliITSgeom();                      // Default constructor
    AliITSgeom(Int_t itype,Int_t nlayers,const Int_t *nlads,const Int_t *ndets,
               Int_t nmods); // Constructor
    AliITSgeom(const AliITSgeom &source);    // Copy constructor
    AliITSgeom& operator=(const AliITSgeom &source);// = operator
    virtual ~AliITSgeom();             // Default destructor
    // Zero and reinitilizes this class.
    void Init(Int_t itype,Int_t nlayers,const Int_t *nlads,
              const Int_t *ndets,Int_t mods);
    // this function allocates a AliITSgeomMatrix for a particular module.
    void CreateMatrix(Int_t mod,Int_t lay,Int_t lad,Int_t det,
                      AliITSDetector idet,const Double_t tran[3],
                      const Double_t rot[10]);
    // Getters
    Int_t GetTransformationType() const {return fTrans;}
    //
    // returns kTRUE if the transformation defined by this class is
    // for Global GEANT coordinate system to the local GEANT coordinate system
    // of the detector. These are the transformation used by GEANT.
    Bool_t IsGeantToGeant()     const {return (fTrans == 0);}
    // returns kTRUE if the transformation defined by this class is
    // for Global GEANT coordinate system to the local "Tracking" coordinate
    // system of the detector. These are the transformation used by the
    // Tracking code.
    Bool_t IsGeantToTracking()  const {return ((fTrans&0xfffe)!= 0);}
    // returns kTRUE if the transformation defined by this class is
    // for Global GEANT coordinate system to the local GEANT coordinate system
    // of the detector but may have been displaced by some typically small
    // amount. These are modified transformation similar to that used by GEANT.
    Bool_t IsGeantToDisplaced() const {return ((fTrans&0xfffd)!= 0);}
    //
    //     This function returns a pointer to the particular AliITSgeomMatrix
    // class for a specific module index.
    AliITSgeomMatrix *GetGeomMatrix(Int_t index){if(index<fGm.GetSize()&&index>=0)
        return (AliITSgeomMatrix*)(fGm.At(index));else 
            Error("GetGeomMatrix","index=%d<0||>=GetSize()=%d",index,fGm.GetSize());return 0;}
    AliITSgeomMatrix *GetGeomMatrix(Int_t index)const{if(index<fGm.GetSize()&&index>=0)
        return (AliITSgeomMatrix*)(fGm.At(index));else 
            Error("GetGeomMatrix","index=%d<0||>=GetSize()=%d",index,fGm.GetSize());return 0;}
    // This function find and return the number of detector types only.
    Int_t GetNDetTypes()const{Int_t max;return GetNDetTypes(max);};
    // This function find and return the number of detector types and the
    // maximum det type value.
    Int_t GetNDetTypes(Int_t &max)const;
    // This function finds and return the number of detector types and the
    // and the number of each type in the TArrayI and their types.
    Int_t GetNDetTypes(TArrayI &maxs,AliITSDetector *types)const;
    //     This function returns the number of detectors/ladder for a give 
    // layer. In particular it returns fNdet[layer-1].
    Int_t GetNdetectors(Int_t lay) const {return fNdet[lay-1];}
    //     This function returns the number of ladders for a give layer. In
    // particular it returns fNlad[layer-1].
    Int_t GetNladders(Int_t lay)   const {return fNlad[lay-1];};
    //     This function returns the number of layers defined in the ITS
    // geometry. In particular it returns fNlayers.
    Int_t GetNlayers()                   const {return fNlayers;}
    Int_t GetModuleIndex(Int_t lay,Int_t lad,Int_t det)const;
    //     This function returns the module index number given the layer,
    // ladder and detector numbers put into the array id[3].
    Int_t GetModuleIndex(const Int_t *id)const{
        return GetModuleIndex(id[0],id[1],id[2]);}
    void  GetModuleId(Int_t index,Int_t &lay,Int_t &lad,Int_t &det)const;
    // Returns the detector type
    //Int_t GetModuleType(Int_t index)const{
    //    return GetGeomMatrix(index)->GetDetectorIndex();}
    AliITSDetector GetModuleType(Int_t index)const{
        return (AliITSDetector)(GetGeomMatrix(index)->GetDetectorIndex());}
    // Returns the detector type as a string
    const char * GetModuleTypeName(Int_t index)const{
        return GetDetectorTypeName(GetModuleType(index));} 
    // Returns the detector type as a string
    const char * GetDetectorTypeName(Int_t index)const{switch(index) {
    case kSPD : return "kSPD" ; case kSDD : return "kSDD" ;
    case kSSD : return "kSSD" ; case kSSDp: return "kSSDp";
    case kSDDp: return "kSDDp"; default   : return "Undefined";};}
    //
    Int_t GetStartDet(Int_t dtype )const;
    Int_t GetLastDet(Int_t dtype)const;
    //     Returns the starting module index number for SPD detector,
    // assuming the modules are placed in the "standard" cylindrical
    // ITS structure.
    Int_t GetStartSPD()const{return GetStartDet(kSPD);}
    //     Returns the ending module index number for SPD detector,
    // assuming the modules are placed in the "standard" cylindrical
    // ITS structure.
    Int_t GetLastSPD()const{return GetLastDet(kSPD);}
    //     Returns the starting module index number for SDD detector,
    // assuming the modules are placed in the "standard" cylindrical
    // ITS structure.
    Int_t GetStartSDD()const{return GetStartDet(kSDD);}
    //     Returns the ending module index number for SDD detector,
    // assuming the modules are placed in the "standard" cylindrical
    // ITS structure.
    Int_t GetLastSDD()const{return GetLastDet(kSDD);}
    //     Returns the starting module index number for SSD detector,
    // assuming the modules are placed in the "standard" cylindrical
    // ITS structure.
    Int_t GetStartSSD()const{return GetStartDet(kSSD);}
    //     Returns the ending module index number for SSD detector,
    // assuming the modules are placed in the "standard" cylindrical
    // ITS structure.
    Int_t GetLastSSD()const{return GetLastDet(kSSD);}
    //     Returns the last module index number.
    Int_t GetIndexMax() const {return fNmodules;}
    //
    //     This function returns the rotation angles for a give module 
    // in the Double point array ang[3]. The angles are in radians
    void  GetAngles(Int_t index,Double_t *ang)const{
        GetGeomMatrix(index)->GetAngles(ang);}
    //     This function returns the rotation angles for a give module
    // in the three floating point variables provided. rx = frx,
    // fy = fry, rz = frz. The angles are in radians
    void  GetAngles(Int_t index,Float_t &rx,Float_t &ry,Float_t &rz)const{
        Double_t a[3];GetAngles(index,a);rx = a[0];ry = a[1];rz = a[2];}
    //     This function returns the rotation angles for a give detector on
    // a give ladder in a give layer in the three floating point variables
    // provided. rx = frx, fy = fry, rz = frz. The angles are in radians
    void  GetAngles(Int_t lay,Int_t lad,Int_t det,
                    Float_t &rx,Float_t &ry,Float_t &rz)const{
        GetAngles(GetModuleIndex(lay,lad,det),rx,ry,rz);}
    //
    //     This function returns the 6 GEANT rotation angles for a give 
    // module in the double point array ang[3]. The angles are in degrees
    void  GetGeantAngles(Int_t index,Double_t *ang)const{
	GetGeomMatrix(index)->SixAnglesFromMatrix(ang);}
    //
    //     This function returns the Cartesian translation for a give
    // module in the Double array t[3]. The units are
    // those of the Monte Carlo, generally cm.
    void  GetTrans(Int_t index,Double_t *t)const{
        GetGeomMatrix(index)->GetTranslation(t);}
    //     This function returns the Cartesian translation for a give
    // module index in the three floating point variables provided.
    // x = fx0, y = fy0, z = fz0. The units are those of the Mont
    // Carlo, generally cm.
    void  GetTrans(Int_t index,Float_t &x,Float_t &y,Float_t &z)const{
        Double_t t[3];GetTrans(index,t);x = t[0];y = t[1];z = t[2];}
    //     This function returns the Cartesian translation for a give
    // detector on a give ladder in a give layer in the three floating
    // point variables provided. x = fx0, y = fy0, z = fz0. The units are
    // those of the Monte Carlo, generally cm.
    void  GetTrans(Int_t lay,Int_t lad,Int_t det,
                   Float_t &x,Float_t &y,Float_t &z)const{
        GetTrans(GetModuleIndex(lay,lad,det),x,y,z);}
    //
    //     This function returns the Cartesian translation for a give
    // module in the Double array t[3]. The units are
    // those of the Monte Carlo, generally cm.
    void  GetTransCyln(Int_t index,Double_t *t)const{
        GetGeomMatrix(index)->GetTranslationCylinderical(t);}
    //     This function returns the Cartesian translation for a give
    // module index in the three floating point variables provided.
    // x = fx0, y = fy0, z = fz0. The units are those of the Mont
    // Carlo, generally cm.
    void  GetTransCyln(Int_t index,Float_t &x,Float_t &y,Float_t &z)const{
        Double_t t[3];GetTransCyln(index,t);x = t[0];y = t[1];z = t[2];}
    //     This function returns the Cartesian translation for a give
    // detector on a give ladder in a give layer in the three floating
    // point variables provided. x = fx0, y = fy0, z = fz0. The units are
    // those of the Monte Carlo, generally cm.
    void  GetTransCyln(Int_t lay,Int_t lad,Int_t det,
                       Float_t &x,Float_t &y,Float_t &z)const{
        GetTransCyln(GetModuleIndex(lay,lad,det),x,y,z);}
    //
    //      This function returns the Cartesian translation [cm] and the
    // 6 GEANT rotation angles [degrees]for a given layer ladder and
    // detector number, in the TVector x (at least 9 elements large).
    // This function is required to be in-lined for speed.
    void  GetCenterThetaPhi(Int_t lay,Int_t lad,Int_t det,TVector &x)const{
        Double_t t[3],a[6];Int_t i=GetModuleIndex(lay,lad,det);GetTrans(i,t);
        GetGeantAngles(i,a);x(0)=t[0];x(1)=t[1];x(2)=t[2];x(3)=a[0];x(4)=a[1];
        x(5)=a[2];x(6)=a[3];x(7)=a[4];x(8)=a[5];}
    //
    //     This function returns the rotation matrix in Double
    // precision for a given module.
    void  GetRotMatrix(Int_t index,Double_t mat[3][3])const{
        GetGeomMatrix(index)->GetMatrix(mat);}
    //     This function returns the rotation matrix in a Double
    // precision pointer for a given module. mat[i][j] => mat[3*i+j].
    void  GetRotMatrix(Int_t index,Double_t *mat)const{
        Double_t rot[3][3];GetRotMatrix(index,rot);
        for(Int_t i=0;i<3;i++)for(Int_t j=0;j<3;j++) mat[3*i+j] = rot[i][j];}
    //     This function returns the rotation matrix in a floating 
    // precision pointer for a given layer ladder and detector module.
    // mat[i][j] => mat[3*i+j].
    void  GetRotMatrix(Int_t lay,Int_t lad,Int_t det,Float_t *mat)const{
        GetRotMatrix(GetModuleIndex(lay,lad,det),mat);}
    //     This function returns the rotation matrix in a Double
    // precision pointer for a given layer ladder and detector module.
    // mat[i][j] => mat[3*i+j].
    void  GetRotMatrix(Int_t lay,Int_t lad,Int_t det,Double_t *mat)const{
        GetRotMatrix(GetModuleIndex(lay,lad,det),mat);}
    //     This function returns the rotation matrix in a floating
    // precision pointer for a given module. mat[i][j] => mat[3*i+j].
    void  GetRotMatrix(Int_t index,Float_t *mat)const{
          Double_t rot[3][3];
          GetGeomMatrix(index)->GetMatrix(rot);
          for(Int_t i=0;i<3;i++)for(Int_t j=0;j<3;j++) mat[3*i+j] = rot[i][j];}
    //     This function sets the rotation matrix in a Double
    // precision pointer for a given module. mat[i][j] => mat[3*i+j].
    void  SetRotMatrix(Int_t index,const Double_t *mat){Double_t rot[3][3];
          for(Int_t i=0;i<3;i++)for(Int_t j=0;j<3;j++) rot[i][j]=mat[3*i+j];
          GetGeomMatrix(index)->SetMatrix(rot);}
    // Return the normal for a specific module
    void GetGlobalNormal(Int_t index,Double_t n[3]){
        GetGeomMatrix(index)->GetGlobalNormal(n[0],n[1],n[2]);}
    //
    //
    //  Setters
    //     Sets the rotation angles and matrix for a give module index
    // via the double precision array a[3] [radians].
    void SetByAngles(Int_t index,const Double_t a[]){
        GetGeomMatrix(index)->SetAngles(a);}
    //     Sets the rotation angles and matrix for a give module index
    // via the 3 floating precision variables rx, ry, and rz [radians].
    void SetByAngles(Int_t index,Float_t rx, Float_t ry, Float_t rz) {
        Double_t a[3];a[0] = rx;a[1] = ry;a[2] = rz;
        GetGeomMatrix(index)->SetAngles(a);}
    //     Sets the rotation angles and matrix for a give layer, ladder,
    // and detector numbers via the 3 floating precision variables rx,
    // ry, and rz [radians].
    void SetByAngles(Int_t lay,Int_t lad,Int_t det,
                     Float_t rx, Float_t ry, Float_t rz) {
        SetByAngles(GetModuleIndex(lay,lad,det),rx,ry,rz);}
    //
    //     Sets the rotation angles and matrix for a give module index
    // via the Double precision array a[6] [degree]. The angles are those
    // defined by GEANT 3.12.
    void SetByGeantAngles(Int_t index,const Double_t *ang){
        GetGeomMatrix(index)->MatrixFromSixAngles(ang);}
    //     Sets the rotation angles and matrix for a give layer, ladder
    // and detector, in the array id[3] via the Double precision array
    // a[6] [degree]. The angles are those defined by GEANT 3.12.
    void SetByGeantAngles(const Int_t *id,const Double_t *ang){
        SetByGeantAngles(GetModuleIndex(id),ang);}
    //     Sets the rotation angles and matrix for a give layer, ladder
    // and detector, via the Double precision array a[6] [degree]. The
    // angles are those defined by GEANT 3.12.
    void SetByGeantAngles(Int_t lay,Int_t lad,Int_t det,
                          const Double_t *ang){
        SetByGeantAngles(GetModuleIndex(lay,lad,det),ang);}
    //
    //     This function sets a new translation vector, given by the
    // array x[3], for the Cartesian coordinate transformation
    // for a give module index.
    void SetTrans(Int_t index,Double_t x[]){
        GetGeomMatrix(index)->SetTranslation(x);}
    //     This function sets a new translation vector, given by the three
    // variables x, y, and z, for the Cartesian coordinate transformation
    // for the detector defined by layer, ladder and detector.
    void SetTrans(Int_t lay,Int_t lad,Int_t det,
                  Float_t x,Float_t y,Float_t z){Double_t t[3];
                  t[0] = x;t[1] = y;t[2] = z;
                  SetTrans(GetModuleIndex(lay,lad,det),t);}
    //
    //  transformations
    //     Transforms from the ALICE Global coordinate system
    // to the detector local coordinate system for the detector
    // defined by the layer, ladder, and detector numbers. The
    // global and local coordinate are given in two floating point
    // arrays g[3], and l[3].
    void GtoL(Int_t lay,Int_t lad,Int_t det,
              const Float_t *g,Float_t *l)const{
        GtoL(GetModuleIndex(lay,lad,det),g,l);}
    //     Transforms from the ALICE Global coordinate system
    // to the detector local coordinate system for the detector
    // defined by the id[0], id[1], and id[2] numbers. The
    // global and local coordinate are given in two floating point
    // arrays g[3], and l[3].
    void GtoL(const Int_t *id,const Float_t *g,Float_t *l)const{
        GtoL(GetModuleIndex(id),g,l);}
    //     Transforms from the ALICE Global coordinate system
    // to the detector local coordinate system for the detector
    // module index number. The global and local coordinate are
    // given in two floating point arrays g[3], and l[3].
    void GtoL(Int_t index,const Float_t *g,Float_t *l)const{
        Double_t dg[3],dl[3];Int_t i;for(i=0;i<3;i++) dg[i] = g[i];
        GetGeomMatrix(index)->GtoLPosition(dg,dl);
        for(i=0;i<3;i++) l[i] =dl[i];}
    //     Transforms from the ALICE Global coordinate system
    // to the detector local coordinate system for the detector
    // defined by the layer, ladder, and detector numbers. The
    // global and local coordinate are given in two Double point
    // arrays g[3], and l[3].
    void GtoL(Int_t lay,Int_t lad,Int_t det,
              const Double_t *g,Double_t *l)const{
        GtoL(GetModuleIndex(lay,lad,det),g,l);}
    //     Transforms from the ALICE Global coordinate system
    // to the detector local coordinate system for the detector
    // defined by the id[0], id[1], and id[2] numbers. The
    // global and local coordinate are given in two Double point
    // arrays g[3], and l[3].
    void GtoL(const Int_t *id,const Double_t *g,Double_t *l)const{
        GtoL(GetModuleIndex(id),g,l);}
    //     Transforms from the ALICE Global coordinate system
    // to the detector local coordinate system for the detector
    // module index number. The global and local coordinate are
    // given in two Double point arrays g[3], and l[3].
    void GtoL(Int_t index,const Double_t g[3],Double_t l[3])const{
        GetGeomMatrix(index)->GtoLPosition(g,l);}
 
    //  Find Specific Modules
    // Locate the nearest module to the point g, in ALICE global Cartesian
    // coordinates [cm] in a give layer. If layer = 0 then it search in
    // all layers.
    Int_t    GetNearest(const Double_t g[3],Int_t lay=0)const;
    // Locates the nearest 27 modules, in nearest order, to the point g, in
    // ALICE global Cartesian coordinates [cm] in a give layer. If layer = 0
    // then it searches in all layers. (there are 27 elements in a 3x3x3
    // cube.
    void     GetNearest27(const Double_t g[3],Int_t n[27],Int_t lay=0)const;
    // Returns the distance [cm] between the point g[3] and the center of
    // the detector/module specified by the the module index number.
    Double_t Distance(Int_t index,const Double_t g[3])const{
        return  TMath::Sqrt(GetGeomMatrix(index)->Distance2(g));}
    // This routine prints, to a file, the contents of this class.
    void PrintData(FILE *fp,Int_t lay,Int_t lad,Int_t det)const;
    // This function prints out this class in a single stream. This steam
    // can be read by ReadGeom.
    // (Coverity warnings)    void PrintGeom(ostream *out)const;

    //Conversion from det. local coordinates to local ("V2") coordinates
    //used for tracking

    void DetLToTrackingV2(Int_t md,Float_t xin,Float_t zin,
                          Float_t &yout, Float_t &zout) const ; 

    void TrackingV2ToDetL(Int_t md,Float_t yin,Float_t zin,
                          Float_t &xout,Float_t &zout) const ;

 private:
    TString    fVersion; // Transformation version.
    Int_t      fTrans;   // Flag to keep track of which transformation 
    Int_t      fNmodules;// The total number of modules
    Int_t      fNlayers; // The number of layers.
    TArrayI    fNlad;    // Array of the number of ladders/layer(layer)
    TArrayI    fNdet;    // Array of the number of detector/ladder(layer)
    TObjArray  fGm;      // Structure of translation. and rotation.

    ClassDef(AliITSgeom,4) // ITS geometry class
}; 
// Input and output function for standard C++ input/output.

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