]>
Commit | Line | Data |
---|---|---|
1 | #ifndef TRDgeometry_h | |
2 | #define TRDgeometry_h | |
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" | |
13 | ||
14 | #include "AliTRDconst.h" | |
15 | ||
16 | class AliTRDgeometry : public AliGeometry { | |
17 | ||
18 | public: | |
19 | ||
20 | AliTRDgeometry(); | |
21 | ~AliTRDgeometry(); | |
22 | ||
23 | virtual void CreateGeometry(Int_t *); | |
24 | virtual Int_t IsVersion() const = 0; | |
25 | virtual void Init(); | |
26 | virtual Bool_t Local2Global(Int_t d, Float_t *local, Float_t *global); | |
27 | virtual Bool_t Local2Global(Int_t p, Int_t c, Int_t s, Float_t *local, Float_t *global); | |
28 | virtual Bool_t Rotate(Int_t d, Float_t *pos, Float_t *rot); | |
29 | virtual Bool_t RotateBack(Int_t d, Float_t *rot, Float_t *pos); | |
30 | ||
31 | virtual void SetRowPadSize(Float_t size) { fRowPadSize = size; }; | |
32 | virtual void SetColPadSize(Float_t size) { fColPadSize = size; }; | |
33 | virtual void SetTimeBinSize(Float_t size) { fTimeBinSize = size; }; | |
34 | ||
35 | virtual Int_t GetDetector(Int_t p, Int_t c, Int_t s); | |
36 | virtual Int_t GetPlane(Int_t d); | |
37 | virtual Int_t GetChamber(Int_t d); | |
38 | virtual Int_t GetSector(Int_t d); | |
39 | ||
40 | virtual Int_t GetRowMax(Int_t p, Int_t c, Int_t s) { return fRowMax[p][c][s]; }; | |
41 | virtual Int_t GetColMax(Int_t p) { return fColMax[p]; }; | |
42 | virtual Int_t GetTimeMax() { return fTimeMax; }; | |
43 | ||
44 | virtual Float_t GetRow0(Int_t p, Int_t c, Int_t s) { return fRow0[p][c][s]; }; | |
45 | virtual Float_t GetCol0(Int_t p) { return fCol0[p]; }; | |
46 | virtual Float_t GetTime0(Int_t p) { return fTime0[p]; }; | |
47 | ||
48 | virtual Float_t GetRowPadSize() { return fRowPadSize; }; | |
49 | virtual Float_t GetColPadSize() { return fColPadSize; }; | |
50 | virtual Float_t GetTimeBinSize() { return fTimeBinSize; }; | |
51 | ||
52 | virtual void GetGlobal(const AliRecPoint * p, TVector3 & pos, TMatrix & mat); | |
53 | virtual void GetGlobal(const AliRecPoint * p, TVector3 & pos); | |
54 | ||
55 | protected: | |
56 | ||
57 | Float_t fCwidth[kNplan]; // Width of the chambers | |
58 | ||
59 | Int_t fRowMax[kNplan][kNcham][kNsect]; // Number of pad-rows | |
60 | Int_t fColMax[kNplan]; // Number of pad-columns | |
61 | Int_t fTimeMax; // Number of time buckets | |
62 | ||
63 | Float_t fRow0[kNplan][kNcham][kNsect]; // Row-position of pad 0 | |
64 | Float_t fCol0[kNplan]; // Column-position of pad 0 | |
65 | Float_t fTime0[kNplan]; // Time-position of pad 0 | |
66 | ||
67 | Float_t fRowPadSize; // Pad size in z-direction | |
68 | Float_t fColPadSize; // Pad size in rphi-direction | |
69 | Float_t fTimeBinSize; // Size of the time buckets | |
70 | ||
71 | ClassDef(AliTRDgeometry,1) // TRD geometry base class | |
72 | ||
73 | }; | |
74 | ||
75 | #endif |