]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSv11GeometrySDD.h
added QA for cuts
[u/mrichter/AliRoot.git] / ITS / AliITSv11GeometrySDD.h
CommitLineData
db486a6e 1#ifndef ALIITSV11GEOMETRYSDD_H
2#define ALIITSV11GEOMETRYSDD_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
73dfc864 7// $Id$
effd7456 8
b7943f00 9//*************************************************************************
effd7456 10//
11// SDD geometry, based on ROOT geometrical modeler
12//
13// Its integration to the aliroot framework is done in the AliITSv11Hybrid
14// class (AliITSv11 not being functionnal so far)
15//
16// This geometry has no dependence with aliroot, you can run it with root
17// only, provided that the AliITSv11GeomCable classes are also compiled
18//
b7943f00 19// Ludovic Gaudichet gaudichet@to.infn.it
20//*************************************************************************
db486a6e 21
effd7456 22
db486a6e 23class TGeoVolume;
e118532f 24class TGeoPcon;
108bd0fe 25class TGeoVolumeAssembly;
b7943f00 26class TGeoTranslation;
db486a6e 27class TGeoCombiTrans;
28class TGeoArb8;
c789ee28 29class TGeoNode;
b7943f00 30class TGeoMedium;
31class TGeoMatrix;
32class AliITSgeom;
33class AliITSv11GeomCableFlat;
db486a6e 34
b7943f00 35#include "AliITSv11Geometry.h"
db486a6e 36
c789ee28 37
db486a6e 38class AliITSv11GeometrySDD : public AliITSv11Geometry {
39
40 public:
41 AliITSv11GeometrySDD();
42 AliITSv11GeometrySDD(Int_t debug);
b7943f00 43 AliITSv11GeometrySDD(const AliITSv11GeometrySDD &source);
44 AliITSv11GeometrySDD& operator=(const AliITSv11GeometrySDD &source);
45 virtual ~AliITSv11GeometrySDD();
db486a6e 46
c789ee28 47 // Main functions
b7943f00 48 virtual void Layer3(TGeoVolume *moth);
49 virtual void Layer4(TGeoVolume *moth);
bf210566 50 virtual void ForwardLayer3(TGeoVolume *moth);
51 virtual void ForwardLayer4(TGeoVolume *moth);
e118532f 52 virtual void SDDCables(TGeoVolume *moth);
53
b7943f00 54 virtual Int_t ExportSensorGeometry(AliITSgeom *geom, Int_t iLaySDD,
55 Int_t startMod);
56 virtual Int_t GetCurrentLayLaddDet(Int_t &lay, Int_t &ladd, Int_t&det) const;
db486a6e 57
c789ee28 58 // Functions for coding, testing, debugging
b7943f00 59 void AddHybrids(bool b) {fAddHybrids = b;};
60 void AddSensors(bool b) {fAddSensors = b;};
61 void AddHVcables(bool b) {fAddHVcables = b;};
62 void AddCables(bool b) {fAddCables = b;};
63 void AddCoolingSyst(bool b) {fAddCoolingSyst= b;};
64
65 void CheckOverlaps(Double_t precision = 0.01);
66 void AddOnlyLay3Ladder(Int_t min,Int_t max){
67 fAddOnlyLadder3min = min; fAddOnlyLadder3max = max; };
68 void AddOnlyLay4Ladder(Int_t min,Int_t max) {
69 fAddOnlyLadder4min = min; fAddOnlyLadder4max = max;};
70 void ShowOnePiece(TGeoVolume *Moth);
71
72 virtual void SetParameters();
73 TGeoVolume* GetMotherVolume() const { return fMotherVol;};
108bd0fe 74 const char* GetSenstiveVolumeName3() const {return fgSDDsensitiveVolName3;};
75 const char* GetSenstiveVolumeName4() const {return fgSDDsensitiveVolName4;};
fa4639a3 76 Int_t GetLay3NLadders() const;
77 Int_t GetLay4NLadders() const;
db486a6e 78
79 private:
80
108bd0fe 81 virtual TGeoVolumeAssembly* CreateLadder(Int_t iLay);
82 virtual TGeoVolumeAssembly* CreateDetectorsAssembly(Int_t iLay);
6801b453 83 virtual TGeoVolumeAssembly* CreateDetectorsAssemblyLadd2();
73dfc864 84 virtual TGeoVolume* CreateLadderSegment(Int_t iLay, Int_t iSeg);
108bd0fe 85 virtual TGeoVolumeAssembly* CreateEndLadder(Int_t iLay);
86 virtual TGeoVolumeAssembly* CreateEndLadderCards(Int_t iLay);
bf210566 87 virtual TGeoVolume* CreateEndLadderCardsV(Int_t iLay);
108bd0fe 88 virtual TGeoVolumeAssembly* CreateSupportRing(Int_t iLay);
89
90 // Create some basic objects :
91 virtual void CreateSDDsensor();
92 virtual TGeoVolume* CreateHybrid(Int_t iLRSide);
93 virtual TGeoVolume* CreatePinSupport();
94 virtual TGeoVolume* CreateCoolPipeSupportL();
95 virtual TGeoVolume* CreateCoolPipeSupportR();
96 virtual TGeoVolume* CreateBaseThermalBridge();
97
73dfc864 98 virtual TGeoVolumeAssembly* CreateLadderFoot();
99 virtual TGeoVolumeAssembly* CreateCarlosCard(Int_t iLay);
100 virtual Int_t CreateLVCard();
108bd0fe 101 virtual TGeoVolumeAssembly* CreateHVCard(Int_t iLay);
102
103 void CreateBasicObjects();
e118532f 104 Double_t GetConeZ(Double_t r, Double_t refR1, Double_t refR2,
105 Double_t refZ1, Double_t refZ2);
106 TGeoPcon* CreateConeConstSection(Double_t r1max, Double_t z1,
107 Double_t r2max, Double_t z2,
108 Double_t section, Int_t nDiv=1);
109 Int_t CreateAndInsetConeCablePart(TGeoVolume *mother, Double_t angle,
110 Int_t nLay3, Int_t nLay4,
111 Double_t r1, Double_t z1,
112 Double_t r2, Double_t z2);
b7943f00 113
73dfc864 114 // Check that the medium exists
b7943f00 115 virtual TGeoMedium* GetMedium(const char* mediumName);
116
117 // Create a TGeoCombiTrans: general rotation in phi and (dy,dz) translation
c789ee28 118 TGeoCombiTrans* CreateCombiTrans( const char *name,
108bd0fe 119 Double_t dy, Double_t dz, Double_t dphi,
120 Bool_t planeSym=kFALSE);
db486a6e 121
122 // add (dx,dy,dz) translation to a initial TGeoCombiTrans
c789ee28 123 void AddTranslationToCombiTrans( TGeoCombiTrans* ct,
b7943f00 124 Double_t dx=0, Double_t dy=0, Double_t dz=0) const;
db486a6e 125
126 // Create one side of the CF corner of the CF structure
8f20b5e4 127 TGeoArb8* CreateLadderSide( const char *name,
128 Double_t dz, Double_t angle, Double_t xSign,
c789ee28 129 Double_t L, Double_t H, Double_t l);
db486a6e 130
b7943f00 131 //----------------------------
132 TGeoVolume* fPinSupport; //! pins glued to sensors
133 TGeoVolume* fCoolPipeSupportL; //! half of cooling pipe support
134 TGeoVolume* fCoolPipeSupportR; //! half of cooling pipe support
108bd0fe 135 TGeoVolume* fSDDsensor3; //! sensor of lay. 3 and HV cables on it
136 TGeoVolume* fSDDsensor4; //! sensor of lay. 4 and HV cables on it
b7943f00 137 TGeoVolume* fBaseThermalBridge; //! Base of hybrid thermal bridge
138 TGeoVolume* fHybrid; //! hybrid volume
73dfc864 139 TGeoVolumeAssembly *fLadderFoot;//! ladder foot in stesalite
140 TGeoVolumeAssembly *fCardLVR; //! low voltage card, right
141 TGeoVolumeAssembly *fCardLVL; //! low voltage card, left
142 TGeoVolumeAssembly *fCardHV; //! high voltage card
143 TGeoVolumeAssembly *fCardCarlos;//! end-ladder CARLOS card
144 TGeoVolumeAssembly *fRaccordoL; //! link between cooling tubes at end ladder
145 TGeoVolume* fCommonVol[2]; //! some common vol. used in several places
146 TGeoMatrix* fCommonTr[2]; //! some common transformations
b7943f00 147
148 static const Int_t fgkNladdSegCommonVol = 19; // Number of vol.
149 TGeoVolume* fLaddSegCommonVol[fgkNladdSegCommonVol];//! volumes in ladder
150 TGeoMatrix* fLaddSegCommonTr[fgkNladdSegCommonVol]; //! their transf.
151
152 AliITSv11GeomCableFlat *fDigitCableLay3A; // layer 3 cables, side A
108bd0fe 153 AliITSv11GeomCableFlat *fDigitCableLay3B; // layer 3 cables, side B
154 AliITSv11GeomCableFlat *fDigitCableLay4A; // layer 4 cables, side A
b7943f00 155 AliITSv11GeomCableFlat *fDigitCableLay4B; // layer 4 cables, side B
156
157 TGeoVolume *fMotherVol; //! mother volume given in LayerX() funct.
158 bool fAddHybrids; // Insert hybrids ? (default TRUE)
159 bool fAddSensors; // Insert sensors ? (default TRUE)
160 bool fAddHVcables; // Insert HV cables ? (default TRUE)
161 bool fAddCables; // Insert cables ? (default TRUE)
162 bool fAddCoolingSyst; // Insert cooling system ? (default TRUE)
163 bool fCoolingOn; // Insert cooling fluid ? (default TRUE)
164 Int_t fAddOnlyLadder3min; // first ladder index
165 Int_t fAddOnlyLadder3max; // last ladder index
166 Int_t fAddOnlyLadder4min; // first ladder index
167 Int_t fAddOnlyLadder4max; // last ladder index
168 Int_t fColorCarbonFiber; // display colors
169 Int_t fColorRyton; // ===
170 Int_t fColorPhynox; // ===
171 Int_t fColorSilicon; // ===
172 Int_t fColorAl; // ===
173 Int_t fColorPolyhamide; // ===
174 Int_t fColorGlass; // ===
175 Int_t fColorSMD; // ===
176 Int_t fColorSMDweld; // ===
108bd0fe 177 Int_t fColorStesalite; // ===
b7943f00 178
179 //-------------------------------------- parameters for the SDD geometry
180
73dfc864 181 static const char* fgSDDsensitiveVolName3; // sens. vol. name for lay. 3
182 static const char* fgSDDsensitiveVolName4; // sens. vol. name for lay. 4
b7943f00 183
184 static const Int_t fgkLay3Nladd; // 14
185 static const Int_t fgkLay3Ndet; // 6
186 static const Double_t fgkLay3Rmin; // min. radius of tube
187 static const Double_t fgkLay3Rmax; // max. radius of tube
188 static const Double_t fgkLay3Length; // length of layer 3 tube
189 static const Double_t fgkLay3LadderLength; // tot. length of ladder
190 static const Double_t fgkLay3DetShortRadius; // radius from beam axis
191 static const Double_t fgkLay3DetLongRadius; // radius from beam axis
192 static const Double_t fgkLay3LaddTopCornerEnd; // Ends of ladder 3
193 static const Double_t fgkLay3ZPlusEndLength; // ===
194
195 static const Int_t fgkLay4Nladd; // 22
196 static const Int_t fgkLay4Ndet; // 8
197 static const Double_t fgkLay4Rmin; // min. radius of tube
198 static const Double_t fgkLay4Rmax; // max. radius of tube
199 static const Double_t fgkLay4Length; // length of layer 4 tube
200 static const Double_t fgkLay4LadderLength; // tot. length of ladder
201 static const Double_t fgkLay4DetShortRadius; // radius from beam axis
202 static const Double_t fgkLay4DetLongRadius; // radius from beam axis
203 static const Double_t fgkLay4LaddTopCornerEnd; // Ends of ladder 3
204 static const Double_t fgkLay4ZPlusEndLength; // ===
205
bf210566 206 static const Double_t fgkEndLaddCardsShortRadiusLay3; // ref radius of end ladder cards
207 static const Double_t fgkEndLaddCardsShortRadiusLay4; // ref radius of end ladder cards
208 static const Double_t fgkDistEndLaddCardsLadd; // dist. between U cooling tube and ladder
209
b7943f00 210 static const Double_t fgkSegmentLength; // length of 1 ladder seg.
211 static const Double_t fgkLadderWidth; // carbon fiber structure
212 static const Double_t fgkLadderHeight; // including bottom beam
213 static const Double_t fgkLadderSegBoxDW; // To include hybrids in box
214 static const Double_t fgkLadderSegBoxDH; // To include hybrids in box
9c8369f9 215 static const Double_t fgkLadderSegBoxDHCorr; // To include hybrids in box
b7943f00 216
217 static const Double_t fgkLadderBeamRadius; // carbon fiber beam radius
218 static const Double_t fgkLadderLa; // parameters defining
219 static const Double_t fgkLadderHa; // the V side shape
220 static const Double_t fgkLadderLb; // of the carbon
221 static const Double_t fgkLadderHb; // fiber ladder
222 static const Double_t fgkLadderl; // ============
223
224 static const Double_t fgkBottomBeamAngle; // bottom beam angle
225 static const Double_t fgkBeamSidePhi; // side beam angle
226
227 static const Double_t fgkWaferThickness; // sensor thickness (Y)
228 static const Double_t fgkWaferWidth; // width (X)
229 static const Double_t fgkWaferLength; // length (Z)
230 static const Double_t fgkWaferThickSens; // sensitive volume thich
231 static const Double_t fgkWaferWidthSens; // sens. volume width
232 static const Double_t fgkWaferLengthSens; // sens. volume length
233
234 static const Double_t fgkSensorGlassLX; // dimensions of glass
235 static const Double_t fgkSensorGlassLZ; // (on which pins are
236 static const Double_t fgkSensorGlassLY; // glued)
237 static const Double_t fgkGlassDXOnSensor; // Position of glass
238 static const Double_t fgkGlassDZOnSensor; // on sensor
239
240 static const Double_t fgkLadWaferSep; // ladder-sensor dist.
241 static const Double_t fgkPinR; // pins radius
242 static const Double_t fgkPinSuppWidth; // ===
243 static const Double_t fgkPinSuppHeight; // ===
244 static const Double_t fgkPinSuppRmax; // Parameters for pin
245 static const Double_t fgkPinSuppLength; // supports on
246 static const Double_t fgkPinSuppThickness; // carbon fiber
247 static const Double_t fgkPinSuppConeAngle; // ladder
248 static const Double_t fgkPinDXminOnSensor; // ===
249 static const Double_t fgkPinPinDDXOnSensor; // ===
250 static const Double_t fgkPinDYOnSensor; // ===
251
252 static const Double_t fgkCoolPipeInnerDiam; // Water cooling
253 static const Double_t fgkCoolPipeOuterDiam; // pipe
254 static const Double_t fgkLay3CoolPipeSuppH; // Heights of water
255 static const Double_t fgkLay4CoolPipeSuppH; // pipes on ladders
256 static const Double_t fgkCoolPipeSuppHeight; // ===
257 static const Double_t fgkCoolPipeSuppMaxLength; // ===
258 static const Double_t fgkCoolPipeSuppWidthExt; // Parameters for
259 static const Double_t fgkCoolPipeSuppWidthIn; // cooling pipes
260 static const Double_t fgkCoolPipeSuppHoleDiam; // on carbon fiber
261 static const Double_t fgkCoolPipeSuppFulWidth; // ladder
262 static const Double_t fgkCoolPipeSuppTongW; // ===
263 static const Double_t fgkCoolPipeSuppAngle; // ===
264 static const Double_t fgkCoolPipeSuppSlitL; // ===
265 static const Double_t fgkCoolPipeSuppAxeDist; // ===
266
267 static const Double_t fgkBTBthick; // BTB for :
268 static const Double_t fgkBTBlength; // Base of Thermal Bridge
269 static const Double_t fgkBTBwidth; // =====================
270 static const Double_t fgkBTBaxisAtoBottom; // axis A is the same as
271 static const Double_t fgkBTBaxisAtoBase; // the cooling pipe axis
272 static const Double_t fgkRadiusAminBTB; // ===
273 static const Double_t fgkRadiusBminBTB; // ===
274 static const Double_t fgkBTBHoleLength; // ===
275 static const Double_t fgkBTBHolewidth; // ===
276 static const Double_t fgkBTBHoleRefX; // ===
277 static const Double_t fgkBTBHoleRefY; // ===
278
279 static const Double_t fgkHybridLength; // Hybrid parameters :
280 static const Double_t fgkHybridWidth; // ===
281 static const Double_t fgkHybridAngle; // Hybrid on ladder in phi
282
283 static const Double_t fgkHybRndHoleRad; // ===
284 static const Double_t fgkHybRndHoleZ; // ===
285 static const Double_t fgkHybRndHoleX; // ===
286
287 static const Double_t fgkHybFLlowHoleDZ; // FLlow : low flex
288 static const Double_t fgkHybFLlowHolePasDX; // ===
289 static const Double_t fgkHybFLlowHoleAmbDX; // ===
290 // (center of ships to the border)
291 static const Double_t fgkHybFLlowChipZ4; // Z1 to Z4 : position
292 static const Double_t fgkHybFLlowChipZ3; // in z of the chip
293 static const Double_t fgkHybFLlowChipZ2; // centers
294 static const Double_t fgkHybFLlowChipZ1; // ===
295 static const Double_t fgkHybFLlowPasX; // Pascal center X pos
296 static const Double_t fgkHybFLlowAmbX; // Ambra center X pos
297 static const Double_t fgkHybChipsDZ; // Z dimension of chips
298 static const Double_t fgkHybPascalDX; // X dimension of Pascal
299 static const Double_t fgkHybAmbraDX; // X dimension of Ambra
300 static const Double_t fgkHybFLUpperWidth; // bFLUpper : upper flex
301 static const Double_t fgkHybFLUpperLength; // ===
302 static const Double_t fgkHybFLUpperAlDZ; // ===
303 static const Double_t fgkHybFLUpperAldx; // ===
304
305 static const Double_t fgkHybridThBridgeThick; // Thicknesses :
306 static const Double_t fgkHybAlThick; // ===
307 static const Double_t fgkHybUpThick; // ===
308 static const Double_t fgkHybGlueScrnThick; // ===
309 static const Double_t fgkHybGlueLowThick; // ===
310 static const Double_t fgkHybGlueUpThick; // ===
311 static const Double_t fgkHybAlCCThick; // ===
312 static const Double_t fgkHybUpCCThick; // ===
9c8369f9 313 static const Double_t fgkHybCC2SensorLen; // ===
314 static const Double_t fgkHybCC2SensorWid; // ===
315 static const Double_t fgkHybCC2SensorAng; // ===
b7943f00 316 static const Double_t fgkHybChipThick; // ===
317 static const Double_t fgkHybGlueAgThick; // ===
318 static const Double_t fgkHybUnderNiThick; // ===
319 static const Int_t fgkNHybSMD; // Number of SMD
320 static const Double_t fgkHybSMDposX[25]; // X pos. of SMD
321 static const Double_t fgkHybSMDposZ[25]; // Z pos. of SMD
322 static const Double_t fgkHybSMDmiddleW; // SMD width
323 static const Double_t fgkHybSMDmiddleL; // SMD length
324 static const Double_t fgkHybSMDendW; // end SMD witdh
325 static const Double_t fgkHybSMDendL; // end SMD length
326 static const Double_t fgkHybSMDheight; // SMD height
327
328 static const Double_t fgkDigitCablWidth; // Digital
329 static const Double_t fgkDigitCablAlThick; // cables
330 static const Double_t fgkDigitCablPolyThick; // ===
331
332 //HV cables
333 static const Double_t fgkWaHVcableAlThick; // Wrap-around
334 static const Double_t fgkWaHVcablePolyThick; // High Voltage
335 static const Double_t fgkWaHVcableLength; // cables
336 static const Double_t fgkWaHVcableWitdh; // (on sensor)
337 static const Double_t fgkWaHVcableDW; // ===
338
339 static const Double_t fgkTransitHVAlThick; // Transition
340 static const Double_t fgkTransitHVPolyThick; // High Voltage
341 static const Double_t fgkTransitHVHeadLX; // cables
342 static const Double_t fgkTransitHVHeadLZ; // (on sensor)
343 static const Double_t fgkTransitHVBondingLZ; // ===
344 static const Double_t fgkTransitHVtailLength; // ===
345 static const Double_t fgkTransitHVtailWidth; // ===
346 static const Double_t fgkTransitHVtailXpos; // ===
347 static const Double_t fgkTransitHVsideLZ; // ===
348 static const Double_t fgkTransitHVsideLeftZ; // ===
349 static const Double_t fgkTransitHVsideRightZ; // ===
350
351 static const Double_t fgkLongHVcablePolyThick; // Long High
352 static const Double_t fgkLongHVcableAlThick; // Voltage
353 static const Double_t fgkLongHVcableSeparation; // cables
354
108bd0fe 355
effd7456 356 static const Double_t fgkRubyDX; // ruby dx with respect to the middle (to ladder z axis)
357 static const Double_t fgkRubyZladd3; // Z of ruby, ladder 3
358 static const Double_t fgkRubyZladd4; // Z of ruby, ladder 4
359
360 static const Double_t fgkLadFootX; // Length of ladder foot
361 static const Double_t fgkLadFootZ; // width
362 static const Double_t fgkLadFootY; // thickness
363 static const Double_t fgkLadFootMiddleY; // thickness in the middle part
364 static const Double_t fgkLadBox1X; // size in X
365 static const Double_t fgkLadFingerPrintX; // size in X
366 static const Double_t fgkLadFingerPrintY ; // size in Y
367 static const Double_t fgkLadFingerPrintBorder; // size in X
368 static const Double_t fgkRubyCageHoleZ; // size in Z
369 static const Double_t fgkRubyCageHoleX; // size in X
370 static const Double_t fgkRubyCageHoleY; // size in Y
371 static const Double_t fgkRubyCageAxisShift; // shift in X
372 static const Double_t fgkScrewM4diam; // M4 screw standard diameter
373 static const Double_t fgkRubyScrewShiftToCenterY; // screw placement
374 static const Double_t fgkRubyHoleDiam; // guess what
108bd0fe 375
376// the end ladder cooling pipe and its heat exchanger
effd7456 377 static const Double_t fgkEndLadPipeUlengthLay3; // length in Z of the U cooling tube
378 static const Double_t fgkEndLadPipeUlengthLay4; // length in Z of the U cooling tube
379 static const Double_t fgkEndLadPipeUwidth; // width
380 static const Double_t fgkEndLadPipeRadius; // radius
381 static const Double_t fgkEndLadPipeInnerDiam; // InnerDiam
382 static const Double_t fgkEndLadPipeOuterDiam; // OuterDiam
383
384 static const Double_t fgkEndLadPipeArmZLay3; // the arms of the U cooling tube
385 static const Double_t fgkEndLadPipeArmZLay4; // (rectangular part surrounding the)
386 static const Double_t fgkEndLadPipeArmX; // the tube
387 static const Double_t fgkEndLadPipeArmY; // X, Y : size in the correxponding axis
388 static const Double_t fgkEndLadPipeArmBoxDY; // shift in Y of the arms from the axis
389 static const Double_t fgkEndLadPipeArmBoxDX; // shift in X of the arms from the axis
390 static const Double_t fgkEndLadPipeArmZpos; // position with respect to tube
108bd0fe 391
392
393 // approx dim for now - all of the following has to be checked
effd7456 394 // once Beppe provide the drawing...
108bd0fe 395
396 // Carlos Card :
effd7456 397 static const Double_t fgkLVcardX; // size of the card itself in X
398 static const Double_t fgkLVcardY; // size of the card itself in Y
399 static const Double_t fgkLVcardZ; // size of the card itself in Z
400 static const Double_t fgkLVcardCuZ; // Cu thickness
401
402 static const Double_t fgkLVChip0X; // chip #0
403 static const Double_t fgkLVChip0Y; // ...
404 static const Double_t fgkLVChip0Z; // thickness without si layer
405 static const Double_t fgkLVChip0SiZ; // Si layer thickness
406 static const Double_t fgkLVChip0PosX; // Position with respect to the card
407 static const Double_t fgkLVChip0PosY; // Position with respect to the card
408
409 static const Double_t fgkLVChip1X; // same
410 static const Double_t fgkLVChip1Y; // conventions
411 static const Double_t fgkLVChip1Z; // as
412 static const Double_t fgkLVChip1SiZ; // chip 0
413 static const Double_t fgkLVChip1PosX; // ==
414 static const Double_t fgkLVChip1PosY; // ==
415
416 static const Double_t fgkLVChip2X; // same
417 static const Double_t fgkLVChip2Y; // conventions
418 static const Double_t fgkLVChip2Z; // as
419 static const Double_t fgkLVChip2SiZ; // chip 0
420 static const Double_t fgkLVChip2PosX; // ==
421 static const Double_t fgkLVChip2PosY; // ==
422
423 static const Double_t fgkLVChip3X; // same
424 static const Double_t fgkLVChip3Y; // conventions
425 static const Double_t fgkLVChip3Z; // as
426 static const Double_t fgkLVChip3SiZ; // chip 0
427 static const Double_t fgkLVChip3PosX; // ==
428 static const Double_t fgkLVChip3PosY; // ==
429
430 static const Double_t fgkLVcoolX1; // pieces of alCu12
431 static const Double_t fgkLVcoolY1; // for heat exchange
432 static const Double_t fgkLVcoolZ1; // with the cooling tube
433
434 static const Double_t fgkLVcoolX2; // X,Y,Z are
435 static const Double_t fgkLVcoolY2; // dimensions
436 static const Double_t fgkLVcoolZ2; // of the pieces
437
438 static const Double_t fgkLVcoolX3; // ==
439 static const Double_t fgkLVcoolY3; // ==
440 static const Double_t fgkLVcoolPosY; // ==
108bd0fe 441
442 // HV card :
effd7456 443 static const Double_t fgkHVCardCeramX; // size in X of the ceramic card
444 static const Double_t fgkHVCardCeramY; // size in Y
445 static const Double_t fgkHVCardCeramZ; // size in Z
446
447 static const Double_t fgkHVCardCapa1X; // size in X of the capa 1
448 static const Double_t fgkHVCardCapa1Z; // size in Z
449 static const Double_t fgkHVCardCapa1Ymid; // size of the middle part
450 static const Double_t fgkHVCardCapa1Yend; // ...
451 static const Double_t fgkHVCardCapa1PosX; // position on the card
452 static const Double_t fgkHVCardCapa1PosY; // position on the card
453
454 static const Double_t fgkHVCardCapa2X; // idem for second type capa
455 static const Double_t fgkHVCardCapa2Z; // love me
456 static const Double_t fgkHVCardCapa2Ymid; // ...
457 static const Double_t fgkHVCardCapa2Yend; // tender,
458 static const Double_t fgkHVCardCapa2PosX; // ...
459 static const Double_t fgkHVCardCapa2PosY; // love me true
460
461 static const Double_t fgkHVCardCapa3Xmid; // idem for third type capa
462 static const Double_t fgkHVCardCapa3Xend; // ===
463 static const Double_t fgkHVCardCapa3Z; // ===
464 static const Double_t fgkHVCardCapa3Y; // ===
465
466 static const Double_t fgkHVCardCapa3PosX1; // this capa is placed
467 static const Double_t fgkHVCardCapa3PosX2; // in several positions
468 static const Double_t fgkHVCardCapa3PosX3; // ...
469 static const Double_t fgkHVCardCapa3PosX4; // ===
470 static const Double_t fgkHVCardCapa3PosX5; // ===
471 static const Double_t fgkHVCardCapa3PosY1; // ===
472 static const Double_t fgkHVCardCapa3PosY2; // ===
473 static const Double_t fgkHVCardCapa3PosY3; // ===
474
475 static const Double_t fgkHVCardCool1X; // cooling
476 static const Double_t fgkHVCardCool1Y; // pieces for
477 static const Double_t fgkHVCardCool1Z; // heat exchange
478 static const Double_t fgkHVCardCool2X; // with
479 static const Double_t fgkHVCardCool2Y; // cooling U tube
480 static const Double_t fgkHVCardCool2Z; // ===
481 static const Double_t fgkHVCardCool3X; // ===
482 static const Double_t fgkHVCardCool3Y; // ===
483 static const Double_t fgkHVCardCool3Z; // ===
484 static const Double_t fgkHVCardCoolDY; // ===
485
73dfc864 486 static const Double_t fgkCarlosSuppX1; // piece with which
effd7456 487 static const Double_t fgkCarlosSuppY1; // the carlos card
488 static const Double_t fgkCarlosSuppX2; // is fixed
489 static const Double_t fgkCarlosSuppY2; // ===
490 static const Double_t fgkCarlosSuppZ; // ===
491 static const Double_t fgkCarlosSuppAngle; // ===
492 static const Double_t fgkCarlosSuppX3; // ===
493 static const Double_t fgkCarlosSuppY3; // ===
494 static const Double_t fgkCarlosSuppZ3; // ===
495 static const Double_t fgkCarlosSuppTopLen; // ===
108bd0fe 496
73dfc864 497 // screws fixing the board on the U tube
498 static const Double_t fgkLittleScrewHeadR; // screws fixing boards
499 static const Double_t fgkLittleScrewHeadH; // Value to be checked
500 static const Double_t fgkLittleScrewR; // ===
501 static const Double_t fgkShiftLittleScrewLV; // ===
502 static const Double_t fgkLittleLVScrewHeadR; // ===
503
504 // CARLOS board
505 static const Double_t fgkCarlosCardX1; // length (first part of Carlos card)
506 static const Double_t fgkCarlosCardY1; // thickness
507 static const Double_t fgkCarlosCardZ1; // width
508 static const Double_t fgkCarlosCardCuY; // thickness of Cu layer (strips)
509 static const Double_t fgkCarlosCardX2; // length (2nd part of Carlos card)
510 static const Double_t fgkCarlosCardZ2; // width
511
512 static const Double_t fgkCarlosCardChipSiThick; // Carlos Chip thicknes - value to be checked
513 static const Double_t fgkCarlosCardShift; // (value to be checked) shift in z w.r.t. heat bridge
514
515 // size and position of various chips on carlos end-ladder board
516 static const Double_t fgkCarlosU1X; // chip size in X
517 static const Double_t fgkCarlosU1Y; // chip size in Y
518 static const Double_t fgkCarlosU1Z; // chip size in Z
519 static const Double_t fgkCarlosU1posX; // position in X
520 static const Double_t fgkCarlosU1posZ; // position in Z
521
522 static const Double_t fgkCarlosU2X; // chip size in X
523 static const Double_t fgkCarlosU2Y; // chip size in Y
524 static const Double_t fgkCarlosU2Z; // chip size in Z
525 static const Double_t fgkCarlosU2posX; // position in X
526 static const Double_t fgkCarlosU2posZ; // position in Z
527
528 static const Double_t fgkCarlosU3X; // same convention
529 static const Double_t fgkCarlosU3Y; // ===
530 static const Double_t fgkCarlosU3Z; // ===
531 static const Double_t fgkCarlosU3posX; // ===
532 static const Double_t fgkCarlosU3posZ; // ===
533
534 // U4 like U3
535 static const Double_t fgkCarlosU4posX; // same convention
536 static const Double_t fgkCarlosU4posZ; // ===
537
538 static const Double_t fgkCarlosU17X; // same convention
539 static const Double_t fgkCarlosU17Y; // ===
540 static const Double_t fgkCarlosU17Z; // ===
541 static const Double_t fgkCarlosU17posX; // ===
542 static const Double_t fgkCarlosU17posZ; // ===
543
544 static const Double_t fgkCarlosU35X; // same convention
545 static const Double_t fgkCarlosU35Y; // ===
546 static const Double_t fgkCarlosU35Z; // ===
547 static const Double_t fgkCarlosU35posX; // ===
548 static const Double_t fgkCarlosU35posZ; // ===
549
550 static const Double_t fgkCarlosU36X; // same convention
551 static const Double_t fgkCarlosU36Y; // ===
552 static const Double_t fgkCarlosU36Z; // ===
553 static const Double_t fgkCarlosU36posX; // ===
554 static const Double_t fgkCarlosU36posZ; // ===
555
556 static const Double_t fgkCarlosQZ1X; // same convention
557 static const Double_t fgkCarlosQZ1Y; // look more thick than design number (0.7) ! to be checked
558 static const Double_t fgkCarlosQZ1Z; // to be checked
559 static const Double_t fgkCarlosQZ1posX; // to be checked
560 static const Double_t fgkCarlosQZ1posZ; // to be checked
561
562 // some pieces at the end of the carbon fiber ladder
563 static const Double_t fgkCoolPipeLay3Len; // value to be checked
564 static const Double_t fgkCoolPipeLay4Len; // ===
565 static const Double_t fgkHVguideX1; // ===
566 static const Double_t fgkHVguideY1; // ===
567 static const Double_t fgkHVguideZ1; // ===
568 static const Double_t fgkHVguideZ2; // ===
569 static const Double_t fgkHVguideDX; // ===
570 static const Double_t fgkHVguideSuppFullZ; // ===
571
572 // Cooling connector between phynox and plastic cooling water tubes
573 static const Double_t fgkConnectorCoolTubeRmin; // internal radius
574 static const Double_t fgkConnectorCoolTubeR1; // value to be checked
575 static const Double_t fgkConnectorCoolTubeL1; // ===
576 static const Double_t fgkConnectorCoolTubeR2; // ===
577 static const Double_t fgkConnectorCoolTubeL2; // ===
578 static const Double_t fgkConnectorCoolTubeR3; // ===
579 static const Double_t fgkConnectorCoolTubeL3; // ===
580
e118532f 581 // parameters for coding SDD cables on SDD and SSD cones
582 static const Double_t fgkSectionCuPerMod; // area of copper per mod.
583 static const Double_t fgkSectionPlastPerMod; // area of plast per mod.
584 static const Double_t fgkSectionGlassPerMod; // area of optical fiber per mod.
c890eba4 585 static const Double_t fgkSectionCoolPolyuEL; // area of cooling tubes on End Ladders
586 static const Double_t fgkSectionCoolWaterEL; // area of cooling water on End Ladders
d485d5bf 587 static const Double_t fgkEndLadderEarthCableR; // radius of the earth cable on End Ladders
e118532f 588 static const Double_t fgkCableBendRatio; // ??? this factor account for the bending of cables
9c8369f9 589 static const Double_t fgkHybridAlFoilThick; // Thickness of Al foil on hybrid side
590 static const Double_t fgkHybridAlFoilWide; // Width of Al foil on hybrid side
591 static const Double_t fgkHybridAlFoilSide; // Side length of Al foil on hybrid side
e118532f 592
593 static const Double_t fgkConeSDDr1; // define SDD cone slope and pos
594 static const Double_t fgkConeSDDr2; // define SDD cone slope and pos
595 static const Double_t fgkConeSDDz1; // define SDD cone slope and pos
596 static const Double_t fgkConeSDDz2; // define SDD cone slope and pos
597
598 static const Double_t fgkSDDCableR1; // ??? // part 1 of "cable cone"
599 static const Double_t fgkSDDCableR2; // ??? // part 1/2 of "cable cone"
600 static const Double_t fgkSDDCableR3; // ??? // part 2 of "cable cone"
601
602 static const Double_t fgkSDDCableDZint; // length of intermediate cylinder
603 static const Double_t fgkSDDCableR5; // third part of "cable cone"
604 static const Double_t fgkSDDCableZ5; // third part of "cable cone"
605
606
607
73dfc864 608 // distance from the heat bridge center to the card center :
609 static const Double_t fgkCarlosCard2HeatBridge;// distance from the heat bridge center to the card center
610
b7943f00 611 static const Double_t fgkmu; // 1 micron, or more for debugging
612
613 // calculated parameters
614 Double_t fLay3LadderUnderSegDH; // To include HVcables in box
615 Double_t fLay4LadderUnderSegDH; // To include HVcables in box
616 Double_t fLay3LaddShortRadius; // ladder 3 to beam axis radius
617 Double_t fLay3LaddLongRadius; // ladder 3 to beam axis radius
618 Double_t fLay4LaddShortRadius; // ladder 4 to beam axis radius
619 Double_t fLay4LaddLongRadius; // ladder 4 to beam axis radius
620
73dfc864 621 // parameters that can be modified
b7943f00 622 Double_t fLay3sensorZPos[6]; // Z pos of sensors in layer 3
623 Double_t fLay4sensorZPos[8]; // Z pos of sensors in layer 4
db486a6e 624
73dfc864 625 ClassDef(AliITSv11GeometrySDD,0) // ITS v11 SDD geometry
db486a6e 626};
627
628
db486a6e 629#endif