Bug fix. GetMedium declared twice
[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
44285dfa 7#include <TObject.h>
d7599219 8class TGeoVolume;
9class TGeoCombiTrans;
10class TGeoMedium;
11class TGeoCompositeShape;
44285dfa 12class TGeoMatrix;
d7599219 13class TVector3;
14class TGeoArb8;
15class TList;
16class TGeoTube;
17class TGeoHMatrix;
44285dfa 18class AliITSv11GeometrySSD: public TObject {
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
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 165private:
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