Coding conventions
[u/mrichter/AliRoot.git] / ITS / AliITSv11GeometrySDD.h
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
7
8 //*************************************************************************
9 //
10 // SDD geometry, based on ROOT geometrical modeler
11 //
12 // Its integration to the aliroot framework is done in the AliITSv11Hybrid
13 // class (AliITSv11 not being functionnal so far)
14 //
15 // This geometry has no dependence with aliroot, you can run it with root
16 // only, provided that the AliITSv11GeomCable classes are also compiled
17 //
18 // Ludovic Gaudichet                                   gaudichet@to.infn.it
19 //*************************************************************************
20
21
22 class TGeoVolume;
23 class TGeoVolumeAssembly;
24 class TGeoTranslation;
25 class TGeoCombiTrans;
26 class TGeoArb8;
27 class TGeoNode;
28 class TGeoMedium;
29 class TGeoMatrix;
30 class AliITSgeom;
31 class AliITSv11GeomCableFlat;
32
33 #include "AliITSv11Geometry.h"
34
35
36 class AliITSv11GeometrySDD : public AliITSv11Geometry {
37
38  public:
39   AliITSv11GeometrySDD();
40   AliITSv11GeometrySDD(Int_t debug);
41   AliITSv11GeometrySDD(const AliITSv11GeometrySDD &source);
42   AliITSv11GeometrySDD& operator=(const AliITSv11GeometrySDD &source);
43   virtual ~AliITSv11GeometrySDD();
44
45   // Main functions
46   virtual void  Layer3(TGeoVolume *moth);
47   virtual void  Layer4(TGeoVolume *moth);
48   virtual Int_t ExportSensorGeometry(AliITSgeom *geom, Int_t iLaySDD,
49                                       Int_t startMod);
50   virtual Int_t GetCurrentLayLaddDet(Int_t &lay, Int_t &ladd, Int_t&det) const;
51
52   // Functions for coding, testing, debugging 
53   void          AddHybrids(bool b)     {fAddHybrids    = b;};
54   void          AddSensors(bool b)     {fAddSensors    = b;};
55   void          AddHVcables(bool b)    {fAddHVcables   = b;};
56   void          AddCables(bool b)      {fAddCables     = b;};
57   void          AddCoolingSyst(bool b) {fAddCoolingSyst= b;};
58
59   void          CheckOverlaps(Double_t precision = 0.01);
60   void          AddOnlyLay3Ladder(Int_t min,Int_t max){
61                   fAddOnlyLadder3min = min; fAddOnlyLadder3max = max; };
62   void          AddOnlyLay4Ladder(Int_t min,Int_t max) {
63                   fAddOnlyLadder4min = min; fAddOnlyLadder4max = max;};
64   void          ShowOnePiece(TGeoVolume *Moth);
65
66   virtual void  SetParameters();
67   TGeoVolume*   GetMotherVolume() const { return fMotherVol;};
68   const char*   GetSenstiveVolumeName3() const {return fgSDDsensitiveVolName3;};
69   const char*   GetSenstiveVolumeName4() const {return fgSDDsensitiveVolName4;};
70   Int_t         GetLay3NLadders() const;
71   Int_t         GetLay4NLadders() const;
72
73   private:
74
75   virtual TGeoVolumeAssembly*  CreateLadder(Int_t iLay);
76   virtual TGeoVolumeAssembly*  CreateDetectorsAssembly(Int_t iLay);
77   virtual TGeoVolumeAssembly*  CreateLadderSegment(Int_t iLay, Int_t iSeg);
78   virtual TGeoVolumeAssembly*  CreateEndLadder(Int_t iLay);
79   virtual TGeoVolumeAssembly*  CreateEndLadderCards(Int_t iLay);
80   virtual TGeoVolumeAssembly*  CreateSupportRing(Int_t iLay);
81
82   // Create some basic objects : 
83   virtual void                 CreateSDDsensor();
84   virtual TGeoVolume*          CreateHybrid(Int_t iLRSide);
85   virtual TGeoVolume*          CreatePinSupport();
86   virtual TGeoVolume*          CreateCoolPipeSupportL();
87   virtual TGeoVolume*          CreateCoolPipeSupportR();
88   virtual TGeoVolume*          CreateBaseThermalBridge();
89
90 /*   virtual TGeoVolumeAssembly*  CreateCarlosCard(Int_t iLay); */
91   virtual TGeoVolumeAssembly*  CreateLVCard(Int_t orientation);
92   virtual TGeoVolumeAssembly*  CreateHVCard(Int_t iLay);
93
94   void                         CreateBasicObjects();
95
96
97   // Check that the nedium exists
98   virtual TGeoMedium* GetMedium(const char* mediumName);
99
100   // Create a TGeoCombiTrans: general rotation in phi and (dy,dz) translation 
101   TGeoCombiTrans* CreateCombiTrans( const char *name,
102                                     Double_t dy, Double_t dz, Double_t dphi,
103                                     Bool_t planeSym=kFALSE);
104
105   // add (dx,dy,dz) translation to a initial TGeoCombiTrans
106   void AddTranslationToCombiTrans( TGeoCombiTrans* ct,
107                           Double_t dx=0, Double_t dy=0, Double_t dz=0) const;
108
109   // Create one side of the CF corner of the CF structure
110   TGeoArb8* CreateLadderSide( Double_t dz, Double_t angle, Double_t xSign,
111                               Double_t L, Double_t H, Double_t l);
112
113   //----------------------------
114   TGeoVolume* fPinSupport;        //!  pins glued to sensors
115   TGeoVolume* fCoolPipeSupportL;  //!  half of cooling pipe support
116   TGeoVolume* fCoolPipeSupportR;  //!  half of cooling pipe support
117   TGeoVolume* fSDDsensor3;        //!  sensor of lay. 3 and HV cables on it
118   TGeoVolume* fSDDsensor4;        //!  sensor of lay. 4 and HV cables on it
119   TGeoVolume* fBaseThermalBridge; //!  Base of hybrid thermal bridge
120   TGeoVolume* fHybrid;            //!  hybrid volume
121
122   static const Int_t fgkNladdSegCommonVol = 19;       //  Number of vol.
123   TGeoVolume* fLaddSegCommonVol[fgkNladdSegCommonVol];//! volumes in ladder
124   TGeoMatrix* fLaddSegCommonTr[fgkNladdSegCommonVol]; //! their transf.
125
126   AliITSv11GeomCableFlat *fDigitCableLay3A; // layer 3 cables, side A
127   AliITSv11GeomCableFlat *fDigitCableLay3B; // layer 3 cables, side B
128   AliITSv11GeomCableFlat *fDigitCableLay4A; // layer 4 cables, side A
129   AliITSv11GeomCableFlat *fDigitCableLay4B; // layer 4 cables, side B
130
131   TGeoVolume *fMotherVol;    //! mother volume given in LayerX() funct.
132   bool  fAddHybrids;         //  Insert hybrids ?   (default TRUE)
133   bool  fAddSensors;         //  Insert sensors ?   (default TRUE)
134   bool  fAddHVcables;        //  Insert HV cables ? (default TRUE)
135   bool  fAddCables;          //  Insert cables ?    (default TRUE)
136   bool  fAddCoolingSyst;     //  Insert cooling system ? (default TRUE)
137   bool  fCoolingOn;          //  Insert cooling fluid ?  (default TRUE)
138   Int_t fAddOnlyLadder3min;  //  first ladder index
139   Int_t fAddOnlyLadder3max;  //  last  ladder index
140   Int_t fAddOnlyLadder4min;  //  first ladder index
141   Int_t fAddOnlyLadder4max;  //  last  ladder index
142   Int_t fColorCarbonFiber;   //  display colors
143   Int_t fColorRyton;         //  ===
144   Int_t fColorPhynox;        //  ===
145   Int_t fColorSilicon;       //  ===
146   Int_t fColorAl;            //  ===
147   Int_t fColorPolyhamide;    //  ===
148   Int_t fColorGlass;         //  ===
149   Int_t fColorSMD;           //  ===
150   Int_t fColorSMDweld;       //  ===
151   Int_t fColorStesalite;     //  ===
152
153   //--------------------------------------  parameters for the SDD geometry
154
155   static const char* fgSDDsensitiveVolName3;       // sens. vol. name for lay. 3
156   static const char* fgSDDsensitiveVolName4;       // sens. vol. name for lay. 4
157
158   static const Int_t    fgkLay3Nladd;             // 14
159   static const Int_t    fgkLay3Ndet;              //  6
160   static const Double_t fgkLay3Rmin;              // min. radius of tube
161   static const Double_t fgkLay3Rmax;              // max. radius of tube
162   static const Double_t fgkLay3Length;            // length of layer 3 tube
163   static const Double_t fgkLay3LadderLength;      // tot. length of ladder
164   static const Double_t fgkLay3DetShortRadius;    // radius from beam axis
165   static const Double_t fgkLay3DetLongRadius;     // radius from beam axis
166   static const Double_t fgkLay3LaddTopCornerEnd;  // Ends of ladder 3
167   static const Double_t fgkLay3ZPlusEndLength;    // ===
168
169   static const Int_t    fgkLay4Nladd;             // 22
170   static const Int_t    fgkLay4Ndet;              //  8
171   static const Double_t fgkLay4Rmin;              // min. radius of tube
172   static const Double_t fgkLay4Rmax;              // max. radius of tube
173   static const Double_t fgkLay4Length;            // length of layer 4 tube
174   static const Double_t fgkLay4LadderLength;      // tot. length of ladder
175   static const Double_t fgkLay4DetShortRadius;    // radius from beam axis
176   static const Double_t fgkLay4DetLongRadius;     // radius from beam axis
177   static const Double_t fgkLay4LaddTopCornerEnd;  // Ends of ladder 3
178   static const Double_t fgkLay4ZPlusEndLength;    // ===
179
180   static const Double_t fgkSegmentLength;         // length of 1 ladder seg.
181   static const Double_t fgkLadderWidth;           // carbon fiber structure 
182   static const Double_t fgkLadderHeight;          // including bottom beam
183   static const Double_t fgkLadderSegBoxDW;        // To include hybrids in box
184   static const Double_t fgkLadderSegBoxDH;        // To include hybrids in box
185
186   static const Double_t fgkLadderBeamRadius;      // carbon fiber beam radius
187   static const Double_t fgkLadderLa;              // parameters defining
188   static const Double_t fgkLadderHa;              //   the V side shape
189   static const Double_t fgkLadderLb;              //   of the carbon
190   static const Double_t fgkLadderHb;              //   fiber ladder
191   static const Double_t fgkLadderl;               //   ============
192
193   static const Double_t fgkBottomBeamAngle;       // bottom beam angle
194   static const Double_t fgkBeamSidePhi;           // side beam angle
195
196   static const Double_t fgkWaferThickness;        // sensor thickness (Y)
197   static const Double_t fgkWaferWidth;            // width (X)
198   static const Double_t fgkWaferLength;           // length (Z)
199   static const Double_t fgkWaferThickSens;        // sensitive volume thich
200   static const Double_t fgkWaferWidthSens;        // sens. volume width
201   static const Double_t fgkWaferLengthSens;       // sens. volume length
202
203   static const Double_t fgkSensorGlassLX;         // dimensions of glass
204   static const Double_t fgkSensorGlassLZ;         //  (on which pins are
205   static const Double_t fgkSensorGlassLY;         //   glued)
206   static const Double_t fgkGlassDXOnSensor;       // Position of glass
207   static const Double_t fgkGlassDZOnSensor;       //   on sensor
208
209   static const Double_t fgkLadWaferSep;           // ladder-sensor dist.
210   static const Double_t fgkPinR;                  // pins radius
211   static const Double_t fgkPinSuppWidth;          // ===
212   static const Double_t fgkPinSuppHeight;         // ===
213   static const Double_t fgkPinSuppRmax;           // Parameters for pin
214   static const Double_t fgkPinSuppLength;         //   supports on
215   static const Double_t fgkPinSuppThickness;      //   carbon fiber
216   static const Double_t fgkPinSuppConeAngle;      //   ladder
217   static const Double_t fgkPinDXminOnSensor;      // ===
218   static const Double_t fgkPinPinDDXOnSensor;     // ===
219   static const Double_t fgkPinDYOnSensor;         // ===
220
221   static const Double_t fgkCoolPipeInnerDiam;     // Water cooling
222   static const Double_t fgkCoolPipeOuterDiam;     //   pipe
223   static const Double_t fgkLay3CoolPipeSuppH;     // Heights of water
224   static const Double_t fgkLay4CoolPipeSuppH;     //   pipes on ladders
225   static const Double_t fgkCoolPipeSuppHeight;    // ===
226   static const Double_t fgkCoolPipeSuppMaxLength; // ===
227   static const Double_t fgkCoolPipeSuppWidthExt;  // Parameters for
228   static const Double_t fgkCoolPipeSuppWidthIn;   //  cooling pipes
229   static const Double_t fgkCoolPipeSuppHoleDiam;  //  on carbon fiber
230   static const Double_t fgkCoolPipeSuppFulWidth;  //  ladder 
231   static const Double_t fgkCoolPipeSuppTongW;     // ===
232   static const Double_t fgkCoolPipeSuppAngle;     // ===
233   static const Double_t fgkCoolPipeSuppSlitL;     // ===
234   static const Double_t fgkCoolPipeSuppAxeDist;   // ===
235
236   static const Double_t fgkBTBthick;              // BTB for :
237   static const Double_t fgkBTBlength;             // Base of Thermal Bridge
238   static const Double_t fgkBTBwidth;              // =====================
239   static const Double_t fgkBTBaxisAtoBottom;      // axis A is the same as
240   static const Double_t fgkBTBaxisAtoBase;        // the cooling pipe axis
241   static const Double_t fgkRadiusAminBTB;         // ===
242   static const Double_t fgkRadiusBminBTB;         // ===
243   static const Double_t fgkBTBHoleLength;         // ===
244   static const Double_t fgkBTBHolewidth;          // ===
245   static const Double_t fgkBTBHoleRefX;           // ===
246   static const Double_t fgkBTBHoleRefY;           // ===
247
248   static const Double_t fgkHybridLength;          // Hybrid parameters :
249   static const Double_t fgkHybridWidth;           // ===
250   static const Double_t fgkHybridAngle;           // Hybrid on ladder in phi
251
252   static const Double_t fgkHybRndHoleRad;         // ===
253   static const Double_t fgkHybRndHoleZ;           // ===
254   static const Double_t fgkHybRndHoleX;           // ===
255
256   static const Double_t fgkHybFLlowHoleDZ;        // FLlow : low flex
257   static const Double_t fgkHybFLlowHolePasDX;     // ===
258   static const Double_t fgkHybFLlowHoleAmbDX;     // ===
259   // (center of ships to the border)
260   static const Double_t fgkHybFLlowChipZ4;        // Z1 to Z4 : position
261   static const Double_t fgkHybFLlowChipZ3;        //   in z of the chip
262   static const Double_t fgkHybFLlowChipZ2;        //   centers
263   static const Double_t fgkHybFLlowChipZ1;        // ===
264   static const Double_t fgkHybFLlowPasX;          // Pascal center X pos
265   static const Double_t fgkHybFLlowAmbX;          // Ambra center X pos
266   static const Double_t fgkHybChipsDZ;            // Z dimension of chips
267   static const Double_t fgkHybPascalDX;           // X dimension of Pascal
268   static const Double_t fgkHybAmbraDX;            // X dimension of Ambra
269   static const Double_t fgkHybFLUpperWidth;       // bFLUpper : upper flex
270   static const Double_t fgkHybFLUpperLength;      // ===
271   static const Double_t fgkHybFLUpperAlDZ;        // ===
272   static const Double_t fgkHybFLUpperAldx;        // ===
273
274   static const Double_t fgkHybridThBridgeThick;   // Thicknesses :
275   static const Double_t fgkHybAlThick;            // ===
276   static const Double_t fgkHybUpThick;            // ===
277   static const Double_t fgkHybGlueScrnThick;      // ===
278   static const Double_t fgkHybGlueLowThick;       // ===
279   static const Double_t fgkHybGlueUpThick;        // ===
280   static const Double_t fgkHybAlCCThick;          // ===
281   static const Double_t fgkHybUpCCThick;          // ===
282   static const Double_t fgkHybChipThick;          // ===
283   static const Double_t fgkHybGlueAgThick;        // ===
284   static const Double_t fgkHybUnderNiThick;       // ===
285   static const Int_t    fgkNHybSMD;               // Number of SMD
286   static const Double_t fgkHybSMDposX[25];        // X pos. of SMD
287   static const Double_t fgkHybSMDposZ[25];        // Z pos. of SMD
288   static const Double_t fgkHybSMDmiddleW;         // SMD width
289   static const Double_t fgkHybSMDmiddleL;         // SMD length
290   static const Double_t fgkHybSMDendW;            // end SMD witdh
291   static const Double_t fgkHybSMDendL;            // end SMD length
292   static const Double_t fgkHybSMDheight;          // SMD height
293
294   static const Double_t fgkDigitCablWidth;        // Digital
295   static const Double_t fgkDigitCablAlThick;      // cables
296   static const Double_t fgkDigitCablPolyThick;    // ===
297
298   //HV cables
299   static const Double_t fgkWaHVcableAlThick;      // Wrap-around
300   static const Double_t fgkWaHVcablePolyThick;    //   High Voltage
301   static const Double_t fgkWaHVcableLength;       //   cables
302   static const Double_t fgkWaHVcableWitdh;        //   (on sensor)
303   static const Double_t fgkWaHVcableDW;           // ===
304
305   static const Double_t fgkTransitHVAlThick;      // Transition
306   static const Double_t fgkTransitHVPolyThick;    //   High Voltage
307   static const Double_t fgkTransitHVHeadLX;       //   cables
308   static const Double_t fgkTransitHVHeadLZ;       //   (on sensor)
309   static const Double_t fgkTransitHVBondingLZ;    // ===
310   static const Double_t fgkTransitHVtailLength;   // ===
311   static const Double_t fgkTransitHVtailWidth;    // ===
312   static const Double_t fgkTransitHVtailXpos;     // ===
313   static const Double_t fgkTransitHVsideLZ;       // ===
314   static const Double_t fgkTransitHVsideLeftZ;    // ===
315   static const Double_t fgkTransitHVsideRightZ;   // ===
316
317   static const Double_t fgkLongHVcablePolyThick;  // Long High
318   static const Double_t fgkLongHVcableAlThick;    //   Voltage
319   static const Double_t fgkLongHVcableSeparation; //   cables
320
321
322   static const Double_t fgkRubyDX;                // ruby dx with respect to the middle (to ladder z axis)
323   static const Double_t fgkRubyZladd3;            // Z of ruby, ladder 3
324   static const Double_t fgkRubyZladd4;            // Z of ruby, ladder 4
325
326   static const Double_t fgkLadFootX;              // Length of ladder foot
327   static const Double_t fgkLadFootZ;              // width 
328   static const Double_t fgkLadFootY;              // thickness
329   static const Double_t fgkLadFootMiddleY;        // thickness in the middle part
330   static const Double_t fgkLadBox1X;              // size in X
331   static const Double_t fgkLadFingerPrintX;       // size in X
332   static const Double_t fgkLadFingerPrintY ;      // size in Y
333   static const Double_t fgkLadFingerPrintBorder;  // size in X
334   static const Double_t fgkRubyCageHoleZ;         // size in Z
335   static const Double_t fgkRubyCageHoleX;         // size in X
336   static const Double_t fgkRubyCageHoleY;         // size in Y
337   static const Double_t fgkRubyCageAxisShift;     // shift in X
338   static const Double_t fgkScrewM4diam;           // M4 screw standard diameter 
339   static const Double_t fgkRubyScrewShiftToCenterY; // screw placement 
340   static const Double_t fgkRubyHoleDiam;          // guess what
341
342 // the end ladder cooling pipe and its heat exchanger
343   static const Double_t fgkEndLadPipeUlengthLay3; // length in Z of the U cooling tube
344   static const Double_t fgkEndLadPipeUlengthLay4; // length in Z of the U cooling tube
345   static const Double_t fgkEndLadPipeUwidth;      // width
346   static const Double_t fgkEndLadPipeRadius;      // radius
347   static const Double_t fgkEndLadPipeInnerDiam;   // InnerDiam
348   static const Double_t fgkEndLadPipeOuterDiam;   // OuterDiam
349
350   static const Double_t fgkEndLadPipeArmZLay3;    // the arms of the U cooling tube
351   static const Double_t fgkEndLadPipeArmZLay4;    // (rectangular part surrounding the)
352   static const Double_t fgkEndLadPipeArmX;        // the tube
353   static const Double_t fgkEndLadPipeArmY;        // X, Y : size in the correxponding axis
354   static const Double_t fgkEndLadPipeArmBoxDY;    // shift in Y of the arms from the axis
355   static const Double_t fgkEndLadPipeArmBoxDX;    // shift in X of the arms from the axis
356   static const Double_t fgkEndLadPipeArmZpos;     // position with respect to tube  
357
358
359   // approx dim for now - all of the following has to be checked
360   // once Beppe provide the drawing...
361
362   // Carlos Card :
363   static const Double_t fgkLVcardX;              // size of the card itself in X
364   static const Double_t fgkLVcardY;              // size of the card itself in Y
365   static const Double_t fgkLVcardZ;              // size of the card itself in Z
366   static const Double_t fgkLVcardCuZ;            // Cu thickness
367
368   static const Double_t fgkLVChip0X;             // chip #0
369   static const Double_t fgkLVChip0Y;             // ...
370   static const Double_t fgkLVChip0Z;             //  thickness without si layer
371   static const Double_t fgkLVChip0SiZ;           // Si layer thickness
372   static const Double_t fgkLVChip0PosX;          // Position with respect to the card
373   static const Double_t fgkLVChip0PosY;          // Position with respect to the card
374
375   static const Double_t fgkLVChip1X;             // same
376   static const Double_t fgkLVChip1Y;             // conventions
377   static const Double_t fgkLVChip1Z;             // as
378   static const Double_t fgkLVChip1SiZ;           // chip 0
379   static const Double_t fgkLVChip1PosX;          // ==
380   static const Double_t fgkLVChip1PosY;          // ==
381
382   static const Double_t fgkLVChip2X;             // same
383   static const Double_t fgkLVChip2Y;             // conventions
384   static const Double_t fgkLVChip2Z;             // as
385   static const Double_t fgkLVChip2SiZ;           // chip 0
386   static const Double_t fgkLVChip2PosX;          // ==
387   static const Double_t fgkLVChip2PosY;          // ==
388
389   static const Double_t fgkLVChip3X;             // same
390   static const Double_t fgkLVChip3Y;             // conventions
391   static const Double_t fgkLVChip3Z;             // as
392   static const Double_t fgkLVChip3SiZ;           // chip 0
393   static const Double_t fgkLVChip3PosX;          // ==
394   static const Double_t fgkLVChip3PosY;          // ==
395
396   static const Double_t fgkLVcoolX1;             // pieces of alCu12
397   static const Double_t fgkLVcoolY1;             // for heat exchange
398   static const Double_t fgkLVcoolZ1;             // with the cooling tube
399
400   static const Double_t fgkLVcoolX2;             // X,Y,Z are
401   static const Double_t fgkLVcoolY2;             // dimensions
402   static const Double_t fgkLVcoolZ2;             // of the pieces
403
404   static const Double_t fgkLVcoolX3;             // ==
405   static const Double_t fgkLVcoolY3;             // ==
406   static const Double_t fgkLVcoolPosY;           // ==
407
408   // HV card :
409   static const Double_t fgkHVCardCeramX;         // size in X of the ceramic card
410   static const Double_t fgkHVCardCeramY;         // size in Y
411   static const Double_t fgkHVCardCeramZ;         // size in Z
412
413   static const Double_t fgkHVCardCapa1X;         // size in X of the capa 1
414   static const Double_t fgkHVCardCapa1Z;         // size in Z
415   static const Double_t fgkHVCardCapa1Ymid;      // size of the middle part
416   static const Double_t fgkHVCardCapa1Yend;      // ...
417   static const Double_t fgkHVCardCapa1PosX;      // position on the card
418   static const Double_t fgkHVCardCapa1PosY;      // position on the card
419
420   static const Double_t fgkHVCardCapa2X;         // idem for second type capa
421   static const Double_t fgkHVCardCapa2Z;         //   love me
422   static const Double_t fgkHVCardCapa2Ymid;      //   ...
423   static const Double_t fgkHVCardCapa2Yend;      //   tender,
424   static const Double_t fgkHVCardCapa2PosX;      //   ...
425   static const Double_t fgkHVCardCapa2PosY;      //   love me true
426
427   static const Double_t fgkHVCardCapa3Xmid;      //  idem for third type capa
428   static const Double_t fgkHVCardCapa3Xend;      //  ===
429   static const Double_t fgkHVCardCapa3Z;         //  ===
430   static const Double_t fgkHVCardCapa3Y;         //  ===
431
432   static const Double_t fgkHVCardCapa3PosX1;     // this capa is placed
433   static const Double_t fgkHVCardCapa3PosX2;     // in several positions
434   static const Double_t fgkHVCardCapa3PosX3;     // ...
435   static const Double_t fgkHVCardCapa3PosX4;     // ===
436   static const Double_t fgkHVCardCapa3PosX5;     // ===
437   static const Double_t fgkHVCardCapa3PosY1;     // ===
438   static const Double_t fgkHVCardCapa3PosY2;     // ===
439   static const Double_t fgkHVCardCapa3PosY3;     // ===
440
441   static const Double_t fgkHVCardCool1X;         // cooling
442   static const Double_t fgkHVCardCool1Y;         // pieces for
443   static const Double_t fgkHVCardCool1Z;         // heat exchange
444   static const Double_t fgkHVCardCool2X;         // with
445   static const Double_t fgkHVCardCool2Y;         // cooling U tube
446   static const Double_t fgkHVCardCool2Z;         // ===
447   static const Double_t fgkHVCardCool3X;         // ===
448   static const Double_t fgkHVCardCool3Y;         // ===
449   static const Double_t fgkHVCardCool3Z;         // ===
450   static const Double_t fgkHVCardCoolDY;         // ===
451
452   static const Double_t fgkCarlosSuppX1;         // piece on which
453   static const Double_t fgkCarlosSuppY1;         // the carlos card
454   static const Double_t fgkCarlosSuppX2;         // is fixed
455   static const Double_t fgkCarlosSuppY2;         // ===
456   static const Double_t fgkCarlosSuppZ;          // ===
457   static const Double_t fgkCarlosSuppAngle;      //  ===
458   static const Double_t fgkCarlosSuppX3;         // ===
459   static const Double_t fgkCarlosSuppY3;         // ===
460   static const Double_t fgkCarlosSuppZ3;         // ===
461   static const Double_t fgkCarlosSuppTopLen;     // ===
462
463   static const Double_t fgkmu;  // 1 micron, or more for debugging
464
465   // calculated parameters
466   Double_t fLay3LadderUnderSegDH;  // To include HVcables in box
467   Double_t fLay4LadderUnderSegDH;  // To include HVcables in box
468   Double_t fLay3LaddShortRadius;   // ladder 3 to beam axis radius
469   Double_t fLay3LaddLongRadius;    // ladder 3 to beam axis radius
470   Double_t fLay4LaddShortRadius;   // ladder 4 to beam axis radius
471   Double_t fLay4LaddLongRadius;    // ladder 4 to beam axis radius
472
473   // parameters that be modified
474   Double_t fLay3sensorZPos[6];     // Z pos of sensors in layer 3
475   Double_t fLay4sensorZPos[8];     // Z pos of sensors in layer 4
476
477   ClassDef(AliITSv11GeometrySDD,2) // ITS v11 SDD geometry
478 };
479
480
481 #endif