- }*/
-//________________________________________________________________________
-AliITSgeom& AliITSgeom::operator=(const AliITSgeom &source){
-////////////////////////////////////////////////////////////////////////
-// The = operator function for the AliITSgeom class. It makes an
-// independent copy of the class in such a way that any changes made
-// to the copied class will not affect the source class in any way.
-// This is required for many ITS alignment studies where the copied
-// class is then modified by introducing some misalignment.
-////////////////////////////////////////////////////////////////////////
- Int_t i,j,k;
-
- if(this == &source) return *this; // don't assign to ones self.
-
- // if there is an old structure allocated delete it first.
- if(fGm != 0){
- for(i=0;i<fNlayers;i++) delete[] fGm[i];
- delete[] fGm;
- } // end if fGm != 0
- if(fNlad != 0) delete[] fNlad;
- if(fNdet != 0) delete[] fNdet;
-
- fNlayers = source.fNlayers;
- fNlad = new Int_t[fNlayers];
- for(i=0;i<fNlayers;i++) fNlad[i] = source.fNlad[i];
- fNdet = new Int_t[fNlayers];
- for(i=0;i<fNlayers;i++) fNdet[i] = source.fNdet[i];
- fShape = new TObjArray(*(source.fShape));//This does not make a proper copy.
- fGm = new AliITSgeomS* [fNlayers];
- for(i=0;i<fNlayers;i++){
- fGm[i] = new AliITSgeomS[fNlad[i]*fNdet[i]];
- for(j=0;j<(fNlad[i]*fNdet[i]);j++){
- fGm[i][j].fShapeIndex = source.fGm[i][j].fShapeIndex;
- fGm[i][j].fx0 = source.fGm[i][j].fx0;
- fGm[i][j].fy0 = source.fGm[i][j].fy0;
- fGm[i][j].fz0 = source.fGm[i][j].fz0;
- fGm[i][j].frx = source.fGm[i][j].frx;
- fGm[i][j].fry = source.fGm[i][j].fry;
- fGm[i][j].frz = source.fGm[i][j].frz;
- for(k=0;k<9;k++) fGm[i][j].fr[k] = source.fGm[i][j].fr[k];
- } // end for j
- } // end for i
- return *this;
-}
-//________________________________________________________________________
-void AliITSgeom::GtoL(Int_t lay,Int_t lad,Int_t det,
- const Double_t *g,Double_t *l){
-////////////////////////////////////////////////////////////////////////
-// The function that does the global ALICE Cartesian coordinate
-// to local active volume detector Cartesian coordinate transformation.
-// The local detector coordinate system is determined by the layer,
-// ladder, and detector numbers. The global coordinates are entered by
-// the three element Double_t array g and the local coordinate values
-// are returned by the three element Double_t array l. The order of the
-// three elements are g[0]=x, g[1]=y, and g[2]=z, similarly for l.
-////////////////////////////////////////////////////////////////////////
- Double_t x,y,z;
- AliITSgeomS *gl;
-
- lay--; lad--; det--;
- gl = &(fGm[lay][fNdet[lay]*lad+det]);
-
- x = g[0] - gl->fx0;
- y = g[1] - gl->fy0;
- z = g[2] - gl->fz0;
- l[0] = gl->fr[0]*x + gl->fr[1]*y + gl->fr[2]*z;
- l[1] = gl->fr[3]*x + gl->fr[4]*y + gl->fr[5]*z;
- l[2] = gl->fr[6]*x + gl->fr[7]*y + gl->fr[8]*z;
- return;
-}
-//________________________________________________________________________
-void AliITSgeom::GtoL(const Int_t *id,const Double_t *g,Double_t *l){
-////////////////////////////////////////////////////////////////////////
-// The function that does the local active volume detector Cartesian
-// coordinate to global ALICE Cartesian coordinate transformation.
-// The local detector coordinate system is determined by the id[0]=layer,
-// id[1]=ladder, and id[2]=detector numbers. The local coordinates are
-// entered by the three element Double_t array l and the global coordinate
-// values are returned by the three element Double_t array g. The order of the
-// three elements are l[0]=x, l[1]=y, and l[2]=z, similarly for g.
-////////////////////////////////////////////////////////////////////////
- GtoL(id[0],id[1],id[2],g,l);
- return;
-}
-//________________________________________________________________________
-void AliITSgeom::GtoL(const Int_t index,const Double_t *g,Double_t *l){
-////////////////////////////////////////////////////////////////////////
-// The function that does the local active volume detector Cartesian
-// coordinate to global ALICE Cartesian coordinate transformation.
-// The local detector coordinate system is determined by the detector
-// index numbers (see GetModuleIndex and GetModuleID). The local
-// coordinates are entered by the three element Double_t array l and the
-// global coordinate values are returned by the three element Double_t array g.
-// The order of the three elements are l[0]=x, l[1]=y, and l[2]=z, similarly
-// for g.
-////////////////////////////////////////////////////////////////////////
- Int_t lay,lad,det;
-
- this->GetModuleId(index,lay,lad,det);
-
- GtoL(lay,lad,det,g,l);
- return;
-}
-//________________________________________________________________________
-void AliITSgeom::GtoL(Int_t lay,Int_t lad,Int_t det,
- const Float_t *g,Float_t *l){
-////////////////////////////////////////////////////////////////////////
-// The function that does the global ALICE Cartesian coordinate
-// to local active volume detector Cartesian coordinate transformation.
-// The local detector coordinate system is determined by the layer,
-// ladder, and detector numbers. The global coordinates are entered by
-// the three element Float_t array g and the local coordinate values
-// are returned by the three element Float_t array l. The order of the
-// three elements are g[0]=x, g[1]=y, and g[2]=z, similarly for l.
-////////////////////////////////////////////////////////////////////////
- Int_t i;
- Double_t gd[3],ld[3];
-
- for(i=0;i<3;i++) gd[i] = (Double_t) g[i];
- GtoL(lay,lad,det,(Double_t *)gd,(Double_t *)ld);
- for(i=0;i<3;i++) l[i] = (Float_t) ld[i];
- return;
-}
-//________________________________________________________________________
-void AliITSgeom::GtoL(const Int_t *id,const Float_t *g,Float_t *l){
-////////////////////////////////////////////////////////////////////////
-// The function that does the local active volume detector Cartesian
-// coordinate to global ALICE Cartesian coordinate transformation.
-// The local detector coordinate system is determined by the Int_t array id,
-// id[0]=layer, id[1]=ladder, and id[2]=detector numbers. The local
-// coordinates are entered by the three element Float_t array l and the
-// global coordinate values are returned by the three element Float_t array g.
-// The order of the three elements are l[0]=x, l[1]=y, and l[2]=z, similarly
-// for g. The order of the three elements are g[0]=x, g[1]=y, and g[2]=z,
-// similarly for l.
-////////////////////////////////////////////////////////////////////////
- Int_t i;
- Double_t gd[3],ld[3];
-
- for(i=0;i<3;i++) gd[i] = (Double_t) g[i];
- GtoL(id[0],id[1],id[2],(Double_t *)gd,(Double_t *)ld);
- for(i=0;i<3;i++) l[i] = (Float_t) ld[i];
- return;
-}
-//________________________________________________________________________
-void AliITSgeom::GtoL(const Int_t index,const Float_t *g,Float_t *l){
-////////////////////////////////////////////////////////////////////////
-// The function that does the local active volume detector Cartesian
-// coordinate to global ALICE Cartesian coordinate transformation.
-// The local detector coordinate system is determined by the detector
-// index numbers (see GetModuleIndex and GetModuleID). The local
-// coordinates are entered by the three element Float_t array l and the
-// global coordinate values are returned by the three element Float_t array g.
-// The order of the three elements are l[0]=x, l[1]=y, and l[2]=z, similarly
-// for g.
-////////////////////////////////////////////////////////////////////////
- Int_t lay,lad,det;
- Int_t i;
- Double_t gd[3],ld[3];
-
- this->GetModuleId(index,lay,lad,det);
-
- for(i=0;i<3;i++) gd[i] = (Double_t) g[i];
- GtoL(lay,lad,det,(Double_t *)gd,(Double_t *)ld);
- for(i=0;i<3;i++) l[i] = (Float_t) ld[i];
- return;
-}
-//________________________________________________________________________
-void AliITSgeom::LtoG(Int_t lay,Int_t lad,Int_t det,
- const Double_t *l,Double_t *g){
-////////////////////////////////////////////////////////////////////////
-// The function that does the local active volume detector Cartesian
-// coordinate to global ALICE Cartesian coordinate transformation.
-// The local detector coordinate system is determined by the layer,
-// ladder, and detector numbers. The local coordinates are entered by
-// the three element Float_t array l and the global coordinate values
-// are returned by the three element Float_t array g. The order of the
-// three elements are l[0]=x, l[1]=y, and l[2]=z, similarly for g.
-////////////////////////////////////////////////////////////////////////
- Double_t x,y,z;
- AliITSgeomS *gl;
-
- lay--; lad--; det--;
- gl = &(fGm[lay][fNdet[lay]*lad+det]);
-
- x = gl->fr[0]*l[0] + gl->fr[3]*l[1] + gl->fr[6]*l[2];
- y = gl->fr[1]*l[0] + gl->fr[4]*l[1] + gl->fr[7]*l[2];
- z = gl->fr[2]*l[0] + gl->fr[5]*l[1] + gl->fr[8]*l[2];
- g[0] = x + gl->fx0;
- g[1] = y + gl->fy0;
- g[2] = z + gl->fz0;
- return;
-}
-//________________________________________________________________________
-void AliITSgeom::LtoG(const Int_t *id,const Double_t *l,Double_t *g){
-////////////////////////////////////////////////////////////////////////
-// The function that does the local active volume detector Cartesian
-// coordinate to global ALICE Cartesian coordinate transformation.
-// The local detector coordinate system is determined by the three
-// element array Id containing as it's three elements Id[0]=layer,
-// Id[1]=ladder, and Id[2]=detector numbers. The local coordinates
-// are entered by the three element Double_t array l and the global
-// coordinate values are returned by the three element Double_t array g.
-// The order of the three elements are l[0]=x, l[1]=y, and l[2]=z,
-// similarly for g.
-////////////////////////////////////////////////////////////////////////
- LtoG(id[0],id[1],id[2],l,g);
- return;
-}
-//________________________________________________________________________
-void AliITSgeom::LtoG(const Int_t index,const Double_t *l,Double_t *g){
-////////////////////////////////////////////////////////////////////////
-// The function that does the local active volume detector Cartesian
-// coordinate to global ALICE Cartesian coordinate transformation.
-// The local detector coordinate system is determined by the detector
-// index number (see GetModuleIndex and GetModuleId). The local coordinates
-// are entered by the three element Double_t array l and the global
-// coordinate values are returned by the three element Double_t array g.
-// The order of the three elements are l[0]=x, l[1]=y, and l[2]=z,
-// similarly for g.
-////////////////////////////////////////////////////////////////////////
- Int_t lay,lad,det;
-
- this->GetModuleId(index,lay,lad,det);
-
- LtoG(lay,lad,det,l,g);
- return;
-}
-//________________________________________________________________________
-void AliITSgeom::LtoG(Int_t lay,Int_t lad,Int_t det,
- const Float_t *l,Float_t *g){
-////////////////////////////////////////////////////////////////////////
-// The function that does the local active volume detector Cartesian
-// coordinate to global ALICE Cartesian coordinate transformation.
-// The local detector coordinate system is determined by the layer,
-// ladder, and detector numbers. The local coordinates are entered by
-// the three element Float_t array l and the global coordinate values
-// are returned by the three element Float_t array g. The order of the
-// three elements are l[0]=x, l[1]=y, and l[2]=z, similarly for g.
-////////////////////////////////////////////////////////////////////////
- Int_t i;
- Double_t gd[3],ld[3];
-
- for(i=0;i<3;i++) ld[i] = (Double_t) l[i];
- LtoG(lay,lad,det,(Double_t *)ld,(Double_t *)gd);
- for(i=0;i<3;i++) g[i] = (Float_t) gd[i];
- return;
-}
-//________________________________________________________________________
-void AliITSgeom::LtoG(const Int_t *id,const Float_t *l,Float_t *g){
-////////////////////////////////////////////////////////////////////////
-// The function that does the local active volume detector Cartesian
-// coordinate to global ALICE Cartesian coordinate transformation.
-// The local detector coordinate system is determined by the three
-// element array Id containing as it's three elements Id[0]=layer,
-// Id[1]=ladder, and Id[2]=detector numbers. The local coordinates
-// are entered by the three element Float_t array l and the global
-// coordinate values are returned by the three element Float_t array g.
-// The order of the three elements are l[0]=x, l[1]=y, and l[2]=z,
-// similarly for g.
-////////////////////////////////////////////////////////////////////////
- Int_t i;
- Double_t gd[3],ld[3];
-
- for(i=0;i<3;i++) ld[i] = (Double_t) l[i];
- LtoG(id[0],id[1],id[2],(Double_t *)ld,(Double_t *)gd);
- for(i=0;i<3;i++) g[i] = (Float_t) gd[i];
- return;
-}
-//________________________________________________________________________
-void AliITSgeom::LtoG(const Int_t index,const Float_t *l,Float_t *g){
-////////////////////////////////////////////////////////////////////////
-// The function that does the local active volume detector Cartesian
-// coordinate to global ALICE Cartesian coordinate transformation.
-// The local detector coordinate system is determined by the detector
-// index number (see GetModuleIndex and GetModuleId). The local coordinates
-// are entered by the three element Float_t array l and the global
-// coordinate values are returned by the three element Float_t array g.
-// The order of the three elements are l[0]=x, l[1]=y, and l[2]=z,
-// similarly for g.
-////////////////////////////////////////////////////////////////////////
- Int_t i,lay,lad,det;
- Double_t gd[3],ld[3];
-
- this->GetModuleId(index,lay,lad,det);
-
- for(i=0;i<3;i++) ld[i] = (Double_t) l[i];
- LtoG(lay,lad,det,(Double_t *)ld,(Double_t *)gd);
- for(i=0;i<3;i++) g[i] = (Float_t) gd[i];
- return;
-}
-//______________________________________________________________________
-void AliITSgeom::LtoL(const Int_t *id1,const Int_t *id2,
- Double_t *l1,Double_t *l2){
-////////////////////////////////////////////////////////////////////////
-// The function that does the local active volume detector Cartesian
-// coordinate to a different local active volume detector Cartesian coordinate
-// transformation. The original local detector coordinate system is determined
-// by the detector array id1, id1[0]=layer, id1[1]=ladder, and id1[2]=detector
-// and the new coordinate system is determined by the detector array id2,
-// id2[0]=layer, id2[1]=ladder, and id2[2]=detector. The original local
-// coordinates are entered by the three element Double_t array l1 and the
-// other new local coordinate values are returned by the three element
-// Double_t array l2. The order of the three elements are l1[0]=x, l1[1]=y,
-// and l1[2]=z, similarly for l2.
-////////////////////////////////////////////////////////////////////////
- Double_t g[3];
-
- LtoG(id1,l1,g);
- GtoL(id2,g,l2);
- return;
-}
-//______________________________________________________________________
-void AliITSgeom::LtoL(const Int_t index1,const Int_t index2,
- Double_t *l1,Double_t *l2){
-////////////////////////////////////////////////////////////////////////
-// The function that does the local active volume detector Cartesian
-// coordinate to a different local active volume detector Cartesian coordinate
-// transformation. The original local detector coordinate system is determined
-// by the detector index number index1, and the new coordinate system is
-// determined by the detector index number index2, (see GetModuleIndex and
-// GetModuleId). The original local coordinates are entered by the three
-// element Double_t array l1 and the other new local coordinate values are
-// returned by the three element Double_t array l2. The order of the three
-// elements are l1[0]=x, l1[1]=y, and l1[2]=z, similarly for l2.
-////////////////////////////////////////////////////////////////////////
- Double_t g[3];
-
- LtoG(index1,l1,g);
- GtoL(index2,g,l2);
- return;
-}
-//________________________________________________________________________
-void AliITSgeom::GtoLMomentum(Int_t lay,Int_t lad,Int_t det,
- const Double_t *g,Double_t *l){
-////////////////////////////////////////////////////////////////////////
-// The function that does the global ALICE Cartesian momentum
-// to local active volume detector Cartesian momentum transformation.
-// The local detector coordinate system is determined by the layer,
-// ladder, and detector numbers. The global momentums are entered by
-// the three element Double_t array g and the local momentums values
-// are returned by the three element Double_t array l. The order of the
-// three elements are g[0]=x, g[1]=y, and g[2]=z, similarly for l.
-////////////////////////////////////////////////////////////////////////
- Double_t px,py,pz;
- AliITSgeomS *gl;
-
- lay--; lad--; det--;
- gl = &(fGm[lay][fNdet[lay]*lad+det]);
-
- px = g[0];
- py = g[1];
- pz = g[2];
- l[0] = gl->fr[0]*px + gl->fr[1]*py + gl->fr[2]*pz;
- l[1] = gl->fr[3]*px + gl->fr[4]*py + gl->fr[5]*pz;
- l[2] = gl->fr[6]*px + gl->fr[7]*py + gl->fr[8]*pz;
- return;
-}
-//________________________________________________________________________
-void AliITSgeom::GtoLMomentum(Int_t lay,Int_t lad,Int_t det,
- const Float_t *g,Float_t *l){
-////////////////////////////////////////////////////////////////////////
-// The function that does the global ALICE Cartesian momentum
-// to local active volume detector Cartesian momentum transformation.
-// The local detector coordinate system is determined by the layer,
-// ladder, and detector numbers. The global momentums are entered by
-// the three element Float_t array g and the local momentums values
-// are returned by the three element Float_t array l. The order of the
-// three elements are g[0]=x, g[1]=y, and g[2]=z, similarly for l.
-////////////////////////////////////////////////////////////////////////
- Int_t i;
- Double_t gd[3],ld[3];
-
- for(i=0;i<3;i++) gd[i] = (Double_t) g[i];
- GtoLMomentum(lay,lad,det,(Double_t *)gd,(Double_t *)ld);
- for(i=0;i<3;i++) l[i] = (Float_t) ld[i];
- return;
-}
-//________________________________________________________________________
-void AliITSgeom::LtoGMomentum(Int_t lay,Int_t lad,Int_t det,
- const Double_t *l,Double_t *g){
-////////////////////////////////////////////////////////////////////////
-// The function that does the local active volume detector Cartesian
-// momentum to global ALICE Cartesian momentum transformation.
-// The local detector momentum system is determined by the layer,
-// ladder, and detector numbers. The local momentums are entered by
-// the three element Double_t array l and the global momentum values
-// are returned by the three element Double_t array g. The order of the
-// three elements are l[0]=x, l[1]=y, and l[2]=z, similarly for g.
-////////////////////////////////////////////////////////////////////////
- Double_t px,py,pz;
- AliITSgeomS *gl;
-
- lay--; lad--; det--;
- gl = &(fGm[lay][fNdet[lay]*lad+det]);
-
- px = gl->fr[0]*l[0] + gl->fr[3]*l[1] + gl->fr[6]*l[2];
- py = gl->fr[1]*l[0] + gl->fr[4]*l[1] + gl->fr[7]*l[2];
- pz = gl->fr[2]*l[0] + gl->fr[5]*l[1] + gl->fr[8]*l[2];
- g[0] = px;
- g[1] = py;
- g[2] = pz;
- return;
-}
-//________________________________________________________________________
-void AliITSgeom::LtoGMomentum(Int_t lay,Int_t lad,Int_t det,
- const Float_t *l,Float_t *g){
-////////////////////////////////////////////////////////////////////////
-// The function that does the local active volume detector Cartesian
-// momentum to global ALICE Cartesian momentum transformation.
-// The local detector momentum system is determined by the layer,
-// ladder, and detector numbers. The local momentums are entered by
-// the three element Float_t array l and the global momentum values
-// are returned by the three element Float_t array g. The order of the
-// three elements are l[0]=x, l[1]=y, and l[2]=z, similarly for g.
-////////////////////////////////////////////////////////////////////////
- Int_t i;
- Double_t gd[3],ld[3];
-
- for(i=0;i<3;i++) ld[i] = (Double_t) l[i];
- LtoGMomentum(lay,lad,det,(Double_t *)ld,(Double_t *)gd);
- for(i=0;i<3;i++) g[i] = (Float_t) gd[i];
- return;
-}
-//______________________________________________________________________
-void AliITSgeom::LtoLMomentum(const Int_t *id1,const Int_t *id2,
- const Double_t *l1,Double_t *l2){
-////////////////////////////////////////////////////////////////////////
-// The function that does the local active volume detector Cartesian
-// momentum to a different local active volume detector Cartesian momentum
-// transformation. The original local detector momentum system is determined
-// by the Int_t array id1 (id1[0]=lay, id1[1]=lad, id1[2]=det). The new local
-// coordinate system id determined by the Int_t array id2. The local
-// momentums are entered by the three element Double_t array l1 and the other
-// local momentum values are returned by the three element Double_t array l2.
-// The order of the three elements are l1[0]=x, l1[1]=y, and l1[2]=z,
-// similarly for l2.
-////////////////////////////////////////////////////////////////////////
- Double_t g[3];
-
- LtoGMomentum(id1[0],id1[1],id1[2],l1,g);
- GtoLMomentum(id2[0],id2[1],id2[2],g,l2);
- return;
-}
-//______________________________________________________________________
-void AliITSgeom::GtoLErrorMatrix(const Int_t index,Double_t **g,Double_t **l){
-////////////////////////////////////////////////////////////////////////
-// This converts an error matrix, expressed in global coordinates
-// into an error matrix expressed in local coordinates. Since the
-// translations do not change the error matrix they are not included.
-// Definition: if GtoL is l[i] = T[i][j]*g[j], then from the definition
-// of the transformation matrix above T[i][j] = fr[3*i+j]. Then for a
-// matrix l[i][l] = T[i][j]*g[j][k]*T[l][k] (sum over repeated indexes).
-// Where T[l][k] is the transpose of T[k][l].
-////////////////////////////////////////////////////////////////////////
- Double_t lR[3][3],lRt[3][3];
- Int_t lay,lad,det,i,j,k,n;
- AliITSgeomS *gl;
-
- GetModuleId(index,lay,lad,det);
- lay--;lad--;det--;
- gl = &(fGm[lay][fNdet[lay]*lad+det]);
-
- for(i=0;i<3;i++)for(j=0;j<3;j++){
- lR[i][j] = lRt[j][i] = gl->fr[3*i+j];
- } // end for i,j
-
- for(i=0;i<3;i++)for(j=0;j<3;j++)for(k=0;k<3;k++)for(n=0;n<3;n++){
- l[i][n] = lR[i][j]*g[j][k]*lRt[k][n];
- } // end for i,j,k,l
- return;
-}
-//______________________________________________________________________
-void AliITSgeom::LtoGErrorMatrix(const Int_t index,Double_t **l,Double_t **g){
-////////////////////////////////////////////////////////////////////////
-// This converts an error matrix, expressed in local coordinates
-// into an error matrix expressed in global coordinates. Since the
-// translations do not change the error matrix they are not included.
-// Definition: if GtoL is l[i] = T[i][j]*g[j], then from the definition
-// of the transformation matrix above T[i][j] = fr[3*i+j]. Then for a
-// matrix g[i][l] = T[j][i]*l[j][k]*T[k][l] (sum over repeated indexes).
-// Where T[j][i] is the transpose of T[i][j].
-////////////////////////////////////////////////////////////////////////
- Double_t lR[3][3],lRt[3][3];
- Int_t lay,lad,det,i,j,k,n;
- AliITSgeomS *gl;
-
- GetModuleId(index,lay,lad,det);
- lay--;lad--;det--;
- gl = &(fGm[lay][fNdet[lay]*lad+det]);
-
- for(i=0;i<3;i++)for(j=0;j<3;j++){
- lR[i][j] = lRt[j][i] = gl->fr[3*i+j];
- } // end for i,j
-
- for(i=0;i<3;i++)for(j=0;j<3;j++)for(k=0;k<3;k++)for(n=0;n<3;n++){
- g[i][n] = lRt[i][j]*l[j][k]*lR[k][n];
- } // end for i,j,k,l
- return;
-}
-//______________________________________________________________________
-void AliITSgeom::LtoLErrorMatrix(const Int_t index1,const Int_t index2,
- Double_t **l1,Double_t **l2){
-////////////////////////////////////////////////////////////////////////
-// This converts an error matrix, expressed in one local coordinates
-// into an error matrix expressed in different local coordinates. Since
-// the translations do not change the error matrix they are not included.
-// This is done by going through the global coordinate system for
-// simplicity and constancy.
-////////////////////////////////////////////////////////////////////////
- Double_t g[3][3];
-
- this->LtoGErrorMatrix(index1,l1,(Double_t **)g);
- this->GtoLErrorMatrix(index2,(Double_t **)g,l2);
- return;
-}
-//______________________________________________________________________
-Int_t AliITSgeom::GetModuleIndex(Int_t lay,Int_t lad,Int_t det){