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