remove makefile
[u/mrichter/AliRoot.git] / ITS / AliITSv11GeometrySSD.h
CommitLineData
d7599219 1//*************************************************************************
2// class AliITSv11GeometrySSD
3// Enrico Cattaruzza ecattar@ts.infn.it
4//*************************************************************************
5#ifndef ALIITSV11GEOMETRYSSD_H
6#define ALIITSV11GEOMETRYSSD_H
7class TGeoVolume;
8class TGeoCombiTrans;
9class TGeoMedium;
10class TGeoCompositeShape;
44285dfa 11class TGeoMatrix;
d7599219 12class TVector3;
13class TGeoArb8;
14class TList;
15class TGeoTube;
16class TGeoHMatrix;
9acf2ecc 17#include "AliITSv11Geometry.h"
18class AliITSv11GeometrySSD: public AliITSv11Geometry {
d7599219 19public:
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
d7599219 135 /////////////////////////////////////////////////////////////////////////
136 //Auxiliary methods for shapes building
137 /////////////////////////////////////////////////////////////////////////
44285dfa 138 TVector3* GetReflection(TVector3* vector,Double_t* param) const;
139 // Given an axis specified by param, it gives the reflection of the point
140 // respect to the axis
141 /////////////////////////////////////////////////////////////////////////
142 TGeoArb8* GetArbShape(TVector3* vertexpos[],Double_t* width,
143 Double_t height,char* shapename,Int_t isign = 1) const;
144 // Method generating an arb shape
145 /////////////////////////////////////////////////////////////////////////
146 TGeoArb8* GetTriangleShape(TVector3* vertexpos[],Double_t height, char* shapename) const;
147 // Method generating a triangle shape
148 /////////////////////////////////////////////////////////////////////////
149 TGeoArb8* GetTrapezoidShape(TVector3* vertexpos[],Double_t* width,
150 Double_t height,char* shapename) const;
151 // Method generating a trapezoid shape
152 /////////////////////////////////////////////////////////////////////////
153 TGeoCombiTrans* AddTranslationToCombiTrans(TGeoCombiTrans* ct,Double_t dx,
154 Double_t dy,Double_t dz) const;
155 // add (dx,dy,dz) translation to a initial TGeoCombiTrans
d7599219 156 /////////////////////////////////////////////////////////////////////////
157 //Auxiliary methods for material building
158 /////////////////////////////////////////////////////////////////////////
44285dfa 159 TGeoMedium* GetMedium(const char* mediumName);
160 // It returns the Medium
161 /////////////////////////////////////////////////////////////////////////
d7599219 162 void CreateMaterials();
44285dfa 163 // it creates the matherials
d7599219 164private:
165 /////////////////////////////////////////////////////////////////////////
166 // Layer5 (lengths are in mm and angles in degrees)
167 /////////////////////////////////////////////////////////////////////////
44285dfa 168 static const Double_t fgkSSDLay5LadderLength; // Ladder Layer5 Length
169 static const Int_t fgkSSDLay5SensorsNumber; // Ladder Layer5 Sensor Number
170 static const Int_t fgkSSDLay5LadderNumber; // Ladder Layer5 Number
171 static const Double_t fgkSSDLay5RadiusMin; // Ladder Layer5 Min Radius
172 static const Double_t fgkSSDLay5RadiusMax; // Ladder Layer5 Max Radius
173 static const Double_t fgkLay5CenterITSPosition; // ITS center position respect
174 // to Ladder Layer5
d7599219 175 /////////////////////////////////////////////////////////////////////////
176 // Layer6 (lengths are in mm and angles in degrees)
177 /////////////////////////////////////////////////////////////////////////
44285dfa 178 static const Double_t fgkSSDLay6LadderLength; // Ladder Layer6 Length
179 static const Int_t fgkSSDLay6SensorsNumber; // Ladder Layer6 Sensor Number
180 static const Int_t fgkSSDLay6LadderNumber; // Ladder Layer6 Number
181 static const Double_t fgkSSDLay6RadiusMin; // Ladder Layer6 Min Radius
182 static const Double_t fgkSSDLay6RadiusMax; // Ladder Layer6 Max Radius
183 static const Double_t fgkLay6CenterITSPosition; // ITS center position respect
184 // to Ladder Layer6
d7599219 185 /////////////////////////////////////////////////////////////////////////
186 // SSD Chips and Hybrid
187 /////////////////////////////////////////////////////////////////////////
44285dfa 188 static const Int_t fgkSSDChipNumber; // SSD Module Chip Number
189 static const Double_t fgkSSDChipLength; // SSD Module Chip Length
190 static const Double_t fgkSSDChipWidth; // SSD Module Chip Width
191 static const Double_t fgkSSDChipHeight; // SSD Module Chip Height
192 static const Double_t fgkSSDChipSeparationLength;// SSD Module Distance between Chips
193 static const Double_t fgkSSDChipGlueLength; // SSD Module Chip Glue Layer Length
194 static const Double_t fgkSSDChipGlueWidth; // SSD Module Chip Glue Layer Width
195 static const Double_t fgkSSDChipGlueHeight; // SSD Module Chip Glue Layer Height
196 TGeoMedium* fSSDChipMedium; // SSD Module Chip Medium
197 TGeoMedium* fSSDChipGlueMedium; // SSD Module Chip Glue Layer Medium
198 /////////////////////////////////////////////////////////////////////////
199 // Stiffener Components
200 /////////////////////////////////////////////////////////////////////////
201 static const Double_t fgkSSDStiffenerLength; // SSD Module Stiffener Length
202 static const Double_t fgkSSDStiffenerWidth; // SSD Module Stiffener Width
203 static const Double_t fgkSSDStiffenerHeight; // SSD Module Stiffener Height
204 static const Double_t fgkSSDStiffenerToChipDist; // SSD Module Stiffener position respect
205 // to sensor Edge
206 static const Double_t fgkSSDCapacitor0603Length; // SSD Stiffener Capacitor 0603 Length
207 static const Double_t fgkSSDCapacitor0603Width; // SSD Stiffener Capacitor 0603 Width
208 static const Double_t fgkSSDCapacitor0603Height; // SSD Stiffener Capacitor 0603 Height
209 static const Double_t fgkSSDCapacitor1812Length; // SSD Stiffener Capacitor 1812 Length
210 static const Double_t fgkSSDCapacitor1812Width; // SSD Stiffener Capacitor 1812 Width
211 static const Double_t fgkSSDCapacitor1812Height; // SSD Stiffener Capacitor 1812 Height
212 static const Double_t fgkSSDWireLength; // SSD Stiffener Wire Length
213 static const Double_t fgkSSDWireRadius; // SSD Stiffener Wire Radius
214 static const Double_t fgkSSDConnectorPosition[2];// SSD Connector Position respect to Stiffener
215 static const Double_t fgkSSDConnectorSeparation; // SSD Connector separation distance
216 static const Double_t fgkSSDConnectorLength; // SSD Stiffener Connector Length
217 static const Double_t fgkSSDConnectorWidth; // SSD Stiffener Connector Width
218 static const Double_t fgkSSDConnectorHeight; // SSD Stiffener Connector Height
219 TGeoMedium* fSSDStiffenerMedium; // SSDStiffener Medium
220 TGeoMedium* fSSDStiffenerConnectorMedium; // SSD Stiffener Connector Medium
221 TGeoMedium* fSSDStiffener0603CapacitorMedium; // SSD Stiffener Capacitor 0603 Medium
222 TGeoMedium* fSSDStiffener1812CapacitorMedium; // SSD Stiffener Capacitor 1812 Medium
223 TGeoMedium* fSSDStiffenerHybridWireMedium; // SSD Stiffener Wire Medium
d7599219 224 /////////////////////////////////////////////////////////////////////////
225 // Flex
226 /////////////////////////////////////////////////////////////////////////
44285dfa 227 static const Double_t fgkSSDFlexFullLength; // SSD Flex Full Length
228 static const Double_t fgkSSDFlexLength[4]; // SSD Flex Components Length
229 static const Double_t fgkSSDFlexWidth[2]; // SSD Flex Components Width
230 static const Double_t fgkSSDFlexHeight[2]; // SSD Flex Layers Heigth
231 static const Double_t fgkSSDFlexAngle; // SSD Flex Angle
232 static const Double_t fgkSSDFlexHoleLength; // SSD Flex Hole Length
233 static const Double_t fgkSSDFlexHoleWidth; // SSD Flex Hole Width
234 static const Double_t fgkSSDEndFlexCompLength[6];// SSD End-Flex Components Length
235 static const Double_t fgkSSDEndFlexCompWidth[3]; // SSD End-Flex Components Width
236 TGeoMedium* fSSDKaptonFlexMedium; // SSD Flex Kapton Layer Medium
237 TGeoMedium* fSSDAlTraceFlexMedium; // SSD Flex Al Layer Medium
d7599219 238 /////////////////////////////////////////////////////////////////////////////////
239 // SSD Ladder Cable
240 /////////////////////////////////////////////////////////////////////////////////
44285dfa 241 static const Double_t fgkSSDLadderCableWidth; // SSD Ladder Cable Width
242 TGeoMedium* fSSDAlTraceLadderCableMedium; // SSD Ladder Cable Al Layer Medium
243 TGeoMedium* fSSDKaptonLadderCableMedium; // SSD Ladder Cable Kapton Layer Medium
244 /////////////////////////////////////////////////////////////////////////
245 // SSD Module Components
246 /////////////////////////////////////////////////////////////////////////
247 static const Double_t fgkSSDModuleStiffenerPosition[2]; // SSD Module Stiffener position
248 // respect to Sensor Edge
249 static const Double_t fgkSSDModuleSensorSupportDistance;// SSD Module Sensor Support Position
250 // respect to Sensor Edge
251 static const Double_t fgkSSDModuleCoolingBlockToSensor; // SSD Cooling Block Position
252 // respect to sensor
253 static const Int_t fgkSSDModuleCombiTransNumber = 7; // Number of TGeoCombiTrans
254 // for positioning volumes in SSD Module
255 void SetSSDModuleCombiTransMatrix(Double_t); // Method for generating TGeoCombiTrans for
256 // for volume positioning in SSD Module
257 TGeoCombiTrans *fSSDModuleCombiTransMatrix[fgkSSDModuleCombiTransNumber]; // TGeoCombiTrans roto-trans
258 // transformations for volume positioning
d7599219 259 /////////////////////////////////////////////////////////////////////////
260 // Chip Cables
261 /////////////////////////////////////////////////////////////////////////
44285dfa 262 static const Double_t fgkSSDChipCablesLength[2]; // SSD Chip Cables Components Length
263 static const Double_t fgkSSDChipCablesHeight[4]; // SSD Chip Cables Components Height
264 static const Double_t fgkSSDChipCablesWidth[3]; // SSD Chip Cables Components Width
265 TGeoMedium* fSSDKaptonChipCableMedium; // SSD Chip Cables Kapton Layer Medium
266 TGeoMedium* fSSDAlTraceChipCableMedium; // SSD Chip Cables Al Layer Medium
d7599219 267 /////////////////////////////////////////////////////////////////////////
268 // Cooling Block
269 /////////////////////////////////////////////////////////////////////////
44285dfa 270 static const Double_t fgkSSDCoolingBlockLength; // SSD Cooling Block Length
271 static const Double_t fgkSSDCoolingBlockWidth; // SSD Cooling Block Width
272 static const Double_t fgkSSDCoolingBlockHeight[3]; // SSD Cooling Block Heiht
273 static const Double_t fgkSSDCoolingBlockHoleRadius[2];// SSD Cooling Block Hole Radius
274 static const Double_t fgkSSDCoolingBlockHoleLength[2];// SSD Cooling Block Hole Length
275 static const Double_t fgkSSDCoolingBlockHoleCenter; // SSD Cooling Block Hole Ceneter Position
276 static const Double_t fgkSSDCoolingBlockHoleHeight; // SSD Cooling Block Hole Height
277 TGeoMedium* fSSDAlCoolBlockMedium; // SSD Cooling Block Al Medium
d7599219 278 /////////////////////////////////////////////////////////////////////////
279 // SSD Sensor
280 /////////////////////////////////////////////////////////////////////////
44285dfa 281 static const char* fgkSSDSensitiveVolName; // SSD Name of the Sensitive Part of the Sensor
282 static const Double_t fgkSSDSensorLength; // SSD Sensor Length
283 static const Double_t fgkSSDSensorHeight; // SSD Sensor Height
284 static const Double_t fgkSSDSensorWidth; // SSD Sensor Width
285 static const Double_t fgkSSDSensorOverlap; // SSD Sensor Beam Axis Overlap
286 static const Double_t fgkSSDSensorInsensitiveLength; // SSD Insensitive Part Length
287 static const Double_t fgkSSDSensorInsensitiveWidth; // SSD Insensitive Part Width
288 TGeoMedium* fSSDSensorMedium; // SSD Sensor Medium
d7599219 289 /////////////////////////////////////////////////////////////////////////
290 // SSD Sensor Support
291 /////////////////////////////////////////////////////////////////////////
44285dfa 292 static const Double_t fgkSSDSensorSideSupportLength; // SSD Side Sensor Support Length
293 static const Double_t fgkSSDSensorSideSupportWidth; // SSD Side Sensor Support Width
294 static const Double_t fgkSSDSensorSideSupportHeight[2]; // SSD Side Sensor Support Height
295 static const Double_t fgkSSDSensorSideSupportThickness[2]; // SSD Side Sensor Support Thickness
296 static const Double_t fgkSSDSensorSideSupportPosition; // SSD Side Sensor Support Position
297 static const Double_t fgkSSDSensorCenterSupportLength; // SSD Center Sensor Support Length
298 static const Double_t fgkSSDSensorCenterSupportWidth; // SSD Center Sensor Support Width
299 static const Double_t fgkSSDSensorCenterSupportHeight[2]; // SSD Center Sensor Support Height
300 static const Double_t fgkSSDSensorCenterSupportThickness[2];// SSD Center Sensor Support Thickness
301 static const Double_t fgkSSDSensorCenterSupportPosition; // SSD Center Sensor Support Position
302 static const Int_t fgkSSDSensorSupportCombiTransNumber = 3; // Number of TGeoCombiTrans
303 // for positioning volumes in Sensor Support Assembly
304 void SetSSDSensorSupportCombiTransMatrix(); // Method for generating TGeoCombiTrans for
305 // volume positioning in Sensor Support Assembly
306 TGeoCombiTrans *fSSDSensorSupportCombiTransMatrix[fgkSSDSensorSupportCombiTransNumber]; // TGeoCombiTrans roto-trans
307 // transformations for volume positioning in Sensor Support Assembly
308 TGeoMedium* fSSDSensorSupportMedium; // SSD Sensor Support Medium
d7599219 309 /////////////////////////////////////////////////////////////////////////
310 //Parameters for Carbon Fiber
311 /////////////////////////////////////////////////////////////////////////
44285dfa 312 static const Double_t fgkCarbonFiberTriangleLength; // Carbon Fiber Triangle Length
313 static const Double_t fgkCarbonFiberTriangleAngle; // Carbon Fiber Triangle Angle
314 static const Double_t fgkCarbonFiberSupportTopEdgeDist[2]; // Carbon Fiber Support Top Edge Components
315 static const Double_t fgkCarbonFiberSupportEdgeLength; // Carbon Fiber Support Edge Lenght
316 static const Double_t fgkCarbonFiberSupportWidth; // Carbon Fiber Support Edge Width
317 static const Double_t fgkCarbonFiberSupportXAxisLength; // Carbon Fiber Support X Axis Lenght
318 static const Double_t fgkCarbonFiberSupportYAxisLength; // Carbon Fiber Support Y Axis Lenght
319 static const Int_t fgkCarbonFiberAssemblyCombiTransNumber = 3; // Number of TGeoCombiTrans
320 // for positioning volumes in Carbon Fiber Assembly
321 void SetCarbonFiberAssemblyCombiTransMatrix(); // Method for generating TGeoCombiTrans for
322 // volume positioning in Carbon Fiber Assembly
323 TGeoCombiTrans *fCarbonFiberAssemblyCombiTransMatrix[fgkCarbonFiberAssemblyCombiTransNumber]; // TGeoCombiTrans roto-trans
324 // transformations for volume positioning in Carbon Fiber Assembly
325 TGeoMedium* fSSDCarbonFiberMedium; // SSD Carbon Fiber Medium
d7599219 326 //////////////////////////////////////////////////////////////////////////////
327 // Carbon Fiber Junction Parameters
328 //////////////////////////////////////////////////////////////////////////////
44285dfa 329 static const Double_t fgkCarbonFiberJunctionLength; // Carbon Fiber Junction Length
330 static const Double_t fgkCarbonFiberJunctionWidth; // Carbon Fiber Junction Width
331 static const Double_t fgkCarbonFiberJunctionEdge[2]; // Carbon Fiber Junction Edge Length
332 static const Double_t fgkCarbonFiberJunctionAngle[2]; // Carbon Fiber Junction Angle
333 static const Double_t fgkCarbonFiberJunctionToSensorSupport; // Carbon Fiber Junction position respect to sensor
334 static const Int_t fgkCarbonFiberJunctionCombiTransNumber = 3; // Number of TGeoCombiTrans
335 // for positioning volumes in Carbon Fiber Junction Assembly
336 void SetCarbonFiberJunctionCombiTransMatrix(); // Method for generating TGeoCombiTrans for
337 // volume positioning in Carbon Fiber Junction Assembly
338 TGeoCombiTrans *fCarbonFiberJunctionCombiTransMatrix[fgkCarbonFiberJunctionCombiTransNumber];// TGeoCombiTrans roto-trans
339 // transformations for volume positioning in Carbon Fiber Junction Assembly
d7599219 340 /////////////////////////////////////////////////////////////////////////
341 //Parameters for Carbon Fiber Lower Support (lengths are in mm)
342 /////////////////////////////////////////////////////////////////////////
44285dfa 343 static const Double_t fgkCarbonFiberLowerSupportWidth; // Lower Support of Carbon Fiber Width
344 static const Double_t fgkCarbonFiberLowerSupportLowerLenght; // Lower Support of Carbon Fiber Length
345 static const Double_t fgkCarbonFiberLowerSupportHeight; // Lower Support of Carbon Fiber Height
346 static const Double_t fgkCarbonFiberLowerSupportTransverseWidth; // Lower Support of Carbon Fiber Transverse separation
347 static const Double_t fgkCarbonFiberLowerSupportVolumeSeparation; // Distance between Lower Supports of Carbon Fiber
348 static const Double_t fgkCarbonFiberLowerSupportVolumePosition[2];// Carbon fiber lower Support Position
349 /////////////////////////////////////////////////////////////////////////
350 // End Ladder Carbon Fiber Lower Junction Parameters (lengths are in mm and angles in degrees)
351 /////////////////////////////////////////////////////////////////////////
352 static const Double_t fgkEndLadderCarbonFiberLowerJunctionLength[2]; // End Ladder Carbon Fiber Lower Up Support length
353 static const Double_t fgkEndLadderCarbonFiberUpperJunctionLength[2]; // End Ladder Carbon Fiber Lower Down Support length
354 static const Double_t fgkEndLadderMountingBlockPosition[2]; // End Ladder Mounting Block Position
355 static const Int_t fgkEndLadderCarbonFiberJunctionCombiTransNumber = 3;// Number of TGeoCombiTrans
356 // for positioning volumes in End LadderCarbon Fiber Junction Assembly
357 void SetEndLadderCarbonFiberJunctionCombiTransMatrix(Int_t); // Method for generating TGeoCombiTrans for
358 // volume positioning in End Ladder Carbon Fiber Junction Assembly
359 TGeoCombiTrans *fEndLadderCarbonFiberJunctionCombiTransMatrix[fgkEndLadderCarbonFiberJunctionCombiTransNumber]; // TGeoCombiTrans roto-trans
360 // transformations for volume positioning in End Ladder
361 // Carbon Fiber Junction Assembly
d7599219 362 /////////////////////////////////////////////////////////////////////////
363 // Cooling Tube Support (lengths are in mm and angles in degrees)
364 /////////////////////////////////////////////////////////////////////////
44285dfa 365 static const Double_t fgkCoolingTubeSupportRmax; // Cooling Tube Support Max Radius
366 static const Double_t fgkCoolingTubeSupportRmin; // Cooling Tube Support Min Radius
367 static const Double_t fgkCoolingTubeSupportLength; // Cooling Tube Support Length
368 static const Double_t fgkCoolingTubeSupportHeight; // Cooling Tube Support Height
369 static const Double_t fgkCoolingTubeSupportWidth; // Cooling Tube Support Width
370 static const Double_t fgkCoolingTubeSupportSeparation; // Cooling Tube Support Separation
371 static const Double_t fgkCoolingTubeSupportToCarbonFiber; // Cooling Tube Support position respect to Carbon Fiber
372 static const Int_t fgkCoolingTubeSupportCombiTransNumber = 2; // Number of TGeoCombiTrans
373 // for positioning volumes in Cooling Tube Support Assembly
374 void SetCoolingTubeSupportCombiTransMatrix(); // Method for generating TGeoCombiTrans for
375 // volume positioning in Cooling Tube Support Assembly
376 TGeoCombiTrans *fCoolingTubeSupportCombiTransMatrix[fgkCoolingTubeSupportCombiTransNumber]; // TGeoCombiTrans roto-trans
377 // transformations for volume positioning in
378 // Cooling Tube Support Assembly
379 TGeoMedium* fSSDTubeHolderMedium; // Cooling Tube Support Medium
d7599219 380 /////////////////////////////////////////////////////////////////////////////////
381 // Cooling Tube (lengths are in mm and angles in degrees)
382 /////////////////////////////////////////////////////////////////////////////////
44285dfa 383 static const Double_t fgkCoolingTubeRmax; // Cooling Tube Max Radius
384 static const Double_t fgkCoolingTubeRmin; // Cooling Tube Min Radius
385 static const Double_t fgkCoolingTubeLength; // Cooling Tube Length
386 static const Double_t fgkCoolingTubeSeparation; // Cooling Tube Separation
387 static const Int_t fgkCoolingTubeCombiTransNumber = 2; // Number of TGeoCombiTrans
388 // for positioning volumes in Cooling Tube Assembly
389 void SetCoolingTubeCombiTransMatrix(); // Method for generating TGeoCombiTrans for
390 // volume positioning in Cooling Tube Assembly
391 TGeoCombiTrans *fCoolingTubeTransMatrix[fgkCoolingTubeCombiTransNumber];// TGeoCombiTrans roto-trans
392 // transformations for volume positioning Cooling Tube Assembly
393 TGeoMedium* fSSDCoolingTubeWater; // Medium for Inner Part of Cooling Tube
394 TGeoMedium* fSSDCoolingTubePhynox; // Medium for Cooling Tube
d7599219 395 /////////////////////////////////////////////////////////////////////////
396 // SSD Mounting Block Parameters (lengths are in mm and angles in degrees)
397 /////////////////////////////////////////////////////////////////////////
44285dfa 398 static const Double_t fgkSSDMountingBlockLength[3]; // SSD Mounting Block Components Lengths
399 static const Double_t fgkSSDMountingBlockHeight[4]; // SSD Mounting Block Components Heights
400 static const Double_t fgkSSDMountingBlockWidth; // SSD Mounting Block Width
401 static const Double_t fgkSSDMountingBlockHoleTrapezoidAngle; // SSD Mounting Block Hole Trapezoid Angle
402 static const Double_t fgkSSDMountingBlockHoleTrapezoidHeight; // SSD Mounting Block Hole Trapezoid Height
403 static const Double_t fgkSSDMountingBlockHoleTrapezoidUpBasis;// SSD Mounting Block Hole Trapezoid Up Basis Length
404 static const Double_t fgkSSDMountingBlockHoleTubeLength[2]; // SSD Mounting Block Hole Tube Lengths
405 static const Double_t fgkSSDMountingBlockHoleTubeWidth[2]; // SSD Mounting Block Hole Tube Width
406 static const Double_t fgkSSDMountingBlockHoleRadius; // SSD Mounting Block Hole radius
407 static const Double_t fgkSSDMountingBlockScrewHoleEdge; // SSD Mounting Block Screw Hole Edge
408 static const Double_t fgkSSDMountingBlockScrewHoleHeigth; // SSD Mounting Block Screw Hole Height
409 static const Double_t fgkSSDMountingBlockScrewHoleRadius[2]; // SSD Mounting Block Screw Hole Radii
410 TGeoMedium* fSSDMountingBlockMedium; // Medium for SSD Mounting Block
d7599219 411 /////////////////////////////////////////////////////////////////////////
412 // LadderSegment
413 /////////////////////////////////////////////////////////////////////////
44285dfa 414 static const Int_t fgkLadderSegmentCombiTransNumber = 5; // Number of TGeoCombiTrans
415 // for positioning volumes in Ladder Segment
416 void SetLadderSegmentCombiTransMatrix(); // Method for generating TGeoCombiTrans for
417 // volume positioning in Ladder Segment
418 TGeoCombiTrans *fLadderSegmentCombiTransMatrix[fgkLadderSegmentCombiTransNumber]; // TGeoCombiTrans roto-trans
419 // transformations for volume positioning in
420 // in Ladder Segment
421 /////////////////////////////////////////////////////////////////////////
422 // End LadderSegment
423 /////////////////////////////////////////////////////////////////////////
424 static const Int_t fgkEndLadderSegmentCombiTransNumber = 4; // Number of TGeoCombiTrans
425 // for positioning volumes in End Ladder Segment
426 void SetEndLadderSegmentCombiTransMatrix(Int_t); // Method for generating TGeoCombiTrans for
427 // volume positioning in End Ladder Segment
428 TGeoCombiTrans *fEndLadderSegmentCombiTransMatrix[fgkEndLadderSegmentCombiTransNumber]; // TGeoCombiTrans roto-trans
429 // transformations for volume positioning in
430 // in End Ladder Segment
d7599219 431 /////////////////////////////////////////////////////////////////////////
432 // LadderCables
433 /////////////////////////////////////////////////////////////////////////
44285dfa 434 static const Int_t fgkLadderCableCombiTransNumber = 4; // Number of TGeoCombiTrans
435 // for positioning Ladder Cable volumes
436 void SetLadderCableCombiTransMatrix(Int_t iLayer); // Method for generating TGeoCombiTrans
437 // for positioning Ladder Cables volumes
438 TGeoCombiTrans *fLadderCableCombiTransMatrix[fgkLadderCableCombiTransNumber]; // TGeoCombiTrans for positioning
439 // Ladder Cables volumes
d7599219 440 /////////////////////////////////////////////////////////////////////////
441 // Mother Volume
442 /////////////////////////////////////////////////////////////////////////
44285dfa 443 TGeoVolume *fMotherVol; // Mother volume for ITS Layer5 and Layer6
444 TGeoVolume* GetMotherVolume() const { return fMotherVol;}; // Method returning Mother Volume
d7599219 445 /////////////////////////////////////////////////////////////////////////
446 // Color Display
447 /////////////////////////////////////////////////////////////////////////
44285dfa 448 Int_t fColorCarbonFiber; // display colors
449 Int_t fColorRyton; // ===
450 Int_t fColorPhynox; // ===
451 Int_t fColorSilicon; // ===
452 Int_t fColorAl; // ===
453 Int_t fColorKapton; // ===
454 Int_t fColorPolyhamide; // ===
455 Int_t fColorStiffener; // ===
456 Int_t fColorEpoxy; // ===
9acf2ecc 457 ClassDef(AliITSv11GeometrySSD, 2) // ITS v11 SSD geometry
d7599219 458};
459#endif