#include "AliGeometry.h"
+class AliRunLoader;
class AliTRDparameter;
class AliTRDgeometry : public AliGeometry {
virtual Int_t IsVersion() const = 0;
virtual void Init();
virtual Bool_t Impact(const TParticle* ) const { return kTRUE; };
- virtual Bool_t Local2Global(Int_t d, Float_t *local, Float_t *global, AliTRDparameter *par) const;
- virtual Bool_t Local2Global(Int_t p, Int_t c, Int_t s, Float_t *local, Float_t *global, AliTRDparameter *par) const;
+ virtual Bool_t Local2Global(Int_t d, Double_t *local, Double_t *global) const;
+ virtual Bool_t Local2Global(Int_t p, Int_t c, Int_t s
+ , Double_t *local, Double_t *global) const;
- virtual Bool_t Global2Local(Int_t mode, Float_t *local, Float_t *global, Int_t* index, AliTRDparameter *par) const;
- virtual Bool_t Global2Detector(Float_t global[3], Int_t index[3], AliTRDparameter *par);
+ virtual Bool_t Global2Local(Int_t mode, Double_t *local, Double_t *global
+ , Int_t* index, AliTRDparameter *par) const;
+ virtual Bool_t Global2Detector(Double_t global[3], Int_t index[3]);
- virtual Bool_t Rotate(Int_t d, Float_t *pos, Float_t *rot) const;
- virtual Bool_t RotateBack(Int_t d, Float_t *rot, Float_t *pos) const;
+ 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;
static Int_t Nsect() { return fgkNsect; };
static Int_t Nplan() { return fgkNplan; };
static Float_t CdrHght() { return fgkCdrH; };
static Float_t CamHght() { return fgkCamH; };
static Float_t CroHght() { return fgkCroH; };
+ static Float_t CroWid() { return fgkCroW; };
static Float_t MyThick() { return fgkMyThick; };
static Float_t DrThick() { return fgkDrThick; };
static Float_t AmThick() { return fgkAmThick; };
virtual void SetPHOShole() = 0;
virtual void SetRICHhole() = 0;
- virtual void SetOldGeometry();
-
virtual Bool_t GetPHOShole() const = 0;
virtual Bool_t GetRICHhole() const = 0;
+ virtual Bool_t IsHole(Int_t /*iplan*/, Int_t /*icham*/, Int_t /*isect*/) const {return kFALSE;}
+ 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;
+ virtual Int_t GetChamber(Int_t d) const;
+ virtual Int_t GetSector(Int_t d) const;
- virtual Int_t GetDetectorSec(const Int_t p, const Int_t c) const;
- virtual Int_t GetDetector(const Int_t p, const Int_t c, const Int_t s) const;
- virtual Int_t GetPlane(const Int_t d) const;
- virtual Int_t GetChamber(const Int_t d) const;
- virtual Int_t GetSector(const Int_t d) const;
-
- Float_t GetChamberWidth(const Int_t p) const { return fCwidth[p]; };
- Float_t GetChamberLength(const Int_t p, const Int_t c) const { return fClength[p][c]; };
+ 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& , TMatrix& ) const { };
+ virtual void GetGlobal(const AliRecPoint* , TVector3& , TMatrixF& ) const { };
virtual void GetGlobal(const AliRecPoint* , TVector3& ) const { };
static Double_t GetAlpha() { return 2 * 3.14159265358979323846 / fgkNsect; };
+ static AliTRDgeometry* GetGeometry(AliRunLoader* runLoader = NULL);
+
+ static Float_t GetTime0(Int_t p) { return fgkTime0[p]; };
+
protected:
static const Int_t fgkNsect; // Number of sectors in the full detector (18)
Float_t fRotB21[kNsect]; // Matrix elements for the backward rotation
Float_t fRotB22[kNsect]; // Matrix elements for the backward rotation
+ static const Double_t fgkTime0Base; // Base value for calculation of Time-position of pad 0
+ static const Float_t fgkTime0[kNplan]; // Time-position of pad 0
+
ClassDef(AliTRDgeometry,6) // TRD geometry base class
};