]>
Commit | Line | Data |
---|---|---|
d7599219 | 1 | //************************************************************************* |
2 | // class AliITSv11GeometrySSD | |
3 | // Enrico Cattaruzza ecattar@ts.infn.it | |
4 | //************************************************************************* | |
5 | #ifndef ALIITSV11GEOMETRYSSD_H | |
6 | #define ALIITSV11GEOMETRYSSD_H | |
7 | class TGeoVolume; | |
8 | class TGeoCombiTrans; | |
9 | class TGeoMedium; | |
10 | class TGeoCompositeShape; | |
44285dfa | 11 | class TGeoMatrix; |
d7599219 | 12 | class TVector3; |
13 | class TGeoArb8; | |
14 | class TList; | |
15 | class TGeoTube; | |
16 | class TGeoHMatrix; | |
9acf2ecc | 17 | #include "AliITSv11Geometry.h" |
18 | class AliITSv11GeometrySSD: public AliITSv11Geometry { | |
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 | |
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 | 164 | private: |
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 |