]>
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 |
ed82d35e | 18 | #include <TObjArray.h> |
4347b38f | 19 | |
9f662337 | 20 | /** @class AliFMD3 AliFMD3.h <FMD/AliFMD3.h> |
c2fc1258 | 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 | |
9f662337 | 25 | @ingroup FMD_base |
26 | */ | |
1a1fdef7 | 27 | class AliFMD3 : public AliFMDDetector |
4347b38f | 28 | { |
1a1fdef7 | 29 | public: |
9f662337 | 30 | /** Constructor |
31 | @param inner Pointer to inner ring description | |
32 | @param outer Pointer to outer ring description */ | |
1a1fdef7 | 33 | AliFMD3(AliFMDRing* inner, AliFMDRing* outer); |
9f662337 | 34 | /** Destructor */ |
1a1fdef7 | 35 | virtual ~AliFMD3(){} |
36 | ||
37 | /** Initialize the geometry */ | |
38 | virtual void Init(); | |
ed82d35e | 39 | /** Get the Z offset (to inner ring) */ |
40 | Double_t GetNoseZ() const { return fNoseZ; } | |
1a1fdef7 | 41 | |
42 | /** @return Z position of front of nose */ | |
ed82d35e | 43 | Double_t GetFlangeDepth() const { return fFlangeDepth; } |
1a1fdef7 | 44 | /** @return Nose inner radius */ |
ed82d35e | 45 | Double_t GetFlangeLength() const { return fFlangeLength; } |
1a1fdef7 | 46 | /** @return Nose outer radius */ |
ed82d35e | 47 | Double_t GetFlangeWidth() const { return fFlangeWidth; } |
48 | ||
1a1fdef7 | 49 | /** @return Length of nose in Z */ |
ed82d35e | 50 | Double_t GetFiducialRadius() const { return fFiducialRadius; } |
51 | ||
52 | /** @return The angle of the cone on out-side */ | |
53 | Double_t GetConeOuterAngle() const { return fConeOuterAngle; } | |
54 | /** @return The angle of the cone on out-side */ | |
55 | Double_t GetConeInnerAngle() const { return fConeInnerAngle; } | |
56 | ||
57 | /** @return Hole off-set from nose */ | |
58 | Double_t GetHoleOffset() const { return fHoleOffset; } | |
59 | /** @return Depth of holes */ | |
60 | Double_t GetHoleDepth() const { return fHoleDepth; } | |
61 | /** @return Length of holes */ | |
62 | Double_t GetHoleLength() const { return fHoleLength; } | |
63 | /** @return Lowest with of holes */ | |
64 | Double_t GetHoleLowWidth() const { return fHoleLowWidth; } | |
65 | /** @return Highest width of holes */ | |
66 | Double_t GetHoleHighWidth() const { return fHoleHighWidth; } | |
1a1fdef7 | 67 | |
ed82d35e | 68 | /** @return Length of a bolt */ |
69 | Double_t GetBoltLength() const { return fBoltLength; } | |
70 | /** @return Bolt radius */ | |
71 | 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 | 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 | const TObjArray& FiducialHoles() const { return fFiducialHoles; } | |
81 | ||
1a1fdef7 | 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 | |
ed82d35e | 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 | ClassDef(AliFMD3, 2); | |
4347b38f | 115 | }; |
116 | ||
117 | #endif | |
0d0e6995 | 118 | //____________________________________________________________________ |
119 | // | |
120 | // Local Variables: | |
121 | // mode: C++ | |
122 | // End: | |
123 | // | |
4347b38f | 124 | // |
125 | // EOF | |
126 | // |