fix in Gain
[u/mrichter/AliRoot.git] / FMD / AliFMD3.h
CommitLineData
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
088f8e79 11// Geometry description and parameters of the FMD3 detector.
12// FMD3 has a fairly complicated support structure.
13// The cone also supports the beam-pipe.
14//
1a1fdef7 15class AliFMD3 : public AliFMDDetector
4347b38f 16{
1a1fdef7 17public:
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
89protected:
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//