]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDgeometry.h
Classes moved to STEERBase.
[u/mrichter/AliRoot.git] / TRD / AliTRDgeometry.h
index 5a300c39617940e6551d748e45d75227c92a8027..0fc1eb836a3437d37d00413c13a365d159ff848b 100644 (file)
 
 #include "TObjArray.h"
 
-class AliRunLoader;
 class TGeoHMatrix;
 
+class AliRunLoader;
+
+class AliTRDpadPlane;
+
 class AliTRDgeometry : public AliGeometry {
 
  public:
@@ -36,7 +39,7 @@ class AliTRDgeometry : public AliGeometry {
   virtual void     Init();
   virtual void     CreateGeometry(Int_t *idtmed);
   virtual Int_t    IsVersion()                                         { return 1;               }
-  virtual Bool_t   Impact(const TParticle *) const                     { return kTRUE;           }
+  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   RotateBack(Int_t det, Double_t *loc, Double_t *glb) const;
@@ -49,14 +52,20 @@ class AliTRDgeometry : public AliGeometry {
 
           void     SetSMstatus(Int_t sm, Char_t status)                { fSMstatus[sm] = status; }
 
-  static  AliTRDgeometry* GetGeometry(AliRunLoader *runLoader = NULL);
-  
   static  Int_t    GetDetectorSec(Int_t p, Int_t c);
   static  Int_t    GetDetector(Int_t p, Int_t c, Int_t s);
-  virtual Int_t    GetPlane(Int_t d) const;
+  static  Int_t    GetPlane(Int_t d);
   virtual Int_t    GetChamber(Int_t d) const;
   virtual Int_t    GetSector(Int_t d) const;
 
+          void     CreatePadPlaneArray();
+  AliTRDpadPlane  *CreatePadPlane(Int_t p, Int_t c);
+  AliTRDpadPlane  *GetPadPlane(Int_t p, Int_t c);
+          Int_t    GetRowMax(Int_t p, Int_t c, Int_t /*s*/);
+          Int_t    GetColMax(Int_t p);
+          Double_t GetRow0(Int_t p, Int_t c, Int_t /*s*/);
+          Double_t GetCol0(Int_t p);
+
   // 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;
@@ -71,8 +80,8 @@ class AliTRDgeometry : public AliGeometry {
           Float_t  GetChamberWidth(Int_t p) const                      { return fCwidth[p];      }
           Float_t  GetChamberLength(Int_t p, Int_t c) const            { return fClength[p][c];  }
 
-  virtual void     GetGlobal(const AliRecPoint*, TVector3&, TMatrixF&) const { }; 
-  virtual void     GetGlobal(const AliRecPoint*, TVector3&) const            { };
+  virtual void     GetGlobal(const AliRecPoint*, TVector3&, TMatrixF& ) const { }; 
+  virtual void     GetGlobal(const AliRecPoint*, TVector3& ) const            { };
  
   static  Double_t GetAlpha()                                          { return 2.0 
                                                                            * 3.14159265358979324 
@@ -213,11 +222,13 @@ 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 system
+  TObjArray            *fMatrixArray;                        //! Transformation Global to Local
+  TObjArray            *fMatrixCorrectionArray;              //! Transformation Cluster to  Tracking systerm
   TObjArray            *fMatrixGeo;                          //! Geo matrices
 
-  ClassDef(AliTRDgeometry,13)                                //  TRD geometry class
+  TObjArray            *fPadPlaneArray;                      //! Array of pad plane objects
+
+  ClassDef(AliTRDgeometry,14)                                //  TRD geometry class
 
 };