]>
Commit | Line | Data |
---|---|---|
4347b38f | 1 | // |
2 | // $Id$ | |
3 | // | |
4 | #ifndef ALIFMD3_H | |
5 | #define ALIFMD3_H | |
6 | ||
1a1fdef7 | 7 | #ifndef ALIFMDDETECTOR_H |
8 | # include "AliFMDDetector.h" | |
a16179cb | 9 | #endif |
4347b38f | 10 | |
1a1fdef7 | 11 | /** Geometry description and parameters of the FMD3 detector. |
12 | ||
13 | FMD3 has a fairly complicated support structure | |
14 | */ | |
15 | class AliFMD3 : public AliFMDDetector | |
4347b38f | 16 | { |
1a1fdef7 | 17 | public: |
18 | AliFMD3(AliFMDRing* inner, AliFMDRing* outer); | |
19 | virtual ~AliFMD3(){} | |
20 | ||
21 | /** Initialize the geometry */ | |
22 | virtual void Init(); | |
23 | ||
24 | /** @param z Z position of front of nose */ | |
25 | void SetNoseZ(Double_t z=-46) { fNoseZ = z; } | |
26 | /** @param r Nose inner radius */ | |
27 | void SetNoseLowR(Double_t r=5.5) { fNoseLowR = r; } | |
28 | /** @param r Nose outer radius */ | |
29 | void SetNoseHighR(Double_t r=6.7) { fNoseHighR = r; } | |
30 | /** @param l Length of nose in Z */ | |
31 | void SetNoseLength(Double_t l=2.8) { fNoseLength = l; } | |
32 | /** @param r Inner radius of base of cone */ | |
33 | void SetBackLowR(Double_t r=61./2) { fBackLowR = r; } | |
34 | /** @param r Outer radius of base of cone */ | |
35 | void SetBackHighR(Double_t r=66.8/2) { fBackHighR = r; } | |
36 | /** @param l Length of base of cone in Z */ | |
37 | void SetBackLength(Double_t l=1.4) { fBackLength = l; } | |
38 | /** @param t Thickness of support beams */ | |
39 | void SetBeamThickness(Double_t t=.5) { fBeamThickness = t; } | |
40 | /** @param w Width of support beams */ | |
41 | void SetBeamWidth(Double_t w=6) { fBeamWidth = w; } | |
42 | /** @param l Length of the cone in Z */ | |
43 | void SetConeLength(Double_t l=30.9) { fConeLength = l; } | |
44 | /** @param r Outer radius of flanges */ | |
45 | void SetFlangeR(Double_t r=49.25) { fFlangeR = r; } | |
46 | /** @param n Number of support beams */ | |
47 | void SetNBeam(Int_t n=8) { fNBeam = n; } | |
48 | /** @param n Number of support flanges */ | |
49 | void SetNFlange(Int_t n=4) { fNFlange = n; } | |
50 | ||
51 | /** @return Z position of front of nose */ | |
52 | Double_t GetNoseZ() const { return fNoseZ; } | |
53 | /** @return Nose inner radius */ | |
54 | Double_t GetNoseLowR() const { return fNoseLowR; } | |
55 | /** @return Nose outer radius */ | |
56 | Double_t GetNoseHighR() const { return fNoseHighR; } | |
57 | /** @return Length of nose in Z */ | |
58 | Double_t GetNoseLength() const { return fNoseLength; } | |
59 | /** @return Inner radius of base of cone */ | |
60 | Double_t GetBackLowR() const { return fBackLowR; } | |
61 | /** @return Outer radius of base of cone */ | |
62 | Double_t GetBackHighR() const { return fBackHighR; } | |
63 | /** @return Length of base of cone in Z */ | |
64 | Double_t GetBackLength() const { return fBackLength; } | |
65 | /** @return Thickness of support beams */ | |
66 | Double_t GetBeamThickness() const { return fBeamThickness; } | |
67 | /** @return Width of support beams */ | |
68 | Double_t GetBeamWidth() const { return fBeamWidth; } | |
69 | /** @return Length of the cone in Z */ | |
70 | Double_t GetConeLength() const { return fConeLength; } | |
71 | /** @return Outer radius of flanges */ | |
72 | Double_t GetFlangeR() const { return fFlangeR; } | |
73 | /** @return Midpoint of mother volume */ | |
74 | Double_t GetZ() const { return fZ; } | |
75 | /** @return Slope of cone */ | |
76 | Double_t GetAlpha() const { return fAlpha; } | |
77 | /** @return Number of support beams */ | |
78 | Int_t GetNBeam() const { return fNBeam; } | |
79 | /** @return Number of support flanges */ | |
80 | Int_t GetNFlange() const { return fNFlange; } | |
81 | ||
82 | /** Get the cone radii at @a z. | |
83 | @param z Point to evaulate at | |
84 | @param opt If @c "O" get the outer radii, if @c "I" get the | |
85 | inner radii. | |
86 | @return the radius of the cone */ | |
87 | Double_t ConeR(Double_t z, Option_t* opt="O") const; | |
88 | ||
89 | protected: | |
90 | Double_t fNoseZ; // Z position of front of nose | |
91 | Double_t fNoseLowR; // Nose inner radius | |
92 | Double_t fNoseHighR; // Nose outer radius | |
93 | Double_t fNoseLength; // Length of nose in Z | |
94 | Double_t fBackLowR; // Inner radius of base of cone | |
95 | Double_t fBackHighR; // Outer radius of base of cone | |
96 | Double_t fBackLength; // Length of base of cone in Z | |
97 | Double_t fBeamThickness; // Thickness of support beams | |
98 | Double_t fBeamWidth; // Width of support beams | |
99 | Double_t fConeLength; // Length of the cone in Z | |
100 | Double_t fFlangeR; // Outer radius of flanges | |
101 | Double_t fZ; // Midpoint of mother volume | |
102 | Double_t fAlpha; // Slope of cone | |
103 | Int_t fNBeam; // Number of support beams | |
104 | Int_t fNFlange; // Number of support flangesy | |
105 | ClassDef(AliFMD3, 1); | |
4347b38f | 106 | }; |
107 | ||
108 | #endif | |
0d0e6995 | 109 | //____________________________________________________________________ |
110 | // | |
111 | // Local Variables: | |
112 | // mode: C++ | |
113 | // End: | |
114 | // | |
4347b38f | 115 | // |
116 | // EOF | |
117 | // |