#include "AliGeometry.h"
+class AliRunLoader;
class AliTRDparameter;
class AliTRDgeometry : public AliGeometry {
virtual void CreateGeometry(Int_t *idtmed);
virtual Int_t IsVersion() const = 0;
virtual void Init();
- virtual Bool_t Impact(const TParticle * particle) 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 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 Impact(const TParticle* ) const { return kTRUE; };
+ virtual Bool_t Local2Global(Int_t d, Double_t *local, Double_t *global, AliTRDparameter *par) const;
+ virtual Bool_t Local2Global(Int_t p, Int_t c, Int_t s
+ , Double_t *local, Double_t *global, AliTRDparameter *par) const;
+
+ 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], AliTRDparameter *par);
+
+ 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 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]; };
-
- virtual void GetGlobal(const AliRecPoint *p, TVector3 &pos, TMatrix &mat) const { };
- virtual void GetGlobal(const AliRecPoint *p, TVector3 &pos) const { };
+ virtual Bool_t IsHole(Int_t /*iplan*/, Int_t /*icham*/, Int_t /*isect*/) const {return kFALSE;}
+ virtual Int_t GetDetectorSec(Int_t p, Int_t c) const;
+ virtual Int_t GetDetector(Int_t p, Int_t c, Int_t s) const;
+ virtual Int_t GetPlane(Int_t d) const;
+ virtual Int_t GetChamber(Int_t d) const;
+ virtual Int_t GetSector(Int_t d) const;
+
+ 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& ) const { };
static Double_t GetAlpha() { return 2 * 3.14159265358979323846 / fgkNsect; };
- protected:
+ static AliTRDgeometry* GetGeometry(AliRunLoader* runLoader = NULL);
+ protected:
+
static const Int_t fgkNsect; // Number of sectors in the full detector (18)
static const Int_t fgkNplan; // Number of planes of the TRD (6)
static const Int_t fgkNcham; // Number of chambers in z-direction (5)
static const Float_t fgkSlenTR2; // Length of the TRD-volume in spaceframe (BTR2)
static const Float_t fgkSlenTR3; // Length of the TRD-volume in spaceframe (BTR3)
+ static const Float_t fgkSMpltT; // Thickness of the super module side plates
+ static const Float_t fgkSMgapT; // Thickness of the gap between side plates and space frame
+
static const Float_t fgkCraH; // Height of the radiator part of the chambers
static const Float_t fgkCdrH; // Height of the drift region of the chambers
static const Float_t fgkCamH; // Height of the amplification region of the chambers
Float_t fRotB21[kNsect]; // Matrix elements for the backward rotation
Float_t fRotB22[kNsect]; // Matrix elements for the backward rotation
- ClassDef(AliTRDgeometry,5) // TRD geometry base class
+ ClassDef(AliTRDgeometry,6) // TRD geometry base class
};