]> git.uio.no Git - u/mrichter/AliRoot.git/blob - FMD/AliFMD3.h
Temporary disable the raw version, it will be taken from FEE
[u/mrichter/AliRoot.git] / FMD / AliFMD3.h
1 //
2 // $Id$
3 //
4 #ifndef ALIFMD3_H
5 #define ALIFMD3_H
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 */
11 // Geometry parameters of the FMD3 detector. FMD3 has a fairly
12 // complicated support structure.  The cone also supports the
13 // beam-pipe. 
14 // 
15 #ifndef ALIFMDDETECTOR_H
16 # include "AliFMDDetector.h"
17 #endif
18
19 /** @class AliFMD3 AliFMD3.h <FMD/AliFMD3.h> 
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 
24     @ingroup FMD_base
25 */
26 class AliFMD3 : public AliFMDDetector 
27 {
28 public: 
29   /** Constructor 
30       @param inner Pointer to inner ring description 
31       @param outer Pointer to outer ring description */
32   AliFMD3(AliFMDRing* inner, AliFMDRing* outer);
33   /** Destructor */
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 */
56   void SetBeamWidth(Double_t w=6) { fBeamWidth = w; }
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);
121 };
122
123 #endif
124 //____________________________________________________________________
125 //
126 // Local Variables:
127 //   mode: C++
128 // End:
129 //
130 //
131 // EOF
132 //