]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSgeom.h
fix in calling of gaussian spread function
[u/mrichter/AliRoot.git] / ITS / AliITSgeom.h
index d23c59e986f81c361dc0c6db98e59588c24fce28..6fda1612f2e6c9d8f63360d9037c14d77f7df516 100644 (file)
@@ -28,7 +28,7 @@
 #include "AliITSgeomMatrix.h"
 #include "AliLog.h"
 
-typedef enum {kND=-1,kSPD=0, kSDD=1, kSSD=2, kSSDp=3,kSDDp=4} AliITSDetector;
+typedef enum {kND=-1,kSPD=0, kSDD=1, kSSD=2, kSSDp=3,kSDDp=4, kUPG=5} AliITSDetector;
 
 //_______________________________________________________________________
 
@@ -59,12 +59,12 @@ class AliITSgeom : public TObject {
     // 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);}
+    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);}
+    Bool_t IsGeantToDisplaced() const {return ((fTrans&0xfffd)!= 0);}
     //
     //     This function returns a pointer to the particular AliITSgeomMatrix
     // class for a specific module index.
@@ -335,358 +335,7 @@ class AliITSgeom : public TObject {
     // 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);}
-    //
-    //     Transforms from the ALICE Global coordinate system
-    // to the detector local coordinate system (used for ITS tracking)
-    // for the detector module index number. The global and local
-    // coordinate are given in two Double point arrays g[3], and l[3].
-    void GtoLtracking(Int_t index,const Double_t *g,Double_t *l)const{
-        if(IsGeantToTracking()) GtoL(index,g,l);
-        else GetGeomMatrix(index)->GtoLPositionTracking(g,l);}
-    //     Transforms from the ALICE Global coordinate system
-    // to the detector local coordinate system (used for ITS tracking)
-    // for the detector id[3]. The global and local
-    // coordinate are given in two Double point arrays g[3], and l[3].
-    void GtoLtracking(const Int_t *id,const Double_t *g,Double_t *l)const{
-        GtoLtracking(GetModuleIndex(id),g,l);}
-    //     Transforms from the ALICE Global coordinate system
-    // to the detector local coordinate system (used for ITS tracking)
-    // for the detector layer ladder and detector numbers. The global
-    // and local coordinate are given in two Double point arrays g[3],
-    // and l[3].
-    void GtoLtracking(Int_t lay,Int_t lad,Int_t det,
-                      const Double_t *g,Double_t *l)const{
-        GtoLtracking(GetModuleIndex(lay,lad,det),g,l);}
-    //
-    //     Transforms of momentum types of quantities from the ALICE
-    // Global coordinate system to the detector local coordinate system
-    // for the detector layer ladder and detector numbers. The global
-    // and local coordinate are given in two float point arrays g[3],
-    // and l[3].
-    void GtoLMomentum(Int_t lay,Int_t lad,Int_t det,
-                      const Float_t *g,Float_t *l)const{
-        GtoLMomentum(GetModuleIndex(lay,lad,det),g,l);}
-    //     Transforms of momentum types of quantities 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 float point arrays g[3], and l[3].
-    void GtoLMomentum(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)->GtoLMomentum(dg,dl);
-        for(i=0;i<3;i++) l[i] =dl[i];}
-    //     Transforms of momentum types of quantities from the ALICE
-    // Global coordinate system to the detector local coordinate system
-    // for the detector layer ladder and detector numbers. The global
-    // and local coordinate are given in two Double point arrays g[3],
-    // and l[3].
-    void GtoLMomentum(Int_t lay,Int_t lad,Int_t det,
-                      const Double_t *g,Double_t *l)const{
-        GtoLMomentum(GetModuleIndex(lay,lad,det),g,l);}
-    //     Transforms of momentum types of quantities 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 GtoLMomentum(Int_t index,const Double_t *g,Double_t *l)const{
-        Double_t dg[3],dl[3];Int_t i;for(i=0;i<3;i++) dg[i] = g[i];
-        GetGeomMatrix(index)->GtoLMomentum(dg,dl);
-        for(i=0;i<3;i++) l[i] =dl[i];}
-    //
-    //     Transforms of momentum types of quantities from the ALICE
-    // Global coordinate system to the detector local coordinate system
-    // (used for ITS tracking) for the detector module index number.
-    // The global and local coordinate are given in two Double point
-    // arrays g[3], and l[3].
-    void GtoLMomentumTracking(Int_t index,const Double_t *g,Double_t *l)const{
-        if(IsGeantToTracking()) GtoLMomentum(index,g,l);
-        else GetGeomMatrix(index)->GtoLMomentumTracking(g,l);}
-    //     Transforms of momentum types of quantities from the ALICE
-    // Global coordinate system to the detector local coordinate system
-    // (used for ITS tracking) for the detector id[3].
-    // The global and local coordinate are given in two Double point
-    // arrays g[3], and l[3].
-    void GtoLMomentumTracking(const Int_t *id,
-                             const Double_t *g,Double_t *l)const{
-        GtoLMomentumTracking(GetModuleIndex(id),g,l);}
-    //     Transforms of momentum types of quantities from the ALICE
-    // Global coordinate system to the detector local coordinate system
-    // (used for ITS tracking) for the detector layer ladder and detector
-    // numbers. The global and local coordinate are given in two Double point
-    // arrays g[3], and l[3].
-    void GtoLMomentumTracking(Int_t lay,Int_t lad,Int_t det,
-                              const Double_t *g,Double_t *l)const{
-        GtoLMomentumTracking(GetModuleIndex(lay,lad,det),g,l);}
-    //
-    //     Transforms from the detector local coordinate system
-    // to the ALICE Global 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 LtoG(Int_t lay,Int_t lad,Int_t det,
-              const Float_t *l,Float_t *g)const{
-        LtoG(GetModuleIndex(lay,lad,det),l,g);}
-    //     Transforms from the detector local coordinate system
-    // to the ALICE Global 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 LtoG(const Int_t *id,const Float_t *l,Float_t *g)const{
-        LtoG(GetModuleIndex(id),l,g);}
-    //     Transforms from the detector local coordinate system
-    // to the ALICE Global 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 LtoG(Int_t index,const Float_t *l,Float_t *g)const{
-        Double_t dg[3],dl[3];Int_t i;for(i=0;i<3;i++) dl[i] = l[i];
-        GetGeomMatrix(index)->LtoGPosition(dl,dg);
-        for(i=0;i<3;i++) g[i] =dg[i];}
-    //     Transforms from the detector local coordinate system
-    // to the ALICE Global 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 LtoG(Int_t lay,Int_t lad,Int_t det,
-              const Double_t *l,Double_t *g)const{
-        LtoG(GetModuleIndex(lay,lad,det),l,g);}
-    //     Transforms from the detector local coordinate system
-    // to the ALICE Global 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 LtoG(const Int_t *id,const Double_t *l,Double_t *g)const{
-        LtoG(GetModuleIndex(id),l,g);}
-    //     Transforms from the detector local coordinate system
-    // to the ALICE Global 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 LtoG(Int_t index,const Double_t *l,Double_t *g)const{
-        GetGeomMatrix(index)->LtoGPosition(l,g);}
-    //
-    //     Transforms from the detector local coordinate system (used
-    // for ITS tracking) to the ALICE Global 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 LtoGtracking(Int_t index,const Double_t *l,Double_t *g)const{
-        if(IsGeantToTracking()) LtoG(index,l,g);
-        else GetGeomMatrix(index)->LtoGPositionTracking(l,g);}
-    //     Transforms from the detector local coordinate system (used
-    // for ITS tracking) to the ALICE Global coordinate system 
-    // for the detector id[3]. The global and local
-    // coordinate are given in two Double point arrays g[3], and l[3].
-    void LtoGtracking(const Int_t *id,const Double_t *l,Double_t *g)const{
-        LtoGtracking(GetModuleIndex(id),l,g);}
-    //     Transforms from the detector local coordinate system (used
-    // for ITS tracking) to the detector local coordinate system
-    // for the detector layer ladder and detector numbers. The global
-    // and local coordinate are given in two Double point arrays g[3],
-    // and l[3].
-    void LtoGtracking(Int_t lay,Int_t lad,Int_t det,
-                      const Double_t *l,Double_t *g)const{
-        LtoGtracking(GetModuleIndex(lay,lad,det),l,g);}
-    //
-    //     Transforms of momentum types of quantities from the detector
-    // local coordinate system to the ALICE Global coordinate system
-    // for the detector layer ladder and detector numbers. The global
-    // and local coordinate are given in two float point arrays g[3],
-    // and l[3].
-    void LtoGMomentum(Int_t lay,Int_t lad,Int_t det,
-                      const Float_t *l,Float_t *g)const{
-        LtoGMomentum(GetModuleIndex(lay,lad,det),l,g);}
-    //     Transforms of momentum types of quantities from the detector
-    // local coordinate system to the ALICE Global coordinate system
-    // for the detector module index number. The global and local
-    // coordinate are given in two float point arrays g[3], and l[3].
-    void LtoGMomentum(Int_t index,const Float_t *l,Float_t *g)const{
-        Double_t dg[3],dl[3];Int_t i;for(i=0;i<3;i++) dl[i] = l[i];
-        GetGeomMatrix(index)->LtoGMomentum(dl,dg);
-        for(i=0;i<3;i++) g[i] =dg[i];}
-    //     Transforms of momentum types of quantities from the detector
-    // local coordinate system to the ALICE Global coordinate system
-    // for the detector layer ladder and detector numbers. The global
-    // and local coordinate are given in two Double point arrays g[3],
-    // and l[3].
-    void LtoGMomentum(Int_t lay,Int_t lad,Int_t det,
-                      const Double_t *l,Double_t *g)const{
-        LtoGMomentum(GetModuleIndex(lay,lad,det),l,g);}
-    //     Transforms of momentum types of quantities from the detector
-    // local coordinate system to the ALICE Global 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 LtoGMomentum(Int_t index,const Double_t *l,Double_t *g)const{
-        GetGeomMatrix(index)->LtoGMomentum(l,g);}
-    //
-    //     Transforms of momentum types of quantities from the detector 
-    // local coordinate system (used for ITS tracking) to the detector
-    // system ALICE Global for the detector module index number.
-    // The global and local coordinate are given in two Double point
-    // arrays g[3], and l[3].
-    void LtoGMomentumTracking(Int_t index,const Double_t *l,Double_t *g)const{
-        if(IsGeantToTracking()) LtoGMomentum(index,l,g);
-        else GetGeomMatrix(index)->LtoGMomentumTracking(l,g);}
-    //     Transforms of momentum types of quantities from the detector
-    // local coordinate system (used for ITS tracking) to the ALICE
-    // Global coordinate system for the detector id[3].
-    // The global and local coordinate are given in two Double point
-    // arrays g[3], and l[3].
-    void LtoGMomentumTracking(const Int_t *id,const Double_t *l,Double_t *g)
-        const{LtoGMomentumTracking(GetModuleIndex(id),l,g);}
-    //     Transforms of momentum types of quantities from the detector
-    // local coordinate system (used for ITS tracking) to the ALICE
-    // Global coordinate system for the detector layer ladder and detector
-    // numbers. The global and local coordinate are given in two Double point
-    // arrays g[3], and l[3].
-    void LtoGMomentumTracking(Int_t lay,Int_t lad,Int_t det,
-                              const Double_t *l,Double_t *g)const{
-                        LtoGMomentumTracking(GetModuleIndex(lay,lad,det),l,g);}
-    //
-    //     Transforms from one detector local coordinate system
-    // to another detector local coordinate system for the detector
-    // module index1 number to the detector module index2 number. The
-    //  local coordinates are given in two Double point arrays l1[3],
-    // and l2[3].
-    void LtoL(Int_t index1,Int_t index2,Double_t *l1,Double_t *l2)const{
-        Double_t g[3]; LtoG(index1,l1,g);GtoL(index2,g,l2);}
-    //     Transforms from one detector local coordinate system
-    // to another detector local coordinate system for the detector
-    // id1[3] to the detector id2[3]. The local coordinates are given
-    // in two Double point arrays l1[3], and l2[3].
-    void LtoL(const Int_t *id1,const Int_t *id2,Double_t *l1,Double_t *l2)
-        const{LtoL(GetModuleIndex(id1[0],id1[1],id1[2]),
-              GetModuleIndex(id2[0],id2[1],id2[2]),l1,l2);}
-    //
-    //     Transforms from one detector local coordinate system (used for
-    // ITS tracking) to another detector local coordinate system (used
-    // for ITS tracking) for the detector module index1 number to the
-    // detector module index2 number. The local coordinates are given
-    // in two Double point arrays l1[3], and l2[3].
-    void LtoLtracking(Int_t index1,Int_t index2,
-                      Double_t *l1,Double_t *l2)const{
-        Double_t g[3]; LtoGtracking(index1,l1,g);GtoLtracking(index2,g,l2);}
-    //     Transforms from one detector local coordinate system (used for
-    // ITS tracking) to another detector local coordinate system (used
-    // for ITS tracking) for the detector id1[3] to the detector id2[3].
-    // The local coordinates are given in two Double point arrays l1[3],
-    // and l2[3].
-    void LtoLtracking(const Int_t *id1,const Int_t *id2,
-                      Double_t *l1,Double_t *l2)const{
-        LtoLtracking(GetModuleIndex(id1[0],id1[1],id1[2]),
-                     GetModuleIndex(id2[0],id2[1],id2[2]),l1,l2);}
-    //
-    //     Transforms of momentum types of quantities from one detector
-    // local coordinate system to another detector local coordinate
-    // system for the detector module index1 number to the detector
-    // module index2 number. The local coordinates are given in two
-    // Double point arrays l1[3], and l2[3].
-    void LtoLMomentum(Int_t index1,Int_t index2,
-                      const Double_t *l1,Double_t *l2)const{
-        Double_t g[3]; LtoGMomentum(index1,l1,g);GtoLMomentum(index2,g,l2);}
-    //     Transforms of momentum types of quantities from one detector
-    // local coordinate system to another detector local coordinate
-    // system for the detector id1[3] to the detector id2[3]. The local
-    // coordinates are given in two Double point arrays l1[3], and l2[3].
-    void LtoLMomentum(const Int_t *id1,const Int_t *id2,
-                      const Double_t *l1,Double_t *l2)const{
-        LtoLMomentum(GetModuleIndex(id1[0],id1[1],id1[2]),
-                     GetModuleIndex(id2[0],id2[1],id2[2]),l1,l2);}
-    //
-    //     Transforms of momentum types of quantities from one detector
-    // local coordinate system (used by ITS tracking) to another detector
-    // local coordinate system (used by ITS tracking) for the detector
-    // module index1 number to the detector module index2 number. The
-    // local coordinates are given in two Double point arrays l1[3],
-    // and l2[3].
-    void LtoLMomentumTracking(Int_t index1,Int_t index2,
-                              Double_t *l1,Double_t *l2)const{
-        Double_t g[3]; LtoGMomentumTracking(index1,l1,g);
-        GtoLMomentumTracking(index2,g,l2);}
-    //     Transforms of momentum types of quantities from one detector
-    // local coordinate system (used by ITS tracking) to another detector
-    // local coordinate system (used by ITS tracking) for the detector
-    // id1[3] to the detector id2[3]. The local coordinates are given in
-    // two Double point arrays l1[3], and l2[3].
-    void LtoLMomentumTracking(const Int_t *id1,const Int_t *id2,
-                              Double_t *l1,Double_t *l2)const{
-        LtoLMomentumTracking(GetModuleIndex(id1[0],id1[1],id1[2]),
-                              GetModuleIndex(id2[0],id2[1],id2[2]),l1,l2);}
-    //
-    //     Transforms a matrix, like an Uncertainty or Error matrix from
-    // the ALICE Global coordinate system to a detector local coordinate
-    // system. The specific detector is determined by the module index
-    // number.
-    void GtoLErrorMatrix(Int_t index,const Double_t **g,Double_t **l)const{
-        GetGeomMatrix(index)->GtoLPositionError(
-            (Double_t (*)[3])g,(Double_t (*)[3])l);}
-    //
-    //     Transforms a matrix, like an Uncertainty or Error matrix from
-    // the ALICE Global coordinate system to a detector local coordinate
-    // system (used by ITS tracking). The specific detector is determined
-    // by the module index number.
-    void GtoLErrorMatrixTracking(Int_t index,const Double_t **g,
-                                 Double_t **l)const{
-        if(IsGeantToTracking()) GetGeomMatrix(index)->GtoLPositionError((
-                                    Double_t (*)[3])g,(Double_t (*)[3])l);
-        else GetGeomMatrix(index)->GtoLPositionErrorTracking(
-            (Double_t (*)[3])g,(Double_t (*)[3])l);}
-    //
-    //     Transforms a matrix, like an Uncertainty or Error matrix from
-    // the detector local coordinate system to a ALICE Global coordinate
-    // system. The specific detector is determined by the module index
-    // number.
-    void LtoGErrorMatrix(Int_t index,const Double_t **l,Double_t **g)const{
-        GetGeomMatrix(index)->LtoGPositionError(
-            (Double_t (*)[3])l,(Double_t (*)[3])g);}
-    //
-    //     Transforms a matrix, like an Uncertainty or Error matrix from
-    // the detector local coordinate system to a ALICE Global coordinate
-    // system. The specific detector is determined by the module index
-    // number.
-    void LtoGErrorMatrix(Int_t index,const Double_t l[3][3],Double_t g[3][3])
-        const{
-        GetGeomMatrix(index)->LtoGPositionError(
-            (Double_t (*)[3])l,(Double_t (*)[3])g);}
-
-    //
-    //     Transforms a matrix, like an Uncertainty or Error matrix from
-    // the detector local coordinate system (used by ITS tracking) to a
-    // ALICE Global coordinate system. The specific detector is determined
-    // by the module index number.
-    void LtoGErrorMatrixTracking(Int_t index,const Double_t **l,
-                                 Double_t **g)const{
-        if(IsGeantToTracking()) GetGeomMatrix(index)->LtoGPositionError(
-            (Double_t (*)[3])g,(Double_t (*)[3])l);
-        else GetGeomMatrix(index)->LtoGPositionErrorTracking(
-            (Double_t (*)[3])l,(Double_t (*)[3])g);}
-    //
-    //     Transforms a matrix, like an Uncertainty or Error matrix from
-    // the detector local coordinate system (used by ITS tracking) to a
-    // ALICE Global coordinate system. The specific detector is determined
-    // by the module index number.
-    void LtoGErrorMatrixTracking(Int_t index,const Double_t l[3][3],
-                                 Double_t g[3][3])const{
-        if(IsGeantToTracking()) GetGeomMatrix(index)->LtoGPositionError(
-            (Double_t (*)[3])g,(Double_t (*)[3])l);
-        else GetGeomMatrix(index)->LtoGPositionErrorTracking(
-            (Double_t (*)[3])l,(Double_t (*)[3])g);}
-    //
-    //     Transforms a matrix, like an Uncertainty or Error matrix from
-    // one detector local coordinate system to another detector local
-    // coordinate system. The specific detector is determined by the
-    // two module index number index1 and index2.
-    void LtoLErrorMatrix(Int_t index1,Int_t index2,
-                         const Double_t **l1,Double_t **l2)const{
-        Double_t g[3][3];
-        LtoGErrorMatrix(index1,l1,(Double_t **)g);
-        GtoLErrorMatrix(index2,(const Double_t **)g,l2);}
-    //
-    //     Transforms a matrix, like an Uncertainty or Error matrix from
-    // one detector local coordinate system (used by ITS tracking) to
-    // another detector local coordinate system (used by ITS tracking).
-    // The specific detector is determined by the two module index number
-    // index1 and index2.
-    void LtoLErrorMatrixTraking(Int_t index1,Int_t index2,
-                                const Double_t **l1,Double_t **l2)const{
-        Double_t g[3][3];
-        LtoGErrorMatrixTracking(index1,l1,(Double_t **)g);
-        GtoLErrorMatrixTracking(index2,(const Double_t **)g,l2);}
     //  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
@@ -701,30 +350,6 @@ class AliITSgeom : public TObject {
     // 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));}
-    //  Geometry manipulation
-    // This function performs a Cartesian translation and rotation of
-    // the full ITS from its default position by an amount determined by
-    // the three element arrays tran and rot.
-    void GlobalChange(const Float_t  *tran,const Float_t  *rot);
-    // This function performs a Cylindrical translation and rotation of
-    // the full ITS from its default position by an amount determined by
-    // the three element arrays tran and rot.
-    void GlobalCylindericalChange(const Float_t *tran,const Float_t *rot);
-    // This function performs a Gaussian random displacement and/or
-    // rotation about the present global position of each active
-    // volume/detector of the ITS with variances given by stran and srot.
-    void RandomChange(const Float_t *stran,const Float_t *srot);
-    // This function performs a Gaussian random displacement and/or
-    // rotation about the present global position of each active
-    // volume/detector of the ITS with variances given by stran and srot.
-    // But in Cylindrical coordinates.
-    void RandomCylindericalChange(const Float_t *stran,const Float_t *srot);
-    // This function converts these transformations from Alice global and
-    // local to Tracking global and local.
-    //
-    // This converts the geometry
-    void GeantToTracking(const AliITSgeom &source);
-    //  Other routines.
     // 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