]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDgeometry.h
Removing MC position of the primary vertex (Jouri)
[u/mrichter/AliRoot.git] / TRD / AliTRDgeometry.h
index f8735a7bfebe41f33bc14502db6081e3c1b95e39..2b98b1862f73d0b08dc23544aba06826784d52ac 100644 (file)
@@ -22,11 +22,11 @@ class AliTRDgeometry : public AliGeometry {
 
  public:
 
-          enum { kNplan =   6
-               , kNcham =   5
-               , kNsect =  18
-               , kNdet  = 540 
-               , kNdets =  30 };
+  enum { kNplan =   6
+       , kNcham =   5
+       , kNsect =  18
+       , kNdet  = 540 
+       , kNdets =  30 };
 
   AliTRDgeometry();
   AliTRDgeometry(const AliTRDgeometry &g);
@@ -39,8 +39,7 @@ class AliTRDgeometry : public AliGeometry {
   virtual Bool_t   Impact(const TParticle* ) const                     { return kTRUE;           }
   virtual Bool_t   IsHole(Int_t /*p*/, Int_t /*c*/, Int_t /*s*/) const { return kFALSE;          }
 
-  virtual Bool_t   Rotate(Int_t d, Double_t *pos, Double_t *rot) const;
-  virtual Bool_t   RotateBack(Int_t d, Double_t *rot, Double_t *pos) const;
+  virtual Bool_t   RotateBack(Int_t det, Double_t *loc, Double_t *glb) const;
 
           void     GroupChamber(Int_t iplan, Int_t icham, Int_t *idtmed);
           void     CreateFrame(Int_t *idtmed);
@@ -58,6 +57,14 @@ class AliTRDgeometry : public AliGeometry {
   virtual Int_t    GetChamber(Int_t d) const;
   virtual Int_t    GetSector(Int_t d) const;
 
+  // Translation from MCM to Pad and vice versa
+  virtual Int_t    GetPadRowFromMCM(Int_t irob, Int_t imcm) const;
+  virtual Int_t    GetPadColFromADC(Int_t irob, Int_t imcm, Int_t iadc) const;
+  virtual Int_t    GetMCMfromPad(Int_t irow, Int_t icol) const;
+  virtual Int_t    GetROBfromPad(Int_t irow, Int_t icol) const;
+  virtual Int_t    GetRobSide(Int_t irob) const;
+  virtual Int_t    GetColSide(Int_t icol) const;
+
   static Float_t   GetTime0(Int_t p)                                   { return fgkTime0[p];     }
 
           Char_t   GetSMstatus(Int_t sm) const                         { return fSMstatus[sm];   }
@@ -94,6 +101,17 @@ class AliTRDgeometry : public AliGeometry {
                                                                                 / fgkSheight 
                                                                                 * (fgkCH + fgkVspace);      }
 
+  static  Int_t    MCMmax()                                            { return fgkMCMmax;       }
+  static  Int_t    MCMrow()                                            { return fgkMCMrow;       }
+  static  Int_t    ROBmaxC0()                                          { return fgkROBmaxC0;     }
+  static  Int_t    ROBmaxC1()                                          { return fgkROBmaxC1;     }
+  static  Int_t    ADCmax()                                            { return fgkADCmax;       }
+  static  Int_t    TBmax()                                             { return fgkTBmax;        }            
+  static  Int_t    Padmax()                                            { return fgkPadmax;       }
+  static  Int_t    Colmax()                                            { return fgkColmax;       }
+  static  Int_t    RowmaxC0()                                          { return fgkRowmaxC0;     }
+  static  Int_t    RowmaxC1()                                          { return fgkRowmaxC1;     }
+
   TGeoHMatrix     *GetGeoMatrix(Int_t det)                             { return (TGeoHMatrix *) 
                                                                            fMatrixGeo->At(det);             }
   TGeoHMatrix     *GetMatrix(Int_t det)                                { return (TGeoHMatrix *) 
@@ -161,16 +179,22 @@ class AliTRDgeometry : public AliGeometry {
   static const Float_t  fgkRcZpos;                           //  Position of the PCB copper layers
   static const Float_t  fgkRoZpos;                           //  Position of all other ROB componentes (caps, etc.)
 
+  static const Int_t    fgkMCMmax;                           //  Maximum number of MCMs per ROB
+  static const Int_t    fgkMCMrow;                           //  Maximum number of MCMs per ROB Row
+  static const Int_t    fgkROBmaxC0;                         //  Maximum number of ROBs per C0 chamber
+  static const Int_t    fgkROBmaxC1;                         //  Maximum number of ROBs per C1 chamber
+  static const Int_t    fgkADCmax;                           //  Maximum number of ADC channels per MCM
+  static const Int_t    fgkTBmax;                            //  Maximum number of Time bins
+  static const Int_t    fgkPadmax;                           //  Maximum number of pads per MCM
+  static const Int_t    fgkColmax;                           //  Maximum number of pads per padplane row
+  static const Int_t    fgkRowmaxC0;                         //  Maximum number of Rows per C0 chamber
+  static const Int_t    fgkRowmaxC1;                         //  Maximum number of Rows per C1 chamber
+
   Char_t                fSMstatus[kNsect];                   //  Super module status byte
 
   Float_t               fCwidth[kNplan];                     //  Outer widths of the chambers
   Float_t               fClength[kNplan][kNcham];            //  Outer lengths of the chambers
 
-  Float_t               fRotA11[kNsect];                     //  Matrix elements for the rotation
-  Float_t               fRotA12[kNsect];                     //  Matrix elements for the rotation
-  Float_t               fRotA21[kNsect];                     //  Matrix elements for the rotation
-  Float_t               fRotA22[kNsect];                     //  Matrix elements for the rotation
-
   Float_t               fRotB11[kNsect];                     //  Matrix elements for the backward rotation
   Float_t               fRotB12[kNsect];                     //  Matrix elements for the backward rotation
   Float_t               fRotB21[kNsect];                     //  Matrix elements for the backward rotation
@@ -189,11 +213,11 @@ class AliTRDgeometry : public AliGeometry {
   Float_t               fChamberUFboxd[3*kNdets][3];         //  [3] = x, y, z
   Float_t               fChamberUUboxd[3*kNdets][3];         // 
 
-  TObjArray *           fMatrixArray;                        //! Transformation Global to Local
-  TObjArray *           fMatrixCorrectionArray;              //! Transformation Cluster to  Tracking systerm
-  TObjArray *           fMatrixGeo;                          //! Geo matrices
+  TObjArray            *fMatrixArray;                        //! Transformation Global to Local
+  TObjArray            *fMatrixCorrectionArray;              //! Transformation Cluster to  Tracking systerm
+  TObjArray            *fMatrixGeo;                          //! Geo matrices
 
-  ClassDef(AliTRDgeometry,11)                                //  TRD geometry class
+  ClassDef(AliTRDgeometry,13)                                //  TRD geometry class
 
 };