]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSvPPRasymm.cxx
Set Reading of AliITSgeom data from Geant3 common blocks as the default and
[u/mrichter/AliRoot.git] / ITS / AliITSvPPRasymm.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 /*
17 $Log$
18 Revision 1.25  2001/03/20 19:22:51  barbera
19 Flags for the rails and the cooling fluid added. Some changes in the volumes of the SSD cones after the meeting with the engineers in Torino.
20
21 Revision 1.23  2001/03/13 21:18:44  barbera
22 Some misleading comments removed
23
24 Revision 1.22  2001/03/13 18:13:30  barbera
25 Some mother volumes sligthly modified to eliminate an overlap with the absorber
26
27 Revision 1.21  2001/03/13 08:36:23  hristov
28 fabsf replaced by TMath::Abs
29
30 Revision 1.20  2001/03/13 00:17:41  barbera
31 New SDD geometry got grom F. Tosello and checked by the SDD engineers
32
33 Revision 1.19  2001/02/28 18:23:13  barbera
34 Setters and getters to set/get the detector and chip thickness on SPD layers added
35
36 Revision 1.18  2001/02/27 23:18:24  barbera
37 Full parameterization of detector and chip thicknesses for layer 1 and layer 2 of SPD as requested by the project leader
38
39 Revision 1.17  2001/02/19 22:14:55  nilsen
40 Fix for all 4 versions 11, 12, 21, and 22.
41
42 Revision 1.16  2001/02/19 20:10:34  barbera
43 Set option=2 and thickness=2 as default values --> SetMinorVersion=22
44
45 Revision 1.15  2001/02/19 19:44:00  barbera
46 Air density parameter corrected
47
48 Revision 1.14  2001/02/13 16:53:35  nilsen
49 Fixed a but when trying to use GEANT4. Needed to replace
50 if(!((TGeant3*)gMC)) with if(!(dynamic_casst<TGeant3*>(gMC)))
51 because just casting gMC to be TGeant3* even when it realy is a TGeant3 pointer
52 did not result in a zero value. For AliITSv5asymm and AliITSv5symm, needed
53 to fix a bug in the initilizers and a bug in BuildGeometry. This is now done
54 in the same way as in AliITSv5.cxx.
55
56 Revision 1.13  2001/02/09 20:06:26  nilsen
57 Fixed bug in distructor. Can't distroy fixxed length arrays. Thanks Peter.
58
59 Revision 1.12  2001/02/09 13:53:38  barbera
60 Int_t redefinition avoided
61
62 Revision 1.11  2001/02/09 06:55:38  barbera
63 SPD option re-set to B. It was A by mistake
64
65 Revision 1.10  2001/02/09 00:05:31  nilsen
66 Added fMajor/MinorVersion variables and made other changes to better make
67 use of the new code changes in AliITSgeom related classes.
68
69
70 Revision 1.9  2001/02/08 16:00:37  barbera
71 New thicknesses (300+300 um) added for SPD chips and detectors and set as default. Many other refinements.
72
73 Revision 1.8  2001/02/06 08:03:44  barbera
74 Material redefinition in SDD
75
76 Revision 1.7  2001/02/05 13:34:57  barbera
77 Updated version of the ITS detailed geometry
78
79 Revision 1.5  2001/01/30 09:23:13  hristov
80 Streamers removed (R.Brun)
81
82 Revision 1.4  2001/01/23 20:08:03  barbera
83 Option B for pixels implemented and set as default
84
85 Revision 1.3  2001/01/17 08:08:20  barbera
86 Some media parameters modified
87
88 Revision 1.1.2.1  2001/01/15 13:38:08  barbera
89 New ITS detailed geometry to be used for the PPR
90
91 */
92
93 ///////////////////////////////////////////////////////////////////////////////
94 //                                                                           //
95 //  Inner Traking System version PPR  asymmetric                             //
96 //  This class contains the base procedures for the Inner Tracking System    //
97 //                                                                           //
98 // Authors: R. Barbera                                                       //
99 // version 8.                                                                //
100 // Created  January 15 2001.                                                 //
101 //                                                                           //
102 //  NOTE: THIS IS THE  ASYMMETRIC PPR geometry of the ITS.                   //
103 //                                                                           //
104 ///////////////////////////////////////////////////////////////////////////////
105
106 // See AliITSvPPRasymm::StepManager().
107 #include <iostream.h>
108 #include <iomanip.h>
109 #include <stdio.h>
110 #include <stdlib.h>
111 #include <TMath.h>
112 #include <TGeometry.h>
113 #include <TNode.h>
114 #include <TTUBE.h>
115 #include <TFile.h>    // only required for Tracking function?
116 #include <TCanvas.h>
117 #include <TObjArray.h>
118 #include <TLorentzVector.h>
119 #include <TObjString.h>
120 #include <TClonesArray.h>
121 #include <TBRIK.h>
122 #include <TSystem.h>
123
124 #include "AliMC.h"
125 #include "AliRun.h"
126 #include "AliMagF.h"
127 #include "AliConst.h"
128 #include "../TGeant3/TGeant3.h"
129 #include "AliITSGeant3Geometry.h"
130 #include "AliITShit.h"
131 #include "AliITS.h"
132 #include "AliITSvPPRasymm.h"
133 #include "AliITSgeom.h"
134 #include "AliITSgeomSPD.h"
135 #include "AliITSgeomSDD.h"
136 #include "AliITSgeomSSD.h"
137
138
139 ClassImp(AliITSvPPRasymm)
140  
141 //_____________________________________________________________________________
142 AliITSvPPRasymm::AliITSvPPRasymm() {
143 ////////////////////////////////////////////////////////////////////////
144 //    Standard default constructor for the ITS version 8.
145 ////////////////////////////////////////////////////////////////////////
146     Int_t i;
147
148     fIdN          = 0;
149     fIdName       = 0;
150     fIdSens       = 0;
151     fEuclidOut    = kFALSE; // Don't write Euclide file
152     fGeomDetOut   = kFALSE; // Don't write .det file
153     fGeomDetIn    = kFALSE; // Don't Read .det file
154     fMajorVersion = IsVersion();
155     fMinorVersion = -1;
156     for(i=0;i<60;i++) fRead[i] = '\0';
157     for(i=0;i<60;i++) fWrite[i] = '\0';
158     for(i=0;i<60;i++) fEuclidGeomDet[i] = '\0';
159 }
160 //_____________________________________________________________________________
161 AliITSvPPRasymm::AliITSvPPRasymm(const char *name, const char *title) : AliITS(name, title){
162 ////////////////////////////////////////////////////////////////////////
163 //    Standard constructor for the ITS version 8.
164 ////////////////////////////////////////////////////////////////////////
165     Int_t i;
166
167     fIdN = 6;
168     fIdName = new TString[fIdN];
169     fIdName[0] = "ITS1";
170     fIdName[1] = "ITS2";
171     fIdName[2] = "ITS3";
172     fIdName[3] = "ITS4";
173     fIdName[4] = "ITS5";
174     fIdName[5] = "ITS6";
175     fIdSens    = new Int_t[fIdN];
176     for(i=0;i<fIdN;i++) fIdSens[i] = 0;
177     fMajorVersion = IsVersion();
178     fMinorVersion = 2;
179     fEuclidOut    = kFALSE; // Don't write Euclide file
180     fGeomDetOut   = kFALSE; // Don't write .det file
181     fGeomDetIn    = kFALSE; // Don't Read .det file
182     SetThicknessDet1();
183     SetThicknessDet2();
184     SetThicknessChip1();
185     SetThicknessChip2();                         
186
187     fEuclidGeometry="$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.euc";
188     strncpy(fEuclidGeomDet,"$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.det",60);
189     strncpy(fRead,fEuclidGeomDet,60);
190     strncpy(fWrite,fEuclidGeomDet,60);
191 }
192 //____________________________________________________________________________
193 AliITSvPPRasymm::AliITSvPPRasymm(const AliITSvPPRasymm &source){
194 ////////////////////////////////////////////////////////////////////////
195 //     Copy Constructor for ITS version 8.
196 ////////////////////////////////////////////////////////////////////////
197     if(&source == this) return;
198     Warning("Copy Constructor","Not allowed to copy AliITSvPPRasymm");
199     return;
200 }
201 //_____________________________________________________________________________
202 AliITSvPPRasymm& AliITSvPPRasymm::operator=(const AliITSvPPRasymm &source){
203 ////////////////////////////////////////////////////////////////////////
204 //    Assignment operator for the ITS version 8.
205 ////////////////////////////////////////////////////////////////////////
206     if(&source == this) return *this;
207     Warning("= operator","Not allowed to copy AliITSvPPRasymm");
208     return *this;
209 }
210 //_____________________________________________________________________________
211 AliITSvPPRasymm::~AliITSvPPRasymm() {
212 ////////////////////////////////////////////////////////////////////////
213 //    Standard destructor for the ITS version 8.
214 ////////////////////////////////////////////////////////////////////////
215 }
216 //__________________________________________________________________________
217 void AliITSvPPRasymm::BuildGeometry(){
218 ////////////////////////////////////////////////////////////////////////
219 //    Geometry builder for the ITS version 8.
220 ////////////////////////////////////////////////////////////////////////
221     TNode *node, *top;
222     const int kColorITS=kYellow;
223     //
224     top = gAlice->GetGeometry()->GetNode("alice");
225
226     new TTUBE("S_layer1","Layer1 of ITS","void",3.95,3.95+0.05475,12.25);
227     top->cd();
228     node = new TNode("Layer1","Layer1","S_layer1",0,0,0,"");
229     node->SetLineColor(kColorITS);
230     fNodes->Add(node);
231
232     new TTUBE("S_layer2","Layer2 of ITS","void",7.,7.+0.05475,16.3);
233     top->cd();
234     node = new TNode("Layer2","Layer2","S_layer2",0,0,0,"");
235     node->SetLineColor(kColorITS);
236     fNodes->Add(node);
237
238     new TTUBE("S_layer3","Layer3 of ITS","void",15.,15.+0.05288,21.1);
239     top->cd();
240     node = new TNode("Layer3","Layer3","S_layer3",0,0,0,"");
241     node->SetLineColor(kColorITS);
242     fNodes->Add(node);
243
244     new TTUBE("S_layer4","Layer4 of ITS","void",24,24+0.05288,29.6);
245     top->cd();
246     node = new TNode("Layer4","Layer4","S_layer4",0,0,0,"");
247     node->SetLineColor(kColorITS);
248     fNodes->Add(node);
249
250     new TTUBE("S_layer5","Layer5 of ITS","void",40,40+0.05382,45.1);
251     top->cd();
252     node = new TNode("Layer5","Layer5","S_layer5",0,0,0,"");
253     node->SetLineColor(kColorITS);
254     fNodes->Add(node);
255
256     new TTUBE("S_layer6","Layer6 of ITS","void",45,45+0.05382,50.4);
257     top->cd();
258     node = new TNode("Layer6","Layer6","S_layer6",0,0,0,"");
259     node->SetLineColor(kColorITS);
260     fNodes->Add(node);
261 }
262 //_____________________________________________________________________________
263 void AliITSvPPRasymm::CreateGeometry(){
264 ////////////////////////////////////////////////////////////////////////
265 //    This routine defines and Creates the geometry for version 6 of the ITS.
266 ////////////////////////////////////////////////////////////////////////
267   
268   //INNER RADII OF THE SILICON LAYERS 
269   // Float_t rl[6]    = { 3.8095,7.,15.,24.,38.1,43.5765 };   
270   //THICKNESSES OF LAYERS (in % radiation length)
271   Float_t drl[6]   = { 1.03,1.03,0.94,0.95,0.91,0.87 };   
272   //HALF LENGTHS OF LAYERS  
273   // Float_t dzl[6]   = { 14.35,14.35,25.1,32.1,49.405,55.27 };
274   //LENGTHS OF END-LADDER BOXES (ALL INCLUDED)
275   // Float_t dzb[6]   = { 12.4,12.4,13.5,15.,7.5,7.5 };   
276   //THICKNESSES OF END-LADDER BOXES (ALL INCLUDED)
277   // Float_t drb[6]   = { rl[1]-rl[0],0.2,5.,5.,4.,4. };        
278
279  
280   Float_t dits[100], rlim, zmax;
281   // Float_t zpos;
282   // Float_t pcits[50]
283   Float_t ztpc;
284   Int_t idrotm[1999], i;
285   Float_t dgh[100];
286
287
288   // Define some variables for SPD
289
290   Float_t dits1[3], di101[3], di107[3], di10b[3], di106[3];  // for layer 1 
291   Float_t di103[3], di10a[3], di102[3];                      // for layer 1
292   Float_t dits2[3], di1d1[3], di1d7[3], di20b[3], di1d6[3];  // for layer 2
293   Float_t di1d3[3], di20a[3], di1d2[3];                      // for layer 2  
294   Float_t di108[3], di104[3];                                // for both layers  
295
296   Float_t ddet1=300.;     // total detector thickness on layer 1 (micron)
297   Float_t dchip1=300.;    // total chip thickness on layer 1 (micron)
298   
299   Float_t ddet2=300.;     // total detector thickness on layer 2 (micron)                         
300   Float_t dchip2=300.;    // total chip thickness on layer 2 (micron)
301   
302   Float_t dbus=200.;      // total bus thickness on both layers (micron)
303
304   ddet1 = GetThicknessDet1();
305   ddet2 = GetThicknessDet2();
306   dchip1 = GetThicknessChip1();
307   dchip2 = GetThicknessChip2();    
308
309   if(ddet1 < 100. || ddet1 > 300.) {
310      cout << "WARNING: the detector thickness for layer 1 is outside the range of [100,300] microns."
311           " The default value of 300 microns will be used." << endl;
312           ddet1=300.;
313   }
314   
315   if(ddet2 < 100. || ddet2 > 300.) {
316      cout << "WARNING: the detector thickness for layer 2 is outside the range of [100,300] microns."
317           " The default value of 300 microns will be used." << endl;
318           ddet2=300.;
319   }
320   
321   if(dchip1 < 150. || dchip1 > 300.) {
322      cout << "WARNING: the chip thickness for layer 1 is outside the range of [150,300] microns."
323           " The default value of 300 microns will be used." << endl;
324           dchip1=300.;
325   }
326   
327   if(dchip2 < 150. || dchip2 > 300.) {
328      cout << "WARNING: the chip thickness for layer 2 is outside the range of [150,300] microns."
329           " The default value of 300 microns will be used." << endl;
330           dchip2=300.;
331   }      
332
333   Int_t rails = 1;       // flag for rails (1 --> rails in; 0 --> rails out)
334   
335   Int_t fluid = 1;       // flag for the cooling fluid (1 --> water; 0 --> freon)
336
337   rails = GetRails();
338
339   fluid = GetCoolingFluid();
340
341   if(rails != 0 && rails != 1) {
342      cout << "WARNING: the switch for rails is not set neither to 0 (rails out) nor to 1 (rails in)." 
343      " The default value of 1 (rails in) will be used." << endl;
344         
345   }  
346   
347   if(fluid != 0 && fluid != 1) {
348      cout << "WARNING: the switch for cooling fluid is not set neither to 0 (freon) nor to 1 (water)." 
349      " The default value of 1 (water) will be used." << endl;  
350   }       
351    
352   cout << "Detector thickness on layer 1 is set to " << ddet1 << " microns." << endl;
353   cout << "Chip thickness on layer 1 is set to " << dchip1 << " microns." << endl;
354   cout << "Detector thickness on layer 2 is set to " << ddet2 << " microns." << endl;
355   cout << "Chip thickness on layer 2 is set to " << dchip2 << " microns." << endl;
356   if(rails == 0 ) {
357      cout << "Rails are out." << endl; 
358   } else {
359      cout << "Rails are in." << endl;
360   }   
361   if(fluid == 0 ) {
362      cout << "The cooling fluid is freon." << endl; 
363   } else {
364      cout << "The cooling fluid is water." << endl;
365   }   
366
367   ddet1  = ddet1*0.0001/2.; // conversion from tot length in um to half in cm
368   ddet2  = ddet2*0.0001/2.; // conversion from tot length in um to half in cm   
369   dchip1 = dchip1*0.0001/2.;// conversion from tot length in um to half in cm   
370   dchip2 = dchip2*0.0001/2.;// conversion from tot length in um to half in cm   
371   dbus   = dbus*0.0001/2.;  // conversion from tot length in um to half in cm       
372                 
373   Float_t deltax, deltay; 
374
375   Int_t thickness = fMinorVersion/10;
376   Int_t option    = fMinorVersion - 10*thickness;
377
378
379   // Define some variables for SDD
380
381
382   Float_t sin30, cos30;
383
384   // SDD electronics+services main volumes
385   Float_t I018dits[3], I024dits[3], I047dits[3], I048dits[3];
386
387   // SDD detector ladder
388
389   Float_t I302dits[3], I402dits[3], I004dits[3], I005dits[3];
390   Float_t Y_SDD_sep = 0.20;
391   Float_t ySDD;
392   Int_t   iSDD;
393   Float_t Z_SDD_lay3[6] = {18.55, 10.95, 3.70, -3.70, -11.20, -18.35};
394   Float_t Z_SDD_lay4[8] = {25.75, 18.60, 11.00, 3.70, -3.70, -11.20, -18.45, -26.05};
395
396   // ladder foot and end-ladder (frame and cooling)
397   Float_t I028dits[3], I420dits[3], I421dits[3], I422dits[6], I423dits[3];
398   Float_t I424dits[3], xI424, yI424;
399   Float_t I425dits[3];
400   Int_t    indI425;
401   Float_t I029dits[4], I030dits[4], I031dits[3], I032dits[3];
402
403   // SDD ladder frame and cooling
404   Float_t SDD_CoolPipe[3] = {1.7000, -0.5500, 0.0000};
405   Float_t I035dits[3], I037dits[3], I038dits[3];
406   Float_t I039dits[3], xI039, yI039;
407   Float_t I041dits[5];
408
409   // SDD hybrid, chips and capacitors
410   Float_t I050dits[3], xI050, yI050;
411   Float_t I052dits[3], xI052, yI052;
412   Float_t I042dits[3], xI042, yI042;
413   Float_t xI042space = 0.17;
414   Float_t I043dits[3], xI043, yI043;
415   Float_t xI043space = 0.17;
416   Float_t zchip, zChipSpace;
417   Float_t I051dits[3], xI051, yI051, zI051, yI051space, xcap;
418   Int_t     ichip, icap;
419
420   // SDD microcables
421   Float_t I044dits[4], xI044, yI044, volI044;
422   Float_t xHV, yHV, zHV, xLV, yLV, zLV;
423   Char_t   HVname[5], LVname[5];
424
425
426   // Define media off-set
427   
428   Int_t *idtmed = fIdtmed->GetArray()-199;
429
430   
431   // Rotation matrices
432   
433   // SPD - option 'a' (this is NOT the default so leave commented)
434   
435   
436   if (option == 1) {
437   
438      AliMatrix(idrotm[201],90.0,90.0,90.0,180.0,0.0,0.0);
439      AliMatrix(idrotm[202],90.0,90.0,90.0,0.0,0.0,0.0);
440      AliMatrix(idrotm[203],90.0,350.0,90.0,260.0,0.0,0.0);
441      AliMatrix(idrotm[204],90.0,170.0,90.0,80.0,0.0,0.0);
442      AliMatrix(idrotm[205],90.0,10.0,90.0,100.0,0.0,0.0);
443      AliMatrix(idrotm[206],90.0,190.0,90.0,280.0,0.0,0.0);
444      AliMatrix(idrotm[207],90.0,342.0,90.0,72.0,0.0,0.0);
445      AliMatrix(idrotm[208],90.0,156.999893,90.0,246.999893,0.0,0.0);
446      AliMatrix(idrotm[209],90.0,147.999802,90.0,237.999893,0.0,0.0);
447      AliMatrix(idrotm[210],90.0,138.999802,90.0,228.999802,0.0,0.0);
448      AliMatrix(idrotm[211],90.0,129.999802,90.0,219.999802,0.0,0.0);
449      AliMatrix(idrotm[212],90.0,36.7896,90.0,126.789597,0.0,0.0);
450      AliMatrix(idrotm[213],90.0,343.579712,90.0,73.579697,0.0,0.0);
451      AliMatrix(idrotm[214],90.0,95.413696,90.0,185.413696,0.0,0.0);
452      AliMatrix(idrotm[215],90.0,5.4141,90.0,95.414101,0.0,0.0);
453      AliMatrix(idrotm[216],90.0,318.296906,90.0,48.296902,0.0,0.0);
454      AliMatrix(idrotm[217],90.0,67.000099,90.0,157.000107,0.0,0.0);
455      AliMatrix(idrotm[218],90.0,337.003998,90.0,67.003998,0.0,0.0);
456      AliMatrix(idrotm[219],90.0,247.000305,90.0,337.000305,0.0,0.0);
457      AliMatrix(idrotm[220],90.0,305.633514,90.0,35.633499,0.0,0.0);
458      AliMatrix(idrotm[221],90.0,58.000198,90.0,148.000198,0.0,0.0);
459      AliMatrix(idrotm[222],90.0,327.997101,90.0,57.997101,0.0,0.0 );
460      AliMatrix(idrotm[223],90.0,237.994202,90.0,327.994202,0.0,0.0);
461      AliMatrix(idrotm[224],90.0,296.627502,90.0,26.627399,0.0,0.0);
462      AliMatrix(idrotm[225],90.0,48.994099,90.0,138.994095,0.0,0.0);
463      AliMatrix(idrotm[226],90.0,318.990997,90.0,48.991001,0.0,0.0);
464      AliMatrix(idrotm[227],90.0,228.988205,90.0,318.98819,0.0,0.0);
465      AliMatrix(idrotm[228],90.0,287.621399,90.0,17.621401,0.0,0.0);
466      AliMatrix(idrotm[229],90.0,39.988098,90.0,129.988098,0.0,0.0);
467      AliMatrix(idrotm[230],90.0,309.984985,90.0,39.985001,0.0,0.0);
468      AliMatrix(idrotm[231],90.0,327.2612,90.0,57.2612,0.0,0.0);
469      AliMatrix(idrotm[232],90.0,237.261398,90.0,327.261414,0.0,0.0);
470      AliMatrix(idrotm[233],90.0,252.000504,90.0,342.000488,0.0,0.0 );
471      AliMatrix(idrotm[234],90.0,71.9991,90.0,161.9991,0.0,0.0);
472      AliMatrix(idrotm[235],90.0,270.0,90.0,0.0,0.0,0.0);
473      AliMatrix(idrotm[236],90.0,180.013702,90.0,270.013702,0.0,0.0);
474      AliMatrix(idrotm[237],90.0,0.0,90.0,90.0,180.0,0.0);
475      AliMatrix(idrotm[238],90.0,144.0,90.0,234.0,0.0,0.0);
476      AliMatrix(idrotm[239],90.0,216.0,90.0,306.0,0.0,0.0);
477      AliMatrix(idrotm[240],90.0,288.0,90.0,18.0,0.0,0.0);
478      AliMatrix(idrotm[241],90.0,324.0,90.0,54.0,0.0,0.0);
479      AliMatrix(idrotm[242],90.0,36.0,90.0,126.0,0.0,0.0);
480      AliMatrix(idrotm[243],90.0,108.0,90.0,198.0,0.0,0.0);
481      AliMatrix(idrotm[244],90.0,0.0,90.0,270.0,180.0,0.0);
482      AliMatrix(idrotm[245],90.0,342.0,90.0,252.0,180.0,0.0);
483      AliMatrix(idrotm[246],90.0,130.0,90.0,40.0,180.0,0.0);
484      AliMatrix(idrotm[247],90.0,139.0,90.0,49.0,180.0,0.0);
485      AliMatrix(idrotm[248],90.0,148.0,90.0,58.0,180.0,0.0);
486      AliMatrix(idrotm[249],90.0,157.0,90.0,67.0,180.0,0.0);
487      AliMatrix(idrotm[1003],90.0,73.5,90.0,163.5,0.0,0.0);
488      AliMatrix(idrotm[1011],90.0,342.0,90.0,72.0,0.0,0.0);
489      AliMatrix(idrotm[1039],90.0,72.0,90.0,162.0,0.0,0.0);
490      AliMatrix(idrotm[1043],90.0,66.91,90.0,156.91,0.0,0.0);
491      AliMatrix(idrotm[1065],90.0,144.0,90.0,234.0,0.0,0.0);
492      AliMatrix(idrotm[1078],90.0,180.0,90.0,270.0,0.0,0.0);
493      AliMatrix(idrotm[1088],90.0,57.41,90.0,147.41,0.0,0.0);
494      AliMatrix(idrotm[1089],90.0,333.0,90.0,63.0,0.0,0.0);
495      AliMatrix(idrotm[1090],90.0,351.0,90.0,81.0,0.0,0.0);
496      AliMatrix(idrotm[1091],90.0,216.0,90.0,306.0,0.0,0.0);
497      AliMatrix(idrotm[1092],90.0,27.0,90.0,117.0,0.0,0.0);
498      AliMatrix(idrotm[1093],90.0,18.0,90.0,108.0,0.0,0.0);
499      AliMatrix(idrotm[1094],90.0,9.0,90.0,99.0,0.0,0.0);
500      AliMatrix(idrotm[1104],90.0,252.0,90.0,342.0,0.0,0.0);
501      AliMatrix(idrotm[1106],90.0,36.0,90.0,126.0,0.0,0.0);
502      AliMatrix(idrotm[1107],90.0,108.0,90.0,198.0,0.0,0.0);
503      AliMatrix(idrotm[1108],90.0,324.0,90.0,54.0,180.0,0.0);
504      AliMatrix(idrotm[1109],90.0,0.0,90.0,90.0,180.0,0.0);
505      AliMatrix(idrotm[1110],90.0,36.0,90.0,126.0,180.0,0.0);
506      AliMatrix(idrotm[1111],90.0,72.0,90.0,162.0,180.0,0.0);
507      AliMatrix(idrotm[1112],90.0,108.0,90.0,198.0,180.0,0.0);
508      AliMatrix(idrotm[1113],90.0,144.0,90.0,234.0,180.0,0.0);
509      AliMatrix(idrotm[1114],90.0,180.0,90.0,270.0,180.0,0.0);
510      AliMatrix(idrotm[1115],90.0,216.0,90.0,306.0,180.0,0.0);
511      AliMatrix(idrotm[1116],90.0,252.0,90.0,342.0,180.0,0.0);
512      AliMatrix(idrotm[1117],90.0,288.0,90.0,18.0,0.0,0.0);
513      AliMatrix(idrotm[1118],90.0,288.0,90.0,18.0,180.0,0.0);
514      AliMatrix(idrotm[1130],90.0,324.0,90.0,54.0,0.0,0.0);  
515
516   }
517   
518   // SPD - option 'b' (this is the default)  
519     
520   if (option == 2) {
521
522      AliMatrix(idrotm[201],90.0,0.0,90.0,90.0,180.0,0.0);
523      AliMatrix(idrotm[202],90.0,90.0,90.0,0.0,0.0,0.0);
524      AliMatrix(idrotm[203],90.0,350.0,90.0,260.0,0.0,0.0);
525      AliMatrix(idrotm[204],90.0,170.0,90.0,80.0,0.0,0.0);
526      AliMatrix(idrotm[205],90.0,10.0,90.0,100.0,0.0,0.0);
527      AliMatrix(idrotm[206],90.0,190.0,90.0,280.0,0.0,0.0);
528      AliMatrix(idrotm[207],90.0,342.0,90.0,72.0,0.0,0.0);
529      AliMatrix(idrotm[208],90.0,156.999893,90.0,246.999893,0.0,0.0);
530      AliMatrix(idrotm[209],90.0,147.999802,90.0,237.999893,0.0,0.0);
531      AliMatrix(idrotm[210],90.0,138.999802,90.0,228.999802,0.0,0.0);
532      AliMatrix(idrotm[211],90.0,129.999802,90.0,219.999802,0.0,0.0);
533      AliMatrix(idrotm[212],90.0,36.7896,90.0,126.789597,0.0,0.0);
534      AliMatrix(idrotm[213],90.0,343.579712,90.0,73.579697,0.0,0.0);
535      AliMatrix(idrotm[214],90.0,95.413696,90.0,185.413696,0.0,0.0);
536      AliMatrix(idrotm[215],90.0,5.4141,90.0,95.414101,0.0,0.0);
537      AliMatrix(idrotm[216],90.0,318.296906,90.0,48.296902,0.0,0.0);
538      AliMatrix(idrotm[217],90.0,67.000099,90.0,157.000107,0.0,0.0);
539      AliMatrix(idrotm[218],90.0,337.003998,90.0,67.003998,0.0,0.0);
540      AliMatrix(idrotm[219],90.0,247.000305,90.0,337.000305,0.0,0.0);
541      AliMatrix(idrotm[220],90.0,305.633514,90.0,35.633499,0.0,0.0);
542      AliMatrix(idrotm[221],90.0,58.000198,90.0,148.000198,0.0,0.0);
543      AliMatrix(idrotm[222],90.0,327.997101,90.0,57.997101,0.0,0.0);
544      AliMatrix(idrotm[223],90.0,237.994202,90.0,327.994202,0.0,0.0);
545      AliMatrix(idrotm[224],90.0,296.627502,90.0,26.627399,0.0,0.0);
546      AliMatrix(idrotm[225],90.0,48.994099,90.0,138.994095,0.0,0.0);
547      AliMatrix(idrotm[226],90.0,318.990997,90.0,48.991001,0.0,0.0);
548      AliMatrix(idrotm[227],90.0,228.988205,90.0,318.98819,0.0,0.0);
549      AliMatrix(idrotm[228],90.0,287.621399,90.0,17.621401,0.0,0.0);
550      AliMatrix(idrotm[229],90.0,39.988098,90.0,129.988098,0.0,0.0);
551      AliMatrix(idrotm[230],90.0,309.984985,90.0,39.985001,0.0,0.0);
552      AliMatrix(idrotm[231],90.0,327.2612,90.0,57.2612,0.0,0.0);
553      AliMatrix(idrotm[232],90.0,237.261398,90.0,327.261414,0.0,0.0);
554      AliMatrix(idrotm[233],90.0,252.000504,90.0,342.000488,0.0,0.0);
555      AliMatrix(idrotm[234],90.0,71.9991,90.0,161.9991,0.0,0.0);
556      AliMatrix(idrotm[235],90.0,270.0,90.0,0.0,0.0,0.0);
557      AliMatrix(idrotm[236],90.0,180.013702,90.0,270.013702,0.0,0.0);
558      AliMatrix(idrotm[237],90.0,90.0,90.0,180.0,0.0,0.0);
559      AliMatrix(idrotm[238],90.0,0.0,90.0,270.0,180.0,0.0);
560      AliMatrix(idrotm[239],90.0,342.0,90.0,252.0,180.0,0.0);
561      AliMatrix(idrotm[240],90.0,130.0,90.0,40.0,180.0,0.0);
562      AliMatrix(idrotm[241],90.0,139.0,90.0,49.0,180.0,0.0);
563      AliMatrix(idrotm[242],90.0,148.0,90.0,58.0,180.0,0.0);
564      AliMatrix(idrotm[243],90.0,157.0,90.0,67.0,180.0,0.0);
565      AliMatrix(idrotm[244],90.0,216.0,90.0,306.0,0.0,0.0);
566      AliMatrix(idrotm[245],90.0,36.0,90.0,126.0,0.0,0.0);
567      AliMatrix(idrotm[246],90.0,108.0,90.0,198.0,0.0,0.0);
568      AliMatrix(idrotm[247],90.0,144.0,90.0,234.0,0.0,0.0);
569      AliMatrix(idrotm[248],90.0,288.0,90.0,18.0,0.0,0.0);
570      AliMatrix(idrotm[249],90.0,324.0,90.0,54.0,0.0,0.0);  
571      AliMatrix(idrotm[1003],90.0,73.5,90.0,163.5,0.0,0.0);
572      AliMatrix(idrotm[1011],90.0,342.0,90.0,72.0,0.0,0.0);
573      AliMatrix(idrotm[1039],90.0,72.0,90.0,162.0,0.0,0.0);
574      AliMatrix(idrotm[1043],90.0,66.91,90.0,156.91,0.0,0.0);
575      AliMatrix(idrotm[1065],90.0,144.0,90.0,234.0,0.0,0.0);
576      AliMatrix(idrotm[1078],90.0,180.0,90.0,270.0,0.0,0.0);
577      AliMatrix(idrotm[1088],90.0,57.41,90.0,147.41,0.0,0.0);
578      AliMatrix(idrotm[1089],90.0,333.0,90.0,63.0,0.0,0.0);
579      AliMatrix(idrotm[1090],90.0,351.0,90.0,81.0,0.0,0.0);
580      AliMatrix(idrotm[1091],90.0,216.0,90.0,306.0,0.0,0.0);
581      AliMatrix(idrotm[1092],90.0,27.0,90.0,117.0,0.0,0.0);
582      AliMatrix(idrotm[1093],90.0,18.0,90.0,108.0,0.0,0.0);
583      AliMatrix(idrotm[1094],90.0,9.0,90.0,99.0,0.0,0.0);
584      AliMatrix(idrotm[1104],90.0,252.0,90.0,342.0,0.0,0.0);
585      AliMatrix(idrotm[1106],90.0,36.0,90.0,126.0,0.0,0.0);
586      AliMatrix(idrotm[1107],90.0,108.0,90.0,198.0,0.0,0.0);
587      AliMatrix(idrotm[1108],90.0,324.0,90.0,54.0,180.0,0.0);
588      AliMatrix(idrotm[1109],90.0,0.0,90.0,90.0,180.0,0.0);
589      AliMatrix(idrotm[1110],90.0,36.0,90.0,126.0,180.0,0.0);
590      AliMatrix(idrotm[1111],90.0,72.0,90.0,162.0,180.0,0.0);
591      AliMatrix(idrotm[1112],90.0,108.0,90.0,198.0,180.0,0.0);
592      AliMatrix(idrotm[1113],90.0,144.0,90.0,234.0,180.0,0.0);
593      AliMatrix(idrotm[1114],90.0,180.0,90.0,270.0,180.0,0.0);
594      AliMatrix(idrotm[1115],90.0,216.0,90.0,306.0,180.0,0.0);
595      AliMatrix(idrotm[1116],90.0,252.0,90.0,342.0,180.0,0.0);
596      AliMatrix(idrotm[1117],90.0,288.0,90.0,18.0,0.0,0.0);
597      AliMatrix(idrotm[1118],90.0,288.0,90.0,18.0,180.0,0.0);
598      AliMatrix(idrotm[1130],90.0,324.0,90.0,54.0,0.0,0.0);  
599
600   }
601     
602   // SDD
603   
604   AliMatrix(idrotm[301],0.0,0.0,90.0,90.0,90.0,180.0);  
605   AliMatrix(idrotm[302],0.0,0.0,90.0,90.0,90.0,0.0);
606   AliMatrix(idrotm[303],180.0,0.0,90.0,90.0,90.0,0.0); 
607   AliMatrix(idrotm[304],180.0,0.0,90.0,90.0,90.0,180.0); 
608   AliMatrix(idrotm[305],90.0,347.14,90.0,77.14,0.0,0.0); 
609   AliMatrix(idrotm[306],90.0,321.43,90.0,51.43,0.0,0.0); 
610   AliMatrix(idrotm[307],90.0,295.71,90.0,25.71,0.0,0.0);
611   AliMatrix(idrotm[308],90.0,244.29,90.0,334.29,0.0,0.0);
612   AliMatrix(idrotm[309],90.0,218.57,90.0,308.57,0.0,0.0);
613   AliMatrix(idrotm[310],90.0,167.14,90.0,257.14,0.0,0.0);
614   AliMatrix(idrotm[311],90.0,141.43,90.0,231.43,0.0,0.0);  
615   AliMatrix(idrotm[312],90.0,0.0,0.0,0.0,90.0,270.0);
616   AliMatrix(idrotm[313],90.0,115.71,90.0,205.71,0.0,0.0); 
617   AliMatrix(idrotm[314],90.0,335.45,90.0,65.45,0.0,0.0); 
618   AliMatrix(idrotm[315],90.0,319.09,90.0,49.09,0.0,0.0); 
619   AliMatrix(idrotm[316],90.0,302.73,90.0,32.73,0.0,0.0); 
620   AliMatrix(idrotm[317],90.0,286.36,90.0,16.36,0.0,0.0);
621   AliMatrix(idrotm[318],90.0,270.0,90.0,360.0,0.0,0.0);
622   AliMatrix(idrotm[319],90.0,253.64,90.0,343.64,0.0,0.0);
623   AliMatrix(idrotm[320],90.0,237.27,90.0,327.27,0.0,0.0);
624   AliMatrix(idrotm[321],90.0,12.86,90.0,102.86,0.0,0.0);  
625   AliMatrix(idrotm[322],90.0,220.91,90.0,310.91,0.0,0.0);
626   AliMatrix(idrotm[323],90.0,204.55,90.0,294.55,0.0,0.0); 
627   AliMatrix(idrotm[324],90.0,188.18,90.0,278.18,0.0,0.0); 
628   AliMatrix(idrotm[325],90.0,171.82,90.0,261.82,0.0,0.0); 
629   AliMatrix(idrotm[326],90.0,155.45,90.0,245.45,0.0,0.0); 
630   AliMatrix(idrotm[327],90.0,139.09,90.0,229.09,0.0,0.0);
631   AliMatrix(idrotm[328],90.0,122.73,90.0,212.73,0.0,0.0);
632   AliMatrix(idrotm[329],90.0,106.36,90.0,196.36,0.0,0.0);
633   AliMatrix(idrotm[330],90.0,73.64,90.0,163.64,0.0,0.0);    
634   AliMatrix(idrotm[331],90.0,40.91,90.0,130.91,0.0,0.0);  
635   AliMatrix(idrotm[332],90.0,24.55,90.0,114.55,0.0,0.0);
636   AliMatrix(idrotm[333],90.0,38.57,90.0,128.57,0.0,0.0); 
637   AliMatrix(idrotm[334],90.0,351.82,90.0,81.82,0.0,0.0); 
638   AliMatrix(idrotm[335],90.0,8.18,90.0,98.18,0.0,0.0); 
639   AliMatrix(idrotm[336],90.0,64.29,90.0,154.29,0.0,0.0); 
640   AliMatrix(idrotm[337],111.0,300.0,21.0,300.0,90.0,30.0);
641   AliMatrix(idrotm[338],69.0,240.0,159.0,240.0,90.0,150.0);
642   AliMatrix(idrotm[339],111.0,240.0,21.0,240.0,90.0,150.0);
643   AliMatrix(idrotm[340],69.0,300.0,159.0,300.0,90.0,30.0);  
644   AliMatrix(idrotm[341],128.0,0.0,38.0,0.0,90.0,270.0);  
645   AliMatrix(idrotm[342],90.0,240.0,180.0,0.0,90.0,330.);
646   AliMatrix(idrotm[343],90.0,120.0,180.0,0.0,90.0,210.0); 
647   AliMatrix(idrotm[344],90.0,0.0,180.0,0.0,90.0,90.0); 
648   AliMatrix(idrotm[345],90.0,180.0,90.0,90.0,0.0,0.0); 
649   AliMatrix(idrotm[346],90.0,300.0,90.0,30.0,0.0,0.0); 
650   AliMatrix(idrotm[347],90.0,240.0,90.0,150.0,0.0,0.0);
651   AliMatrix(idrotm[348],90.0,180.0,0.0,0.0,90.0,270.0);
652   AliMatrix(idrotm[349],90.0,235.0,90.0,145.0,0.0,0.0);
653   AliMatrix(idrotm[350],90.0,90.0,90.0,180.0,0.0,0.0);  
654   AliMatrix(idrotm[351],90.0,305.0,90.0,35.0,0.0,0.0);  
655   AliMatrix(idrotm[352],0.0,0.0,90.0,0.0,90.0,90.0);
656   AliMatrix(idrotm[353],90.0,60.0,90.0,150.0,0.0,0.0); 
657   AliMatrix(idrotm[354],90.0,120.0,90.0,30.0,0.0,0.0); 
658   AliMatrix(idrotm[355],90.0,180.0,90.0,90.0,180.0,0.0); 
659   AliMatrix(idrotm[356],90.0,270.0,90.0,0.0,0.0,0.0); 
660   AliMatrix(idrotm[366],90.0,57.27,90.0,147.27,0.0,0.0); 
661   AliMatrix(idrotm[386],90.0,192.86,90.0,282.86,0.0,0.0);  
662    
663   // SSD
664   
665   AliMatrix(idrotm[501],90.0,148.24,90.0,238.24,0.0,0.0);
666   AliMatrix(idrotm[503],90.0,137.65,90.0,227.65,0.0,0.0); 
667   AliMatrix(idrotm[504],90.0,127.06,90.0,217.06,0.0,0.0);  
668   AliMatrix(idrotm[505],90.0,116.47,90.0,206.47,0.0,0.0);  
669   AliMatrix(idrotm[506],90.0,105.88,90.0,195.88,0.0,0.0);  
670   AliMatrix(idrotm[507],90.0,95.29,90.0,185.29,0.0,0.0);  
671   AliMatrix(idrotm[508],90.0,84.71,90.0,174.71,0.0,0.0);
672   AliMatrix(idrotm[509],90.0,74.12,90.0,164.12,0.0,0.0);
673   AliMatrix(idrotm[510],90.0,63.53,90.0,153.53,0.0,0.0);  
674   AliMatrix(idrotm[511],90.0,52.94,90.0,142.94,0.0,0.0);
675   AliMatrix(idrotm[512],90.0,42.35,90.0,132.35,0.0,0.0);
676   AliMatrix(idrotm[513],90.0,31.76,90.0,121.76,0.0,0.0); 
677   AliMatrix(idrotm[514],90.0,10.59,90.0,100.59,0.0,0.0);  
678   AliMatrix(idrotm[515],90.0,349.41,90.0,79.41,0.0,0.0);  
679   AliMatrix(idrotm[516],90.0,338.82,90.0,68.82,0.0,0.0);  
680   AliMatrix(idrotm[517],90.0,328.24,90.0,58.24,0.0,0.0);  
681   AliMatrix(idrotm[518],90.0,317.65,90.0,47.65,0.0,0.0);
682   AliMatrix(idrotm[519],90.0,307.06,90.0,37.06,0.0,0.0);
683   AliMatrix(idrotm[520],90.0,296.47,90.0,26.47,0.0,0.0);  
684   AliMatrix(idrotm[521],90.0,285.88,90.0,15.88,0.0,0.0);
685   AliMatrix(idrotm[522],90.0,275.29,90.0,5.29,0.0,0.0);
686   AliMatrix(idrotm[523],90.0,264.71,90.0,354.71,0.0,0.0); 
687   AliMatrix(idrotm[524],90.0,254.12,90.0,344.12,0.0,0.0);  
688   AliMatrix(idrotm[525],90.0,243.53,90.0,333.53,0.0,0.0);  
689   AliMatrix(idrotm[526],90.0,232.94,90.0,322.94,0.0,0.0);  
690   AliMatrix(idrotm[527],90.0,222.35,90.0,312.35,0.0,0.0);  
691   AliMatrix(idrotm[528],90.0,211.76,90.0,301.76,0.0,0.0);
692   AliMatrix(idrotm[529],90.0,190.59,90.0,280.59,0.0,0.0);
693   AliMatrix(idrotm[530],90.0,169.41,90.0,259.41,0.0,0.0);  
694   AliMatrix(idrotm[531],90.0,158.82,90.0,248.82,0.0,0.0);
695   AliMatrix(idrotm[532],90.0,360.0,90.0,90.0,0.0,0.0);
696   AliMatrix(idrotm[533],90.0,180.0,90.0,270.0,0.0,0.0); 
697   AliMatrix(idrotm[534],90.0,189.47,90.0,279.47,0.0,0.0);  
698   AliMatrix(idrotm[535],90.0,198.95,90.0,288.95,0.0,0.0);  
699   AliMatrix(idrotm[537],90.0,217.89,90.0,307.89,0.0,0.0);  
700   AliMatrix(idrotm[538],90.0,227.37,90.0,317.37,0.0,0.0);
701   AliMatrix(idrotm[539],90.0,236.84,90.0,326.84,0.0,0.0);
702   AliMatrix(idrotm[540],90.0,246.32,90.0,336.32,0.0,0.0);  
703   AliMatrix(idrotm[541],90.0,255.79,90.0,345.79,0.0,0.0);
704   AliMatrix(idrotm[542],90.0,265.26,90.0,355.26,0.0,0.0);
705   AliMatrix(idrotm[543],90.0,274.74,90.0,4.74,0.0,0.0); 
706   AliMatrix(idrotm[544],90.0,284.21,90.0,14.21,0.0,0.0);  
707   AliMatrix(idrotm[545],90.0,293.68,90.0,23.68,0.0,0.0);  
708   AliMatrix(idrotm[546],90.0,303.16,90.0,33.16,0.0,0.0);  
709   AliMatrix(idrotm[547],90.0,312.63,90.0,42.63,0.0,0.0);  
710   AliMatrix(idrotm[548],90.0,322.11,90.0,52.11,0.0,0.0);
711   AliMatrix(idrotm[549],90.0,331.58,90.0,61.58,0.0,0.0);
712   AliMatrix(idrotm[550],90.0,341.05,90.0,71.05,0.0,0.0);  
713   AliMatrix(idrotm[551],90.0,350.53,90.0,80.53,0.0,0.0);
714   AliMatrix(idrotm[552],90.0,9.47,90.0,99.47,0.0,0.0);
715   AliMatrix(idrotm[553],90.0,18.95,90.0,108.95,0.0,0.0); 
716   AliMatrix(idrotm[555],90.0,37.89,90.0,127.89,0.0,0.0);  
717   AliMatrix(idrotm[556],90.0,47.37,90.0,137.37,0.0,0.0);  
718   AliMatrix(idrotm[557],90.0,56.84,90.0,146.84,0.0,0.0);  
719   AliMatrix(idrotm[558],90.0,66.32,90.0,156.32,0.0,0.0);
720   AliMatrix(idrotm[559],90.0,75.79,90.0,165.79,0.0,0.0);
721   AliMatrix(idrotm[560],90.0,85.26,90.0,175.26,0.0,0.0);  
722   AliMatrix(idrotm[561],90.0,94.74,90.0,184.74,0.0,0.0);
723   AliMatrix(idrotm[562],90.0,104.21,90.0,194.21,0.0,0.0);
724   AliMatrix(idrotm[563],90.0,113.68,90.0,203.68,0.0,0.0); 
725   AliMatrix(idrotm[564],90.0,123.16,90.0,213.16,0.0,0.0);  
726   AliMatrix(idrotm[565],90.0,132.63,90.0,222.63,0.0,0.0);  
727   AliMatrix(idrotm[566],90.0,142.11,90.0,232.11,0.0,0.0);  
728   AliMatrix(idrotm[567],90.0,151.58,90.0,241.58,0.0,0.0);  
729   AliMatrix(idrotm[568],90.0,161.05,90.0,251.05,0.0,0.0);
730   AliMatrix(idrotm[569],90.0,170.53,90.0,260.53,0.0,0.0);
731   AliMatrix(idrotm[570],90.0,180.0,90.0,90.0,180.0,0.0);  
732   AliMatrix(idrotm[571],90.0,0.0,0.0,0.0,90.0,270.0);
733   AliMatrix(idrotm[572],90.0,180.0,0.0,0.0,90.0,270.0);
734   AliMatrix(idrotm[573],90.0,180.0,90.0,90.0,0.0,0.0); 
735   AliMatrix(idrotm[575],90.0,120.0,180.0,0.0,90.0,210.0);  
736   AliMatrix(idrotm[576],65.71,300.0,90.0,30.0,24.29,120.0);  
737   AliMatrix(idrotm[577],114.29,300.0,90.0,30.0,155.71,120.0);  
738   AliMatrix(idrotm[579],65.71,240.0,90.0,150.0,24.29,60.0);
739   AliMatrix(idrotm[580],114.29,240.0,90.0,150.0,155.71,60.0);  
740   AliMatrix(idrotm[581],90.0,240.0,180.0,0.0,90.0,330.0);
741   AliMatrix(idrotm[583],90.0,0.0,180.0,0.0,90.0,90.0); 
742   AliMatrix(idrotm[584],90.0,180.0,180.0,0.0,90.0,90.0);  
743   AliMatrix(idrotm[586],180.0,0.0,90.0,90.0,90.0,0.0);  
744   AliMatrix(idrotm[618],90.0,201.18,90.0,291.18,0.0,0.0);
745   AliMatrix(idrotm[620],90.0,28.42,90.0,118.42,0.0,0.0);  
746   AliMatrix(idrotm[623],90.0,208.42,90.0,298.42,0.0,0.0);
747   AliMatrix(idrotm[633],132.46,0.0,90.0,90.0,42.46,360.0);
748   AliMatrix(idrotm[653],90.0,21.18,90.0,111.18,0.0,0.0); 
749
750   
751   // SDD cone
752
753   AliMatrix(idrotm[846],90.0,300.0,90.0,30.0,0.0,0.0);
754   AliMatrix(idrotm[851],90.0,305.0,90.0,35.0,0.0,0.0);
755   AliMatrix(idrotm[853],90.0,60.0,90.0,150.0,0.0,0.0);
756   AliMatrix(idrotm[856],90.0,0.0,90.0,90.0,180.0,0.0);
757   AliMatrix(idrotm[857],90.0,5.0,90.0,95.0,180.0,0.0);
758   AliMatrix(idrotm[858],90.0,65.0,90.0,155.0,180.0,0.0);
759   AliMatrix(idrotm[859],90.0,305.0,90.0,35.0,180.0,0.0);
760   AliMatrix(idrotm[860],90.0,245.0,90.0,335.0,180.0,0.0);
761   AliMatrix(idrotm[861],90.0,185.0,90.0,275.0,180.0,0.0);
762   AliMatrix(idrotm[862],90.0,125.0,90.0,215.0,180.0,0.0);
763   AliMatrix(idrotm[863],90.0,257.5,90.0,347.5,180.0,0.0);
764   AliMatrix(idrotm[864],90.0,227.5,90.0,317.5,180.0,0.0);
765   AliMatrix(idrotm[865],90.0,197.5,90.0,287.5,180.0,0.0);
766   AliMatrix(idrotm[867],90.0,167.5,90.0,257.5,180.0,0.0);
767   AliMatrix(idrotm[868],90.0,287.5,90.0,17.5,0.0,0.0);  
768   AliMatrix(idrotm[869],90.0,137.5,90.0,227.5,180.0,0.0);
769   AliMatrix(idrotm[870],90.0,107.5,90.0,197.5,180.0,0.0);
770   AliMatrix(idrotm[871],90.0,77.5,90.0,167.5,180.0,0.0);
771   AliMatrix(idrotm[872],90.0,47.5,90.0,137.5,180.0,0.0);
772   AliMatrix(idrotm[873],90.0,17.5,90.0,107.5,180.0,0.0);
773   AliMatrix(idrotm[874],90.0,347.5,90.0,77.5,180.0,0.0);
774   AliMatrix(idrotm[875],90.0,317.5,90.0,47.5,180.0,0.0);
775   AliMatrix(idrotm[876],90.0,287.5,90.0,17.5,180.0,0.0);
776   AliMatrix(idrotm[877],90.0,185.0,90.0,275.0,0.0,0.0);
777   AliMatrix(idrotm[878],90.0,180.0,90.0,270.0,0.0,0.0);  
778   AliMatrix(idrotm[879],90.0,125.0,90.0,215.0,0.0,0.0);
779   AliMatrix(idrotm[880],90.0,65.0,90.0,155.0,0.0,0.0);
780   AliMatrix(idrotm[881],90.0,5.0,90.0,95.0,0.0,0.0);
781   AliMatrix(idrotm[882],90.0,245.0,90.0,335.0,0.0,0.0);
782   AliMatrix(idrotm[883],90.0,47.5,90.0,137.5,0.0,0.0);
783   AliMatrix(idrotm[884],90.0,77.5,90.0,167.5,0.0,0.0);
784   AliMatrix(idrotm[885],90.0,107.5,90.0,197.5,0.0,0.0);
785   AliMatrix(idrotm[887],90.0,137.5,90.0,227.5,0.0,0.0);
786   AliMatrix(idrotm[888],90.0,167.5,90.0,257.5,0.0,0.0);
787   AliMatrix(idrotm[889],90.0,197.5,90.0,287.5,0.0,0.0);
788   AliMatrix(idrotm[890],90.0,227.5,90.0,317.5,0.0,0.0);
789   AliMatrix(idrotm[891],90.0,347.5,90.0,77.5,0.0,0.0);
790   AliMatrix(idrotm[892],90.0,317.5,90.0,47.5,0.0,0.0);
791   AliMatrix(idrotm[893],90.0,257.5,90.0,347.5,0.0,0.0);
792   AliMatrix(idrotm[894],90.0,270.0,0.0,0.0,90.0,180.0);
793   AliMatrix(idrotm[895],90.0,286.36,0.0,0.0,90.0,196.36);
794   AliMatrix(idrotm[896],90.0,302.73,0.0,0.0,90.0,212.73);
795   AliMatrix(idrotm[897],90.0,319.09,0.0,0.0,90.0,229.09);
796   AliMatrix(idrotm[898],90.0,17.5,90.0,107.5,0.0,0.0);
797   AliMatrix(idrotm[899],90.0,335.45,0.0,0.0,90.0,245.45);
798   AliMatrix(idrotm[900],90.0,351.82,0.0,0.0,90.0,261.82);
799   AliMatrix(idrotm[901],90.0,8.18,0.0,0.0,90.0,278.18);
800   AliMatrix(idrotm[902],90.0,24.55,0.0,0.0,90.0,294.55);
801   AliMatrix(idrotm[903],90.0,40.91,0.0,0.0,90.0,310.91);
802   AliMatrix(idrotm[904],90.0,57.27,0.0,0.0,90.0,327.27);
803   AliMatrix(idrotm[905],90.0,73.64,0.0,0.0,90.0,343.64);
804   AliMatrix(idrotm[906],90.0,90.0,0.0,0.0,90.0,360.0);
805   AliMatrix(idrotm[907],90.0,106.36,0.0,0.0,90.0,16.36);
806   AliMatrix(idrotm[908],90.0,122.73,0.0,0.0,90.0,32.73);
807   AliMatrix(idrotm[909],90.0,139.09,0.0,0.0,90.0,49.09);
808   AliMatrix(idrotm[910],90.0,155.45,0.0,0.0,90.0,65.45);
809   AliMatrix(idrotm[911],90.0,171.82,0.0,0.0,90.0,81.82);
810   AliMatrix(idrotm[912],90.0,188.18,0.0,0.0,90.0,98.18);
811   AliMatrix(idrotm[913],90.0,204.55,0.0,0.0,90.0,114.55);
812   AliMatrix(idrotm[914],90.0,220.91,0.0,0.0,90.0,130.91);
813   AliMatrix(idrotm[915],90.0,237.27,0.0,0.0,90.0,147.27);
814   AliMatrix(idrotm[916],90.0,253.64,0.0,0.0,90.0,163.64);
815   AliMatrix(idrotm[917],90.0,295.71,0.0,0.0,90.0,205.71);
816   AliMatrix(idrotm[918],90.0,321.43,0.0,0.0,90.0,231.43);
817   AliMatrix(idrotm[919],90.0,347.14,0.0,0.0,90.0,257.14);
818   AliMatrix(idrotm[920],90.0,12.86,0.0,0.0,90.0,282.86);
819   AliMatrix(idrotm[921],90.0,38.57,0.0,0.0,90.0,308.57);
820   AliMatrix(idrotm[922],90.0,64.29,0.0,0.0,90.0,334.29);
821   AliMatrix(idrotm[923],90.0,115.71,0.0,0.0,90.0,25.71);
822   AliMatrix(idrotm[924],90.0,141.43,0.0,0.0,90.0,51.43);
823   AliMatrix(idrotm[925],90.0,167.14,0.0,0.0,90.0,77.14);
824   AliMatrix(idrotm[926],90.0,192.86,0.0,0.0,90.0,102.86);
825   AliMatrix(idrotm[927],90.0,218.57,0.0,0.0,90.0,128.57);
826   AliMatrix(idrotm[928],90.0,244.29,0.0,0.0,90.0,154.29);
827   AliMatrix(idrotm[929],90.0,120.0,90.0,210.0,0.0,0.0);
828   AliMatrix(idrotm[930],90.0,240.0,90.0,330.0,0.0,0.0);
829   AliMatrix(idrotm[931],90.0,60.0,90.0,150.0,180.0,0.0);
830   AliMatrix(idrotm[932],90.0,120.0,90.0,210.0,180.0,0.0);
831   AliMatrix(idrotm[933],90.0,180.0,90.0,270.0,180.0,0.0);
832   AliMatrix(idrotm[934],90.0,240.0,90.0,330.0,180.0,0.0);
833   AliMatrix(idrotm[935],90.0,300.0,90.0,30.0,180.0,0.0);
834
835   // SSD cone
836
837   AliMatrix(idrotm[701],90.0,0.0,90.0,90.0,180.0,0.0);
838   AliMatrix(idrotm[702],90.0,347.5,90.0,77.5,180.0,0.0);
839   AliMatrix(idrotm[703],90.0,17.5,90.0,107.5,180.0,0.0);
840   AliMatrix(idrotm[704],90.0,47.5,90.0,137.5,180.0,0.0);
841   AliMatrix(idrotm[705],90.0,77.5,90.0,167.5,180.0,0.0);
842   AliMatrix(idrotm[706],90.0,107.5,90.0,197.5,180.0,0.0);
843   AliMatrix(idrotm[707],90.0,137.5,90.0,227.5,180.0,0.0);
844   AliMatrix(idrotm[708],90.0,167.5,90.0,257.5,180.0,0.0);
845   AliMatrix(idrotm[709],90.0,197.5,90.0,287.5,180.0,0.0);
846   AliMatrix(idrotm[710],90.0,227.5,90.0,317.5,180.0,0.0);
847   AliMatrix(idrotm[711],90.0,257.5,90.0,347.5,180.0,0.0);
848   AliMatrix(idrotm[712],90.0,287.5,90.0,17.5,180.0,0.0);
849   AliMatrix(idrotm[713],90.0,317.5,90.0,47.5,180.0,0.0);
850   AliMatrix(idrotm[714],90.0,328.4,90.0,58.4,180.0,0.0);
851   AliMatrix(idrotm[715],90.0,28.4,90.0,118.4,180.0,0.0);
852   AliMatrix(idrotm[716],90.0,88.4,90.0,178.4,180.0,0.0);
853   AliMatrix(idrotm[717],90.0,148.4,90.0,238.4,180.0,0.0);
854   AliMatrix(idrotm[718],90.0,208.4,90.0,298.4,180.0,0.0);
855   AliMatrix(idrotm[719],90.0,268.4,90.0,358.4,180.0,0.0);
856   AliMatrix(idrotm[720],90.0,28.4,90.0,118.4,0.0,0.0);
857   AliMatrix(idrotm[721],90.0,88.4,90.0,178.4,0.0,0.0);
858   AliMatrix(idrotm[722],90.0,148.4,90.0,238.4,0.0,0.0);
859   AliMatrix(idrotm[723],90.0,208.4,90.0,298.4,0.0,0.0);
860   AliMatrix(idrotm[724],90.0,268.4,90.0,358.4,0.0,0.0);
861   AliMatrix(idrotm[725],90.0,328.4,90.0,58.4,0.0,0.0);
862   AliMatrix(idrotm[726],90.0,77.5,90.0,167.5,0.0,0.0);
863   AliMatrix(idrotm[727],90.0,107.5,90.0,197.5,0.0,0.0);
864   AliMatrix(idrotm[728],90.0,137.5,90.0,227.5,0.0,0.0);
865   AliMatrix(idrotm[729],90.0,167.5,90.0,257.5,0.0,0.0);
866   AliMatrix(idrotm[730],90.0,227.5,90.0,317.5,0.0,0.0);
867   AliMatrix(idrotm[731],90.0,257.5,90.0,347.5,0.0,0.0);
868   AliMatrix(idrotm[732],90.0,317.5,90.0,47.5,0.0,0.0);  
869   AliMatrix(idrotm[733],90.0,197.5,90.0,287.5,0.0,0.0);
870   AliMatrix(idrotm[734],90.0,347.5,90.0,77.5,0.0,0.0);
871   AliMatrix(idrotm[735],90.0,47.5,90.0,137.5,0.0,0.0);
872   AliMatrix(idrotm[768],90.0,287.5,90.0,17.5,0.0,0.0);
873   AliMatrix(idrotm[798],90.0,17.5,90.0,107.5,0.0,0.0);
874
875   // Services
876     
877   AliMatrix(idrotm[200], 90., 0., 90., 90., 180., 0.);  
878
879
880   //     CONVERT INTO CM (RL(SI)=9.36 CM) 
881   
882   for (i = 0; i < 6; ++i) {
883     drl[i] = drl[i] / 100. * 9.36;
884   }
885     
886   //     FIELD CAGE HALF LENGTH 
887   
888   rlim  = 56.;
889   zmax  = 74.;
890   ztpc = 284.;
891   
892   // --- Define ghost volume containing the whole ITS (including services) 
893   //     and fill it with air 
894   
895   dgh[0] = 0.;
896   dgh[1] = 360.;
897   dgh[2] = 16.;
898   dgh[3] = -ztpc-5.-0.1;
899   dgh[4] = 46;   
900   dgh[5] = 85.;
901   dgh[6] = -ztpc;
902   dgh[7] = 46;   
903   dgh[8] = 85.;
904   dgh[9] = -ztpc;
905   dgh[10] = 46;  
906   dgh[11] = rlim+0.1;
907   dgh[12] = -97.5;
908   dgh[13] = 46;  
909   dgh[14] = rlim+0.1;
910   dgh[15] = -zmax;
911   dgh[16] = 46;  
912   dgh[17] = rlim+0.1;
913   dgh[18] = -42;   
914   dgh[19] = 6;
915   dgh[20] = rlim+0.1;
916   dgh[21] = -28;   
917   dgh[22] = 6;
918   dgh[23] = rlim+0.1;    
919   dgh[24] = -26.2;  
920   dgh[25] = 3.295;
921   dgh[26] = rlim+0.1; 
922   dgh[27] = 26.2;   
923   dgh[28] = 3.295;
924   dgh[29] = rlim+0.1;
925   dgh[30] = 28;   
926   dgh[31] = 6;
927   dgh[32] = rlim+0.1;
928   dgh[33] = 42;   
929   dgh[34] = 6;
930   dgh[35] = rlim+0.1;  
931   dgh[36] = zmax;
932   dgh[37] = 46;
933   dgh[38] = rlim+0.1;
934   dgh[39] = 97.5;
935   dgh[40] = 46;  
936   dgh[41] = rlim+0.1;
937   dgh[42] = ztpc;
938   dgh[43] = 62;     
939   dgh[44] = 62+4.;  
940   dgh[45] = ztpc;
941   dgh[46] = 62;     
942   dgh[47] = 85.;
943   dgh[48] = ztpc+4.+0.1;
944   dgh[49] = 62.4;
945   dgh[50] = 85.;
946   gMC->Gsvolu("ITSV", "PCON", idtmed[205], dgh, 51);
947
948   
949   // --- Place the ghost volume in its mother volume (ALIC) and make it 
950   //     invisible 
951   
952   gMC->Gspos("ITSV", 1, "ALIC", 0., 0., 0., 0, "ONLY");
953   //gMC->Gsatt("ITSV", "SEEN", 0); 
954
955
956   // --- Define ghost volume containing the six layers and fill it with air 
957   
958   dgh[0] = 0.;
959   dgh[1] = 360.;
960   dgh[2] = 8.;
961   dgh[3] = -zmax;  
962   dgh[4] = 46.;
963   dgh[5] = rlim;
964   dgh[6] = -41.5;    
965   dgh[7] = 6.005;
966   dgh[8] = rlim;
967   dgh[9] = -28.5;    
968   dgh[10] = 6.005;
969   dgh[11] = rlim;  
970   dgh[12] = -27.5;   
971   dgh[13] = 3.3;
972   dgh[14] = rlim;
973   dgh[15] = 27.5;    
974   dgh[16] = 3.3;
975   dgh[17] = rlim;
976   dgh[18] = 28.5;    
977   dgh[19] = 6.005;
978   dgh[20] = rlim;
979   dgh[21] = 41.5;    
980   dgh[22] = 6.005;
981   dgh[23] = rlim;
982   dgh[24] = zmax;    
983   dgh[25] = 46.;
984   dgh[26] = rlim;
985   gMC->Gsvolu("ITSD", "PCON", idtmed[205], dgh, 27);
986   
987   // --- Place the ghost volume in its mother volume (ITSV) and make it 
988   //     invisible 
989   
990   gMC->Gspos("ITSD", 1, "ITSV", 0., 0., 0., 0, "ONLY");
991   //gMC->Gsatt("ITSD", "SEEN", 0);
992
993
994   // --- Define SPD (option 'a') volumes ----------------------------
995   
996   // SPD - option 'a' 
997   // (this is NOT the default)
998
999   if (option == 1) {
1000   
1001      dits[0] = 3.7;
1002      dits[1] = 7.75;
1003      dits[2] = 26.1;
1004      gMC->Gsvolu("IT12", "TUBE", idtmed[254], dits, 3);   
1005
1006      dits[0] = 3.7;
1007      dits[1] = 7.7;
1008      dits[2] = 24;
1009      dits[3] = 57;
1010      dits[4] = 100;
1011      gMC->Gsvolu("I12A", "TUBS", idtmed[254], dits, 5);    // sector
1012
1013      di10a[0] = 0.843;
1014      di10a[1] = ddet1+dchip1+dbus+0.0025;
1015      di10a[2] = 19.344;
1016      gMC->Gsvolu("I10A", "BOX ", idtmed[254], di10a, 3);    // mother volume
1017                                                             // on layer 1
1018      di20a[0] = 0.843;
1019      di20a[1] = ddet2+dchip2+dbus+0.0025;
1020      di20a[2] = 19.344;
1021      gMC->Gsvolu("I20A", "BOX ", idtmed[254], di20a, 3);    // mother volume
1022                                                             // on layer 2
1023      dits[0] = 1.3673;
1024      dits[1] = 0.01;
1025      dits[2] = 24;
1026      gMC->Gsvolu("I123", "BOX ", idtmed[253], dits, 3);
1027
1028      dits[0] = 0.06;
1029      dits[1] = 0.08;
1030      dits[2] = 24;
1031      dits[3] = -36.79;
1032      dits[4] = 21.834;
1033      gMC->Gsvolu("I121", "TUBS", idtmed[253], dits, 5);  
1034
1035      dits[0] = 0.1253;
1036      dits[1] = 0.01;
1037      dits[2] = 24;
1038      gMC->Gsvolu("I122", "BOX ", idtmed[253], dits, 3);  
1039
1040      dits[0] = 0.04;
1041      dits[1] = 0.06 ;
1042      dits[2] = 24;
1043      dits[3] = 126.79;
1044      dits[4] = 270;
1045      gMC->Gsvolu("I120", "TUBS", idtmed[253], dits, 5);  
1046
1047      dits[0] = 0.1134;
1048      dits[1] = 0.01;
1049      dits[2] = 24;
1050      gMC->Gsvolu("I144", "BOX ", idtmed[253], dits, 3);  
1051
1052      dits[0] = 0.25;
1053      dits[1] = 0.06;
1054      dits[2] = 24;
1055      gMC->Gsvolu("I113", "BOX ", idtmed[254], dits, 3);  
1056
1057      dits[0] = 0.077;
1058      dits[1] = 0.01;
1059      dits[2] = 24;
1060      gMC->Gsvolu("I143", "BOX ", idtmed[253], dits, 3);   
1061
1062      dits[0] = 0.04;
1063      dits[1] = 0.06;
1064      dits[2] = 24;
1065      dits[3] = 0;
1066      dits[4] = 90;
1067      gMC->Gsvolu("I142", "TUBS", idtmed[253], dits, 5); 
1068
1069      dits[0] = 0.0695;
1070      dits[1] = 0.01;
1071      dits[2] = 24;
1072      gMC->Gsvolu("I141", "BOX ", idtmed[253], dits, 3);  
1073
1074      dits[0] = 0.06;
1075      dits[1] = 0.08;
1076      dits[2] = 24;
1077      dits[3] = 0;
1078      dits[4] = 108;
1079      gMC->Gsvolu("I140", "TUBS", idtmed[253], dits, 5);  
1080
1081      dits[0] = 0.1835;
1082      dits[1] = 0.01;
1083      dits[2] = 24;
1084      gMC->Gsvolu("I139", "BOX ", idtmed[253], dits, 3);
1085
1086      dits[0] = 0.1894 ;
1087      dits[1] = 0.01;
1088      dits[2] = 24;
1089      gMC->Gsvolu("I138", "BOX ", idtmed[253], dits, 3);  
1090
1091      dits[0] = 0.04;
1092      dits[1] = 0.06;
1093      dits[2] = 24;
1094      dits[3] = 0;
1095      dits[4] = 75.261;
1096      gMC->Gsvolu("I137", "TUBS", idtmed[253], dits, 5);  
1097
1098      dits[0] = 1.3401;
1099      dits[1] = 0.01;
1100      dits[2] = 24;
1101      gMC->Gsvolu("I136", "BOX ", idtmed[253], dits, 3);  
1102
1103      dits[0] = 0.05;
1104      dits[1] = 0.07;
1105      dits[2] = 24;
1106      dits[3] = 0;
1107      dits[4] = 72.739;
1108      gMC->Gsvolu("I135", "TUBS", idtmed[253], dits, 5);  
1109
1110      dits[0] = 0.1193;
1111      dits[1] = 0.01;
1112      dits[2] = 24;
1113      gMC->Gsvolu("I134", "BOX ", idtmed[253], dits, 3);    
1114
1115      dits[0] = 0.163;
1116      dits[1] = 0.01;
1117      dits[2] = 24;
1118      gMC->Gsvolu("I133", "BOX ", idtmed[253], dits, 3);   
1119
1120      dits[0] = 0.04;
1121      dits[1] = 0.06;
1122      dits[2] = 24;
1123      dits[3] = 0;
1124      dits[4] = 157.633;
1125      gMC->Gsvolu("I132", "TUBS", idtmed[253], dits, 5); 
1126
1127      dits[0] = 0.2497;
1128      dits[1] = 0.01;
1129      dits[2] = 24;
1130      gMC->Gsvolu("I131", "BOX ", idtmed[253], dits, 3); 
1131
1132      dits[0] = 0.06;
1133      dits[1] = 0.08;
1134      dits[2] = 24;
1135      dits[3] = 0;
1136      dits[4] = 148.633;
1137      gMC->Gsvolu("I130", "TUBS", idtmed[253], dits, 5); 
1138
1139      dits[0] = 0.292;
1140      dits[1] = 0.01;
1141      dits[2] = 24;
1142      gMC->Gsvolu("I129", "BOX ", idtmed[253], dits, 3);  
1143
1144      dits[0] = 0.163;
1145      dits[1] = 0.01;
1146      dits[2] = 24;
1147      gMC->Gsvolu("I128", "BOX ", idtmed[253], dits, 3);  
1148
1149      dits[0] = 0.04;
1150      dits[1] = 0.06;
1151      dits[2] = 24;
1152      dits[3] = 0;
1153      dits[4] = 161.297;
1154      gMC->Gsvolu("I126", "TUBS", idtmed[253], dits, 5);
1155
1156      dits[0] = 0.2433;
1157      dits[1] = 0.01;
1158      dits[2] = 24;
1159      gMC->Gsvolu("I125", "BOX ", idtmed[253], dits, 3);  
1160
1161      dits[0] = 0.06;
1162      dits[1] = 0.08;
1163      dits[2] = 24;
1164      dits[3] = 0;
1165      dits[4] = 42.883;
1166      gMC->Gsvolu("I124", "TUBS", idtmed[253], dits, 5);  
1167
1168      di103[0] = 0.793;
1169      di103[1] = ddet1+dchip1;
1170      di103[2] = 3.536;
1171      gMC->Gsvolu("I103", "BOX ", idtmed[254], di103, 3); // contains det and chip  
1172                                                          // layer 1
1173      dits[0] = 0.793;
1174      dits[1] = 0.015;
1175      dits[2] = 2.5;
1176      gMC->Gsvolu("I105", "BOX ", idtmed[201], dits, 3);  
1177
1178      di104[0] = 0.843;
1179      di104[1] = dbus;
1180      di104[2] = 14.344;
1181      gMC->Gsvolu("I104", "BOX ", idtmed[275], di104, 3);  // bus for both layers
1182
1183      di1d3[0] = 0.793;
1184      di1d3[1] = ddet2+dchip2;
1185      di1d3[2] = 3.536;
1186      gMC->Gsvolu("I1D3", "BOX ", idtmed[254], di1d3, 3); // contains det and chip
1187                                                          // layer 2
1188      dits[0] = 0.793;
1189      dits[0] = 0.06;
1190      dits[1] = 0.08;
1191      dits[2] = 24;
1192      dits[3] = 0;
1193      dits[4] = 80;
1194      gMC->Gsvolu("I112", "TUBS", idtmed[253], dits, 5);  
1195
1196      dits[0] = 0.04;
1197      dits[1] = 0.06;
1198      dits[2] = 24;
1199      dits[3] = 0;
1200      dits[4] = 80;
1201      gMC->Gsvolu("I111", "TUBS", idtmed[253], dits, 5);  
1202
1203      dits[0] = 0.15;
1204      dits[1] = 0.0146;
1205      dits[2] = 24;
1206      gMC->Gsvolu("I118", "BOX ", idtmed[273], dits, 3);  
1207
1208      dits[0] = 0.1315;
1209      dits[1] = 0.01;
1210      dits[2] = 24;
1211      gMC->Gsvolu("I110", "BOX ", idtmed[253], dits, 3);  
1212
1213      dits[0] = 0.025;
1214      dits[1] = 0.035;
1215      dits[2] = 24;
1216      dits[3] = 0;
1217      dits[4] = 180;
1218      gMC->Gsvolu("I114", "TUBS", idtmed[264], dits, 5);  
1219
1220      dits[0] = 0;
1221      dits[1] = 0.025;
1222      dits[2] = 24;
1223      dits[3] = 0;
1224      dits[4] = 180;
1225      gMC->Gsvolu("I115", "TUBS", idtmed[211], dits, 5);   
1226
1227      dits[0] = 0.063;
1228      dits[1] = 0.035;
1229      dits[2] = 24;
1230      gMC->Gsvolu("I116", "BOX ", idtmed[264], dits, 3); 
1231
1232      di102[0] = 0.793;
1233      di102[1] = dchip1;
1234      di102[2] = 0.68;
1235      gMC->Gsvolu("I102", "BOX ", idtmed[201], di102, 3);   // chip layer 1
1236           
1237      di1d2[0] = 0.793;
1238      di1d2[1] = dchip2;
1239      di1d2[2] = 0.68;
1240      gMC->Gsvolu("I1D2", "BOX ", idtmed[201], di1d2, 3);   // chip      layer 2
1241
1242      di101[0] = 0.705;
1243      di101[1] = ddet1;
1244      di101[2] = 3.536;
1245      gMC->Gsvolu("I101", "BOX ", idtmed[250], di101, 3);   // contains detector 
1246                                                            // layer 1
1247      di1d1[0] = 0.705;
1248      di1d1[1] = ddet2;
1249      di1d1[2] = 3.536;
1250      gMC->Gsvolu("I1D1", "BOX ", idtmed[250], di1d1, 3);   // contains detector 
1251                                                            // layer 2
1252      dits[0] = 0.063;
1253      dits[1] = 0.025;
1254      dits[2] = 24;
1255      gMC->Gsvolu("I117", "BOX ", idtmed[211], dits, 3);  
1256
1257      dits1[0] = 0.64;
1258      dits1[1] = ddet1;
1259      dits1[2] = 3.48;
1260      gMC->Gsvolu("ITS1", "BOX ", idtmed[200], dits1, 3);   // detector layer 1
1261
1262      dits2[0] = 0.64;
1263      dits2[1] = ddet2;
1264      dits2[2] = 3.48;
1265      gMC->Gsvolu("ITS2", "BOX ", idtmed[200], dits2, 3);   // detector layer 2
1266
1267      dits[0] = 3.701;
1268      dits[1] = 7.699;
1269      dits[2] = 4;
1270      dits[3] = 57.1;
1271      dits[4] = 99.9;  
1272      gMC->Gsvolu("I650", "TUBS", idtmed[254], dits, 5);  // was I150 in old geom.
1273
1274      dits[0] = 0;
1275      dits[1] = 0.5;
1276      dits[2] = 1.5;
1277      gMC->Gsvolu("I676", "TUBE", idtmed[274], dits, 3); // was I176 in old geom.
1278
1279      dits[0] = 0;
1280      dits[1] = 0.18;
1281      dits[2] = 0.8;
1282      gMC->Gsvolu("I673", "TUBE", idtmed[274], dits, 3); // was I173 in old geom.
1283
1284      dits[0] = 0;
1285      dits[1] = 0.18;
1286      dits[2] = 3;
1287      gMC->Gsvolu("I671", "TUBE", idtmed[274], dits, 3); // was I171 in old geom.
1288
1289      dits[0] = 0;
1290      dits[1] = 0.075;
1291      dits[2] = 0.8;
1292      gMC->Gsvolu("I669", "TUBE", idtmed[264], dits, 3); // was I169 in old geom.
1293
1294      dits[0] = 3.5;
1295      dits[1] = 5.6;
1296      dits[2] = 0.55;
1297      dits[3] = 0;
1298      dits[4] = 38;
1299      gMC->Gsvolu("I667", "TUBS", idtmed[263], dits, 5); // was I167 in old geom.
1300
1301      dits[0] = 6.6;
1302      dits[1] = 7.6;
1303      dits[2] = 0.5;
1304      dits[3] = 0;
1305      dits[4] = 9;
1306      gMC->Gsvolu("I666", "TUBS", idtmed[263], dits, 5); // was I166 in old geom.
1307
1308      dits[0] = 0.26;
1309      dits[1] = 0.32;
1310      dits[2] = 0.55;
1311      gMC->Gsvolu("I678", "TUBE", idtmed[263], dits, 3); // was I178 in old geom.
1312
1313      dits[0] = 0;
1314      dits[1] = 0.3;
1315      dits[2] = 1.5;
1316      gMC->Gsvolu("I677", "TUBE", idtmed[211], dits, 3); // was I177 in old geom.
1317
1318      dits[0] = 0.07;
1319      dits[1] = 0.125;
1320      dits[2] = 0.3;
1321      gMC->Gsvolu("I675", "TUBE", idtmed[263], dits, 3); // was I175 in old geom.
1322
1323      dits[0] = 0;
1324      dits[1] = 0.1;
1325      dits[2] = 0.8;
1326      gMC->Gsvolu("I674", "TUBE", idtmed[211], dits, 3); // was I174 in old geom.
1327
1328      dits[0] = 0;
1329      dits[1] = 0.1;
1330      dits[2] = 3;
1331      gMC->Gsvolu("I672", "TUBE", idtmed[211], dits, 3); // was I172 in old geom.
1332
1333      dits[0] = 0;
1334      dits[1] = 0.0746;
1335      dits[2] = 0.8;
1336      gMC->Gsvolu("I670", "TUBE", idtmed[211], dits, 3); // was I170 in old geom.
1337
1338      dits[0] = 3.7;
1339      dits[1] = 5.4;
1340      dits[2] = 0.35;
1341      dits[3] = 2;
1342      dits[4] = 36;
1343      gMC->Gsvolu("I668", "TUBS", idtmed[211], dits, 5); // was I168 in old geom.
1344
1345   }
1346
1347   // --- Define SPD (option 'b') volumes ----------------------------
1348   
1349   // SPD - option 'b' 
1350   // (this is the default)
1351
1352   if (option == 2) {
1353   
1354      dits[0] = 3.7;
1355      dits[1] = 7.75;
1356      dits[2] = 26.1;
1357      gMC->Gsvolu("IT12", "TUBE", idtmed[254], dits, 3);   
1358
1359      dits[0] = 3.7;
1360      dits[1] = 7.7;
1361      dits[2] = 24;
1362      dits[3] = 57;
1363      dits[4] = 100;
1364      gMC->Gsvolu("I12B", "TUBS", idtmed[254], dits, 5);   // sector
1365
1366      di10b[0] = 0.843;
1367      di10b[1] = ddet1+dchip1+dbus+0.0025;  
1368      di10b[2] = 19.344;
1369      gMC->Gsvolu("I10B", "BOX ", idtmed[254], di10b, 3);   // mother volume 
1370                                                                 // on layer 1
1371
1372      di20b[0] = 0.843;
1373      di20b[1] = ddet2+dchip2+dbus+0.0025;   
1374      di20b[2] = 19.344;
1375      gMC->Gsvolu("I20B", "BOX ", idtmed[254], di20b, 3);   // mother volume
1376                                                                 // layer 2
1377
1378      dits[0] = 1.3673;
1379      dits[1] = 0.01;
1380      dits[2] = 24;
1381      gMC->Gsvolu("I123", "BOX ", idtmed[253], dits, 3);
1382
1383      dits[0] = 0.06;
1384      dits[1] = 0.08;
1385      dits[2] = 24;
1386      dits[3] = -36.79;
1387      dits[4] = 21.834;
1388      gMC->Gsvolu("I121", "TUBS", idtmed[253], dits, 5);  
1389
1390      dits[0] = 0.1253;
1391      dits[1] = 0.01;
1392      dits[2] = 24;
1393      gMC->Gsvolu("I122", "BOX ", idtmed[253], dits, 3);  
1394
1395      dits[0] = 0.04;
1396      dits[1] = 0.06 ;
1397      dits[2] = 24;
1398      dits[3] = 126.79;
1399      dits[4] = 270;
1400      gMC->Gsvolu("I120", "TUBS", idtmed[253], dits, 5);  
1401
1402      dits[0] = 0.1134;
1403      dits[1] = 0.01;
1404      dits[2] = 24;
1405      gMC->Gsvolu("I144", "BOX ", idtmed[253], dits, 3);  
1406
1407      dits[0] = 0.25;
1408      dits[1] = 0.06;
1409      dits[2] = 24;
1410      gMC->Gsvolu("I113", "BOX ", idtmed[254], dits, 3);  
1411
1412      dits[0] = 0.077;
1413      dits[1] = 0.01;
1414      dits[2] = 24;
1415      gMC->Gsvolu("I143", "BOX ", idtmed[253], dits, 3);   
1416
1417      dits[0] = 0.04;
1418      dits[1] = 0.06;
1419      dits[2] = 24;
1420      dits[3] = 0;
1421      dits[4] = 90;
1422      gMC->Gsvolu("I142", "TUBS", idtmed[253], dits, 5); 
1423
1424      dits[0] = 0.0695;
1425      dits[1] = 0.01;
1426      dits[2] = 24;
1427      gMC->Gsvolu("I141", "BOX ", idtmed[253], dits, 3);  
1428
1429      dits[0] = 0.06;
1430      dits[1] = 0.08;
1431      dits[2] = 24;
1432      dits[3] = 0;
1433      dits[4] = 108;
1434      gMC->Gsvolu("I140", "TUBS", idtmed[253], dits, 5);  
1435
1436      dits[0] = 0.1835;
1437      dits[1] = 0.01;
1438      dits[2] = 24;
1439      gMC->Gsvolu("I139", "BOX ", idtmed[253], dits, 3);
1440
1441      dits[0] = 0.1894 ;
1442      dits[1] = 0.01;
1443      dits[2] = 24;
1444      gMC->Gsvolu("I138", "BOX ", idtmed[253], dits, 3);  
1445
1446      dits[0] = 0.04;
1447      dits[1] = 0.06;
1448      dits[2] = 24;
1449      dits[3] = 0;
1450      dits[4] = 75.261;
1451      gMC->Gsvolu("I137", "TUBS", idtmed[253], dits, 5);  
1452
1453      dits[0] = 1.3401;
1454      dits[1] = 0.01;
1455      dits[2] = 24;
1456      gMC->Gsvolu("I136", "BOX ", idtmed[253], dits, 3);  
1457
1458      dits[0] = 0.05;
1459      dits[1] = 0.07;
1460      dits[2] = 24;
1461      dits[3] = 0;
1462      dits[4] = 72.739;
1463      gMC->Gsvolu("I135", "TUBS", idtmed[253], dits, 5);  
1464
1465      dits[0] = 0.1193;
1466      dits[1] = 0.01;
1467      dits[2] = 24;
1468      gMC->Gsvolu("I134", "BOX ", idtmed[253], dits, 3);    
1469
1470      dits[0] = 0.163;
1471      dits[1] = 0.01;
1472      dits[2] = 24;
1473      gMC->Gsvolu("I133", "BOX ", idtmed[253], dits, 3);   
1474
1475      dits[0] = 0.04;
1476      dits[1] = 0.06;
1477      dits[2] = 24;
1478      dits[3] = 0;
1479      dits[4] = 157.633;
1480      gMC->Gsvolu("I132", "TUBS", idtmed[253], dits, 5); 
1481
1482      dits[0] = 0.2497;
1483      dits[1] = 0.01;
1484      dits[2] = 24;
1485      gMC->Gsvolu("I131", "BOX ", idtmed[253], dits, 3); 
1486
1487      dits[0] = 0.06;
1488      dits[1] = 0.08;
1489      dits[2] = 24;
1490      dits[3] = 0;
1491      dits[4] = 148.633;
1492      gMC->Gsvolu("I130", "TUBS", idtmed[253], dits, 5); 
1493
1494      dits[0] = 0.292;
1495      dits[1] = 0.01;
1496      dits[2] = 24;
1497      gMC->Gsvolu("I129", "BOX ", idtmed[253], dits, 3);  
1498
1499      dits[0] = 0.163;
1500      dits[1] = 0.01;
1501      dits[2] = 24;
1502      gMC->Gsvolu("I128", "BOX ", idtmed[253], dits, 3);  
1503
1504      dits[0] = 0.04;
1505      dits[1] = 0.06;
1506      dits[2] = 24;
1507      dits[3] = 0;
1508      dits[4] = 161.297;
1509      gMC->Gsvolu("I126", "TUBS", idtmed[253], dits, 5);
1510
1511      dits[0] = 0.2433;
1512      dits[1] = 0.01;
1513      dits[2] = 24;
1514      gMC->Gsvolu("I125", "BOX ", idtmed[253], dits, 3);  
1515
1516      dits[0] = 0.06;
1517      dits[1] = 0.08;
1518      dits[2] = 24;
1519      dits[3] = 0;
1520      dits[4] = 42.883;
1521      gMC->Gsvolu("I124", "TUBS", idtmed[253], dits, 5);  
1522
1523      dits[0] = 0.793;
1524      dits[1] = 0.015 ;
1525      dits[2] = 2.5;
1526      gMC->Gsvolu("I105", "BOX ", idtmed[201], dits, 3);  
1527
1528      di107[0] = 0.793;
1529      di107[1] = ddet1+dchip1;
1530      di107[2] = 3.536;
1531      gMC->Gsvolu("I107", "BOX ", idtmed[254], di107, 3); // contains det and chip   
1532                                                          // layer 1
1533      dits[0] = 0.705;
1534      dits[1] = 0.01;
1535      dits[2] = 2.5;
1536      gMC->Gsvolu("I109", "BOX ", idtmed[275], dits, 3);  
1537
1538      di108[0] = 0.705;
1539      di108[1] = dbus;
1540      di108[2] = 14.344;
1541      gMC->Gsvolu("I108", "BOX ", idtmed[275], di108, 3); // bus for both layers 
1542
1543      di1d7[0] = 0.7975;
1544      di1d7[1] = ddet2+dchip2;   
1545      di1d7[2] = 3.536;
1546      gMC->Gsvolu("I1D7", "BOX ", idtmed[254], di1d7, 3); // contains det and chip
1547                                                          // layer 2
1548      dits[0] = 0.06;
1549      dits[1] = 0.08;
1550      dits[2] = 24;
1551      dits[3] = 0;
1552      dits[4] = 80;
1553      gMC->Gsvolu("I112", "TUBS", idtmed[253], dits, 5);  
1554
1555      dits[0] = 0.04;
1556      dits[1] = 0.06;
1557      dits[2] = 24;
1558      dits[3] = 0;
1559      dits[4] = 80;
1560      gMC->Gsvolu("I111", "TUBS", idtmed[253], dits, 5);  
1561
1562      dits[0] = 0.15;
1563      dits[1] = 0.0146;
1564      dits[2] = 24;
1565      gMC->Gsvolu("I118", "BOX ", idtmed[273], dits, 3);  
1566
1567      dits[0] = 0.1315;
1568      dits[1] = 0.01;
1569      dits[2] = 24;
1570      gMC->Gsvolu("I110", "BOX ", idtmed[253], dits, 3);  
1571
1572      dits[0] = 0.025;
1573      dits[1] = 0.035;
1574      dits[2] = 24;
1575      dits[3] = 0;
1576      dits[4] = 180;
1577      gMC->Gsvolu("I114", "TUBS", idtmed[264], dits, 5);  
1578
1579      dits[0] = 0;
1580      dits[1] = 0.025;
1581      dits[2] = 24;
1582      dits[3] = 0;
1583      dits[4] = 180;
1584      gMC->Gsvolu("I115", "TUBS", idtmed[211], dits, 5);   
1585
1586      dits[0] = 0.063;
1587      dits[1] = 0.035;
1588      dits[2] = 24;
1589      gMC->Gsvolu("I116", "BOX ", idtmed[264], dits, 3); 
1590
1591      di106[0] = 0.7975;
1592      di106[1] = dchip1;   
1593      di106[2] = 0.68;
1594      gMC->Gsvolu("I106", "BOX ", idtmed[201], di106, 3);   // chip layer 1
1595
1596      di1d6[0] = 0.7975;
1597      di1d6[1] = dchip2;   
1598      di1d6[2] = 0.68;
1599      gMC->Gsvolu("I1D6", "BOX ", idtmed[201], di1d6, 3);   // chip layer 2
1600
1601      di101[0] = 0.705;
1602      di101[1] = ddet1;
1603      di101[2] = 3.536;
1604      gMC->Gsvolu("I101", "BOX ", idtmed[250], di101, 3);  // contains detector  
1605                                                           // layer 1
1606      di1d1[0] = 0.705;
1607      di1d1[1] = ddet2;   
1608      di1d1[2] = 3.536;
1609      gMC->Gsvolu("I1D1", "BOX ", idtmed[250], di1d1, 3);  // contains detector  
1610                                                           // layer 2
1611      dits[0] = 0.063;
1612      dits[1] = 0.025;
1613      dits[2] = 24;
1614      gMC->Gsvolu("I117", "BOX ", idtmed[211], dits, 3);  
1615
1616      dits1[0] = 0.64;
1617      dits1[1] = ddet1;
1618      dits1[2] = 3.48;
1619      gMC->Gsvolu("ITS1", "BOX ", idtmed[200], dits1, 3);   // detector layer 1
1620
1621      dits2[0] = 0.64;
1622      dits2[1] = ddet2;  
1623      dits2[2] = 3.48;
1624      gMC->Gsvolu("ITS2", "BOX ", idtmed[200], dits2, 3);   // detector layer 2
1625
1626      dits[0] = 3.701;
1627      dits[1] = 7.699;
1628      dits[2] = 4;
1629      dits[3] = 57.1;
1630      dits[4] = 99.9;  
1631      gMC->Gsvolu("I650", "TUBS", idtmed[254], dits, 5);  // was I150 in old geom.
1632
1633      dits[0] = 0;
1634      dits[1] = 0.5;
1635      dits[2] = 1.5;
1636      gMC->Gsvolu("I676", "TUBE", idtmed[274], dits, 3); // was I176 in old geom.
1637
1638      dits[0] = 0;
1639      dits[1] = 0.18;
1640      dits[2] = 0.8;
1641      gMC->Gsvolu("I673", "TUBE", idtmed[274], dits, 3); // was I173 in old geom.
1642
1643      dits[0] = 0;
1644      dits[1] = 0.18;
1645      dits[2] = 3;
1646      gMC->Gsvolu("I671", "TUBE", idtmed[274], dits, 3); // was I171 in old geom.
1647
1648      dits[0] = 0;
1649      dits[1] = 0.075;
1650      dits[2] = 0.8;
1651      gMC->Gsvolu("I669", "TUBE", idtmed[264], dits, 3); // was I169 in old geom.
1652
1653      dits[0] = 3.5;
1654      dits[1] = 5.6;
1655      dits[2] = 0.55;
1656      dits[3] = 0;
1657      dits[4] = 38;
1658      gMC->Gsvolu("I667", "TUBS", idtmed[263], dits, 5); // was I167 in old geom.
1659
1660      dits[0] = 6.6;
1661      dits[1] = 7.6;
1662      dits[2] = 0.5;
1663      dits[3] = 0;
1664      dits[4] = 9;
1665      gMC->Gsvolu("I666", "TUBS", idtmed[263], dits, 5); // was I166 in old geom.
1666
1667      dits[0] = 0.26;
1668      dits[1] = 0.32;
1669      dits[2] = 0.55;
1670      gMC->Gsvolu("I678", "TUBE", idtmed[263], dits, 3); // was I178 in old geom.
1671
1672      dits[0] = 0;
1673      dits[1] = 0.3;
1674      dits[2] = 1.5;
1675      gMC->Gsvolu("I677", "TUBE", idtmed[211], dits, 3); // was I177 in old geom.
1676
1677      dits[0] = 0.07;
1678      dits[1] = 0.125;
1679      dits[2] = 0.3;
1680      gMC->Gsvolu("I675", "TUBE", idtmed[263], dits, 3); // was I175 in old geom.
1681
1682      dits[0] = 0;
1683      dits[1] = 0.1;
1684      dits[2] = 0.8;
1685      gMC->Gsvolu("I674", "TUBE", idtmed[211], dits, 3); // was I174 in old geom.
1686
1687      dits[0] = 0;
1688      dits[1] = 0.1;
1689      dits[2] = 3;
1690      gMC->Gsvolu("I672", "TUBE", idtmed[211], dits, 3); // was I172 in old geom.
1691
1692      dits[0] = 0;
1693      dits[1] = 0.0746;
1694      dits[2] = 0.8;
1695      gMC->Gsvolu("I670", "TUBE", idtmed[211], dits, 3); // was I170 in old geom.
1696
1697      dits[0] = 3.7;
1698      dits[1] = 5.4;
1699      dits[2] = 0.35;
1700      dits[3] = 2;
1701      dits[4] = 36;
1702      gMC->Gsvolu("I668", "TUBS", idtmed[211], dits, 5); // was I168 in old geom.
1703
1704   }
1705
1706   // --- Define SDD volumes ------------------------------------------
1707
1708   
1709   cos30 = cos(30.*3.14159/180.);
1710   sin30 = sin(30.*3.14159/180.);
1711
1712   
1713   dits[0] = 0;
1714   dits[1] = 360;
1715   dits[2] = 6;
1716   dits[3] = -34.6;
1717   dits[4] = 23.495;
1718   dits[5] = 28.5;
1719   dits[6] = -27.35; 
1720   dits[7] = 23.495;
1721   dits[8] = 28.5;
1722   dits[9] = -27.35;  
1723   dits[10] = 14.595; 
1724   dits[11] = 28.5;
1725   dits[12] = 27.35;   
1726   dits[13] = 14.595;
1727   dits[14] = 28.5;
1728   dits[15] = 27.35;    
1729   dits[16] = 23.495;
1730   dits[17] = 28.5;
1731   dits[18] = 34.65;
1732   dits[19] = 23.495;
1733   dits[20] = 28.5;
1734   gMC->Gsvolu("IT34", "PCON", idtmed[209], dits, 21);  
1735
1736   // block of the SDD electronics and related ladder frame 
1737   I018dits[0] = 3.2;
1738   I018dits[1] = 2;
1739   I018dits[2] = 3.65;
1740   gMC->Gsvolu("I018", "BOX ", idtmed[209], I018dits, 3);  
1741
1742   // block of the SDD end ladder 
1743   I024dits[0] = 3.2;
1744   I024dits[1] = 2;
1745   I024dits[2] = 2.725;
1746   gMC->Gsvolu("I024", "BOX ", idtmed[209], I024dits, 3);  
1747
1748   // ladder frame of layer 3 - F.T. March,7-2001
1749   I047dits[0] = I018dits[0];
1750   I047dits[1] = I018dits[1];
1751   I047dits[2] = 6*I018dits[2] + 2*I024dits[2]; 
1752   gMC->Gsvolu("I047", "BOX ", idtmed[209], I047dits, 3);  
1753
1754   // ladder frame of layer 4 - F.T. March,7-2001
1755   I048dits[0] = I018dits[0];
1756   I048dits[1] = I018dits[1];
1757   I048dits[2] = 8*I018dits[2] + 2*I024dits[2]; 
1758   gMC->Gsvolu("I048", "BOX ", idtmed[209], I048dits, 3);  
1759
1760
1761   // global SDD volume (sensitive + insensitive) 
1762   I302dits[0] = 3.6250;
1763   I302dits[1] = 0.0150;
1764   I302dits[2] = 4.3794;
1765   gMC->Gsvolu("I302", "BOX ", idtmed[278], I302dits, 3);
1766
1767   // Like for I302 - F.T. March,7-2001
1768   I402dits[0] = 3.6250;
1769   I402dits[1] = 0.0150;
1770   I402dits[2] = 4.3794;
1771   gMC->Gsvolu("I402", "BOX ", idtmed[278], I402dits, 3);  
1772
1773   // SDD ladder of layer 3 - F.T. March,7-2001
1774   I004dits[0] = I302dits[0]+0.005;
1775   I004dits[1] = 2*I302dits[1]+Y_SDD_sep/2.;
1776   I004dits[2] = TMath::Abs(Z_SDD_lay3[0]);
1777   if (I004dits[2] < TMath::Abs(Z_SDD_lay3[5])) {
1778     I004dits[2] = TMath::Abs(Z_SDD_lay3[5]);
1779   }
1780   I004dits[2] = I004dits[2] + I302dits[2];
1781   gMC->Gsvolu("I004", "BOX ", idtmed[209], I004dits, 3);  
1782
1783   // SDD ladder of layer 4 - F.T. March,7-2001
1784   I005dits[0] = I402dits[0]+0.005;
1785   I005dits[1] = 2*I402dits[1]+Y_SDD_sep/2.;
1786   I005dits[2] = TMath::Abs(Z_SDD_lay4[0]);
1787   if (I005dits[2] < TMath::Abs(Z_SDD_lay4[7])) {
1788     I005dits[2] = TMath::Abs(Z_SDD_lay4[7]);
1789   }
1790   I005dits[2] = I005dits[2] + I402dits[2];
1791   gMC->Gsvolu("I005", "BOX ", idtmed[209], I005dits, 3);  
1792
1793
1794   // -- block of the SDD ladder foot and end ladder
1795
1796   // ladder foot mother volume
1797   I028dits[0] = 3.0000;
1798   I028dits[1] = 0.4000;
1799   I028dits[2] = 0.9000;
1800   gMC->Gsvolu("I028", "BOX ", idtmed[224], I028dits, 3);  
1801
1802   // positioning-box #1 at SDD end-ladder - F.T. March,7-2001
1803   I420dits[0] = 0.4500;
1804   I420dits[1] = 0.4000;
1805   I420dits[2] = 0.4500;
1806   gMC->Gsvolu("I420", "BOX ", idtmed[264], I420dits, 3);  
1807
1808   // positioning-box #2 at SDD end-ladder - F.T. March,7-2001
1809   I421dits[0] = 0.;
1810   I421dits[1] = 0.25;
1811   I421dits[2] = I420dits[1];
1812   gMC->Gsvolu("I421", "TUBE", idtmed[209], I421dits, 3);  
1813
1814   // reference ruby-sphere at SDD end-ladder - F.T. March,7-2001 
1815   I422dits[0] = 0.0000;
1816   I422dits[1] = 0.2000;
1817   I422dits[2] = 0.0000;
1818   I422dits[3] = 180.00;
1819   I422dits[4] = 0.0000;
1820   I422dits[5] = 360.00;
1821   gMC->Gsvolu("I422", "SPHE", idtmed[277], I422dits, 6);  
1822
1823   // support for ruby-sphere (I422) - F.T. March,7-2001
1824   I423dits[0] = 0.0000;
1825   I423dits[1] = 0.1000;
1826   I423dits[2] = (I420dits[1]-I422dits[1])/2.;
1827   gMC->Gsvolu("I423", "TUBE", idtmed[264], I423dits, 3);  
1828
1829   // passage for HV microcables - F.T. March,7-2001
1830   I424dits[0] = 1.5000;
1831   I424dits[1] = 0.1500;
1832   I424dits[2] = I421dits[2];
1833   gMC->Gsvolu("I424", "BOX ", idtmed[209], I424dits, 3);  
1834
1835   // HV microcables segment at the end ladder - F.T. March,7-2001
1836   I425dits[0] = 1.350000;
1837   I425dits[1] = 0.015250;
1838   I425dits[2] = I024dits[2];
1839   gMC->Gsvolu("I425", "BOX ", idtmed[279], I425dits, 3);  
1840
1841   // lower edge of SDD ladder frame at end-ladder - part 1
1842   dits[0] = 0.2;
1843   dits[1] = 0.1815;
1844   dits[2] = I024dits[2];
1845   dits[3] = 0.015;
1846   gMC->Gsvolu("I025", "TRD1", idtmed[208], dits, 4);  
1847
1848   // lower edge of SDD ladder frame at end-ladder - part 2
1849   dits[0] = 0.183;
1850   dits[1] = 0.165;
1851   dits[2] = I024dits[2];
1852   dits[3] = 0.015;
1853   gMC->Gsvolu("I026", "TRD1", idtmed[208], dits, 4);  
1854
1855   // new: for the 1st top rod of the structure 
1856   // at the end-ladder - F.T. March,7-2001
1857   I029dits[0] = 0.2;
1858   I029dits[1] = 0.1815;
1859   I029dits[2] = 1.0100;
1860   I029dits[3] = 0.015;
1861   gMC->Gsvolu("I029", "TRD1", idtmed[208], I029dits, 4);  
1862
1863   // new: for the 2nd top rod of the structure 
1864   // at the end-ladder - F.T. March,7-2001
1865   I030dits[0] = 0.1830;
1866   I030dits[1] = 0.1650;
1867   I030dits[2] = 1.0100;
1868   I030dits[3] = 0.0150;
1869   gMC->Gsvolu("I030", "TRD1", idtmed[208], I030dits, 4);  
1870
1871   // inox cooling tubes for the end ladder - F.T. March,7-2001
1872   I031dits[0] = 0.093;
1873   I031dits[1] = 0.1;
1874   I031dits[2] = I024dits[2];
1875   gMC->Gsvolu("I031", "TUBE", idtmed[264], I031dits, 3);  
1876
1877   // cooling water for the end ladder - F.T. March,7-2001
1878   I032dits[0] = 0;
1879   I032dits[1] = I031dits[0];
1880   I032dits[2] = I024dits[2];
1881   gMC->Gsvolu("I032", "TUBE", idtmed[211], I032dits, 3);  
1882
1883   // -- block of the SDD ladder frame holding the electronics
1884
1885   // edge of the ladder frame - part 1
1886   dits[0] = 0.2;
1887   dits[1] = 0.182;
1888   dits[2] = 3.65;
1889   dits[3] = 0.015;
1890   gMC->Gsvolu("I019", "TRD1", idtmed[208], dits, 4);  
1891
1892   // edge of the ladder frame - part 2
1893   dits[0] = 0.183;
1894   dits[1] = 0.165;
1895   dits[2] = 3.65;
1896   dits[3] = 0.015;
1897   gMC->Gsvolu("I020", "TRD1", idtmed[208], dits, 4);  
1898
1899   // inclined segments of the ladder frame
1900   dits[0] = 2.23;
1901   dits[1] = 2.1;
1902   dits[2] = 0.05;
1903   dits[3] = 0.03;
1904   gMC->Gsvolu("I021", "TRD1", idtmed[208], dits, 4);  
1905
1906   // horiz.segments of the ladders, normal to ladder edges
1907   dits[0] = 2.1;
1908   dits[1] = 2;
1909   dits[2] = 0.06;
1910   dits[3] = 0.04;
1911   gMC->Gsvolu("I022", "TRD1", idtmed[208], dits, 4);  
1912
1913   // horiz.segments of the ladders, at 45 deg. to ladder edges
1914   dits[0] = 2.615;
1915   dits[1] = 2.465;
1916   dits[2] = 0.06;
1917   dits[3] = 0.04;
1918   gMC->Gsvolu("I023", "TRD1", idtmed[208], dits, 4);  
1919
1920   // supports of the ceramic pins holding the detectors
1921   dits[0] = 0.3;
1922   dits[1] = 0.05;
1923   dits[2] = 0.15;
1924   gMC->Gsvolu("I033", "BOX ", idtmed[208], dits, 3);  
1925
1926   // ceramic pins holding the detectors
1927   dits[0] = 0;
1928   dits[1] = 0.05;
1929   dits[2] = 0.225;
1930   gMC->Gsvolu("I034", "TUBE", idtmed[277], dits, 3);  
1931
1932   // holders of cooling tubes
1933   I035dits[0] = 0.1;
1934   I035dits[1] = 0.15;
1935   I035dits[2] = 0.2;
1936   gMC->Gsvolu("I035", "TUBE", idtmed[208], I035dits, 3);
1937
1938   // top holders of microcables
1939   dits[0] = 0.2;
1940   dits[1] = 0.01;
1941   dits[2] = 0.05;
1942   gMC->Gsvolu("I036", "BOX ", idtmed[208], dits, 3);  
1943
1944   // inox cooling tubes - F.T. March,7-2001
1945   I037dits[0] = 0.093;
1946   I037dits[1] = 0.1;
1947   I037dits[2] = I018dits[2];
1948   gMC->Gsvolu("I037", "TUBE", idtmed[264], I037dits, 3);
1949
1950   // cooling water - F.T. March,7-2001
1951   I038dits[0] = 0;
1952   I038dits[1] = I037dits[0];
1953   I038dits[2] = I018dits[2];
1954   gMC->Gsvolu("I038", "TUBE", idtmed[211], I038dits, 3);  
1955
1956   // -- block of the SDD electronics (heat bridge, chips, hybrid, anode microcable)
1957
1958   // SDD heat bridge - F.T. March,7-2001
1959   I039dits[0] = 1.1000;
1960   I039dits[1] = 0.0087;
1961   I039dits[2] = 3.2500;
1962   gMC->Gsvolu("I039", "BOX ", idtmed[268], I039dits, 3);  
1963
1964   // SDD clip part 1
1965   dits[0] = 0.25;
1966   dits[1] = 0.01;
1967   dits[2] = I039dits[2];
1968   gMC->Gsvolu("I040", "BOX ", idtmed[268], dits, 3);  
1969
1970   // SDD clip part 2
1971   I041dits[0] = 0.1;
1972   I041dits[1] = 0.12;
1973   I041dits[2] = I039dits[2];
1974   I041dits[3] = 90;
1975   I041dits[4] = 320;
1976   gMC->Gsvolu("I041", "TUBS", idtmed[268], I041dits, 5);  
1977
1978
1979   // SDD PASCAL - F.T. March,7-2001
1980   I042dits[0] = 0.5000;
1981   I042dits[1] = 0.0175;
1982   I042dits[2] = 0.5000;
1983   gMC->Gsvolu("I042", "BOX ", idtmed[206], I042dits, 3);  
1984
1985   // SDD AMBRA - F.T. March,7-2001
1986   I043dits[0] = 0.3500;
1987   I043dits[1] = 0.0175;
1988   I043dits[2] = 0.5000;
1989   gMC->Gsvolu("I043", "BOX ", idtmed[206], I043dits, 3);  
1990
1991   // SDD capacitors - F.T. March,7-2001
1992   I051dits[0] = 0.1400;
1993   I051dits[1] = 0.0350;
1994   I051dits[2] = 0.0625;
1995   gMC->Gsvolu("I051", "BOX ", idtmed[276], I051dits, 3);  
1996
1997   // SDD hybrid circuit - F.T. March,7-2001
1998   I052dits[0] = 1.725000;
1999   I052dits[1] = 0.003743;
2000   I052dits[2] = I039dits[2];
2001   gMC->Gsvolu("I052", "BOX ", idtmed[281], I052dits, 3);
2002
2003   // SDD anode microcable : changed - F.T. March,7-2001
2004   I044dits[0] = I018dits[2];
2005   I044dits[1] = I039dits[2];
2006   I044dits[2] = 0.00084;
2007   I044dits[3] = (15.189149/(I044dits[0]+I044dits[1]))/2;
2008   gMC->Gsvolu("I044", "TRD1", idtmed[282], I044dits, 4);  
2009   volI044 = ((2*I044dits[0] + 2*I044dits[1]) * 2*I044dits[2])/2 * 2*I044dits[3];
2010
2011   // SDD electronics box - F.T. March,7-2001
2012   I050dits[1] = I039dits[1]+I052dits[1]+I051dits[1]+I044dits[2];
2013   I050dits[0] = I018dits[1]/cos(30.*3.14159/180.)-I050dits[1]*sin(30.*3.14159/180.);
2014   I050dits[2] = I018dits[2];
2015   gMC->Gsvolu("I050", "BOX ", idtmed[209], I050dits, 3);
2016
2017   // SDD sensitive volume
2018   dits[0] = 3.50850;
2019   dits[1] = 0.01499; // not 0.015 because it is included into I302 which is 0.015
2020   dits[2] = 3.76320;
2021   gMC->Gsvolu("ITS3", "BOX ", idtmed[200], dits, 3);  
2022
2023   // Like for ITS3 - F.T. March,7-2001
2024   dits[0] = 3.50850;
2025   dits[1] = 0.01499; // not 0.015 because it is included into I402 which is 0.015
2026   dits[2] = 3.76320;
2027   gMC->Gsvolu("ITS4", "BOX ", idtmed[200], dits, 3);  
2028
2029
2030   // --- Define SSD volumes ------------------------------------------
2031
2032     
2033   dits[0] = 0;
2034   dits[1] = 360;
2035   dits[2] = 6;
2036   dits[3] = -57.5;
2037   dits[4] = 43.5;
2038   dits[5] = 48;  
2039   dits[6] = -47.2; 
2040   dits[7] = 43.5;
2041   dits[8] = 48;  
2042   dits[9] = -47.2;  
2043   dits[10] = 36.7;
2044   dits[11] = 48;  
2045   dits[12] = 47.2;  
2046   dits[13] = 36.7;
2047   dits[14] = 48;  
2048   dits[15] = 47.2;  
2049   dits[16] = 43.5;
2050   dits[17] = 48;  
2051   dits[18] = 56.96;
2052   dits[19] = 43.5;
2053   dits[20] = 48;   
2054   gMC->Gsvolu("IT56", "PCON", idtmed[220], dits, 21);   
2055   
2056   dits[0] =  3.4;
2057   dits[1] = 1.955;
2058   dits[2] = 56.5; 
2059   gMC->Gsvolu("I570", "BOX ", idtmed[204], dits, 3);  
2060   
2061   dits[0] = 3.75;
2062   dits[1] = 0.045;
2063   dits[2] = 50.975;
2064   gMC->Gsvolu("I569", "BOX ", idtmed[204], dits, 3);  
2065   
2066   dits[0] = 3.4;
2067   dits[1] = 1.955;
2068   dits[2] = 47; 
2069   gMC->Gsvolu("I571", "BOX ", idtmed[204], dits, 3);  
2070   
2071   dits[0] = 3.75;
2072   dits[1] = 0.045;
2073   dits[2] = 43.3;  
2074   gMC->Gsvolu("I565", "BOX ", idtmed[204], dits, 3);  
2075   
2076   dits[0] = 3.4;
2077   dits[1] = 1.955;
2078   dits[2] = 3.15;
2079   gMC->Gsvolu("I553", "BOX ", idtmed[204], dits, 3);  
2080   
2081   dits[0] = 3.405;
2082   dits[1] = 1.955;
2083   dits[2] = 1.955;
2084   gMC->Gsvolu("I523", "BOX ", idtmed[204], dits, 3);  
2085   
2086   dits[0] = 3.75;
2087   dits[1] = 0.015;
2088   dits[2] = 2.1;
2089   gMC->Gsvolu("I566", "BOX ", idtmed[206], dits, 3); 
2090   
2091   dits[0] = 3.4;
2092   dits[1] = 1.955;
2093   dits[2] = 3.15;
2094   gMC->Gsvolu("I544", "BOX ", idtmed[204], dits, 3);  
2095   
2096   dits[0] = 3.41;
2097   dits[1] = 1.955;
2098   dits[2] = 1.955;
2099   gMC->Gsvolu("I516", "BOX ", idtmed[204], dits, 3);  
2100   
2101   dits[0] = 3.75;
2102   dits[1] = 0.015;
2103   dits[2] = 2.1;
2104   gMC->Gsvolu("I562", "BOX ", idtmed[206], dits, 3);   
2105   
2106   dits[0] = 0;
2107   dits[1] = 0.07;
2108   dits[2] = 3.15;
2109   gMC->Gsvolu("I559", "TUBE", idtmed[211], dits, 3);  
2110   
2111   dits[0] = 0.07;
2112   dits[1] = 0.1;
2113   dits[2] = 3.15;
2114   gMC->Gsvolu("I560", "TUBE", idtmed[210], dits, 3);  
2115   
2116   dits[0] = 0.225;
2117   dits[1] = 0.195;
2118   dits[2] = 3.15;
2119   dits[3] = 0.025;
2120   gMC->Gsvolu("I558", "TRD1", idtmed[203], dits, 4);  
2121   
2122   dits[0] = 0.25;
2123   dits[1] = 0.22;
2124   dits[2] = 3.15;
2125   dits[3] = 0.025;
2126   gMC->Gsvolu("I557", "TRD1", idtmed[203], dits, 4);  
2127   
2128   dits[0] = 2.17;
2129   dits[1] = 0.035;
2130   dits[2] = 0.05;
2131   gMC->Gsvolu("I556", "BOX ", idtmed[203], dits, 3);  
2132   
2133   dits[0] = 2 ;
2134   dits[1] = 0.035;
2135   dits[2] = 0.05;
2136   gMC->Gsvolu("I554", "BOX ", idtmed[203], dits, 3);  
2137   
2138   dits[0] = 2.675;
2139   dits[1] = 0.035;
2140   dits[2] = 0.05;
2141   gMC->Gsvolu("I555", "BOX ", idtmed[203], dits, 3); 
2142   
2143   dits[0] = 0.3;
2144   dits[1] = 0.15;
2145   dits[2] = 0.15;
2146   gMC->Gsvolu("I561", "BOX ", idtmed[203], dits, 3);  
2147   
2148   dits[0] = 0.025;
2149   dits[1] = 0.025;
2150   dits[2] = 0.05;
2151   gMC->Gsvolu("I519", "BOX ", idtmed[214], dits, 3);  
2152   
2153   dits[0] = 0.304;
2154   dits[1] = 0.0275;
2155   dits[2] = 0.432;
2156   gMC->Gsvolu("I521", "BOX ", idtmed[206], dits, 3);   
2157   
2158   dits[0] = 0.16;
2159   dits[1] = 0.08;
2160   dits[2] = 0.08;
2161   gMC->Gsvolu("I520", "BOX ", idtmed[214], dits, 3);  
2162   
2163   dits[0] = 3.4;
2164   dits[1] = 0.015;
2165   dits[2] = 0.525;
2166   gMC->Gsvolu("I518", "BOX ", idtmed[203], dits, 3);  
2167   
2168   dits[0] = 0.15;
2169   dits[1] = 0.105;
2170   dits[2] = 0.29;
2171   dits[3] = 0.08;
2172   gMC->Gsvolu("I522", "TRD1", idtmed[203], dits, 4);  
2173   
2174   dits[0] = 0.07;
2175   dits[1] = 0.1;
2176   dits[2] = 1.955;
2177   gMC->Gsvolu("I542", "TUBE", idtmed[210], dits, 3);  
2178   
2179   dits[0] = 0;
2180   dits[1] = 0.07;
2181   dits[2] = 1.955;
2182   gMC->Gsvolu("I541", "TUBE", idtmed[211], dits, 3);  
2183   
2184   dits[0] = 0.3;
2185   dits[1] = 0.15;
2186   dits[2] = 0.15;
2187   gMC->Gsvolu("I543", "BOX ", idtmed[203], dits, 3);  
2188   
2189   dits[0] = 0.25;
2190   dits[1] = 0.22;
2191   dits[2] = 1.955;
2192   dits[3] = 0.025;
2193   gMC->Gsvolu("I537", "TRD1", idtmed[203], dits, 4); 
2194   
2195   dits[0] = 0.225;
2196   dits[1] = 0.195;
2197   dits[2] = 1.955;
2198   dits[4] = 0.025;
2199   gMC->Gsvolu("I538", "TRD1", idtmed[203], dits, 4);  
2200   
2201   dits[0] = 2.17;
2202   dits[1] = 0.035;
2203   dits[2] = 0.05;
2204   gMC->Gsvolu("I536", "BOX ", idtmed[203], dits, 3);  
2205   
2206   dits[0] = 2.675;
2207   dits[1] = 0.035;
2208   dits[2] = 0.05;
2209   gMC->Gsvolu("I535", "BOX ", idtmed[203], dits, 3);   
2210   
2211   dits[0] = 2;
2212   dits[1] = 0.035;
2213   dits[2] = 0.05;
2214   gMC->Gsvolu("I534", "BOX ", idtmed[203], dits, 3);  
2215   
2216   dits[0] = 0;
2217   dits[1] = 0.05;
2218   dits[2] = 0.17;
2219   gMC->Gsvolu("I540", "TUBE", idtmed[203], dits, 3);  
2220   
2221   dits[0] = 0;
2222   dits[1] = 0.05;
2223   dits[2] = 0.205;
2224   gMC->Gsvolu("I539", "TUBE", idtmed[203], dits, 3);  
2225   
2226   dits[0] = 3.65;
2227   dits[1] = 0.015;
2228   dits[2] = 2;
2229   gMC->Gsvolu("ITS6", "BOX ", idtmed[200], dits, 3);  
2230   
2231   dits[0] = 0;
2232   dits[1] = 0.07;
2233   dits[2] = 3.15;
2234   gMC->Gsvolu("I550", "TUBE", idtmed[211], dits, 3);  
2235   
2236   dits[0] = 0.07;
2237   dits[1] = 0.1;
2238   dits[2] = 3.15;
2239   gMC->Gsvolu("I551", "TUBE", idtmed[210], dits, 3);  
2240   
2241   dits[0] = 0.225;
2242   dits[1] = 0.195;
2243   dits[2] = 3.15;
2244   dits[3] = 0.025;
2245   gMC->Gsvolu("I549", "TRD1", idtmed[203], dits, 4); 
2246   
2247   dits[0] = 0.25;
2248   dits[1] = 0.22;
2249   dits[2] = 3.15;
2250   dits[3] = 0.025;
2251   gMC->Gsvolu("I548", "TRD1", idtmed[203], dits, 4);  
2252   
2253   dits[0] = 2.17;
2254   dits[1] = 0.035;
2255   dits[2] = 0.05;
2256   gMC->Gsvolu("I547", "BOX ", idtmed[203], dits, 3);  
2257   
2258   dits[0] = 2;
2259   dits[1] = 0.035;
2260   dits[2] = 0.05;
2261   gMC->Gsvolu("I545", "BOX ", idtmed[203], dits, 3);   
2262   
2263   dits[0] = 2.675;
2264   dits[1] = 0.035;
2265   dits[2] = 0.05;
2266   gMC->Gsvolu("I546", "BOX ", idtmed[203], dits, 3);  
2267   
2268   dits[0] = 0.3;
2269   dits[1] = 0.15;
2270   dits[2] = 0.15;
2271   gMC->Gsvolu("I552", "BOX ", idtmed[203], dits, 3);  
2272   
2273   dits[0] = 0.304;
2274   dits[1] = 0.0275;
2275   dits[2] = 0.4322;
2276   gMC->Gsvolu("I515", "BOX ", idtmed[206], dits, 3);  
2277   
2278   dits[0] = 0.025;
2279   dits[1] = 0.025;
2280   dits[2] = 0.05;
2281   gMC->Gsvolu("I513", "BOX ", idtmed[214], dits, 3);  
2282   
2283   dits[0] = 0.16;
2284   dits[1] = 0.08;
2285   dits[2] = 0.08;
2286   gMC->Gsvolu("I514", "BOX ", idtmed[214], dits, 3);  
2287   
2288   dits[0] = 3.4;
2289   dits[1] = 0.015;
2290   dits[2] = 0.525;
2291   gMC->Gsvolu("I512", "BOX ", idtmed[203], dits, 3);  
2292   
2293   dits[0] = 0.225;
2294   dits[1] = 0.195;
2295   dits[2] = 1.955;
2296   dits[3] = 0.025;
2297   gMC->Gsvolu("I528", "TRD1", idtmed[203], dits, 4); 
2298   
2299   dits[0] = 0.25;
2300   dits[1] = 0.22;
2301   dits[2] = 1.955;
2302   dits[3] = 0.025;
2303   gMC->Gsvolu("I527", "TRD1", idtmed[203], dits, 4);  
2304   
2305   dits[0] = 2.17;
2306   dits[1] = 0.035;
2307   dits[2] = 0.05;
2308   gMC->Gsvolu("I526", "BOX ", idtmed[203], dits, 3);  
2309   
2310   dits[0] = 2.675;
2311   dits[1] = 0.035;
2312   dits[2] = 0.05;
2313   gMC->Gsvolu("I525", "BOX ", idtmed[203], dits, 3);  
2314    
2315   dits[0] = 2;
2316   dits[1] = 0.035;
2317   dits[2] = 0.05;
2318   gMC->Gsvolu("I524", "BOX ", idtmed[203], dits, 3);  
2319    
2320   dits[0] = 0;
2321   dits[1] = 0.05;
2322   dits[2] = 0.205;
2323   gMC->Gsvolu("I529", "TUBE", idtmed[203], dits, 3);  
2324    
2325   dits[0] = 0;
2326   dits[1] = 0.05;
2327   dits[2] = 0.17;
2328   gMC->Gsvolu("I530", "TUBE", idtmed[203], dits, 3);  
2329    
2330   dits[0] = 0.15;
2331   dits[1] = 0.105;
2332   dits[2] = 0.29;
2333   dits[3] = 0.08;
2334   gMC->Gsvolu("I517", "TRD1", idtmed[203], dits, 4);  
2335   
2336   dits[0] = 0;
2337   dits[1] = 0.07;
2338   dits[2] = 1.955;
2339   gMC->Gsvolu("I531", "TUBE", idtmed[211], dits, 3);  
2340      
2341   dits[0] = 0.07;
2342   dits[1] = 0.1;
2343   dits[2] = 1.955;
2344   gMC->Gsvolu("I532", "TUBE", idtmed[210], dits, 3);  
2345  
2346   dits[0] = 0.3;
2347   dits[1] = 0.15;
2348   dits[2] = 0.15;
2349   gMC->Gsvolu("I533", "BOX ", idtmed[203], dits, 3);  
2350   
2351   dits[0] = 3.65;
2352   dits[1] = 0.015;
2353   dits[2] = 2;
2354   gMC->Gsvolu("ITS5", "BOX ", idtmed[200], dits, 3);  
2355
2356
2357   // --- Define volumes of shield of SPD ----------------
2358
2359
2360   dits[0] = 8.37;
2361   dits[1] = 9.93;
2362   dits[2] = 25;
2363   gMC->Gsvolu("IC01", "TUBE", idtmed[289], dits, 3);   
2364
2365   dits[0] = 8.3;
2366   dits[1] = 10;
2367   dits[2] = 17.5/2.;
2368   gMC->Gsvolu("IC02", "TUBE", idtmed[289], dits, 3);    
2369   
2370  
2371    // --- Define volumes of first cylinder between SPD and SDD --------------
2372   
2373     
2374   dits[0] = (21.-0.128)/2.;      
2375   dits[1] = 21.;
2376   dits[2] = 39.4;      
2377   gMC->Gsvolu("ICY1", "TUBE", idtmed[208], dits, 3);
2378          
2379    // --- Define volumes of second cylinder between SDD and SSD --------------
2380
2381   dits[0] = (59.5-0.128)/2.;      
2382   dits[1] = 59.5/2.;
2383   dits[2] = 56.2;      // deve essere 57
2384   gMC->Gsvolu("ICY2", "TUBE", idtmed[208], dits, 3);
2385
2386   // --- Define volumes of SDD cone ---------------------------------- 
2387
2388   dits[0] = 0;
2389   dits[1] = 360;
2390   dits[2] = 12;
2391   dits[3] = -59.7;
2392   dits[4] = 27;
2393   dits[5] = 28;
2394   dits[6] = -42.7;
2395   dits[7] = 10;
2396   dits[8] = 28;
2397   dits[9] = -34.65;
2398   dits[10] = 10;
2399   dits[11] = 28;
2400   dits[12] = -34.65;
2401   dits[13] = 10;
2402   dits[14] = 23.495;
2403   dits[15] = -23.7;
2404   dits[16] = 10;
2405   dits[17] = 23.495;
2406   dits[18] = -23.7;
2407   dits[19] = 10;
2408   dits[20] = 14.595;
2409   dits[21] = 23.7;
2410   dits[22] = 10;
2411   dits[23] = 14.595;
2412   dits[24] = 23.7;
2413   dits[25] = 10;
2414   dits[26] = 23.495;
2415   dits[27] = 34.65;
2416   dits[28] = 10;
2417   dits[29] = 23.495;
2418   dits[30] = 34.65;
2419   dits[31] = 10;
2420   dits[32] = 28;
2421   dits[33] = 42.6263;
2422   dits[34] = 10;
2423   dits[35] = 28;
2424   dits[36] = 59.7;
2425   dits[37] = 27.2637;
2426   dits[38] = 28;             
2427   gMC->Gsvolu("IS02", "PCON", idtmed[204], dits, 39);
2428   
2429   dits[0] = 0;
2430   dits[1] = 360;
2431   dits[2] = 6;
2432   dits[3] = 39.4;
2433   dits[4] = 10;    
2434   dits[5] = 10.25;      
2435   dits[6] = 40.66;
2436   dits[7] = 10;
2437   dits[8] = 13.96;
2438   dits[9] = 40.66;
2439   dits[10] = 12.1781;
2440   dits[11] = 13.96;
2441   dits[12] = 54.7;
2442   dits[13] = 26.2181;
2443   dits[14] = 28;
2444   dits[15] = 55.2219;
2445   dits[16] = 27.7;
2446   dits[17] = 28;
2447   dits[18] = 57.4;
2448   dits[19] = 27.7;
2449   dits[20] = 29.5;       
2450   gMC->Gsvolu("I093", "PCON", idtmed[272], dits, 21);  // SDD cone
2451
2452   dits[0] = 0;
2453   dits[1] = 50;
2454   dits[2] = 3;
2455   dits[3] = 23.7;  
2456   dits[4] = 14;
2457   dits[5] = 18.75;
2458   dits[6] = 46.7-3;
2459   dits[7] = 14;
2460   dits[8] = 18.75;
2461   dits[9] = 51.45-3;
2462   dits[10] = 18.75;
2463   dits[11] = 18.75;
2464   gMC->Gsvolu("I099", "PCON", idtmed[204], dits, 12); // SDD 3 cone hole
2465
2466   dits[0] = 0;
2467   dits[1] = 25;
2468   dits[2] = 3;
2469   dits[3] = 34.65;
2470   dits[4] = 23.4;
2471   dits[5] = 26.4;
2472   dits[6] = 56.1-3;
2473   dits[7] = 23.4;
2474   dits[8] = 26.4;
2475   dits[9] = 59.1-3;
2476   dits[10] = 26.4;
2477   dits[11] = 26.4;
2478   gMC->Gsvolu("I200", "PCON", idtmed[204], dits, 12); // SDD 4 cone hole
2479
2480   dits[0] = 10.0;
2481   dits[1] = 10.5;
2482   dits[2] = 0.25;
2483   gMC->Gsvolu("I090", "TUBE", idtmed[224], dits, 3);  // SDD cylinder flange
2484
2485   dits[0] = 21.95;
2486   dits[1] = 22.95;    
2487   dits[2] = 1;
2488   gMC->Gsvolu("I098", "TUBE", idtmed[283], dits, 3);    // ladder support on layer 4
2489
2490   dits[0] = 13.1;    
2491   dits[1] = 14.1;    
2492   dits[2] = 1;
2493   gMC->Gsvolu("I097", "TUBE", idtmed[283], dits, 3);    // ladder support on layer 3
2494
2495   dits[0] = 1;
2496   dits[1] = 1;
2497   dits[2] = 7.74;
2498   gMC->Gsvolu("I202", "BOX ", idtmed[272], dits, 3);
2499
2500   dits[0] = 1;
2501   dits[1] = 1;
2502   dits[2] = 9.14;
2503   gMC->Gsvolu("I203", "BOX ", idtmed[272], dits, 3);
2504
2505   dits[0] = 21.95;
2506   dits[1] = 22.95;
2507   dits[2] = 1;
2508   gMC->Gsvolu("I095", "TUBE", idtmed[224], dits, 3);
2509
2510   dits[0] = 3;
2511   dits[1] = 2.7;
2512   dits[2] = 1;
2513   dits[3] = 0.63;
2514   gMC->Gsvolu("I096", "TRD1", idtmed[264], dits, 4);
2515
2516   dits[0] = 13.1;
2517   dits[1] = 14.1;
2518   dits[2] = 1;
2519   gMC->Gsvolu("I094", "TUBE", idtmed[224], dits, 3);
2520   
2521   
2522   // --- Define volumes of SSD cone ----------------------------------    
2523             
2524
2525   dits[0] = 0;
2526   dits[1] = 360;
2527   dits[2] = 12;
2528   dits[3] = -zmax;
2529   dits[4] = 46;         
2530   dits[5] = 49.25;       
2531   dits[6] = -61.2;
2532   dits[7] = 28.5;
2533   dits[8] = 49.25;       
2534   dits[9] = -57.5;
2535   dits[10] = 28.5;
2536   dits[11] = 49.25;      
2537   dits[12] = -57.5;
2538   dits[13] = 28.5;
2539   dits[14] = 43.5;
2540   dits[15] = -49.2;
2541   dits[16] = 28.5;
2542   dits[17] = 43.5;
2543   dits[18] = -49.2;
2544   dits[19] = 28.5;
2545   dits[20] = 36.85;
2546   dits[21] = 50.6;
2547   dits[22] = 28.5;
2548   dits[23] = 36.85;
2549   dits[24] = 50.6;
2550   dits[25] = 28.5;
2551   dits[26] = 43.5;
2552   dits[27] = 57.5;
2553   dits[28] = 28.5;
2554   dits[29] = 43.5;
2555   dits[30] = 57.5;
2556   dits[31] = 28.5;
2557   dits[32] = 49.25;      
2558   dits[33] = 61.2;
2559   dits[34] = 28.5;
2560   dits[35] = 49.25;      
2561   dits[36] = zmax;
2562   dits[37] = 46;      
2563   dits[38] = 49.25;      
2564   gMC->Gsvolu("IS01", "PCON", idtmed[204], dits, 39);   // SSD cone mother volume
2565   
2566   dits[0] = 0;
2567   dits[1] = 360;
2568   dits[2] = 6;
2569   dits[3] = -zmax;  
2570   dits[4] = 47.75;  
2571   dits[5] = 49.25;  
2572   dits[6] = -zmax+2.;  
2573   dits[7] = 47.75;  
2574   dits[8] = 49.25;   
2575   dits[9] = -71.2819;
2576   dits[10] = 46.75;   
2577   dits[11] = 49.0319;
2578   dits[12] = -57.25;   // was 58.5 
2579   dits[13] = 32.9681;
2580   dits[14] = 34.75;
2581   dits[15] = -57.25;  // was 58.5   
2582   dits[16] = 30;
2583   dits[17] = 34.75;
2584   dits[18] = -55.75;  // was 57 
2585   dits[19] = 30;     
2586   dits[20] = 32.25;   // was 31.5 
2587   gMC->Gsvolu("I212", "PCON", idtmed[272], dits, 21);  // SSD cone
2588   
2589   dits[0] = 28.75;          
2590   dits[1] = 29.75;   
2591   dits[2] = 0.5;
2592   gMC->Gsvolu("I211", "TUBE", idtmed[224], dits, 3);   // SSD cylinder flange
2593   
2594   dits[0] = 35.8;   
2595   dits[1] = 36.8;   
2596   dits[2] = 1;
2597   gMC->Gsvolu("I217", "TUBE", idtmed[283], dits, 3);   // ladder support on layer 5 
2598   
2599   dits[0] = 41.4;  
2600   dits[1] = 42.4;  
2601   dits[2] = 1;
2602   gMC->Gsvolu("I219", "TUBE", idtmed[283], dits, 3);   // ladder support on layer 6
2603         
2604   dits[0] = 42.05+5.;       
2605   dits[1] = 42.55+5.;     
2606   dits[2] = 1.25;
2607   gMC->Gsvolu("I214", "TUBE", idtmed[224], dits, 3);   // layer 6 electronic support
2608                                                        // this will change after PPR
2609   dits[0] = 37.05+5.;   
2610   dits[1] = 37.55+5.;   
2611   dits[2] = 1.25;
2612   gMC->Gsvolu("I213", "TUBE", idtmed[224], dits, 3);   // layer 5 electronic support
2613                                                        // this will change after PPR
2614   dits[0] = 0;
2615   dits[1] = 25;
2616   dits[2] = 5;
2617   dits[3] = -zmax+3;
2618   dits[4] = 45.5;
2619   dits[5] = 45.5;
2620   dits[6] = -69.7+3;
2621   dits[7] = 37;
2622   dits[8] = 45.5;
2623   dits[9] = -68.5+3;
2624   dits[10] = 37;
2625   dits[11] = 45.5;
2626   dits[12] = -68.5+4.8;  
2627   dits[13] = 37;
2628   dits[14] = 45.5; 
2629   dits[15] = -63.5+4.8;
2630   dits[16] = 37;
2631   dits[17] = 45.5;   
2632   gMC->Gsvolu("I215", "PCON", idtmed[204], dits, 18);  // SSD cone hole 
2633  
2634   dits[0] = 0;
2635   dits[1] = 3.2;
2636   dits[2] = 9;
2637   dits[3] = -14;
2638   dits[4] = 30.5;
2639   dits[5] = 33.5;
2640   dits[6] = -9.85;
2641   dits[7] = 30.5;
2642   dits[8] = 33.5;
2643   dits[9] = -9.85;
2644   dits[10] = 30.5;
2645   dits[11] = 43.45;
2646   dits[12] = -7.85;
2647   dits[13] = 30.5;
2648   dits[14] = 43.45;
2649   dits[15] = -7.85;
2650   dits[16] = 30.5;
2651   dits[17] = 36.5;
2652   dits[18] = -7;
2653   dits[19] = 30.5;
2654   dits[20] = 36.5;
2655   dits[21] = -4;
2656   dits[22] = 33.0173;
2657   dits[23] = 36.5;
2658   dits[24] = -4;
2659   dits[25] = 33.0173;
2660   dits[26] = 36.80;
2661   dits[27] = -2;
2662   dits[28] = 34.6955;
2663   dits[29] = 36.80;
2664   gMC->Gsvolu("I216", "PCON", idtmed[272], dits, 30); // supports (1-6) of the ladders
2665        
2666        
2667   // --- Place SPD (option 'a') volumes into their mother volume IT12
2668   
2669   // SPD - option 'a' 
2670   // (this is NOT the default)
2671
2672   if (option == 1) {
2673
2674      gMC->Gspos("I12A",5,"IT12",0.0,0.0,0.0,idrotm[238],"MANY");
2675      gMC->Gspos("I12A",6,"IT12",0.0,0.0,0.0,idrotm[236],"MANY");
2676      gMC->Gspos("I12A",7,"IT12",0.0,0.0,0.0,idrotm[239],"MANY");
2677      gMC->Gspos("I12A",8,"IT12",0.0,0.0,0.0,idrotm[233],"MANY");
2678      gMC->Gspos("I12A",9,"IT12",0.0,0.0,0.0,idrotm[240],"MANY");
2679      gMC->Gspos("I12A",10,"IT12",0.0,0.0,0.0,idrotm[241],"MANY");
2680      gMC->Gspos("I12A",2,"IT12",0.0,0.0,0.0,idrotm[242],"MANY");
2681      gMC->Gspos("I12A",3,"IT12",0.0,0.0,0.0,idrotm[234],"MANY");
2682      gMC->Gspos("I12A",4,"IT12",0.0,0.0,0.0,idrotm[243],"MANY");
2683      gMC->Gspos("I12A",1,"IT12",0.0,0.0,0.0,0,"MANY");
2684      deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);  // see definition of idrotm[244]
2685           deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);  // see definition of idrotm[244]
2686      gMC->Gspos("I10A",2,"I12A",0.203+deltax,3.8206+deltay,0.0,idrotm[244],"ONLY");       
2687      deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);  // see definition of idrotm[245]
2688           deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);  // see definition of idrotm[245]  
2689      gMC->Gspos("I10A",1,"I12A",1.4531+deltax,3.8152+deltay,0.0,idrotm[245],"ONLY");
2690      deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);  // see definition of idrotm[246]
2691           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);  // see definition of idrotm[246]  
2692      gMC->Gspos("I20A",1,"I12A",3.0174+deltax,6.5143+deltay,0.0,idrotm[246],"ONLY");
2693      deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);  // see definition of idrotm[247]
2694           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);  // see definition of idrotm[247] 
2695      gMC->Gspos("I20A",2,"I12A",1.9612+deltax,6.9062+deltay,0.0,idrotm[247],"ONLY");
2696      deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);  // see definition of idrotm[248]
2697           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);  // see definition of idrotm[248] 
2698      gMC->Gspos("I20A",3,"I12A",0.8567+deltax,7.1279+deltay,0.0,idrotm[248],"ONLY");
2699      deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);  // see definition of idrotm[249]
2700           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);  // see definition of idrotm[249] 
2701      gMC->Gspos("I20A",4,"I12A",-0.2689+deltax,7.1742+deltay,0.0,idrotm[249],"ONLY");
2702      gMC->Gspos("I123",2,"I12A",-0.2978,5.5196,0.0,idrotm[214],"ONLY");
2703      gMC->Gspos("I121",2,"I12A",-0.2385,4.1518,0.0,idrotm[213],"ONLY");
2704      gMC->Gspos("I122",2,"I12A",-0.2968,4.0207,0.0,idrotm[212],"ONLY");
2705      gMC->Gspos("I120",2,"I12A",-0.3672,3.9056,0.0,0,"ONLY");
2706      gMC->Gspos("I144",1,"I12A",-0.2538,3.8556,0.0,0,"ONLY");
2707      gMC->Gspos("I113",3,"I12A",0.1095,3.9056,0.0,0,"ONLY");
2708      gMC->Gspos("I143",1,"I12A",0.4365,3.8556,0.0,idrotm[236],"ONLY");
2709      gMC->Gspos("I142",1,"I12A",0.5136,3.9056,0.0,idrotm[235],"ONLY");
2710      gMC->Gspos("I141",1,"I12A",0.5636,3.9752,0.0,idrotm[201],"ONLY");
2711      gMC->Gspos("I140",1,"I12A",0.6336,4.0447,0.0,idrotm[234],"ONLY");
2712      gMC->Gspos("I139",1,"I12A",0.8297,4.0545,0.0,idrotm[207],"ONLY");
2713      gMC->Gspos("I113",5,"I12A",1.2575,3.9681,0.0,idrotm[207],"ONLY");
2714      gMC->Gspos("I138",1,"I12A",1.66,3.7848,0.0,idrotm[207],"ONLY");
2715      gMC->Gspos("I137",1,"I12A",1.8556,3.7738,0.0,idrotm[233],"ONLY");
2716      gMC->Gspos("I136",1,"I12A",2.6224,4.874,0.0,idrotm[232],"ONLY");
2717      gMC->Gspos("I135",1,"I12A",3.2967,6.0337,0.0,idrotm[231],"ONLY");
2718      gMC->Gspos("I134",1,"I12A",3.266,6.1636,0.0,idrotm[230],"ONLY");
2719      gMC->Gspos("I113",1,"I12A",2.9903,6.4144,0.0,idrotm[211],"ONLY");
2720      gMC->Gspos("I133",3,"I12A",2.7631,6.7627,0.0,idrotm[230],"ONLY");
2721      gMC->Gspos("I132",3,"I12A",2.62,6.8555,0.0,idrotm[229],"ONLY");
2722      gMC->Gspos("I131",3,"I12A",2.648,6.6023,0.0,idrotm[228],"ONLY");
2723      gMC->Gspos("I130",3,"I12A",2.6569,6.3431,0.0,idrotm[227],"ONLY");
2724      gMC->Gspos("I129",3,"I12A",2.3906,6.4819,0.0,idrotm[226],"ONLY");
2725      gMC->Gspos("I113",2,"I12A",1.9488,6.7998,0.0,idrotm[210],"ONLY");
2726      gMC->Gspos("I133",2,"I12A",1.6699,7.1085,0.0,idrotm[226],"ONLY");
2727      gMC->Gspos("I132",2,"I12A",1.5142,7.1777,0.0,idrotm[225],"ONLY");
2728      gMC->Gspos("I131",2,"I12A",1.5814,6.932,0.0,idrotm[224],"ONLY");
2729      gMC->Gspos("I130",2,"I12A",1.6308,6.6774,0.0,idrotm[223],"ONLY");
2730      gMC->Gspos("I129",2,"I12A",1.346,6.7728,0.0,idrotm[222],"ONLY");
2731      gMC->Gspos("I113",6,"I12A",0.8599,7.0176,0.0,idrotm[209],"ONLY");
2732      gMC->Gspos("I133",1,"I12A",0.5362,7.2789,0.0,idrotm[222],"ONLY");
2733      gMC->Gspos("I132",1,"I12A",0.3715,7.3228,0.0,idrotm[221],"ONLY");
2734      gMC->Gspos("I131",1,"I12A",0.4763,7.0907,0.0,idrotm[220],"ONLY");
2735      gMC->Gspos("I130",1,"I12A",0.5649,6.8469,0.0,idrotm[219],"ONLY");
2736      gMC->Gspos("I129",1,"I12A",0.2688,6.8966,0.0,idrotm[218],"ONLY");
2737      gMC->Gspos("I113",4,"I12A",-0.2497,7.0624,0.0,idrotm[208],"ONLY");
2738      gMC->Gspos("I128",1,"I12A",-0.6103,7.2698,0.0,idrotm[218],"ONLY");
2739      gMC->Gspos("I126",2,"I12A",-0.7799,7.2874,0.0,idrotm[217],"ONLY");
2740      gMC->Gspos("I125",2,"I12A",-0.6315,7.0883,0.0,idrotm[216],"ONLY");
2741      gMC->Gspos("I124",2,"I12A",-0.4965,6.8742,0.0,idrotm[215],"ONLY");
2742      gMC->Gspos("I103",3,"I10A",-0.05,-di10a[1]+2.*di104[1]+di103[1],-3.536,idrotm[237],"ONLY");
2743      gMC->Gspos("I103",4,"I10A",-0.05,-di10a[1]+2.*di104[1]+di103[1],-10.708,idrotm[237],"ONLY");
2744      gMC->Gspos("I103",1,"I10A",-0.05,-di10a[1]+2.*di104[1]+di103[1],10.708,0,"ONLY");
2745      gMC->Gspos("I103",2,"I10A",-0.05,-di10a[1]+2.*di104[1]+di103[1],3.536,0,"ONLY");
2746      gMC->Gspos("I105",1,"I10A",-0.05,0.01,-16.844,idrotm[237],"ONLY");
2747      gMC->Gspos("I105",2,"I10A",-0.05,0.01,16.844,0,"ONLY");
2748      gMC->Gspos("I104",1,"I10A",0.0,-di10a[1]+di104[1],0.0,0,"ONLY");
2749      gMC->Gspos("I1D3",3,"I20A",-0.05,-di20a[1]+2.*di104[1]+di1d3[1],-3.536,idrotm[237],"ONLY");
2750      gMC->Gspos("I1D3",4,"I20A",-0.05,-di20a[1]+2.*di104[1]+di1d3[1],-10.708,idrotm[237],"ONLY");
2751      gMC->Gspos("I1D3",1,"I20A",-0.05,-di20a[1]+2.*di104[1]+di1d3[1],10.708,0,"ONLY");
2752      gMC->Gspos("I1D3",2,"I20A",-0.05,-di20a[1]+2.*di104[1]+di1d3[1],3.536,0,"ONLY");
2753      gMC->Gspos("I105",3,"I20A",-0.05,0.01,-16.844,idrotm[237],"ONLY");
2754      gMC->Gspos("I105",4,"I20A",-0.05,0.01,16.844,0,"ONLY");
2755      gMC->Gspos("I104",2,"I20A",0.0,-di20a[1]+di104[1],0.0,0,"ONLY");
2756      gMC->Gspos("I112",2,"I113",0.25,0.02,0.0,idrotm[206],"ONLY");
2757      gMC->Gspos("I111",2,"I113",0.1318,-0.0008,0.0,idrotm[205],"ONLY");
2758      gMC->Gspos("I118",1,"I113",0.0,-0.0454,0.0,0,"ONLY");
2759      gMC->Gspos("I110",1,"I113",0.0,0.0492,0.0,0,"ONLY");
2760      gMC->Gspos("I114",1,"I113",0.063,0.0042,0.0,idrotm[202],"ONLY");
2761      gMC->Gspos("I115",1,"I113",0.063,0.0042,0.0,idrotm[202],"ONLY");
2762      gMC->Gspos("I115",2,"I113",-0.063,0.0042,0.0,idrotm[201],"ONLY");
2763      gMC->Gspos("I114",2,"I113",-0.063,0.0042,0.0,idrotm[201],"ONLY");
2764      gMC->Gspos("I116",1,"I113",0.0,0.0042,0.0,0,"ONLY");
2765      gMC->Gspos("I111",1,"I113",-0.1318,-0.0008,0.0,idrotm[204],"ONLY");
2766      gMC->Gspos("I112",1,"I113",-0.25,0.02,0.0,idrotm[203],"ONLY");
2767      gMC->Gspos("I101",1,"I103",-0.088,ddet1,0.0,0,"ONLY");
2768      gMC->Gspos("I102",1,"I103",0.0,-dchip1,-2.8,0,"ONLY");
2769      gMC->Gspos("I102",2,"I103",0.0,-dchip1,-1.4,0,"ONLY");
2770      gMC->Gspos("I102",3,"I103",0.0,-dchip1,0.0,0,"ONLY");
2771      gMC->Gspos("I102",4,"I103",0.0,-dchip1,1.4,0,"ONLY");
2772      gMC->Gspos("I102",5,"I103",0.0,-dchip1,2.8,0,"ONLY");
2773      gMC->Gspos("I1D1",1,"I1D3",-0.088,ddet2,0.0,0,"ONLY");
2774      gMC->Gspos("I1D2",1,"I1D3",0.0,-dchip2,-2.8,0,"ONLY");
2775      gMC->Gspos("I1D2",2,"I1D3",0.0,-dchip2,-1.4,0,"ONLY");
2776      gMC->Gspos("I1D2",3,"I1D3",0.0,-dchip2,0.0,0,"ONLY");
2777      gMC->Gspos("I1D2",4,"I1D3",0.0,-dchip2,1.4,0,"ONLY");
2778      gMC->Gspos("I1D2",5,"I1D3",0.0,-dchip2,2.8,0,"ONLY");
2779      gMC->Gspos("I117",1,"I116",0.0,0.0,0.0,0,"ONLY");
2780      gMC->Gspos("ITS1",1,"I101",0.0,0.0,0.0,0,"ONLY");
2781      gMC->Gspos("ITS2",1,"I1D1",0.0,0.0,0.0,0,"ONLY");
2782      gMC->Gspos("I650",16,"IT12",0.0,0.0,22.0,idrotm[1104],"MANY");
2783      gMC->Gspos("I650",20,"IT12",0.0,0.0,22.0,idrotm[1130],"MANY");
2784      gMC->Gspos("I650",18,"IT12",0.0,0.0,22.0,idrotm[1117],"MANY");
2785      gMC->Gspos("I650",1,"IT12",0.0,0.0,22.0,0,"MANY");
2786      gMC->Gspos("I650",4,"IT12",0.0,0.0,22.0,idrotm[1106],"MANY");
2787      gMC->Gspos("I650",6,"IT12",0.0,0.0,22.0,idrotm[1039],"MANY");
2788      gMC->Gspos("I650",8,"IT12",0.0,0.0,22.0,idrotm[1107],"MANY");
2789      gMC->Gspos("I650",10,"IT12",0.0,0.0,22.0,idrotm[1065],"MANY");
2790      gMC->Gspos("I650",12,"IT12",0.0,0.0,22.0,idrotm[1078],"MANY");
2791      gMC->Gspos("I650",14,"IT12",0.0,0.0,22.0,idrotm[1091],"MANY");
2792      gMC->Gspos("I650",19,"IT12",0.0,0.0,-22.0,idrotm[1108],"MANY");
2793      gMC->Gspos("I650",2,"IT12",0.0,0.0,-22.0,idrotm[1109],"MANY");
2794      gMC->Gspos("I650",3,"IT12",0.0,0.0,-22.0,idrotm[1110],"MANY");
2795      gMC->Gspos("I650",5,"IT12",0.0,0.0,-22.0,idrotm[1111],"MANY");
2796      gMC->Gspos("I650",7,"IT12",0.0,0.0,-22.0,idrotm[1112],"MANY");
2797      gMC->Gspos("I650",9,"IT12",0.0,0.0,-22.0,idrotm[1113],"MANY");
2798      gMC->Gspos("I650",11,"IT12",0.0,0.0,-22.0,idrotm[1114],"MANY");
2799      gMC->Gspos("I650",13,"IT12",0.0,0.0,-22.0,idrotm[1115],"MANY");
2800      gMC->Gspos("I650",15,"IT12",0.0,0.0,-22.0,idrotm[1116],"MANY");
2801      gMC->Gspos("I650",17,"IT12",0.0,0.0,-22.0,idrotm[1118],"MANY");
2802      gMC->Gspos("I666",1,"I650",0.0,0.0,0.25,idrotm[1003],"MANY");
2803      gMC->Gspos("I667",1,"I650",0.1102,0.9945,0.45,idrotm[1088],"ONLY");
2804      gMC->Gspos("I669",3,"I650",0.1883,4.0372,-3.2,0,"ONLY");
2805      gMC->Gspos("I671",3,"I650",0.1883,4.0372,0.6,0,"ONLY");
2806      gMC->Gspos("I669",2,"I650",1.3343,4.0609,-3.2,0,"ONLY");
2807      gMC->Gspos("I671",2,"I650",1.3343,4.0609,0.6,0,"ONLY");
2808      gMC->Gspos("I669",6,"I650",2.9567,6.1959,-3.2,idrotm[1089],"ONLY");
2809      gMC->Gspos("I671",6,"I650",2.9567,6.1959,0.6,idrotm[1089],"ONLY");
2810      gMC->Gspos("I669",5,"I650",1.9511,6.5822,-3.2,idrotm[1011],"ONLY");
2811      gMC->Gspos("I671",5,"I650",1.9511,6.5822,0.6,idrotm[1011],"ONLY");
2812      gMC->Gspos("I669",4,"I650",0.8974,6.8064,-3.2,idrotm[1090],"ONLY");
2813      gMC->Gspos("I671",4,"I650",0.8974,6.8064,0.6,idrotm[1090],"ONLY");
2814      gMC->Gspos("I669",1,"I650",-0.1784,6.863,-3.2,0,"ONLY");
2815      gMC->Gspos("I671",1,"I650",-0.1784,6.863,0.6,0,"ONLY");
2816      gMC->Gspos("I673",1,"I650",0.2173,4.8037,1.8,0,"ONLY");
2817      gMC->Gspos("I673",6,"I650",1.5093,4.5605,1.8,0,"ONLY");
2818      gMC->Gspos("I673",4,"I650",-0.173,6.2531,1.8,idrotm[1092],"ONLY");
2819      gMC->Gspos("I673",3,"I650",0.8073,6.2032,1.8,idrotm[1093],"ONLY");
2820      gMC->Gspos("I673",2,"I650",1.7678,6.0005,1.8,idrotm[1094],"ONLY");
2821      gMC->Gspos("I673",5,"I650",2.6847,5.6501,1.8,0,"ONLY");
2822      gMC->Gspos("I676",2,"I650",1.7618,5.2269,2.5,0,"ONLY");
2823      gMC->Gspos("I676",1,"I650",0.4018,5.5869,2.5,0,"ONLY");
2824      gMC->Gspos("I668",1,"I667",0.0,0.0,0.0,0,"ONLY");
2825      gMC->Gspos("I670",1,"I669",0.0,0.0,0.0,0,"ONLY");
2826      gMC->Gspos("I672",1,"I671",0.0,0.0,0.0,0,"ONLY");
2827      gMC->Gspos("I674",1,"I673",0.0,0.0,0.0,0,"MANY");
2828      gMC->Gspos("I675",1,"I673",0.0,0.0,-0.5,0,"ONLY");
2829      gMC->Gspos("I677",1,"I676",0.0,0.0,0.0,0,"MANY");
2830      gMC->Gspos("I678",1,"I676",0.0,0.0,-0.95,0,"ONLY");    
2831
2832   }
2833
2834
2835   // --- Place SPD (option 'b') volumes into their mother volume IT12
2836   
2837   // SPD - option 'b' 
2838   // (this is the default)
2839
2840   if (option == 2) {
2841
2842      gMC->Gspos("I12B",1,"IT12",0.0,0.0,0.0,0,"MANY");
2843      gMC->Gspos("I12B",8,"IT12",0.0,0.0,0.0,idrotm[233],"MANY");
2844      gMC->Gspos("I12B",7,"IT12",0.0,0.0,0.0,idrotm[244],"MANY");
2845      gMC->Gspos("I12B",6,"IT12",0.0,0.0,0.0,idrotm[236],"MANY");
2846      gMC->Gspos("I12B",2,"IT12",0.0,0.0,0.0,idrotm[245],"MANY");
2847      gMC->Gspos("I12B",3,"IT12",0.0,0.0,0.0,idrotm[234],"MANY");
2848      gMC->Gspos("I12B",4,"IT12",0.0,0.0,0.0,idrotm[246],"MANY");
2849      gMC->Gspos("I12B",5,"IT12",0.0,0.0,0.0,idrotm[247],"MANY");
2850      gMC->Gspos("I12B",9,"IT12",0.0,0.0,0.0,idrotm[248],"MANY");
2851      gMC->Gspos("I12B",10,"IT12",0.0,0.0,0.0,idrotm[249],"MANY");
2852      deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);  // see definition of idrotm[238]
2853           deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);  // see definition of idrotm[238]
2854      gMC->Gspos("I10B",2,"I12B",0.203+deltax,3.8206+deltay,0.0,idrotm[238],"ONLY");       
2855      deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);  // see definition of idrotm[239]
2856           deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);  // see definition of idrotm[239]  
2857      gMC->Gspos("I10B",1,"I12B",1.4531+deltax,3.8152+deltay,0.0,idrotm[239],"ONLY");
2858      deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);  // see definition of idrotm[240]
2859           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);  // see definition of idrotm[240]  
2860      gMC->Gspos("I20B",1,"I12B",3.0174+deltax,6.5143+deltay,0.0,idrotm[240],"ONLY");
2861      deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);  // see definition of idrotm[241]
2862           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);  // see definition of idrotm[241] 
2863      gMC->Gspos("I20B",2,"I12B",1.9612+deltax,6.9062+deltay,0.0,idrotm[241],"ONLY");
2864      deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);  // see definition of idrotm[242]
2865           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);  // see definition of idrotm[242] 
2866      gMC->Gspos("I20B",3,"I12B",0.8567+deltax,7.1279+deltay,0.0,idrotm[242],"ONLY");
2867      deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);  // see definition of idrotm[243]
2868           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);  // see definition of idrotm[243] 
2869      gMC->Gspos("I20B",4,"I12B",-0.2689+deltax,7.1742+deltay,0.0,idrotm[243],"ONLY");
2870      gMC->Gspos("I123",1,"I12B",-0.2978,5.5196,0.0,idrotm[214],"ONLY");
2871      gMC->Gspos("I121",1,"I12B",-0.2385,4.1518,0.0,idrotm[213],"ONLY");
2872      gMC->Gspos("I122",1,"I12B",-0.2968,4.0207,0.0,idrotm[212],"ONLY");
2873      gMC->Gspos("I120",1,"I12B",-0.3672,3.9056,0.0,0,"ONLY");
2874      gMC->Gspos("I144",1,"I12B",-0.2538,3.8556,0.0,0,"ONLY");
2875      gMC->Gspos("I113",3,"I12B",0.1095,3.9056,0.0,0,"ONLY");
2876      gMC->Gspos("I143",1,"I12B",0.4365,3.8556,0.0,idrotm[236],"ONLY");
2877      gMC->Gspos("I142",1,"I12B",0.5136,3.9056,0.0,idrotm[235],"ONLY");
2878      gMC->Gspos("I141",1,"I12B",0.5636,3.9752,0.0,idrotm[237],"ONLY");
2879      gMC->Gspos("I140",1,"I12B",0.6336,4.0447,0.0,idrotm[234],"ONLY");
2880      gMC->Gspos("I139",1,"I12B",0.8297,4.0545,0.0,idrotm[207],"ONLY");
2881      gMC->Gspos("I113",5,"I12B",1.2575,3.9681,0.0,idrotm[207],"ONLY");
2882      gMC->Gspos("I138",1,"I12B",1.66,3.7848,0.0,idrotm[207],"ONLY");
2883      gMC->Gspos("I137",1,"I12B",1.8556,3.7738,0.0,idrotm[233],"ONLY");
2884      gMC->Gspos("I136",1,"I12B",2.6224,4.874,0.0,idrotm[232],"ONLY");
2885      gMC->Gspos("I135",1,"I12B",3.2967,6.0337,0.0,idrotm[231],"ONLY");
2886      gMC->Gspos("I134",1,"I12B",3.266,6.1636,0.0,idrotm[230],"ONLY");
2887      gMC->Gspos("I113",1,"I12B",2.9903,6.4144,0.0,idrotm[211],"ONLY");
2888      gMC->Gspos("I133",3,"I12B",2.7631,6.7627,0.0,idrotm[230],"ONLY");
2889      gMC->Gspos("I132",3,"I12B",2.62,6.8555,0.0,idrotm[229],"ONLY");
2890      gMC->Gspos("I131",3,"I12B",2.648,6.6023,0.0,idrotm[228],"ONLY");
2891      gMC->Gspos("I130",3,"I12B",2.6569,6.3431,0.0,idrotm[227],"ONLY");
2892      gMC->Gspos("I129",3,"I12B",2.3906,6.4819,0.0,idrotm[226],"ONLY");
2893      gMC->Gspos("I113",2,"I12B",1.9488,6.7998,0.0,idrotm[210],"ONLY");
2894      gMC->Gspos("I133",2,"I12B",1.6699,7.1085,0.0,idrotm[226],"ONLY");
2895      gMC->Gspos("I132",2,"I12B",1.5142,7.1777,0.0,idrotm[225],"ONLY");
2896      gMC->Gspos("I131",2,"I12B",1.5814,6.932,0.0,idrotm[224],"ONLY");
2897      gMC->Gspos("I130",2,"I12B",1.6308,6.6774,0.0,idrotm[223],"ONLY");
2898      gMC->Gspos("I129",2,"I12B",1.346,6.7728,0.0,idrotm[222],"ONLY");
2899      gMC->Gspos("I113",6,"I12B",0.8599,7.0176,0.0,idrotm[209],"ONLY");
2900      gMC->Gspos("I133",1,"I12B",0.5362,7.2789,0.0,idrotm[222],"ONLY");
2901      gMC->Gspos("I132",1,"I12B",0.3715,7.3228,0.0,idrotm[221],"ONLY");
2902      gMC->Gspos("I131",1,"I12B",0.4763,7.0907,0.0,idrotm[220],"ONLY");
2903      gMC->Gspos("I130",1,"I12B",0.5649,6.8469,0.0,idrotm[219],"ONLY");
2904      gMC->Gspos("I129",1,"I12B",0.2688,6.8966,0.0,idrotm[218],"ONLY");
2905      gMC->Gspos("I113",4,"I12B",-0.2497,7.0624,0.0,idrotm[208],"ONLY");
2906      gMC->Gspos("I128",1,"I12B",-0.6103,7.2698,0.0,idrotm[218],"ONLY");
2907      gMC->Gspos("I126",1,"I12B",-0.7799,7.2874,0.0,idrotm[217],"ONLY");
2908      gMC->Gspos("I125",1,"I12B",-0.6315,7.0883,0.0,idrotm[216],"ONLY");
2909      gMC->Gspos("I124",1,"I12B",-0.4965,6.8742,0.0,idrotm[215],"ONLY");
2910      gMC->Gspos("I105",3,"I10B",-0.05,-0.01,-16.844,idrotm[201],"ONLY");
2911      gMC->Gspos("I105",4,"I10B",-0.05,-0.01,16.844,0,"ONLY");
2912      gMC->Gspos("I107",2,"I10B",-0.0455,-di10b[1]+di107[1],3.536,0,"ONLY");
2913      gMC->Gspos("I107",1,"I10B",-0.0455,-di10b[1]+di107[1],10.708,0,"ONLY");
2914      gMC->Gspos("I107",4,"I10B",-0.0455,-di10b[1]+di107[1],-10.708,idrotm[201],"ONLY");
2915      gMC->Gspos("I107",3,"I10B",-0.0455,-di10b[1]+di107[1],-3.536,idrotm[201],"ONLY");
2916      gMC->Gspos("I109",1,"I10B",-0.138,0.015,-16.844,idrotm[201],"ONLY");
2917      gMC->Gspos("I109",2,"I10B",-0.138,0.015,16.844,0,"ONLY");
2918      gMC->Gspos("I108",1,"I10B",-0.138,-di10b[1]+2.*di107[1]+di108[1],0.0,0,"ONLY");
2919      gMC->Gspos("I105",1,"I20B",-0.05,-0.01,-16.844,idrotm[201],"ONLY");
2920      gMC->Gspos("I105",2,"I20B",-0.05,-0.01,16.844,0,"ONLY");
2921      gMC->Gspos("I1D7",2,"I20B",-0.0455,-di20b[1]+di1d7[1],3.536,0,"ONLY");
2922      gMC->Gspos("I1D7",1,"I20B",-0.0455,-di20b[1]+di1d7[1],10.708,0,"ONLY");
2923      gMC->Gspos("I1D7",4,"I20B",-0.0455,-di20b[1]+di1d7[1],-10.708,idrotm[201],"ONLY");
2924      gMC->Gspos("I1D7",3,"I20B",-0.0455,-di20b[1]+di1d7[1],-3.536,idrotm[201],"ONLY");
2925      gMC->Gspos("I109",3,"I20B",-0.138,0.015,-16.844,idrotm[201],"ONLY");
2926      gMC->Gspos("I109",4,"I20B",-0.138,0.015,16.844,0,"ONLY");
2927      gMC->Gspos("I108",2,"I20B",-0.138,-di20b[1]+2.*di1d7[1]+di108[1],0.0,0,"ONLY");
2928      gMC->Gspos("I112",2,"I113",0.25,0.02,0.0,idrotm[206],"ONLY");
2929      gMC->Gspos("I111",2,"I113",0.1318,-0.0008,0.0,idrotm[205],"ONLY");
2930      gMC->Gspos("I118",1,"I113",0.0,-0.0454,0.0,0,"ONLY");
2931      gMC->Gspos("I110",1,"I113",0.0,0.0492,0.0,0,"ONLY");
2932      gMC->Gspos("I114",1,"I113",0.063,0.0042,0.0,idrotm[202],"ONLY");
2933      gMC->Gspos("I115",1,"I113",0.063,0.0042,0.0,idrotm[202],"ONLY");
2934      gMC->Gspos("I115",2,"I113",-0.063,0.0042,0.0,idrotm[237],"ONLY");
2935      gMC->Gspos("I114",2,"I113",-0.063,0.0042,0.0,idrotm[237],"ONLY");
2936      gMC->Gspos("I116",1,"I113",0.0,0.0042,0.0,0,"ONLY");
2937      gMC->Gspos("I111",1,"I113",-0.1318,-0.0008,0.0,idrotm[204],"ONLY");
2938      gMC->Gspos("I112",1,"I113",-0.25,0.02,0.0,idrotm[203],"ONLY");
2939      gMC->Gspos("I106",1,"I107",0.0,-dchip1,-1.4,0,"ONLY");
2940      gMC->Gspos("I106",2,"I107",0.0,-dchip1,0.0,0,"ONLY");
2941      gMC->Gspos("I106",3,"I107",0.0,-dchip1,1.4,0,"ONLY");
2942      gMC->Gspos("I106",4,"I107",0.0,-dchip1,2.8,0,"ONLY");
2943      gMC->Gspos("I106",5,"I107",0.0,-dchip1,-2.8,0,"ONLY");
2944      gMC->Gspos("I101",1,"I107",0.0,ddet1,0.0,0,"ONLY");
2945      gMC->Gspos("I1D6",1,"I1D7",0.0,-dchip2,-1.4,0,"ONLY");
2946      gMC->Gspos("I1D6",2,"I1D7",0.0,-dchip2,0.0,0,"ONLY");
2947      gMC->Gspos("I1D6",3,"I1D7",0.0,-dchip2,1.4,0,"ONLY");
2948      gMC->Gspos("I1D6",4,"I1D7",0.0,-dchip2,2.8,0,"ONLY");
2949      gMC->Gspos("I1D6",5,"I1D7",0.0,-dchip2,-2.8,0,"ONLY");
2950      gMC->Gspos("I1D1",1,"I1D7",0.0,ddet2,0.0,0,"ONLY");
2951      gMC->Gspos("I117",1,"I116",0.0,0.0,0.0,0,"ONLY");
2952      gMC->Gspos("ITS1",1,"I101",0.0,0.0,0.0,0,"ONLY");
2953      gMC->Gspos("ITS2",1,"I1D1",0.0,0.0,0.0,0,"ONLY");
2954      gMC->Gspos("I650",16,"IT12",0.0,0.0,22.0,idrotm[1104],"MANY");
2955      gMC->Gspos("I650",20,"IT12",0.0,0.0,22.0,idrotm[1130],"MANY");
2956      gMC->Gspos("I650",18,"IT12",0.0,0.0,22.0,idrotm[1117],"MANY");
2957      gMC->Gspos("I650",1,"IT12",0.0,0.0,22.0,0,"MANY");
2958      gMC->Gspos("I650",4,"IT12",0.0,0.0,22.0,idrotm[1106],"MANY");
2959      gMC->Gspos("I650",6,"IT12",0.0,0.0,22.0,idrotm[1039],"MANY");
2960      gMC->Gspos("I650",8,"IT12",0.0,0.0,22.0,idrotm[1107],"MANY");
2961      gMC->Gspos("I650",10,"IT12",0.0,0.0,22.0,idrotm[1065],"MANY");
2962      gMC->Gspos("I650",12,"IT12",0.0,0.0,22.0,idrotm[1078],"MANY");
2963      gMC->Gspos("I650",14,"IT12",0.0,0.0,22.0,idrotm[1091],"MANY");
2964      gMC->Gspos("I650",19,"IT12",0.0,0.0,-22.0,idrotm[1108],"MANY");
2965      gMC->Gspos("I650",2,"IT12",0.0,0.0,-22.0,idrotm[1109],"MANY");
2966      gMC->Gspos("I650",3,"IT12",0.0,0.0,-22.0,idrotm[1110],"MANY");
2967      gMC->Gspos("I650",5,"IT12",0.0,0.0,-22.0,idrotm[1111],"MANY");
2968      gMC->Gspos("I650",7,"IT12",0.0,0.0,-22.0,idrotm[1112],"MANY");
2969      gMC->Gspos("I650",9,"IT12",0.0,0.0,-22.0,idrotm[1113],"MANY");
2970      gMC->Gspos("I650",11,"IT12",0.0,0.0,-22.0,idrotm[1114],"MANY");
2971      gMC->Gspos("I650",13,"IT12",0.0,0.0,-22.0,idrotm[1115],"MANY");
2972      gMC->Gspos("I650",15,"IT12",0.0,0.0,-22.0,idrotm[1116],"MANY");
2973      gMC->Gspos("I650",17,"IT12",0.0,0.0,-22.0,idrotm[1118],"MANY");
2974      gMC->Gspos("I666",1,"I650",0.0,0.0,0.25,idrotm[1003],"MANY");
2975      gMC->Gspos("I667",1,"I650",0.1102,0.9945,0.45,idrotm[1088],"ONLY");
2976      gMC->Gspos("I669",3,"I650",0.1883,4.0372,-3.2,0,"ONLY");
2977      gMC->Gspos("I671",3,"I650",0.1883,4.0372,0.6,0,"ONLY");
2978      gMC->Gspos("I669",2,"I650",1.3343,4.0609,-3.2,0,"ONLY");
2979      gMC->Gspos("I671",2,"I650",1.3343,4.0609,0.6,0,"ONLY");
2980      gMC->Gspos("I669",6,"I650",2.9567,6.1959,-3.2,idrotm[1089],"ONLY");
2981      gMC->Gspos("I671",6,"I650",2.9567,6.1959,0.6,idrotm[1089],"ONLY");
2982      gMC->Gspos("I669",5,"I650",1.9511,6.5822,-3.2,idrotm[1011],"ONLY");
2983      gMC->Gspos("I671",5,"I650",1.9511,6.5822,0.6,idrotm[1011],"ONLY");
2984      gMC->Gspos("I669",4,"I650",0.8974,6.8064,-3.2,idrotm[1090],"ONLY");
2985      gMC->Gspos("I671",4,"I650",0.8974,6.8064,0.6,idrotm[1090],"ONLY");
2986      gMC->Gspos("I669",1,"I650",-0.1784,6.863,-3.2,0,"ONLY");
2987      gMC->Gspos("I671",1,"I650",-0.1784,6.863,0.6,0,"ONLY");
2988      gMC->Gspos("I673",1,"I650",0.2173,4.8037,1.8,0,"ONLY");
2989      gMC->Gspos("I673",6,"I650",1.5093,4.5605,1.8,0,"ONLY");
2990      gMC->Gspos("I673",4,"I650",-0.173,6.2531,1.8,idrotm[1092],"ONLY");
2991      gMC->Gspos("I673",3,"I650",0.8073,6.2032,1.8,idrotm[1093],"ONLY");
2992      gMC->Gspos("I673",2,"I650",1.7678,6.0005,1.8,idrotm[1094],"ONLY");
2993      gMC->Gspos("I673",5,"I650",2.6847,5.6501,1.8,0,"ONLY");
2994      gMC->Gspos("I676",2,"I650",1.7618,5.2269,2.5,0,"ONLY");
2995      gMC->Gspos("I676",1,"I650",0.4018,5.5869,2.5,0,"ONLY");
2996      gMC->Gspos("I668",1,"I667",0.0,0.0,0.0,0,"ONLY");
2997      gMC->Gspos("I670",1,"I669",0.0,0.0,0.0,0,"ONLY");
2998      gMC->Gspos("I672",1,"I671",0.0,0.0,0.0,0,"ONLY");
2999      gMC->Gspos("I674",1,"I673",0.0,0.0,0.0,0,"MANY");
3000      gMC->Gspos("I675",1,"I673",0.0,0.0,-0.5,0,"ONLY");
3001      gMC->Gspos("I677",1,"I676",0.0,0.0,0.0,0,"MANY");
3002      gMC->Gspos("I678",1,"I676",0.0,0.0,-0.95,0,"ONLY");  
3003
3004   }
3005     
3006   // --- Place SDD volumes into their mother volume IT34
3007
3008   
3009   // -- position SDD detectors of ladder 3 / layer 3
3010
3011   gMC->Gspos("ITS3", 1,"I302",  0.0,      0.0,    0.0,    0,           "ONLY");
3012   ySDD = Y_SDD_sep/2.+I302dits[1];
3013   for (iSDD=0; iSDD<6; iSDD++) {
3014     gMC->Gspos("I302", iSDD+1, "I004",  0.0, ySDD,  Z_SDD_lay3[iSDD], 0, "ONLY");
3015     ySDD = -ySDD;
3016   }
3017
3018   gMC->Gspos("I004", 1,"IT34", -3.2777,  14.3607, 0.0,   idrotm[321],"ONLY");
3019   gMC->Gspos("I004", 2,"IT34", -9.5581,  11.9855, 0.0,   idrotm[333],"ONLY");
3020   gMC->Gspos("I004", 3,"IT34",-13.2713,   6.3911, 0.0,   idrotm[336],"ONLY");
3021   gMC->Gspos("I004", 4,"IT34",-15.33,     0.0,    0.0,   idrotm[350],"ONLY");
3022   gMC->Gspos("I004", 5,"IT34",-13.2713,  -6.3911, 0.0,   idrotm[313],"ONLY");
3023   gMC->Gspos("I004", 6,"IT34", -9.5581, -11.9855, 0.0,   idrotm[311],"ONLY");
3024   gMC->Gspos("I004", 7,"IT34", -3.2777, -14.3607, 0.0,   idrotm[310],"ONLY");
3025   gMC->Gspos("I004", 8,"IT34",  3.4112, -14.9456, 0.0,   idrotm[386],"ONLY");
3026   gMC->Gspos("I004", 9,"IT34",  9.184,  -11.5164, 0.0,   idrotm[309],"ONLY");
3027   gMC->Gspos("I004",10,"IT34", 13.8119,  -6.6514, 0.0,   idrotm[308],"ONLY");
3028   gMC->Gspos("I004",11,"IT34", 14.73,     0.0,    0.0,   idrotm[356],"ONLY");
3029   gMC->Gspos("I004",12,"IT34", 13.8119,   6.6514, 0.0,   idrotm[307],"ONLY");
3030   gMC->Gspos("I004",13,"IT34",  9.184,   11.5164, 0.0,   idrotm[306],"ONLY");
3031   gMC->Gspos("I004",14,"IT34",  3.4113,  14.9456, 0.0,   idrotm[305],"ONLY");
3032
3033
3034   // -- position SDD detectors of ladder 4 / layer 4
3035
3036   gMC->Gspos("ITS4", 1,"I402",  0.0,      0.000,  0.0,   0,"ONLY");
3037   ySDD = -(Y_SDD_sep/2.+I402dits[1]);
3038   for (iSDD=0; iSDD<8; iSDD++) {
3039     gMC->Gspos("I402", iSDD+1, "I005",  0.0, ySDD,  Z_SDD_lay4[iSDD], 0, "ONLY");
3040     ySDD = -ySDD;
3041   }
3042   
3043   gMC->Gspos("I005", 1,"IT34", -3.3629,  23.3895,-0.15,  idrotm[335],"ONLY");
3044   gMC->Gspos("I005", 2,"IT34",-10.0447,  21.9949,-0.15,  idrotm[332],"ONLY");
3045   gMC->Gspos("I005", 3,"IT34",-15.4744,  17.8584,-0.15,  idrotm[331],"ONLY");
3046   gMC->Gspos("I005", 4,"IT34",-20.3415,  13.0727,-0.15,  idrotm[366],"ONLY");
3047   gMC->Gspos("I005", 5,"IT34",-22.6728,   6.6573,-0.15,  idrotm[330],"ONLY");
3048   gMC->Gspos("I005", 6,"IT34",-24.18,     0.0,   -0.15,  idrotm[350],"ONLY");
3049   gMC->Gspos("I005", 7,"IT34",-22.6728,  -6.6573,-0.15,  idrotm[329],"ONLY");
3050   gMC->Gspos("I005", 8,"IT34",-20.3415, -13.0727,-0.15,  idrotm[328],"ONLY");
3051   gMC->Gspos("I005", 9,"IT34",-15.4744, -17.8584,-0.15,  idrotm[327],"ONLY");
3052   gMC->Gspos("I005",10,"IT34",-10.0447, -21.9949,-0.15,  idrotm[326],"ONLY");
3053   gMC->Gspos("I005",11,"IT34", -3.3629, -23.3895,-0.15,  idrotm[325],"ONLY");
3054   gMC->Gspos("I005",12,"IT34",  3.4412, -23.9339,-0.15,  idrotm[324],"ONLY");
3055   gMC->Gspos("I005",13,"IT34",  9.8163, -21.4946,-0.15,  idrotm[323],"ONLY");
3056   gMC->Gspos("I005",14,"IT34", 15.8345, -18.274, -0.15,  idrotm[322],"ONLY");
3057   gMC->Gspos("I005",15,"IT34", 19.8788, -12.7753,-0.15,  idrotm[320],"ONLY");
3058   gMC->Gspos("I005",16,"IT34", 23.2005,  -6.8123,-0.15,  idrotm[319],"ONLY");
3059   gMC->Gspos("I005",17,"IT34", 23.63,     0.0,   -0.15,  idrotm[318],"ONLY");
3060   gMC->Gspos("I005",18,"IT34", 23.2005,   6.8123,-0.15,  idrotm[317],"ONLY");
3061   gMC->Gspos("I005",19,"IT34", 19.8788,  12.7753,-0.15,  idrotm[316],"ONLY");
3062   gMC->Gspos("I005",20,"IT34", 15.8345,  18.274, -0.15,  idrotm[315],"ONLY");
3063   gMC->Gspos("I005",21,"IT34",  9.8163,  21.4946,-0.15,  idrotm[314],"ONLY");
3064   gMC->Gspos("I005",22,"IT34",  3.4412,  23.9339,-0.15,  idrotm[334],"ONLY");
3065
3066
3067   // -- build block of the SDD ladder frame holding the electronics
3068
3069   gMC->Gspos("I019", 1,"I018", -1.9,     -1.735,  0.0, idrotm[344], "ONLY");
3070   gMC->Gspos("I019", 2,"I018",  1.987,   -1.5843, 0.0, idrotm[343], "ONLY");
3071   gMC->Gspos("I019", 3,"I018", -0.087,    1.7066, 0.0, idrotm[342], "ONLY");
3072
3073   gMC->Gspos("I020", 1,"I018", -1.9782,  -1.569,  0.0, idrotm[342], "ONLY");
3074   gMC->Gspos("I020", 2,"I018",  1.8824,  -1.735,  0.0, idrotm[344], "ONLY");
3075   gMC->Gspos("I020", 3,"I018",  0.0958,   1.6913, 0.0, idrotm[343], "ONLY");
3076
3077   gMC->Gspos("I021", 1,"I018",  1.0761,   0.0835, 2.6008, idrotm[340], "ONLY");
3078   gMC->Gspos("I021", 2,"I018", -1.0761,   0.0835,-2.8008, idrotm[339], "ONLY");
3079   gMC->Gspos("I021", 3,"I018", -1.0761,   0.0835,-1.0492, idrotm[338], "ONLY");
3080   gMC->Gspos("I021", 4,"I018",  1.0761,   0.0835,-2.8008, idrotm[337], "ONLY");
3081   gMC->Gspos("I021", 5,"I018",  1.0761,   0.0835,-1.0492, idrotm[340], "ONLY");
3082   gMC->Gspos("I021", 6,"I018", -1.0761,   0.0835, 0.8492, idrotm[339], "ONLY");
3083   gMC->Gspos("I021", 7,"I018", -1.0761,   0.0835, 2.6008, idrotm[338], "ONLY");
3084   gMC->Gspos("I021", 8,"I018",  1.0761,   0.0835, 0.8492, idrotm[337], "ONLY");
3085
3086   gMC->Gspos("I022", 1,"I018",  0.0,     -1.79,   3.55,   idrotm[312], "ONLY");
3087   gMC->Gspos("I022", 2,"I018",  0.0,     -1.79,  -0.1,    idrotm[312], "ONLY");
3088
3089   gMC->Gspos("I023", 1,"I018",  0.0,     -1.79,   1.725,  idrotm[341], "ONLY");
3090   gMC->Gspos("I023", 2,"I018",  0.0,     -1.79,  -1.925,  idrotm[341], "ONLY");
3091
3092   gMC->Gspos("I033", 1,"I018",  1.8,     -1.75,   1.35,   0,           "MANY");
3093   gMC->Gspos("I033", 2,"I018", -1.8,     -1.75,  -2.65,   idrotm[345], "MANY");
3094   gMC->Gspos("I033", 3,"I018", -1.8,     -1.75,   1.35,   idrotm[345], "MANY");
3095   gMC->Gspos("I033", 4,"I018",  1.8,     -1.75,  -2.65,   0,           "MANY");
3096
3097   gMC->Gspos("I034", 1,"I018",  1.6,     -1.775,  1.35,   idrotm[312], "ONLY");
3098   gMC->Gspos("I034", 2,"I018", -1.6,     -1.775, -2.65,   idrotm[348], "ONLY");
3099   gMC->Gspos("I034", 3,"I018", -1.6,     -1.775,  1.35,   idrotm[348], "ONLY");
3100   gMC->Gspos("I034", 4,"I018",  1.6,     -1.775, -2.65,   idrotm[312], "ONLY");
3101
3102   gMC->Gspos("I035", 1,"I018",  1.7,     -0.55, I018dits[2]-I035dits[2], 0, "MANY");
3103   gMC->Gspos("I035", 2,"I018", -1.7,     -0.55, I018dits[2]-I035dits[2], 0, "MANY");
3104
3105   gMC->Gspos("I036", 1,"I018",  0.3087,   1.7191, 3.56,   idrotm[346], "ONLY");
3106   gMC->Gspos("I036", 2,"I018",  0.3087,   1.7191,-0.11,   idrotm[346], "ONLY");
3107   gMC->Gspos("I036", 3,"I018", -0.3087,   1.7191,-0.11,   idrotm[347], "ONLY");
3108   gMC->Gspos("I036", 4,"I018", -0.3087,   1.7191, 3.56,   idrotm[347], "ONLY");
3109
3110   gMC->Gspos("I037", 1,"I018",  SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], 0 , "ONLY");
3111   gMC->Gspos("I037", 2,"I018", -SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], 0 , "ONLY");
3112
3113   gMC->Gspos("I038", 1,"I018",  SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], 0 , "ONLY");
3114   gMC->Gspos("I038", 2,"I018", -SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], 0 , "ONLY");
3115
3116   gMC->Gspos("I040", 1,"I018",  1.9204,  -0.7118, 0.0, idrotm[346],"ONLY");
3117   gMC->Gspos("I040", 2,"I018", -1.9204,  -0.7118, 0.0, idrotm[347],"ONLY");
3118   gMC->Gspos("I041", 1,"I018",  SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], idrotm[346], "ONLY");
3119   gMC->Gspos("I041", 2,"I018", -SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], idrotm[347], "ONLY");
3120
3121
3122   // -- build block of the SDD electronics (heat bridge, chips, hybrid, anode microcable)
3123
3124   xI050 = SDD_CoolPipe[0]+SDD_CoolPipe[1]*sin30+I050dits[1]/cos30+I041dits[1];
3125   yI050 = 0;
3126   xI039 = -SDD_CoolPipe[1]/cos30;
3127   yI039 = -I050dits[1]+I039dits[1];
3128   gMC->Gspos("I039", 1,"I050",  xI039, yI039, 0.0, 0, "ONLY");
3129   xI042 = xI039+I039dits[0]-xI042space-I042dits[0];
3130   yI042 = yI039+I039dits[1]+I042dits[1];
3131   xI043 = xI039-I039dits[0]+xI043space+I043dits[0];
3132   yI043 = yI039+I039dits[1]+I043dits[1];
3133   zChipSpace = I042dits[2];
3134   if (zChipSpace < I043dits[2]) {
3135     zChipSpace = I043dits[2];
3136   }
3137   zChipSpace = zChipSpace * 2;
3138   yI051space = (2*I039dits[2] - 4*zChipSpace)/5;
3139   zchip = -I039dits[2] + yI051space + zChipSpace/2.;
3140   for (ichip=0; ichip<4; ichip++) { 
3141     gMC->Gspos("I042", ichip+1, "I050", xI042, yI042, zchip, 0, "ONLY");
3142     gMC->Gspos("I043", ichip+1, "I050", xI043, yI043, zchip, 0, "ONLY");
3143     zchip += zChipSpace + yI051space;
3144   }
3145   xcap = 2*I039dits[0]/5.;
3146   yI051 = yI039+I039dits[1]+I051dits[1];
3147   zI051 = -I039dits[2] + yI051space/3.;
3148   icap = 1;
3149   for (ichip=0; ichip<5; ichip++) { 
3150     xI051 = xI039-I039dits[0]+xcap;
3151     gMC->Gspos("I051", icap++,"I050", xI051, yI051, zI051, 0, "ONLY");
3152     zI051 += yI051space/3.;
3153     gMC->Gspos("I051", icap++,"I050", xI051, yI051, zI051, 0, "ONLY");
3154     xI051 += xcap;
3155     gMC->Gspos("I051", icap++,"I050", xI051, yI051, zI051, 0, "ONLY");
3156     xI051 += xcap;
3157     gMC->Gspos("I051", icap++,"I050", xI051, yI051, zI051, 0, "ONLY");
3158     xI051 += xcap;
3159     gMC->Gspos("I051", icap++,"I050", xI051, yI051, zI051, 0, "ONLY");
3160     zI051 -= yI051space/3.;
3161     if (ichip == 0) {
3162       gMC->Gspos("I051", icap++,"I050", xI051, yI051, zI051, 0, "ONLY");
3163     }
3164     zI051 += zChipSpace + yI051space;
3165   }
3166   xI052 = -I050dits[0]+I052dits[0];
3167   yI052 = yI051+I051dits[1]+I052dits[1];
3168   gMC->Gspos("I052", 1,"I050", xI052, yI052, 0.0, 0, "ONLY");
3169   xI044 = I050dits[0]-I044dits[3];
3170   yI044 = yI052+I052dits[1]+I044dits[2];
3171   gMC->Gspos("I044", 1,"I050", xI044, yI044, 0.0, idrotm[301], "ONLY");
3172   gMC->Gspos("I050", 1,"I018",  xI050,  yI050,  0.0, idrotm[346],"ONLY");
3173   gMC->Gspos("I050", 2,"I018", -xI050,  yI050,  0.0, idrotm[347],"ONLY");
3174
3175
3176   // -- build block of the SDD ladder frame at the end ladders
3177
3178   gMC->Gspos("I021",12,"I024",  1.0761,   0.0836,-0.1242, idrotm[340], "ONLY");
3179   gMC->Gspos("I021",11,"I024", -1.0761,   0.0836,-0.1242, idrotm[338], "ONLY");
3180   gMC->Gspos("I021",13,"I024", -1.0761,   0.0836,-1.8758, idrotm[339], "ONLY");
3181   gMC->Gspos("I021",14,"I024",  1.0761,   0.0836,-1.8758, idrotm[337], "ONLY");
3182
3183   gMC->Gspos("I022", 3,"I024",  0.0,     -1.7899, 0.825,  idrotm[312], "ONLY");
3184
3185   gMC->Gspos("I023", 3,"I024",  0.0,     -1.7899,-1.0,    idrotm[341], "ONLY");
3186
3187   gMC->Gspos("I025", 1,"I024", -1.9,     -1.7349, 0.0,    idrotm[344], "ONLY");
3188   gMC->Gspos("I025", 2,"I024",  1.987,   -1.5842, 0.0,    idrotm[343], "ONLY");
3189
3190   gMC->Gspos("I026", 1,"I024", -1.9782,  -1.5689, 0.0,    idrotm[342], "ONLY");
3191   gMC->Gspos("I026", 2,"I024",  1.8824,  -1.7349, 0.0,    idrotm[344], "ONLY");
3192
3193   gMC->Gspos("I029", 1,"I024", -0.087,    1.7067, I029dits[2]-I024dits[2], idrotm[342], "ONLY");
3194
3195   gMC->Gspos("I030", 1,"I024",  0.0958,   1.6914, I030dits[2]-I024dits[2], idrotm[343], "ONLY");
3196
3197   gMC->Gspos("I031", 1,"I024",  SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], 0 ,"ONLY");
3198   gMC->Gspos("I031", 2,"I024", -SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], 0 ,"ONLY");
3199
3200   gMC->Gspos("I032", 1,"I024",  SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], 0 ,"ONLY");
3201   gMC->Gspos("I032", 2,"I024", -SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], 0 ,"ONLY");
3202
3203
3204   xI424 = I028dits[0]/3.;
3205   yI424 = -I028dits[1]+I424dits[1];
3206   gMC->Gspos("I422", 1,"I421", 0.0, 0.0, 0.0, 0, "ONLY");
3207   gMC->Gspos("I423", 1,"I421", 0.0, 0.0, I421dits[2]-I423dits[2], 0, "ONLY");
3208   gMC->Gspos("I421", 1,"I420", 0.0, 0.0, 0.0, idrotm[312], "ONLY");
3209   gMC->Gspos("I420", 1,"I028", -I028dits[0]/3., I028dits[1]-I420dits[1], 0.0, 0, "ONLY");
3210   gMC->Gspos("I424", 1,"I028", xI424, yI424, 0.0, 0, "ONLY");
3211   gMC->Gspos("I028", 1,"I024", 0.0, I028dits[1]-I024dits[1], I024dits[2]-I028dits[2], 0, "MANY");
3212
3213
3214   // -- build the SDD ladder 3
3215
3216   indI425 = 1;
3217   gMC->Gspos("I024", 1,"I047",  0.0,      0.0,   24.625, 0,           "ONLY");  
3218   gMC->Gspos("I018", 1,"I047",  0.0,      0.0,    3.65,  0,           "ONLY");
3219   gMC->Gspos("I018", 2,"I047",  0.0,      0.0,   10.95,  0,           "ONLY");
3220   gMC->Gspos("I018", 3,"I047",  0.0,      0.0,   18.25,  0,           "ONLY");
3221   gMC->Gspos("I018", 4,"I047",  0.0,      0.0,   -3.65,  0,           "ONLY");
3222   gMC->Gspos("I018", 5,"I047",  0.0,      0.0,  -10.95,  0,           "ONLY");
3223   gMC->Gspos("I018", 6,"I047",  0.0,      0.0,  -18.25,  0,           "ONLY");
3224   gMC->Gspos("I024", 2,"I047",  0.0,      0.0,  -24.625, idrotm[355], "ONLY");
3225   HVname[0] = 'I';
3226   HVname[1] = '3';
3227   HVname[2] = '1';  
3228   HVname[4] = '\0';
3229   for (iSDD=0; iSDD<3; iSDD++) {
3230     HVname[3] = (Char_t)(48+iSDD+5);
3231     dits[0] = 1.350000;
3232     dits[1] = I425dits[1];
3233     dits[2] = (I047dits[2] - 2*I024dits[2] - Z_SDD_lay3[iSDD])/2.;
3234     gMC->Gsvolu(HVname, "BOX ", idtmed[279], dits, 3);
3235     xHV = 0.0;
3236     yHV = -I047dits[1] + (2*iSDD+1)*dits[1];
3237     zHV = I047dits[2] - 2*I024dits[2] - dits[2];
3238     gMC->Gspos(HVname, 1,"I047", xHV, yHV,  zHV, 0, "ONLY");
3239     gMC->Gspos(HVname, 2,"I047", xHV, yHV, -zHV, 0, "ONLY");
3240     gMC->Gspos("I425", indI425++,"I047",  xI424, yHV,   24.625, 0, "ONLY");
3241     gMC->Gspos("I425", indI425++,"I047", -xI424, yHV,  -24.625, 0, "ONLY");
3242   }
3243   LVname[0] = 'I';
3244   LVname[1] = '3';
3245   LVname[2] = '1';  
3246   LVname[4] = '\0';
3247   for (iSDD=0; iSDD<3; iSDD++) {
3248     LVname[3] = (Char_t)(48+iSDD+1);
3249     dits[0] = 1.350000;
3250     dits[1] = 0.004423;
3251     dits[2] = (I047dits[2] - (2*iSDD+1)*I018dits[2] - I039dits[2])/2.;
3252     gMC->Gsvolu(LVname, "BOX ", idtmed[280], dits, 3);
3253     yLV = I018dits[1] - dits[0]*cos30 - dits[1]*sin30;
3254     xLV = xI050 -
3255           fabs(yI050-yLV)*sin30/cos30 +
3256           (I050dits[1]+(2*iSDD+1)*dits[1])/cos30;
3257     zLV = I047dits[2] - dits[2];
3258     gMC->Gspos(LVname, 1,"I047",  xLV, yLV,  zLV, idrotm[346], "ONLY");
3259     gMC->Gspos(LVname, 2,"I047",  xLV, yLV, -zLV, idrotm[346], "ONLY");
3260     gMC->Gspos(LVname, 3,"I047", -xLV, yLV,  zLV, idrotm[347], "ONLY");
3261     gMC->Gspos(LVname, 4,"I047", -xLV, yLV, -zLV, idrotm[347], "ONLY");
3262   }
3263
3264
3265   // -- build the SDD ladder 4
3266
3267
3268   gMC->Gspos("I024", 3,"I048", -0.0001,   0.0,   31.925, 0,           "ONLY");
3269   gMC->Gspos("I018", 7,"I048", -0.0001,   0.0,   -3.65,  0,           "ONLY");
3270   gMC->Gspos("I018", 8,"I048", -0.0001,   0.0,    3.65,  0,           "ONLY");
3271   gMC->Gspos("I018", 9,"I048", -0.0001,   0.0,   10.95,  0,           "ONLY");
3272   gMC->Gspos("I018",10,"I048", -0.0001,   0.0,   18.25,  0,           "ONLY");
3273   gMC->Gspos("I018",11,"I048", -0.0001,   0.0,   25.55,  0,           "ONLY");
3274   gMC->Gspos("I018",12,"I048", -0.0001,   0.0,  -10.95,  0,           "ONLY");
3275   gMC->Gspos("I018",13,"I048", -0.0001,   0.0,  -18.25,  0,           "ONLY");
3276   gMC->Gspos("I018",14,"I048", -0.0001,   0.0,  -25.55,  0,           "ONLY");
3277   gMC->Gspos("I024", 4,"I048", -0.0001,   0.0,  -31.925, idrotm[355], "ONLY");
3278   HVname[0] = 'I';
3279   HVname[1] = '4';
3280   HVname[2] = '1';  
3281   HVname[4] = '\0';  
3282   for (iSDD=0; iSDD<4; iSDD++) {
3283     HVname[3] = (Char_t)(48+iSDD+5);
3284     dits[0] = 1.350000;
3285     dits[1] = I425dits[1];
3286     dits[2] = (I048dits[2] - 2*I024dits[2] - Z_SDD_lay4[iSDD])/2.;
3287     gMC->Gsvolu(HVname, "BOX ", idtmed[279], dits, 3);
3288     xHV = -0.0001;
3289     yHV = -I048dits[1] + (2*iSDD+1)*dits[1];
3290     zHV = I048dits[2] - 2*I024dits[2] - dits[2];
3291     gMC->Gspos(HVname, 1,"I048", xHV, yHV,  zHV, 0, "ONLY");
3292     gMC->Gspos(HVname, 2,"I048", xHV, yHV, -zHV, 0, "ONLY");
3293     gMC->Gspos("I425", indI425++,"I048",  xI424, yHV,   31.925, 0, "ONLY");
3294     gMC->Gspos("I425", indI425++,"I048", -xI424, yHV,  -31.925, 0, "ONLY");
3295   }
3296   LVname[0] = 'I';
3297   LVname[1] = '4';
3298   LVname[2] = '1';  
3299   LVname[4] = '\0';
3300   for (iSDD=0; iSDD<4; iSDD++) {
3301     LVname[3] = (Char_t)(48+iSDD+1);
3302     dits[0] = 1.350000;
3303     dits[1] = 0.004423;
3304     dits[2] = (I048dits[2] - (2*iSDD+1)*I018dits[2] - I039dits[2])/2.;
3305     gMC->Gsvolu(LVname, "BOX ", idtmed[280], dits, 3);
3306     yLV = I018dits[1] - dits[0]*cos30 - dits[1]*sin30;
3307     xLV = xI050 -
3308           fabs(yI050-yLV)*sin30/cos30 +
3309           (I050dits[1]+(2*iSDD+1)*dits[1])/cos30;
3310     zLV = I048dits[2] - dits[2];
3311     gMC->Gspos(LVname, 1,"I048",  xLV, yLV,  zLV, idrotm[346], "ONLY");
3312     gMC->Gspos(LVname, 2,"I048",  xLV, yLV, -zLV, idrotm[346], "ONLY");
3313     gMC->Gspos(LVname, 3,"I048", -xLV, yLV,  zLV, idrotm[347], "ONLY");
3314     gMC->Gspos(LVname, 4,"I048", -xLV, yLV, -zLV, idrotm[347], "ONLY");
3315   }
3316
3317
3318   // -- build the SDD barrel (layers 3 and 4)
3319
3320   gMC->Gspos("I047", 1,"IT34", -3.7528,  16.4422, 0.0,   idrotm[321], "ONLY");
3321   gMC->Gspos("I047", 2,"IT34",-10.8892,  13.6547, 0.0,   idrotm[333], "ONLY");
3322   gMC->Gspos("I047", 3,"IT34",-15.1948,   7.3175, 0.0,   idrotm[336], "ONLY");
3323   gMC->Gspos("I047", 4,"IT34",-17.465,    0.0,    0.0,   idrotm[350], "ONLY");
3324   gMC->Gspos("I047", 5,"IT34",-15.1948,  -7.3174, 0.0,   idrotm[313], "ONLY");
3325   gMC->Gspos("I047", 6,"IT34",-10.8893, -13.6547, 0.0,   idrotm[311], "ONLY");
3326   gMC->Gspos("I047", 7,"IT34", -3.7528, -16.4422, 0.0,   idrotm[310], "ONLY");
3327   gMC->Gspos("I047", 8,"IT34",  3.8863, -17.0271, 0.0,   idrotm[386], "ONLY");
3328   gMC->Gspos("I047", 9,"IT34", 10.5152, -13.1856, 0.0,   idrotm[309], "ONLY");
3329   gMC->Gspos("I047",10,"IT34", 15.7354,  -7.5778, 0.0,   idrotm[308], "ONLY");
3330   gMC->Gspos("I047",11,"IT34", 16.865,    0.0,    0.0,   idrotm[356], "ONLY");
3331   gMC->Gspos("I047",12,"IT34", 15.7354,   7.5778, 0.0,   idrotm[307], "ONLY");
3332   gMC->Gspos("I047",13,"IT34", 10.5152,  13.1856, 0.0,   idrotm[306], "ONLY");
3333   gMC->Gspos("I047",14,"IT34",  3.8863,  17.0271, 0.0,   idrotm[305], "ONLY");
3334
3335   gMC->Gspos("I048", 1,"IT34", -3.6667,  25.5027, 0.0,   idrotm[335], "ONLY");
3336   gMC->Gspos("I048", 2,"IT34",-10.9317,  23.937,  0.0,   idrotm[332], "ONLY");
3337   gMC->Gspos("I048", 3,"IT34",-16.8725,  19.4719, 0.0,   idrotm[331], "ONLY");
3338   gMC->Gspos("I048", 4,"IT34",-22.1376,  14.227,  0.0,   idrotm[366], "ONLY");
3339   gMC->Gspos("I048", 5,"IT34",-24.7213,   7.2588, 0.0,   idrotm[330], "ONLY");
3340   gMC->Gspos("I048", 6,"IT34",-26.315,    0.0,    0.0,   idrotm[350], "ONLY");
3341   gMC->Gspos("I048", 7,"IT34",-24.7213,  -7.2588, 0.0,   idrotm[329], "ONLY");
3342   gMC->Gspos("I048", 8,"IT34",-22.1376, -14.227,  0.0,   idrotm[328], "ONLY");
3343   gMC->Gspos("I048", 9,"IT34",-16.8725, -19.4719, 0.0,   idrotm[327], "ONLY");
3344   gMC->Gspos("I048",10,"IT34",-10.9316, -23.937,  0.0,   idrotm[326], "ONLY");
3345   gMC->Gspos("I048",11,"IT34", -3.6667, -25.5027, 0.0,   idrotm[325], "ONLY");
3346   gMC->Gspos("I048",12,"IT34",  3.745,  -26.0472, 0.0,   idrotm[324], "ONLY");
3347   gMC->Gspos("I048",13,"IT34", 10.7032, -23.4367, 0.0,   idrotm[323], "ONLY");
3348   gMC->Gspos("I048",14,"IT34", 17.2327, -19.8876, 0.0,   idrotm[322], "ONLY");
3349   gMC->Gspos("I048",15,"IT34", 21.6749, -13.9296, 0.0,   idrotm[320], "ONLY");
3350   gMC->Gspos("I048",16,"IT34", 25.2491,  -7.4138, 0.0,   idrotm[319], "ONLY");
3351   gMC->Gspos("I048",17,"IT34", 25.765,    0.0,    0.0,   idrotm[318], "ONLY");
3352   gMC->Gspos("I048",18,"IT34", 25.2491,   7.4138, 0.0,   idrotm[317], "ONLY");
3353   gMC->Gspos("I048",19,"IT34", 21.6749,  13.9296, 0.0,   idrotm[316], "ONLY");
3354   gMC->Gspos("I048",20,"IT34", 17.2327,  19.8876, 0.0,   idrotm[315], "ONLY");
3355   gMC->Gspos("I048",21,"IT34", 10.7032,  23.4367, 0.0,   idrotm[314], "ONLY");
3356   gMC->Gspos("I048",22,"IT34", 3.745,    26.0472, 0.0,   idrotm[334], "ONLY");
3357
3358   
3359   // --- Place SSD volumes into their mother volume IT56  
3360
3361
3362   gMC->Gspos("I570",14,"IT56",-28.0681,-36.0619,-0.27,idrotm[566],"ONLY"); 
3363   gMC->Gspos("I570",15,"IT56",-21.677,-40.0556,-0.27,idrotm[567],"ONLY");
3364   gMC->Gspos("I570",16,"IT56",-14.838,-43.2217,-0.27,idrotm[568],"ONLY");
3365   gMC->Gspos("I570",17,"IT56",-7.4965,-44.9238,-0.27,idrotm[569],"ONLY");
3366   gMC->Gspos("I570",18,"IT56",-0.27,-45.6977,-0.27,idrotm[533],"ONLY");
3367   gMC->Gspos("I570",19,"IT56",7.4965,-44.9238,-0.27,idrotm[534],"ONLY");
3368   gMC->Gspos("I570",20,"IT56",14.838,-43.2217,-0.27,idrotm[535],"ONLY");
3369   gMC->Gspos("I570",21,"IT56",21.677,-40.0556,-0.27,idrotm[623],"ONLY");
3370   gMC->Gspos("I570",22,"IT56",28.0681,-36.0619,-0.27,idrotm[537],"ONLY");
3371   gMC->Gspos("I570",23,"IT56",33.5085,-30.8468,-0.27,idrotm[538],"ONLY");
3372   gMC->Gspos("I570",24,"IT56",38.2566,-24.9943,-0.27,idrotm[539],"ONLY");
3373   gMC->Gspos("I570",25,"IT56",41.7089,-18.2952,-0.27,idrotm[540],"ONLY");
3374   gMC->Gspos("I570",26,"IT56",44.2994,-11.2181,-0.27,idrotm[541],"ONLY");
3375   gMC->Gspos("I570",27,"IT56",45.3894,-3.7611,-0.27,idrotm[542],"ONLY");
3376   gMC->Gspos("I570",28,"IT56",45.5416,3.7737,-0.27,idrotm[543],"ONLY");
3377   gMC->Gspos("I570",29,"IT56",44.1513,11.1806,-0.27,idrotm[544],"ONLY");
3378   gMC->Gspos("I570",30,"IT56",41.8487,18.3566,-0.27,idrotm[545],"ONLY");
3379   gMC->Gspos("I570",31,"IT56",38.1287,24.9107,-0.27,idrotm[546],"ONLY");
3380   gMC->Gspos("I570",32,"IT56",33.6209,30.9502,-0.27,idrotm[547],"ONLY");
3381   gMC->Gspos("I570",33,"IT56",27.9743,35.9414,-0.27,idrotm[548],"ONLY");
3382   gMC->Gspos("I570",34,"IT56",21.7497,40.1899,-0.27,idrotm[549],"ONLY");
3383   gMC->Gspos("I570",35,"IT56",14.7884,43.0772,-0.27,idrotm[550],"ONLY");
3384   gMC->Gspos("I570",36,"IT56",7.5216,45.0744,-0.27,idrotm[551],"ONLY");
3385   gMC->Gspos("I570",37,"IT56",-0.27,45.545,-0.27,0,"ONLY");
3386   gMC->Gspos("I570",38,"IT56",-7.5216,45.0744,-0.27,idrotm[552],"ONLY");
3387   gMC->Gspos("I570",1,"IT56",-14.7884,43.0772,-0.27,idrotm[553],"ONLY");
3388   gMC->Gspos("I570",2,"IT56",-21.7497,40.1899,-0.27,idrotm[620],"ONLY");
3389   gMC->Gspos("I570",3,"IT56",-27.9743,35.9414,-0.27,idrotm[555],"ONLY");
3390   gMC->Gspos("I570",4,"IT56",-33.6209,30.9502,-0.27,idrotm[556],"ONLY");
3391   gMC->Gspos("I570",5,"IT56",-38.1287,24.9108,-0.27,idrotm[557],"ONLY");
3392   gMC->Gspos("I570",6,"IT56",-41.8487,18.3566,-0.27,idrotm[558],"ONLY");
3393   gMC->Gspos("I570",7,"IT56",-44.1513,11.1806,-0.27,idrotm[559],"ONLY");
3394   gMC->Gspos("I570",8,"IT56",-45.5416,3.7737,-0.27,idrotm[560],"ONLY");
3395   gMC->Gspos("I570",9,"IT56",-45.3894,-3.7611,-0.27,idrotm[561],"ONLY");
3396   gMC->Gspos("I570",10,"IT56",-44.2994,-11.2181,-0.27,idrotm[562],"ONLY");
3397   gMC->Gspos("I570",11,"IT56",-41.7089,-18.2952,-0.27,idrotm[563],"ONLY");
3398   gMC->Gspos("I570",12,"IT56",-38.2566,-24.9943,-0.27,idrotm[564],"ONLY");
3399   gMC->Gspos("I570",13,"IT56",-33.5086,-30.8468,-0.27,idrotm[565],"ONLY");
3400   gMC->Gspos("I569",8,"IT56",-43.5484,3.6085,0.0,idrotm[560],"ONLY");
3401   gMC->Gspos("I569",9,"IT56",-43.3963,-3.5959,0.0,idrotm[561],"ONLY");
3402   gMC->Gspos("I569",10,"IT56",-42.3606,-10.7271,0.0,idrotm[562],"ONLY");
3403   gMC->Gspos("I569",11,"IT56",-39.8773,-17.4918,0.0,idrotm[563],"ONLY");
3404   gMC->Gspos("I569",12,"IT56",-36.5823,-23.9004,0.0,idrotm[564],"ONLY");
3405   gMC->Gspos("I569",13,"IT56",-32.0371,-29.4922,0.0,idrotm[565],"ONLY");
3406   gMC->Gspos("I569",14,"IT56",-26.8397,-34.4836,0.0,idrotm[566],"ONLY");
3407   gMC->Gspos("I569",15,"IT56",-20.7251,-38.2967,0.0,idrotm[567],"ONLY");
3408   gMC->Gspos("I569",16,"IT56",-14.1886,-41.33,0.0,idrotm[568],"ONLY");
3409   gMC->Gspos("I569",17,"IT56",-7.1673,-42.9511,0.0,idrotm[569],"ONLY");
3410   gMC->Gspos("I569",18,"IT56",0.0,-43.6977,0.0,idrotm[533],"ONLY");
3411   gMC->Gspos("I569",19,"IT56",7.1673,-42.9511,0.0,idrotm[534],"ONLY");
3412   gMC->Gspos("I569",20,"IT56",14.1886,-41.33,0.0,idrotm[535],"ONLY");
3413   gMC->Gspos("I569",21,"IT56",20.7251,-38.2967,0.0,idrotm[623],"ONLY");
3414   gMC->Gspos("I569",22,"IT56",26.8397,-34.4836,0.0,idrotm[537],"ONLY");
3415   gMC->Gspos("I569",23,"IT56",32.0371,-29.4922,0.0,idrotm[538],"ONLY");
3416   gMC->Gspos("I569",24,"IT56",36.5822,-23.9004,0.0,idrotm[539],"ONLY");
3417   gMC->Gspos("I569",25,"IT56",39.8773,-17.4918,0.0,idrotm[540],"ONLY");
3418   gMC->Gspos("I569",26,"IT56",42.3606,-10.7272,0.0,idrotm[541],"ONLY");
3419   gMC->Gspos("I569",27,"IT56",43.3963,-3.5959,0.0,idrotm[542],"ONLY");
3420   gMC->Gspos("I569",28,"IT56",43.5484,3.6085,0.0,idrotm[543],"ONLY");
3421   gMC->Gspos("I569",29,"IT56",42.2125,10.6897,0.0,idrotm[544],"ONLY");
3422   gMC->Gspos("I569",30,"IT56",40.0172,17.5532,0.0,idrotm[545],"ONLY");
3423   gMC->Gspos("I569",31,"IT56",36.4544,23.8169,0.0,idrotm[546],"ONLY");
3424   gMC->Gspos("I569",32,"IT56",32.1494,29.5956,0.0,idrotm[547],"ONLY");
3425   gMC->Gspos("I569",33,"IT56",26.7459,34.3631,0.0,idrotm[548],"ONLY");
3426   gMC->Gspos("I569",34,"IT56",20.7978,38.431,0.0,idrotm[549],"ONLY");
3427   gMC->Gspos("I569",35,"IT56",14.139,41.1856,0.0,idrotm[550],"ONLY");
3428   gMC->Gspos("I569",36,"IT56",7.1924,43.1017,0.0,idrotm[551],"ONLY");
3429   gMC->Gspos("I569",37,"IT56",0.0,43.545,0.0,0,"ONLY");
3430   gMC->Gspos("I569",38,"IT56",-7.1924,43.1017,0.0,idrotm[552],"ONLY");
3431   gMC->Gspos("I569",1,"IT56",-14.139,41.1856,0.0,idrotm[553],"ONLY");
3432   gMC->Gspos("I569",2,"IT56",-20.7978,38.431,0.0,idrotm[620],"ONLY");
3433   gMC->Gspos("I569",3,"IT56",-26.7459,34.3631,0.0,idrotm[555],"ONLY");
3434   gMC->Gspos("I569",4,"IT56",-32.1494,29.5956,0.0,idrotm[556],"ONLY");
3435   gMC->Gspos("I569",5,"IT56",-36.4544,23.8169,0.0,idrotm[557],"ONLY");
3436   gMC->Gspos("I569",6,"IT56",-40.0172,17.5532,0.0,idrotm[558],"ONLY");
3437   gMC->Gspos("I569",7,"IT56",-42.2125,10.6897,0.0,idrotm[559],"ONLY");
3438   gMC->Gspos("I571",15,"IT56",-21.2916,-34.387,0.0,idrotm[501],"ONLY");
3439   gMC->Gspos("I571",14,"IT56",-27.351,-30.0026,0.0,idrotm[503],"ONLY");
3440   gMC->Gspos("I571",13,"IT56",-32.2758,-24.3735,0.0,idrotm[504],"ONLY");
3441   gMC->Gspos("I571",12,"IT56",-36.3422,-18.0963,0.0,idrotm[505],"ONLY");
3442   gMC->Gspos("I571",11,"IT56",-38.901,-11.0683,0.0,idrotm[506],"ONLY");
3443   gMC->Gspos("I571",10,"IT56",-40.4252,-3.7459,0.0,idrotm[507],"ONLY");
3444   gMC->Gspos("I571",9,"IT56",-40.2725,3.7318,0.0,idrotm[508],"ONLY");
3445   gMC->Gspos("I571",8,"IT56",-39.0486,11.1103,0.0,idrotm[509],"ONLY");
3446   gMC->Gspos("I571",7,"IT56",-36.2049,18.0279,0.0,idrotm[510],"ONLY");
3447   gMC->Gspos("I571",6,"IT56",-32.3982,24.466,0.0,idrotm[511],"ONLY");
3448   gMC->Gspos("I571",5,"IT56",-27.2476,29.8892,0.0,idrotm[512],"ONLY");
3449   gMC->Gspos("I571",4,"IT56",-21.3723,34.5175,0.0,idrotm[513],"ONLY");
3450   gMC->Gspos("I571",3,"IT56",-14.6104,37.7138,0.0,idrotm[653],"ONLY");
3451   gMC->Gspos("I571",2,"IT56",-7.4599,39.9072,0.0,idrotm[514],"ONLY");
3452   gMC->Gspos("I571",1,"IT56",0.0,40.445,0.0,0,"ONLY");
3453   gMC->Gspos("I571",34,"IT56",7.46,39.9071,0.0,idrotm[515],"ONLY");
3454   gMC->Gspos("I571",33,"IT56",14.6104,37.7138,0.0,idrotm[516],"ONLY");
3455   gMC->Gspos("I571",32,"IT56",21.3723,34.5175,0.0,idrotm[517],"ONLY");
3456   gMC->Gspos("I571",31,"IT56",27.2476,29.8892,0.0,idrotm[518],"ONLY");
3457   gMC->Gspos("I571",30,"IT56",32.3983,24.466,0.0,idrotm[519],"ONLY");
3458   gMC->Gspos("I571",29,"IT56",36.2049,18.0279,0.0,idrotm[520],"ONLY");
3459   gMC->Gspos("I571",28,"IT56",39.0486,11.1103,0.0,idrotm[521],"ONLY");
3460   gMC->Gspos("I571",27,"IT56",40.2725,3.7318,0.0,idrotm[522],"ONLY");
3461   gMC->Gspos("I571",26,"IT56",40.4252,-3.746,0.0,idrotm[523],"ONLY");
3462   gMC->Gspos("I571",25,"IT56",38.901,-11.0683,0.0,idrotm[524],"ONLY");
3463   gMC->Gspos("I571",24,"IT56",36.3422,-18.0963,0.0,idrotm[525],"ONLY");
3464   gMC->Gspos("I571",23,"IT56",32.2758,-24.3736,0.0,idrotm[526],"ONLY");
3465   gMC->Gspos("I571",22,"IT56",27.351,-30.0026,0.0,idrotm[527],"ONLY");
3466   gMC->Gspos("I571",21,"IT56",21.2915,-34.387,0.0,idrotm[528],"ONLY");
3467   gMC->Gspos("I571",20,"IT56",14.6658,-37.8569,0.0,idrotm[618],"ONLY");
3468   gMC->Gspos("I571",19,"IT56",7.4317,-39.7563,0.0,idrotm[529],"ONLY");
3469   gMC->Gspos("I571",18,"IT56",0.0,-40.5984,0.0,idrotm[533],"ONLY");
3470   gMC->Gspos("I571",17,"IT56",-7.4318,-39.7563,0.0,idrotm[530],"ONLY");
3471   gMC->Gspos("I571",16,"IT56",-14.6659,-37.8569,0.0,idrotm[531],"ONLY");
3472   gMC->Gspos("I565",13,"IT56",-30.6798,-23.1683,0.0,idrotm[504],"ONLY");
3473   gMC->Gspos("I565",12,"IT56",-34.5519,-17.2048,0.0,idrotm[505],"ONLY");
3474   gMC->Gspos("I565",11,"IT56",-36.9774,-10.521,0.0,idrotm[506],"ONLY");
3475   gMC->Gspos("I565",10,"IT56",-38.4338,-3.5614,0.0,idrotm[507],"ONLY");
3476   gMC->Gspos("I565",9,"IT56",-38.281,3.5473,0.0,idrotm[508],"ONLY");
3477   gMC->Gspos("I565",8,"IT56",-37.1249,10.563,0.0,idrotm[509],"ONLY");
3478   gMC->Gspos("I565",7,"IT56",-34.4146,17.1364,0.0,idrotm[510],"ONLY");
3479   gMC->Gspos("I565",6,"IT56",-30.8022,23.2608,0.0,idrotm[511],"ONLY");
3480   gMC->Gspos("I565",5,"IT56",-25.9002,28.4112,0.0,idrotm[512],"ONLY");
3481   gMC->Gspos("I565",4,"IT56",-20.3195,32.817,0.0,idrotm[513],"ONLY");
3482   gMC->Gspos("I565",3,"IT56",-13.8879,35.8489,0.0,idrotm[653],"ONLY");
3483   gMC->Gspos("I565",2,"IT56",-7.0924,37.9412,0.0,idrotm[514],"ONLY");
3484   gMC->Gspos("I565",1,"IT56",0.0,38.445,0.0,0,"ONLY");
3485   gMC->Gspos("I565",34,"IT56",7.0925,37.9412,0.0,idrotm[515],"ONLY");
3486   gMC->Gspos("I565",33,"IT56",13.888,35.8489,0.0,idrotm[516],"ONLY");
3487   gMC->Gspos("I565",32,"IT56",20.3195,32.817,0.0,idrotm[517],"ONLY");
3488   gMC->Gspos("I565",31,"IT56",25.9002,28.4112,0.0,idrotm[518],"ONLY");
3489   gMC->Gspos("I565",30,"IT56",30.8022,23.2607,0.0,idrotm[519],"ONLY");
3490   gMC->Gspos("I565",29,"IT56",34.4146,17.1364,0.0,idrotm[520],"ONLY");
3491   gMC->Gspos("I565",28,"IT56",37.125,10.5629,0.0,idrotm[521],"ONLY");
3492   gMC->Gspos("I565",27,"IT56",38.281,3.5472,0.0,idrotm[522],"ONLY");
3493   gMC->Gspos("I565",26,"IT56",38.4338,-3.5614,0.0,idrotm[523],"ONLY");
3494   gMC->Gspos("I565",25,"IT56",36.9774,-10.521,0.0,idrotm[524],"ONLY");
3495   gMC->Gspos("I565",24,"IT56",34.5519,-17.2048,0.0,idrotm[525],"ONLY");
3496   gMC->Gspos("I565",23,"IT56",30.6798,-23.1683,0.0,idrotm[526],"ONLY");
3497   gMC->Gspos("I565",22,"IT56",26.0036,-28.5246,0.0,idrotm[527],"ONLY");
3498   gMC->Gspos("I565",21,"IT56",20.2387,-32.6866,0.0,idrotm[528],"ONLY");
3499   gMC->Gspos("I565",20,"IT56",13.9433,-35.992,0.0,idrotm[618],"ONLY");
3500   gMC->Gspos("I565",19,"IT56",7.0642,-37.7904,0.0,idrotm[529],"ONLY");
3501   gMC->Gspos("I565",18,"IT56",0.0,-38.5984,0.0,idrotm[533],"ONLY");
3502   gMC->Gspos("I565",17,"IT56",-7.0643,-37.7904,0.0,idrotm[530],"ONLY");
3503   gMC->Gspos("I565",16,"IT56",-13.9434,-35.992,0.0,idrotm[531],"ONLY");
3504   gMC->Gspos("I565",15,"IT56",-20.2387,-32.6866,0.0,idrotm[501],"ONLY");
3505   gMC->Gspos("I565",14,"IT56",-26.0036,-28.5246,0.0,idrotm[503],"ONLY");
3506   gMC->Gspos("I553",1,"I570",0.005,0.0,52.8453,0,"ONLY");
3507   gMC->Gspos("I523",1,"I570",0.0,0.0,46.9203+0.82,0,"ONLY");
3508   gMC->Gspos("I523",2,"I570",0.0,0.0,43.0103+0.82,0,"ONLY");
3509   gMC->Gspos("I523",3,"I570",0.0,0.0,39.1003+0.82,0,"ONLY");
3510   gMC->Gspos("I523",4,"I570",0.0,0.0,35.1903+0.82,0,"ONLY");
3511   gMC->Gspos("I523",5,"I570",0.0,0.0,31.2803+0.82,0,"ONLY");
3512   gMC->Gspos("I523",6,"I570",0.0,0.0,27.3703+0.82,0,"ONLY");
3513   gMC->Gspos("I523",7,"I570",0.0,0.0,23.4603+0.82,0,"ONLY");
3514   gMC->Gspos("I523",8,"I570",0.0,0.0,19.5503+0.82,0,"ONLY");
3515   gMC->Gspos("I523",9,"I570",0.0,0.0,15.6403+0.82,0,"ONLY");
3516   gMC->Gspos("I523",10,"I570",0.0,0.0,11.7303+0.82,0,"ONLY");
3517   gMC->Gspos("I523",11,"I570",0.0,0.0,7.8203+0.82,0,"ONLY");
3518   gMC->Gspos("I523",12,"I570",0.0,0.0,3.9103+0.82,0,"ONLY");
3519   gMC->Gspos("I523",13,"I570",0.0,0.0,0.0003+0.82,0,"ONLY");
3520   gMC->Gspos("I523",14,"I570",0.0,0.0,-3.9097+0.82,0,"ONLY");
3521   gMC->Gspos("I523",15,"I570",0.0,0.0,-7.8197+0.82,0,"ONLY");
3522   gMC->Gspos("I523",16,"I570",0.0,0.0,-11.7297+0.82,0,"ONLY");
3523   gMC->Gspos("I523",17,"I570",0.0,0.0,-15.6397+0.82,0,"ONLY");
3524   gMC->Gspos("I523",18,"I570",0.0,0.0,-19.5497+0.82,0,"ONLY");
3525   gMC->Gspos("I523",19,"I570",0.0,0.0,-23.4597+0.82,0,"ONLY");
3526   gMC->Gspos("I523",20,"I570",0.0,0.0,-27.3697+0.82,0,"ONLY");
3527   gMC->Gspos("I523",21,"I570",0.0,0.0,-31.2797+0.82,0,"ONLY");
3528   gMC->Gspos("I523",22,"I570",0.0,0.0,-35.1897+0.82,0,"ONLY");
3529   gMC->Gspos("I523",23,"I570",0.0,0.0,-39.0997+0.82,0,"ONLY");
3530   gMC->Gspos("I523",24,"I570",0.0,0.0,-43.0097+0.82,0,"ONLY");
3531   gMC->Gspos("I523",25,"I570",0.0,0.0,-46.9197+0.82,0,"ONLY");
3532   gMC->Gspos("I553",2,"I570",-0.005,0.0,-51.2047,idrotm[570],"ONLY");
3533   gMC->Gspos("I566",1,"I569",0.0,-0.03,46.9203,idrotm[532],"ONLY");
3534   gMC->Gspos("I566",2,"I569",0.0,0.03,43.0103,0,"ONLY");
3535   gMC->Gspos("I566",3,"I569",0.0,-0.03,39.1003,idrotm[532],"ONLY");
3536   gMC->Gspos("I566",4,"I569",0.0,0.03,35.1903,0,"ONLY");
3537   gMC->Gspos("I566",5,"I569",0.0,-0.03,31.2803,idrotm[532],"ONLY");
3538   gMC->Gspos("I566",6,"I569",0.0,0.03,27.3703,0,"ONLY");
3539   gMC->Gspos("I566",7,"I569",0.0,-0.03,23.4603,idrotm[532],"ONLY");
3540   gMC->Gspos("I566",8,"I569",0.0,0.03,19.5503,0,"ONLY");
3541   gMC->Gspos("I566",9,"I569",0.0,-0.03,15.6403,idrotm[532],"ONLY");
3542   gMC->Gspos("I566",10,"I569",0.0,0.03,11.7303,0,"ONLY");
3543   gMC->Gspos("I566",11,"I569",0.0,-0.03,7.8203,idrotm[532],"ONLY");
3544   gMC->Gspos("I566",12,"I569",0.0,0.03,3.9103,0,"ONLY");
3545   gMC->Gspos("I566",13,"I569",0.0,-0.03,0.0003,0,"ONLY");
3546   gMC->Gspos("I566",14,"I569",0.0,0.03,-3.9097,0,"ONLY");
3547   gMC->Gspos("I566",15,"I569",0.0,-0.03,-7.8197,idrotm[532],"ONLY");
3548   gMC->Gspos("I566",16,"I569",0.0,0.03,-11.7297,0,"ONLY");
3549   gMC->Gspos("I566",17,"I569",0.0,-0.03,-15.6397,0,"ONLY");
3550   gMC->Gspos("I566",18,"I569",0.0,0.03,-19.5497,0,"ONLY");
3551   gMC->Gspos("I566",19,"I569",0.0,-0.03,-23.4597,idrotm[532],"ONLY");
3552   gMC->Gspos("I566",20,"I569",0.0,0.03,-27.3697,0,"ONLY");
3553   gMC->Gspos("I566",21,"I569",0.0,-0.03,-31.2797,idrotm[532],"ONLY");
3554   gMC->Gspos("I566",22,"I569",0.0,0.03,-35.1897,0,"ONLY");
3555   gMC->Gspos("I566",23,"I569",0.0,-0.03,-39.0997,0,"ONLY");
3556   gMC->Gspos("I566",24,"I569",0.0,0.03,-43.0097,0,"ONLY");
3557   gMC->Gspos("I566",25,"I569",0.0,-0.03,-46.9197,idrotm[532],"ONLY");
3558   gMC->Gspos("I544",1,"I571",0.0101,0.0,43.125,0,"ONLY");
3559   gMC->Gspos("I516",20,"I571",0.0001,0.0,39.1-1.08,0,"ONLY");
3560   gMC->Gspos("I516",19,"I571",0.0001,0.0,35.19-1.08,0,"ONLY");
3561   gMC->Gspos("I516",18,"I571",0.0001,0.0,31.28-1.08,0,"ONLY");
3562   gMC->Gspos("I516",17,"I571",0.0001,0.0,27.37-1.08,0,"ONLY");
3563   gMC->Gspos("I516",16,"I571",0.0001,0.0,23.46-1.08,0,"ONLY");
3564   gMC->Gspos("I516",15,"I571",0.0001,0.0,19.55-1.08,0,"ONLY");
3565   gMC->Gspos("I516",14,"I571",0.0001,0.0,15.64-1.08,0,"ONLY");
3566   gMC->Gspos("I516",13,"I571",0.0001,0.0,11.73-1.08,0,"ONLY");
3567   gMC->Gspos("I516",12,"I571",0.0001,0.0,7.82-1.08,0,"ONLY");
3568   gMC->Gspos("I516",11,"I571",0.0001,0.0,3.91-1.08,0,"ONLY");
3569   gMC->Gspos("I516",10,"I571",0.0001,0.0,0.0-1.08,0,"ONLY");
3570   gMC->Gspos("I516",9,"I571",0.0001,0.0,-3.91-1.08,0,"ONLY");
3571   gMC->Gspos("I516",8,"I571",0.0001,0.0,-7.82-1.08,0,"ONLY");
3572   gMC->Gspos("I516",7,"I571",0.0001,0.0,-11.73-1.08,0,"ONLY");
3573   gMC->Gspos("I516",6,"I571",0.0001,0.0,-15.64-1.08,0,"ONLY");
3574   gMC->Gspos("I516",5,"I571",0.0001,0.0,-19.55-1.08,0,"ONLY");
3575   gMC->Gspos("I516",4,"I571",0.0001,0.0,-23.46-1.08,0,"ONLY");
3576   gMC->Gspos("I516",3,"I571",0.0001,0.0,-27.37-1.08,0,"ONLY");
3577   gMC->Gspos("I516",2,"I571",0.0001,0.0,-31.28-1.08,0,"ONLY");
3578   gMC->Gspos("I516",1,"I571",0.0001,0.0,-35.19-1.08,0,"ONLY");
3579   gMC->Gspos("I544",2,"I571",-0.0099,0.0,-41.375,idrotm[570],"ONLY");
3580   gMC->Gspos("I562",1,"I565",0.0,0.03,41.1546,0,"ONLY");
3581   gMC->Gspos("I562",2,"I565",0.0,-0.03,37.2246,0,"ONLY");
3582   gMC->Gspos("I562",3,"I565",0.0,0.03,33.3146,0,"ONLY");
3583   gMC->Gspos("I562",4,"I565",0.0,-0.03,29.3846,0,"ONLY");
3584   gMC->Gspos("I562",5,"I565",0.0,0.03,25.4746,0,"ONLY");
3585   gMC->Gspos("I562",6,"I565",0.0,-0.03,21.5446,0,"ONLY");
3586   gMC->Gspos("I562",7,"I565",0.0,0.03,17.6346,0,"ONLY");
3587   gMC->Gspos("I562",8,"I565",0.0,-0.03,13.7046,0,"ONLY");
3588   gMC->Gspos("I562",9,"I565",0.0,0.03,9.7946,0,"ONLY");
3589   gMC->Gspos("I562",10,"I565",0.0,-0.03,5.8645,0,"ONLY");
3590   gMC->Gspos("I562",11,"I565",0.0,0.03,1.9546,0,"ONLY");
3591   gMC->Gspos("I562",12,"I565",0.0,-0.03,-1.9754,0,"ONLY");
3592   gMC->Gspos("I562",13,"I565",0.0,0.03,-5.8855,0,"ONLY");
3593   gMC->Gspos("I562",14,"I565",0.0,-0.03,-9.8154,0,"ONLY");
3594   gMC->Gspos("I562",15,"I565",0.0,0.03,-13.7254,0,"ONLY");
3595   gMC->Gspos("I562",16,"I565",0.0,-0.03,-17.6555,0,"ONLY");
3596   gMC->Gspos("I562",17,"I565",0.0,0.03,-21.5655,0,"ONLY");
3597   gMC->Gspos("I562",18,"I565",0.0,-0.03,-25.4954,0,"ONLY");
3598   gMC->Gspos("I562",19,"I565",0.0,0.03,-29.4054,0,"ONLY");
3599   gMC->Gspos("I562",20,"I565",0.0,-0.03,-33.3354,0,"ONLY");
3600   gMC->Gspos("I562",21,"I565",0.0,0.03,-37.2454,0,"ONLY");
3601   gMC->Gspos("I562",22,"I565",0.0,-0.03,-41.1554,0,"ONLY");
3602   gMC->Gspos("I559",1,"I553",2.25,-1.615,0.0,0,"ONLY");
3603   gMC->Gspos("I560",1,"I553",2.25,-1.615,0.0,0,"ONLY");
3604   gMC->Gspos("I560",2,"I553",-2.25,-1.615,0.0,idrotm[573],"ONLY");
3605   gMC->Gspos("I558",1,"I553",-1.7167,-1.52,0.0,idrotm[583],"ONLY");
3606   gMC->Gspos("I557",1,"I553",-1.8533,-1.341,0.0,idrotm[581],"ONLY");
3607   gMC->Gspos("I558",2,"I553",1.8367,-1.3122,0.0,idrotm[575],"ONLY");
3608   gMC->Gspos("I557",2,"I553",1.75,-1.52,0.0,idrotm[583],"ONLY");
3609   gMC->Gspos("I558",3,"I553",-0.12,1.6613,0.0,idrotm[581],"ONLY");
3610   gMC->Gspos("I557",3,"I553",0.1034,1.6901,0.0,idrotm[575],"ONLY");
3611   gMC->Gspos("I556",3,"I553",-1.031,0.2033,-2.203,idrotm[580],"ONLY");
3612   gMC->Gspos("I556",1,"I553",1.0311,0.2033,-0.287,idrotm[576],"ONLY");
3613   gMC->Gspos("I554",1,"I553",0.0,-1.58,0.71,0,"ONLY");
3614   gMC->Gspos("I555",1,"I553",-0.0072,-1.58,-1.2311,idrotm[633],"ONLY");
3615   gMC->Gspos("I556",2,"I553",1.0311,0.2033,-2.203,idrotm[577],"ONLY");
3616   gMC->Gspos("I556",4,"I553",-1.031,0.2033,-0.287,idrotm[579],"ONLY");
3617   gMC->Gspos("I559",2,"I553",-2.25,-1.615,0.0,idrotm[573],"ONLY");
3618   gMC->Gspos("I561",1,"I553",2.1,-1.615,-0.24,0,"MANY");
3619   gMC->Gspos("I561",2,"I553",-2.1,-1.615,-0.24,idrotm[573],"MANY");
3620   gMC->Gspos("I519",37,"I523",0.0001,-1.79,-0.99,idrotm[586],"ONLY");
3621   gMC->Gspos("I519",36,"I523",-3.2986,-1.79,-1.2943,0,"ONLY");
3622   gMC->Gspos("I519",35,"I523",-3.2986,-1.71,-1.2943,0,"ONLY");
3623   gMC->Gspos("I519",34,"I523",-3.2286,-1.71,-1.2943,0,"ONLY");
3624   gMC->Gspos("I519",33,"I523",-3.2286,-1.79,-1.2943,0,"ONLY");
3625   gMC->Gspos("I519",32,"I523",-3.1586,-1.79,-1.2943,0,"ONLY");
3626   gMC->Gspos("I519",31,"I523",-3.1586,-1.71,-1.2943,0,"ONLY");
3627   gMC->Gspos("I519",30,"I523",-1.3436,-1.71,-1.2943,0,"ONLY");
3628   gMC->Gspos("I519",29,"I523",-1.3436,-1.79,-1.2943,0,"ONLY");
3629   gMC->Gspos("I519",28,"I523",-1.2736,-1.79,-1.2943,0,"ONLY");
3630   gMC->Gspos("I519",27,"I523",-1.2736,-1.71,-1.2943,0,"ONLY");
3631   gMC->Gspos("I519",26,"I523",-1.2036,-1.71,-1.2943,0,"ONLY");
3632   gMC->Gspos("I519",25,"I523",-1.2036,-1.79,-1.2943,0,"ONLY");
3633   gMC->Gspos("I519",24,"I523",-1.0458,-1.79,-1.2943,0,"ONLY");
3634   gMC->Gspos("I519",23,"I523",-1.0458,-1.71,-1.2943,0,"ONLY");
3635   gMC->Gspos("I519",22,"I523",-0.9758,-1.71,-1.2943,0,"ONLY");
3636   gMC->Gspos("I519",21,"I523",-0.9758,-1.79,-1.2943,0,"ONLY");
3637   gMC->Gspos("I519",20,"I523",-0.9058,-1.79,-1.2943,0,"ONLY");
3638   gMC->Gspos("I519",19,"I523",-0.9058,-1.71,-1.2943,0,"ONLY");
3639   gMC->Gspos("I519",18,"I523",0.9092,-1.71,-1.2943,0,"ONLY");
3640   gMC->Gspos("I519",17,"I523",0.9092,-1.79,-1.2943,0,"ONLY");
3641   gMC->Gspos("I519",16,"I523",0.9792,-1.79,-1.2943,0,"ONLY");
3642   gMC->Gspos("I519",15,"I523",0.9792,-1.71,-1.2943,0,"ONLY");
3643   gMC->Gspos("I519",14,"I523",1.0492,-1.71,-1.2943,0,"ONLY");
3644   gMC->Gspos("I519",13,"I523",1.0492,-1.79,-1.2943,0,"ONLY");
3645   gMC->Gspos("I519",12,"I523",1.207,-1.79,-1.2943,0,"ONLY");
3646   gMC->Gspos("I519",11,"I523",1.207,-1.71,-1.2943,0,"ONLY");
3647   gMC->Gspos("I519",10,"I523",1.277,-1.71,-1.2943,0,"ONLY");
3648   gMC->Gspos("I519",9,"I523",1.277,-1.79,-1.2943,0,"ONLY");
3649   gMC->Gspos("I519",8,"I523",1.347,-1.79,-1.2943,0,"ONLY");
3650   gMC->Gspos("I519",7,"I523",1.347,-1.71,-1.2943,0,"ONLY");
3651   gMC->Gspos("I519",6,"I523",3.162,-1.71,-1.2943,0,"ONLY");
3652   gMC->Gspos("I519",5,"I523",3.162,-1.79,-1.2943,0,"ONLY");
3653   gMC->Gspos("I519",4,"I523",3.232,-1.79,-1.2943,0,"ONLY");
3654   gMC->Gspos("I519",3,"I523",3.232,-1.71,-1.2943,0,"ONLY");
3655   gMC->Gspos("I521",12,"I523",-2.8209,-1.7925,-0.982,0,"ONLY");
3656   gMC->Gspos("I521",11,"I523",-1.6895,-1.7925,-0.982,0,"ONLY");
3657   gMC->Gspos("I521",10,"I523",-0.5631,-1.7925,-0.982,0,"ONLY");
3658   gMC->Gspos("I521",9,"I523",0.5633,-1.7925,-0.982,0,"ONLY");
3659   gMC->Gspos("I521",8,"I523",1.6861,-1.7925,-0.982,0,"ONLY");
3660   gMC->Gspos("I521",7,"I523",2.8161,-1.7925,-0.982,0,"ONLY");
3661   gMC->Gspos("I519",2,"I523",3.302,-1.79,-1.2943,0,"ONLY");
3662   gMC->Gspos("I520",3,"I523",0.0001,-1.845,-1.19,0,"ONLY");
3663   gMC->Gspos("I520",2,"I523",-2.2499,-1.845,-1.19,0,"ONLY");
3664   gMC->Gspos("I521",6,"I523",-2.8209,-1.7075,-0.982,0,"ONLY");
3665   gMC->Gspos("I521",5,"I523",-1.6895,-1.7075,-0.982,0,"ONLY");
3666   gMC->Gspos("I521",4,"I523",-0.5631,-1.7075,-0.982,0,"ONLY");
3667   gMC->Gspos("I521",3,"I523",0.5633,-1.7075,-0.982,0,"ONLY");
3668   gMC->Gspos("I521",2,"I523",1.6861,-1.7075,-0.982,0,"ONLY");
3669   gMC->Gspos("I518",1,"I523",0.0001,-1.75,-1.065,0,"ONLY");
3670   gMC->Gspos("I519",1,"I523",3.302,-1.71,-1.2943,0,"ONLY");
3671   gMC->Gspos("I520",1,"I523",2.2501,-1.845,-1.19,0,"ONLY");
3672   gMC->Gspos("I521",1,"I523",2.8161,-1.7075,-0.982,0,"ONLY");
3673   gMC->Gspos("I522",1,"I523",2.2501,-1.655,-1.3,idrotm[583],"MANY");
3674   gMC->Gspos("I522",2,"I523",-2.2499,-1.655,-1.3,idrotm[583],"MANY");
3675   gMC->Gspos("I542",2,"I523",-2.2499,-1.615,0.0,idrotm[573],"ONLY");
3676   gMC->Gspos("I541",2,"I523",-2.2499,-1.615,0.0,idrotm[573],"ONLY");
3677   gMC->Gspos("I541",1,"I523",2.2501,-1.615,0.0,0,"ONLY");
3678   gMC->Gspos("I542",1,"I523",2.2501,-1.615,0.0,0,"ONLY");
3679   gMC->Gspos("I543",1,"I523",2.1001,-1.615,0.955,0,"MANY");
3680   gMC->Gspos("I543",2,"I523",-2.0999,-1.615,0.955,idrotm[573],"MANY");
3681   gMC->Gspos("I537",2,"I523",1.7501,-1.52,0.0,idrotm[583],"ONLY");
3682   gMC->Gspos("I538",2,"I523",1.8368,-1.3122,0.0,idrotm[575],"ONLY");
3683   gMC->Gspos("I537",3,"I523",0.1035,1.6901,0.0,idrotm[575],"ONLY");
3684   gMC->Gspos("I538",3,"I523",-0.1199,1.6612,0.0,idrotm[581],"ONLY");
3685   gMC->Gspos("I538",1,"I523",-1.7166,-1.52,0.0,idrotm[583],"ONLY");
3686   gMC->Gspos("I537",1,"I523",-1.8532,-1.341,0.0,idrotm[581],"ONLY");
3687   gMC->Gspos("I536",3,"I523",-1.031,0.2033,-1.008,idrotm[580],"ONLY");
3688   gMC->Gspos("I536",4,"I523",-1.031,0.2033,0.908,idrotm[579],"ONLY");
3689   gMC->Gspos("I535",1,"I523",-0.0072,-1.58,-0.0361,idrotm[633],"ONLY");
3690   gMC->Gspos("I536",2,"I523",1.0312,0.2033,-1.008,idrotm[577],"ONLY");
3691   gMC->Gspos("I536",1,"I523",1.0312,0.2033,0.908,idrotm[576],"ONLY");
3692   gMC->Gspos("I534",1,"I523",0.0001,-1.58,1.905,0,"ONLY");
3693   gMC->Gspos("I540",1,"I523",0.0001,-1.785,1.905,idrotm[571],"ONLY");
3694   gMC->Gspos("I539",1,"I523",1.8001,-1.75,-0.195,idrotm[571],"ONLY");
3695   gMC->Gspos("I539",2,"I523",-1.7999,-1.75,-0.195,idrotm[572],"ONLY");
3696   gMC->Gspos("ITS6",1,"I566",0.0,0.0,0.0,0,"ONLY");
3697   gMC->Gspos("I550",1,"I544",2.25,-1.615,0.0,0,"ONLY");
3698   gMC->Gspos("I551",1,"I544",2.25,-1.615,0.0,0,"ONLY");
3699   gMC->Gspos("I551",2,"I544",-2.25,-1.615,0.0,idrotm[573],"ONLY");
3700   gMC->Gspos("I550",2,"I544",-2.25,-1.615,0.0,idrotm[573],"ONLY");
3701   gMC->Gspos("I549",1,"I544",1.7167,-1.52,0.0,idrotm[583],"ONLY");
3702   gMC->Gspos("I548",1,"I544",1.8533,-1.341,0.0,idrotm[575],"ONLY");
3703   gMC->Gspos("I547",1,"I544",1.0311,0.2033,-0.287,idrotm[576],"ONLY");
3704   gMC->Gspos("I545",1,"I544",0.0,-1.58,0.71,0,"ONLY");
3705   gMC->Gspos("I547",2,"I544",1.0311,0.2033,-2.203,idrotm[577],"ONLY");
3706   gMC->Gspos("I546",1,"I544",-0.0073,-1.58,-1.2311,idrotm[633],"ONLY");
3707   gMC->Gspos("I547",4,"I544",-1.0311,0.2033,-0.287,idrotm[579],"ONLY");
3708   gMC->Gspos("I547",3,"I544",-1.0311,0.2033,-2.203,idrotm[580],"ONLY");
3709   gMC->Gspos("I548",2,"I544",-0.1033,1.6901,0.0,idrotm[581],"O]NLY");
3710   gMC->Gspos("I549",2,"I544",0.12,1.6613,0.0,idrotm[575],"ONLY");
3711   gMC->Gspos("I549",3,"I544",-1.8367,-1.3122,0.0,idrotm[581],"ONLY");
3712   gMC->Gspos("I548",3,"I544",-1.75,-1.52,0.0,idrotm[583],"ONLY");
3713   gMC->Gspos("I552",1,"I544",2.1,-1.615,-0.24,0,"MANY");
3714   gMC->Gspos("I552",2,"I544",-2.1,-1.615,-0.24,idrotm[573],"MANY");
3715   gMC->Gspos("I515",12,"I516",-1.6896,-1.7075,-0.9822,0,"ONLY");
3716   gMC->Gspos("I515",11,"I516",-1.6896,-1.7925,-0.9822,0,"ONLY");
3717   gMC->Gspos("I513",37,"I516",0.0,-1.79,-1.035,idrotm[586],"ONLY");
3718   gMC->Gspos("I513",1,"I516",-3.2987,-1.71,-1.2943,0,"ONLY");
3719   gMC->Gspos("I515",1,"I516",-2.816,-1.7075,-0.9822,0,"ONLY");
3720   gMC->Gspos("I514",1,"I516",-2.25,-1.845,-1.19,0,"ONLY");
3721   gMC->Gspos("I514",2,"I516",0.0,-1.845,-1.19,0,"ONLY");
3722   gMC->Gspos("I514",3,"I516",2.25,-1.845,-1.19,0,"ONLY");
3723   gMC->Gspos("I515",2,"I516",-2.816,-1.7925,-0.9822,0,"ONLY");
3724   gMC->Gspos("I513",2,"I516",-3.2987,-1.79,-1.2943,0,"ONLY");
3725   gMC->Gspos("I515",3,"I516",-0.5632,-1.7075,-0.9822,0,"ONLY");
3726   gMC->Gspos("I515",4,"I516",-0.5632,-1.7925,-0.9822,0,"ONLY");
3727   gMC->Gspos("I515",5,"I516",0.5632,-1.7925,-0.9822,0,"ONLY");
3728   gMC->Gspos("I515",6,"I516",0.5632,-1.7075,-0.9822,0,"ONLY");
3729   gMC->Gspos("I515",7,"I516",1.6896,-1.7075,-0.9822,0,"ONLY");
3730   gMC->Gspos("I515",8,"I516",1.6896,-1.7925,-0.9822,0,"ONLY");
3731   gMC->Gspos("I515",9,"I516",2.816,-1.7925,-0.9822,0,"ONLY");
3732   gMC->Gspos("I515",10,"I516",2.816,-1.7075,-0.9822,0,"ONLY");
3733   gMC->Gspos("I513",3,"I516",-3.2287,-1.79,-1.2943,0,"ONLY");
3734   gMC->Gspos("I513",4,"I516",-3.2287,-1.71,-1.2943,0,"ONLY");
3735   gMC->Gspos("I513",5,"I516",-3.1587,-1.71,-1.2943,0,"ONLY");
3736   gMC->Gspos("I513",6,"I516",-3.1587,-1.79,-1.2943,0,"ONLY");
3737   gMC->Gspos("I513",7,"I516",-1.3437,-1.79,-1.2943,0,"ONLY");
3738   gMC->Gspos("I513",8,"I516",-1.3437,-1.71,-1.2943,0,"ONLY");
3739   gMC->Gspos("I513",9,"I516",-1.2737,-1.71,-1.2943,0,"ONLY");
3740   gMC->Gspos("I513",10,"I516",-1.2737,-1.79,-1.2943,0,"ONLY");
3741   gMC->Gspos("I513",11,"I516",-1.2037,-1.79,-1.2943,0,"ONLY");
3742   gMC->Gspos("I513",12,"I516",-1.2037,-1.71,-1.2943,0,"ONLY");
3743   gMC->Gspos("I513",13,"I516",-1.046,-1.71,-1.2943,0,"ONLY");
3744   gMC->Gspos("I513",14,"I516",-1.046,-1.79,-1.2943,0,"ONLY");
3745   gMC->Gspos("I513",15,"I516",-0.976,-1.79,-1.2943,0,"ONLY");
3746   gMC->Gspos("I513",16,"I516",-0.976,-1.71,-1.2943,0,"ONLY");
3747   gMC->Gspos("I513",17,"I516",-0.906,-1.71,-1.2943,0,"ONLY");
3748   gMC->Gspos("I513",18,"I516",-0.906,-1.79,-1.2943,0,"ONLY");
3749   gMC->Gspos("I513",19,"I516",0.9091,-1.79,-1.2943,0,"ONLY");
3750   gMC->Gspos("I513",20,"I516",0.9091,-1.71,-1.2943,0,"ONLY");
3751   gMC->Gspos("I513",21,"I516",0.9791,-1.71,-1.2943,0,"ONLY");
3752   gMC->Gspos("I513",22,"I516",0.9791,-1.79,-1.2943,0,"ONLY");
3753   gMC->Gspos("I513",23,"I516",1.0491,-1.79,-1.2943,0,"ONLY");
3754   gMC->Gspos("I513",24,"I516",1.0491,-1.71,-1.2943,0,"ONLY");
3755   gMC->Gspos("I513",25,"I516",1.2068,-1.71,-1.2943,0,"ONLY");
3756   gMC->Gspos("I513",26,"I516",1.2068,-1.79,-1.2943,0,"ONLY");
3757   gMC->Gspos("I513",27,"I516",1.2768,-1.79,-1.2943,0,"ONLY");
3758   gMC->Gspos("I513",28,"I516",1.2768,-1.71,-1.2943,0,"ONLY");
3759   gMC->Gspos("I513",29,"I516",1.3469,-1.71,-1.2943,0,"ONLY");
3760   gMC->Gspos("I513",30,"I516",1.3469,-1.79,-1.2943,0,"ONLY");
3761   gMC->Gspos("I513",31,"I516",3.1619,-1.79,-1.2943,0,"ONLY");
3762   gMC->Gspos("I513",32,"I516",3.1619,-1.71,-1.2943,0,"ONLY");
3763   gMC->Gspos("I513",33,"I516",3.2319,-1.71,-1.2943,0,"ONLY");
3764   gMC->Gspos("I513",34,"I516",3.2319,-1.79,-1.2943,0,"ONLY");
3765   gMC->Gspos("I513",35,"I516",3.3019,-1.79,-1.2943,0,"ONLY");
3766   gMC->Gspos("I513",36,"I516",3.3019,-1.71,-1.2943,0,"ONLY");
3767   gMC->Gspos("I512",1,"I516",0.0,-1.75,-1.065,0,"ONLY");
3768   gMC->Gspos("I528",1,"I516",1.7167,-1.52,0.0,idrotm[583],"ONLY");
3769   gMC->Gspos("I527",1,"I516",1.8534,-1.341,0.0,idrotm[575],"ONLY");
3770   gMC->Gspos("I528",2,"I516",0.12,1.6613,0.0,idrotm[575],"ONLY");
3771   gMC->Gspos("I527",2,"I516",-0.1033,1.6901,0.0,idrotm[581],"ONLY");
3772   gMC->Gspos("I527",3,"I516",-1.75,-1.52,0.0,idrotm[583],"ONLY");
3773   gMC->Gspos("I528",3,"I516",-1.8367,-1.3122,0.0,idrotm[581],"ONLY");
3774   gMC->Gspos("I526",2,"I516",1.0311,0.2033,-1.008,idrotm[577],"ONLY");
3775   gMC->Gspos("I525",1,"I516",-0.0073,-1.58,-0.0361,idrotm[633],"ONLY");
3776   gMC->Gspos("I524",1,"I516",0.0,-1.58,1.905,0,"ONLY");
3777   gMC->Gspos("I526",1,"I516",1.0311,0.2033,0.908,idrotm[576],"ONLY");
3778   gMC->Gspos("I526",3,"I516",-1.0311,0.2033,0.908,idrotm[579],"ONLY");
3779   gMC->Gspos("I526",4,"I516",-1.0311,0.2033,-1.008,idrotm[580],"ONLY");
3780   gMC->Gspos("I529",1,"I516",1.8,-1.75,-0.195,idrotm[571],"ONLY");
3781   gMC->Gspos("I530",1,"I516",0.0,-1.785,1.905,idrotm[571],"ONLY");
3782   gMC->Gspos("I529",2,"I516",-1.8,-1.75,-0.195,idrotm[572],"ONLY");
3783   gMC->Gspos("I517",1,"I516",2.25,-1.655,-1.3,idrotm[583],"MANY");
3784   gMC->Gspos("I517",2,"I516",-2.25,-1.655,-1.3,idrotm[584],"MANY");
3785   gMC->Gspos("I531",2,"I516",-2.25,-1.615,0.0,idrotm[573],"ONLY");
3786   gMC->Gspos("I531",1,"I516",2.25,-1.615,0.0,0,"ONLY");
3787   gMC->Gspos("I532",1,"I516",2.25,-1.615,0.0,0,"ONLY");
3788   gMC->Gspos("I532",2,"I516",-2.25,-1.615,0.0,idrotm[573],"ONLY");
3789   gMC->Gspos("I533",1,"I516",2.1,-1.615,0.955,0,"MANY");
3790   gMC->Gspos("I533",2,"I516",-2.1,-1.615,0.955,idrotm[573],"MANY");
3791   gMC->Gspos("ITS5",1,"I562",0.0,0.0,0.0,0,"ONLY");
3792
3793   
3794   // --- Place volumes of shield between SPD and SDD 
3795
3796
3797   gMC->Gspos("IC01",1,"ITSD",0.0,0.0,0.0,0,"ONLY");
3798   gMC->Gspos("IC02",1,"ITSD",0.0,0.0,25.+8.75,0,"ONLY");  
3799   gMC->Gspos("IC02",2,"ITSD",0.0,0.0,-25.-8.75,idrotm[200],"ONLY");  
3800   //gMC->Gspos("IC03",1,"ITSD",0.0,0.0,25.+17.5+7.875,0,"ONLY");  
3801   //gMC->Gspos("IC03",2,"ITSD",0.0,0.0,-25.-17.5-7.875,idrotm[200],"ONLY");   
3802   
3803   
3804   // --- Place volumes of cylinders between SPD and SDD and SDD and SSD 
3805   
3806   gMC->Gspos("ICY1",1,"ITSD",0.0,0.0,0.,0,"ONLY");    // deve essere 
3807   gMC->Gspos("ICY2",1,"ITSD",0.0,0.0,-0.7,0,"ONLY");    // deve essere 0
3808   
3809
3810   // --- Place volumes of SDD cone ---------------------------------- 
3811   
3812   
3813   gMC->Gspos("I093",1,"IS02",0.0,0.0,0.0,0,"MANY");
3814   gMC->Gspos("I093",2,"IS02",0.0,0.0,0.0,idrotm[856],"MANY");
3815   gMC->Gspos("I099",4,"IS02",0.0,0.0,0.0,idrotm[857],"ONLY");
3816   gMC->Gspos("I099",3,"IS02",0.0,0.0,0.0,idrotm[858],"ONLY");
3817   gMC->Gspos("I099",5,"IS02",0.0,0.0,0.0,idrotm[859],"ONLY");
3818   gMC->Gspos("I099",6,"IS02",0.0,0.0,0.0,idrotm[860],"ONLY");
3819   gMC->Gspos("I099",7,"IS02",0.0,0.0,0.0,idrotm[861],"ONLY");
3820   gMC->Gspos("I099",2,"IS02",0.0,0.0,0.0,idrotm[862],"ONLY");
3821   gMC->Gspos("I200",4,"IS02",0.0,0.0,0.0,idrotm[863],"ONLY");
3822   gMC->Gspos("I200",3,"IS02",0.0,0.0,0.0,idrotm[864],"ONLY");
3823   gMC->Gspos("I200",2,"IS02",0.0,0.0,0.0,idrotm[865],"ONLY");
3824   gMC->Gspos("I200",13,"IS02",0.0,0.0,0.0,idrotm[867],"ONLY");
3825   gMC->Gspos("I200",12,"IS02",0.0,0.0,0.0,idrotm[869],"ONLY");
3826   gMC->Gspos("I200",11,"IS02",0.0,0.0,0.0,idrotm[870],"ONLY");
3827   gMC->Gspos("I200",10,"IS02",0.0,0.0,0.0,idrotm[871],"ONLY");
3828   gMC->Gspos("I200",9,"IS02",0.0,0.0,0.0,idrotm[872],"ONLY");
3829   gMC->Gspos("I200",8,"IS02",0.0,0.0,0.0,idrotm[873],"ONLY");
3830   gMC->Gspos("I200",7,"IS02",0.0,0.0,0.0,idrotm[874],"ONLY");
3831   gMC->Gspos("I200",6,"IS02",0.0,0.0,0.0,idrotm[875],"ONLY");
3832   gMC->Gspos("I200",5,"IS02",0.0,0.0,0.0,idrotm[876],"ONLY");
3833   gMC->Gspos("I090",2,"IS02",0.0,0.0,-39.4,0,"ONLY");    
3834   gMC->Gspos("I090",1,"IS02",0.0,0.0,39.4,idrotm[856],"ONLY");  
3835   gMC->Gspos("I099",9,"IS02",0.0,0.0,0.0,idrotm[877],"ONLY");
3836   gMC->Gspos("I099",8,"IS02",0.0,0.0,0.0,idrotm[879],"ONLY");
3837   gMC->Gspos("I099",1,"IS02",0.0,0.0,0.0,idrotm[880],"ONLY");
3838   gMC->Gspos("I099",12,"IS02",0.0,0.0,0.0,idrotm[881],"ONLY");
3839   gMC->Gspos("I099",11,"IS02",0.0,0.0,0.0,idrotm[851],"ONLY");
3840   gMC->Gspos("I099",10,"IS02",0.0,0.0,0.0,idrotm[882],"ONLY");
3841   gMC->Gspos("I200",23,"IS02",0.0,0.0,0.0,idrotm[898],"ONLY");
3842   gMC->Gspos("I200",24,"IS02",0.0,0.0,0.0,idrotm[883],"ONLY");
3843   gMC->Gspos("I200",1,"IS02",0.0,0.0,0.0,idrotm[884],"ONLY");
3844   gMC->Gspos("I200",14,"IS02",0.0,0.0,0.0,idrotm[885],"ONLY");
3845   gMC->Gspos("I200",15,"IS02",0.0,0.0,0.0,idrotm[887],"ONLY");
3846   gMC->Gspos("I200",16,"IS02",0.0,0.0,0.0,idrotm[888],"ONLY");
3847   gMC->Gspos("I200",17,"IS02",0.0,0.0,0.0,idrotm[889],"ONLY");
3848   gMC->Gspos("I200",18,"IS02",0.0,0.0,0.0,idrotm[890],"ONLY");
3849   gMC->Gspos("I200",22,"IS02",0.0,0.0,0.0,idrotm[891],"ONLY");
3850   gMC->Gspos("I200",21,"IS02",0.0,0.0,0.0,idrotm[892],"ONLY");
3851   gMC->Gspos("I200",20,"IS02",0.0,0.0,0.0,idrotm[868],"ONLY");
3852   gMC->Gspos("I200",19,"IS02",0.0,0.0,0.0,idrotm[893],"ONLY");
3853   gMC->Gspos("I098",1,"IS02",0.0,0.0,33.6,0,"ONLY");    
3854   gMC->Gspos("I097",1,"IS02",0.0,0.0,26.6,0,"ONLY");    
3855   gMC->Gspos("I097",2,"IS02",0.0,0.0,-26.6,idrotm[856],"ONLY");  
3856   gMC->Gspos("I098",2,"IS02",0.0,0.0,-33.6,idrotm[856],"ONLY");  
3857   gMC->Gspos("I202",1,"IS02",12.1,0.0,33.84,0,"ONLY");
3858   gMC->Gspos("I202",6,"IS02",-6.05,-10.4789,33.84,idrotm[930],"ONLY");
3859   gMC->Gspos("I202",5,"IS02",-6.05,10.4789,33.84,idrotm[929],"ONLY");
3860   gMC->Gspos("I202",2,"IS02",12.1,0.0,-33.84,idrotm[856],"ONLY");
3861   gMC->Gspos("I202",3,"IS02",-6.05,10.4789,-33.84,idrotm[932],"ONLY");
3862   gMC->Gspos("I202",4,"IS02",-6.05,-10.4789,-33.84,idrotm[934],"ONLY");
3863   gMC->Gspos("I203",12,"IS02",21.8453,0.0,-42.24,idrotm[856],"ONLY");
3864   gMC->Gspos("I203",11,"IS02",10.9227,-18.9186,-42.24,idrotm[935],"ONLY");
3865   gMC->Gspos("I203",10,"IS02",10.9227,-18.9186,42.24,idrotm[846],"ONLY");
3866   gMC->Gspos("I203",9,"IS02",-10.9227,-18.9186,-42.24,idrotm[934],"ONLY");
3867   gMC->Gspos("I203",8,"IS02",-10.9227,-18.9186,42.24,idrotm[930],"ONLY");
3868   gMC->Gspos("I203",7,"IS02",-21.8453,0.0,-42.24,idrotm[933],"ONLY");
3869   gMC->Gspos("I203",6,"IS02",-21.8453,0.0,42.24,idrotm[878],"ONLY");
3870   gMC->Gspos("I203",5,"IS02",-10.9227,18.9186,-42.24,idrotm[932],"ONLY");
3871   gMC->Gspos("I203",4,"IS02",-10.9227,18.9186,42.24,idrotm[929],"ONLY");
3872   gMC->Gspos("I203",3,"IS02",10.9227,18.9186,-42.24,idrotm[931],"ONLY");
3873   gMC->Gspos("I203",2,"IS02",10.9227,18.9186,42.24,idrotm[853],"ONLY");
3874   gMC->Gspos("I203",1,"IS02",21.8453,0.0,42.24,0,"ONLY");
3875   gMC->Gspos("I095",1,"I098",0.0,0.0,0.0,0,"ONLY");
3876   gMC->Gspos("I096",23,"I098",22.77,0.0,0.0,idrotm[894],"MANY");
3877   gMC->Gspos("I096",14,"I098",22.3754,6.57,0.0,idrotm[895],"MANY");
3878   gMC->Gspos("I096",3,"I098",19.1553,12.3104,0.0,idrotm[896],"MANY");
3879   gMC->Gspos("I096",16,"I098",15.2714,17.6241,0.0,idrotm[897],"MANY");
3880   gMC->Gspos("I096",5,"I098",9.459,20.7123,0.0,idrotm[899],"MANY");
3881   gMC->Gspos("I096",18,"I098",3.3188,23.0826,0.0,idrotm[900],"MANY");
3882   gMC->Gspos("I096",7,"I098",-3.2405,22.5382,0.0,idrotm[901],"MANY");
3883   gMC->Gspos("I096",20,"I098",-9.6875,21.2126,0.0,idrotm[902],"MANY");
3884   gMC->Gspos("I096",9,"I098",-14.9112,17.2084,0.0,idrotm[903],"MANY");
3885   gMC->Gspos("I096",22,"I098",-19.618,12.6077,0.0,idrotm[904],"MANY");
3886   gMC->Gspos("I096",11,"I098",-21.8477,6.4151,0.0,idrotm[905],"MANY");
3887   gMC->Gspos("I096",24,"I098",-23.32,0.0,0.0,idrotm[906],"MANY");
3888   gMC->Gspos("I096",13,"I098",-21.8477,-6.4151,0.0,idrotm[907],"MANY");
3889   gMC->Gspos("I096",4,"I098",-19.618,-12.6077,0.0,idrotm[908],"MANY");
3890   gMC->Gspos("I096",15,"I098",-14.9112,-17.2084,0.0,idrotm[909],"MANY");
3891   gMC->Gspos("I096",6,"I098",-9.6875,-21.2126,0.0,idrotm[910],"MANY");
3892   gMC->Gspos("I096",17,"I098",-3.2405,-22.5382,0.0,idrotm[911],"MANY");
3893   gMC->Gspos("I096",8,"I098",3.3188,-23.0826,0.0,idrotm[912],"MANY");
3894   gMC->Gspos("I096",19,"I098",9.459,-20.7123,0.0,idrotm[913],"MANY");
3895   gMC->Gspos("I096",10,"I098",15.2714,-17.6241,0.0,idrotm[914],"MANY");
3896   gMC->Gspos("I096",21,"I098",19.1553,-12.3104,0.0,idrotm[915],"MANY");
3897   gMC->Gspos("I096",12,"I098",22.3754,-6.57,0.0,idrotm[916],"MANY");
3898   gMC->Gspos("I094",1,"I097",0.0,0.0,0.0,0,"ONLY");
3899   gMC->Gspos("I096",1,"I097",13.87,0.0,0.0,idrotm[894],"MANY");
3900   gMC->Gspos("I096",32,"I097",13.037,6.2783,0.0,idrotm[917],"MANY");
3901   gMC->Gspos("I096",25,"I097",8.6478,10.844,0.0,idrotm[918],"MANY");
3902   gMC->Gspos("I096",34,"I097",3.2199,14.1072,0.0,idrotm[919],"MANY");
3903   gMC->Gspos("I096",27,"I097",-3.0864,13.5223,0.0,idrotm[920],"MANY");
3904   gMC->Gspos("I096",36,"I097",-9.0219,11.3131,0.0,idrotm[921],"MANY");
3905   gMC->Gspos("I096",29,"I097",-12.4964,6.018,0.0,idrotm[922],"MANY");
3906   gMC->Gspos("I096",2,"I097",-14.47,0.0,0.0,idrotm[906],"MANY");
3907   gMC->Gspos("I096",31,"I097",-12.4964,-6.018,0.0,idrotm[923],"MANY");
3908   gMC->Gspos("I096",26,"I097",-9.0219,-11.3131,0.0,idrotm[924],"MANY");
3909   gMC->Gspos("I096",33,"I097",-3.0864,-13.5223,0.0,idrotm[925],"MANY");
3910   gMC->Gspos("I096",28,"I097",3.2199,-14.1072,0.0,idrotm[926],"MANY");
3911   gMC->Gspos("I096",35,"I097",8.6478,-10.844,0.0,idrotm[927],"MANY");
3912   gMC->Gspos("I096",30,"I097",13.037,-6.2783,0.0,idrotm[928],"MANY");
3913   
3914   
3915   // --- Place volumes of SSD cone ----------------------------------    
3916
3917     
3918   gMC->Gspos("I212",2,"IS01",0.0,0.0,0.0,idrotm[701],"MANY");
3919   gMC->Gspos("I212",1,"IS01",0.0,0.0,0.0,0,"MANY");
3920   gMC->Gspos("I211",1,"IS01",0.0,0.0,-56.5,0,"ONLY");
3921   gMC->Gspos("I217",1,"IS01",0.0,0.0,-44.4,0,"ONLY");             // this will change after PPR to be symmetric
3922   gMC->Gspos("I219",1,"IS01",0.0,0.0,-50.25,0,"ONLY");            // this will change after PPR to be symmetric
3923   gMC->Gspos("I211",2,"IS01",0.0,0.0,56.5,idrotm[701],"ONLY");   
3924   gMC->Gspos("I219",2,"IS01",0.0,0.0,51.65,idrotm[701],"ONLY");   // this will change after PPR to be symmetric
3925   gMC->Gspos("I217",2,"IS01",0.0,0.0,45.8,idrotm[701],"ONLY");    // this will change after PPR to be symmetric
3926   gMC->Gspos("I214",2,"IS01",0.0,0.0,67.25,idrotm[701],"ONLY");   
3927   gMC->Gspos("I213",2,"IS01",0.0,0.0,62.25,idrotm[701],"ONLY");  
3928   gMC->Gspos("I213",1,"IS01",0.0,0.0,-62.25,0,"ONLY");             
3929   gMC->Gspos("I214",1,"IS01",0.0,0.0,-67.25,0,"ONLY");           
3930   gMC->Gspos("I215",19,"IS01",0.0,0.0,0.0,idrotm[702],"MANY");
3931   gMC->Gspos("I215",21,"IS01",0.0,0.0,0.0,idrotm[703],"MANY");
3932   gMC->Gspos("I215",23,"IS01",0.0,0.0,0.0,idrotm[704],"MANY");
3933   gMC->Gspos("I215",24,"IS01",0.0,0.0,0.0,idrotm[705],"MANY");
3934   gMC->Gspos("I215",3,"IS01",0.0,0.0,0.0,idrotm[706],"MANY");
3935   gMC->Gspos("I215",5,"IS01",0.0,0.0,0.0,idrotm[707],"MANY");
3936   gMC->Gspos("I215",7,"IS01",0.0,0.0,0.0,idrotm[708],"MANY");
3937   gMC->Gspos("I215",9,"IS01",0.0,0.0,0.0,idrotm[709],"MANY");
3938   gMC->Gspos("I215",11,"IS01",0.0,0.0,0.0,idrotm[710],"MANY");
3939   gMC->Gspos("I215",13,"IS01",0.0,0.0,0.0,idrotm[711],"MANY");
3940   gMC->Gspos("I215",15,"IS01",0.0,0.0,0.0,idrotm[712],"MANY");
3941   gMC->Gspos("I215",17,"IS01",0.0,0.0,0.0,idrotm[713],"MANY");
3942   gMC->Gspos("I216",9,"IS01",0.0,0.0,45.5,idrotm[714],"ONLY");
3943   gMC->Gspos("I216",11,"IS01",0.0,0.0,45.5,idrotm[715],"ONLY");
3944   gMC->Gspos("I216",12,"IS01",0.0,0.0,45.5,idrotm[716],"ONLY");
3945   gMC->Gspos("I216",3,"IS01",0.0,0.0,45.5,idrotm[717],"ONLY");
3946   gMC->Gspos("I216",5,"IS01",0.0,0.0,45.5,idrotm[718],"ONLY");
3947   gMC->Gspos("I216",7,"IS01",0.0,0.0,45.5,idrotm[719],"ONLY");
3948   gMC->Gspos("I216",10,"IS01",0.0,0.0,-44,idrotm[720],"ONLY");
3949   gMC->Gspos("I216",1,"IS01",0.0,0.0,-44,idrotm[721],"ONLY");
3950   gMC->Gspos("I216",2,"IS01",0.0,0.0,-44,idrotm[722],"ONLY");
3951   gMC->Gspos("I216",4,"IS01",0.0,0.0,-44,idrotm[723],"ONLY");
3952   gMC->Gspos("I216",6,"IS01",0.0,0.0,-44,idrotm[724],"ONLY");
3953   gMC->Gspos("I216",8,"IS01",0.0,0.0,-44,idrotm[725],"ONLY");
3954   gMC->Gspos("I215",1,"IS01",0.0,0.0,0.0,idrotm[726],"MANY");
3955   gMC->Gspos("I215",2,"IS01",0.0,0.0,0.0,idrotm[727],"MANY");
3956   gMC->Gspos("I215",4,"IS01",0.0,0.0,0.0,idrotm[728],"MANY");
3957   gMC->Gspos("I215",6,"IS01",0.0,0.0,0.0,idrotm[729],"MANY");
3958   gMC->Gspos("I215",8,"IS01",0.0,0.0,0.0,idrotm[733],"MANY");
3959   gMC->Gspos("I215",10,"IS01",0.0,0.0,0.0,idrotm[730],"MANY");
3960   gMC->Gspos("I215",12,"IS01",0.0,0.0,0.0,idrotm[731],"MANY");
3961   gMC->Gspos("I215",14,"IS01",0.0,0.0,0.0,idrotm[768],"MANY");
3962   gMC->Gspos("I215",16,"IS01",0.0,0.0,0.0,idrotm[732],"MANY");
3963   gMC->Gspos("I215",18,"IS01",0.0,0.0,0.0,idrotm[734],"MANY");
3964   gMC->Gspos("I215",20,"IS01",0.0,0.0,0.0,idrotm[798],"MANY");
3965   gMC->Gspos("I215",22,"IS01",0.0,0.0,0.0,idrotm[735],"MANY");
3966            
3967                     
3968   // --- Place subdetectors' mother volumes and supports' mother volumes
3969   //     into ITS mother volume ITSD
3970     
3971   gMC->Gspos("IT12",1,"ITSD",0.0,0.0,0.0,0,"ONLY");  // SPD mother volume
3972   gMC->Gspos("IT34",1,"ITSD",0.0,0.0,0.0,0,"ONLY");  // SDD mother volume
3973   gMC->Gspos("IT56",1,"ITSD",0.0,0.0,0.0,0,"ONLY");  // SSD mother volume
3974   gMC->Gspos("IS02",1,"ITSD",0.0,0.0,0.0,0,"ONLY");  // SDD cones/supports
3975   gMC->Gspos("IS01",1,"ITSD",0.0,0.0,0.0,0,"ONLY");  // SSD cones/supports
3976         
3977
3978   // ****************************  SERVICES  *********************************
3979   
3980
3981   // --- DEFINE CABLES AT THE END OF THE ITS CONES - COPPER PART
3982   
3983   dgh[0] = 46.;    
3984   dgh[1] = 46.+1.0;  
3985   dgh[2] = 9.5;
3986   
3987   gMC->Gsvolu("ICCU", "TUBE", idtmed[213], dgh, 3);  
3988   gMC->Gspos("ICCU", 1, "ITSV", 0., 0., 83.5, 0, "ONLY");
3989   gMC->Gspos("ICCU", 2, "ITSV", 0., 0., -83.5, idrotm[200], "ONLY");
3990   
3991   // --- DEFINE CABLES AT THE END OF THE ITS CONES - CARBON PART
3992   
3993   dgh[0] = 46.+1.0;  
3994   dgh[1] = 46.+1.0+1.5;   
3995   dgh[2] = 9.5;
3996   
3997   gMC->Gsvolu("ICCC", "TUBE", idtmed[225], dgh, 3);  
3998   gMC->Gspos("ICCC", 1, "ITSV", 0., 0., 83.5, 0, "ONLY");
3999   gMC->Gspos("ICCC", 2, "ITSV", 0., 0., -83.5, idrotm[200], "ONLY");  
4000   
4001   // --- DEFINE PATCH PANELS AT THE END OF THE ITS CONES
4002   
4003   dgh[0] = 46.;  
4004   dgh[1] = 56.;
4005   dgh[2] = 2.25;
4006   
4007   gMC->Gsvolu("IPAN", "TUBE", idtmed[210], dgh, 3);  
4008   gMC->Gspos("IPAN", 1, "ITSV", 0., 0., 95.25, 0, "ONLY");  
4009   gMC->Gspos("IPAN", 2, "ITSV", 0., 0., -95.25, idrotm[200], "ONLY"); 
4010   
4011   // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE ABSORBER SIDE - COPPER PART
4012   //     UPPER PART
4013   
4014   dgh[0] = (ztpc-97.5)/2.;
4015   dgh[1] = 46.2;     
4016   dgh[2] = 46.2+1.0;  
4017   dgh[3] = 62.3;     
4018   dgh[4] = 62.3+1.0;   
4019   dgh[5] = 12.;    
4020   dgh[6] = 168.;
4021   gMC->Gsvolu("ICU1", "CONS", idtmed[213], dgh, 7);    
4022   gMC->Gspos("ICU1", 1, "ITSV", 0., 0., 97.7+dgh[0], 0, "ONLY");   
4023   
4024   // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE ABSORBER SIDE - COPPER PART
4025   //     LOWER PART
4026   
4027   dgh[0] = (ztpc-97.5)/2.;
4028   dgh[1] = 46.2;      
4029   dgh[2] = 46.2+1.0;  
4030   dgh[3] = 62.3;      
4031   dgh[4] = 62.3+1.0;  
4032   dgh[5] = 192.;    
4033   dgh[6] = 348.;
4034   gMC->Gsvolu("ICU2", "CONS", idtmed[213], dgh, 7);    
4035   gMC->Gspos("ICU2", 1, "ITSV", 0., 0., 97.5+dgh[0], 0, "ONLY");  
4036
4037
4038    // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE ABSORBER SIDE - CARBON PART
4039    //     UPPER PART
4040   
4041   dgh[0] = (ztpc-97.5)/2.;
4042   dgh[1] = 46.2+1.0;      
4043   dgh[2] = 46.2+1.0+1.5;  
4044   dgh[3] = 62.3+1.0;      
4045   dgh[4] = 62.3+1.0+1.5;  
4046   dgh[5] = 12.;    
4047   dgh[6] = 168.;  
4048   gMC->Gsvolu("ICC1", "CONS", idtmed[225], dgh, 7);    
4049   gMC->Gspos("ICC1", 1, "ITSV", 0., 0., 97.5+dgh[0], 0, "ONLY");   
4050   
4051   // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE ABSORBER SIDE - CARBON PART
4052   //     LOWER PART
4053   
4054   dgh[0] = (ztpc-97.5)/2.;
4055   dgh[1] = 46.2+1.0;    
4056   dgh[2] = 46.2+1.0+1.5;
4057   dgh[3] = 62.3+1.0;    
4058   dgh[4] = 62.3+1.0+1.5;
4059   dgh[5] = 192.;    
4060   dgh[6] = 348.;  
4061   gMC->Gsvolu("ICC2", "CONS", idtmed[225], dgh, 7);    
4062   gMC->Gspos("ICC2", 1, "ITSV", 0., 0., 97.5+dgh[0], 0, "ONLY");  
4063    
4064   // --- DEFINE CABLES/COOLING BEHIND THE TPC ON THE ABSORBER SIDE - COPPER PART
4065   //     UPPER PART
4066     
4067   dgh[0] = 62.1; 
4068   dgh[1] = 74.5;
4069   dgh[2] = 0.5;
4070   dgh[3] = 12.;
4071   dgh[4] = 168.;
4072   gMC->Gsvolu("ICU3", "TUBS", idtmed[213], dgh, 5);    
4073   gMC->Gspos("ICU3", 1, "ITSV", 0., 0., ztpc+1.5+dgh[2], 0, "ONLY");  
4074
4075   // --- DEFINE CABLES/COOLING BEHIND THE TPC ON THE ABSORBER SIDE - COPPER PART
4076   //     LOWER PART
4077   
4078   dgh[0] = 62.1;  
4079   dgh[1] = 74.5;
4080   dgh[2] = 0.5;
4081   dgh[3] = 192.;
4082   dgh[4] = 348.;
4083   gMC->Gsvolu("ICU4", "TUBS", idtmed[213], dgh, 5);    
4084   gMC->Gspos("ICU4", 1, "ITSV", 0., 0., ztpc+1.5+dgh[2], 0, "ONLY");     
4085      
4086   // --- DEFINE CABLES/COOLING BEHIND THE TPC ON THE ABSORBER SIDE - CARBON PART
4087   //     UPPER PART
4088
4089   dgh[0] = 62.1;  
4090   dgh[1] = 74.5;
4091   dgh[2] = 0.75;
4092   dgh[3] = 12.;
4093   dgh[4] = 168.;
4094   gMC->Gsvolu("ICC3", "TUBS", idtmed[225], dgh, 5);    
4095   gMC->Gspos("ICC3", 1, "ITSV", 0., 0., ztpc+dgh[2], 0, "ONLY");   
4096     
4097   // --- DEFINE CABLES/COOLING BEHIND THE TPC ON THE ABSORBER SIDE - CARBON PART
4098   //     LOWER PART
4099
4100   dgh[0] = 62.1;  
4101   dgh[1] = 74.5;
4102   dgh[2] = 0.75;
4103   dgh[3] = 192.;
4104   dgh[4] = 348.;
4105   gMC->Gsvolu("ICC4", "TUBS", idtmed[225], dgh, 5);    
4106   gMC->Gspos("ICC4", 1, "ITSV", 0., 0., ztpc+dgh[2], 0, "ONLY");  
4107   
4108   // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE OTHER SIDE W.R.T.
4109   //     THE ABSORBER - COPPER PART - UPPER PART
4110   
4111   dgh[0] = 46.;      
4112   dgh[1] = 46.+1.0;  
4113   dgh[2] = (ztpc-97.5+1.5)/2.;
4114   dgh[3] = 12.;
4115   dgh[4] = 168.;
4116   gMC->Gsvolu("ICU5", "TUBS", idtmed[213], dgh, 5);   
4117   gMC->Gspos("ICU5", 1, "ITSV", 0., 0., -97.5-dgh[2], 0, "ONLY");  
4118   
4119   // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE OTHER SIDE W.R.T.
4120   //     THE ABSORBER - COPPER PART - LOWER PART
4121   
4122   dgh[0] = 46.;  
4123   dgh[1] = 46.+1.0;  
4124   dgh[2] = (ztpc-97.5+1.5)/2.;
4125   dgh[3] = 192.;
4126   dgh[4] = 348.;  
4127   gMC->Gsvolu("ICU6", "TUBS", idtmed[213], dgh, 5);   
4128   gMC->Gspos("ICU6", 1, "ITSV", 0., 0., -97.5-dgh[2], 0, "ONLY");    
4129   
4130   // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE OTHER SIDE W.R.T.
4131   //     THE ABSORBER - CARBON PART - UPPER PART
4132   
4133   dgh[0] = 46.+1.0;  
4134   dgh[1] = 46.+1.0+1.5; 
4135   dgh[2] = (ztpc-97.5)/2.;
4136   dgh[3] = 12.;
4137   dgh[4] = 168.;  
4138   gMC->Gsvolu("ICC5", "TUBS", idtmed[225], dgh, 5);   
4139   gMC->Gspos("ICC5", 1, "ITSV", 0., 0., -97.5-dgh[2], 0, "ONLY");   
4140   
4141   // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE OTHER SIDE W.R.T.
4142   //     THE ABSORBER - CARBON PART - LOWER PART
4143   
4144   dgh[0] = 46.+1.0;   
4145   dgh[1] = 46.+1.0+1.5;  
4146   dgh[2] = (ztpc-97.5)/2.;
4147   dgh[3] = 192.;
4148   dgh[4] = 348.;  
4149   gMC->Gsvolu("ICC6", "TUBS", idtmed[225], dgh, 5);   
4150   gMC->Gspos("ICC6", 1, "ITSV", 0., 0., -97.5-dgh[2], 0, "ONLY");      
4151
4152   // --- DEFINE CABLES/COOLING BEHIND THE TPC ON OTHER SIDE W.R.T. THE ABSORBER
4153   //     COPPER PART - UPPER PART
4154     
4155   dgh[0] = 46.;   
4156   dgh[1] = 74.5;
4157   dgh[2] = 0.5;
4158   dgh[3] = 12.;
4159   dgh[4] = 168.;  
4160   gMC->Gsvolu("ICU7", "TUBS", idtmed[213], dgh, 5);   
4161   gMC->Gspos("ICU7", 1, "ITSV", 0., 0., -(ztpc+1.5+dgh[2]), 0, "ONLY");  
4162   
4163   // --- DEFINE CABLES/COOLING BEHIND THE TPC ON OTHER SIDE W.R.T. THE ABSORBER
4164   //     COPPER PART - LOWER PART
4165     
4166   dgh[0] = 46.; 
4167   dgh[1] = 74.5;
4168   dgh[2] = 0.5;
4169   dgh[3] = 192.;
4170   dgh[4] = 348.;   
4171   gMC->Gsvolu("ICU8", "TUBS", idtmed[213], dgh, 5);   
4172   gMC->Gspos("ICU8", 1, "ITSV", 0., 0., -(ztpc+1.5+dgh[2]), 0, "ONLY");      
4173     
4174   // --- DEFINE CABLES/COOLING BEHIND THE TPC ON OTHER SIDE W.R.T. THE ABSORBER
4175   //     CARBON PART - UPPER PART
4176   
4177   dgh[0] = 46.+1.0;  
4178   dgh[1] = 74.5;
4179   dgh[2] = 0.75;
4180   dgh[3] = 12.;
4181   dgh[4] = 168.;   
4182   gMC->Gsvolu("ICC7", "TUBS", idtmed[225], dgh, 5);   
4183   gMC->Gspos("ICC7", 1, "ITSV", 0., 0., -(ztpc+dgh[2]), 0, "ONLY"); 
4184   
4185   // --- DEFINE CABLES/COOLING BEHIND THE TPC ON OTHER SIDE W.R.T. THE ABSORBER
4186   //     CARBON PART - LOWER PART
4187   
4188   dgh[0] = 46.+1.0;  
4189   dgh[1] = 74.5;
4190   dgh[2] = 0.75;
4191   dgh[3] = 192.;
4192   dgh[4] = 348.;     
4193   gMC->Gsvolu("ICC8", "TUBS", idtmed[225], dgh, 5);   
4194   gMC->Gspos("ICC8", 1, "ITSV", 0., 0., -(ztpc+dgh[2]), 0, "ONLY");        
4195     
4196   // --- DEFINE HOOK TO THE TPC ON OTHER SIDE W.R.T. THE ABSORBER - UPPER PART
4197   
4198   dgh[0] = 74.5;
4199   dgh[1] = 79.5;
4200   dgh[2] = 2.5;
4201   dgh[3] = 12.;
4202   dgh[4] = 168.;    
4203   gMC->Gsvolu("IHK1", "TUBS", idtmed[264], dgh, 5);  
4204   gMC->Gspos("IHK1", 1, "ITSV", 0., 0., -ztpc-dgh[2], 0, "ONLY");   
4205   
4206   // --- DEFINE HOOK TO THE TPC ON OTHER SIDE W.R.T. THE ABSORBER - LOWER PART
4207   
4208   dgh[0] = 74.5;
4209   dgh[1] = 79.5;
4210   dgh[2] = 2.5;
4211   dgh[3] = 192.;
4212   dgh[4] = 348.;    
4213   gMC->Gsvolu("IHK2", "TUBS", idtmed[264], dgh, 5);  
4214   gMC->Gspos("IHK2", 1, "ITSV", 0., 0., -ztpc-dgh[2], 0, "ONLY");      
4215   
4216   // --- DEFINE RAILS BETWEEN THE ITS AND THE TPC
4217   
4218   if (rails == 1) {
4219   
4220      dgh[0] = 2.;          
4221      dgh[1] = 8.;           
4222      dgh[2] = 190.;          // se possibile 200 se no 190 va bene
4223      gMC->Gsvolu("IRA1", "BOX ", idtmed[210], dgh, 3);
4224      gMC->Gspos("IRA1", 1, "ITSV", 53.5, 0., -69.5, 0, "ONLY");   
4225      gMC->Gsvolu("IRA2", "BOX ", idtmed[210], dgh, 3);    
4226      gMC->Gspos("IRA2", 1, "ITSV", -53.5, 0., -69.5, 0, "ONLY");    
4227
4228      dgh[0] = 2.-0.5531;    // 0.5531 was determined in such a way that the aluminum area is 20.9 cm^2      
4229      dgh[1] = 8.-0.5531;    // 0.5531 was determined in such a way that the aluminum area is 20.9 cm^2       
4230      dgh[2] = 190.;         // se possibile 200 se no 190 va bene   
4231      gMC->Gsvolu("IRA3", "BOX ", idtmed[205], dgh, 3);   
4232      gMC->Gspos("IRA3", 1, "IRA1", 0., 0., 0., 0, "ONLY");   
4233      gMC->Gsvolu("IRA4", "BOX ", idtmed[205], dgh, 3);     
4234      gMC->Gspos("IRA4", 1, "IRA2", 0., 0., 0., 0, "ONLY");    
4235
4236   }
4237
4238   // --- DEFINE CYLINDERS HOLDING RAILS BETWEEN THE ITS AND THE TPC
4239   
4240   dgh[0] = 56.9;    
4241   dgh[1] = 59.;
4242   dgh[2] = 0.6;    
4243   gMC->Gsvolu("ICYL", "TUBE", idtmed[210], dgh, 3);   
4244   gMC->Gspos("ICYL", 1, "ALIC", 0., 0., 73.4, 0, "ONLY");       
4245   gMC->Gspos("ICYL", 2, "ALIC", 0., 0., -73.4, idrotm[200], "ONLY");  
4246
4247   // --- DEFINE SUPPORTS FOR RAILS ATTACHED TO THE CYLINDERS
4248
4249   dgh[0] = 0.;        
4250   dgh[1] = 3.;         
4251   dgh[2] = 5.;  // 5. comes from the fact that the volume has to be 567.6/2 cm^3       
4252   gMC->Gsvolu("ISR1", "TUBE", idtmed[210], dgh, 3);   
4253   gMC->Gspos("ISR1", 1, "ALIC", 54.9, 11., 79.5, 0, "ONLY");   
4254   gMC->Gspos("ISR1", 2, "ALIC", 54.9, -11., 79.5, 0, "ONLY");   
4255   gMC->Gspos("ISR1", 3, "ALIC", -54.9, 11., 79.5, 0, "ONLY"); 
4256   gMC->Gspos("ISR1", 4, "ALIC", -54.9, -11., 79.5, 0, "ONLY");  
4257   gMC->Gspos("ISR1", 5, "ALIC", 54.9, 11., -79.5, 0, "ONLY");   
4258   gMC->Gspos("ISR1", 6, "ALIC", 54.9, -11., -79.5, 0, "ONLY");   
4259   gMC->Gspos("ISR1", 7, "ALIC", -54.9, 11., -79.5, 0, "ONLY"); 
4260   gMC->Gspos("ISR1", 8, "ALIC", -54.9, -11., -79.5, 0, "ONLY");         
4261   
4262   // --- DEFINE SUPPORTS FOR RAILS ATTACHED TO THE ABSORBER
4263
4264   dgh[0] = 5.;        
4265   dgh[1] = 12.;         
4266   dgh[2] = 5.;         
4267   gMC->Gsvolu("ISR2", "BOX ", idtmed[210], dgh, 3);   
4268   gMC->Gspos("ISR2", 1, "ALIC", 53.5, 0., 125.5, 0, "ONLY");
4269   gMC->Gsvolu("ISR3", "BOX ", idtmed[210], dgh, 3);   
4270   gMC->Gspos("ISR3", 1, "ALIC", -53.5, 0., 125.5, 0, "ONLY");  
4271   
4272   dgh[0] = 5.-2.;        
4273   dgh[1] = 12.-2.;         
4274   dgh[2] = 5.;         
4275   gMC->Gsvolu("ISR4", "BOX ", idtmed[205], dgh, 3);   
4276   gMC->Gspos("ISR4", 1, "ISR2", 0., 0., 0., 0, "ONLY");     
4277   gMC->Gsvolu("ISR5", "BOX ", idtmed[205], dgh, 3);   
4278   gMC->Gspos("ISR5", 1, "ISR3", 0., 0., 0., 0, "ONLY");
4279   
4280   // --- DEFINE SUPPORTS TO ATTACH THE ITS TO THE TPC
4281   
4282   dgh[0] = 0.;        
4283   dgh[1] = 5.;         
4284   dgh[2] = 2.;         
4285   gMC->Gsvolu("ISR6", "TUBE", idtmed[210], dgh, 3);   
4286   gMC->Gspos("ISR6", 1, "ALIC", 0., 54., 77., 0, "ONLY"); 
4287   gMC->Gspos("ISR6", 2, "ALIC", 0., 54., -77., 0, "ONLY"); 
4288   gMC->Gspos("ISR6", 3, "ALIC", 0., -54., -77., 0, "ONLY");                   
4289
4290   // --- Outputs the geometry tree in the EUCLID/CAD format 
4291   
4292   if (fEuclidOut) {
4293     gMC->WriteEuclid("ITSgeometry", "ITSV", 1, 5);
4294   }
4295
4296 }
4297 //_____________________________________________________________________________
4298 void AliITSvPPRasymm::CreateMaterials(){
4299 ////////////////////////////////////////////////////////////////////////
4300   //
4301   // Create ITS materials
4302   //     This function defines the default materials used in the Geant
4303   // Monte Carlo simulations for the geometries AliITSv1, AliITSv3,
4304   // AliITSvPPRasymm.
4305   // In general it is automatically replaced by
4306   // the CreatMaterials routine defined in AliITSv?. Should the function
4307   // CreateMaterials not exist for the geometry version you are using this
4308   // one is used. See the definition found in AliITSv5 or the other routine
4309   // for a complete definition.
4310   //
4311   
4312   Int_t  isxfld  = gAlice->Field()->Integ();
4313   Float_t sxmgmx = gAlice->Field()->Max();
4314   
4315   // --- Define the various materials and media for GEANT --- 
4316   
4317   AliMaterial(1,"SI$",0.28086E+02,0.14000E+02,0.23300E+01,0.93600E+01,0.99900E+03);
4318   AliMedium(1,"SI$",1,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4319
4320   AliMaterial(2,"SPD SI CHIP$",0.28086E+02,0.14000E+02,0.23300E+01,0.93600E+01,0.99900E+03);
4321   AliMedium(2,"SPD SI CHIP$",2,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,   0);
4322
4323   AliMaterial(3,"SPD SI BUS$",0.28086E+02,0.14000E+02,0.23300E+01,0.93600E+01,0.99900E+03);
4324   AliMedium(3,"SPD SI BUS$",3,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4325
4326   AliMaterial(4,"C (M55J)$",0.12011E+02,0.60000E+01,0.1930E+01,0.22100E+02,0.99900E+03);
4327   AliMedium(4,"C (M55J)$",4,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4328
4329   AliMaterial(5,"AIR$",0.14610E+02,0.73000E+01,0.12050E-02,0.30423E+05,0.99900E+03);
4330   AliMedium(5,"AIR$",5,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E-02,.10000E+01,0);
4331
4332   AliMaterial(6,"GEN AIR$",0.14610E+02,0.73000E+01,0.12050E-02,0.30423E+05,0.99900E+03);
4333   AliMedium(6,"GEN AIR$",6,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E-02,.10000E+01,0);
4334
4335   AliMaterial(7,"SDD SI CHIP$",0.374952E+02,0.178184E+02,0.24485E+01,0.76931E+01,0.99900E+03);
4336   AliMedium(7,"SDD SI CHIP$",7,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4337
4338   AliMaterial(9,"SDD C (M55J)$",0.123565E+02,0.64561E+01,0.18097E+01,0.229570E+02,0.99900E+03);
4339   AliMedium(9,"SDD C (M55J)$",9,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4340
4341   AliMaterial(10,"SDD AIR$",0.14610E+02,0.73000E+01,0.12050E-02,0.30423E+05,0.99900E+03);
4342   AliMedium(10,"SDD AIR$",10,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E-02,.10000E+01,0);
4343
4344   AliMaterial(11,"AL$",0.26982E+02,0.13000E+02,0.26989E+01,0.89000E+01,0.99900E+03);
4345   AliMedium(11,"AL$",11,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4346
4347   AliMaterial(12,"WATER$",0.14322E+02,0.72167E+01,0.10000E+01,0.35759E+02,0.94951E+02);
4348   AliMedium(12,"WATER$",12,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4349
4350   AliMaterial(14,"COPPER$",0.63546E+02,0.29000E+02,0.89600E+01,0.14300E+01,0.99900E+03);
4351   AliMedium(14,"COPPER$",14,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4352
4353   AliMaterial(15,"CERAMICS$",0.22314E+02,0.10856E+02,0.36000E+01,0.76200E+01,0.31901E+02);
4354   AliMedium(15,"CERAMICS$",15,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4355
4356   AliMaterial(20,"SSD C (M55J)$",0.12011E+02,0.60000E+01,0.1930E+01,0.22100E+02,0.99900E+03);
4357   AliMedium(20,"SSD C (M55J)$",20,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4358
4359   AliMaterial(21,"SSD AIR$",0.14610E+02,0.73000E+01,0.12050E-02,0.30423E+05,0.99900E+03);
4360   AliMedium(21,"SSD AIR$",21,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E-02,.10000E+01,0);
4361
4362   AliMaterial(25,"G10FR4$",0.17749E+02,0.88750E+01,0.18000E+01,0.21822E+02,0.99900E+03);
4363   AliMedium(25,"G10FR4$",25,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4364
4365   AliMaterial(26,"GEN C (M55J)$",0.12011E+02,0.60000E+01,0.1930E+01,0.22100E+02,0.99900E+03);
4366   AliMedium(26,"GEN C (M55J)$",26,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4367
4368   AliMaterial(27,"GEN Air$",0.14610E+02,0.73000E+01,0.12050E-02,0.30423E+05,0.99900E+03);
4369   AliMedium(27,"GEN Air$",27,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E-02,.10000E+01,0);
4370
4371   AliMaterial(51,"SPD SI$",0.28086E+02,0.14000E+02,0.23300E+01,0.93600E+01,0.99900E+03);
4372   AliMedium(51,"SPD SI$",51,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4373
4374   AliMaterial(52,"SPD SI CHIP$",0.28086E+02,0.14000E+02,0.23300E+01,0.93600E+01,0.99900E+03);
4375   AliMedium(52,"SPD SI CHIP$",52,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4376
4377   AliMaterial(53,"SPD SI BUS$",0.28086E+02,0.14000E+02,0.23300E+01,0.93600E+01,0.99900E+03);
4378   AliMedium(53,"SPD SI BUS$",53,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4379
4380   AliMaterial(54,"SPD C (M55J)$",0.12011E+02,0.60000E+01,0.1930E+01,0.22100E+02,0.99900E+03);
4381   AliMedium(54,"SPD C (M55J)$",54,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4382
4383   AliMaterial(55,"SPD AIR$",0.14610E+02,0.73000E+01,0.12050E-02,0.30423E+05,0.99900E+03);
4384   AliMedium(55,"SPD AIR$",55,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E-02,.10000E+01,0);
4385
4386   AliMaterial(56,"SPD KAPTON(POLYCH2)$",0.14000E+02,0.71770E+01,0.13000E+01,0.31270E+02,0.99900E+03);
4387   AliMedium(56,"SPD KAPTON(POLYCH2)$",56,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4388
4389   AliMaterial(61,"EPOXY$",0.17749E+02,0.88750E+01,0.18000E+01,0.21822E+02,0.99900E+03);
4390   AliMedium(61,"EPOXY$",61,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4391
4392   AliMaterial(62,"SILICON$",0.28086E+02,0.14000E+02,0.23300E+01,0.93600E+01,0.99900E+03);
4393   AliMedium(62,"SILICON$",62,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4394
4395   AliMaterial(63,"KAPTONH(POLYCH2)$",0.14000E+02,0.71770E+01,0.13000E+01,0.31270E+02,0.99900E+03);
4396   AliMedium(63,"KAPTONH(POLYCH2)$",63,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4397
4398   AliMaterial(64,"ALUMINUM$",0.26982E+02,0.13000E+02,0.26989E+01,0.89000E+01,0.99900E+03);
4399   AliMedium(64,"ALUMINUM$",64,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4400
4401   AliMaterial(65,"INOX$",0.55098E+02,0.2572E+02,0.7900E+01,0.17800E+01,0.99900E+03);
4402   AliMedium(65,"INOX$",65,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4403
4404   AliMaterial(68,"ROHACELL$",0.12011E+02,0.60000E+01,0.500E-01,0.666500E+03,0.99900E+03);
4405   AliMedium(68,"ROHACELL$",68,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4406
4407   AliMaterial(69,"SDD C AL (M55J)$",0.138802E+02,0.71315E+01,0.19837E+01,0.176542E+02,0.99900E+03);
4408   AliMedium(69,"SDD C AL (M55J)$",69,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4409
4410   AliMaterial(70,"SDDKAPTON (POLYCH2)$",0.14000E+02,0.71770E+01,0.13000E+01,0.31270E+02,0.99900E+03);
4411   AliMedium(70,"SDDKAPTON (POLYCH2)$",70,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4412
4413   AliMaterial(71,"ITS SANDW A$",0.12011E+02,0.60000E+01,0.2115E+00,0.17479E+03,0.99900E+03);
4414   AliMedium(71,"ITS SANDW A$",71,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4415
4416   AliMaterial(72,"ITS SANDW B$",0.12011E+02,0.60000E+01,0.27000E+00,0.18956E+03,0.99900E+03);
4417   AliMedium(72,"ITS SANDW B$",72,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4418
4419   AliMaterial(73,"ITS SANDW C$",0.12011E+02,0.60000E+01,0.41000E+00,0.90868E+02,0.99900E+03);
4420   AliMedium(73,"ITS SANDW C$",73,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4421
4422   AliMaterial(74,"HEAT COND GLUE$",0.12011E+02,0.60000E+01,0.1930E+01,0.22100E+02,0.99900E+03);
4423   AliMedium(74,"HEAT COND GLUE$",74,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4424
4425   AliMaterial(75,"ELASTO SIL$",0.28086E+02,0.14000E+02,0.23300E+01,0.93600E+01,0.99900E+03);
4426   AliMedium(75,"ELASTO SIL$",75,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4427
4428   AliMaterial(76,"SPDBUS(AL+KPT+EPOX)$",0.19509E+02,0.96502E+01,0.19060E+01,0.15413E+02,0.99900E+03);
4429   AliMedium(76,"SPDBUS(AL+KPT+EPOX)$",76,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4430                
4431   AliMaterial(77,"SDD X7R capacitors$",0.1157516E+03,0.477056E+02,0.67200E+01,0.14236E+01,0.99900E+03);
4432   AliMedium(77,"SDD X7R capacitors$",77,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4433
4434   AliMaterial(78,"SDD ruby sph. Al2O3$",0.218101E+02,0.106467E+02,0.39700E+01,0.48539E+01,0.99900E+03);
4435   AliMedium(78,"SDD ruby sph. Al2O3$",78,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4436
4437   AliMaterial(79,"SDD SI insensitive$",0.28086E+02,0.14000E+02,0.23300E+01,0.93600E+01,0.99900E+03);
4438   AliMedium(79,"SDD SI insensitive$",79,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4439
4440   AliMaterial(80,"SDD HV microcable$",0.159379E+02,0.78598E+01,0.16087E+01,0.217906E+02,0.99900E+03);
4441   AliMedium(80,"SDD HV microcable$",80,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4442
4443   AliMaterial(81,"SDD LV+signal cable$",0.223689E+02,0.108531+02,0.21035E+01,0.13440E+02,0.99900E+03);
4444   AliMedium(81,"SDD LV+signal cable$",81,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4445
4446   AliMaterial(82,"SDD hybrid microcab$",0.218254E+02,0.106001E+02,0.20502E+01,0.137308E+02,0.99900E+03);
4447   AliMedium(82,"SDD hybrid microcab$",82,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4448
4449   AliMaterial(83,"SDD anode microcab$",0.186438E+02,0.91193E+01,0.17854E+01,0.176451E+02,0.99900E+03);
4450   AliMedium(83,"SDD anode microcab$",83,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4451
4452   AliMaterial(84,"SDD/SSD rings$",0.123565E+02,0.64561E+01,0.18097E+01,0.229570E+02,0.99900E+03);
4453   AliMedium(84,"SDD/SSD rings$",84,0,isxfld,sxmgmx,.10000E+01,.10000E+01,0.30000E02,.10000E+01,0);
4454
4455   // Special media
4456
4457   AliMaterial(90,"SPD shield$", 12.011, 6., 1.93/10. , 22.1*10., 999);
4458   AliMedium(90,"SPD shield$",90, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
4459
4460   AliMaterial(91, "SPD End ladder$", 55.845, 26., 7.87/10., 1.76*10., 999); 
4461   AliMedium(91, "SPD End ladder$",91, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
4462
4463   AliMaterial(92, "SPD cone$",28.0855, 14., 2.33, 9.36, 999);    
4464   AliMedium(92, "SPD cone$",   92, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);   
4465
4466   AliMaterial(93, "SDD End ladder$", 69.9298, 29.8246, 0.3824, 36.5103, 999); 
4467   AliMedium(93, "SDD End ladder$",93, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
4468
4469   AliMaterial(94, "SDD cone$",63.546, 29., 1.15, 1.265, 999);     
4470   AliMedium(94, "SDD cone$",   94, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
4471
4472   AliMaterial(95, "SSD End ladder$", 32.0988, 15.4021, 0.68, 35.3238, 999); 
4473   AliMedium(95, "SSD End ladder$",95, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
4474   
4475   AliMaterial(96, "SSD cone$",63.546, 29., 1.15, 1.265, 999); 
4476   AliMedium(96, "SSD cone$",   96, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
4477
4478 }
4479 //______________________________________________________________________
4480 void AliITSvPPRasymm::InitAliITSgeom(){
4481 //     Based on the geometry tree defined in Geant 3.21, this
4482 // routine initilizes the Class AliITSgeom from the Geant 3.21 ITS geometry
4483 // sturture.
4484     if(!(dynamic_cast<TGeant3*>(gMC))) {
4485         Error("InitAliITSgeom",
4486                 "Wrong Monte Carlo. InitAliITSgeom uses TGeant3 calls");
4487         return;
4488     } // end if
4489     cout << "Reading Geometry transformation directly from Geant 3." << endl;
4490     const Int_t nlayers = 6;
4491     const Int_t ndeep = 9;
4492     Int_t itsGeomTreeNames[nlayers][ndeep],lnam[20],lnum[20];
4493     Int_t nlad[nlayers],ndet[nlayers];
4494     Double_t t[3],r[10];
4495     Float_t  par[20],att[20];
4496     Int_t    npar,natt,idshape,imat,imed;
4497     AliITSGeant3Geometry *ig = new AliITSGeant3Geometry();
4498     Int_t mod,lay,lad,det,i,j,k;
4499     Char_t names[nlayers][ndeep][4];
4500     Int_t itsGeomTreeCopys[nlayers][ndeep];
4501     if(fMinorVersion == 1){ // Option A
4502     Char_t *namesA[nlayers][ndeep] = {
4503      {"ALIC","ITSV","ITSD","IT12","I12A","I10A","I103","I101","ITS1"}, // lay=1
4504      {"ALIC","ITSV","ITSD","IT12","I12A","I20A","I1D3","I1D1","ITS2"}, // lay=2
4505      {"ALIC","ITSV","ITSD","IT34","I004","I302","ITS3","    ","    "}, // lay=3
4506      {"ALIC","ITSV","ITSD","IT34","I005","I402","ITS4","    ","    "}, // lay=4
4507      {"ALIC","ITSV","ITSD","IT56","I565","I562","ITS5","    ","    "}, // lay=5
4508      {"ALIC","ITSV","ITSD","IT56","I569","I566","ITS6","    ","    "}};// lay=6
4509     Int_t itsGeomTreeCopysA[nlayers][ndeep]= {{1,1,1,1,10, 2, 4,1,1},// lay=1
4510                                               {1,1,1,1,10, 4, 4,1,1},// lay=2
4511                                               {1,1,1,1,14, 6, 1,0,0},// lay=3
4512                                               {1,1,1,1,22, 8, 1,0,0},// lay=4
4513                                               {1,1,1,1,34,22, 1,0,0},// lay=5
4514                                               {1,1,1,1,38,25, 1,0,0}};//lay=6
4515     for(i=0;i<nlayers;i++)for(j=0;j<ndeep;j++){
4516         for(k=0;k<4;k++) names[i][j][k] = namesA[i][j][k];
4517         itsGeomTreeCopys[i][j] = itsGeomTreeCopysA[i][j];
4518     } // end for i,j
4519     }else if(fMinorVersion == 2){ // Option B
4520     Char_t *namesB[nlayers][ndeep] = {
4521      {"ALIC","ITSV","ITSD","IT12","I12B","I10B","I107","I101","ITS1"}, // lay=1
4522      {"ALIC","ITSV","ITSD","IT12","I12B","I20B","I1D7","I1D1","ITS2"}, // lay=2
4523      {"ALIC","ITSV","ITSD","IT34","I004","I302","ITS3","    ","    "}, // lay=3
4524      {"ALIC","ITSV","ITSD","IT34","I005","I402","ITS4","    ","    "}, // lay=4
4525      {"ALIC","ITSV","ITSD","IT56","I565","I562","ITS5","    ","    "}, // lay=5
4526      {"ALIC","ITSV","ITSD","IT56","I569","I566","ITS6","    ","    "}};// lay=6
4527     Int_t itsGeomTreeCopysB[nlayers][ndeep]= {{1,1,1,1,10, 2, 4,1,1},// lay=1
4528                                               {1,1,1,1,10, 4, 4,1,1},// lay=2
4529                                               {1,1,1,1,14, 6, 1,0,0},// lay=3
4530                                               {1,1,1,1,22, 8, 1,0,0},// lay=4
4531                                               {1,1,1,1,34,22, 1,0,0},// lay=5
4532                                               {1,1,1,1,38,25, 1,0,0}};//lay=6
4533     for(i=0;i<nlayers;i++)for(j=0;j<ndeep;j++){
4534         for(k=0;k<4;k++) names[i][j][k] = namesB[i][j][k];
4535         itsGeomTreeCopys[i][j] = itsGeomTreeCopysB[i][j];
4536     } // end for i,j
4537     } // end if fMinorVersion
4538     // Sorry, but this is not very pritty code. It should be replaced
4539     // at some point with a version that can search through the geometry
4540     // tree its self.
4541     cout << "Reading Geometry informaton from Geant3 common blocks" << endl;
4542     for(i=0;i<20;i++) lnam[i] = lnum[i] = 0;
4543     for(i=0;i<nlayers;i++)for(j=0;j<ndeep;j++) 
4544         itsGeomTreeNames[i][j] = ig->StringToInt(names[i][j]);
4545     mod = 0;
4546     for(i=0;i<nlayers;i++){
4547         k = 1;
4548         for(j=0;j<ndeep;j++) if(itsGeomTreeCopys[i][j]!=0)
4549             k *= TMath::Abs(itsGeomTreeCopys[i][j]);
4550         mod += k;
4551     } // end for i
4552
4553     if(fITSgeom!=0) delete fITSgeom;
4554     nlad[0]=20;nlad[1]=40;nlad[2]=14;nlad[3]=22;nlad[4]=34;nlad[5]=38;
4555     ndet[0]=4;ndet[1]=4;ndet[2]=6;ndet[3]=8;ndet[4]=22;ndet[5]=25;
4556     fITSgeom = new AliITSgeom(0,6,nlad,ndet,mod);
4557     mod = -1;
4558     for(lay=1;lay<=nlayers;lay++){
4559         for(j=0;j<ndeep;j++) lnam[j] = itsGeomTreeNames[lay-1][j];
4560         for(j=0;j<ndeep;j++) lnum[j] = itsGeomTreeCopys[lay-1][j];
4561         switch (lay){
4562         case 1: case 2: // layers 1 and 2 are a bit special
4563             lad = 0;
4564             for(j=1;j<=itsGeomTreeCopys[lay-1][4];j++){
4565                 lnum[4] = j;
4566                 for(k=1;k<=itsGeomTreeCopys[lay-1][5];k++){
4567                     lad++;
4568                     lnum[5] = k;
4569                     for(det=1;det<=itsGeomTreeCopys[lay-1][6];det++){
4570                         lnum[6] = det;
4571                         mod++;
4572                         ig->GetGeometry(ndeep,lnam,lnum,t,r,idshape,npar,natt,
4573                                         par,att,imat,imed);
4574                         fITSgeom->CreatMatrix(mod,lay,lad,det,kSPD,t,r);
4575                         if(!(fITSgeom->IsShapeDefined((Int_t)kSPD)))
4576                              fITSgeom->ReSetShape(kSPD,
4577                                                   new AliITSgeomSPD425Short());
4578                     } // end for det
4579                 } // end for k
4580             } // end for j
4581             break;
4582         case 3: case 4: case 5: case 6: // layers 3-6
4583             lnum[6] = 1;
4584             for(lad=1;lad<=itsGeomTreeCopys[lay-1][4];lad++){
4585                 lnum[4] = lad;
4586                 for(det=1;det<=itsGeomTreeCopys[lay-1][5];det++){
4587                     lnum[5] = det;
4588                     mod++;
4589                     ig->GetGeometry(7,lnam,lnum,t,r,idshape,npar,natt,
4590                                     par,att,imat,imed);
4591                     switch (lay){
4592                     case 3: case 4:
4593                         fITSgeom->CreatMatrix(mod,lay,lad,det,kSDD,t,r);
4594                         if(!(fITSgeom->IsShapeDefined(kSDD))) 
4595                             fITSgeom->ReSetShape(kSDD,new AliITSgeomSDD256());
4596                             break;
4597                         case 5:
4598                             fITSgeom->CreatMatrix(mod,lay,lad,det,kSSD,t,r);
4599                             if(!(fITSgeom->IsShapeDefined(kSSD))) 
4600                                 fITSgeom->ReSetShape(kSSD,
4601                                                   new AliITSgeomSSD275and75());
4602                             break;
4603                         case 6:
4604                             fITSgeom->CreatMatrix(mod,lay,lad,det,kSSDp,t,r);
4605                             if(!(fITSgeom->IsShapeDefined(kSSDp))) 
4606                                 fITSgeom->ReSetShape(kSSDp,
4607                                                   new AliITSgeomSSD75and275());
4608                             break;
4609                         } // end switch
4610                 } // end for det
4611             } // end for lad
4612             break;
4613         } // end switch
4614     } // end for lay
4615     return;
4616 }
4617 //_____________________________________________________________________________
4618 void AliITSvPPRasymm::Init(){
4619 ////////////////////////////////////////////////////////////////////////
4620 //     Initialise the ITS after it has been created.
4621 ////////////////////////////////////////////////////////////////////////
4622     Int_t i;
4623
4624     cout << endl;
4625     for(i=0;i<26;i++) cout << "*";
4626     cout << " ITSvPPRasymm" << fMinorVersion << "_Init ";
4627     for(i=0;i<25;i++) cout << "*";cout << endl;
4628 //
4629     if(fRead[0]=='\0') strncpy(fRead,fEuclidGeomDet,60);
4630     if(fWrite[0]=='\0') strncpy(fWrite,fEuclidGeomDet,60);
4631     if(fITSgeom!=0) delete fITSgeom;
4632     fITSgeom = new AliITSgeom();
4633     if(fGeomDetIn) fITSgeom->ReadNewFile(fRead);
4634     if(!fGeomDetIn) this->InitAliITSgeom();
4635     if(fGeomDetOut) fITSgeom->WriteNewFile(fWrite);
4636     AliITS::Init();
4637 //
4638     for(i=0;i<72;i++) cout << "*";
4639     cout << endl;
4640 }
4641 //______________________________________________________________________
4642 void AliITSvPPRasymm::DrawModule(){
4643 ////////////////////////////////////////////////////////////////////////
4644 //     Draw a shaded view of the FMD version 8.
4645 ////////////////////////////////////////////////////////////////////////
4646   
4647   // Set everything unseen
4648   gMC->Gsatt("*", "seen", -1);
4649   // 
4650   // Set ALIC mother visible
4651   gMC->Gsatt("ALIC","SEEN",0);
4652   //
4653   // Set the volumes visible
4654   gMC->Gsatt("ITSD","SEEN",0);
4655   gMC->Gsatt("ITS1","SEEN",1);
4656   gMC->Gsatt("ITS2","SEEN",1);
4657   gMC->Gsatt("ITS3","SEEN",1);
4658   gMC->Gsatt("ITS4","SEEN",1);
4659   gMC->Gsatt("ITS5","SEEN",1);
4660   gMC->Gsatt("ITS6","SEEN",1);
4661
4662   gMC->Gsatt("IPCB","SEEN",1);
4663   gMC->Gsatt("ICO2","SEEN",1);
4664   gMC->Gsatt("ICER","SEEN",0);
4665   gMC->Gsatt("ISI2","SEEN",0);
4666   gMC->Gsatt("IPLA","SEEN",0);
4667   gMC->Gsatt("ICO3","SEEN",0);
4668   gMC->Gsatt("IEPX","SEEN",0);
4669   gMC->Gsatt("ISI3","SEEN",1);
4670   gMC->Gsatt("ISUP","SEEN",0);
4671   gMC->Gsatt("ICHO","SEEN",0);
4672   gMC->Gsatt("ICMO","SEEN",0);
4673   gMC->Gsatt("ICMD","SEEN",0);
4674   gMC->Gsatt("ICCO","SEEN",1);
4675   gMC->Gsatt("ICCM","SEEN",0);
4676   gMC->Gsatt("ITMD","SEEN",0);
4677   gMC->Gsatt("ITTT","SEEN",1);
4678
4679   //
4680   gMC->Gdopt("hide", "on");
4681   gMC->Gdopt("shad", "on");
4682   gMC->Gsatt("*", "fill", 7);
4683   gMC->SetClipBox(".");
4684   gMC->SetClipBox("*", 0, 300, -300, 300, -300, 300);
4685   gMC->DefaultRange();
4686   gMC->Gdraw("alic", 40, 30, 0, 11, 10, .07, .07);
4687   gMC->Gdhead(1111, "Inner Tracking System Version 1");
4688   gMC->Gdman(17, 6, "MAN");
4689 }
4690 //_____________________________________________________________________________
4691 void AliITSvPPRasymm::StepManager(){
4692 ////////////////////////////////////////////////////////////////////////
4693 //    Called for every step in the ITS, then calles the AliITShit class
4694 // creator with the information to be recoreded about that hit.
4695 //     The value of the macro ALIITSPRINTGEOM if set to 1 will allow the
4696 // printing of information to a file which can be used to create a .det
4697 // file read in by the routine CreateGeometry(). If set to 0 or any other
4698 // value except 1, the default behavior, then no such file is created nor
4699 // it the extra variables and the like used in the printing allocated.
4700 ////////////////////////////////////////////////////////////////////////
4701   Int_t         copy, id;
4702   Int_t          copy1,copy2;  
4703   Float_t       hits[8];
4704   Int_t         vol[4];
4705   TLorentzVector position, momentum;
4706   TClonesArray &lhits = *fHits;
4707   //
4708   // Track status
4709   vol[3] = 0;
4710   if(gMC->IsTrackInside())      vol[3] +=  1;
4711   if(gMC->IsTrackEntering())    vol[3] +=  2;
4712   if(gMC->IsTrackExiting())     vol[3] +=  4;
4713   if(gMC->IsTrackOut())         vol[3] +=  8;
4714   if(gMC->IsTrackDisappeared()) vol[3] += 16;
4715   if(gMC->IsTrackStop())        vol[3] += 32;
4716   if(gMC->IsTrackAlive())       vol[3] += 64;
4717   //
4718   // Fill hit structure.
4719   if(!(gMC->TrackCharge())) return;
4720   //
4721   // Only entering charged tracks
4722   if((id = gMC->CurrentVolID(copy)) == fIdSens[0]) {
4723       vol[0] = 1;
4724       id = gMC->CurrentVolOffID(0,copy);
4725       //detector copy in the ladder = 1<->4  (ITS1 < I101 < I103 < I10A)
4726       vol[1] = copy;
4727       gMC->CurrentVolOffID(1,copy1);
4728       //ladder copy in the module   = 1<->2  (I10A < I12A)
4729       gMC->CurrentVolOffID(2,copy2);
4730       //module copy in the layer    = 1<->10 (I12A < IT12)
4731       vol[2] = copy1+(copy2-1)*2;//# of ladders in one module  = 2
4732   } else if(id == fIdSens[1]){
4733       vol[0] = 2;
4734       id = gMC->CurrentVolOffID(0,copy);
4735       //detector copy in the ladder = 1<->4  (ITS2 < I1D1 < I1D3 < I20A)
4736       vol[1] = copy;
4737       gMC->CurrentVolOffID(1,copy1);
4738       //ladder copy in the module   = 1<->4  (I20A < I12A)
4739       gMC->CurrentVolOffID(2,copy2);
4740       //module copy in the layer    = 1<->10 (I12A < IT12)
4741       vol[2] = copy1+(copy2-1)*4;//# of ladders in one module  = 4
4742   } else if(id == fIdSens[2]){
4743       vol[0] = 3;
4744       id = gMC->CurrentVolOffID(1,copy);
4745       //detector copy in the ladder = 1<->6  (ITS3 < I302 < I004)
4746       vol[1] = copy;
4747       id = gMC->CurrentVolOffID(2,copy);
4748       //ladder copy in the layer    = 1<->14 (I004 < IT34)
4749       vol[2] = copy;
4750   } else if(id == fIdSens[3]){
4751       vol[0] = 4;
4752       id = gMC->CurrentVolOffID(1,copy);
4753       //detector copy in the ladder = 1<->8  (ITS4 < I402 < I005)
4754       vol[1] = copy;
4755       id = gMC->CurrentVolOffID(2,copy);
4756       //ladder copy in the layer    = 1<->22 (I005 < IT34))
4757       vol[2] = copy;
4758   }else if(id == fIdSens[4]){
4759       vol[0] = 5;
4760       id = gMC->CurrentVolOffID(1,copy);
4761       //detector copy in the ladder = 1<->22  (ITS5 < I562 < I565)
4762       vol[1] = copy;
4763       id = gMC->CurrentVolOffID(2,copy);
4764      //ladder copy in the layer    = 1<->34 (I565 < IT56)
4765       vol[2] = copy;
4766   }else if(id == fIdSens[5]){
4767       vol[0] = 6;
4768       id = gMC->CurrentVolOffID(1,copy);
4769       //detector copy in the ladder = 1<->25  (ITS6 < I566 < I569)
4770       vol[1] = copy;
4771       id = gMC->CurrentVolOffID(2,copy);
4772       //ladder copy in the layer = 1<->38 (I569 < IT56)
4773       vol[2] = copy;
4774   } else {
4775       return; // not an ITS volume?
4776   } // end if/else if (gMC->CurentVolID(copy) == fIdSens[i])
4777 //
4778   gMC->TrackPosition(position);
4779   gMC->TrackMomentum(momentum);
4780   hits[0]=position[0];
4781   hits[1]=position[1];
4782   hits[2]=position[2];
4783   hits[3]=momentum[0];
4784   hits[4]=momentum[1];
4785   hits[5]=momentum[2];
4786   hits[6]=gMC->Edep();
4787   hits[7]=gMC->TrackTime();
4788   // Fill hit structure with this new hit.
4789   new(lhits[fNhits++]) AliITShit(fIshunt,gAlice->CurrentTrack(),vol,hits);
4790
4791   return;
4792
4793 }