]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDgeometry.h
Adding missing include
[u/mrichter/AliRoot.git] / TRD / AliTRDgeometry.h
index 8037a97dc71ab3581c464ffb6375ce350646bfd6..af7bcfd8653f9cff3bd66e2c2bf55790d3cc00c2 100644 (file)
 //                                                                           //
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "AliGeometry.h"
-
 #include "TObjArray.h"
 
-class TGeoHMatrix;
+#include "AliGeometry.h"
 
-class AliRunLoader;
+class TGeoHMatrix;
 
 class AliTRDpadPlane;
 
@@ -40,8 +38,8 @@ class AliTRDgeometry : public AliGeometry {
   virtual void     CreateGeometry(Int_t *idtmed);
   virtual Int_t    IsVersion()                                            { return 1;               }
   virtual Bool_t   Impact(const TParticle* ) const                        { return kTRUE;           }
-  virtual Bool_t   IsHole(Int_t /*la*/, Int_t /*st*/, Int_t /*se*/) const { return kFALSE;          }
-
+  virtual Bool_t   IsHole(Int_t la, Int_t st, Int_t se) const;
+  virtual Bool_t   IsOnBoundary(Int_t det, Float_t y, Float_t z, Float_t eps = .5) const;
   virtual Bool_t   RotateBack(Int_t det, Double_t *loc, Double_t *glb) const;
 
           Bool_t   ChamberInGeometry(Int_t det);
@@ -54,14 +52,14 @@ class AliTRDgeometry : public AliGeometry {
   TGeoHMatrix     *GetClusterMatrix(Int_t det)                           { return (TGeoHMatrix *) 
                                                                              fClusterMatrixArray->At(det); }
 
-          void     SetSMstatus(Int_t sm, Char_t status);
+          void     SetSMstatus(Int_t sm, Char_t status)                  { fSMstatus[sm] = status;         }
 
   static  Int_t    GetDetectorSec(Int_t layer, Int_t stack);
   static  Int_t    GetDetector(Int_t layer, Int_t stack, Int_t sector);
   static  Int_t    GetLayer(Int_t det);
-  virtual Int_t    GetStack(Int_t det) const;
-  virtual Int_t    GetStack(Double_t z, Int_t layer);
-  virtual Int_t    GetSector(Int_t det) const;
+  static  Int_t    GetStack(Int_t det);
+          Int_t    GetStack(Double_t z, Int_t layer);
+  static  Int_t    GetSector(Int_t det);
 
           void     CreatePadPlaneArray();
   AliTRDpadPlane  *CreatePadPlane(Int_t layer, Int_t stack);
@@ -75,7 +73,10 @@ class AliTRDgeometry : public AliGeometry {
 
   static  Float_t  GetTime0(Int_t layer)                                 { return fgkTime0[layer];        }
 
-          Char_t   GetSMstatus(Int_t sm) const;
+  static  Double_t GetXtrdBeg()                                          { return fgkXtrdBeg;             }
+  static  Double_t GetXtrdEnd()                                          { return fgkXtrdEnd;             }
+
+          Char_t   GetSMstatus(Int_t sm) const                           { return fSMstatus[sm];          }
           Float_t  GetChamberWidth(Int_t layer) const                    { return fCwidth[layer]      ;   }
           Float_t  GetChamberLength(Int_t layer, Int_t stack) const      { return fClength[layer][stack]; }
 
@@ -98,6 +99,9 @@ class AliTRDgeometry : public AliGeometry {
   static  Float_t  CamHght()                                             { return fgkCamH;          }
   static  Float_t  CroHght()                                             { return fgkCroH;          }
   static  Float_t  CroWid()                                              { return fgkCroW;          }
+
+  static  Float_t  AnodePos()                                            { return fgkAnodePos;      }
+
   static  Float_t  MyThick()                                             { return fgkMyThick;       }
   static  Float_t  DrThick()                                             { return fgkDrThick;       }
   static  Float_t  AmThick()                                             { return fgkAmThick;       }
@@ -144,6 +148,8 @@ class AliTRDgeometry : public AliGeometry {
   static const Float_t  fgkCroH;                             //  Height of the readout of the chambers
   static const Float_t  fgkCH;                               //  Total height of the chambers
 
+  static const Float_t  fgkAnodePos;                         //  Distance of anode wire plane relative to alignabl volume
+
   static const Float_t  fgkVspace;                           //  Vertical spacing of the chambers
   static const Float_t  fgkHspace;                           //  Horizontal spacing of the chambers
   static const Float_t  fgkVrocsm;                           //  Radial distance of the first ROC to the outer SM plates
@@ -205,7 +211,10 @@ class AliTRDgeometry : public AliGeometry {
 
   static const Double_t fgkTime0Base;                        //  Base value for calculation of Time-position of pad 0
   static const Float_t  fgkTime0[kNlayer];                   //  Time-position of pad 0
-  
+
+  static const Double_t fgkXtrdBeg;                          //  X-coordinate in tracking system of begin of TRD mother volume
+  static const Double_t fgkXtrdEnd;                          //  X-coordinate in tracking system of end of TRD mother volume
+
   Float_t               fChamberUAorig[3*kNdets][3];         //  Volumes origin in
   Float_t               fChamberUDorig[3*kNdets][3];         //  the chamber
   Float_t               fChamberUForig[3*kNdets][3];         //  [3] = x, y, z
@@ -219,8 +228,9 @@ class AliTRDgeometry : public AliGeometry {
   TObjArray            *fClusterMatrixArray;                 //! Transformation matrices loc. cluster to tracking cs
   TObjArray            *fPadPlaneArray;                      //! Array of pad plane objects
 
-  ClassDef(AliTRDgeometry,18)                                //  TRD geometry class
+  Char_t                fSMstatus[kNsector];                 //  Super module status byte
 
-};
+  ClassDef(AliTRDgeometry,22)                                //  TRD geometry class
 
+};
 #endif