]>
Commit | Line | Data |
---|---|---|
dd9a6ee3 | 1 | #ifndef ALITRDGEOMETRY_H |
2 | #define ALITRDGEOMETRY_H | |
f7336fa3 | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
8 | #include <TObject.h> | |
9 | #include <TMath.h> | |
10 | ||
11 | #include "AliRun.h" | |
12 | #include "AliRecPoint.h" | |
94de3818 | 13 | #include "AliGeometry.h" |
f7336fa3 | 14 | |
15 | #include "AliTRDconst.h" | |
16 | ||
17 | class AliTRDgeometry : public AliGeometry { | |
18 | ||
19 | public: | |
20 | ||
21 | AliTRDgeometry(); | |
8230f242 | 22 | virtual ~AliTRDgeometry(); |
f7336fa3 | 23 | |
8230f242 | 24 | virtual void CreateGeometry(Int_t *idtmed); |
f7336fa3 | 25 | virtual Int_t IsVersion() const = 0; |
26 | virtual void Init(); | |
94de3818 | 27 | virtual Bool_t Local2Global(Int_t d, Float_t *local, Float_t *global) const; |
28 | virtual Bool_t Local2Global(Int_t p, Int_t c, Int_t s, Float_t *local, Float_t *global) const; | |
f7336fa3 | 29 | virtual Bool_t Rotate(Int_t d, Float_t *pos, Float_t *rot); |
94de3818 | 30 | virtual Bool_t RotateBack(Int_t d, Float_t *rot, Float_t *pos) const; |
f7336fa3 | 31 | |
6f1e466d | 32 | virtual void SetPHOShole() = 0; |
33 | virtual void SetRICHhole() = 0; | |
34 | ||
f7336fa3 | 35 | virtual void SetRowPadSize(Float_t size) { fRowPadSize = size; }; |
36 | virtual void SetColPadSize(Float_t size) { fColPadSize = size; }; | |
37 | virtual void SetTimeBinSize(Float_t size) { fTimeBinSize = size; }; | |
38 | ||
6f1e466d | 39 | virtual Bool_t GetPHOShole() = 0; |
40 | virtual Bool_t GetRICHhole() = 0; | |
41 | ||
94de3818 | 42 | virtual Int_t GetDetector(Int_t p, Int_t c, Int_t s) const; |
43 | virtual Int_t GetPlane(Int_t d) const; | |
44 | virtual Int_t GetChamber(Int_t d) const; | |
45 | virtual Int_t GetSector(Int_t d) const; | |
f7336fa3 | 46 | |
47 | virtual Int_t GetRowMax(Int_t p, Int_t c, Int_t s) { return fRowMax[p][c][s]; }; | |
48 | virtual Int_t GetColMax(Int_t p) { return fColMax[p]; }; | |
49 | virtual Int_t GetTimeMax() { return fTimeMax; }; | |
50 | ||
94de3818 | 51 | virtual Float_t GetRow0(Int_t p, Int_t c, Int_t s) const { return fRow0[p][c][s]; }; |
52 | virtual Float_t GetCol0(Int_t p) const { return fCol0[p]; }; | |
53 | virtual Float_t GetTime0(Int_t p) const { return fTime0[p]; }; | |
f7336fa3 | 54 | |
94de3818 | 55 | virtual Float_t GetRowPadSize() const { return fRowPadSize; }; |
56 | virtual Float_t GetColPadSize() const { return fColPadSize; }; | |
57 | virtual Float_t GetTimeBinSize() const { return fTimeBinSize; }; | |
f7336fa3 | 58 | |
94de3818 | 59 | virtual void GetGlobal(const AliRecPoint *p, TVector3 &pos, TMatrix &mat) const; |
60 | virtual void GetGlobal(const AliRecPoint *p, TVector3 &pos) const; | |
f7336fa3 | 61 | |
62 | protected: | |
63 | ||
64 | Float_t fCwidth[kNplan]; // Width of the chambers | |
65 | ||
66 | Int_t fRowMax[kNplan][kNcham][kNsect]; // Number of pad-rows | |
67 | Int_t fColMax[kNplan]; // Number of pad-columns | |
68 | Int_t fTimeMax; // Number of time buckets | |
69 | ||
70 | Float_t fRow0[kNplan][kNcham][kNsect]; // Row-position of pad 0 | |
71 | Float_t fCol0[kNplan]; // Column-position of pad 0 | |
72 | Float_t fTime0[kNplan]; // Time-position of pad 0 | |
73 | ||
74 | Float_t fRowPadSize; // Pad size in z-direction | |
75 | Float_t fColPadSize; // Pad size in rphi-direction | |
76 | Float_t fTimeBinSize; // Size of the time buckets | |
77 | ||
78 | ClassDef(AliTRDgeometry,1) // TRD geometry base class | |
79 | ||
80 | }; | |
81 | ||
82 | #endif |