]>
Commit | Line | Data |
---|---|---|
0d0e6995 | 1 | #ifndef ALIFMDRING_H |
2 | #define ALIFMDRING_H | |
4347b38f | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights |
4 | * reserved. | |
5 | * | |
6 | * Latest changes by Christian Holm Christensen <cholm@nbi.dk> | |
7 | * | |
8 | * See cxx source for full Copyright notice | |
9 | */ | |
4347b38f | 10 | #ifndef ALIFMDPOLYGON_H |
11 | # include <AliFMDPolygon.h> | |
12 | #endif | |
13 | #ifndef ROOT_TArrayI | |
14 | # include <TArrayI.h> | |
15 | #endif | |
16 | ||
17 | class TBrowser; | |
18 | class TNode; | |
19 | class TObjArray; | |
20 | class TShape; | |
21 | class TList; | |
22 | ||
23 | ||
24 | //__________________________________________________________________ | |
42403906 | 25 | class AliFMDRing : public TObject |
4347b38f | 26 | { |
4347b38f | 27 | public: |
4347b38f | 28 | AliFMDRing(Char_t id='\0', Bool_t detailed=kTRUE); |
29 | virtual ~AliFMDRing(); | |
30 | void Init(); | |
31 | bool IsWithin(size_t moduleNo, double x, double y) const; | |
32 | void SetupCoordinates(); | |
33 | void SetupGeometry(Int_t vacuumId, Int_t siId, Int_t pcbId, | |
34 | Int_t pbRotId, Int_t idRotId); | |
35 | void Geometry(const char* mother, Int_t baseId, Double_t z, Int_t pbRotId, | |
36 | Int_t idRotId); | |
37 | void SimpleGeometry(TList* nodes, | |
38 | TNode* mother, | |
39 | Int_t colour, | |
40 | Double_t z, | |
41 | Int_t n); | |
42 | void Gsatt(); | |
43 | void Draw(Option_t* opt="HOL") const; //*MENU* | |
44 | void Browse(TBrowser* b); | |
45 | Bool_t IsFolder() const { return kTRUE; } | |
46 | ||
47 | Char_t GetId() const { return fId; } | |
48 | Int_t GetActiveId() const { return fActiveId; } | |
49 | Int_t GetPrintboardBottomId() const { return fPrintboardBottomId; } | |
50 | Int_t GetPrintboardTopId() const { return fPrintboardTopId; } | |
51 | Int_t GetRingId() const { return fRingId; } | |
52 | Int_t GetSectionId() const { return fSectionId; } | |
53 | Int_t GetStripId() const { return fStripId; } | |
54 | Int_t GetVirtualBackId() const { return fVirtualBackId; } | |
55 | Int_t GetVirtualFrontId() const { return fVirtualFrontId; } | |
56 | Double_t GetBondingWidth() const { return fBondingWidth; } | |
57 | Double_t GetWaferRadius() const { return fWaferRadius; } | |
58 | Double_t GetSiThickness() const { return fSiThickness; } | |
59 | Double_t GetLowR() const { return fLowR; } | |
60 | Double_t GetHighR() const { return fHighR; } | |
61 | Double_t GetTheta() const { return fTheta; } | |
62 | Int_t GetNStrips() const { return fNStrips; } | |
63 | Int_t GetNSectors() const { return Int_t(360 / fTheta); } | |
64 | Double_t GetLegRadius() const { return fLegRadius; } | |
65 | Double_t GetLegLength() const { return fLegLength; } | |
66 | Double_t GetModuleSpacing() const { return fModuleSpacing; } | |
67 | Double_t GetPrintboardThickness() const { return fPrintboardThickness; } | |
68 | Double_t GetRingDepth() const { return fRingDepth; } | |
69 | ||
70 | void SetBondingWidth(Double_t width) { fBondingWidth = width; } | |
71 | void SetWaferRadius(Double_t radius) { fWaferRadius = radius; } | |
72 | void SetSiThickness(Double_t thickness) { fSiThickness = thickness; } | |
73 | void SetLowR(Double_t lowR) { fLowR = lowR; } | |
74 | void SetHighR(Double_t highR) { fHighR = highR; } | |
75 | void SetTheta(Double_t theta) { fTheta = theta; } | |
76 | void SetNStrips(Int_t nStrips) { fNStrips = nStrips; } | |
77 | void SetLegRadius(Double_t radius) { fLegRadius = radius; } | |
78 | void SetLegLength(Double_t length) { fLegLength = length; } | |
79 | void SetLegOffset(Double_t offset) { fLegOffset = offset; } | |
80 | ||
81 | void SetModuleSpacing(Double_t spacing) { fModuleSpacing = spacing; } | |
82 | void SetPrintboardThickness(Double_t thickness) { fPrintboardThickness = thickness; } | |
83 | ||
42403906 | 84 | protected: |
85 | Char_t fId; // ID | |
86 | Bool_t fDetailed; | |
87 | Int_t fActiveId; // Active volume | |
88 | Int_t fPrintboardBottomId; // Print board bottom volume | |
89 | Int_t fPrintboardTopId; // Print board top volume | |
90 | Int_t fRingId; // Ring volume | |
91 | Int_t fSectionId; // Section volumes | |
92 | Int_t fStripId; // Strip volumes | |
93 | Int_t fVirtualBackId; // Virtual Back volume | |
94 | Int_t fVirtualFrontId; // Virtual Front volume | |
95 | ||
96 | Double_t fBondingWidth; // With of bonding pad on sensor | |
97 | Double_t fWaferRadius; // Size of wafer the sensor was made from | |
98 | Double_t fSiThickness; // Thickness of sensor | |
99 | Double_t fLowR; // Lower radius of ring | |
100 | Double_t fHighR; // Upper radius of ring | |
101 | Double_t fTheta; // Opening angle of the silicon wafers | |
102 | Int_t fNStrips; // Number of strips | |
103 | Double_t fRingDepth; // How far the ring extends beyond | |
104 | // the z value given. | |
105 | Double_t fLegRadius; // Radius of support legs | |
106 | Double_t fLegLength; // Radius of support legs | |
107 | Double_t fLegOffset; // Radius of support legs | |
108 | ||
109 | Double_t fModuleSpacing; // Staggering offset | |
110 | Double_t fPrintboardThickness; // Thickness of print board | |
111 | ||
112 | TArrayI fRotations; // Array of rotations | |
113 | TShape* fShape; // Shape used for event display | |
114 | TObjArray* fRotMatricies; // Matricies used for event display | |
115 | ||
116 | AliFMDPolygon fPolygon; // Polygon shape | |
117 | ||
0d0e6995 | 118 | ClassDef(AliFMDRing, 1) // FMD Ring volume parameters |
4347b38f | 119 | }; |
120 | #endif | |
0d0e6995 | 121 | //____________________________________________________________________ |
122 | // | |
123 | // Local Variables: | |
124 | // mode: C++ | |
125 | // End: | |
4347b38f | 126 | // |
127 | // EOF | |
128 | // |