Line data Source code
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 : #include <TObjArray.h>
19 :
20 : /** @class AliFMD3 AliFMD3.h <FMD/AliFMD3.h>
21 : @brief Geometry parameters of the FMD3 detector.
22 : FMD3 has a fairly complicated support structure. The cone also
23 : supports the beam-pipe.
24 : @image html FMD3.png
25 : @ingroup FMD_base
26 : */
27 : class AliFMD3 : public AliFMDDetector
28 : {
29 : public:
30 : /** Constructor
31 : @param inner Pointer to inner ring description
32 : @param outer Pointer to outer ring description */
33 : AliFMD3(AliFMDRing* inner, AliFMDRing* outer);
34 : /** Destructor */
35 0 : virtual ~AliFMD3(){}
36 :
37 : /** Initialize the geometry */
38 : virtual void Init();
39 : /** Get the Z offset (to inner ring) */
40 12 : Double_t GetNoseZ() const { return fNoseZ; }
41 :
42 : /** @return Z position of front of nose */
43 2 : Double_t GetFlangeDepth() const { return fFlangeDepth; }
44 : /** @return Nose inner radius */
45 2 : Double_t GetFlangeLength() const { return fFlangeLength; }
46 : /** @return Nose outer radius */
47 2 : Double_t GetFlangeWidth() const { return fFlangeWidth; }
48 :
49 : /** @return Length of nose in Z */
50 2 : Double_t GetFiducialRadius() const { return fFiducialRadius; }
51 :
52 : /** @return The angle of the cone on out-side */
53 10 : Double_t GetConeOuterAngle() const { return fConeOuterAngle; }
54 : /** @return The angle of the cone on out-side */
55 0 : Double_t GetConeInnerAngle() const { return fConeInnerAngle; }
56 :
57 : /** @return Hole off-set from nose */
58 2 : Double_t GetHoleOffset() const { return fHoleOffset; }
59 : /** @return Depth of holes */
60 2 : Double_t GetHoleDepth() const { return fHoleDepth; }
61 : /** @return Length of holes */
62 2 : Double_t GetHoleLength() const { return fHoleLength; }
63 : /** @return Lowest with of holes */
64 2 : Double_t GetHoleLowWidth() const { return fHoleLowWidth; }
65 : /** @return Highest width of holes */
66 2 : Double_t GetHoleHighWidth() const { return fHoleHighWidth; }
67 :
68 : /** @return Length of a bolt */
69 2 : Double_t GetBoltLength() const { return fBoltLength; }
70 : /** @return Bolt radius */
71 2 : Double_t GetBoltRadius() const { return fBoltRadius; }
72 :
73 :
74 : /** @return array of 3-vectors (z, r_low, r_high) of the cone
75 : radii. */
76 2 : const TObjArray& ConeRadii() const { return fConeRadii; }
77 : /** @return array of 2-vectors (x,y) of the fiducial holes in the
78 : flanges. coordinates are in the global coordinate
79 : system. */
80 2 : const TObjArray& FiducialHoles() const { return fFiducialHoles; }
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 fFlangeDepth; // Depth of flanges
92 : Double_t fFlangeHighR; // Outer radius of flanges.
93 : Double_t fFlangeLength; // Length of flanges
94 : Double_t fFlangeWidth; // Width of flanges
95 :
96 : Double_t fFiducialRadius; // Radius of fiducial holes.
97 :
98 : Double_t fConeInnerAngle; // Angle of cone on inside
99 : Double_t fConeOuterAngle; // Angle of cone on outside
100 :
101 : Double_t fHoleOffset; // Offset (from nose-tip) of
102 : // holes
103 : Double_t fHoleDepth; // Depth of holes
104 : Double_t fHoleLength; // Length of holes
105 : Double_t fHoleLowWidth; // Lowest with of holes
106 : Double_t fHoleHighWidth; // Highest width of holes
107 :
108 : Double_t fBoltLength; // Length of a bolt
109 : Double_t fBoltRadius; // Bolt radius
110 :
111 : TObjArray fConeRadii; // Array of cone radii.
112 : TObjArray fFiducialHoles; // Array of fiducial hole (x,y)
113 :
114 11956850 : ClassDef(AliFMD3, 2);
115 : };
116 :
117 : #endif
118 : //____________________________________________________________________
119 : //
120 : // Local Variables:
121 : // mode: C++
122 : // End:
123 : //
124 : //
125 : // EOF
126 : //
|