Adding position dependendent Q normalization (Marian)
[u/mrichter/AliRoot.git] / FMD / AliFMD3.h
CommitLineData
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 26class AliFMD3 : public AliFMDDetector
4347b38f 27{
1a1fdef7 28public:
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
104protected:
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//