]>
Commit | Line | Data |
---|---|---|
e0d47c25 | 1 | #ifndef ALITRDPADPLANE_H |
2 | #define ALITRDPADPLANE_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id: AliTRDpadPlane.h,v */ | |
7 | ||
8 | ////////////////////////////////////////////////// | |
9 | // // | |
10 | // TRD pad plane class // | |
11 | // // | |
12 | // Contains the information on pad postions, // | |
13 | // pad dimensions, tilting angle, etc. // | |
14 | // It also provides methods to identify the // | |
15 | // current pad number from global coordinates. // | |
16 | // // | |
17 | ////////////////////////////////////////////////// | |
18 | ||
19 | #include <TObject.h> | |
20 | ||
21 | class AliTRDgeometry; | |
22 | ||
23 | //_____________________________________________________________________________ | |
24 | class AliTRDpadPlane : public TObject { | |
25 | ||
26 | public: | |
27 | ||
28 | AliTRDpadPlane(); | |
29 | AliTRDpadPlane(Int_t p, Int_t c); | |
30 | AliTRDpadPlane(const AliTRDpadPlane &p); | |
31 | virtual ~AliTRDpadPlane(); | |
32 | AliTRDpadPlane &operator=(const AliTRDpadPlane &p); | |
33 | virtual void Copy(TObject &p) const; | |
34 | ||
98ce8151 | 35 | Int_t GetPadRowNumber(Double_t z) const; |
36 | Int_t GetPadColNumber(Double_t rphi, Double_t rowOffset) const; | |
6d17a2b7 | 37 | Double_t GetTiltOffset(Double_t rowOffset) const |
38 | { return fTiltingTan * (rowOffset - 0.5*fLengthIPad); }; | |
98ce8151 | 39 | Double_t GetPadRowOffset(Int_t row, Double_t z) const |
a5cadd36 | 40 | { if ((row < 0) || (row >= fNrows)) |
41 | return -1.0; | |
42 | else | |
43 | return fPadRow[row] - z; }; | |
44 | ||
98ce8151 | 45 | Double_t GetPadColOffset(Int_t col, Double_t rphi) const |
a5cadd36 | 46 | { if ((col < 0) || (col >= fNcols)) |
47 | return -1.0; | |
48 | else | |
49 | return fPadCol[col] - rphi; }; | |
50 | ||
51 | Double_t GetTiltingAngle() const { return fTiltingAngle; }; | |
52 | ||
53 | Int_t GetNrows() const { return fNrows; }; | |
54 | Int_t GetNcols() const { return fNcols; }; | |
55 | ||
56 | Double_t GetRow0() const { return fPadRow[0]; }; | |
57 | Double_t GetCol0() const { return fPadCol[0]; }; | |
58 | ||
d3d2d3e8 | 59 | Double_t GetRowEnd() const { return fPadRow[fNrows-1] - fLengthOPad; }; |
60 | Double_t GetColEnd() const { return fPadCol[fNcols-1] - fWidthOPad; }; | |
a5cadd36 | 61 | |
3becff3c | 62 | Double_t GetRowPos(Int_t row) const { return fPadRow[row]; }; |
63 | Double_t GetColPos(Int_t col) const { return fPadCol[col]; }; | |
e0d47c25 | 64 | |
3becff3c | 65 | Double_t GetRowSize(Int_t row) const { if ((row == 0) || (row == fNrows-1)) |
a5cadd36 | 66 | return fLengthOPad; |
67 | else | |
68 | return fLengthIPad; }; | |
3becff3c | 69 | Double_t GetColSize(Int_t col) const { if ((col == 0) || (col == fNcols-1)) |
a5cadd36 | 70 | return fWidthOPad; |
71 | else | |
3becff3c | 72 | return fWidthIPad; }; |
73 | Double_t GetLengthRim() const { return fLengthRim; }; | |
a5cadd36 | 74 | |
e0d47c25 | 75 | protected: |
76 | ||
77 | AliTRDgeometry *fGeo; //! TRD geometry | |
78 | ||
79 | Int_t fPla; // Plane number | |
80 | Int_t fCha; // Chamber number | |
81 | ||
82 | Double_t fLength; // Length of pad plane in z-direction (row) | |
83 | Double_t fWidth; // Width of pad plane in rphi-direction (col) | |
84 | ||
85 | Double_t fLengthRim; // Length of the rim in z-direction (row) | |
86 | Double_t fWidthRim; // Width of the rim in rphi-direction (col) | |
87 | ||
88 | Double_t fLengthOPad; // Length of an outer pad in z-direction (row) | |
89 | Double_t fWidthOPad; // Width of an outer pad in rphi-direction (col) | |
90 | ||
91 | Double_t fLengthIPad; // Length of an inner pad in z-direction (row) | |
92 | Double_t fWidthIPad; // Width of an inner pad in rphi-direction (col) | |
93 | ||
94 | Double_t fRowSpacing; // Spacing between the pad rows | |
95 | Double_t fColSpacing; // Spacing between the pad columns | |
96 | ||
97 | Int_t fNrows; // Number of rows | |
98 | Int_t fNcols; // Number of columns | |
99 | ||
100 | Double_t fTiltingAngle; // Pad tilting angle | |
4ffb371b | 101 | Double_t fTiltingTan; // Tangens of pad tilting angle |
e0d47c25 | 102 | |
103 | Double_t *fPadRow; //! Pad border positions in row direction | |
104 | Double_t *fPadCol; //! Pad border positions in column direction | |
105 | ||
4ffb371b | 106 | ClassDef(AliTRDpadPlane,2) // TRD ROC pad plane |
e0d47c25 | 107 | |
108 | }; | |
109 | ||
110 | #endif |