]>
Commit | Line | Data |
---|---|---|
d7599219 | 1 | //************************************************************************* |
2 | // class AliITSv11GeometrySSD | |
3 | // Enrico Cattaruzza ecattar@ts.infn.it | |
4 | //************************************************************************* | |
5 | #ifndef ALIITSV11GEOMETRYSSD_H | |
6 | #define ALIITSV11GEOMETRYSSD_H | |
44285dfa | 7 | #include <TObject.h> |
d7599219 | 8 | class TGeoVolume; |
9 | class TGeoCombiTrans; | |
10 | class TGeoMedium; | |
11 | class TGeoCompositeShape; | |
44285dfa | 12 | class TGeoMatrix; |
d7599219 | 13 | class TVector3; |
14 | class TGeoArb8; | |
15 | class TList; | |
16 | class TGeoTube; | |
17 | class TGeoHMatrix; | |
44285dfa | 18 | class AliITSv11GeometrySSD: public TObject { |
d7599219 | 19 | public: |
20 | AliITSv11GeometrySSD(); | |
44285dfa | 21 | AliITSv11GeometrySSD(const AliITSv11GeometrySSD &source); |
22 | AliITSv11GeometrySSD& operator=(const AliITSv11GeometrySSD &source); | |
d7599219 | 23 | virtual ~AliITSv11GeometrySSD(){}; |
24 | ///////////////////////////////////////////////////////////////////////// | |
25 | // Public methods | |
26 | ///////////////////////////////////////////////////////////////////////// | |
d7599219 | 27 | const char* GetSensitiveVolumeName() const {return fgkSSDSensitiveVolName;}; |
44285dfa | 28 | // Method returning the name of the sensitive part of detector |
29 | ///////////////////////////////////////////////////////////////////////// | |
30 | TGeoVolume* GetSSDSensorSupportShape(Double_t length,Double_t height, | |
31 | Double_t width,Double_t* thickness); | |
32 | // Method returning the name of the sensitive part of detector | |
33 | ///////////////////////////////////////////////////////////////////////// | |
34 | TGeoVolume* GetSSDSensorSupport(Int_t VolumeKind,Int_t n); | |
35 | // Method returning the SSD Sensor Support | |
36 | ///////////////////////////////////////////////////////////////////////// | |
37 | TGeoVolume* GetSSDSensorSupportAssembly(Int_t n); | |
38 | // Method returning the SSD Sensor Support Assembly | |
39 | ///////////////////////////////////////////////////////////////////////// | |
d7599219 | 40 | TGeoVolume* GetSSDSensor(); |
44285dfa | 41 | // Method returning the SSD Sensor |
42 | ///////////////////////////////////////////////////////////////////////// | |
43 | TGeoVolume* GetSSDChipAssembly() const; | |
44 | // Method returning the SSD Chip Assembly | |
45 | ///////////////////////////////////////////////////////////////////////// | |
46 | TGeoVolume* GetSSDChipCables(Double_t ssdchipcablesheigth,char* side); | |
47 | // Method returning the SSD Chip Cables | |
48 | ///////////////////////////////////////////////////////////////////////// | |
49 | TGeoVolume* GetSSDChipCablesAssembly(Double_t ssdchipcablesheigth); | |
50 | // Method returning the SSD Chip Cables Assembly | |
51 | ///////////////////////////////////////////////////////////////////////// | |
d7599219 | 52 | TGeoVolume* GetSSDStiffenerAssembly(); |
44285dfa | 53 | // Method returning the SSD Stiffener Assembly |
54 | ///////////////////////////////////////////////////////////////////////// | |
55 | TGeoVolume* GetSSDFlex(Double_t ssdflexradius, Double_t ssdflexheigth); | |
56 | // Method returning the SSD Flex | |
57 | ///////////////////////////////////////////////////////////////////////// | |
58 | TGeoVolume* GetSSDEndFlex(Double_t ssdendflexlength,Double_t ssdflexheigth); | |
59 | // Method returning the SSD End Flex | |
60 | ///////////////////////////////////////////////////////////////////////// | |
d7599219 | 61 | TGeoVolume* GetSSDFlexAssembly(); |
44285dfa | 62 | // Method returning the SSD Flex Assembly |
63 | ///////////////////////////////////////////////////////////////////////// | |
d7599219 | 64 | TGeoVolume* GetSSDCoolingBlock(); |
44285dfa | 65 | // Method returning the SSD Cooling Block |
66 | ///////////////////////////////////////////////////////////////////////// | |
d7599219 | 67 | TGeoVolume* GetSSDCoolingBlockAssembly(); |
44285dfa | 68 | // Method returning the SSD Cooling Block Assembly |
69 | ///////////////////////////////////////////////////////////////////////// | |
70 | TGeoVolume* GetSSDModule(Int_t ichipcablesheight); | |
71 | // Method returning the SSD Module | |
72 | ///////////////////////////////////////////////////////////////////////// | |
73 | TGeoVolume* GetCarbonFiberJunction(Double_t width); | |
74 | // Method returning the Carbon Fiber Junction | |
75 | ///////////////////////////////////////////////////////////////////////// | |
d7599219 | 76 | TGeoVolume* GetCarbonFiberJunctionAssembly(); |
44285dfa | 77 | // Method returning the Carbon Fiber Junction Assembly |
78 | ///////////////////////////////////////////////////////////////////////// | |
79 | TList* GetLadderCableSegment(Double_t ssdendladdercablelength); | |
80 | // Method returning a List containing pointers to Ladder Cable Volumes | |
81 | ///////////////////////////////////////////////////////////////////////// | |
82 | TGeoVolume* GetLadderCable(Int_t n,Double_t ssdendladdercablelength); | |
83 | // Method generating Ladder Cable Volumes Assemblies | |
84 | ///////////////////////////////////////////////////////////////////////// | |
85 | TGeoVolume* GetLadderCableAssembly(Int_t n,Double_t ssdendladdercablelength); | |
86 | // Method generating Ladder Cable Volumes Assembly | |
87 | ///////////////////////////////////////////////////////////////////////// | |
88 | TList* GetLadderCableAssemblyList(Int_t n,Double_t ssdendladdercablelength); | |
89 | // Method generating Ladder Cable List Assemblies | |
90 | ///////////////////////////////////////////////////////////////////////// | |
d7599219 | 91 | TList* GetEndLadderCarbonFiberJunctionAssembly(); |
44285dfa | 92 | // Method generating the End Ladder Carbon Fiber Junction Assembly |
93 | ///////////////////////////////////////////////////////////////////////// | |
d7599219 | 94 | TGeoVolume* GetCarbonFiberSupport(); |
44285dfa | 95 | // Method generating the Carbon Fiber Support |
96 | ///////////////////////////////////////////////////////////////////////// | |
97 | TGeoVolume* GetCarbonFiberLowerSupport(Int_t i=0,Bool_t endladder = false); | |
98 | // Method generating the Carbon Fiber Lower Support | |
99 | ///////////////////////////////////////////////////////////////////////// | |
d7599219 | 100 | TGeoVolume* GetCarbonFiberAssemblySupport(); |
44285dfa | 101 | // Method generating the Carbon Fiber Assembly Support |
102 | ///////////////////////////////////////////////////////////////////////// | |
d7599219 | 103 | TGeoVolume* GetCoolingTubeSupport(); |
44285dfa | 104 | // Method generating the Cooling Tube Support |
105 | ///////////////////////////////////////////////////////////////////////// | |
d7599219 | 106 | TGeoVolume* GetCoolingTubeSupportAssembly(); |
44285dfa | 107 | // Method generating the Cooling Tube Support Assembly |
108 | ///////////////////////////////////////////////////////////////////////// | |
109 | TGeoVolume* GetCoolingTube() const; | |
110 | // Method generating the Cooling Tube | |
111 | ///////////////////////////////////////////////////////////////////////// | |
d7599219 | 112 | TGeoVolume* GetCoolingTubeAssembly(); |
44285dfa | 113 | // Method generating the Cooling Tube Assembly |
114 | ///////////////////////////////////////////////////////////////////////// | |
115 | TGeoVolume* GetLadderSegment(Int_t iChipCablesHeight); | |
116 | // Method generating the basic Ladder Segment element which will be replicated | |
117 | ///////////////////////////////////////////////////////////////////////// | |
d7599219 | 118 | TList* GetEndLadderSegment(); |
44285dfa | 119 | // Method generating the Terminal Ladder Segment |
120 | ///////////////////////////////////////////////////////////////////////// | |
d7599219 | 121 | TGeoVolume* GetSSDMountingBlock(); |
44285dfa | 122 | // Method generating the Terminal Ladder Mounting Block |
123 | ///////////////////////////////////////////////////////////////////////// | |
124 | TGeoVolume* GetLadder(Int_t iLayer); | |
125 | // Method generating the Layer5 or Layer6 Ladder | |
126 | ///////////////////////////////////////////////////////////////////////// | |
127 | TGeoVolume* GetLayer(Int_t iLayer); | |
128 | // Method generating the Layer5 or Layer6 | |
129 | ///////////////////////////////////////////////////////////////////////// | |
130 | void Layer5(TGeoVolume* mothervolume); | |
131 | // Method placing the Layer5 within mother volume | |
132 | ///////////////////////////////////////////////////////////////////////// | |
133 | void Layer6(TGeoVolume* mothervolume); | |
134 | // Method placing the Layer6 within mother volume | |
ae945501 | 135 | // TGeoMedium *GetMedium(char*); // to be interfaced with AliRoot |
d7599219 | 136 | ///////////////////////////////////////////////////////////////////////// |
137 | //Auxiliary methods for shapes building | |
138 | ///////////////////////////////////////////////////////////////////////// | |
44285dfa | 139 | TVector3* GetReflection(TVector3* vector,Double_t* param) const; |
140 | // Given an axis specified by param, it gives the reflection of the point | |
141 | // respect to the axis | |
142 | ///////////////////////////////////////////////////////////////////////// | |
143 | TGeoArb8* GetArbShape(TVector3* vertexpos[],Double_t* width, | |
144 | Double_t height,char* shapename,Int_t isign = 1) const; | |
145 | // Method generating an arb shape | |
146 | ///////////////////////////////////////////////////////////////////////// | |
147 | TGeoArb8* GetTriangleShape(TVector3* vertexpos[],Double_t height, char* shapename) const; | |
148 | // Method generating a triangle shape | |
149 | ///////////////////////////////////////////////////////////////////////// | |
150 | TGeoArb8* GetTrapezoidShape(TVector3* vertexpos[],Double_t* width, | |
151 | Double_t height,char* shapename) const; | |
152 | // Method generating a trapezoid shape | |
153 | ///////////////////////////////////////////////////////////////////////// | |
154 | TGeoCombiTrans* AddTranslationToCombiTrans(TGeoCombiTrans* ct,Double_t dx, | |
155 | Double_t dy,Double_t dz) const; | |
156 | // add (dx,dy,dz) translation to a initial TGeoCombiTrans | |
d7599219 | 157 | ///////////////////////////////////////////////////////////////////////// |
158 | //Auxiliary methods for material building | |
159 | ///////////////////////////////////////////////////////////////////////// | |
44285dfa | 160 | TGeoMedium* GetMedium(const char* mediumName); |
161 | // It returns the Medium | |
162 | ///////////////////////////////////////////////////////////////////////// | |
d7599219 | 163 | void CreateMaterials(); |
44285dfa | 164 | // it creates the matherials |
d7599219 | 165 | private: |
166 | ///////////////////////////////////////////////////////////////////////// | |
167 | // Layer5 (lengths are in mm and angles in degrees) | |
168 | ///////////////////////////////////////////////////////////////////////// | |
44285dfa | 169 | static const Double_t fgkSSDLay5LadderLength; // Ladder Layer5 Length |
170 | static const Int_t fgkSSDLay5SensorsNumber; // Ladder Layer5 Sensor Number | |
171 | static const Int_t fgkSSDLay5LadderNumber; // Ladder Layer5 Number | |
172 | static const Double_t fgkSSDLay5RadiusMin; // Ladder Layer5 Min Radius | |
173 | static const Double_t fgkSSDLay5RadiusMax; // Ladder Layer5 Max Radius | |
174 | static const Double_t fgkLay5CenterITSPosition; // ITS center position respect | |
175 | // to Ladder Layer5 | |
d7599219 | 176 | ///////////////////////////////////////////////////////////////////////// |
177 | // Layer6 (lengths are in mm and angles in degrees) | |
178 | ///////////////////////////////////////////////////////////////////////// | |
44285dfa | 179 | static const Double_t fgkSSDLay6LadderLength; // Ladder Layer6 Length |
180 | static const Int_t fgkSSDLay6SensorsNumber; // Ladder Layer6 Sensor Number | |
181 | static const Int_t fgkSSDLay6LadderNumber; // Ladder Layer6 Number | |
182 | static const Double_t fgkSSDLay6RadiusMin; // Ladder Layer6 Min Radius | |
183 | static const Double_t fgkSSDLay6RadiusMax; // Ladder Layer6 Max Radius | |
184 | static const Double_t fgkLay6CenterITSPosition; // ITS center position respect | |
185 | // to Ladder Layer6 | |
d7599219 | 186 | ///////////////////////////////////////////////////////////////////////// |
187 | // SSD Chips and Hybrid | |
188 | ///////////////////////////////////////////////////////////////////////// | |
44285dfa | 189 | static const Int_t fgkSSDChipNumber; // SSD Module Chip Number |
190 | static const Double_t fgkSSDChipLength; // SSD Module Chip Length | |
191 | static const Double_t fgkSSDChipWidth; // SSD Module Chip Width | |
192 | static const Double_t fgkSSDChipHeight; // SSD Module Chip Height | |
193 | static const Double_t fgkSSDChipSeparationLength;// SSD Module Distance between Chips | |
194 | static const Double_t fgkSSDChipGlueLength; // SSD Module Chip Glue Layer Length | |
195 | static const Double_t fgkSSDChipGlueWidth; // SSD Module Chip Glue Layer Width | |
196 | static const Double_t fgkSSDChipGlueHeight; // SSD Module Chip Glue Layer Height | |
197 | TGeoMedium* fSSDChipMedium; // SSD Module Chip Medium | |
198 | TGeoMedium* fSSDChipGlueMedium; // SSD Module Chip Glue Layer Medium | |
199 | ///////////////////////////////////////////////////////////////////////// | |
200 | // Stiffener Components | |
201 | ///////////////////////////////////////////////////////////////////////// | |
202 | static const Double_t fgkSSDStiffenerLength; // SSD Module Stiffener Length | |
203 | static const Double_t fgkSSDStiffenerWidth; // SSD Module Stiffener Width | |
204 | static const Double_t fgkSSDStiffenerHeight; // SSD Module Stiffener Height | |
205 | static const Double_t fgkSSDStiffenerToChipDist; // SSD Module Stiffener position respect | |
206 | // to sensor Edge | |
207 | static const Double_t fgkSSDCapacitor0603Length; // SSD Stiffener Capacitor 0603 Length | |
208 | static const Double_t fgkSSDCapacitor0603Width; // SSD Stiffener Capacitor 0603 Width | |
209 | static const Double_t fgkSSDCapacitor0603Height; // SSD Stiffener Capacitor 0603 Height | |
210 | static const Double_t fgkSSDCapacitor1812Length; // SSD Stiffener Capacitor 1812 Length | |
211 | static const Double_t fgkSSDCapacitor1812Width; // SSD Stiffener Capacitor 1812 Width | |
212 | static const Double_t fgkSSDCapacitor1812Height; // SSD Stiffener Capacitor 1812 Height | |
213 | static const Double_t fgkSSDWireLength; // SSD Stiffener Wire Length | |
214 | static const Double_t fgkSSDWireRadius; // SSD Stiffener Wire Radius | |
215 | static const Double_t fgkSSDConnectorPosition[2];// SSD Connector Position respect to Stiffener | |
216 | static const Double_t fgkSSDConnectorSeparation; // SSD Connector separation distance | |
217 | static const Double_t fgkSSDConnectorLength; // SSD Stiffener Connector Length | |
218 | static const Double_t fgkSSDConnectorWidth; // SSD Stiffener Connector Width | |
219 | static const Double_t fgkSSDConnectorHeight; // SSD Stiffener Connector Height | |
220 | TGeoMedium* fSSDStiffenerMedium; // SSDStiffener Medium | |
221 | TGeoMedium* fSSDStiffenerConnectorMedium; // SSD Stiffener Connector Medium | |
222 | TGeoMedium* fSSDStiffener0603CapacitorMedium; // SSD Stiffener Capacitor 0603 Medium | |
223 | TGeoMedium* fSSDStiffener1812CapacitorMedium; // SSD Stiffener Capacitor 1812 Medium | |
224 | TGeoMedium* fSSDStiffenerHybridWireMedium; // SSD Stiffener Wire Medium | |
d7599219 | 225 | ///////////////////////////////////////////////////////////////////////// |
226 | // Flex | |
227 | ///////////////////////////////////////////////////////////////////////// | |
44285dfa | 228 | static const Double_t fgkSSDFlexFullLength; // SSD Flex Full Length |
229 | static const Double_t fgkSSDFlexLength[4]; // SSD Flex Components Length | |
230 | static const Double_t fgkSSDFlexWidth[2]; // SSD Flex Components Width | |
231 | static const Double_t fgkSSDFlexHeight[2]; // SSD Flex Layers Heigth | |
232 | static const Double_t fgkSSDFlexAngle; // SSD Flex Angle | |
233 | static const Double_t fgkSSDFlexHoleLength; // SSD Flex Hole Length | |
234 | static const Double_t fgkSSDFlexHoleWidth; // SSD Flex Hole Width | |
235 | static const Double_t fgkSSDEndFlexCompLength[6];// SSD End-Flex Components Length | |
236 | static const Double_t fgkSSDEndFlexCompWidth[3]; // SSD End-Flex Components Width | |
237 | TGeoMedium* fSSDKaptonFlexMedium; // SSD Flex Kapton Layer Medium | |
238 | TGeoMedium* fSSDAlTraceFlexMedium; // SSD Flex Al Layer Medium | |
d7599219 | 239 | ///////////////////////////////////////////////////////////////////////////////// |
240 | // SSD Ladder Cable | |
241 | ///////////////////////////////////////////////////////////////////////////////// | |
44285dfa | 242 | static const Double_t fgkSSDLadderCableWidth; // SSD Ladder Cable Width |
243 | TGeoMedium* fSSDAlTraceLadderCableMedium; // SSD Ladder Cable Al Layer Medium | |
244 | TGeoMedium* fSSDKaptonLadderCableMedium; // SSD Ladder Cable Kapton Layer Medium | |
245 | ///////////////////////////////////////////////////////////////////////// | |
246 | // SSD Module Components | |
247 | ///////////////////////////////////////////////////////////////////////// | |
248 | static const Double_t fgkSSDModuleStiffenerPosition[2]; // SSD Module Stiffener position | |
249 | // respect to Sensor Edge | |
250 | static const Double_t fgkSSDModuleSensorSupportDistance;// SSD Module Sensor Support Position | |
251 | // respect to Sensor Edge | |
252 | static const Double_t fgkSSDModuleCoolingBlockToSensor; // SSD Cooling Block Position | |
253 | // respect to sensor | |
254 | static const Int_t fgkSSDModuleCombiTransNumber = 7; // Number of TGeoCombiTrans | |
255 | // for positioning volumes in SSD Module | |
256 | void SetSSDModuleCombiTransMatrix(Double_t); // Method for generating TGeoCombiTrans for | |
257 | // for volume positioning in SSD Module | |
258 | TGeoCombiTrans *fSSDModuleCombiTransMatrix[fgkSSDModuleCombiTransNumber]; // TGeoCombiTrans roto-trans | |
259 | // transformations for volume positioning | |
d7599219 | 260 | ///////////////////////////////////////////////////////////////////////// |
261 | // Chip Cables | |
262 | ///////////////////////////////////////////////////////////////////////// | |
44285dfa | 263 | static const Double_t fgkSSDChipCablesLength[2]; // SSD Chip Cables Components Length |
264 | static const Double_t fgkSSDChipCablesHeight[4]; // SSD Chip Cables Components Height | |
265 | static const Double_t fgkSSDChipCablesWidth[3]; // SSD Chip Cables Components Width | |
266 | TGeoMedium* fSSDKaptonChipCableMedium; // SSD Chip Cables Kapton Layer Medium | |
267 | TGeoMedium* fSSDAlTraceChipCableMedium; // SSD Chip Cables Al Layer Medium | |
d7599219 | 268 | ///////////////////////////////////////////////////////////////////////// |
269 | // Cooling Block | |
270 | ///////////////////////////////////////////////////////////////////////// | |
44285dfa | 271 | static const Double_t fgkSSDCoolingBlockLength; // SSD Cooling Block Length |
272 | static const Double_t fgkSSDCoolingBlockWidth; // SSD Cooling Block Width | |
273 | static const Double_t fgkSSDCoolingBlockHeight[3]; // SSD Cooling Block Heiht | |
274 | static const Double_t fgkSSDCoolingBlockHoleRadius[2];// SSD Cooling Block Hole Radius | |
275 | static const Double_t fgkSSDCoolingBlockHoleLength[2];// SSD Cooling Block Hole Length | |
276 | static const Double_t fgkSSDCoolingBlockHoleCenter; // SSD Cooling Block Hole Ceneter Position | |
277 | static const Double_t fgkSSDCoolingBlockHoleHeight; // SSD Cooling Block Hole Height | |
278 | TGeoMedium* fSSDAlCoolBlockMedium; // SSD Cooling Block Al Medium | |
d7599219 | 279 | ///////////////////////////////////////////////////////////////////////// |
280 | // SSD Sensor | |
281 | ///////////////////////////////////////////////////////////////////////// | |
44285dfa | 282 | static const char* fgkSSDSensitiveVolName; // SSD Name of the Sensitive Part of the Sensor |
283 | static const Double_t fgkSSDSensorLength; // SSD Sensor Length | |
284 | static const Double_t fgkSSDSensorHeight; // SSD Sensor Height | |
285 | static const Double_t fgkSSDSensorWidth; // SSD Sensor Width | |
286 | static const Double_t fgkSSDSensorOverlap; // SSD Sensor Beam Axis Overlap | |
287 | static const Double_t fgkSSDSensorInsensitiveLength; // SSD Insensitive Part Length | |
288 | static const Double_t fgkSSDSensorInsensitiveWidth; // SSD Insensitive Part Width | |
289 | TGeoMedium* fSSDSensorMedium; // SSD Sensor Medium | |
d7599219 | 290 | ///////////////////////////////////////////////////////////////////////// |
291 | // SSD Sensor Support | |
292 | ///////////////////////////////////////////////////////////////////////// | |
44285dfa | 293 | static const Double_t fgkSSDSensorSideSupportLength; // SSD Side Sensor Support Length |
294 | static const Double_t fgkSSDSensorSideSupportWidth; // SSD Side Sensor Support Width | |
295 | static const Double_t fgkSSDSensorSideSupportHeight[2]; // SSD Side Sensor Support Height | |
296 | static const Double_t fgkSSDSensorSideSupportThickness[2]; // SSD Side Sensor Support Thickness | |
297 | static const Double_t fgkSSDSensorSideSupportPosition; // SSD Side Sensor Support Position | |
298 | static const Double_t fgkSSDSensorCenterSupportLength; // SSD Center Sensor Support Length | |
299 | static const Double_t fgkSSDSensorCenterSupportWidth; // SSD Center Sensor Support Width | |
300 | static const Double_t fgkSSDSensorCenterSupportHeight[2]; // SSD Center Sensor Support Height | |
301 | static const Double_t fgkSSDSensorCenterSupportThickness[2];// SSD Center Sensor Support Thickness | |
302 | static const Double_t fgkSSDSensorCenterSupportPosition; // SSD Center Sensor Support Position | |
303 | static const Int_t fgkSSDSensorSupportCombiTransNumber = 3; // Number of TGeoCombiTrans | |
304 | // for positioning volumes in Sensor Support Assembly | |
305 | void SetSSDSensorSupportCombiTransMatrix(); // Method for generating TGeoCombiTrans for | |
306 | // volume positioning in Sensor Support Assembly | |
307 | TGeoCombiTrans *fSSDSensorSupportCombiTransMatrix[fgkSSDSensorSupportCombiTransNumber]; // TGeoCombiTrans roto-trans | |
308 | // transformations for volume positioning in Sensor Support Assembly | |
309 | TGeoMedium* fSSDSensorSupportMedium; // SSD Sensor Support Medium | |
d7599219 | 310 | ///////////////////////////////////////////////////////////////////////// |
311 | //Parameters for Carbon Fiber | |
312 | ///////////////////////////////////////////////////////////////////////// | |
44285dfa | 313 | static const Double_t fgkCarbonFiberTriangleLength; // Carbon Fiber Triangle Length |
314 | static const Double_t fgkCarbonFiberTriangleAngle; // Carbon Fiber Triangle Angle | |
315 | static const Double_t fgkCarbonFiberSupportTopEdgeDist[2]; // Carbon Fiber Support Top Edge Components | |
316 | static const Double_t fgkCarbonFiberSupportEdgeLength; // Carbon Fiber Support Edge Lenght | |
317 | static const Double_t fgkCarbonFiberSupportWidth; // Carbon Fiber Support Edge Width | |
318 | static const Double_t fgkCarbonFiberSupportXAxisLength; // Carbon Fiber Support X Axis Lenght | |
319 | static const Double_t fgkCarbonFiberSupportYAxisLength; // Carbon Fiber Support Y Axis Lenght | |
320 | static const Int_t fgkCarbonFiberAssemblyCombiTransNumber = 3; // Number of TGeoCombiTrans | |
321 | // for positioning volumes in Carbon Fiber Assembly | |
322 | void SetCarbonFiberAssemblyCombiTransMatrix(); // Method for generating TGeoCombiTrans for | |
323 | // volume positioning in Carbon Fiber Assembly | |
324 | TGeoCombiTrans *fCarbonFiberAssemblyCombiTransMatrix[fgkCarbonFiberAssemblyCombiTransNumber]; // TGeoCombiTrans roto-trans | |
325 | // transformations for volume positioning in Carbon Fiber Assembly | |
326 | TGeoMedium* fSSDCarbonFiberMedium; // SSD Carbon Fiber Medium | |
d7599219 | 327 | ////////////////////////////////////////////////////////////////////////////// |
328 | // Carbon Fiber Junction Parameters | |
329 | ////////////////////////////////////////////////////////////////////////////// | |
44285dfa | 330 | static const Double_t fgkCarbonFiberJunctionLength; // Carbon Fiber Junction Length |
331 | static const Double_t fgkCarbonFiberJunctionWidth; // Carbon Fiber Junction Width | |
332 | static const Double_t fgkCarbonFiberJunctionEdge[2]; // Carbon Fiber Junction Edge Length | |
333 | static const Double_t fgkCarbonFiberJunctionAngle[2]; // Carbon Fiber Junction Angle | |
334 | static const Double_t fgkCarbonFiberJunctionToSensorSupport; // Carbon Fiber Junction position respect to sensor | |
335 | static const Int_t fgkCarbonFiberJunctionCombiTransNumber = 3; // Number of TGeoCombiTrans | |
336 | // for positioning volumes in Carbon Fiber Junction Assembly | |
337 | void SetCarbonFiberJunctionCombiTransMatrix(); // Method for generating TGeoCombiTrans for | |
338 | // volume positioning in Carbon Fiber Junction Assembly | |
339 | TGeoCombiTrans *fCarbonFiberJunctionCombiTransMatrix[fgkCarbonFiberJunctionCombiTransNumber];// TGeoCombiTrans roto-trans | |
340 | // transformations for volume positioning in Carbon Fiber Junction Assembly | |
d7599219 | 341 | ///////////////////////////////////////////////////////////////////////// |
342 | //Parameters for Carbon Fiber Lower Support (lengths are in mm) | |
343 | ///////////////////////////////////////////////////////////////////////// | |
44285dfa | 344 | static const Double_t fgkCarbonFiberLowerSupportWidth; // Lower Support of Carbon Fiber Width |
345 | static const Double_t fgkCarbonFiberLowerSupportLowerLenght; // Lower Support of Carbon Fiber Length | |
346 | static const Double_t fgkCarbonFiberLowerSupportHeight; // Lower Support of Carbon Fiber Height | |
347 | static const Double_t fgkCarbonFiberLowerSupportTransverseWidth; // Lower Support of Carbon Fiber Transverse separation | |
348 | static const Double_t fgkCarbonFiberLowerSupportVolumeSeparation; // Distance between Lower Supports of Carbon Fiber | |
349 | static const Double_t fgkCarbonFiberLowerSupportVolumePosition[2];// Carbon fiber lower Support Position | |
350 | ///////////////////////////////////////////////////////////////////////// | |
351 | // End Ladder Carbon Fiber Lower Junction Parameters (lengths are in mm and angles in degrees) | |
352 | ///////////////////////////////////////////////////////////////////////// | |
353 | static const Double_t fgkEndLadderCarbonFiberLowerJunctionLength[2]; // End Ladder Carbon Fiber Lower Up Support length | |
354 | static const Double_t fgkEndLadderCarbonFiberUpperJunctionLength[2]; // End Ladder Carbon Fiber Lower Down Support length | |
355 | static const Double_t fgkEndLadderMountingBlockPosition[2]; // End Ladder Mounting Block Position | |
356 | static const Int_t fgkEndLadderCarbonFiberJunctionCombiTransNumber = 3;// Number of TGeoCombiTrans | |
357 | // for positioning volumes in End LadderCarbon Fiber Junction Assembly | |
358 | void SetEndLadderCarbonFiberJunctionCombiTransMatrix(Int_t); // Method for generating TGeoCombiTrans for | |
359 | // volume positioning in End Ladder Carbon Fiber Junction Assembly | |
360 | TGeoCombiTrans *fEndLadderCarbonFiberJunctionCombiTransMatrix[fgkEndLadderCarbonFiberJunctionCombiTransNumber]; // TGeoCombiTrans roto-trans | |
361 | // transformations for volume positioning in End Ladder | |
362 | // Carbon Fiber Junction Assembly | |
d7599219 | 363 | ///////////////////////////////////////////////////////////////////////// |
364 | // Cooling Tube Support (lengths are in mm and angles in degrees) | |
365 | ///////////////////////////////////////////////////////////////////////// | |
44285dfa | 366 | static const Double_t fgkCoolingTubeSupportRmax; // Cooling Tube Support Max Radius |
367 | static const Double_t fgkCoolingTubeSupportRmin; // Cooling Tube Support Min Radius | |
368 | static const Double_t fgkCoolingTubeSupportLength; // Cooling Tube Support Length | |
369 | static const Double_t fgkCoolingTubeSupportHeight; // Cooling Tube Support Height | |
370 | static const Double_t fgkCoolingTubeSupportWidth; // Cooling Tube Support Width | |
371 | static const Double_t fgkCoolingTubeSupportSeparation; // Cooling Tube Support Separation | |
372 | static const Double_t fgkCoolingTubeSupportToCarbonFiber; // Cooling Tube Support position respect to Carbon Fiber | |
373 | static const Int_t fgkCoolingTubeSupportCombiTransNumber = 2; // Number of TGeoCombiTrans | |
374 | // for positioning volumes in Cooling Tube Support Assembly | |
375 | void SetCoolingTubeSupportCombiTransMatrix(); // Method for generating TGeoCombiTrans for | |
376 | // volume positioning in Cooling Tube Support Assembly | |
377 | TGeoCombiTrans *fCoolingTubeSupportCombiTransMatrix[fgkCoolingTubeSupportCombiTransNumber]; // TGeoCombiTrans roto-trans | |
378 | // transformations for volume positioning in | |
379 | // Cooling Tube Support Assembly | |
380 | TGeoMedium* fSSDTubeHolderMedium; // Cooling Tube Support Medium | |
d7599219 | 381 | ///////////////////////////////////////////////////////////////////////////////// |
382 | // Cooling Tube (lengths are in mm and angles in degrees) | |
383 | ///////////////////////////////////////////////////////////////////////////////// | |
44285dfa | 384 | static const Double_t fgkCoolingTubeRmax; // Cooling Tube Max Radius |
385 | static const Double_t fgkCoolingTubeRmin; // Cooling Tube Min Radius | |
386 | static const Double_t fgkCoolingTubeLength; // Cooling Tube Length | |
387 | static const Double_t fgkCoolingTubeSeparation; // Cooling Tube Separation | |
388 | static const Int_t fgkCoolingTubeCombiTransNumber = 2; // Number of TGeoCombiTrans | |
389 | // for positioning volumes in Cooling Tube Assembly | |
390 | void SetCoolingTubeCombiTransMatrix(); // Method for generating TGeoCombiTrans for | |
391 | // volume positioning in Cooling Tube Assembly | |
392 | TGeoCombiTrans *fCoolingTubeTransMatrix[fgkCoolingTubeCombiTransNumber];// TGeoCombiTrans roto-trans | |
393 | // transformations for volume positioning Cooling Tube Assembly | |
394 | TGeoMedium* fSSDCoolingTubeWater; // Medium for Inner Part of Cooling Tube | |
395 | TGeoMedium* fSSDCoolingTubePhynox; // Medium for Cooling Tube | |
d7599219 | 396 | ///////////////////////////////////////////////////////////////////////// |
397 | // SSD Mounting Block Parameters (lengths are in mm and angles in degrees) | |
398 | ///////////////////////////////////////////////////////////////////////// | |
44285dfa | 399 | static const Double_t fgkSSDMountingBlockLength[3]; // SSD Mounting Block Components Lengths |
400 | static const Double_t fgkSSDMountingBlockHeight[4]; // SSD Mounting Block Components Heights | |
401 | static const Double_t fgkSSDMountingBlockWidth; // SSD Mounting Block Width | |
402 | static const Double_t fgkSSDMountingBlockHoleTrapezoidAngle; // SSD Mounting Block Hole Trapezoid Angle | |
403 | static const Double_t fgkSSDMountingBlockHoleTrapezoidHeight; // SSD Mounting Block Hole Trapezoid Height | |
404 | static const Double_t fgkSSDMountingBlockHoleTrapezoidUpBasis;// SSD Mounting Block Hole Trapezoid Up Basis Length | |
405 | static const Double_t fgkSSDMountingBlockHoleTubeLength[2]; // SSD Mounting Block Hole Tube Lengths | |
406 | static const Double_t fgkSSDMountingBlockHoleTubeWidth[2]; // SSD Mounting Block Hole Tube Width | |
407 | static const Double_t fgkSSDMountingBlockHoleRadius; // SSD Mounting Block Hole radius | |
408 | static const Double_t fgkSSDMountingBlockScrewHoleEdge; // SSD Mounting Block Screw Hole Edge | |
409 | static const Double_t fgkSSDMountingBlockScrewHoleHeigth; // SSD Mounting Block Screw Hole Height | |
410 | static const Double_t fgkSSDMountingBlockScrewHoleRadius[2]; // SSD Mounting Block Screw Hole Radii | |
411 | TGeoMedium* fSSDMountingBlockMedium; // Medium for SSD Mounting Block | |
d7599219 | 412 | ///////////////////////////////////////////////////////////////////////// |
413 | // LadderSegment | |
414 | ///////////////////////////////////////////////////////////////////////// | |
44285dfa | 415 | static const Int_t fgkLadderSegmentCombiTransNumber = 5; // Number of TGeoCombiTrans |
416 | // for positioning volumes in Ladder Segment | |
417 | void SetLadderSegmentCombiTransMatrix(); // Method for generating TGeoCombiTrans for | |
418 | // volume positioning in Ladder Segment | |
419 | TGeoCombiTrans *fLadderSegmentCombiTransMatrix[fgkLadderSegmentCombiTransNumber]; // TGeoCombiTrans roto-trans | |
420 | // transformations for volume positioning in | |
421 | // in Ladder Segment | |
422 | ///////////////////////////////////////////////////////////////////////// | |
423 | // End LadderSegment | |
424 | ///////////////////////////////////////////////////////////////////////// | |
425 | static const Int_t fgkEndLadderSegmentCombiTransNumber = 4; // Number of TGeoCombiTrans | |
426 | // for positioning volumes in End Ladder Segment | |
427 | void SetEndLadderSegmentCombiTransMatrix(Int_t); // Method for generating TGeoCombiTrans for | |
428 | // volume positioning in End Ladder Segment | |
429 | TGeoCombiTrans *fEndLadderSegmentCombiTransMatrix[fgkEndLadderSegmentCombiTransNumber]; // TGeoCombiTrans roto-trans | |
430 | // transformations for volume positioning in | |
431 | // in End Ladder Segment | |
d7599219 | 432 | ///////////////////////////////////////////////////////////////////////// |
433 | // LadderCables | |
434 | ///////////////////////////////////////////////////////////////////////// | |
44285dfa | 435 | static const Int_t fgkLadderCableCombiTransNumber = 4; // Number of TGeoCombiTrans |
436 | // for positioning Ladder Cable volumes | |
437 | void SetLadderCableCombiTransMatrix(Int_t iLayer); // Method for generating TGeoCombiTrans | |
438 | // for positioning Ladder Cables volumes | |
439 | TGeoCombiTrans *fLadderCableCombiTransMatrix[fgkLadderCableCombiTransNumber]; // TGeoCombiTrans for positioning | |
440 | // Ladder Cables volumes | |
d7599219 | 441 | ///////////////////////////////////////////////////////////////////////// |
442 | // Mother Volume | |
443 | ///////////////////////////////////////////////////////////////////////// | |
44285dfa | 444 | TGeoVolume *fMotherVol; // Mother volume for ITS Layer5 and Layer6 |
445 | TGeoVolume* GetMotherVolume() const { return fMotherVol;}; // Method returning Mother Volume | |
d7599219 | 446 | ///////////////////////////////////////////////////////////////////////// |
447 | // Color Display | |
448 | ///////////////////////////////////////////////////////////////////////// | |
44285dfa | 449 | Int_t fColorCarbonFiber; // display colors |
450 | Int_t fColorRyton; // === | |
451 | Int_t fColorPhynox; // === | |
452 | Int_t fColorSilicon; // === | |
453 | Int_t fColorAl; // === | |
454 | Int_t fColorKapton; // === | |
455 | Int_t fColorPolyhamide; // === | |
456 | Int_t fColorStiffener; // === | |
457 | Int_t fColorEpoxy; // === | |
458 | ClassDef(AliITSv11GeometrySSD, 1) // ITS v11 SSD geometry | |
d7599219 | 459 | }; |
460 | #endif |