bf6cb85e53546bcbf62134569d3605aca91c03eb
[u/mrichter/AliRoot.git] / ITS / AliITSvPPRsymm.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.22  2001/05/16 08:17:49  hristov
19 Bug fixed in the StepManager to account for the difference in the geometry tree for the ITS pixels. This fixes both the funny distribution of pixel coordinates and the missing hits/digits/points in many sectors of the ITS pixel barrel. Also included is a patch to properly get and use the detector dimensions through out the ITS code. (B.Nilsen)
20
21 Revision 1.21  2001/05/10 00:12:59  nilsen
22 Finished fixing up the default segmentation for the PPR geometry.
23
24 Revision 1.20  2001/05/09 01:02:22  nilsen
25 Finished fixing SetDefaults for the segmentation of SPD, SDD, and SSD.
26
27 Revision 1.19  2001/05/03 08:40:15  barbera
28 Volume ITSD slightly modified to be consistent with v5. Some improvement in the printouts. The last commit did not complete successfully.
29
30 Revision 1.17  2001/05/01 22:40:42  nilsen
31 Partical update of SetDefault.
32
33 Revision 1.16  2001/04/22 13:48:09  barbera
34 New values of media parameters and thickness of SPD end-ladder electronics as given by Fabio Formenti
35
36 Revision 1.15  2001/04/04 07:02:16  barbera
37 Position of the cylinders holding rails corrected
38
39 Revision 1.14  2001/03/29 22:02:30  barbera
40 Some changes to the services due to the new drawings from the engineers.
41
42 Revision 1.13  2001/03/29 05:28:56  barbera
43 Rails material changed from aluminum to carbon fiber according with the decision of the last Technical Board
44
45 Revision 1.12  2001/03/28 06:40:20  barbera
46 Central and services mother volumes made consistenf for detailed and coarse geometry. Switch for rails added to the coarse geometries
47
48 Revision 1.11  2001/03/23 00:12:23  nilsen
49 Set Reading of AliITSgeom data from Geant3 common blocks as the default and
50 not a .det file. Removed redundent calls to BuildGeometry.
51
52 Revision 1.10  2001/03/15 13:47:55  barbera
53 Some service mother volumes modified
54
55 Revision 1.9  2001/03/13 18:13:30  barbera
56 Some mother volumes sligthly modified to eliminate an overlap with the absorber
57
58 Revision 1.8  2001/03/13 08:36:24  hristov
59 fabsf replaced by TMath::Abs
60
61 Revision 1.7  2001/03/13 00:43:43  barbera
62 Updated version of the PPR detailed geometry with symmetric services. Of course, the central part of the detector (volume ITSD and its daughters) is the same of AliITSvPPRasymm.cxx
63
64 Revision 1.6  2001/02/13 16:53:35  nilsen
65 Fixed a but when trying to use GEANT4. Needed to replace
66 if(!((TGeant3*)gMC)) with if(!(dynamic_casst<TGeant3*>(gMC)))
67 because just casting gMC to be TGeant3* even when it realy is a TGeant3 pointer
68 did not result in a zero value. For AliITSv5asymm and AliITSv5symm, needed
69 to fix a bug in the initilizers and a bug in BuildGeometry. This is now done
70 in the same way as in AliITSv5.cxx.
71
72 Revision 1.5  2001/02/09 20:06:26  nilsen
73 Fixed bug in distructor. Can't distroy fixxed length arrays. Thanks Peter.
74
75 Revision 1.4  2001/02/09 00:05:31  nilsen
76 Added fMajor/MinorVersion variables and made other changes to better make
77 use of the new code changes in AliITSgeom related classes.
78
79 Revision 1.3  2001/01/30 09:23:13  hristov
80 Streamers removed (R.Brun)
81
82 Revision 1.2  2001/01/26 20:01:19  hristov
83 Major upgrade of AliRoot code
84
85 Revision 1.1.2.1  2001/01/15 13:38:32  barbera
86 New ITS detailed geometry to be used for the PPR
87
88 Revision 1.12  2000/12/10 16:00:44  barbera
89 Added last definition of special media like end-ladder boxes and cones
90
91 Revision 1.11  2000/10/30 08:02:25  barbera
92 PCON's changed into simpler CONS and TUBS. Services now allow for the rails to go through them.
93
94 Revision 1.3.2.7  2000/10/27 17:20:00  barbera
95 Position of rails w.r.t. the interaction point corrected.
96
97 Revision 1.9  2000/10/27 13:31:29  barbera
98 Rails between ITS and TPC added.
99
100 Revision 1.8  2000/10/27 13:03:08  barbera
101 Small changes in the SPD volumes and materials
102
103 Revision 1.6  2000/10/16 14:45:37  barbera
104 Mother volume ITSD modified to avoid some overlaps
105
106 Revision 1.5  2000/10/16 13:49:15  barbera
107 Services volumes slightly modified and material added following Pierluigi Barberis' information
108
109 Revision 1.4  2000/10/07 15:33:07  barbera
110 Small corrections to the ITSV mother volume
111
112 Revision 1.3  2000/10/07 13:06:50  barbera
113 Some new materials and media defined
114
115 Revision 1.2  2000/10/07 10:42:43  barbera
116 Mother volume ITSV corrected
117
118 Revision 1.1  2000/10/06 23:09:12  barbera
119 New  geometry (symmetric services
120
121 Revision 1.20  2000/10/02 21:28:08  fca
122 Removal of useless dependecies via forward declarations
123
124 Revision 1.19  2000/07/10 16:07:19  fca
125 Release version of ITS code
126
127 Revision 1.14.2.2  2000/05/19 10:09:21  nilsen
128 fix for bug with HP and Sun unix + fix for event display in ITS-working branch
129
130 Revision 1.14.2.1  2000/03/04 23:45:19  nilsen
131 Fixed up the comments/documentation.
132
133 Revision 1.14  1999/11/25 06:52:56  fca
134 Correct value of drca
135
136 Revision 1.13.2.1  1999/11/25 06:52:21  fca
137 Correct value of drca
138
139 Revision 1.13  1999/10/27 11:16:26  fca
140 Correction of problem in geometry
141
142 Revision 1.12  1999/10/22 08:25:25  fca
143 remove double definition of destructors
144
145 Revision 1.11  1999/10/22 08:16:49  fca
146 Correct destructors, thanks to I.Hrivnacova
147
148 Revision 1.10  1999/10/06 19:56:50  fca
149 Add destructor
150
151 Revision 1.9  1999/10/05 08:05:09  fca
152 Minor corrections for uninitialised variables.
153
154 Revision 1.8  1999/09/29 09:24:20  fca
155 Introduction of the Copyright and cvs Log
156
157 */
158
159 //////////////////////////////////////////////////////////////////////////////
160 //                                                                          //
161 //  Inner Traking System version PPR  symmetric                             //
162 //  This class contains the base procedures for the Inner Tracking System   //
163 //                                                                          //
164 // Authors: R. Barbera                                                      //
165 // version 6.                                                               //
166 // Created  2000.                                                           //
167 //                                                                          //
168 //  NOTE: THIS IS THE  SYMMETRIC PPR geometry of the ITS.                   //
169 // THIS WILL NOT WORK                                                       //
170 // with the geometry or module classes or any analysis classes. You are     //
171 // strongly encouraged to uses AliITSv5.                                    //
172 //                                                                          //
173 //////////////////////////////////////////////////////////////////////////////
174 // See AliITSvPPRsymm::StepManager().
175 #include <iostream.h>
176 #include <iomanip.h>
177 #include <stdio.h>
178 #include <stdlib.h>
179 #include <TMath.h>
180 #include <TGeometry.h>
181 #include <TNode.h>
182 #include <TTUBE.h>
183 #include <TFile.h>    // only required for Tracking function?
184 #include <TCanvas.h>
185 #include <TObjArray.h>
186 #include <TLorentzVector.h>
187 #include <TObjString.h>
188 #include <TClonesArray.h>
189 #include <TBRIK.h>
190 #include <TSystem.h>
191
192 #include "AliMC.h"
193 #include "AliRun.h"
194 #include "AliMagF.h"
195 #include "AliConst.h"
196 #include "../TGeant3/TGeant3.h"
197 #include "AliITSGeant3Geometry.h"
198 #include "AliITShit.h"
199 #include "AliITS.h"
200 #include "AliITSvPPRsymm.h"
201 #include "AliITSgeom.h"
202 #include "AliITSgeomSPD.h"
203 #include "AliITSgeomSDD.h"
204 #include "AliITSgeomSSD.h"
205 #include "AliITSDetType.h"
206 #include "AliITSresponseSPD.h"
207 #include "AliITSresponseSDD.h"
208 #include "AliITSresponseSSD.h"
209 #include "AliITSsegmentationSPD.h"
210 #include "AliITSsegmentationSDD.h"
211 #include "AliITSsegmentationSSD.h"
212 #include "AliITSClusterFinderSPD.h"
213 #include "AliITSClusterFinderSDD.h"
214 #include "AliITSClusterFinderSSD.h"
215
216
217 ClassImp(AliITSvPPRsymm)
218  
219 //_____________________________________________________________________________
220 AliITSvPPRsymm::AliITSvPPRsymm() {
221 ////////////////////////////////////////////////////////////////////////
222 //    Standard default constructor for the ITS version 9.
223 ////////////////////////////////////////////////////////////////////////
224     Int_t i;
225
226     fIdN       = 0;
227     fIdName    = 0;
228     fIdSens    = 0;
229     fEuclidOut    = kFALSE; // Don't write Euclide file
230     fGeomDetOut   = kFALSE; // Don't write .det file
231     fGeomDetIn    = kFALSE; // Don't Read .det file
232     fMajorVersion = IsVersion();
233     fMinorVersion = -1;
234     for(i=0;i<60;i++) fRead[i] = '\0';
235     for(i=0;i<60;i++) fWrite[i] = '\0';
236     for(i=0;i<60;i++) fEuclidGeomDet[i] = '\0';
237 }
238 //_____________________________________________________________________________
239 AliITSvPPRsymm::AliITSvPPRsymm(const char *name, const char *title) : AliITS(name, title){
240 ////////////////////////////////////////////////////////////////////////
241 //    Standard constructor for the ITS version 9.
242 ////////////////////////////////////////////////////////////////////////
243     Int_t i;
244
245     fIdN = 6;
246     fIdName = new TString[fIdN];
247     fIdName[0] = "ITS1";
248     fIdName[1] = "ITS2";
249     fIdName[2] = "ITS3";
250     fIdName[3] = "ITS4";
251     fIdName[4] = "ITS5";
252     fIdName[5] = "ITS6";
253     fIdSens    = new Int_t[fIdN];
254     for (i=0;i<fIdN;i++) fIdSens[i] = 0;
255     fMajorVersion = IsVersion();
256     fMinorVersion = 2;
257     fEuclidOut    = kFALSE; // Don't write Euclide file
258     fGeomDetOut   = kFALSE; // Don't write .det file
259     fGeomDetIn    = kFALSE; // Don't Read .det file
260     SetThicknessDet1();
261     SetThicknessDet2();
262     SetThicknessChip1();
263     SetThicknessChip2();                         
264
265     fEuclidGeometry="$ALICE_ROOT/ITS/ITSgeometry_vPPRsymm2.euc";
266     strncpy(fEuclidGeomDet,"$ALICE_ROOT/ITS/ITSgeometry_vPPRsymm2.det",60);
267     strncpy(fRead,fEuclidGeomDet,60);
268     strncpy(fWrite,fEuclidGeomDet,60);   
269          
270 }
271 //____________________________________________________________________________
272 AliITSvPPRsymm::AliITSvPPRsymm(const AliITSvPPRsymm &source){
273 ////////////////////////////////////////////////////////////////////////
274 //     Copy Constructor for ITS version 9.
275 ////////////////////////////////////////////////////////////////////////
276     if(&source == this) return;
277     Warning("Copy Constructor","Not allowed to copy AliITSvPPRsymm");
278     return;
279 }
280 //_____________________________________________________________________________
281 AliITSvPPRsymm& AliITSvPPRsymm::operator=(const AliITSvPPRsymm &source){
282 ////////////////////////////////////////////////////////////////////////
283 //    Assignment operator for the ITS version 9.
284 ////////////////////////////////////////////////////////////////////////
285     if(&source == this) return *this;
286     Warning("= operator","Not allowed to copy AliITSvPPRsymm");
287     return *this;
288 }
289 //_____________________________________________________________________________
290 AliITSvPPRsymm::~AliITSvPPRsymm() {
291 ////////////////////////////////////////////////////////////////////////
292 //    Standard destructor for the ITS version 9.
293 ////////////////////////////////////////////////////////////////////////
294 }
295 //__________________________________________________________________________
296 void AliITSvPPRsymm::BuildGeometry(){
297 ////////////////////////////////////////////////////////////////////////
298 //    Geometry builder for the ITS version 9.
299 ////////////////////////////////////////////////////////////////////////
300     TNode *node, *top;
301     const int kColorITS=kYellow;
302     //
303     top = gAlice->GetGeometry()->GetNode("alice");
304
305     new TTUBE("S_layer1","Layer1 of ITS","void",3.95,3.95+0.05475,12.25);
306     top->cd();
307     node = new TNode("Layer1","Layer1","S_layer1",0,0,0,"");
308     node->SetLineColor(kColorITS);
309     fNodes->Add(node);
310
311     new TTUBE("S_layer2","Layer2 of ITS","void",7.,7.+0.05475,16.3);
312     top->cd();
313     node = new TNode("Layer2","Layer2","S_layer2",0,0,0,"");
314     node->SetLineColor(kColorITS);
315     fNodes->Add(node);
316
317     new TTUBE("S_layer3","Layer3 of ITS","void",15.,15.+0.05288,21.1);
318     top->cd();
319     node = new TNode("Layer3","Layer3","S_layer3",0,0,0,"");
320     node->SetLineColor(kColorITS);
321     fNodes->Add(node);
322
323     new TTUBE("S_layer4","Layer4 of ITS","void",24,24+0.05288,29.6);
324     top->cd();
325     node = new TNode("Layer4","Layer4","S_layer4",0,0,0,"");
326     node->SetLineColor(kColorITS);
327     fNodes->Add(node);
328
329     new TTUBE("S_layer5","Layer5 of ITS","void",40,40+0.05382,45.1);
330     top->cd();
331     node = new TNode("Layer5","Layer5","S_layer5",0,0,0,"");
332     node->SetLineColor(kColorITS);
333     fNodes->Add(node);
334
335     new TTUBE("S_layer6","Layer6 of ITS","void",45,45+0.05382,50.4);
336     top->cd();
337     node = new TNode("Layer6","Layer6","S_layer6",0,0,0,"");
338     node->SetLineColor(kColorITS);
339     fNodes->Add(node);
340 }
341 //_____________________________________________________________________________
342 void AliITSvPPRsymm::CreateGeometry(){
343 ////////////////////////////////////////////////////////////////////////
344 //    This routine defines and Creates the geometry for version 9 of the ITS.
345 ////////////////////////////////////////////////////////////////////////
346   
347   //INNER RADII OF THE SILICON LAYERS 
348   // Float_t rl[6]    = { 3.8095,7.,15.,24.,38.1,43.5765 };   
349   //THICKNESSES OF LAYERS (in % radiation length)
350   Float_t drl[6]   = { 1.03,1.03,0.94,0.95,0.91,0.87 };   
351   //HALF LENGTHS OF LAYERS  
352   // Float_t dzl[6]   = { 14.35,14.35,25.1,32.1,49.405,55.27 };
353   //LENGTHS OF END-LADDER BOXES (ALL INCLUDED)
354   // Float_t dzb[6]   = { 12.4,12.4,13.5,15.,7.5,7.5 };   
355   //THICKNESSES OF END-LADDER BOXES (ALL INCLUDED)
356   // Float_t drb[6]   = { rl[1]-rl[0],0.2,5.,5.,4.,4. };        
357
358  
359   Float_t dits[100], rlim, zmax;
360   // Float_t zpos;
361   // Float_t pcits[50]
362   Float_t ztpc;
363   Int_t idrotm[1999], i;
364   Float_t dgh[100];
365
366
367   // Define some variables for SPD
368
369   Float_t dits1[3], di101[3], di107[3], di10b[3], di106[3];  // for layer 1 
370   Float_t di103[3], di10a[3], di102[3];                      // for layer 1
371   Float_t dits2[3], di1d1[3], di1d7[3], di20b[3], di1d6[3];  // for layer 2
372   Float_t di1d3[3], di20a[3], di1d2[3];                      // for layer 2  
373   Float_t di108[3], di104[3];                                // for both layers  
374
375   Float_t ddet1=300.;     // total detector thickness on layer 1 (micron)
376   Float_t dchip1=300.;    // total chip thickness on layer 1 (micron)
377   
378   Float_t ddet2=300.;     // total detector thickness on layer 2 (micron)                         
379   Float_t dchip2=300.;    // total chip thickness on layer 2 (micron)
380   
381   Float_t dbus=200.;      // total bus thickness on both layers (micron)
382
383   ddet1 = GetThicknessDet1();
384   ddet2 = GetThicknessDet2();
385   dchip1 = GetThicknessChip1();
386   dchip2 = GetThicknessChip2();    
387
388   if(ddet1 < 100. || ddet1 > 300.) {
389      cout << "ITS - WARNING: the detector thickness for layer 1 is outside the range of [100,300] microns."
390           " The default value of 300 microns will be used." << endl;
391           ddet1=300.;
392   }
393   
394   if(ddet2 < 100. || ddet2 > 300.) {
395      cout << "ITS - WARNING: the detector thickness for layer 2 is outside the range of [100,300] microns."
396           " The default value of 300 microns will be used." << endl;
397           ddet2=300.;
398   }
399   
400   if(dchip1 < 150. || dchip1 > 300.) {
401      cout << "ITS - WARNING: the chip thickness for layer 1 is outside the range of [150,300] microns."
402           " The default value of 300 microns will be used." << endl;
403           dchip1=300.;
404   }
405   
406   if(dchip2 < 150. || dchip2 > 300.) {
407      cout << "ITS - WARNING: the chip thickness for layer 2 is outside the range of [150,300] microns."
408           " The default value of 300 microns will be used." << endl;
409           dchip2=300.;
410   }      
411
412   Int_t rails = 1;       // flag for rails (1 --> rails in; 0 --> rails out)
413   
414   Int_t fluid = 1;       // flag for the cooling fluid (1 --> water; 0 --> freon)
415
416   rails = GetRails();
417
418   fluid = GetCoolingFluid();
419
420   if(rails != 0 && rails != 1) {
421      cout << "ITS - WARNING: the switch for rails is not set neither to 0 (rails out) nor to 1 (rails in)." 
422      " The default value of 1 (rails in) will be used." << endl;
423         
424   }  
425   
426   if(fluid != 0 && fluid != 1) {
427      cout << "ITS - WARNING: the switch for cooling fluid is not set neither to 0 (freon) nor to 1 (water)." 
428      " The default value of 1 (water) will be used." << endl;  
429   }       
430    
431   cout << "ITS: Detector thickness on layer 1 is set to " << ddet1 << " microns." << endl;
432   cout << "ITS: Chip thickness on layer 1 is set to " << dchip1 << " microns." << endl;
433   cout << "ITS: Detector thickness on layer 2 is set to " << ddet2 << " microns." << endl;
434   cout << "ITS: Chip thickness on layer 2 is set to " << dchip2 << " microns." << endl;
435   if(rails == 0 ) {
436      cout << "ITS: Rails are out." << endl; 
437   } else {
438      cout << "ITS: Rails are in." << endl;
439   }   
440   if(fluid == 0 ) {
441      cout << "ITS: The cooling fluid is freon." << endl; 
442   } else {
443      cout << "ITS: The cooling fluid is water." << endl;
444   }   
445
446   ddet1  = ddet1*0.0001/2.; // conversion from tot length in um to half in cm
447   ddet2  = ddet2*0.0001/2.; // conversion from tot length in um to half in cm   
448   dchip1 = dchip1*0.0001/2.;// conversion from tot length in um to half in cm   
449   dchip2 = dchip2*0.0001/2.;// conversion from tot length in um to half in cm   
450   dbus   = dbus*0.0001/2.;  // conversion from tot length in um to half in cm       
451                 
452   Float_t deltax, deltay; 
453
454   Int_t thickness = fMinorVersion/10;
455   Int_t option    = fMinorVersion - 10*thickness;
456
457
458   // Define some variables for SDD
459
460
461   Float_t sin30, cos30;
462
463   // SDD electronics+services main volumes
464   Float_t I018dits[3], I024dits[3], I047dits[3], I048dits[3];
465
466   // SDD detector ladder
467
468   Float_t I302dits[3], I402dits[3], I004dits[3], I005dits[3];
469   Float_t Y_SDD_sep = 0.20;
470   Float_t ySDD;
471   Int_t   iSDD;
472   Float_t Z_SDD_lay3[6] = {18.55, 10.95, 3.70, -3.70, -11.20, -18.35};
473   Float_t Z_SDD_lay4[8] = {25.75, 18.60, 11.00, 3.70, -3.70, -11.20, -18.45, -26.05};
474
475   // ladder foot and end-ladder (frame and cooling)
476   Float_t I028dits[3], I420dits[3], I421dits[3], I422dits[6], I423dits[3];
477   Float_t I424dits[3], xI424, yI424;
478   Float_t I425dits[3];
479   Int_t    indI425;
480   Float_t I029dits[4], I030dits[4], I031dits[3], I032dits[3];
481
482   // SDD ladder frame and cooling
483   Float_t SDD_CoolPipe[3] = {1.7000, -0.5500, 0.0000};
484   Float_t I035dits[3], I037dits[3], I038dits[3];
485   Float_t I039dits[3], xI039, yI039;
486   Float_t I041dits[5];
487
488   // SDD hybrid, chips and capacitors
489   Float_t I050dits[3], xI050, yI050;
490   Float_t I052dits[3], xI052, yI052;
491   Float_t I042dits[3], xI042, yI042;
492   Float_t xI042space = 0.17;
493   Float_t I043dits[3], xI043, yI043;
494   Float_t xI043space = 0.17;
495   Float_t zchip, zChipSpace;
496   Float_t I051dits[3], xI051, yI051, zI051, yI051space, xcap;
497   Int_t     ichip, icap;
498
499   // SDD microcables
500   Float_t I044dits[4], xI044, yI044, volI044;
501   Float_t xHV, yHV, zHV, xLV, yLV, zLV;
502   Char_t   HVname[5], LVname[5];
503
504
505   // Define media off-set
506   
507   Int_t *idtmed = fIdtmed->GetArray()-199;
508
509   
510   // Rotation matrices
511   
512   // SPD - option 'a' (this is NOT the default so leave commented)
513   
514   
515   if (option == 1) {
516   
517      AliMatrix(idrotm[201],90.0,90.0,90.0,180.0,0.0,0.0);
518      AliMatrix(idrotm[202],90.0,90.0,90.0,0.0,0.0,0.0);
519      AliMatrix(idrotm[203],90.0,350.0,90.0,260.0,0.0,0.0);
520      AliMatrix(idrotm[204],90.0,170.0,90.0,80.0,0.0,0.0);
521      AliMatrix(idrotm[205],90.0,10.0,90.0,100.0,0.0,0.0);
522      AliMatrix(idrotm[206],90.0,190.0,90.0,280.0,0.0,0.0);
523      AliMatrix(idrotm[207],90.0,342.0,90.0,72.0,0.0,0.0);
524      AliMatrix(idrotm[208],90.0,156.999893,90.0,246.999893,0.0,0.0);
525      AliMatrix(idrotm[209],90.0,147.999802,90.0,237.999893,0.0,0.0);
526      AliMatrix(idrotm[210],90.0,138.999802,90.0,228.999802,0.0,0.0);
527      AliMatrix(idrotm[211],90.0,129.999802,90.0,219.999802,0.0,0.0);
528      AliMatrix(idrotm[212],90.0,36.7896,90.0,126.789597,0.0,0.0);
529      AliMatrix(idrotm[213],90.0,343.579712,90.0,73.579697,0.0,0.0);
530      AliMatrix(idrotm[214],90.0,95.413696,90.0,185.413696,0.0,0.0);
531      AliMatrix(idrotm[215],90.0,5.4141,90.0,95.414101,0.0,0.0);
532      AliMatrix(idrotm[216],90.0,318.296906,90.0,48.296902,0.0,0.0);
533      AliMatrix(idrotm[217],90.0,67.000099,90.0,157.000107,0.0,0.0);
534      AliMatrix(idrotm[218],90.0,337.003998,90.0,67.003998,0.0,0.0);
535      AliMatrix(idrotm[219],90.0,247.000305,90.0,337.000305,0.0,0.0);
536      AliMatrix(idrotm[220],90.0,305.633514,90.0,35.633499,0.0,0.0);
537      AliMatrix(idrotm[221],90.0,58.000198,90.0,148.000198,0.0,0.0);
538      AliMatrix(idrotm[222],90.0,327.997101,90.0,57.997101,0.0,0.0 );
539      AliMatrix(idrotm[223],90.0,237.994202,90.0,327.994202,0.0,0.0);
540      AliMatrix(idrotm[224],90.0,296.627502,90.0,26.627399,0.0,0.0);
541      AliMatrix(idrotm[225],90.0,48.994099,90.0,138.994095,0.0,0.0);
542      AliMatrix(idrotm[226],90.0,318.990997,90.0,48.991001,0.0,0.0);
543      AliMatrix(idrotm[227],90.0,228.988205,90.0,318.98819,0.0,0.0);
544      AliMatrix(idrotm[228],90.0,287.621399,90.0,17.621401,0.0,0.0);
545      AliMatrix(idrotm[229],90.0,39.988098,90.0,129.988098,0.0,0.0);
546      AliMatrix(idrotm[230],90.0,309.984985,90.0,39.985001,0.0,0.0);
547      AliMatrix(idrotm[231],90.0,327.2612,90.0,57.2612,0.0,0.0);
548      AliMatrix(idrotm[232],90.0,237.261398,90.0,327.261414,0.0,0.0);
549      AliMatrix(idrotm[233],90.0,252.000504,90.0,342.000488,0.0,0.0 );
550      AliMatrix(idrotm[234],90.0,71.9991,90.0,161.9991,0.0,0.0);
551      AliMatrix(idrotm[235],90.0,270.0,90.0,0.0,0.0,0.0);
552      AliMatrix(idrotm[236],90.0,180.013702,90.0,270.013702,0.0,0.0);
553      AliMatrix(idrotm[237],90.0,180.0,90.0,90.0,0.0,0.0);
554      AliMatrix(idrotm[238],90.0,144.0,90.0,234.0,0.0,0.0);
555      AliMatrix(idrotm[239],90.0,216.0,90.0,306.0,0.0,0.0);
556      AliMatrix(idrotm[240],90.0,288.0,90.0,18.0,0.0,0.0);
557      AliMatrix(idrotm[241],90.0,324.0,90.0,54.0,0.0,0.0);
558      AliMatrix(idrotm[242],90.0,36.0,90.0,126.0,0.0,0.0);
559      AliMatrix(idrotm[243],90.0,108.0,90.0,198.0,0.0,0.0);
560      AliMatrix(idrotm[244],90.0,180.0,90.0,270.0,0.0,0.0);
561      AliMatrix(idrotm[245],90.0,162.0,90.0,252.0,0.0,0.0);
562      AliMatrix(idrotm[246],90.0,310.0,90.0,40.0,0.0,0.0);
563      AliMatrix(idrotm[247],90.0,319.0,90.0,49.0,0.0,0.0);
564      AliMatrix(idrotm[248],90.0,328.0,90.0,58.0,0.0,0.0);
565      AliMatrix(idrotm[249],90.0,337.0,90.0,67.0,0.0,0.0);
566      AliMatrix(idrotm[1003],90.0,73.5,90.0,163.5,0.0,0.0);
567      AliMatrix(idrotm[1011],90.0,342.0,90.0,72.0,0.0,0.0);
568      AliMatrix(idrotm[1039],90.0,72.0,90.0,162.0,0.0,0.0);
569      AliMatrix(idrotm[1043],90.0,66.91,90.0,156.91,0.0,0.0);
570      AliMatrix(idrotm[1065],90.0,144.0,90.0,234.0,0.0,0.0);
571      AliMatrix(idrotm[1078],90.0,180.0,90.0,270.0,0.0,0.0);
572      AliMatrix(idrotm[1088],90.0,57.41,90.0,147.41,0.0,0.0);
573      AliMatrix(idrotm[1089],90.0,333.0,90.0,63.0,0.0,0.0);
574      AliMatrix(idrotm[1090],90.0,351.0,90.0,81.0,0.0,0.0);
575      AliMatrix(idrotm[1091],90.0,216.0,90.0,306.0,0.0,0.0);
576      AliMatrix(idrotm[1092],90.0,27.0,90.0,117.0,0.0,0.0);
577      AliMatrix(idrotm[1093],90.0,18.0,90.0,108.0,0.0,0.0);
578      AliMatrix(idrotm[1094],90.0,9.0,90.0,99.0,0.0,0.0);
579      AliMatrix(idrotm[1104],90.0,252.0,90.0,342.0,0.0,0.0);
580      AliMatrix(idrotm[1106],90.0,36.0,90.0,126.0,0.0,0.0);
581      AliMatrix(idrotm[1107],90.0,108.0,90.0,198.0,0.0,0.0);
582      AliMatrix(idrotm[1108],90.0,324.0,90.0,54.0,180.0,0.0);
583      AliMatrix(idrotm[1109],90.0,0.0,90.0,90.0,180.0,0.0);
584      AliMatrix(idrotm[1110],90.0,36.0,90.0,126.0,180.0,0.0);
585      AliMatrix(idrotm[1111],90.0,72.0,90.0,162.0,180.0,0.0);
586      AliMatrix(idrotm[1112],90.0,108.0,90.0,198.0,180.0,0.0);
587      AliMatrix(idrotm[1113],90.0,144.0,90.0,234.0,180.0,0.0);
588      AliMatrix(idrotm[1114],90.0,180.0,90.0,270.0,180.0,0.0);
589      AliMatrix(idrotm[1115],90.0,216.0,90.0,306.0,180.0,0.0);
590      AliMatrix(idrotm[1116],90.0,252.0,90.0,342.0,180.0,0.0);
591      AliMatrix(idrotm[1117],90.0,288.0,90.0,18.0,0.0,0.0);
592      AliMatrix(idrotm[1118],90.0,288.0,90.0,18.0,180.0,0.0);
593      AliMatrix(idrotm[1130],90.0,324.0,90.0,54.0,0.0,0.0);  
594
595   }
596   
597   // SPD - option 'b' (this is the default)  
598     
599   if (option == 2) {
600
601      AliMatrix(idrotm[201],90.0,0.0,90.0,90.0,0.0,0.0);
602      AliMatrix(idrotm[202],90.0,90.0,90.0,0.0,0.0,0.0);
603      AliMatrix(idrotm[203],90.0,350.0,90.0,260.0,0.0,0.0);
604      AliMatrix(idrotm[204],90.0,170.0,90.0,80.0,0.0,0.0);
605      AliMatrix(idrotm[205],90.0,10.0,90.0,100.0,0.0,0.0);
606      AliMatrix(idrotm[206],90.0,190.0,90.0,280.0,0.0,0.0);
607      AliMatrix(idrotm[207],90.0,342.0,90.0,72.0,0.0,0.0);
608      AliMatrix(idrotm[208],90.0,156.999893,90.0,246.999893,0.0,0.0);
609      AliMatrix(idrotm[209],90.0,147.999802,90.0,237.999893,0.0,0.0);
610      AliMatrix(idrotm[210],90.0,138.999802,90.0,228.999802,0.0,0.0);
611      AliMatrix(idrotm[211],90.0,129.999802,90.0,219.999802,0.0,0.0);
612      AliMatrix(idrotm[212],90.0,36.7896,90.0,126.789597,0.0,0.0);
613      AliMatrix(idrotm[213],90.0,343.579712,90.0,73.579697,0.0,0.0);
614      AliMatrix(idrotm[214],90.0,95.413696,90.0,185.413696,0.0,0.0);
615      AliMatrix(idrotm[215],90.0,5.4141,90.0,95.414101,0.0,0.0);
616      AliMatrix(idrotm[216],90.0,318.296906,90.0,48.296902,0.0,0.0);
617      AliMatrix(idrotm[217],90.0,67.000099,90.0,157.000107,0.0,0.0);
618      AliMatrix(idrotm[218],90.0,337.003998,90.0,67.003998,0.0,0.0);
619      AliMatrix(idrotm[219],90.0,247.000305,90.0,337.000305,0.0,0.0);
620      AliMatrix(idrotm[220],90.0,305.633514,90.0,35.633499,0.0,0.0);
621      AliMatrix(idrotm[221],90.0,58.000198,90.0,148.000198,0.0,0.0);
622      AliMatrix(idrotm[222],90.0,327.997101,90.0,57.997101,0.0,0.0);
623      AliMatrix(idrotm[223],90.0,237.994202,90.0,327.994202,0.0,0.0);
624      AliMatrix(idrotm[224],90.0,296.627502,90.0,26.627399,0.0,0.0);
625      AliMatrix(idrotm[225],90.0,48.994099,90.0,138.994095,0.0,0.0);
626      AliMatrix(idrotm[226],90.0,318.990997,90.0,48.991001,0.0,0.0);
627      AliMatrix(idrotm[227],90.0,228.988205,90.0,318.98819,0.0,0.0);
628      AliMatrix(idrotm[228],90.0,287.621399,90.0,17.621401,0.0,0.0);
629      AliMatrix(idrotm[229],90.0,39.988098,90.0,129.988098,0.0,0.0);
630      AliMatrix(idrotm[230],90.0,309.984985,90.0,39.985001,0.0,0.0);
631      AliMatrix(idrotm[231],90.0,327.2612,90.0,57.2612,0.0,0.0);
632      AliMatrix(idrotm[232],90.0,237.261398,90.0,327.261414,0.0,0.0);
633      AliMatrix(idrotm[233],90.0,252.000504,90.0,342.000488,0.0,0.0);
634      AliMatrix(idrotm[234],90.0,71.9991,90.0,161.9991,0.0,0.0);
635      AliMatrix(idrotm[235],90.0,270.0,90.0,0.0,0.0,0.0);
636      AliMatrix(idrotm[236],90.0,180.013702,90.0,270.013702,0.0,0.0);
637      AliMatrix(idrotm[237],90.0,90.0,90.0,180.0,0.0,0.0);
638      AliMatrix(idrotm[238],90.0,180.0,90.0,270.0,0.0,0.0);
639      AliMatrix(idrotm[239],90.0,162.0,90.0,252.0,0.0,0.0);
640      AliMatrix(idrotm[240],90.0,310.0,90.0,40.0,0.0,0.0);
641      AliMatrix(idrotm[241],90.0,319.0,90.0,49.0,0.0,0.0);
642      AliMatrix(idrotm[242],90.0,328.0,90.0,58.0,0.0,0.0);
643      AliMatrix(idrotm[243],90.0,337.0,90.0,67.0,0.0,0.0);
644      AliMatrix(idrotm[244],90.0,216.0,90.0,306.0,0.0,0.0);
645      AliMatrix(idrotm[245],90.0,36.0,90.0,126.0,0.0,0.0);
646      AliMatrix(idrotm[246],90.0,108.0,90.0,198.0,0.0,0.0);
647      AliMatrix(idrotm[247],90.0,144.0,90.0,234.0,0.0,0.0);
648      AliMatrix(idrotm[248],90.0,288.0,90.0,18.0,0.0,0.0);
649      AliMatrix(idrotm[249],90.0,324.0,90.0,54.0,0.0,0.0);  
650      AliMatrix(idrotm[1003],90.0,73.5,90.0,163.5,0.0,0.0);
651      AliMatrix(idrotm[1011],90.0,342.0,90.0,72.0,0.0,0.0);
652      AliMatrix(idrotm[1039],90.0,72.0,90.0,162.0,0.0,0.0);
653      AliMatrix(idrotm[1043],90.0,66.91,90.0,156.91,0.0,0.0);
654      AliMatrix(idrotm[1065],90.0,144.0,90.0,234.0,0.0,0.0);
655      AliMatrix(idrotm[1078],90.0,180.0,90.0,270.0,0.0,0.0);
656      AliMatrix(idrotm[1088],90.0,57.41,90.0,147.41,0.0,0.0);
657      AliMatrix(idrotm[1089],90.0,333.0,90.0,63.0,0.0,0.0);
658      AliMatrix(idrotm[1090],90.0,351.0,90.0,81.0,0.0,0.0);
659      AliMatrix(idrotm[1091],90.0,216.0,90.0,306.0,0.0,0.0);
660      AliMatrix(idrotm[1092],90.0,27.0,90.0,117.0,0.0,0.0);
661      AliMatrix(idrotm[1093],90.0,18.0,90.0,108.0,0.0,0.0);
662      AliMatrix(idrotm[1094],90.0,9.0,90.0,99.0,0.0,0.0);
663      AliMatrix(idrotm[1104],90.0,252.0,90.0,342.0,0.0,0.0);
664      AliMatrix(idrotm[1106],90.0,36.0,90.0,126.0,0.0,0.0);
665      AliMatrix(idrotm[1107],90.0,108.0,90.0,198.0,0.0,0.0);
666      AliMatrix(idrotm[1108],90.0,324.0,90.0,54.0,180.0,0.0);
667      AliMatrix(idrotm[1109],90.0,0.0,90.0,90.0,180.0,0.0);
668      AliMatrix(idrotm[1110],90.0,36.0,90.0,126.0,180.0,0.0);
669      AliMatrix(idrotm[1111],90.0,72.0,90.0,162.0,180.0,0.0);
670      AliMatrix(idrotm[1112],90.0,108.0,90.0,198.0,180.0,0.0);
671      AliMatrix(idrotm[1113],90.0,144.0,90.0,234.0,180.0,0.0);
672      AliMatrix(idrotm[1114],90.0,180.0,90.0,270.0,180.0,0.0);
673      AliMatrix(idrotm[1115],90.0,216.0,90.0,306.0,180.0,0.0);
674      AliMatrix(idrotm[1116],90.0,252.0,90.0,342.0,180.0,0.0);
675      AliMatrix(idrotm[1117],90.0,288.0,90.0,18.0,0.0,0.0);
676      AliMatrix(idrotm[1118],90.0,288.0,90.0,18.0,180.0,0.0);
677      AliMatrix(idrotm[1130],90.0,324.0,90.0,54.0,0.0,0.0);  
678
679   }
680     
681   // SDD
682   
683   AliMatrix(idrotm[301],0.0,0.0,90.0,90.0,90.0,180.0);  
684   AliMatrix(idrotm[302],0.0,0.0,90.0,90.0,90.0,0.0);
685   AliMatrix(idrotm[303],180.0,0.0,90.0,90.0,90.0,0.0); 
686   AliMatrix(idrotm[304],180.0,0.0,90.0,90.0,90.0,180.0); 
687   AliMatrix(idrotm[305],90.0,347.14,90.0,77.14,0.0,0.0); 
688   AliMatrix(idrotm[306],90.0,321.43,90.0,51.43,0.0,0.0); 
689   AliMatrix(idrotm[307],90.0,295.71,90.0,25.71,0.0,0.0);
690   AliMatrix(idrotm[308],90.0,244.29,90.0,334.29,0.0,0.0);
691   AliMatrix(idrotm[309],90.0,218.57,90.0,308.57,0.0,0.0);
692   AliMatrix(idrotm[310],90.0,167.14,90.0,257.14,0.0,0.0);
693   AliMatrix(idrotm[311],90.0,141.43,90.0,231.43,0.0,0.0);  
694   AliMatrix(idrotm[312],90.0,0.0,0.0,0.0,90.0,270.0);
695   AliMatrix(idrotm[313],90.0,115.71,90.0,205.71,0.0,0.0); 
696   AliMatrix(idrotm[314],90.0,335.45,90.0,65.45,0.0,0.0); 
697   AliMatrix(idrotm[315],90.0,319.09,90.0,49.09,0.0,0.0); 
698   AliMatrix(idrotm[316],90.0,302.73,90.0,32.73,0.0,0.0); 
699   AliMatrix(idrotm[317],90.0,286.36,90.0,16.36,0.0,0.0);
700   AliMatrix(idrotm[318],90.0,270.0,90.0,360.0,0.0,0.0);
701   AliMatrix(idrotm[319],90.0,253.64,90.0,343.64,0.0,0.0);
702   AliMatrix(idrotm[320],90.0,237.27,90.0,327.27,0.0,0.0);
703   AliMatrix(idrotm[321],90.0,12.86,90.0,102.86,0.0,0.0);  
704   AliMatrix(idrotm[322],90.0,220.91,90.0,310.91,0.0,0.0);
705   AliMatrix(idrotm[323],90.0,204.55,90.0,294.55,0.0,0.0); 
706   AliMatrix(idrotm[324],90.0,188.18,90.0,278.18,0.0,0.0); 
707   AliMatrix(idrotm[325],90.0,171.82,90.0,261.82,0.0,0.0); 
708   AliMatrix(idrotm[326],90.0,155.45,90.0,245.45,0.0,0.0); 
709   AliMatrix(idrotm[327],90.0,139.09,90.0,229.09,0.0,0.0);
710   AliMatrix(idrotm[328],90.0,122.73,90.0,212.73,0.0,0.0);
711   AliMatrix(idrotm[329],90.0,106.36,90.0,196.36,0.0,0.0);
712   AliMatrix(idrotm[330],90.0,73.64,90.0,163.64,0.0,0.0);    
713   AliMatrix(idrotm[331],90.0,40.91,90.0,130.91,0.0,0.0);  
714   AliMatrix(idrotm[332],90.0,24.55,90.0,114.55,0.0,0.0);
715   AliMatrix(idrotm[333],90.0,38.57,90.0,128.57,0.0,0.0); 
716   AliMatrix(idrotm[334],90.0,351.82,90.0,81.82,0.0,0.0); 
717   AliMatrix(idrotm[335],90.0,8.18,90.0,98.18,0.0,0.0); 
718   AliMatrix(idrotm[336],90.0,64.29,90.0,154.29,0.0,0.0); 
719   AliMatrix(idrotm[337],111.0,300.0,21.0,300.0,90.0,30.0);
720   AliMatrix(idrotm[338],69.0,240.0,159.0,240.0,90.0,150.0);
721   AliMatrix(idrotm[339],111.0,240.0,21.0,240.0,90.0,150.0);
722   AliMatrix(idrotm[340],69.0,300.0,159.0,300.0,90.0,30.0);  
723   AliMatrix(idrotm[341],128.0,0.0,38.0,0.0,90.0,270.0);  
724   AliMatrix(idrotm[342],90.0,240.0,180.0,0.0,90.0,330.);
725   AliMatrix(idrotm[343],90.0,120.0,180.0,0.0,90.0,210.0); 
726   AliMatrix(idrotm[344],90.0,0.0,180.0,0.0,90.0,90.0); 
727   AliMatrix(idrotm[345],90.0,180.0,90.0,90.0,0.0,0.0); 
728   AliMatrix(idrotm[346],90.0,300.0,90.0,30.0,0.0,0.0); 
729   AliMatrix(idrotm[347],90.0,240.0,90.0,150.0,0.0,0.0);
730   AliMatrix(idrotm[348],90.0,180.0,0.0,0.0,90.0,270.0);
731   AliMatrix(idrotm[349],90.0,235.0,90.0,145.0,0.0,0.0);
732   AliMatrix(idrotm[350],90.0,90.0,90.0,180.0,0.0,0.0);  
733   AliMatrix(idrotm[351],90.0,305.0,90.0,35.0,0.0,0.0);  
734   AliMatrix(idrotm[352],0.0,0.0,90.0,0.0,90.0,90.0);
735   AliMatrix(idrotm[353],90.0,60.0,90.0,150.0,0.0,0.0); 
736   AliMatrix(idrotm[354],90.0,120.0,90.0,30.0,0.0,0.0); 
737   AliMatrix(idrotm[355],90.0,180.0,90.0,90.0,180.0,0.0); 
738   AliMatrix(idrotm[356],90.0,270.0,90.0,0.0,0.0,0.0); 
739   AliMatrix(idrotm[366],90.0,57.27,90.0,147.27,0.0,0.0); 
740   AliMatrix(idrotm[386],90.0,192.86,90.0,282.86,0.0,0.0);  
741    
742   // SSD
743   
744   AliMatrix(idrotm[501],90.0,148.24,90.0,238.24,0.0,0.0);
745   AliMatrix(idrotm[503],90.0,137.65,90.0,227.65,0.0,0.0); 
746   AliMatrix(idrotm[504],90.0,127.06,90.0,217.06,0.0,0.0);  
747   AliMatrix(idrotm[505],90.0,116.47,90.0,206.47,0.0,0.0);  
748   AliMatrix(idrotm[506],90.0,105.88,90.0,195.88,0.0,0.0);  
749   AliMatrix(idrotm[507],90.0,95.29,90.0,185.29,0.0,0.0);  
750   AliMatrix(idrotm[508],90.0,84.71,90.0,174.71,0.0,0.0);
751   AliMatrix(idrotm[509],90.0,74.12,90.0,164.12,0.0,0.0);
752   AliMatrix(idrotm[510],90.0,63.53,90.0,153.53,0.0,0.0);  
753   AliMatrix(idrotm[511],90.0,52.94,90.0,142.94,0.0,0.0);
754   AliMatrix(idrotm[512],90.0,42.35,90.0,132.35,0.0,0.0);
755   AliMatrix(idrotm[513],90.0,31.76,90.0,121.76,0.0,0.0); 
756   AliMatrix(idrotm[514],90.0,10.59,90.0,100.59,0.0,0.0);  
757   AliMatrix(idrotm[515],90.0,349.41,90.0,79.41,0.0,0.0);  
758   AliMatrix(idrotm[516],90.0,338.82,90.0,68.82,0.0,0.0);  
759   AliMatrix(idrotm[517],90.0,328.24,90.0,58.24,0.0,0.0);  
760   AliMatrix(idrotm[518],90.0,317.65,90.0,47.65,0.0,0.0);
761   AliMatrix(idrotm[519],90.0,307.06,90.0,37.06,0.0,0.0);
762   AliMatrix(idrotm[520],90.0,296.47,90.0,26.47,0.0,0.0);  
763   AliMatrix(idrotm[521],90.0,285.88,90.0,15.88,0.0,0.0);
764   AliMatrix(idrotm[522],90.0,275.29,90.0,5.29,0.0,0.0);
765   AliMatrix(idrotm[523],90.0,264.71,90.0,354.71,0.0,0.0); 
766   AliMatrix(idrotm[524],90.0,254.12,90.0,344.12,0.0,0.0);  
767   AliMatrix(idrotm[525],90.0,243.53,90.0,333.53,0.0,0.0);  
768   AliMatrix(idrotm[526],90.0,232.94,90.0,322.94,0.0,0.0);  
769   AliMatrix(idrotm[527],90.0,222.35,90.0,312.35,0.0,0.0);  
770   AliMatrix(idrotm[528],90.0,211.76,90.0,301.76,0.0,0.0);
771   AliMatrix(idrotm[529],90.0,190.59,90.0,280.59,0.0,0.0);
772   AliMatrix(idrotm[530],90.0,169.41,90.0,259.41,0.0,0.0);  
773   AliMatrix(idrotm[531],90.0,158.82,90.0,248.82,0.0,0.0);
774   AliMatrix(idrotm[532],90.0,360.0,90.0,90.0,0.0,0.0);
775   AliMatrix(idrotm[533],90.0,180.0,90.0,270.0,0.0,0.0); 
776   AliMatrix(idrotm[534],90.0,189.47,90.0,279.47,0.0,0.0);  
777   AliMatrix(idrotm[535],90.0,198.95,90.0,288.95,0.0,0.0);  
778   AliMatrix(idrotm[537],90.0,217.89,90.0,307.89,0.0,0.0);  
779   AliMatrix(idrotm[538],90.0,227.37,90.0,317.37,0.0,0.0);
780   AliMatrix(idrotm[539],90.0,236.84,90.0,326.84,0.0,0.0);
781   AliMatrix(idrotm[540],90.0,246.32,90.0,336.32,0.0,0.0);  
782   AliMatrix(idrotm[541],90.0,255.79,90.0,345.79,0.0,0.0);
783   AliMatrix(idrotm[542],90.0,265.26,90.0,355.26,0.0,0.0);
784   AliMatrix(idrotm[543],90.0,274.74,90.0,4.74,0.0,0.0); 
785   AliMatrix(idrotm[544],90.0,284.21,90.0,14.21,0.0,0.0);  
786   AliMatrix(idrotm[545],90.0,293.68,90.0,23.68,0.0,0.0);  
787   AliMatrix(idrotm[546],90.0,303.16,90.0,33.16,0.0,0.0);  
788   AliMatrix(idrotm[547],90.0,312.63,90.0,42.63,0.0,0.0);  
789   AliMatrix(idrotm[548],90.0,322.11,90.0,52.11,0.0,0.0);
790   AliMatrix(idrotm[549],90.0,331.58,90.0,61.58,0.0,0.0);
791   AliMatrix(idrotm[550],90.0,341.05,90.0,71.05,0.0,0.0);  
792   AliMatrix(idrotm[551],90.0,350.53,90.0,80.53,0.0,0.0);
793   AliMatrix(idrotm[552],90.0,9.47,90.0,99.47,0.0,0.0);
794   AliMatrix(idrotm[553],90.0,18.95,90.0,108.95,0.0,0.0); 
795   AliMatrix(idrotm[555],90.0,37.89,90.0,127.89,0.0,0.0);  
796   AliMatrix(idrotm[556],90.0,47.37,90.0,137.37,0.0,0.0);  
797   AliMatrix(idrotm[557],90.0,56.84,90.0,146.84,0.0,0.0);  
798   AliMatrix(idrotm[558],90.0,66.32,90.0,156.32,0.0,0.0);
799   AliMatrix(idrotm[559],90.0,75.79,90.0,165.79,0.0,0.0);
800   AliMatrix(idrotm[560],90.0,85.26,90.0,175.26,0.0,0.0);  
801   AliMatrix(idrotm[561],90.0,94.74,90.0,184.74,0.0,0.0);
802   AliMatrix(idrotm[562],90.0,104.21,90.0,194.21,0.0,0.0);
803   AliMatrix(idrotm[563],90.0,113.68,90.0,203.68,0.0,0.0); 
804   AliMatrix(idrotm[564],90.0,123.16,90.0,213.16,0.0,0.0);  
805   AliMatrix(idrotm[565],90.0,132.63,90.0,222.63,0.0,0.0);  
806   AliMatrix(idrotm[566],90.0,142.11,90.0,232.11,0.0,0.0);  
807   AliMatrix(idrotm[567],90.0,151.58,90.0,241.58,0.0,0.0);  
808   AliMatrix(idrotm[568],90.0,161.05,90.0,251.05,0.0,0.0);
809   AliMatrix(idrotm[569],90.0,170.53,90.0,260.53,0.0,0.0);
810   AliMatrix(idrotm[570],90.0,180.0,90.0,90.0,180.0,0.0);  
811   AliMatrix(idrotm[571],90.0,0.0,0.0,0.0,90.0,270.0);
812   AliMatrix(idrotm[572],90.0,180.0,0.0,0.0,90.0,270.0);
813   AliMatrix(idrotm[573],90.0,180.0,90.0,90.0,0.0,0.0); 
814   AliMatrix(idrotm[575],90.0,120.0,180.0,0.0,90.0,210.0);  
815   AliMatrix(idrotm[576],65.71,300.0,90.0,30.0,24.29,120.0);  
816   AliMatrix(idrotm[577],114.29,300.0,90.0,30.0,155.71,120.0);  
817   AliMatrix(idrotm[579],65.71,240.0,90.0,150.0,24.29,60.0);
818   AliMatrix(idrotm[580],114.29,240.0,90.0,150.0,155.71,60.0);  
819   AliMatrix(idrotm[581],90.0,240.0,180.0,0.0,90.0,330.0);
820   AliMatrix(idrotm[583],90.0,0.0,180.0,0.0,90.0,90.0); 
821   AliMatrix(idrotm[584],90.0,180.0,180.0,0.0,90.0,90.0);  
822   AliMatrix(idrotm[586],180.0,0.0,90.0,90.0,90.0,0.0);  
823   AliMatrix(idrotm[618],90.0,201.18,90.0,291.18,0.0,0.0);
824   AliMatrix(idrotm[620],90.0,28.42,90.0,118.42,0.0,0.0);  
825   AliMatrix(idrotm[623],90.0,208.42,90.0,298.42,0.0,0.0);
826   AliMatrix(idrotm[633],132.46,0.0,90.0,90.0,42.46,360.0);
827   AliMatrix(idrotm[653],90.0,21.18,90.0,111.18,0.0,0.0); 
828
829   
830   // SDD cone
831
832   AliMatrix(idrotm[846],90.0,300.0,90.0,30.0,0.0,0.0);
833   AliMatrix(idrotm[851],90.0,305.0,90.0,35.0,0.0,0.0);
834   AliMatrix(idrotm[853],90.0,60.0,90.0,150.0,0.0,0.0);
835   AliMatrix(idrotm[856],90.0,0.0,90.0,90.0,180.0,0.0);
836   AliMatrix(idrotm[857],90.0,5.0,90.0,95.0,180.0,0.0);
837   AliMatrix(idrotm[858],90.0,65.0,90.0,155.0,180.0,0.0);
838   AliMatrix(idrotm[859],90.0,305.0,90.0,35.0,180.0,0.0);
839   AliMatrix(idrotm[860],90.0,245.0,90.0,335.0,180.0,0.0);
840   AliMatrix(idrotm[861],90.0,185.0,90.0,275.0,180.0,0.0);
841   AliMatrix(idrotm[862],90.0,125.0,90.0,215.0,180.0,0.0);
842   AliMatrix(idrotm[863],90.0,257.5,90.0,347.5,180.0,0.0);
843   AliMatrix(idrotm[864],90.0,227.5,90.0,317.5,180.0,0.0);
844   AliMatrix(idrotm[865],90.0,197.5,90.0,287.5,180.0,0.0);
845   AliMatrix(idrotm[867],90.0,167.5,90.0,257.5,180.0,0.0);
846   AliMatrix(idrotm[868],90.0,287.5,90.0,17.5,0.0,0.0);  
847   AliMatrix(idrotm[869],90.0,137.5,90.0,227.5,180.0,0.0);
848   AliMatrix(idrotm[870],90.0,107.5,90.0,197.5,180.0,0.0);
849   AliMatrix(idrotm[871],90.0,77.5,90.0,167.5,180.0,0.0);
850   AliMatrix(idrotm[872],90.0,47.5,90.0,137.5,180.0,0.0);
851   AliMatrix(idrotm[873],90.0,17.5,90.0,107.5,180.0,0.0);
852   AliMatrix(idrotm[874],90.0,347.5,90.0,77.5,180.0,0.0);
853   AliMatrix(idrotm[875],90.0,317.5,90.0,47.5,180.0,0.0);
854   AliMatrix(idrotm[876],90.0,287.5,90.0,17.5,180.0,0.0);
855   AliMatrix(idrotm[877],90.0,185.0,90.0,275.0,0.0,0.0);
856   AliMatrix(idrotm[878],90.0,180.0,90.0,270.0,0.0,0.0);  
857   AliMatrix(idrotm[879],90.0,125.0,90.0,215.0,0.0,0.0);
858   AliMatrix(idrotm[880],90.0,65.0,90.0,155.0,0.0,0.0);
859   AliMatrix(idrotm[881],90.0,5.0,90.0,95.0,0.0,0.0);
860   AliMatrix(idrotm[882],90.0,245.0,90.0,335.0,0.0,0.0);
861   AliMatrix(idrotm[883],90.0,47.5,90.0,137.5,0.0,0.0);
862   AliMatrix(idrotm[884],90.0,77.5,90.0,167.5,0.0,0.0);
863   AliMatrix(idrotm[885],90.0,107.5,90.0,197.5,0.0,0.0);
864   AliMatrix(idrotm[887],90.0,137.5,90.0,227.5,0.0,0.0);
865   AliMatrix(idrotm[888],90.0,167.5,90.0,257.5,0.0,0.0);
866   AliMatrix(idrotm[889],90.0,197.5,90.0,287.5,0.0,0.0);
867   AliMatrix(idrotm[890],90.0,227.5,90.0,317.5,0.0,0.0);
868   AliMatrix(idrotm[891],90.0,347.5,90.0,77.5,0.0,0.0);
869   AliMatrix(idrotm[892],90.0,317.5,90.0,47.5,0.0,0.0);
870   AliMatrix(idrotm[893],90.0,257.5,90.0,347.5,0.0,0.0);
871   AliMatrix(idrotm[894],90.0,270.0,0.0,0.0,90.0,180.0);
872   AliMatrix(idrotm[895],90.0,286.36,0.0,0.0,90.0,196.36);
873   AliMatrix(idrotm[896],90.0,302.73,0.0,0.0,90.0,212.73);
874   AliMatrix(idrotm[897],90.0,319.09,0.0,0.0,90.0,229.09);
875   AliMatrix(idrotm[898],90.0,17.5,90.0,107.5,0.0,0.0);
876   AliMatrix(idrotm[899],90.0,335.45,0.0,0.0,90.0,245.45);
877   AliMatrix(idrotm[900],90.0,351.82,0.0,0.0,90.0,261.82);
878   AliMatrix(idrotm[901],90.0,8.18,0.0,0.0,90.0,278.18);
879   AliMatrix(idrotm[902],90.0,24.55,0.0,0.0,90.0,294.55);
880   AliMatrix(idrotm[903],90.0,40.91,0.0,0.0,90.0,310.91);
881   AliMatrix(idrotm[904],90.0,57.27,0.0,0.0,90.0,327.27);
882   AliMatrix(idrotm[905],90.0,73.64,0.0,0.0,90.0,343.64);
883   AliMatrix(idrotm[906],90.0,90.0,0.0,0.0,90.0,360.0);
884   AliMatrix(idrotm[907],90.0,106.36,0.0,0.0,90.0,16.36);
885   AliMatrix(idrotm[908],90.0,122.73,0.0,0.0,90.0,32.73);
886   AliMatrix(idrotm[909],90.0,139.09,0.0,0.0,90.0,49.09);
887   AliMatrix(idrotm[910],90.0,155.45,0.0,0.0,90.0,65.45);
888   AliMatrix(idrotm[911],90.0,171.82,0.0,0.0,90.0,81.82);
889   AliMatrix(idrotm[912],90.0,188.18,0.0,0.0,90.0,98.18);
890   AliMatrix(idrotm[913],90.0,204.55,0.0,0.0,90.0,114.55);
891   AliMatrix(idrotm[914],90.0,220.91,0.0,0.0,90.0,130.91);
892   AliMatrix(idrotm[915],90.0,237.27,0.0,0.0,90.0,147.27);
893   AliMatrix(idrotm[916],90.0,253.64,0.0,0.0,90.0,163.64);
894   AliMatrix(idrotm[917],90.0,295.71,0.0,0.0,90.0,205.71);
895   AliMatrix(idrotm[918],90.0,321.43,0.0,0.0,90.0,231.43);
896   AliMatrix(idrotm[919],90.0,347.14,0.0,0.0,90.0,257.14);
897   AliMatrix(idrotm[920],90.0,12.86,0.0,0.0,90.0,282.86);
898   AliMatrix(idrotm[921],90.0,38.57,0.0,0.0,90.0,308.57);
899   AliMatrix(idrotm[922],90.0,64.29,0.0,0.0,90.0,334.29);
900   AliMatrix(idrotm[923],90.0,115.71,0.0,0.0,90.0,25.71);
901   AliMatrix(idrotm[924],90.0,141.43,0.0,0.0,90.0,51.43);
902   AliMatrix(idrotm[925],90.0,167.14,0.0,0.0,90.0,77.14);
903   AliMatrix(idrotm[926],90.0,192.86,0.0,0.0,90.0,102.86);
904   AliMatrix(idrotm[927],90.0,218.57,0.0,0.0,90.0,128.57);
905   AliMatrix(idrotm[928],90.0,244.29,0.0,0.0,90.0,154.29);
906   AliMatrix(idrotm[929],90.0,120.0,90.0,210.0,0.0,0.0);
907   AliMatrix(idrotm[930],90.0,240.0,90.0,330.0,0.0,0.0);
908   AliMatrix(idrotm[931],90.0,60.0,90.0,150.0,180.0,0.0);
909   AliMatrix(idrotm[932],90.0,120.0,90.0,210.0,180.0,0.0);
910   AliMatrix(idrotm[933],90.0,180.0,90.0,270.0,180.0,0.0);
911   AliMatrix(idrotm[934],90.0,240.0,90.0,330.0,180.0,0.0);
912   AliMatrix(idrotm[935],90.0,300.0,90.0,30.0,180.0,0.0);
913
914   // SSD cone
915
916   AliMatrix(idrotm[701],90.0,0.0,90.0,90.0,180.0,0.0);
917   AliMatrix(idrotm[702],90.0,347.5,90.0,77.5,180.0,0.0);
918   AliMatrix(idrotm[703],90.0,17.5,90.0,107.5,180.0,0.0);
919   AliMatrix(idrotm[704],90.0,47.5,90.0,137.5,180.0,0.0);
920   AliMatrix(idrotm[705],90.0,77.5,90.0,167.5,180.0,0.0);
921   AliMatrix(idrotm[706],90.0,107.5,90.0,197.5,180.0,0.0);
922   AliMatrix(idrotm[707],90.0,137.5,90.0,227.5,180.0,0.0);
923   AliMatrix(idrotm[708],90.0,167.5,90.0,257.5,180.0,0.0);
924   AliMatrix(idrotm[709],90.0,197.5,90.0,287.5,180.0,0.0);
925   AliMatrix(idrotm[710],90.0,227.5,90.0,317.5,180.0,0.0);
926   AliMatrix(idrotm[711],90.0,257.5,90.0,347.5,180.0,0.0);
927   AliMatrix(idrotm[712],90.0,287.5,90.0,17.5,180.0,0.0);
928   AliMatrix(idrotm[713],90.0,317.5,90.0,47.5,180.0,0.0);
929   AliMatrix(idrotm[714],90.0,328.4,90.0,58.4,180.0,0.0);
930   AliMatrix(idrotm[715],90.0,28.4,90.0,118.4,180.0,0.0);
931   AliMatrix(idrotm[716],90.0,88.4,90.0,178.4,180.0,0.0);
932   AliMatrix(idrotm[717],90.0,148.4,90.0,238.4,180.0,0.0);
933   AliMatrix(idrotm[718],90.0,208.4,90.0,298.4,180.0,0.0);
934   AliMatrix(idrotm[719],90.0,268.4,90.0,358.4,180.0,0.0);
935   AliMatrix(idrotm[720],90.0,28.4,90.0,118.4,0.0,0.0);
936   AliMatrix(idrotm[721],90.0,88.4,90.0,178.4,0.0,0.0);
937   AliMatrix(idrotm[722],90.0,148.4,90.0,238.4,0.0,0.0);
938   AliMatrix(idrotm[723],90.0,208.4,90.0,298.4,0.0,0.0);
939   AliMatrix(idrotm[724],90.0,268.4,90.0,358.4,0.0,0.0);
940   AliMatrix(idrotm[725],90.0,328.4,90.0,58.4,0.0,0.0);
941   AliMatrix(idrotm[726],90.0,77.5,90.0,167.5,0.0,0.0);
942   AliMatrix(idrotm[727],90.0,107.5,90.0,197.5,0.0,0.0);
943   AliMatrix(idrotm[728],90.0,137.5,90.0,227.5,0.0,0.0);
944   AliMatrix(idrotm[729],90.0,167.5,90.0,257.5,0.0,0.0);
945   AliMatrix(idrotm[730],90.0,227.5,90.0,317.5,0.0,0.0);
946   AliMatrix(idrotm[731],90.0,257.5,90.0,347.5,0.0,0.0);
947   AliMatrix(idrotm[732],90.0,317.5,90.0,47.5,0.0,0.0);  
948   AliMatrix(idrotm[733],90.0,197.5,90.0,287.5,0.0,0.0);
949   AliMatrix(idrotm[734],90.0,347.5,90.0,77.5,0.0,0.0);
950   AliMatrix(idrotm[735],90.0,47.5,90.0,137.5,0.0,0.0);
951   AliMatrix(idrotm[768],90.0,287.5,90.0,17.5,0.0,0.0);
952   AliMatrix(idrotm[798],90.0,17.5,90.0,107.5,0.0,0.0);
953
954   // Services
955     
956   AliMatrix(idrotm[200], 90., 0., 90., 90., 180., 0.);  
957
958
959   //     CONVERT INTO CM (RL(SI)=9.36 CM) 
960   
961   for (i = 0; i < 6; ++i) {
962     drl[i] = drl[i] / 100. * 9.36;
963   }
964     
965   //     FIELD CAGE HALF LENGTH 
966   
967   rlim  = 50.;
968   zmax  = 74.;
969   ztpc = 284.;
970   
971   // --- Define ghost volume containing the whole ITS (including services) 
972   //     and fill it with air 
973   
974   dgh[0] = 0.;
975   dgh[1] = 360.;
976   dgh[2] = 16.;
977   dgh[3] = -ztpc-5.-0.1;
978   dgh[4] = 62.4;
979   dgh[5] = 85.;
980   dgh[6] = -ztpc;
981   dgh[7] = 62;
982   dgh[8] = 85.;
983   dgh[9] = -ztpc;
984   dgh[10] = 62;
985   dgh[11] = 62+4.;
986   dgh[12] = -97.5;
987   dgh[13] = 46;
988   dgh[14] = rlim+6;
989   dgh[15] = -zmax;
990   dgh[16] = 46;
991   dgh[17] = rlim+6;
992   dgh[18] = -48;
993   dgh[19] = 6;
994   dgh[20] = rlim+6; 
995   dgh[21] = -28.6;
996   dgh[22] = 6;
997   dgh[23] = rlim+6;
998   dgh[24] = -27.6;
999   dgh[25] = 3.295;
1000   dgh[26] = rlim+6;
1001   dgh[27] = 27.6;
1002   dgh[28] = 3.295;
1003   dgh[29] = rlim+6;
1004   dgh[30] = 28.6;
1005   dgh[31] = 6;
1006   dgh[32] = rlim+6;
1007   dgh[33] = 48;
1008   dgh[34] = 6;
1009   dgh[35] = rlim+6;
1010   dgh[36] = zmax;
1011   dgh[37] = 46;
1012   dgh[38] = rlim+6;
1013   dgh[39] = 97.5;
1014   dgh[40] = 46;
1015   dgh[41] = rlim+6;
1016   dgh[42] = ztpc;
1017   dgh[43] = 62;
1018   dgh[44] = 62+4.;
1019   dgh[45] = ztpc;
1020   dgh[46] = 62;
1021   dgh[47] = 85.;
1022   dgh[48] = ztpc+4.+0.1;
1023   dgh[49] = 62.4;
1024   dgh[50] = 85.;
1025   gMC->Gsvolu("ITSV", "PCON", idtmed[205], dgh, 51);
1026
1027
1028   
1029   // --- Place the ghost volume in its mother volume (ALIC) and make it 
1030   //     invisible 
1031   
1032   gMC->Gspos("ITSV", 1, "ALIC", 0., 0., 0., 0, "ONLY");
1033   //gMC->Gsatt("ITSV", "SEEN", 0); 
1034
1035
1036   // --- Define ghost volume containing the six layers and fill it with air 
1037   
1038   dgh[0] = 0.;
1039   dgh[1] = 360.;
1040   dgh[2] = 8.;
1041   dgh[3] = -zmax;  
1042   dgh[4] = 46.;
1043   dgh[5] = rlim;
1044   dgh[6] = -47.5;    
1045   dgh[7] = 6.005;
1046   dgh[8] = rlim;
1047   dgh[9] = -28.5;    
1048   dgh[10] = 6.005;
1049   dgh[11] = rlim;  
1050   dgh[12] = -27.5;   
1051   dgh[13] = 3.3;
1052   dgh[14] = rlim;
1053   dgh[15] = 27.5;    
1054   dgh[16] = 3.3;
1055   dgh[17] = rlim;
1056   dgh[18] = 28.5;    
1057   dgh[19] = 6.005;
1058   dgh[20] = rlim;
1059   dgh[21] = 47.5;    
1060   dgh[22] = 6.005;
1061   dgh[23] = rlim;
1062   dgh[24] = zmax;    
1063   dgh[25] = 46.;
1064   dgh[26] = rlim;
1065   gMC->Gsvolu("ITSD", "PCON", idtmed[205], dgh, 27);
1066   
1067   // --- Place the ghost volume in its mother volume (ITSV) and make it 
1068   //     invisible 
1069   
1070   gMC->Gspos("ITSD", 1, "ITSV", 0., 0., 0., 0, "ONLY");
1071   //gMC->Gsatt("ITSD", "SEEN", 0);
1072
1073   // --- Define SPD (option 'a') volumes ----------------------------
1074   
1075   // SPD - option 'a' 
1076   // (this is NOT the default)
1077
1078   if (option == 1) {
1079   
1080      dits[0] = 3.7;
1081      dits[1] = 7.75;
1082      dits[2] = 26.1;
1083      gMC->Gsvolu("IT12", "TUBE", idtmed[254], dits, 3);   
1084
1085      dits[0] = 3.7;
1086      dits[1] = 7.7;
1087      dits[2] = 24;
1088      dits[3] = 57;
1089      dits[4] = 100;
1090      gMC->Gsvolu("I12A", "TUBS", idtmed[254], dits, 5);    // sector
1091
1092      di10a[0] = 0.843;
1093      di10a[1] = ddet1+dchip1+dbus+0.0025;
1094      di10a[2] = 19.344;
1095      gMC->Gsvolu("I10A", "BOX ", idtmed[254], di10a, 3);    // mother volume
1096                                                             // on layer 1
1097      di20a[0] = 0.843;
1098      di20a[1] = ddet2+dchip2+dbus+0.0025;
1099      di20a[2] = 19.344;
1100      gMC->Gsvolu("I20A", "BOX ", idtmed[254], di20a, 3);    // mother volume
1101                                                             // on layer 2
1102      dits[0] = 1.3673;
1103      dits[1] = 0.01;
1104      dits[2] = 24;
1105      gMC->Gsvolu("I123", "BOX ", idtmed[253], dits, 3);
1106
1107      dits[0] = 0.06;
1108      dits[1] = 0.08;
1109      dits[2] = 24;
1110      dits[3] = -36.79;
1111      dits[4] = 21.834;
1112      gMC->Gsvolu("I121", "TUBS", idtmed[253], dits, 5);  
1113
1114      dits[0] = 0.1253;
1115      dits[1] = 0.01;
1116      dits[2] = 24;
1117      gMC->Gsvolu("I122", "BOX ", idtmed[253], dits, 3);  
1118
1119      dits[0] = 0.04;
1120      dits[1] = 0.06 ;
1121      dits[2] = 24;
1122      dits[3] = 126.79;
1123      dits[4] = 270;
1124      gMC->Gsvolu("I120", "TUBS", idtmed[253], dits, 5);  
1125
1126      dits[0] = 0.1134;
1127      dits[1] = 0.01;
1128      dits[2] = 24;
1129      gMC->Gsvolu("I144", "BOX ", idtmed[253], dits, 3);  
1130
1131      dits[0] = 0.25;
1132      dits[1] = 0.06;
1133      dits[2] = 24;
1134      gMC->Gsvolu("I113", "BOX ", idtmed[254], dits, 3);  
1135
1136      dits[0] = 0.077;
1137      dits[1] = 0.01;
1138      dits[2] = 24;
1139      gMC->Gsvolu("I143", "BOX ", idtmed[253], dits, 3);   
1140
1141      dits[0] = 0.04;
1142      dits[1] = 0.06;
1143      dits[2] = 24;
1144      dits[3] = 0;
1145      dits[4] = 90;
1146      gMC->Gsvolu("I142", "TUBS", idtmed[253], dits, 5); 
1147
1148      dits[0] = 0.0695;
1149      dits[1] = 0.01;
1150      dits[2] = 24;
1151      gMC->Gsvolu("I141", "BOX ", idtmed[253], dits, 3);  
1152
1153      dits[0] = 0.06;
1154      dits[1] = 0.08;
1155      dits[2] = 24;
1156      dits[3] = 0;
1157      dits[4] = 108;
1158      gMC->Gsvolu("I140", "TUBS", idtmed[253], dits, 5);  
1159
1160      dits[0] = 0.1835;
1161      dits[1] = 0.01;
1162      dits[2] = 24;
1163      gMC->Gsvolu("I139", "BOX ", idtmed[253], dits, 3);
1164
1165      dits[0] = 0.1894 ;
1166      dits[1] = 0.01;
1167      dits[2] = 24;
1168      gMC->Gsvolu("I138", "BOX ", idtmed[253], dits, 3);  
1169
1170      dits[0] = 0.04;
1171      dits[1] = 0.06;
1172      dits[2] = 24;
1173      dits[3] = 0;
1174      dits[4] = 75.261;
1175      gMC->Gsvolu("I137", "TUBS", idtmed[253], dits, 5);  
1176
1177      dits[0] = 1.3401;
1178      dits[1] = 0.01;
1179      dits[2] = 24;
1180      gMC->Gsvolu("I136", "BOX ", idtmed[253], dits, 3);  
1181
1182      dits[0] = 0.05;
1183      dits[1] = 0.07;
1184      dits[2] = 24;
1185      dits[3] = 0;
1186      dits[4] = 72.739;
1187      gMC->Gsvolu("I135", "TUBS", idtmed[253], dits, 5);  
1188
1189      dits[0] = 0.1193;
1190      dits[1] = 0.01;
1191      dits[2] = 24;
1192      gMC->Gsvolu("I134", "BOX ", idtmed[253], dits, 3);    
1193
1194      dits[0] = 0.163;
1195      dits[1] = 0.01;
1196      dits[2] = 24;
1197      gMC->Gsvolu("I133", "BOX ", idtmed[253], dits, 3);   
1198
1199      dits[0] = 0.04;
1200      dits[1] = 0.06;
1201      dits[2] = 24;
1202      dits[3] = 0;
1203      dits[4] = 157.633;
1204      gMC->Gsvolu("I132", "TUBS", idtmed[253], dits, 5); 
1205
1206      dits[0] = 0.2497;
1207      dits[1] = 0.01;
1208      dits[2] = 24;
1209      gMC->Gsvolu("I131", "BOX ", idtmed[253], dits, 3); 
1210
1211      dits[0] = 0.06;
1212      dits[1] = 0.08;
1213      dits[2] = 24;
1214      dits[3] = 0;
1215      dits[4] = 148.633;
1216      gMC->Gsvolu("I130", "TUBS", idtmed[253], dits, 5); 
1217
1218      dits[0] = 0.292;
1219      dits[1] = 0.01;
1220      dits[2] = 24;
1221      gMC->Gsvolu("I129", "BOX ", idtmed[253], dits, 3);  
1222
1223      dits[0] = 0.163;
1224      dits[1] = 0.01;
1225      dits[2] = 24;
1226      gMC->Gsvolu("I128", "BOX ", idtmed[253], dits, 3);  
1227
1228      dits[0] = 0.04;
1229      dits[1] = 0.06;
1230      dits[2] = 24;
1231      dits[3] = 0;
1232      dits[4] = 161.297;
1233      gMC->Gsvolu("I126", "TUBS", idtmed[253], dits, 5);
1234
1235      dits[0] = 0.2433;
1236      dits[1] = 0.01;
1237      dits[2] = 24;
1238      gMC->Gsvolu("I125", "BOX ", idtmed[253], dits, 3);  
1239
1240      dits[0] = 0.06;
1241      dits[1] = 0.08;
1242      dits[2] = 24;
1243      dits[3] = 0;
1244      dits[4] = 42.883;
1245      gMC->Gsvolu("I124", "TUBS", idtmed[253], dits, 5);  
1246
1247      di103[0] = 0.793;
1248      di103[1] = ddet1+dchip1;
1249      di103[2] = 3.536;
1250      gMC->Gsvolu("I103", "BOX ", idtmed[254], di103, 3); // contains det and chip  
1251                                                          // layer 1
1252      dits[0] = 0.793;
1253      dits[1] = 0.475;  //0.685; 0.015
1254      dits[2] = 2.5;
1255      gMC->Gsvolu("I105", "BOX ", idtmed[290], dits, 3);  
1256
1257      di104[0] = 0.843;
1258      di104[1] = dbus;
1259      di104[2] = 14.344;
1260      gMC->Gsvolu("I104", "BOX ", idtmed[275], di104, 3);  // bus for both layers
1261
1262      di1d3[0] = 0.793;
1263      di1d3[1] = ddet2+dchip2;
1264      di1d3[2] = 3.536;
1265      gMC->Gsvolu("I1D3", "BOX ", idtmed[254], di1d3, 3); // contains det and chip
1266                                                          // layer 2
1267      dits[0] = 0.793;
1268      dits[0] = 0.06;
1269      dits[1] = 0.08;
1270      dits[2] = 24;
1271      dits[3] = 0;
1272      dits[4] = 80;
1273      gMC->Gsvolu("I112", "TUBS", idtmed[253], dits, 5);  
1274
1275      dits[0] = 0.04;
1276      dits[1] = 0.06;
1277      dits[2] = 24;
1278      dits[3] = 0;
1279      dits[4] = 80;
1280      gMC->Gsvolu("I111", "TUBS", idtmed[253], dits, 5);  
1281
1282      dits[0] = 0.15;
1283      dits[1] = 0.0146;
1284      dits[2] = 24;
1285      gMC->Gsvolu("I118", "BOX ", idtmed[273], dits, 3);  
1286
1287      dits[0] = 0.1315;
1288      dits[1] = 0.01;
1289      dits[2] = 24;
1290      gMC->Gsvolu("I110", "BOX ", idtmed[253], dits, 3);  
1291
1292      dits[0] = 0.025;
1293      dits[1] = 0.035;
1294      dits[2] = 24;
1295      dits[3] = 0;
1296      dits[4] = 180;
1297      gMC->Gsvolu("I114", "TUBS", idtmed[264], dits, 5);  
1298
1299      if (fluid == 1) {
1300         dits[0] = 0;
1301         dits[1] = 0.025;
1302         dits[2] = 24;
1303         dits[3] = 0;
1304         dits[4] = 180;
1305         gMC->Gsvolu("I115", "TUBS", idtmed[211], dits, 5); // set water as cooling fluid   
1306      } else {
1307         dits[0] = 0;
1308         dits[1] = 0.025;
1309         dits[2] = 24;
1310         dits[3] = 0;
1311         dits[4] = 180;
1312         gMC->Gsvolu("I115", "TUBS", idtmed[212], dits, 5); // set freon as cooling fluid       
1313      }
1314      
1315      dits[0] = 0.063;
1316      dits[1] = 0.035;
1317      dits[2] = 24;
1318      gMC->Gsvolu("I116", "BOX ", idtmed[264], dits, 3); 
1319
1320      di102[0] = 0.793;
1321      di102[1] = dchip1;
1322      di102[2] = 0.68;
1323      gMC->Gsvolu("I102", "BOX ", idtmed[201], di102, 3);   // chip layer 1
1324           
1325      di1d2[0] = 0.793;
1326      di1d2[1] = dchip2;
1327      di1d2[2] = 0.68;
1328      gMC->Gsvolu("I1D2", "BOX ", idtmed[201], di1d2, 3);   // chip      layer 2
1329
1330      di101[0] = 0.705;
1331      di101[1] = ddet1;
1332      di101[2] = 3.536;
1333      gMC->Gsvolu("I101", "BOX ", idtmed[250], di101, 3);   // contains detector 
1334                                                            // layer 1
1335      di1d1[0] = 0.705;
1336      di1d1[1] = ddet2;
1337      di1d1[2] = 3.536;
1338      gMC->Gsvolu("I1D1", "BOX ", idtmed[250], di1d1, 3);   // contains detector 
1339                                                            // layer 2
1340      if (fluid == 1) {
1341         dits[0] = 0.063;
1342         dits[1] = 0.025;
1343         dits[2] = 24;
1344         gMC->Gsvolu("I117", "BOX ", idtmed[211], dits, 3); // set water as cooling fuid
1345      } else {
1346         dits[0] = 0.063;
1347         dits[1] = 0.025;
1348         dits[2] = 24;
1349         gMC->Gsvolu("I117", "BOX ", idtmed[212], dits, 3); // set freon as cooling fluid
1350      }
1351
1352      dits1[0] = 0.64;
1353      dits1[1] = ddet1;
1354      dits1[2] = 3.48;
1355      gMC->Gsvolu("ITS1", "BOX ", idtmed[200], dits1, 3);   // detector layer 1
1356
1357      dits2[0] = 0.64;
1358      dits2[1] = ddet2;
1359      dits2[2] = 3.48;
1360      gMC->Gsvolu("ITS2", "BOX ", idtmed[200], dits2, 3);   // detector layer 2
1361
1362      dits[0] = 3.701;
1363      dits[1] = 7.699;
1364      dits[2] = 4;
1365      dits[3] = 57.1;
1366      dits[4] = 99.9;  
1367      gMC->Gsvolu("I650", "TUBS", idtmed[254], dits, 5);  // was I150 in old geom.
1368
1369      dits[0] = 0;
1370      dits[1] = 0.5;
1371      dits[2] = 1.5;
1372      gMC->Gsvolu("I676", "TUBE", idtmed[274], dits, 3); // was I176 in old geom.
1373
1374      dits[0] = 0;
1375      dits[1] = 0.18;
1376      dits[2] = 0.8;
1377      gMC->Gsvolu("I673", "TUBE", idtmed[274], dits, 3); // was I173 in old geom.
1378
1379      dits[0] = 0;
1380      dits[1] = 0.18;
1381      dits[2] = 3;
1382      gMC->Gsvolu("I671", "TUBE", idtmed[274], dits, 3); // was I171 in old geom.
1383
1384      dits[0] = 0;
1385      dits[1] = 0.075;
1386      dits[2] = 0.8;
1387      gMC->Gsvolu("I669", "TUBE", idtmed[264], dits, 3); // was I169 in old geom.
1388
1389      dits[0] = 3.5;
1390      dits[1] = 5.6;
1391      dits[2] = 0.55;
1392      dits[3] = 0;
1393      dits[4] = 38;
1394      gMC->Gsvolu("I667", "TUBS", idtmed[263], dits, 5); // was I167 in old geom.
1395
1396      dits[0] = 6.6;
1397      dits[1] = 7.6;
1398      dits[2] = 0.5;
1399      dits[3] = 0;
1400      dits[4] = 9;
1401      gMC->Gsvolu("I666", "TUBS", idtmed[263], dits, 5); // was I166 in old geom.
1402
1403      dits[0] = 0.26;
1404      dits[1] = 0.32;
1405      dits[2] = 0.55;
1406      gMC->Gsvolu("I678", "TUBE", idtmed[263], dits, 3); // was I178 in old geom.
1407
1408      if (fluid == 1) {
1409         dits[0] = 0;
1410         dits[1] = 0.3;
1411         dits[2] = 1.5;
1412         gMC->Gsvolu("I677", "TUBE", idtmed[211], dits, 3); // set water as cooling fluid
1413                                                            // was I177 in old geom.
1414      } else {
1415          dits[0] = 0;
1416         dits[1] = 0.3;
1417         dits[2] = 1.5;
1418         gMC->Gsvolu("I677", "TUBE", idtmed[212], dits, 3); // set freon as cooling fluid
1419                                                            // was I177 in old geom.    
1420      }
1421      
1422      dits[0] = 0.07;
1423      dits[1] = 0.125;
1424      dits[2] = 0.3;
1425      gMC->Gsvolu("I675", "TUBE", idtmed[263], dits, 3); // was I175 in old geom.
1426
1427      if (fluid == 1) {
1428         dits[0] = 0;
1429         dits[1] = 0.1;
1430         dits[2] = 0.8;
1431         gMC->Gsvolu("I674", "TUBE", idtmed[211], dits, 3); // set water as cooling fluid
1432                                                            // was I174 in old geom.
1433      } else {
1434         dits[0] = 0;
1435         dits[1] = 0.1;
1436         dits[2] = 0.8;
1437         gMC->Gsvolu("I674", "TUBE", idtmed[212], dits, 3); // set freon as cooling fluid
1438                                                            // was I174 in old geom.     
1439      }
1440      
1441      if (fluid == 1) {
1442         dits[0] = 0;
1443         dits[1] = 0.1;
1444         dits[2] = 3;
1445         gMC->Gsvolu("I672", "TUBE", idtmed[211], dits, 3); // set water as cooling fluid
1446                                                            // was I172 in old geom.
1447      } else {
1448         dits[0] = 0;
1449         dits[1] = 0.1;
1450         dits[2] = 3;
1451         gMC->Gsvolu("I672", "TUBE", idtmed[212], dits, 3); // set freon as cooling fluid
1452                                                            // was I172 in old geom.        
1453      }
1454      
1455      if (fluid == 1) {     
1456         dits[0] = 0;
1457         dits[1] = 0.0746;
1458         dits[2] = 0.8;
1459         gMC->Gsvolu("I670", "TUBE", idtmed[211], dits, 3); // set water as cooling fluid
1460                                                            // was I170 in old geom.
1461      } else {
1462         dits[0] = 0;
1463         dits[1] = 0.0746;
1464         dits[2] = 0.8;
1465         gMC->Gsvolu("I670", "TUBE", idtmed[212], dits, 3); // set freon as cooling fluid
1466                                                            // was I170 in old geom.     
1467      }
1468      
1469      if (fluid == 1) {     
1470         dits[0] = 3.7;
1471         dits[1] = 5.4;
1472         dits[2] = 0.35;
1473         dits[3] = 2;
1474         dits[4] = 36;
1475         gMC->Gsvolu("I668", "TUBS", idtmed[211], dits, 5); // set water as cooling fluid
1476                                                            // was I168 in old geom.
1477      } else {
1478         dits[0] = 3.7;
1479         dits[1] = 5.4;
1480         dits[2] = 0.35;
1481         dits[3] = 2;
1482         dits[4] = 36;
1483         gMC->Gsvolu("I668", "TUBS", idtmed[212], dits, 5); // set freon as cooling fluid
1484                                                            // was I168 in old geom.
1485      }
1486
1487
1488   }
1489
1490   // --- Define SPD (option 'b') volumes ----------------------------
1491   
1492   // SPD - option 'b' 
1493   // (this is the default)
1494
1495   if (option == 2) {
1496   
1497      dits[0] = 3.7;
1498      dits[1] = 7.75;
1499      dits[2] = 26.1;
1500      gMC->Gsvolu("IT12", "TUBE", idtmed[254], dits, 3);   
1501
1502      dits[0] = 3.7;
1503      dits[1] = 7.7;
1504      dits[2] = 24;
1505      dits[3] = 57;
1506      dits[4] = 100;
1507      gMC->Gsvolu("I12B", "TUBS", idtmed[254], dits, 5);   // sector
1508
1509      di10b[0] = 0.843;
1510      di10b[1] = ddet1+dchip1+dbus+0.0025;  
1511      di10b[2] = 19.344;
1512      gMC->Gsvolu("I10B", "BOX ", idtmed[254], di10b, 3);   // mother volume 
1513                                                                 // on layer 1
1514
1515      di20b[0] = 0.843;
1516      di20b[1] = ddet2+dchip2+dbus+0.0025;   
1517      di20b[2] = 19.344;
1518      gMC->Gsvolu("I20B", "BOX ", idtmed[254], di20b, 3);   // mother volume
1519                                                                 // layer 2
1520
1521      dits[0] = 1.3673;
1522      dits[1] = 0.01;
1523      dits[2] = 24;
1524      gMC->Gsvolu("I123", "BOX ", idtmed[253], dits, 3);
1525
1526      dits[0] = 0.06;
1527      dits[1] = 0.08;
1528      dits[2] = 24;
1529      dits[3] = -36.79;
1530      dits[4] = 21.834;
1531      gMC->Gsvolu("I121", "TUBS", idtmed[253], dits, 5);  
1532
1533      dits[0] = 0.1253;
1534      dits[1] = 0.01;
1535      dits[2] = 24;
1536      gMC->Gsvolu("I122", "BOX ", idtmed[253], dits, 3);  
1537
1538      dits[0] = 0.04;
1539      dits[1] = 0.06 ;
1540      dits[2] = 24;
1541      dits[3] = 126.79;
1542      dits[4] = 270;
1543      gMC->Gsvolu("I120", "TUBS", idtmed[253], dits, 5);  
1544
1545      dits[0] = 0.1134;
1546      dits[1] = 0.01;
1547      dits[2] = 24;
1548      gMC->Gsvolu("I144", "BOX ", idtmed[253], dits, 3);  
1549
1550      dits[0] = 0.25;
1551      dits[1] = 0.06;
1552      dits[2] = 24;
1553      gMC->Gsvolu("I113", "BOX ", idtmed[254], dits, 3);  
1554
1555      dits[0] = 0.077;
1556      dits[1] = 0.01;
1557      dits[2] = 24;
1558      gMC->Gsvolu("I143", "BOX ", idtmed[253], dits, 3);   
1559
1560      dits[0] = 0.04;
1561      dits[1] = 0.06;
1562      dits[2] = 24;
1563      dits[3] = 0;
1564      dits[4] = 90;
1565      gMC->Gsvolu("I142", "TUBS", idtmed[253], dits, 5); 
1566
1567      dits[0] = 0.0695;
1568      dits[1] = 0.01;
1569      dits[2] = 24;
1570      gMC->Gsvolu("I141", "BOX ", idtmed[253], dits, 3);  
1571
1572      dits[0] = 0.06;
1573      dits[1] = 0.08;
1574      dits[2] = 24;
1575      dits[3] = 0;
1576      dits[4] = 108;
1577      gMC->Gsvolu("I140", "TUBS", idtmed[253], dits, 5);  
1578
1579      dits[0] = 0.1835;
1580      dits[1] = 0.01;
1581      dits[2] = 24;
1582      gMC->Gsvolu("I139", "BOX ", idtmed[253], dits, 3);
1583
1584      dits[0] = 0.1894 ;
1585      dits[1] = 0.01;
1586      dits[2] = 24;
1587      gMC->Gsvolu("I138", "BOX ", idtmed[253], dits, 3);  
1588
1589      dits[0] = 0.04;
1590      dits[1] = 0.06;
1591      dits[2] = 24;
1592      dits[3] = 0;
1593      dits[4] = 75.261;
1594      gMC->Gsvolu("I137", "TUBS", idtmed[253], dits, 5);  
1595
1596      dits[0] = 1.3401;
1597      dits[1] = 0.01;
1598      dits[2] = 24;
1599      gMC->Gsvolu("I136", "BOX ", idtmed[253], dits, 3);  
1600
1601      dits[0] = 0.05;
1602      dits[1] = 0.07;
1603      dits[2] = 24;
1604      dits[3] = 0;
1605      dits[4] = 72.739;
1606      gMC->Gsvolu("I135", "TUBS", idtmed[253], dits, 5);  
1607
1608      dits[0] = 0.1193;
1609      dits[1] = 0.01;
1610      dits[2] = 24;
1611      gMC->Gsvolu("I134", "BOX ", idtmed[253], dits, 3);    
1612
1613      dits[0] = 0.163;
1614      dits[1] = 0.01;
1615      dits[2] = 24;
1616      gMC->Gsvolu("I133", "BOX ", idtmed[253], dits, 3);   
1617
1618      dits[0] = 0.04;
1619      dits[1] = 0.06;
1620      dits[2] = 24;
1621      dits[3] = 0;
1622      dits[4] = 157.633;
1623      gMC->Gsvolu("I132", "TUBS", idtmed[253], dits, 5); 
1624
1625      dits[0] = 0.2497;
1626      dits[1] = 0.01;
1627      dits[2] = 24;
1628      gMC->Gsvolu("I131", "BOX ", idtmed[253], dits, 3); 
1629
1630      dits[0] = 0.06;
1631      dits[1] = 0.08;
1632      dits[2] = 24;
1633      dits[3] = 0;
1634      dits[4] = 148.633;
1635      gMC->Gsvolu("I130", "TUBS", idtmed[253], dits, 5); 
1636
1637      dits[0] = 0.292;
1638      dits[1] = 0.01;
1639      dits[2] = 24;
1640      gMC->Gsvolu("I129", "BOX ", idtmed[253], dits, 3);  
1641
1642      dits[0] = 0.163;
1643      dits[1] = 0.01;
1644      dits[2] = 24;
1645      gMC->Gsvolu("I128", "BOX ", idtmed[253], dits, 3);  
1646
1647      dits[0] = 0.04;
1648      dits[1] = 0.06;
1649      dits[2] = 24;
1650      dits[3] = 0;
1651      dits[4] = 161.297;
1652      gMC->Gsvolu("I126", "TUBS", idtmed[253], dits, 5);
1653
1654      dits[0] = 0.2433;
1655      dits[1] = 0.01;
1656      dits[2] = 24;
1657      gMC->Gsvolu("I125", "BOX ", idtmed[253], dits, 3);  
1658
1659      dits[0] = 0.06;
1660      dits[1] = 0.08;
1661      dits[2] = 24;
1662      dits[3] = 0;
1663      dits[4] = 42.883;
1664      gMC->Gsvolu("I124", "TUBS", idtmed[253], dits, 5);  
1665
1666      dits[0] = 0.793;
1667      dits[1] = 0.475;  //0.685; 0.015
1668      dits[2] = 2.5;
1669      gMC->Gsvolu("I105", "BOX ", idtmed[290], dits, 3);  
1670
1671      di107[0] = 0.793;
1672      di107[1] = ddet1+dchip1;
1673      di107[2] = 3.536;
1674      gMC->Gsvolu("I107", "BOX ", idtmed[254], di107, 3); // contains det and chip   
1675                                                          // layer 1
1676      dits[0] = 0.705;
1677      dits[1] = 0.01;
1678      dits[2] = 2.5;
1679      gMC->Gsvolu("I109", "BOX ", idtmed[275], dits, 3);  
1680
1681      di108[0] = 0.705;
1682      di108[1] = dbus;
1683      di108[2] = 14.344;
1684      gMC->Gsvolu("I108", "BOX ", idtmed[275], di108, 3); // bus for both layers 
1685
1686      di1d7[0] = 0.7975;
1687      di1d7[1] = ddet2+dchip2;   
1688      di1d7[2] = 3.536;
1689      gMC->Gsvolu("I1D7", "BOX ", idtmed[254], di1d7, 3); // contains det and chip
1690                                                          // layer 2
1691      dits[0] = 0.06;
1692      dits[1] = 0.08;
1693      dits[2] = 24;
1694      dits[3] = 0;
1695      dits[4] = 80;
1696      gMC->Gsvolu("I112", "TUBS", idtmed[253], dits, 5);  
1697
1698      dits[0] = 0.04;
1699      dits[1] = 0.06;
1700      dits[2] = 24;
1701      dits[3] = 0;
1702      dits[4] = 80;
1703      gMC->Gsvolu("I111", "TUBS", idtmed[253], dits, 5);  
1704
1705      dits[0] = 0.15;
1706      dits[1] = 0.0146;
1707      dits[2] = 24;
1708      gMC->Gsvolu("I118", "BOX ", idtmed[273], dits, 3);  
1709
1710      dits[0] = 0.1315;
1711      dits[1] = 0.01;
1712      dits[2] = 24;
1713      gMC->Gsvolu("I110", "BOX ", idtmed[253], dits, 3);  
1714
1715      dits[0] = 0.025;
1716      dits[1] = 0.035;
1717      dits[2] = 24;
1718      dits[3] = 0;
1719      dits[4] = 180;
1720      gMC->Gsvolu("I114", "TUBS", idtmed[264], dits, 5);  
1721
1722      if (fluid == 1) {
1723         dits[0] = 0;
1724         dits[1] = 0.025;
1725         dits[2] = 24;
1726         dits[3] = 0;
1727         dits[4] = 180;
1728         gMC->Gsvolu("I115", "TUBS", idtmed[211], dits, 5);  // set water as cooling fluid   
1729      } else {
1730         dits[0] = 0;
1731         dits[1] = 0.025;
1732         dits[2] = 24;
1733         dits[3] = 0;
1734         dits[4] = 180;
1735         gMC->Gsvolu("I115", "TUBS", idtmed[212], dits, 5);  // set freon as cooling fluid
1736      }
1737      
1738      dits[0] = 0.063;
1739      dits[1] = 0.035;
1740      dits[2] = 24;
1741      gMC->Gsvolu("I116", "BOX ", idtmed[264], dits, 3); 
1742
1743      di106[0] = 0.7975;
1744      di106[1] = dchip1;   
1745      di106[2] = 0.68;
1746      gMC->Gsvolu("I106", "BOX ", idtmed[201], di106, 3);   // chip layer 1
1747
1748      di1d6[0] = 0.7975;
1749      di1d6[1] = dchip2;   
1750      di1d6[2] = 0.68;
1751      gMC->Gsvolu("I1D6", "BOX ", idtmed[201], di1d6, 3);   // chip layer 2
1752
1753      di101[0] = 0.705;
1754      di101[1] = ddet1;
1755      di101[2] = 3.536;
1756      gMC->Gsvolu("I101", "BOX ", idtmed[250], di101, 3);  // contains detector  
1757                                                           // layer 1
1758      di1d1[0] = 0.705;
1759      di1d1[1] = ddet2;   
1760      di1d1[2] = 3.536;
1761      gMC->Gsvolu("I1D1", "BOX ", idtmed[250], di1d1, 3);  // contains detector  
1762                                                           // layer 2
1763    
1764      if (fluid == 1) {
1765         dits[0] = 0.063;
1766         dits[1] = 0.025;
1767         dits[2] = 24;
1768         gMC->Gsvolu("I117", "BOX ", idtmed[211], dits, 3); // set water as cooling fluid
1769      } else {
1770         dits[0] = 0.063;
1771         dits[1] = 0.025;
1772         dits[2] = 24;
1773         gMC->Gsvolu("I117", "BOX ", idtmed[212], dits, 3); // set freon as cooling fluid
1774      }
1775
1776      dits1[0] = 0.64;
1777      dits1[1] = ddet1;
1778      dits1[2] = 3.48;
1779      gMC->Gsvolu("ITS1", "BOX ", idtmed[200], dits1, 3);   // detector layer 1
1780
1781      dits2[0] = 0.64;
1782      dits2[1] = ddet2;  
1783      dits2[2] = 3.48;
1784      gMC->Gsvolu("ITS2", "BOX ", idtmed[200], dits2, 3);   // detector layer 2
1785
1786      dits[0] = 3.701;
1787      dits[1] = 7.699;
1788      dits[2] = 4;
1789      dits[3] = 57.1;
1790      dits[4] = 99.9;  
1791      gMC->Gsvolu("I650", "TUBS", idtmed[254], dits, 5);  // was I150 in old geom.
1792
1793      dits[0] = 0;
1794      dits[1] = 0.5;
1795      dits[2] = 1.5;
1796      gMC->Gsvolu("I676", "TUBE", idtmed[274], dits, 3); // was I176 in old geom.
1797
1798      dits[0] = 0;
1799      dits[1] = 0.18;
1800      dits[2] = 0.8;
1801      gMC->Gsvolu("I673", "TUBE", idtmed[274], dits, 3); // was I173 in old geom.
1802
1803      dits[0] = 0;
1804      dits[1] = 0.18;
1805      dits[2] = 3;
1806      gMC->Gsvolu("I671", "TUBE", idtmed[274], dits, 3); // was I171 in old geom.
1807
1808      dits[0] = 0;
1809      dits[1] = 0.075;
1810      dits[2] = 0.8;
1811      gMC->Gsvolu("I669", "TUBE", idtmed[264], dits, 3); // was I169 in old geom.
1812
1813      dits[0] = 3.5;
1814      dits[1] = 5.6;
1815      dits[2] = 0.55;
1816      dits[3] = 0;
1817      dits[4] = 38;
1818      gMC->Gsvolu("I667", "TUBS", idtmed[263], dits, 5); // was I167 in old geom.
1819
1820      dits[0] = 6.6;
1821      dits[1] = 7.6;
1822      dits[2] = 0.5;
1823      dits[3] = 0;
1824      dits[4] = 9;
1825      gMC->Gsvolu("I666", "TUBS", idtmed[263], dits, 5); // was I166 in old geom.
1826
1827      dits[0] = 0.26;
1828      dits[1] = 0.32;
1829      dits[2] = 0.55;
1830      gMC->Gsvolu("I678", "TUBE", idtmed[263], dits, 3); // was I178 in old geom.
1831
1832      if (fluid == 1) {
1833         dits[0] = 0;
1834         dits[1] = 0.3;
1835         dits[2] = 1.5;
1836         gMC->Gsvolu("I677", "TUBE", idtmed[211], dits, 3); //set water as cooling fluid
1837                                                            // was I177 in old geom.
1838      } else {
1839         dits[0] = 0;
1840         dits[1] = 0.3;
1841         dits[2] = 1.5;
1842         gMC->Gsvolu("I677", "TUBE", idtmed[212], dits, 3); //set freon as cooling fluid
1843                                                            // was I177 in old geom.     
1844      }
1845
1846      dits[0] = 0.07;
1847      dits[1] = 0.125;
1848      dits[2] = 0.3;
1849      gMC->Gsvolu("I675", "TUBE", idtmed[263], dits, 3); // was I175 in old geom.
1850
1851      if (fluid == 1) {
1852         dits[0] = 0;
1853         dits[1] = 0.1;
1854         dits[2] = 0.8;
1855         gMC->Gsvolu("I674", "TUBE", idtmed[211], dits, 3); //set water as cooling fluid
1856                                                            // was I174 in old geom.
1857      } else {
1858         dits[0] = 0;
1859         dits[1] = 0.1;
1860         dits[2] = 0.8;
1861         gMC->Gsvolu("I674", "TUBE", idtmed[212], dits, 3); //set freon as cooling fluid
1862                                                            // was I174 in old geom.     
1863      }
1864      
1865      if (fluid == 1) {
1866         dits[0] = 0;
1867         dits[1] = 0.1;
1868         dits[2] = 3;
1869         gMC->Gsvolu("I672", "TUBE", idtmed[211], dits, 3); //set water as cooling fluid
1870                                                            // was I172 in old geom.
1871      } else {
1872         dits[0] = 0;
1873         dits[1] = 0.1;
1874         dits[2] = 3;
1875         gMC->Gsvolu("I672", "TUBE", idtmed[212], dits, 3); //set freon as cooling fluid
1876                                                            // was I172 in old geom.     
1877      }
1878      
1879      if (fluid == 1) {
1880         dits[0] = 0;
1881         dits[1] = 0.0746;
1882         dits[2] = 0.8;
1883         gMC->Gsvolu("I670", "TUBE", idtmed[211], dits, 3); //set water as cooling fluid
1884                                                            // was I170 in old geom.
1885      } else {
1886         dits[0] = 0;
1887         dits[1] = 0.0746;
1888         dits[2] = 0.8;
1889         gMC->Gsvolu("I670", "TUBE", idtmed[212], dits, 3); //set freon as cooling fluid
1890                                                            // was I170 in old geom.     
1891      }
1892      
1893      if (fluid == 1) {
1894         dits[0] = 3.7;
1895         dits[1] = 5.4;
1896         dits[2] = 0.35;
1897         dits[3] = 2;
1898         dits[4] = 36;
1899         gMC->Gsvolu("I668", "TUBS", idtmed[211], dits, 5); //set water as cooling fluid
1900                                                            // was I168 in old geom.
1901      } else {
1902         dits[0] = 3.7;
1903         dits[1] = 5.4;
1904         dits[2] = 0.35;
1905         dits[3] = 2;
1906         dits[4] = 36;
1907         gMC->Gsvolu("I668", "TUBS", idtmed[212], dits, 5); //set freon as cooling fluid
1908                                                            // was I168 in old geom.     
1909      }
1910      
1911
1912   }
1913
1914   // --- Define SDD volumes ------------------------------------------
1915
1916   
1917   cos30 = cos(30.*3.14159/180.);
1918   sin30 = sin(30.*3.14159/180.);
1919
1920   
1921   dits[0] = 0;
1922   dits[1] = 360;
1923   dits[2] = 6;
1924   dits[3] = -34.6; 
1925   dits[4] = 23.49;
1926   dits[5] = 28;
1927   dits[6] = -23.65; 
1928   dits[7] = 23.49;
1929   dits[8] = 28;
1930   dits[9] = -23.65;  
1931   dits[10] = 14.59; 
1932   dits[11] = 28;
1933   dits[12] = 23.65;   
1934   dits[13] = 14.59;
1935   dits[14] = 28;
1936   dits[15] = 23.65;    
1937   dits[16] = 23.49;
1938   dits[17] = 28;
1939   dits[18] = 34.6;  
1940   dits[19] = 23.49;
1941   dits[20] = 28;
1942   gMC->Gsvolu("IT34", "PCON", idtmed[209], dits, 21);  
1943
1944   // block of the SDD electronics and related ladder frame 
1945   I018dits[0] = 3.2;
1946   I018dits[1] = 2;
1947   I018dits[2] = 3.65;
1948   gMC->Gsvolu("I018", "BOX ", idtmed[209], I018dits, 3);  
1949
1950   // block of the SDD end ladder 
1951   I024dits[0] = 3.2;
1952   I024dits[1] = 2;
1953   I024dits[2] = 2.725;
1954   gMC->Gsvolu("I024", "BOX ", idtmed[209], I024dits, 3);  
1955
1956   // ladder frame of layer 3 - F.T. March,7-2001
1957   I047dits[0] = I018dits[0];
1958   I047dits[1] = I018dits[1];
1959   I047dits[2] = 6*I018dits[2] + 2*I024dits[2]; 
1960   gMC->Gsvolu("I047", "BOX ", idtmed[209], I047dits, 3);  
1961
1962   // ladder frame of layer 4 - F.T. March,7-2001
1963   I048dits[0] = I018dits[0];
1964   I048dits[1] = I018dits[1];
1965   I048dits[2] = 8*I018dits[2] + 2*I024dits[2]; 
1966   gMC->Gsvolu("I048", "BOX ", idtmed[209], I048dits, 3);  
1967
1968
1969   // global SDD volume (sensitive + insensitive) 
1970   I302dits[0] = 3.6250;
1971   I302dits[1] = 0.0150;
1972   I302dits[2] = 4.3794;
1973   gMC->Gsvolu("I302", "BOX ", idtmed[278], I302dits, 3);
1974
1975   // Like for I302 - F.T. March,7-2001
1976   I402dits[0] = 3.6250;
1977   I402dits[1] = 0.0150;
1978   I402dits[2] = 4.3794;
1979   gMC->Gsvolu("I402", "BOX ", idtmed[278], I402dits, 3);  
1980
1981   // SDD ladder of layer 3 - F.T. March,7-2001
1982   I004dits[0] = I302dits[0]+0.005;
1983   I004dits[1] = 2*I302dits[1]+Y_SDD_sep/2.;
1984   I004dits[2] = TMath::Abs(Z_SDD_lay3[0]);
1985   if (I004dits[2] < TMath::Abs(Z_SDD_lay3[5])) {
1986     I004dits[2] = TMath::Abs(Z_SDD_lay3[5]);
1987   }
1988   I004dits[2] = I004dits[2] + I302dits[2];
1989   gMC->Gsvolu("I004", "BOX ", idtmed[209], I004dits, 3);  
1990
1991   // SDD ladder of layer 4 - F.T. March,7-2001
1992   I005dits[0] = I402dits[0]+0.005;
1993   I005dits[1] = 2*I402dits[1]+Y_SDD_sep/2.;
1994   I005dits[2] = TMath::Abs(Z_SDD_lay4[0]);
1995   if (I005dits[2] < TMath::Abs(Z_SDD_lay4[7])) {
1996     I005dits[2] = TMath::Abs(Z_SDD_lay4[7]);
1997   }
1998   I005dits[2] = I005dits[2] + I402dits[2];
1999   gMC->Gsvolu("I005", "BOX ", idtmed[209], I005dits, 3);  
2000
2001
2002   // -- block of the SDD ladder foot and end ladder
2003
2004   // ladder foot mother volume
2005   I028dits[0] = 3.0000;
2006   I028dits[1] = 0.4000;
2007   I028dits[2] = 0.9000;
2008   gMC->Gsvolu("I028", "BOX ", idtmed[224], I028dits, 3);  
2009
2010   // positioning-box #1 at SDD end-ladder - F.T. March,7-2001
2011   I420dits[0] = 0.4500;
2012   I420dits[1] = 0.4000;
2013   I420dits[2] = 0.4500;
2014   gMC->Gsvolu("I420", "BOX ", idtmed[264], I420dits, 3);  
2015
2016   // positioning-box #2 at SDD end-ladder - F.T. March,7-2001
2017   I421dits[0] = 0.;
2018   I421dits[1] = 0.25;
2019   I421dits[2] = I420dits[1];
2020   gMC->Gsvolu("I421", "TUBE", idtmed[209], I421dits, 3);  
2021
2022   // reference ruby-sphere at SDD end-ladder - F.T. March,7-2001 
2023   I422dits[0] = 0.0000;
2024   I422dits[1] = 0.2000;
2025   I422dits[2] = 0.0000;
2026   I422dits[3] = 180.00;
2027   I422dits[4] = 0.0000;
2028   I422dits[5] = 360.00;
2029   gMC->Gsvolu("I422", "SPHE", idtmed[277], I422dits, 6);  
2030
2031   // support for ruby-sphere (I422) - F.T. March,7-2001
2032   I423dits[0] = 0.0000;
2033   I423dits[1] = 0.1000;
2034   I423dits[2] = (I420dits[1]-I422dits[1])/2.;
2035   gMC->Gsvolu("I423", "TUBE", idtmed[264], I423dits, 3);  
2036
2037   // passage for HV microcables - F.T. March,7-2001
2038   I424dits[0] = 1.5000;
2039   I424dits[1] = 0.1500;
2040   I424dits[2] = I421dits[2];
2041   gMC->Gsvolu("I424", "BOX ", idtmed[209], I424dits, 3);  
2042
2043   // HV microcables segment at the end ladder - F.T. March,7-2001
2044   I425dits[0] = 1.350000;
2045   I425dits[1] = 0.015250;
2046   I425dits[2] = I024dits[2];
2047   gMC->Gsvolu("I425", "BOX ", idtmed[279], I425dits, 3);  
2048
2049   // lower edge of SDD ladder frame at end-ladder - part 1
2050   dits[0] = 0.2;
2051   dits[1] = 0.1815;
2052   dits[2] = I024dits[2];
2053   dits[3] = 0.015;
2054   gMC->Gsvolu("I025", "TRD1", idtmed[208], dits, 4);  
2055
2056   // lower edge of SDD ladder frame at end-ladder - part 2
2057   dits[0] = 0.183;
2058   dits[1] = 0.165;
2059   dits[2] = I024dits[2];
2060   dits[3] = 0.015;
2061   gMC->Gsvolu("I026", "TRD1", idtmed[208], dits, 4);  
2062
2063   // new: for the 1st top rod of the structure 
2064   // at the end-ladder - F.T. March,7-2001
2065   I029dits[0] = 0.2;
2066   I029dits[1] = 0.1815;
2067   I029dits[2] = 1.0100;
2068   I029dits[3] = 0.015;
2069   gMC->Gsvolu("I029", "TRD1", idtmed[208], I029dits, 4);  
2070
2071   // new: for the 2nd top rod of the structure 
2072   // at the end-ladder - F.T. March,7-2001
2073   I030dits[0] = 0.1830;
2074   I030dits[1] = 0.1650;
2075   I030dits[2] = 1.0100;
2076   I030dits[3] = 0.0150;
2077   gMC->Gsvolu("I030", "TRD1", idtmed[208], I030dits, 4);  
2078
2079   // inox cooling tubes for the end ladder - F.T. March,7-2001
2080   I031dits[0] = 0.093;
2081   I031dits[1] = 0.1;
2082   I031dits[2] = I024dits[2];
2083   gMC->Gsvolu("I031", "TUBE", idtmed[264], I031dits, 3);  
2084
2085   if (fluid == 1) {
2086      // cooling water for the end ladder - F.T. March,7-2001
2087      I032dits[0] = 0;
2088      I032dits[1] = I031dits[0];
2089      I032dits[2] = I024dits[2];
2090      gMC->Gsvolu("I032", "TUBE", idtmed[211], I032dits, 3);  
2091   } else {
2092      // cooling freon for the end ladder - R.B. March,21-2001
2093      I032dits[0] = 0;
2094      I032dits[1] = I031dits[0];
2095      I032dits[2] = I024dits[2];
2096      gMC->Gsvolu("I032", "TUBE", idtmed[212], I032dits, 3);    
2097   }
2098   
2099   // -- block of the SDD ladder frame holding the electronics
2100
2101   // edge of the ladder frame - part 1
2102   dits[0] = 0.2;
2103   dits[1] = 0.182;
2104   dits[2] = 3.65;
2105   dits[3] = 0.015;
2106   gMC->Gsvolu("I019", "TRD1", idtmed[208], dits, 4);  
2107
2108   // edge of the ladder frame - part 2
2109   dits[0] = 0.183;
2110   dits[1] = 0.165;
2111   dits[2] = 3.65;
2112   dits[3] = 0.015;
2113   gMC->Gsvolu("I020", "TRD1", idtmed[208], dits, 4);  
2114
2115   // inclined segments of the ladder frame
2116   dits[0] = 2.23;
2117   dits[1] = 2.1;
2118   dits[2] = 0.05;
2119   dits[3] = 0.03;
2120   gMC->Gsvolu("I021", "TRD1", idtmed[208], dits, 4);  
2121
2122   // horiz.segments of the ladders, normal to ladder edges
2123   dits[0] = 2.1;
2124   dits[1] = 2;
2125   dits[2] = 0.06;
2126   dits[3] = 0.04;
2127   gMC->Gsvolu("I022", "TRD1", idtmed[208], dits, 4);  
2128
2129   // horiz.segments of the ladders, at 45 deg. to ladder edges
2130   dits[0] = 2.615;
2131   dits[1] = 2.465;
2132   dits[2] = 0.06;
2133   dits[3] = 0.04;
2134   gMC->Gsvolu("I023", "TRD1", idtmed[208], dits, 4);  
2135
2136   // supports of the ceramic pins holding the detectors
2137   dits[0] = 0.3;
2138   dits[1] = 0.05;
2139   dits[2] = 0.15;
2140   gMC->Gsvolu("I033", "BOX ", idtmed[208], dits, 3);  
2141
2142   // ceramic pins holding the detectors
2143   dits[0] = 0;
2144   dits[1] = 0.05;
2145   dits[2] = 0.225;
2146   gMC->Gsvolu("I034", "TUBE", idtmed[277], dits, 3);  
2147
2148   // holders of cooling tubes
2149   I035dits[0] = 0.1;
2150   I035dits[1] = 0.15;
2151   I035dits[2] = 0.2;
2152   gMC->Gsvolu("I035", "TUBE", idtmed[208], I035dits, 3);
2153
2154   // top holders of microcables
2155   dits[0] = 0.2;
2156   dits[1] = 0.01;
2157   dits[2] = 0.05;
2158   gMC->Gsvolu("I036", "BOX ", idtmed[208], dits, 3);  
2159
2160   // inox cooling tubes - F.T. March,7-2001
2161   I037dits[0] = 0.093;
2162   I037dits[1] = 0.1;
2163   I037dits[2] = I018dits[2];
2164   gMC->Gsvolu("I037", "TUBE", idtmed[264], I037dits, 3);
2165
2166   if (fluid == 1) {
2167      // cooling water - F.T. March,7-2001
2168      I038dits[0] = 0;
2169      I038dits[1] = I037dits[0];
2170      I038dits[2] = I018dits[2];
2171      gMC->Gsvolu("I038", "TUBE", idtmed[211], I038dits, 3);  
2172   } else {
2173      // cooling freon - R.B. March,21-2001
2174      I038dits[0] = 0;
2175      I038dits[1] = I037dits[0];
2176      I038dits[2] = I018dits[2];
2177      gMC->Gsvolu("I038", "TUBE", idtmed[212], I038dits, 3);    
2178   }
2179   // -- block of the SDD electronics (heat bridge, chips, hybrid, anode microcable)
2180
2181   // SDD heat bridge - F.T. March,7-2001
2182   I039dits[0] = 1.1000;
2183   I039dits[1] = 0.0087;
2184   I039dits[2] = 3.2500;
2185   gMC->Gsvolu("I039", "BOX ", idtmed[268], I039dits, 3);  
2186
2187   // SDD clip part 1
2188   dits[0] = 0.25;
2189   dits[1] = 0.01;
2190   dits[2] = I039dits[2];
2191   gMC->Gsvolu("I040", "BOX ", idtmed[268], dits, 3);  
2192
2193   // SDD clip part 2
2194   I041dits[0] = 0.1;
2195   I041dits[1] = 0.12;
2196   I041dits[2] = I039dits[2];
2197   I041dits[3] = 90;
2198   I041dits[4] = 320;
2199   gMC->Gsvolu("I041", "TUBS", idtmed[268], I041dits, 5);  
2200
2201
2202   // SDD PASCAL - F.T. March,7-2001
2203   I042dits[0] = 0.5000;
2204   I042dits[1] = 0.0175;
2205   I042dits[2] = 0.5000;
2206   gMC->Gsvolu("I042", "BOX ", idtmed[206], I042dits, 3);  
2207
2208   // SDD AMBRA - F.T. March,7-2001
2209   I043dits[0] = 0.3500;
2210   I043dits[1] = 0.0175;
2211   I043dits[2] = 0.5000;
2212   gMC->Gsvolu("I043", "BOX ", idtmed[206], I043dits, 3);  
2213
2214   // SDD capacitors - F.T. March,7-2001
2215   I051dits[0] = 0.1400;
2216   I051dits[1] = 0.0350;
2217   I051dits[2] = 0.0625;
2218   gMC->Gsvolu("I051", "BOX ", idtmed[276], I051dits, 3);  
2219
2220   // SDD hybrid circuit - F.T. March,7-2001
2221   I052dits[0] = 1.725000;
2222   I052dits[1] = 0.003743;
2223   I052dits[2] = I039dits[2];
2224   gMC->Gsvolu("I052", "BOX ", idtmed[281], I052dits, 3);
2225
2226   // SDD anode microcable : changed - F.T. March,7-2001
2227   I044dits[0] = I018dits[2];
2228   I044dits[1] = I039dits[2];
2229   I044dits[2] = 0.00084;
2230   I044dits[3] = (15.189149/(I044dits[0]+I044dits[1]))/2;
2231   gMC->Gsvolu("I044", "TRD1", idtmed[282], I044dits, 4);  
2232   volI044 = ((2*I044dits[0] + 2*I044dits[1]) * 2*I044dits[2])/2 * 2*I044dits[3];
2233
2234   // SDD electronics box - F.T. March,7-2001
2235   I050dits[1] = I039dits[1]+I052dits[1]+I051dits[1]+I044dits[2];
2236   I050dits[0] = I018dits[1]/cos(30.*3.14159/180.)-I050dits[1]*sin(30.*3.14159/180.);
2237   I050dits[2] = I018dits[2];
2238   gMC->Gsvolu("I050", "BOX ", idtmed[209], I050dits, 3);
2239
2240   // SDD sensitive volume
2241   dits[0] = 3.50850;
2242   dits[1] = 0.01499; // not 0.015 because it is included into I302 which is 0.015
2243   dits[2] = 3.76320;
2244   gMC->Gsvolu("ITS3", "BOX ", idtmed[200], dits, 3);  
2245
2246   // Like for ITS3 - F.T. March,7-2001
2247   dits[0] = 3.50850;
2248   dits[1] = 0.01499; // not 0.015 because it is included into I402 which is 0.015
2249   dits[2] = 3.76320;
2250   gMC->Gsvolu("ITS4", "BOX ", idtmed[200], dits, 3);  
2251
2252
2253   // --- Define SSD volumes ------------------------------------------
2254
2255     
2256   dits[0] = 0;
2257   dits[1] = 360;
2258   dits[2] = 6;
2259   dits[3] = -57.45;
2260   dits[4] = 43.6;
2261   dits[5] = 48;  
2262   dits[6] = -49.15; 
2263   dits[7] = 43.6;
2264   dits[8] = 48;  
2265   dits[9] = -49.15;  
2266   dits[10] = 36.9;
2267   dits[11] = 48;  
2268   dits[12] = 50.55;  
2269   dits[13] = 36.9;
2270   dits[14] = 48;  
2271   dits[15] = 50.55;  
2272   dits[16] = 43.6;
2273   dits[17] = 48;  
2274   dits[18] = 57.45;
2275   dits[19] = 43.6;
2276   dits[20] = 48;   
2277   gMC->Gsvolu("IT56", "PCON", idtmed[220], dits, 21);   
2278   
2279   dits[0] =  3.4;
2280   dits[1] = 1.955;
2281   dits[2] = 56.5; 
2282   gMC->Gsvolu("I570", "BOX ", idtmed[204], dits, 3);  
2283   
2284   dits[0] = 3.75;
2285   dits[1] = 0.045;
2286   dits[2] = 50.975;
2287   gMC->Gsvolu("I569", "BOX ", idtmed[204], dits, 3);  
2288   
2289   dits[0] = 3.4;
2290   dits[1] = 1.955;
2291   dits[2] = 47; 
2292   gMC->Gsvolu("I571", "BOX ", idtmed[204], dits, 3);  
2293   
2294   dits[0] = 3.75;
2295   dits[1] = 0.045;
2296   dits[2] = 43.3;  
2297   gMC->Gsvolu("I565", "BOX ", idtmed[204], dits, 3);  
2298   
2299   dits[0] = 3.4;
2300   dits[1] = 1.955;
2301   dits[2] = 3.15;
2302   gMC->Gsvolu("I553", "BOX ", idtmed[204], dits, 3);  
2303   
2304   dits[0] = 3.405;
2305   dits[1] = 1.955;
2306   dits[2] = 1.955;
2307   gMC->Gsvolu("I523", "BOX ", idtmed[204], dits, 3);  
2308   
2309   dits[0] = 3.75;
2310   dits[1] = 0.015;
2311   dits[2] = 2.1;
2312   gMC->Gsvolu("I566", "BOX ", idtmed[206], dits, 3); 
2313   
2314   dits[0] = 3.4;
2315   dits[1] = 1.955;
2316   dits[2] = 3.15;
2317   gMC->Gsvolu("I544", "BOX ", idtmed[204], dits, 3);  
2318   
2319   dits[0] = 3.41;
2320   dits[1] = 1.955;
2321   dits[2] = 1.955;
2322   gMC->Gsvolu("I516", "BOX ", idtmed[204], dits, 3);  
2323   
2324   dits[0] = 3.75;
2325   dits[1] = 0.015;
2326   dits[2] = 2.1;
2327   gMC->Gsvolu("I562", "BOX ", idtmed[206], dits, 3);   
2328   
2329   if (fluid == 1) {
2330      dits[0] = 0;
2331      dits[1] = 0.07;
2332      dits[2] = 3.15;
2333      gMC->Gsvolu("I559", "TUBE", idtmed[211], dits, 3);  // set water as cooling fluid
2334   } else {
2335      dits[0] = 0;
2336      dits[1] = 0.07;
2337      dits[2] = 3.15;
2338      gMC->Gsvolu("I559", "TUBE", idtmed[212], dits, 3);  // set freon as cooling fluid
2339   }
2340   
2341   dits[0] = 0.07;
2342   dits[1] = 0.1;
2343   dits[2] = 3.15;
2344   gMC->Gsvolu("I560", "TUBE", idtmed[210], dits, 3);  
2345   
2346   dits[0] = 0.225;
2347   dits[1] = 0.195;
2348   dits[2] = 3.15;
2349   dits[3] = 0.025;
2350   gMC->Gsvolu("I558", "TRD1", idtmed[203], dits, 4);  
2351   
2352   dits[0] = 0.25;
2353   dits[1] = 0.22;
2354   dits[2] = 3.15;
2355   dits[3] = 0.025;
2356   gMC->Gsvolu("I557", "TRD1", idtmed[203], dits, 4);  
2357   
2358   dits[0] = 2.17;
2359   dits[1] = 0.035;
2360   dits[2] = 0.05;
2361   gMC->Gsvolu("I556", "BOX ", idtmed[203], dits, 3);  
2362   
2363   dits[0] = 2 ;
2364   dits[1] = 0.035;
2365   dits[2] = 0.05;
2366   gMC->Gsvolu("I554", "BOX ", idtmed[203], dits, 3);  
2367   
2368   dits[0] = 2.675;
2369   dits[1] = 0.035;
2370   dits[2] = 0.05;
2371   gMC->Gsvolu("I555", "BOX ", idtmed[203], dits, 3); 
2372   
2373   dits[0] = 0.3;
2374   dits[1] = 0.15;
2375   dits[2] = 0.15;
2376   gMC->Gsvolu("I561", "BOX ", idtmed[203], dits, 3);  
2377   
2378   dits[0] = 0.025;
2379   dits[1] = 0.025;
2380   dits[2] = 0.05;
2381   gMC->Gsvolu("I519", "BOX ", idtmed[214], dits, 3);  
2382   
2383   dits[0] = 0.304;
2384   dits[1] = 0.0275;
2385   dits[2] = 0.432;
2386   gMC->Gsvolu("I521", "BOX ", idtmed[206], dits, 3);   
2387   
2388   dits[0] = 0.16;
2389   dits[1] = 0.08;
2390   dits[2] = 0.08;
2391   gMC->Gsvolu("I520", "BOX ", idtmed[214], dits, 3);  
2392   
2393   dits[0] = 3.4;
2394   dits[1] = 0.015;
2395   dits[2] = 0.525;
2396   gMC->Gsvolu("I518", "BOX ", idtmed[203], dits, 3);  
2397   
2398   dits[0] = 0.15;
2399   dits[1] = 0.105;
2400   dits[2] = 0.29;
2401   dits[3] = 0.08;
2402   gMC->Gsvolu("I522", "TRD1", idtmed[203], dits, 4);  
2403   
2404   dits[0] = 0.07;
2405   dits[1] = 0.1;
2406   dits[2] = 1.955;
2407   gMC->Gsvolu("I542", "TUBE", idtmed[210], dits, 3);  
2408   
2409   if (fluid == 1) {
2410      dits[0] = 0;
2411      dits[1] = 0.07;
2412      dits[2] = 1.955;
2413      gMC->Gsvolu("I541", "TUBE", idtmed[211], dits, 3);  // set water as cooling fluid 
2414   } else {
2415      dits[0] = 0;
2416      dits[1] = 0.07;
2417      dits[2] = 1.955;
2418      gMC->Gsvolu("I541", "TUBE", idtmed[212], dits, 3);  // set freon as cooling fluid
2419   }
2420   
2421   dits[0] = 0.3;
2422   dits[1] = 0.15;
2423   dits[2] = 0.15;
2424   gMC->Gsvolu("I543", "BOX ", idtmed[203], dits, 3);  
2425   
2426   dits[0] = 0.25;
2427   dits[1] = 0.22;
2428   dits[2] = 1.955;
2429   dits[3] = 0.025;
2430   gMC->Gsvolu("I537", "TRD1", idtmed[203], dits, 4); 
2431   
2432   dits[0] = 0.225;
2433   dits[1] = 0.195;
2434   dits[2] = 1.955;
2435   dits[4] = 0.025;
2436   gMC->Gsvolu("I538", "TRD1", idtmed[203], dits, 4);  
2437   
2438   dits[0] = 2.17;
2439   dits[1] = 0.035;
2440   dits[2] = 0.05;
2441   gMC->Gsvolu("I536", "BOX ", idtmed[203], dits, 3);  
2442   
2443   dits[0] = 2.675;
2444   dits[1] = 0.035;
2445   dits[2] = 0.05;
2446   gMC->Gsvolu("I535", "BOX ", idtmed[203], dits, 3);   
2447   
2448   dits[0] = 2;
2449   dits[1] = 0.035;
2450   dits[2] = 0.05;
2451   gMC->Gsvolu("I534", "BOX ", idtmed[203], dits, 3);  
2452   
2453   dits[0] = 0;
2454   dits[1] = 0.05;
2455   dits[2] = 0.17;
2456   gMC->Gsvolu("I540", "TUBE", idtmed[203], dits, 3);  
2457   
2458   dits[0] = 0;
2459   dits[1] = 0.05;
2460   dits[2] = 0.205;
2461   gMC->Gsvolu("I539", "TUBE", idtmed[203], dits, 3);  
2462   
2463   dits[0] = 3.65;
2464   dits[1] = 0.015;
2465   dits[2] = 2;
2466   gMC->Gsvolu("ITS6", "BOX ", idtmed[200], dits, 3);  
2467   
2468   if (fluid == 1) {
2469      dits[0] = 0;
2470      dits[1] = 0.07;
2471      dits[2] = 3.15;
2472      gMC->Gsvolu("I550", "TUBE", idtmed[211], dits, 3);  // set water as cooling fluid
2473   } else {
2474      dits[0] = 0;
2475      dits[1] = 0.07;
2476      dits[2] = 3.15;
2477      gMC->Gsvolu("I550", "TUBE", idtmed[212], dits, 3);  // set freon as cooling fluid
2478   }
2479   
2480   dits[0] = 0.07;
2481   dits[1] = 0.1;
2482   dits[2] = 3.15;
2483   gMC->Gsvolu("I551", "TUBE", idtmed[210], dits, 3);  
2484   
2485   dits[0] = 0.225;
2486   dits[1] = 0.195;
2487   dits[2] = 3.15;
2488   dits[3] = 0.025;
2489   gMC->Gsvolu("I549", "TRD1", idtmed[203], dits, 4); 
2490   
2491   dits[0] = 0.25;
2492   dits[1] = 0.22;
2493   dits[2] = 3.15;
2494   dits[3] = 0.025;
2495   gMC->Gsvolu("I548", "TRD1", idtmed[203], dits, 4);  
2496   
2497   dits[0] = 2.17;
2498   dits[1] = 0.035;
2499   dits[2] = 0.05;
2500   gMC->Gsvolu("I547", "BOX ", idtmed[203], dits, 3);  
2501   
2502   dits[0] = 2;
2503   dits[1] = 0.035;
2504   dits[2] = 0.05;
2505   gMC->Gsvolu("I545", "BOX ", idtmed[203], dits, 3);   
2506   
2507   dits[0] = 2.675;
2508   dits[1] = 0.035;
2509   dits[2] = 0.05;
2510   gMC->Gsvolu("I546", "BOX ", idtmed[203], dits, 3);  
2511   
2512   dits[0] = 0.3;
2513   dits[1] = 0.15;
2514   dits[2] = 0.15;
2515   gMC->Gsvolu("I552", "BOX ", idtmed[203], dits, 3);  
2516   
2517   dits[0] = 0.304;
2518   dits[1] = 0.0275;
2519   dits[2] = 0.4322;
2520   gMC->Gsvolu("I515", "BOX ", idtmed[206], dits, 3);  
2521   
2522   dits[0] = 0.025;
2523   dits[1] = 0.025;
2524   dits[2] = 0.05;
2525   gMC->Gsvolu("I513", "BOX ", idtmed[214], dits, 3);  
2526   
2527   dits[0] = 0.16;
2528   dits[1] = 0.08;
2529   dits[2] = 0.08;
2530   gMC->Gsvolu("I514", "BOX ", idtmed[214], dits, 3);  
2531   
2532   dits[0] = 3.4;
2533   dits[1] = 0.015;
2534   dits[2] = 0.525;
2535   gMC->Gsvolu("I512", "BOX ", idtmed[203], dits, 3);  
2536   
2537   dits[0] = 0.225;
2538   dits[1] = 0.195;
2539   dits[2] = 1.955;
2540   dits[3] = 0.025;
2541   gMC->Gsvolu("I528", "TRD1", idtmed[203], dits, 4); 
2542   
2543   dits[0] = 0.25;
2544   dits[1] = 0.22;
2545   dits[2] = 1.955;
2546   dits[3] = 0.025;
2547   gMC->Gsvolu("I527", "TRD1", idtmed[203], dits, 4);  
2548   
2549   dits[0] = 2.17;
2550   dits[1] = 0.035;
2551   dits[2] = 0.05;
2552   gMC->Gsvolu("I526", "BOX ", idtmed[203], dits, 3);  
2553   
2554   dits[0] = 2.675;
2555   dits[1] = 0.035;
2556   dits[2] = 0.05;
2557   gMC->Gsvolu("I525", "BOX ", idtmed[203], dits, 3);  
2558    
2559   dits[0] = 2;
2560   dits[1] = 0.035;
2561   dits[2] = 0.05;
2562   gMC->Gsvolu("I524", "BOX ", idtmed[203], dits, 3);  
2563    
2564   dits[0] = 0;
2565   dits[1] = 0.05;
2566   dits[2] = 0.205;
2567   gMC->Gsvolu("I529", "TUBE", idtmed[203], dits, 3);  
2568    
2569   dits[0] = 0;
2570   dits[1] = 0.05;
2571   dits[2] = 0.17;
2572   gMC->Gsvolu("I530", "TUBE", idtmed[203], dits, 3);  
2573    
2574   dits[0] = 0.15;
2575   dits[1] = 0.105;
2576   dits[2] = 0.29;
2577   dits[3] = 0.08;
2578   gMC->Gsvolu("I517", "TRD1", idtmed[203], dits, 4);  
2579   
2580   if (fluid == 1) {
2581      dits[0] = 0;
2582      dits[1] = 0.07;
2583      dits[2] = 1.955;
2584      gMC->Gsvolu("I531", "TUBE", idtmed[211], dits, 3);  // set water as cooling fluid
2585   } else {
2586      dits[0] = 0;
2587      dits[1] = 0.07;
2588      dits[2] = 1.955;
2589      gMC->Gsvolu("I531", "TUBE", idtmed[212], dits, 3);  // set freon as cooling fluid
2590   }
2591      
2592   dits[0] = 0.07;
2593   dits[1] = 0.1;
2594   dits[2] = 1.955;
2595   gMC->Gsvolu("I532", "TUBE", idtmed[210], dits, 3);  
2596  
2597   dits[0] = 0.3;
2598   dits[1] = 0.15;
2599   dits[2] = 0.15;
2600   gMC->Gsvolu("I533", "BOX ", idtmed[203], dits, 3);  
2601   
2602   dits[0] = 3.65;
2603   dits[1] = 0.015;
2604   dits[2] = 2;
2605   gMC->Gsvolu("ITS5", "BOX ", idtmed[200], dits, 3);  
2606
2607
2608
2609   // --- Define volumes of shield of SPD ----------------
2610
2611
2612   dits[0] = 8.37;
2613   dits[1] = 9.93;
2614   dits[2] = 25;
2615   gMC->Gsvolu("IC01", "TUBE", idtmed[289], dits, 3);   
2616
2617   dits[0] = 8.3;
2618   dits[1] = 9.995;
2619   dits[2] = 17.5/2.;
2620   gMC->Gsvolu("IC02", "TUBE", idtmed[289], dits, 3);    
2621   
2622  
2623   // --- Define volume of first cylinder between SPD and SDD --------------
2624   
2625   dits[0] = (21.-0.128)/2.;      
2626   dits[1] = 21./2.;
2627   dits[2] = 39.4;      
2628   gMC->Gsvolu("ICY1", "TUBE", idtmed[208], dits, 3);
2629          
2630   // --- Define volume of second cylinder between SDD and SSD --------------
2631
2632   dits[0] = (59.5-0.128)/2.;      
2633   dits[1] = 59.5/2.;
2634   dits[2] = 56.2;      // was 57
2635   gMC->Gsvolu("ICY2", "TUBE", idtmed[208], dits, 3);
2636
2637   // --- Define volumes of SDD cone ---------------------------------- 
2638
2639   dits[0] = 0;
2640   dits[1] = 360;
2641   dits[2] = 12;
2642   dits[3] = -59.7;
2643   dits[4] = 27;
2644   dits[5] = 28.6;
2645   dits[6] = -42.7;
2646   dits[7] = 10;
2647   dits[8] = 28.6;
2648   dits[9] = -34.65;
2649   dits[10] = 10;
2650   dits[11] = 28.6;
2651   dits[12] = -34.65;
2652   dits[13] = 10;
2653   dits[14] = 23.495;
2654   dits[15] = -23.7;
2655   dits[16] = 10;
2656   dits[17] = 23.495;
2657   dits[18] = -23.7;
2658   dits[19] = 10;
2659   dits[20] = 14.595;
2660   dits[21] = 23.7;
2661   dits[22] = 10;
2662   dits[23] = 14.595;
2663   dits[24] = 23.7;
2664   dits[25] = 10;
2665   dits[26] = 23.495;
2666   dits[27] = 34.65;
2667   dits[28] = 10;
2668   dits[29] = 23.495;
2669   dits[30] = 34.65;
2670   dits[31] = 10;
2671   dits[32] = 28.6;
2672   dits[33] = 42.7;
2673   dits[34] = 10;
2674   dits[35] = 28.6;
2675   dits[36] = 59.7;
2676   dits[37] = 27.2637;
2677   dits[38] = 28.6;             
2678   gMC->Gsvolu("IS02", "PCON", idtmed[204], dits, 39);
2679   
2680   dits[0] = 0;
2681   dits[1] = 360;
2682   dits[2] = 6;
2683   dits[3] = 38.65;
2684   dits[4] = 10.75;    
2685   dits[5] = 12.25;      
2686   dits[6] = 40.15;
2687   dits[7] = 10.75;
2688   dits[8] = 13.96;   
2689   dits[9] = 40.15;
2690   dits[10] = 12.46;  
2691   dits[11] = 13.96;
2692   dits[12] = 55.75;
2693   dits[13] = 27;
2694   dits[14] = 28.5;
2695   dits[15] = 55.75;
2696   dits[16] = 27;
2697   dits[17] = 28.5;
2698   dits[18] = 57.25;
2699   dits[19] = 27;
2700   dits[20] = 28.5;       
2701   gMC->Gsvolu("I093", "PCON", idtmed[272], dits, 21);  // SDD cone
2702
2703   dits[0] = 0;
2704   dits[1] = 50;
2705   dits[2] = 3;
2706   dits[3] = 39;  
2707   dits[4] = 14;
2708   dits[5] = 18.75;
2709   dits[6] = 46.7-3;
2710   dits[7] = 14;
2711   dits[8] = 18.75;
2712   dits[9] = 51.45-3;
2713   dits[10] = 18.75;
2714   dits[11] = 18.75;
2715   gMC->Gsvolu("I099", "PCON", idtmed[204], dits, 12); // SDD 3 cone hole
2716
2717   dits[0] = 0;
2718   dits[1] = 25;
2719   dits[2] = 3;
2720   dits[3] = 49;
2721   dits[4] = 23.4;
2722   dits[5] = 26.4;
2723   dits[6] = 56.1-3;
2724   dits[7] = 23.4;
2725   dits[8] = 26.4;
2726   dits[9] = 59.1-3;
2727   dits[10] = 26.4;
2728   dits[11] = 26.4;
2729   gMC->Gsvolu("I200", "PCON", idtmed[204], dits, 12); // SDD 4 cone hole
2730
2731   dits[0] = 10.0;
2732   dits[1] = 10.5;
2733   dits[2] = 0.25;
2734   gMC->Gsvolu("I090", "TUBE", idtmed[224], dits, 3);  // SDD cylinder flange
2735
2736   dits[0] = 21.95;
2737   dits[1] = 22.95;    
2738   dits[2] = 1;
2739   gMC->Gsvolu("I098", "TUBE", idtmed[283], dits, 3);    // ladder support on layer 4
2740
2741   dits[0] = 13.1;    
2742   dits[1] = 14.1;    
2743   dits[2] = 1;
2744   gMC->Gsvolu("I097", "TUBE", idtmed[283], dits, 3);    // ladder support on layer 3
2745
2746   dits[0] = 1;
2747   dits[1] = 1;
2748   dits[2] = 7.74;
2749   gMC->Gsvolu("I202", "BOX ", idtmed[272], dits, 3);
2750
2751   dits[0] = 1;
2752   dits[1] = 1;
2753   dits[2] = 9.14;
2754   gMC->Gsvolu("I203", "BOX ", idtmed[272], dits, 3);
2755
2756   dits[0] = 21.95;
2757   dits[1] = 22.95;
2758   dits[2] = 1;
2759   gMC->Gsvolu("I095", "TUBE", idtmed[224], dits, 3);
2760
2761   dits[0] = 3;
2762   dits[1] = 2.7;
2763   dits[2] = 1;
2764   dits[3] = 0.63;
2765   gMC->Gsvolu("I096", "TRD1", idtmed[264], dits, 4);
2766
2767   dits[0] = 13.1;
2768   dits[1] = 14.1;
2769   dits[2] = 1;
2770   gMC->Gsvolu("I094", "TUBE", idtmed[224], dits, 3);
2771   
2772   
2773   // --- Define volumes of SSD cone ----------------------------------    
2774             
2775
2776   dits[0] = 0;
2777   dits[1] = 360;
2778   dits[2] = 12;
2779   dits[3] = -zmax;
2780   dits[4] = 46;         
2781   dits[5] = 49.25;       
2782   dits[6] = -61.2;
2783   dits[7] = 28.7;
2784   dits[8] = 49.25;       
2785   dits[9] = -57.5;
2786   dits[10] = 28.7;
2787   dits[11] = 49.25;      
2788   dits[12] = -57.5;
2789   dits[13] = 28.7;
2790   dits[14] = 43.5;
2791   dits[15] = -49.2;
2792   dits[16] = 28.7;
2793   dits[17] = 43.5;
2794   dits[18] = -49.2;
2795   dits[19] = 28.7;
2796   dits[20] = 36.85;
2797   dits[21] = 50.6;
2798   dits[22] = 28.7;
2799   dits[23] = 36.85;
2800   dits[24] = 50.6;
2801   dits[25] = 28.7;
2802   dits[26] = 43.5;
2803   dits[27] = 57.5;
2804   dits[28] = 28.7;
2805   dits[29] = 43.5;
2806   dits[30] = 57.5;
2807   dits[31] = 28.7;
2808   dits[32] = 49.25;      
2809   dits[33] = 61.2;
2810   dits[34] = 28.7;
2811   dits[35] = 49.25;      
2812   dits[36] = zmax;
2813   dits[37] = 46;      
2814   dits[38] = 49.25;      
2815   gMC->Gsvolu("IS01", "PCON", idtmed[204], dits, 39);   // SSD cone mother volume
2816   
2817   dits[0] = 0;
2818   dits[1] = 360;
2819   dits[2] = 6;
2820   dits[3] = -zmax;  
2821   dits[4] = 47.75;  
2822   dits[5] = 49.25;  
2823   dits[6] = -zmax+2.;  
2824   dits[7] = 47.75;  
2825   dits[8] = 49.25;   
2826   dits[9] = -71.2819;
2827   dits[10] = 46.75;   
2828   dits[11] = 49.0319;
2829   dits[12] = -57.25;   // was 58.5 
2830   dits[13] = 32.9681;
2831   dits[14] = 34.75;
2832   dits[15] = -57.25;   // was 58.5   
2833   dits[16] = 30;
2834   dits[17] = 34.75;
2835   dits[18] = -55.75;   // was 57 
2836   dits[19] = 30;     
2837   dits[20] = 32.25;    // was 31.5 
2838   gMC->Gsvolu("I212", "PCON", idtmed[272], dits, 21);  // SSD cone
2839   
2840   dits[0] = 28.75;          
2841   dits[1] = 29.75;   
2842   dits[2] = 0.5;
2843   gMC->Gsvolu("I211", "TUBE", idtmed[224], dits, 3);   // SSD cylinder flange
2844   
2845   dits[0] = 35.8;   
2846   dits[1] = 36.8;   
2847   dits[2] = 1;
2848   gMC->Gsvolu("I217", "TUBE", idtmed[283], dits, 3);   // ladder support on layer 5 
2849   
2850   dits[0] = 41.4;  
2851   dits[1] = 42.4;  
2852   dits[2] = 1;
2853   gMC->Gsvolu("I219", "TUBE", idtmed[283], dits, 3);   // ladder support on layer 6
2854         
2855   dits[0] = 42.05+5.;       
2856   dits[1] = 42.55+5.;     
2857   dits[2] = 1.25;
2858   gMC->Gsvolu("I214", "TUBE", idtmed[224], dits, 3);   // layer 6 electronic support
2859                                                        // this will change after PPR
2860   dits[0] = 37.05+5.;   
2861   dits[1] = 37.55+5.;   
2862   dits[2] = 1.25;
2863   gMC->Gsvolu("I213", "TUBE", idtmed[224], dits, 3);   // layer 5 electronic support
2864                                                        // this will change after PPR
2865   dits[0] = 0;
2866   dits[1] = 25;
2867   dits[2] = 5;
2868   dits[3] = -zmax+3;
2869   dits[4] = 45.5;
2870   dits[5] = 45.5;
2871   dits[6] = -69.7+3;
2872   dits[7] = 37;
2873   dits[8] = 45.5;
2874   dits[9] = -68.5+3;
2875   dits[10] = 37;
2876   dits[11] = 45.5;
2877   dits[12] = -68.5+4.8;  
2878   dits[13] = 37;
2879   dits[14] = 45.5; 
2880   dits[15] = -63.5+4.8;
2881   dits[16] = 37;
2882   dits[17] = 45.5;   
2883   gMC->Gsvolu("I215", "PCON", idtmed[204], dits, 18);  // SSD cone hole 
2884  
2885   dits[0] = 0;
2886   dits[1] = 3.2;
2887   dits[2] = 9;
2888   dits[3] = -14;
2889   dits[4] = 30.5;
2890   dits[5] = 33.5;
2891   dits[6] = -9.85;
2892   dits[7] = 30.5;
2893   dits[8] = 33.5;
2894   dits[9] = -9.85;
2895   dits[10] = 30.5;
2896   dits[11] = 43.45;
2897   dits[12] = -7.85;
2898   dits[13] = 30.5;
2899   dits[14] = 43.45;
2900   dits[15] = -7.85;
2901   dits[16] = 30.5;
2902   dits[17] = 36.5;
2903   dits[18] = -7;
2904   dits[19] = 30.5;
2905   dits[20] = 36.5;
2906   dits[21] = -4;
2907   dits[22] = 33.0173;
2908   dits[23] = 36.5;
2909   dits[24] = -4;
2910   dits[25] = 33.0173;
2911   dits[26] = 36.80;
2912   dits[27] = -2;
2913   dits[28] = 34.6955;
2914   dits[29] = 36.80;
2915   gMC->Gsvolu("I216", "PCON", idtmed[272], dits, 30); // supports (1-6) of the ladders
2916        
2917        
2918   // --- Place SPD (option 'a') volumes into their mother volume IT12
2919   
2920   // SPD - option 'a' 
2921   // (this is NOT the default)
2922
2923   if (option == 1) {
2924
2925      gMC->Gspos("I12A",5,"IT12",0.0,0.0,0.0,idrotm[238],"MANY");
2926      gMC->Gspos("I12A",6,"IT12",0.0,0.0,0.0,idrotm[236],"MANY");
2927      gMC->Gspos("I12A",7,"IT12",0.0,0.0,0.0,idrotm[239],"MANY");
2928      gMC->Gspos("I12A",8,"IT12",0.0,0.0,0.0,idrotm[233],"MANY");
2929      gMC->Gspos("I12A",9,"IT12",0.0,0.0,0.0,idrotm[240],"MANY");
2930      gMC->Gspos("I12A",10,"IT12",0.0,0.0,0.0,idrotm[241],"MANY");
2931      gMC->Gspos("I12A",2,"IT12",0.0,0.0,0.0,idrotm[242],"MANY");
2932      gMC->Gspos("I12A",3,"IT12",0.0,0.0,0.0,idrotm[234],"MANY");
2933      gMC->Gspos("I12A",4,"IT12",0.0,0.0,0.0,idrotm[243],"MANY");
2934      gMC->Gspos("I12A",1,"IT12",0.0,0.0,0.0,0,"MANY");
2935      deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);  // see definition of idrotm[244]
2936           deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);  // see definition of idrotm[244]
2937      gMC->Gspos("I10A",2,"I12A",0.203+deltax,3.8206+deltay,0.0,idrotm[244],"ONLY");       
2938      deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);  // see definition of idrotm[245]
2939           deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);  // see definition of idrotm[245]  
2940      gMC->Gspos("I10A",1,"I12A",1.4531+deltax,3.8152+deltay,0.0,idrotm[245],"ONLY");
2941      deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);  // see definition of idrotm[246]
2942           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);  // see definition of idrotm[246]  
2943      gMC->Gspos("I20A",1,"I12A",3.0174+deltax,6.5143+deltay,0.0,idrotm[246],"ONLY");
2944      deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);  // see definition of idrotm[247]
2945           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);  // see definition of idrotm[247] 
2946      gMC->Gspos("I20A",2,"I12A",1.9612+deltax,6.9062+deltay,0.0,idrotm[247],"ONLY");
2947      deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);  // see definition of idrotm[248]
2948           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);  // see definition of idrotm[248] 
2949      gMC->Gspos("I20A",3,"I12A",0.8567+deltax,7.1279+deltay,0.0,idrotm[248],"ONLY");
2950      deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);  // see definition of idrotm[249]
2951           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);  // see definition of idrotm[249] 
2952      gMC->Gspos("I20A",4,"I12A",-0.2689+deltax,7.1742+deltay,0.0,idrotm[249],"ONLY");
2953      gMC->Gspos("I123",2,"I12A",-0.2978,5.5196,0.0,idrotm[214],"ONLY");
2954      gMC->Gspos("I121",2,"I12A",-0.2385,4.1518,0.0,idrotm[213],"ONLY");
2955      gMC->Gspos("I122",2,"I12A",-0.2968,4.0207,0.0,idrotm[212],"ONLY");
2956      gMC->Gspos("I120",2,"I12A",-0.3672,3.9056,0.0,0,"ONLY");
2957      gMC->Gspos("I144",1,"I12A",-0.2538,3.8556,0.0,0,"ONLY");
2958      gMC->Gspos("I113",3,"I12A",0.1095,3.9056,0.0,0,"ONLY");
2959      gMC->Gspos("I143",1,"I12A",0.4365,3.8556,0.0,idrotm[236],"ONLY");
2960      gMC->Gspos("I142",1,"I12A",0.5136,3.9056,0.0,idrotm[235],"ONLY");
2961      gMC->Gspos("I141",1,"I12A",0.5636,3.9752,0.0,idrotm[201],"ONLY");
2962      gMC->Gspos("I140",1,"I12A",0.6336,4.0447,0.0,idrotm[234],"ONLY");
2963      gMC->Gspos("I139",1,"I12A",0.8297,4.0545,0.0,idrotm[207],"ONLY");
2964      gMC->Gspos("I113",5,"I12A",1.2575,3.9681,0.0,idrotm[207],"ONLY");
2965      gMC->Gspos("I138",1,"I12A",1.66,3.7848,0.0,idrotm[207],"ONLY");
2966      gMC->Gspos("I137",1,"I12A",1.8556,3.7738,0.0,idrotm[233],"ONLY");
2967      gMC->Gspos("I136",1,"I12A",2.6224,4.874,0.0,idrotm[232],"ONLY");
2968      gMC->Gspos("I135",1,"I12A",3.2967,6.0337,0.0,idrotm[231],"ONLY");
2969      gMC->Gspos("I134",1,"I12A",3.266,6.1636,0.0,idrotm[230],"ONLY");
2970      gMC->Gspos("I113",1,"I12A",2.9903,6.4144,0.0,idrotm[211],"ONLY");
2971      gMC->Gspos("I133",3,"I12A",2.7631,6.7627,0.0,idrotm[230],"ONLY");
2972      gMC->Gspos("I132",3,"I12A",2.62,6.8555,0.0,idrotm[229],"ONLY");
2973      gMC->Gspos("I131",3,"I12A",2.648,6.6023,0.0,idrotm[228],"ONLY");
2974      gMC->Gspos("I130",3,"I12A",2.6569,6.3431,0.0,idrotm[227],"ONLY");
2975      gMC->Gspos("I129",3,"I12A",2.3906,6.4819,0.0,idrotm[226],"ONLY");
2976      gMC->Gspos("I113",2,"I12A",1.9488,6.7998,0.0,idrotm[210],"ONLY");
2977      gMC->Gspos("I133",2,"I12A",1.6699,7.1085,0.0,idrotm[226],"ONLY");
2978      gMC->Gspos("I132",2,"I12A",1.5142,7.1777,0.0,idrotm[225],"ONLY");
2979      gMC->Gspos("I131",2,"I12A",1.5814,6.932,0.0,idrotm[224],"ONLY");
2980      gMC->Gspos("I130",2,"I12A",1.6308,6.6774,0.0,idrotm[223],"ONLY");
2981      gMC->Gspos("I129",2,"I12A",1.346,6.7728,0.0,idrotm[222],"ONLY");
2982      gMC->Gspos("I113",6,"I12A",0.8599,7.0176,0.0,idrotm[209],"ONLY");
2983      gMC->Gspos("I133",1,"I12A",0.5362,7.2789,0.0,idrotm[222],"ONLY");
2984      gMC->Gspos("I132",1,"I12A",0.3715,7.3228,0.0,idrotm[221],"ONLY");
2985      gMC->Gspos("I131",1,"I12A",0.4763,7.0907,0.0,idrotm[220],"ONLY");
2986      gMC->Gspos("I130",1,"I12A",0.5649,6.8469,0.0,idrotm[219],"ONLY");
2987      gMC->Gspos("I129",1,"I12A",0.2688,6.8966,0.0,idrotm[218],"ONLY");
2988      gMC->Gspos("I113",4,"I12A",-0.2497,7.0624,0.0,idrotm[208],"ONLY");
2989      gMC->Gspos("I128",1,"I12A",-0.6103,7.2698,0.0,idrotm[218],"ONLY");
2990      gMC->Gspos("I126",2,"I12A",-0.7799,7.2874,0.0,idrotm[217],"ONLY");
2991      gMC->Gspos("I125",2,"I12A",-0.6315,7.0883,0.0,idrotm[216],"ONLY");
2992      gMC->Gspos("I124",2,"I12A",-0.4965,6.8742,0.0,idrotm[215],"ONLY");
2993      gMC->Gspos("I103",3,"I10A",-0.05,-di10a[1]+2.*di104[1]+di103[1],-3.536,0,"ONLY");
2994      gMC->Gspos("I103",4,"I10A",-0.05,-di10a[1]+2.*di104[1]+di103[1],-10.708,0,"ONLY");
2995      gMC->Gspos("I103",1,"I10A",-0.05,-di10a[1]+2.*di104[1]+di103[1],10.708,0,"ONLY");
2996      gMC->Gspos("I103",2,"I10A",-0.05,-di10a[1]+2.*di104[1]+di103[1],3.536,0,"ONLY");
2997      gMC->Gspos("I105",1,"I10A",-0.05,0.01,-16.844,idrotm[237],"ONLY");
2998      gMC->Gspos("I105",2,"I10A",-0.05,0.01,16.844,0,"ONLY");
2999      gMC->Gspos("I104",1,"I10A",0.0,-di10a[1]+di104[1],0.0,0,"ONLY");
3000      gMC->Gspos("I1D3",3,"I20A",-0.05,-di20a[1]+2.*di104[1]+di1d3[1],-3.536,0,"ONLY");
3001      gMC->Gspos("I1D3",4,"I20A",-0.05,-di20a[1]+2.*di104[1]+di1d3[1],-10.708,0,"ONLY");
3002      gMC->Gspos("I1D3",1,"I20A",-0.05,-di20a[1]+2.*di104[1]+di1d3[1],10.708,0,"ONLY");
3003      gMC->Gspos("I1D3",2,"I20A",-0.05,-di20a[1]+2.*di104[1]+di1d3[1],3.536,0,"ONLY");
3004      gMC->Gspos("I105",3,"I20A",-0.05,0.01,-16.844,idrotm[237],"ONLY");
3005      gMC->Gspos("I105",4,"I20A",-0.05,0.01,16.844,0,"ONLY");
3006      gMC->Gspos("I104",2,"I20A",0.0,-di20a[1]+di104[1],0.0,0,"ONLY");
3007      gMC->Gspos("I112",2,"I113",0.25,0.02,0.0,idrotm[206],"ONLY");
3008      gMC->Gspos("I111",2,"I113",0.1318,-0.0008,0.0,idrotm[205],"ONLY");
3009      gMC->Gspos("I118",1,"I113",0.0,-0.0454,0.0,0,"ONLY");
3010      gMC->Gspos("I110",1,"I113",0.0,0.0492,0.0,0,"ONLY");
3011      gMC->Gspos("I114",1,"I113",0.063,0.0042,0.0,idrotm[202],"ONLY");
3012      gMC->Gspos("I115",1,"I113",0.063,0.0042,0.0,idrotm[202],"ONLY");
3013      gMC->Gspos("I115",2,"I113",-0.063,0.0042,0.0,idrotm[201],"ONLY");
3014      gMC->Gspos("I114",2,"I113",-0.063,0.0042,0.0,idrotm[201],"ONLY");
3015      gMC->Gspos("I116",1,"I113",0.0,0.0042,0.0,0,"ONLY");
3016      gMC->Gspos("I111",1,"I113",-0.1318,-0.0008,0.0,idrotm[204],"ONLY");
3017      gMC->Gspos("I112",1,"I113",-0.25,0.02,0.0,idrotm[203],"ONLY");
3018      gMC->Gspos("I101",1,"I103",-0.088,ddet1,0.0,0,"ONLY");
3019      gMC->Gspos("I102",1,"I103",0.0,-dchip1,-2.8,0,"ONLY");
3020      gMC->Gspos("I102",2,"I103",0.0,-dchip1,-1.4,0,"ONLY");
3021      gMC->Gspos("I102",3,"I103",0.0,-dchip1,0.0,0,"ONLY");
3022      gMC->Gspos("I102",4,"I103",0.0,-dchip1,1.4,0,"ONLY");
3023      gMC->Gspos("I102",5,"I103",0.0,-dchip1,2.8,0,"ONLY");
3024      gMC->Gspos("I1D1",1,"I1D3",-0.088,ddet2,0.0,0,"ONLY");
3025      gMC->Gspos("I1D2",1,"I1D3",0.0,-dchip2,-2.8,0,"ONLY");
3026      gMC->Gspos("I1D2",2,"I1D3",0.0,-dchip2,-1.4,0,"ONLY");
3027      gMC->Gspos("I1D2",3,"I1D3",0.0,-dchip2,0.0,0,"ONLY");
3028      gMC->Gspos("I1D2",4,"I1D3",0.0,-dchip2,1.4,0,"ONLY");
3029      gMC->Gspos("I1D2",5,"I1D3",0.0,-dchip2,2.8,0,"ONLY");
3030      gMC->Gspos("I117",1,"I116",0.0,0.0,0.0,0,"ONLY");
3031      gMC->Gspos("ITS1",1,"I101",0.0,0.0,0.0,0,"ONLY");
3032      gMC->Gspos("ITS2",1,"I1D1",0.0,0.0,0.0,0,"ONLY");
3033      gMC->Gspos("I650",16,"IT12",0.0,0.0,22.0,idrotm[1104],"MANY");
3034      gMC->Gspos("I650",20,"IT12",0.0,0.0,22.0,idrotm[1130],"MANY");
3035      gMC->Gspos("I650",18,"IT12",0.0,0.0,22.0,idrotm[1117],"MANY");
3036      gMC->Gspos("I650",1,"IT12",0.0,0.0,22.0,0,"MANY");
3037      gMC->Gspos("I650",4,"IT12",0.0,0.0,22.0,idrotm[1106],"MANY");
3038      gMC->Gspos("I650",6,"IT12",0.0,0.0,22.0,idrotm[1039],"MANY");
3039      gMC->Gspos("I650",8,"IT12",0.0,0.0,22.0,idrotm[1107],"MANY");
3040      gMC->Gspos("I650",10,"IT12",0.0,0.0,22.0,idrotm[1065],"MANY");
3041      gMC->Gspos("I650",12,"IT12",0.0,0.0,22.0,idrotm[1078],"MANY");
3042      gMC->Gspos("I650",14,"IT12",0.0,0.0,22.0,idrotm[1091],"MANY");
3043      gMC->Gspos("I650",19,"IT12",0.0,0.0,-22.0,idrotm[1108],"MANY");
3044      gMC->Gspos("I650",2,"IT12",0.0,0.0,-22.0,idrotm[1109],"MANY");
3045      gMC->Gspos("I650",3,"IT12",0.0,0.0,-22.0,idrotm[1110],"MANY");
3046      gMC->Gspos("I650",5,"IT12",0.0,0.0,-22.0,idrotm[1111],"MANY");
3047      gMC->Gspos("I650",7,"IT12",0.0,0.0,-22.0,idrotm[1112],"MANY");
3048      gMC->Gspos("I650",9,"IT12",0.0,0.0,-22.0,idrotm[1113],"MANY");
3049      gMC->Gspos("I650",11,"IT12",0.0,0.0,-22.0,idrotm[1114],"MANY");
3050      gMC->Gspos("I650",13,"IT12",0.0,0.0,-22.0,idrotm[1115],"MANY");
3051      gMC->Gspos("I650",15,"IT12",0.0,0.0,-22.0,idrotm[1116],"MANY");
3052      gMC->Gspos("I650",17,"IT12",0.0,0.0,-22.0,idrotm[1118],"MANY");
3053      gMC->Gspos("I666",1,"I650",0.0,0.0,0.25,idrotm[1003],"MANY");
3054      gMC->Gspos("I667",1,"I650",0.1102,0.9945,0.45,idrotm[1088],"ONLY");
3055      gMC->Gspos("I669",3,"I650",0.1883,4.0372,-3.2,0,"ONLY");
3056      gMC->Gspos("I671",3,"I650",0.1883,4.0372,0.6,0,"ONLY");
3057      gMC->Gspos("I669",2,"I650",1.3343,4.0609,-3.2,0,"ONLY");
3058      gMC->Gspos("I671",2,"I650",1.3343,4.0609,0.6,0,"ONLY");
3059      gMC->Gspos("I669",6,"I650",2.9567,6.1959,-3.2,idrotm[1089],"ONLY");
3060      gMC->Gspos("I671",6,"I650",2.9567,6.1959,0.6,idrotm[1089],"ONLY");
3061      gMC->Gspos("I669",5,"I650",1.9511,6.5822,-3.2,idrotm[1011],"ONLY");
3062      gMC->Gspos("I671",5,"I650",1.9511,6.5822,0.6,idrotm[1011],"ONLY");
3063      gMC->Gspos("I669",4,"I650",0.8974,6.8064,-3.2,idrotm[1090],"ONLY");
3064      gMC->Gspos("I671",4,"I650",0.8974,6.8064,0.6,idrotm[1090],"ONLY");
3065      gMC->Gspos("I669",1,"I650",-0.1784,6.863,-3.2,0,"ONLY");
3066      gMC->Gspos("I671",1,"I650",-0.1784,6.863,0.6,0,"ONLY");
3067      gMC->Gspos("I673",1,"I650",0.2173,4.8037,1.8,0,"ONLY");
3068      gMC->Gspos("I673",6,"I650",1.5093,4.5605,1.8,0,"ONLY");
3069      gMC->Gspos("I673",4,"I650",-0.173,6.2531,1.8,idrotm[1092],"ONLY");
3070      gMC->Gspos("I673",3,"I650",0.8073,6.2032,1.8,idrotm[1093],"ONLY");
3071      gMC->Gspos("I673",2,"I650",1.7678,6.0005,1.8,idrotm[1094],"ONLY");
3072      gMC->Gspos("I673",5,"I650",2.6847,5.6501,1.8,0,"ONLY");
3073      gMC->Gspos("I676",2,"I650",1.7618,5.2269,2.5,0,"ONLY");
3074      gMC->Gspos("I676",1,"I650",0.4018,5.5869,2.5,0,"ONLY");
3075      gMC->Gspos("I668",1,"I667",0.0,0.0,0.0,0,"ONLY");
3076      gMC->Gspos("I670",1,"I669",0.0,0.0,0.0,0,"ONLY");
3077      gMC->Gspos("I672",1,"I671",0.0,0.0,0.0,0,"ONLY");
3078      gMC->Gspos("I674",1,"I673",0.0,0.0,0.0,0,"MANY");
3079      gMC->Gspos("I675",1,"I673",0.0,0.0,-0.5,0,"ONLY");
3080      gMC->Gspos("I677",1,"I676",0.0,0.0,0.0,0,"MANY");
3081      gMC->Gspos("I678",1,"I676",0.0,0.0,-0.95,0,"ONLY");    
3082
3083   }
3084
3085
3086   // --- Place SPD (option 'b') volumes into their mother volume IT12
3087   
3088   // SPD - option 'b' 
3089   // (this is the default)
3090
3091   if (option == 2) {
3092
3093      gMC->Gspos("I12B",1,"IT12",0.0,0.0,0.0,0,"MANY");
3094      gMC->Gspos("I12B",8,"IT12",0.0,0.0,0.0,idrotm[233],"MANY");
3095      gMC->Gspos("I12B",7,"IT12",0.0,0.0,0.0,idrotm[244],"MANY");
3096      gMC->Gspos("I12B",6,"IT12",0.0,0.0,0.0,idrotm[236],"MANY");
3097      gMC->Gspos("I12B",2,"IT12",0.0,0.0,0.0,idrotm[245],"MANY");
3098      gMC->Gspos("I12B",3,"IT12",0.0,0.0,0.0,idrotm[234],"MANY");
3099      gMC->Gspos("I12B",4,"IT12",0.0,0.0,0.0,idrotm[246],"MANY");
3100      gMC->Gspos("I12B",5,"IT12",0.0,0.0,0.0,idrotm[247],"MANY");
3101      gMC->Gspos("I12B",9,"IT12",0.0,0.0,0.0,idrotm[248],"MANY");
3102      gMC->Gspos("I12B",10,"IT12",0.0,0.0,0.0,idrotm[249],"MANY");
3103      deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);  // see definition of idrotm[238]
3104           deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);  // see definition of idrotm[238]
3105      gMC->Gspos("I10B",2,"I12B",0.203+deltax,3.8206+deltay,0.0,idrotm[238],"ONLY");       
3106      deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);  // see definition of idrotm[239]
3107           deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);  // see definition of idrotm[239]  
3108      gMC->Gspos("I10B",1,"I12B",1.4531+deltax,3.8152+deltay,0.0,idrotm[239],"ONLY");
3109      deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);  // see definition of idrotm[240]
3110           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);  // see definition of idrotm[240]  
3111      gMC->Gspos("I20B",1,"I12B",3.0174+deltax,6.5143+deltay,0.0,idrotm[240],"ONLY");
3112      deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);  // see definition of idrotm[241]
3113           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);  // see definition of idrotm[241] 
3114      gMC->Gspos("I20B",2,"I12B",1.9612+deltax,6.9062+deltay,0.0,idrotm[241],"ONLY");
3115      deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);  // see definition of idrotm[242]
3116           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);  // see definition of idrotm[242] 
3117      gMC->Gspos("I20B",3,"I12B",0.8567+deltax,7.1279+deltay,0.0,idrotm[242],"ONLY");
3118      deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);  // see definition of idrotm[243]
3119           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);  // see definition of idrotm[243] 
3120      gMC->Gspos("I20B",4,"I12B",-0.2689+deltax,7.1742+deltay,0.0,idrotm[243],"ONLY");
3121      gMC->Gspos("I123",1,"I12B",-0.2978,5.5196,0.0,idrotm[214],"ONLY");
3122      gMC->Gspos("I121",1,"I12B",-0.2385,4.1518,0.0,idrotm[213],"ONLY");
3123      gMC->Gspos("I122",1,"I12B",-0.2968,4.0207,0.0,idrotm[212],"ONLY");
3124      gMC->Gspos("I120",1,"I12B",-0.3672,3.9056,0.0,0,"ONLY");
3125      gMC->Gspos("I144",1,"I12B",-0.2538,3.8556,0.0,0,"ONLY");
3126      gMC->Gspos("I113",3,"I12B",0.1095,3.9056,0.0,0,"ONLY");
3127      gMC->Gspos("I143",1,"I12B",0.4365,3.8556,0.0,idrotm[236],"ONLY");
3128      gMC->Gspos("I142",1,"I12B",0.5136,3.9056,0.0,idrotm[235],"ONLY");
3129      gMC->Gspos("I141",1,"I12B",0.5636,3.9752,0.0,idrotm[237],"ONLY");
3130      gMC->Gspos("I140",1,"I12B",0.6336,4.0447,0.0,idrotm[234],"ONLY");
3131      gMC->Gspos("I139",1,"I12B",0.8297,4.0545,0.0,idrotm[207],"ONLY");
3132      gMC->Gspos("I113",5,"I12B",1.2575,3.9681,0.0,idrotm[207],"ONLY");
3133      gMC->Gspos("I138",1,"I12B",1.66,3.7848,0.0,idrotm[207],"ONLY");
3134      gMC->Gspos("I137",1,"I12B",1.8556,3.7738,0.0,idrotm[233],"ONLY");
3135      gMC->Gspos("I136",1,"I12B",2.6224,4.874,0.0,idrotm[232],"ONLY");
3136      gMC->Gspos("I135",1,"I12B",3.2967,6.0337,0.0,idrotm[231],"ONLY");
3137      gMC->Gspos("I134",1,"I12B",3.266,6.1636,0.0,idrotm[230],"ONLY");
3138      gMC->Gspos("I113",1,"I12B",2.9903,6.4144,0.0,idrotm[211],"ONLY");
3139      gMC->Gspos("I133",3,"I12B",2.7631,6.7627,0.0,idrotm[230],"ONLY");
3140      gMC->Gspos("I132",3,"I12B",2.62,6.8555,0.0,idrotm[229],"ONLY");
3141      gMC->Gspos("I131",3,"I12B",2.648,6.6023,0.0,idrotm[228],"ONLY");
3142      gMC->Gspos("I130",3,"I12B",2.6569,6.3431,0.0,idrotm[227],"ONLY");
3143      gMC->Gspos("I129",3,"I12B",2.3906,6.4819,0.0,idrotm[226],"ONLY");
3144      gMC->Gspos("I113",2,"I12B",1.9488,6.7998,0.0,idrotm[210],"ONLY");
3145      gMC->Gspos("I133",2,"I12B",1.6699,7.1085,0.0,idrotm[226],"ONLY");
3146      gMC->Gspos("I132",2,"I12B",1.5142,7.1777,0.0,idrotm[225],"ONLY");
3147      gMC->Gspos("I131",2,"I12B",1.5814,6.932,0.0,idrotm[224],"ONLY");
3148      gMC->Gspos("I130",2,"I12B",1.6308,6.6774,0.0,idrotm[223],"ONLY");
3149      gMC->Gspos("I129",2,"I12B",1.346,6.7728,0.0,idrotm[222],"ONLY");
3150      gMC->Gspos("I113",6,"I12B",0.8599,7.0176,0.0,idrotm[209],"ONLY");
3151      gMC->Gspos("I133",1,"I12B",0.5362,7.2789,0.0,idrotm[222],"ONLY");
3152      gMC->Gspos("I132",1,"I12B",0.3715,7.3228,0.0,idrotm[221],"ONLY");
3153      gMC->Gspos("I131",1,"I12B",0.4763,7.0907,0.0,idrotm[220],"ONLY");
3154      gMC->Gspos("I130",1,"I12B",0.5649,6.8469,0.0,idrotm[219],"ONLY");
3155      gMC->Gspos("I129",1,"I12B",0.2688,6.8966,0.0,idrotm[218],"ONLY");
3156      gMC->Gspos("I113",4,"I12B",-0.2497,7.0624,0.0,idrotm[208],"ONLY");
3157      gMC->Gspos("I128",1,"I12B",-0.6103,7.2698,0.0,idrotm[218],"ONLY");
3158      gMC->Gspos("I126",1,"I12B",-0.7799,7.2874,0.0,idrotm[217],"ONLY");
3159      gMC->Gspos("I125",1,"I12B",-0.6315,7.0883,0.0,idrotm[216],"ONLY");
3160      gMC->Gspos("I124",1,"I12B",-0.4965,6.8742,0.0,idrotm[215],"ONLY");
3161      gMC->Gspos("I105",3,"I10B",-0.05,-0.01,-16.844,idrotm[201],"ONLY");
3162      gMC->Gspos("I105",4,"I10B",-0.05,-0.01,16.844,0,"ONLY");
3163      gMC->Gspos("I107",2,"I10B",-0.0455,-di10b[1]+di107[1],3.536,0,"ONLY");
3164      gMC->Gspos("I107",1,"I10B",-0.0455,-di10b[1]+di107[1],10.708,0,"ONLY");
3165      gMC->Gspos("I107",4,"I10B",-0.0455,-di10b[1]+di107[1],-10.708,0,"ONLY");
3166      gMC->Gspos("I107",3,"I10B",-0.0455,-di10b[1]+di107[1],-3.536,0,"ONLY");
3167      gMC->Gspos("I109",1,"I10B",-0.138,0.015,-16.844,idrotm[201],"ONLY");
3168      gMC->Gspos("I109",2,"I10B",-0.138,0.015,16.844,0,"ONLY");
3169      gMC->Gspos("I108",1,"I10B",-0.138,-di10b[1]+2.*di107[1]+di108[1],0.0,0,"ONLY");
3170      gMC->Gspos("I105",1,"I20B",-0.05,-0.01,-16.844,idrotm[201],"ONLY");
3171      gMC->Gspos("I105",2,"I20B",-0.05,-0.01,16.844,0,"ONLY");
3172      gMC->Gspos("I1D7",2,"I20B",-0.0455,-di20b[1]+di1d7[1],3.536,0,"ONLY");
3173      gMC->Gspos("I1D7",1,"I20B",-0.0455,-di20b[1]+di1d7[1],10.708,0,"ONLY");
3174      gMC->Gspos("I1D7",4,"I20B",-0.0455,-di20b[1]+di1d7[1],-10.708,idrotm[201],"ONLY");
3175      gMC->Gspos("I1D7",3,"I20B",-0.0455,-di20b[1]+di1d7[1],-3.536,idrotm[201],"ONLY");
3176      gMC->Gspos("I109",3,"I20B",-0.138,0.015,-16.844,idrotm[201],"ONLY");
3177      gMC->Gspos("I109",4,"I20B",-0.138,0.015,16.844,0,"ONLY");
3178      gMC->Gspos("I108",2,"I20B",-0.138,-di20b[1]+2.*di1d7[1]+di108[1],0.0,0,"ONLY");
3179      gMC->Gspos("I112",2,"I113",0.25,0.02,0.0,idrotm[206],"ONLY");
3180      gMC->Gspos("I111",2,"I113",0.1318,-0.0008,0.0,idrotm[205],"ONLY");
3181      gMC->Gspos("I118",1,"I113",0.0,-0.0454,0.0,0,"ONLY");
3182      gMC->Gspos("I110",1,"I113",0.0,0.0492,0.0,0,"ONLY");
3183      gMC->Gspos("I114",1,"I113",0.063,0.0042,0.0,idrotm[202],"ONLY");
3184      gMC->Gspos("I115",1,"I113",0.063,0.0042,0.0,idrotm[202],"ONLY");
3185      gMC->Gspos("I115",2,"I113",-0.063,0.0042,0.0,idrotm[237],"ONLY");
3186      gMC->Gspos("I114",2,"I113",-0.063,0.0042,0.0,idrotm[237],"ONLY");
3187      gMC->Gspos("I116",1,"I113",0.0,0.0042,0.0,0,"ONLY");
3188      gMC->Gspos("I111",1,"I113",-0.1318,-0.0008,0.0,idrotm[204],"ONLY");
3189      gMC->Gspos("I112",1,"I113",-0.25,0.02,0.0,idrotm[203],"ONLY");
3190      gMC->Gspos("I106",1,"I107",0.0,-dchip1,-1.4,0,"ONLY");
3191      gMC->Gspos("I106",2,"I107",0.0,-dchip1,0.0,0,"ONLY");
3192      gMC->Gspos("I106",3,"I107",0.0,-dchip1,1.4,0,"ONLY");
3193      gMC->Gspos("I106",4,"I107",0.0,-dchip1,2.8,0,"ONLY");
3194      gMC->Gspos("I106",5,"I107",0.0,-dchip1,-2.8,0,"ONLY");
3195      gMC->Gspos("I101",1,"I107",0.0,ddet1,0.0,0,"ONLY");
3196      gMC->Gspos("I1D6",1,"I1D7",0.0,-dchip2,-1.4,0,"ONLY");
3197      gMC->Gspos("I1D6",2,"I1D7",0.0,-dchip2,0.0,0,"ONLY");
3198      gMC->Gspos("I1D6",3,"I1D7",0.0,-dchip2,1.4,0,"ONLY");
3199      gMC->Gspos("I1D6",4,"I1D7",0.0,-dchip2,2.8,0,"ONLY");
3200      gMC->Gspos("I1D6",5,"I1D7",0.0,-dchip2,-2.8,0,"ONLY");
3201      gMC->Gspos("I1D1",1,"I1D7",0.0,ddet2,0.0,0,"ONLY");
3202      gMC->Gspos("I117",1,"I116",0.0,0.0,0.0,0,"ONLY");
3203      gMC->Gspos("ITS1",1,"I101",0.0,0.0,0.0,0,"ONLY");
3204      gMC->Gspos("ITS2",1,"I1D1",0.0,0.0,0.0,0,"ONLY");
3205      gMC->Gspos("I650",16,"IT12",0.0,0.0,22.0,idrotm[1104],"MANY");
3206      gMC->Gspos("I650",20,"IT12",0.0,0.0,22.0,idrotm[1130],"MANY");
3207      gMC->Gspos("I650",18,"IT12",0.0,0.0,22.0,idrotm[1117],"MANY");
3208      gMC->Gspos("I650",1,"IT12",0.0,0.0,22.0,0,"MANY");
3209      gMC->Gspos("I650",4,"IT12",0.0,0.0,22.0,idrotm[1106],"MANY");
3210      gMC->Gspos("I650",6,"IT12",0.0,0.0,22.0,idrotm[1039],"MANY");
3211      gMC->Gspos("I650",8,"IT12",0.0,0.0,22.0,idrotm[1107],"MANY");
3212      gMC->Gspos("I650",10,"IT12",0.0,0.0,22.0,idrotm[1065],"MANY");
3213      gMC->Gspos("I650",12,"IT12",0.0,0.0,22.0,idrotm[1078],"MANY");
3214      gMC->Gspos("I650",14,"IT12",0.0,0.0,22.0,idrotm[1091],"MANY");
3215      gMC->Gspos("I650",19,"IT12",0.0,0.0,-22.0,idrotm[1108],"MANY");
3216      gMC->Gspos("I650",2,"IT12",0.0,0.0,-22.0,idrotm[1109],"MANY");
3217      gMC->Gspos("I650",3,"IT12",0.0,0.0,-22.0,idrotm[1110],"MANY");
3218      gMC->Gspos("I650",5,"IT12",0.0,0.0,-22.0,idrotm[1111],"MANY");
3219      gMC->Gspos("I650",7,"IT12",0.0,0.0,-22.0,idrotm[1112],"MANY");
3220      gMC->Gspos("I650",9,"IT12",0.0,0.0,-22.0,idrotm[1113],"MANY");
3221      gMC->Gspos("I650",11,"IT12",0.0,0.0,-22.0,idrotm[1114],"MANY");
3222      gMC->Gspos("I650",13,"IT12",0.0,0.0,-22.0,idrotm[1115],"MANY");
3223      gMC->Gspos("I650",15,"IT12",0.0,0.0,-22.0,idrotm[1116],"MANY");
3224      gMC->Gspos("I650",17,"IT12",0.0,0.0,-22.0,idrotm[1118],"MANY");
3225      gMC->Gspos("I666",1,"I650",0.0,0.0,0.25,idrotm[1003],"MANY");
3226      gMC->Gspos("I667",1,"I650",0.1102,0.9945,0.45,idrotm[1088],"ONLY");
3227      gMC->Gspos("I669",3,"I650",0.1883,4.0372,-3.2,0,"ONLY");
3228      gMC->Gspos("I671",3,"I650",0.1883,4.0372,0.6,0,"ONLY");
3229      gMC->Gspos("I669",2,"I650",1.3343,4.0609,-3.2,0,"ONLY");
3230      gMC->Gspos("I671",2,"I650",1.3343,4.0609,0.6,0,"ONLY");
3231      gMC->Gspos("I669",6,"I650",2.9567,6.1959,-3.2,idrotm[1089],"ONLY");
3232      gMC->Gspos("I671",6,"I650",2.9567,6.1959,0.6,idrotm[1089],"ONLY");
3233      gMC->Gspos("I669",5,"I650",1.9511,6.5822,-3.2,idrotm[1011],"ONLY");
3234      gMC->Gspos("I671",5,"I650",1.9511,6.5822,0.6,idrotm[1011],"ONLY");
3235      gMC->Gspos("I669",4,"I650",0.8974,6.8064,-3.2,idrotm[1090],"ONLY");
3236      gMC->Gspos("I671",4,"I650",0.8974,6.8064,0.6,idrotm[1090],"ONLY");
3237      gMC->Gspos("I669",1,"I650",-0.1784,6.863,-3.2,0,"ONLY");
3238      gMC->Gspos("I671",1,"I650",-0.1784,6.863,0.6,0,"ONLY");
3239      gMC->Gspos("I673",1,"I650",0.2173,4.8037,1.8,0,"ONLY");
3240      gMC->Gspos("I673",6,"I650",1.5093,4.5605,1.8,0,"ONLY");
3241      gMC->Gspos("I673",4,"I650",-0.173,6.2531,1.8,idrotm[1092],"ONLY");
3242      gMC->Gspos("I673",3,"I650",0.8073,6.2032,1.8,idrotm[1093],"ONLY");
3243      gMC->Gspos("I673",2,"I650",1.7678,6.0005,1.8,idrotm[1094],"ONLY");
3244      gMC->Gspos("I673",5,"I650",2.6847,5.6501,1.8,0,"ONLY");
3245      gMC->Gspos("I676",2,"I650",1.7618,5.2269,2.5,0,"ONLY");
3246      gMC->Gspos("I676",1,"I650",0.4018,5.5869,2.5,0,"ONLY");
3247      gMC->Gspos("I668",1,"I667",0.0,0.0,0.0,0,"ONLY");
3248      gMC->Gspos("I670",1,"I669",0.0,0.0,0.0,0,"ONLY");
3249      gMC->Gspos("I672",1,"I671",0.0,0.0,0.0,0,"ONLY");
3250      gMC->Gspos("I674",1,"I673",0.0,0.0,0.0,0,"MANY");
3251      gMC->Gspos("I675",1,"I673",0.0,0.0,-0.5,0,"ONLY");
3252      gMC->Gspos("I677",1,"I676",0.0,0.0,0.0,0,"MANY");
3253      gMC->Gspos("I678",1,"I676",0.0,0.0,-0.95,0,"ONLY");  
3254
3255   }
3256     
3257   // --- Place SDD volumes into their mother volume IT34
3258
3259   
3260   // -- position SDD detectors of ladder 3 / layer 3
3261
3262   gMC->Gspos("ITS3", 1,"I302",  0.0,      0.0,    0.0,    0,           "ONLY");
3263   ySDD = Y_SDD_sep/2.+I302dits[1];
3264   for (iSDD=0; iSDD<6; iSDD++) {
3265     gMC->Gspos("I302", iSDD+1, "I004",  0.0, ySDD,  Z_SDD_lay3[iSDD], 0, "ONLY");
3266     ySDD = -ySDD;
3267   }
3268
3269   gMC->Gspos("I004", 1,"IT34", -3.2777,  14.3607, 0.0,   idrotm[321],"ONLY");
3270   gMC->Gspos("I004", 2,"IT34", -9.5581,  11.9855, 0.0,   idrotm[333],"ONLY");
3271   gMC->Gspos("I004", 3,"IT34",-13.2713,   6.3911, 0.0,   idrotm[336],"ONLY");
3272   gMC->Gspos("I004", 4,"IT34",-15.33,     0.0,    0.0,   idrotm[350],"ONLY");
3273   gMC->Gspos("I004", 5,"IT34",-13.2713,  -6.3911, 0.0,   idrotm[313],"ONLY");
3274   gMC->Gspos("I004", 6,"IT34", -9.5581, -11.9855, 0.0,   idrotm[311],"ONLY");
3275   gMC->Gspos("I004", 7,"IT34", -3.2777, -14.3607, 0.0,   idrotm[310],"ONLY");
3276   gMC->Gspos("I004", 8,"IT34",  3.4112, -14.9456, 0.0,   idrotm[386],"ONLY");
3277   gMC->Gspos("I004", 9,"IT34",  9.184,  -11.5164, 0.0,   idrotm[309],"ONLY");
3278   gMC->Gspos("I004",10,"IT34", 13.8119,  -6.6514, 0.0,   idrotm[308],"ONLY");
3279   gMC->Gspos("I004",11,"IT34", 14.73,     0.0,    0.0,   idrotm[356],"ONLY");
3280   gMC->Gspos("I004",12,"IT34", 13.8119,   6.6514, 0.0,   idrotm[307],"ONLY");
3281   gMC->Gspos("I004",13,"IT34",  9.184,   11.5164, 0.0,   idrotm[306],"ONLY");
3282   gMC->Gspos("I004",14,"IT34",  3.4113,  14.9456, 0.0,   idrotm[305],"ONLY");
3283
3284
3285   // -- position SDD detectors of ladder 4 / layer 4
3286
3287   gMC->Gspos("ITS4", 1,"I402",  0.0,      0.000,  0.0,   0,"ONLY");
3288   ySDD = -(Y_SDD_sep/2.+I402dits[1]);
3289   for (iSDD=0; iSDD<8; iSDD++) {
3290     gMC->Gspos("I402", iSDD+1, "I005",  0.0, ySDD,  Z_SDD_lay4[iSDD], 0, "ONLY");
3291     ySDD = -ySDD;
3292   }
3293   
3294   gMC->Gspos("I005", 1,"IT34", -3.3629,  23.3895,-0.15,  idrotm[335],"ONLY");
3295   gMC->Gspos("I005", 2,"IT34",-10.0447,  21.9949,-0.15,  idrotm[332],"ONLY");
3296   gMC->Gspos("I005", 3,"IT34",-15.4744,  17.8584,-0.15,  idrotm[331],"ONLY");
3297   gMC->Gspos("I005", 4,"IT34",-20.3415,  13.0727,-0.15,  idrotm[366],"ONLY");
3298   gMC->Gspos("I005", 5,"IT34",-22.6728,   6.6573,-0.15,  idrotm[330],"ONLY");
3299   gMC->Gspos("I005", 6,"IT34",-24.18,     0.0,   -0.15,  idrotm[350],"ONLY");
3300   gMC->Gspos("I005", 7,"IT34",-22.6728,  -6.6573,-0.15,  idrotm[329],"ONLY");
3301   gMC->Gspos("I005", 8,"IT34",-20.3415, -13.0727,-0.15,  idrotm[328],"ONLY");
3302   gMC->Gspos("I005", 9,"IT34",-15.4744, -17.8584,-0.15,  idrotm[327],"ONLY");
3303   gMC->Gspos("I005",10,"IT34",-10.0447, -21.9949,-0.15,  idrotm[326],"ONLY");
3304   gMC->Gspos("I005",11,"IT34", -3.3629, -23.3895,-0.15,  idrotm[325],"ONLY");
3305   gMC->Gspos("I005",12,"IT34",  3.4412, -23.9339,-0.15,  idrotm[324],"ONLY");
3306   gMC->Gspos("I005",13,"IT34",  9.8163, -21.4946,-0.15,  idrotm[323],"ONLY");
3307   gMC->Gspos("I005",14,"IT34", 15.8345, -18.274, -0.15,  idrotm[322],"ONLY");
3308   gMC->Gspos("I005",15,"IT34", 19.8788, -12.7753,-0.15,  idrotm[320],"ONLY");
3309   gMC->Gspos("I005",16,"IT34", 23.2005,  -6.8123,-0.15,  idrotm[319],"ONLY");
3310   gMC->Gspos("I005",17,"IT34", 23.63,     0.0,   -0.15,  idrotm[318],"ONLY");
3311   gMC->Gspos("I005",18,"IT34", 23.2005,   6.8123,-0.15,  idrotm[317],"ONLY");
3312   gMC->Gspos("I005",19,"IT34", 19.8788,  12.7753,-0.15,  idrotm[316],"ONLY");
3313   gMC->Gspos("I005",20,"IT34", 15.8345,  18.274, -0.15,  idrotm[315],"ONLY");
3314   gMC->Gspos("I005",21,"IT34",  9.8163,  21.4946,-0.15,  idrotm[314],"ONLY");
3315   gMC->Gspos("I005",22,"IT34",  3.4412,  23.9339,-0.15,  idrotm[334],"ONLY");
3316
3317
3318   // -- build block of the SDD ladder frame holding the electronics
3319
3320   gMC->Gspos("I019", 1,"I018", -1.9,     -1.735,  0.0, idrotm[344], "ONLY");
3321   gMC->Gspos("I019", 2,"I018",  1.987,   -1.5843, 0.0, idrotm[343], "ONLY");
3322   gMC->Gspos("I019", 3,"I018", -0.087,    1.7066, 0.0, idrotm[342], "ONLY");
3323
3324   gMC->Gspos("I020", 1,"I018", -1.9782,  -1.569,  0.0, idrotm[342], "ONLY");
3325   gMC->Gspos("I020", 2,"I018",  1.8824,  -1.735,  0.0, idrotm[344], "ONLY");
3326   gMC->Gspos("I020", 3,"I018",  0.0958,   1.6913, 0.0, idrotm[343], "ONLY");
3327
3328   gMC->Gspos("I021", 1,"I018",  1.0761,   0.0835, 2.6008, idrotm[340], "ONLY");
3329   gMC->Gspos("I021", 2,"I018", -1.0761,   0.0835,-2.8008, idrotm[339], "ONLY");
3330   gMC->Gspos("I021", 3,"I018", -1.0761,   0.0835,-1.0492, idrotm[338], "ONLY");
3331   gMC->Gspos("I021", 4,"I018",  1.0761,   0.0835,-2.8008, idrotm[337], "ONLY");
3332   gMC->Gspos("I021", 5,"I018",  1.0761,   0.0835,-1.0492, idrotm[340], "ONLY");
3333   gMC->Gspos("I021", 6,"I018", -1.0761,   0.0835, 0.8492, idrotm[339], "ONLY");
3334   gMC->Gspos("I021", 7,"I018", -1.0761,   0.0835, 2.6008, idrotm[338], "ONLY");
3335   gMC->Gspos("I021", 8,"I018",  1.0761,   0.0835, 0.8492, idrotm[337], "ONLY");
3336
3337   gMC->Gspos("I022", 1,"I018",  0.0,     -1.79,   3.55,   idrotm[312], "ONLY");
3338   gMC->Gspos("I022", 2,"I018",  0.0,     -1.79,  -0.1,    idrotm[312], "ONLY");
3339
3340   gMC->Gspos("I023", 1,"I018",  0.0,     -1.79,   1.725,  idrotm[341], "ONLY");
3341   gMC->Gspos("I023", 2,"I018",  0.0,     -1.79,  -1.925,  idrotm[341], "ONLY");
3342
3343   gMC->Gspos("I033", 1,"I018",  1.8,     -1.75,   1.35,   0,           "MANY");
3344   gMC->Gspos("I033", 2,"I018", -1.8,     -1.75,  -2.65,   idrotm[345], "MANY");
3345   gMC->Gspos("I033", 3,"I018", -1.8,     -1.75,   1.35,   idrotm[345], "MANY");
3346   gMC->Gspos("I033", 4,"I018",  1.8,     -1.75,  -2.65,   0,           "MANY");
3347
3348   gMC->Gspos("I034", 1,"I018",  1.6,     -1.775,  1.35,   idrotm[312], "ONLY");
3349   gMC->Gspos("I034", 2,"I018", -1.6,     -1.775, -2.65,   idrotm[348], "ONLY");
3350   gMC->Gspos("I034", 3,"I018", -1.6,     -1.775,  1.35,   idrotm[348], "ONLY");
3351   gMC->Gspos("I034", 4,"I018",  1.6,     -1.775, -2.65,   idrotm[312], "ONLY");
3352
3353   gMC->Gspos("I035", 1,"I018",  1.7,     -0.55, I018dits[2]-I035dits[2], 0, "MANY");
3354   gMC->Gspos("I035", 2,"I018", -1.7,     -0.55, I018dits[2]-I035dits[2], 0, "MANY");
3355
3356   gMC->Gspos("I036", 1,"I018",  0.3087,   1.7191, 3.56,   idrotm[346], "ONLY");
3357   gMC->Gspos("I036", 2,"I018",  0.3087,   1.7191,-0.11,   idrotm[346], "ONLY");
3358   gMC->Gspos("I036", 3,"I018", -0.3087,   1.7191,-0.11,   idrotm[347], "ONLY");
3359   gMC->Gspos("I036", 4,"I018", -0.3087,   1.7191, 3.56,   idrotm[347], "ONLY");
3360
3361   gMC->Gspos("I037", 1,"I018",  SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], 0 , "ONLY");
3362   gMC->Gspos("I037", 2,"I018", -SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], 0 , "ONLY");
3363
3364   gMC->Gspos("I038", 1,"I018",  SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], 0 , "ONLY");
3365   gMC->Gspos("I038", 2,"I018", -SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], 0 , "ONLY");
3366
3367   gMC->Gspos("I040", 1,"I018",  1.9204,  -0.7118, 0.0, idrotm[346],"ONLY");
3368   gMC->Gspos("I040", 2,"I018", -1.9204,  -0.7118, 0.0, idrotm[347],"ONLY");
3369   gMC->Gspos("I041", 1,"I018",  SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], idrotm[346], "ONLY");
3370   gMC->Gspos("I041", 2,"I018", -SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], idrotm[347], "ONLY");
3371
3372
3373   // -- build block of the SDD electronics (heat bridge, chips, hybrid, anode microcable)
3374
3375   xI050 = SDD_CoolPipe[0]+SDD_CoolPipe[1]*sin30+I050dits[1]/cos30+I041dits[1];
3376   yI050 = 0;
3377   xI039 = -SDD_CoolPipe[1]/cos30;
3378   yI039 = -I050dits[1]+I039dits[1];
3379   gMC->Gspos("I039", 1,"I050",  xI039, yI039, 0.0, 0, "ONLY");
3380   xI042 = xI039+I039dits[0]-xI042space-I042dits[0];
3381   yI042 = yI039+I039dits[1]+I042dits[1];
3382   xI043 = xI039-I039dits[0]+xI043space+I043dits[0];
3383   yI043 = yI039+I039dits[1]+I043dits[1];
3384   zChipSpace = I042dits[2];
3385   if (zChipSpace < I043dits[2]) {
3386     zChipSpace = I043dits[2];
3387   }
3388   zChipSpace = zChipSpace * 2;
3389   yI051space = (2*I039dits[2] - 4*zChipSpace)/5;
3390   zchip = -I039dits[2] + yI051space + zChipSpace/2.;
3391   for (ichip=0; ichip<4; ichip++) { 
3392     gMC->Gspos("I042", ichip+1, "I050", xI042, yI042, zchip, 0, "ONLY");
3393     gMC->Gspos("I043", ichip+1, "I050", xI043, yI043, zchip, 0, "ONLY");
3394     zchip += zChipSpace + yI051space;
3395   }
3396   xcap = 2*I039dits[0]/5.;
3397   yI051 = yI039+I039dits[1]+I051dits[1];
3398   zI051 = -I039dits[2] + yI051space/3.;
3399   icap = 1;
3400   for (ichip=0; ichip<5; ichip++) { 
3401     xI051 = xI039-I039dits[0]+xcap;
3402     gMC->Gspos("I051", icap++,"I050", xI051, yI051, zI051, 0, "ONLY");
3403     zI051 += yI051space/3.;
3404     gMC->Gspos("I051", icap++,"I050", xI051, yI051, zI051, 0, "ONLY");
3405     xI051 += xcap;
3406     gMC->Gspos("I051", icap++,"I050", xI051, yI051, zI051, 0, "ONLY");
3407     xI051 += xcap;
3408     gMC->Gspos("I051", icap++,"I050", xI051, yI051, zI051, 0, "ONLY");
3409     xI051 += xcap;
3410     gMC->Gspos("I051", icap++,"I050", xI051, yI051, zI051, 0, "ONLY");
3411     zI051 -= yI051space/3.;
3412     if (ichip == 0) {
3413       gMC->Gspos("I051", icap++,"I050", xI051, yI051, zI051, 0, "ONLY");
3414     }
3415     zI051 += zChipSpace + yI051space;
3416   }
3417   xI052 = -I050dits[0]+I052dits[0];
3418   yI052 = yI051+I051dits[1]+I052dits[1];
3419   gMC->Gspos("I052", 1,"I050", xI052, yI052, 0.0, 0, "ONLY");
3420   xI044 = I050dits[0]-I044dits[3];
3421   yI044 = yI052+I052dits[1]+I044dits[2];
3422   gMC->Gspos("I044", 1,"I050", xI044, yI044, 0.0, idrotm[301], "ONLY");
3423   gMC->Gspos("I050", 1,"I018",  xI050,  yI050,  0.0, idrotm[346],"ONLY");
3424   gMC->Gspos("I050", 2,"I018", -xI050,  yI050,  0.0, idrotm[347],"ONLY");
3425
3426
3427   // -- build block of the SDD ladder frame at the end ladders
3428
3429   gMC->Gspos("I021",12,"I024",  1.0761,   0.0836,-0.1242, idrotm[340], "ONLY");
3430   gMC->Gspos("I021",11,"I024", -1.0761,   0.0836,-0.1242, idrotm[338], "ONLY");
3431   gMC->Gspos("I021",13,"I024", -1.0761,   0.0836,-1.8758, idrotm[339], "ONLY");
3432   gMC->Gspos("I021",14,"I024",  1.0761,   0.0836,-1.8758, idrotm[337], "ONLY");
3433
3434   gMC->Gspos("I022", 3,"I024",  0.0,     -1.7899, 0.825,  idrotm[312], "ONLY");
3435
3436   gMC->Gspos("I023", 3,"I024",  0.0,     -1.7899,-1.0,    idrotm[341], "ONLY");
3437
3438   gMC->Gspos("I025", 1,"I024", -1.9,     -1.7349, 0.0,    idrotm[344], "ONLY");
3439   gMC->Gspos("I025", 2,"I024",  1.987,   -1.5842, 0.0,    idrotm[343], "ONLY");
3440
3441   gMC->Gspos("I026", 1,"I024", -1.9782,  -1.5689, 0.0,    idrotm[342], "ONLY");
3442   gMC->Gspos("I026", 2,"I024",  1.8824,  -1.7349, 0.0,    idrotm[344], "ONLY");
3443
3444   gMC->Gspos("I029", 1,"I024", -0.087,    1.7067, I029dits[2]-I024dits[2], idrotm[342], "ONLY");
3445
3446   gMC->Gspos("I030", 1,"I024",  0.0958,   1.6914, I030dits[2]-I024dits[2], idrotm[343], "ONLY");
3447
3448   gMC->Gspos("I031", 1,"I024",  SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], 0 ,"ONLY");
3449   gMC->Gspos("I031", 2,"I024", -SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], 0 ,"ONLY");
3450
3451   gMC->Gspos("I032", 1,"I024",  SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], 0 ,"ONLY");
3452   gMC->Gspos("I032", 2,"I024", -SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], 0 ,"ONLY");
3453
3454
3455   xI424 = I028dits[0]/3.;
3456   yI424 = -I028dits[1]+I424dits[1];
3457   gMC->Gspos("I422", 1,"I421", 0.0, 0.0, 0.0, 0, "ONLY");
3458   gMC->Gspos("I423", 1,"I421", 0.0, 0.0, I421dits[2]-I423dits[2], 0, "ONLY");
3459   gMC->Gspos("I421", 1,"I420", 0.0, 0.0, 0.0, idrotm[312], "ONLY");
3460   gMC->Gspos("I420", 1,"I028", -I028dits[0]/3., I028dits[1]-I420dits[1], 0.0, 0, "ONLY");
3461   gMC->Gspos("I424", 1,"I028", xI424, yI424, 0.0, 0, "ONLY");
3462   gMC->Gspos("I028", 1,"I024", 0.0, I028dits[1]-I024dits[1], I024dits[2]-I028dits[2], 0, "MANY");
3463
3464
3465   // -- build the SDD ladder 3
3466
3467   indI425 = 1;
3468   gMC->Gspos("I024", 1,"I047",  0.0,      0.0,   24.625, 0,           "ONLY");  
3469   gMC->Gspos("I018", 1,"I047",  0.0,      0.0,    3.65,  0,           "ONLY");
3470   gMC->Gspos("I018", 2,"I047",  0.0,      0.0,   10.95,  0,           "ONLY");
3471   gMC->Gspos("I018", 3,"I047",  0.0,      0.0,   18.25,  0,           "ONLY");
3472   gMC->Gspos("I018", 4,"I047",  0.0,      0.0,   -3.65,  0,           "ONLY");
3473   gMC->Gspos("I018", 5,"I047",  0.0,      0.0,  -10.95,  0,           "ONLY");
3474   gMC->Gspos("I018", 6,"I047",  0.0,      0.0,  -18.25,  0,           "ONLY");
3475   gMC->Gspos("I024", 2,"I047",  0.0,      0.0,  -24.625, idrotm[355], "ONLY");
3476   HVname[0] = 'I';
3477   HVname[1] = '3';
3478   HVname[2] = '1';  
3479   HVname[4] = '\0';
3480   for (iSDD=0; iSDD<3; iSDD++) {
3481     HVname[3] = (Char_t)(48+iSDD+5);
3482     dits[0] = 1.350000;
3483     dits[1] = I425dits[1];
3484     dits[2] = (I047dits[2] - 2*I024dits[2] - Z_SDD_lay3[iSDD])/2.;
3485     gMC->Gsvolu(HVname, "BOX ", idtmed[279], dits, 3);
3486     xHV = 0.0;
3487     yHV = -I047dits[1] + (2*iSDD+1)*dits[1];
3488     zHV = I047dits[2] - 2*I024dits[2] - dits[2];
3489     gMC->Gspos(HVname, 1,"I047", xHV, yHV,  zHV, 0, "ONLY");
3490     gMC->Gspos(HVname, 2,"I047", xHV, yHV, -zHV, 0, "ONLY");
3491     gMC->Gspos("I425", indI425++,"I047",  xI424, yHV,   24.625, 0, "ONLY");
3492     gMC->Gspos("I425", indI425++,"I047", -xI424, yHV,  -24.625, 0, "ONLY");
3493   }
3494   LVname[0] = 'I';
3495   LVname[1] = '3';
3496   LVname[2] = '1';  
3497   LVname[4] = '\0';
3498   for (iSDD=0; iSDD<3; iSDD++) {
3499     LVname[3] = (Char_t)(48+iSDD+1);
3500     dits[0] = 1.350000;
3501     dits[1] = 0.004423;
3502     dits[2] = (I047dits[2] - (2*iSDD+1)*I018dits[2] - I039dits[2])/2.;
3503     gMC->Gsvolu(LVname, "BOX ", idtmed[280], dits, 3);
3504     yLV = I018dits[1] - dits[0]*cos30 - dits[1]*sin30;
3505     xLV = xI050 -
3506           fabs(yI050-yLV)*sin30/cos30 +
3507           (I050dits[1]+(2*iSDD+1)*dits[1])/cos30;
3508     zLV = I047dits[2] - dits[2];
3509     gMC->Gspos(LVname, 1,"I047",  xLV, yLV,  zLV, idrotm[346], "ONLY");
3510     gMC->Gspos(LVname, 2,"I047",  xLV, yLV, -zLV, idrotm[346], "ONLY");
3511     gMC->Gspos(LVname, 3,"I047", -xLV, yLV,  zLV, idrotm[347], "ONLY");
3512     gMC->Gspos(LVname, 4,"I047", -xLV, yLV, -zLV, idrotm[347], "ONLY");
3513   }
3514
3515
3516   // -- build the SDD ladder 4
3517
3518
3519   gMC->Gspos("I024", 3,"I048", -0.0001,   0.0,   31.925, 0,           "ONLY");
3520   gMC->Gspos("I018", 7,"I048", -0.0001,   0.0,   -3.65,  0,           "ONLY");
3521   gMC->Gspos("I018", 8,"I048", -0.0001,   0.0,    3.65,  0,           "ONLY");
3522   gMC->Gspos("I018", 9,"I048", -0.0001,   0.0,   10.95,  0,           "ONLY");
3523   gMC->Gspos("I018",10,"I048", -0.0001,   0.0,   18.25,  0,           "ONLY");
3524   gMC->Gspos("I018",11,"I048", -0.0001,   0.0,   25.55,  0,           "ONLY");
3525   gMC->Gspos("I018",12,"I048", -0.0001,   0.0,  -10.95,  0,           "ONLY");
3526   gMC->Gspos("I018",13,"I048", -0.0001,   0.0,  -18.25,  0,           "ONLY");
3527   gMC->Gspos("I018",14,"I048", -0.0001,   0.0,  -25.55,  0,           "ONLY");
3528   gMC->Gspos("I024", 4,"I048", -0.0001,   0.0,  -31.925, idrotm[355], "ONLY");
3529   HVname[0] = 'I';
3530   HVname[1] = '4';
3531   HVname[2] = '1';  
3532   HVname[4] = '\0';  
3533   for (iSDD=0; iSDD<4; iSDD++) {
3534     HVname[3] = (Char_t)(48+iSDD+5);
3535     dits[0] = 1.350000;
3536     dits[1] = I425dits[1];
3537     dits[2] = (I048dits[2] - 2*I024dits[2] - Z_SDD_lay4[iSDD])/2.;
3538     gMC->Gsvolu(HVname, "BOX ", idtmed[279], dits, 3);
3539     xHV = -0.0001;
3540     yHV = -I048dits[1] + (2*iSDD+1)*dits[1];
3541     zHV = I048dits[2] - 2*I024dits[2] - dits[2];
3542     gMC->Gspos(HVname, 1,"I048", xHV, yHV,  zHV, 0, "ONLY");
3543     gMC->Gspos(HVname, 2,"I048", xHV, yHV, -zHV, 0, "ONLY");
3544     gMC->Gspos("I425", indI425++,"I048",  xI424, yHV,   31.925, 0, "ONLY");
3545     gMC->Gspos("I425", indI425++,"I048", -xI424, yHV,  -31.925, 0, "ONLY");
3546   }
3547   LVname[0] = 'I';
3548   LVname[1] = '4';
3549   LVname[2] = '1';  
3550   LVname[4] = '\0';
3551   for (iSDD=0; iSDD<4; iSDD++) {
3552     LVname[3] = (Char_t)(48+iSDD+1);
3553     dits[0] = 1.350000;
3554     dits[1] = 0.004423;
3555     dits[2] = (I048dits[2] - (2*iSDD+1)*I018dits[2] - I039dits[2])/2.;
3556     gMC->Gsvolu(LVname, "BOX ", idtmed[280], dits, 3);
3557     yLV = I018dits[1] - dits[0]*cos30 - dits[1]*sin30;
3558     xLV = xI050 -
3559           fabs(yI050-yLV)*sin30/cos30 +
3560           (I050dits[1]+(2*iSDD+1)*dits[1])/cos30;
3561     zLV = I048dits[2] - dits[2];
3562     gMC->Gspos(LVname, 1,"I048",  xLV, yLV,  zLV, idrotm[346], "ONLY");
3563     gMC->Gspos(LVname, 2,"I048",  xLV, yLV, -zLV, idrotm[346], "ONLY");
3564     gMC->Gspos(LVname, 3,"I048", -xLV, yLV,  zLV, idrotm[347], "ONLY");
3565     gMC->Gspos(LVname, 4,"I048", -xLV, yLV, -zLV, idrotm[347], "ONLY");
3566   }
3567
3568
3569   // -- build the SDD barrel (layers 3 and 4)
3570
3571   gMC->Gspos("I047", 1,"IT34", -3.7528,  16.4422, 0.0,   idrotm[321], "ONLY");
3572   gMC->Gspos("I047", 2,"IT34",-10.8892,  13.6547, 0.0,   idrotm[333], "ONLY");
3573   gMC->Gspos("I047", 3,"IT34",-15.1948,   7.3175, 0.0,   idrotm[336], "ONLY");
3574   gMC->Gspos("I047", 4,"IT34",-17.465,    0.0,    0.0,   idrotm[350], "ONLY");
3575   gMC->Gspos("I047", 5,"IT34",-15.1948,  -7.3174, 0.0,   idrotm[313], "ONLY");
3576   gMC->Gspos("I047", 6,"IT34",-10.8893, -13.6547, 0.0,   idrotm[311], "ONLY");
3577   gMC->Gspos("I047", 7,"IT34", -3.7528, -16.4422, 0.0,   idrotm[310], "ONLY");
3578   gMC->Gspos("I047", 8,"IT34",  3.8863, -17.0271, 0.0,   idrotm[386], "ONLY");
3579   gMC->Gspos("I047", 9,"IT34", 10.5152, -13.1856, 0.0,   idrotm[309], "ONLY");
3580   gMC->Gspos("I047",10,"IT34", 15.7354,  -7.5778, 0.0,   idrotm[308], "ONLY");
3581   gMC->Gspos("I047",11,"IT34", 16.865,    0.0,    0.0,   idrotm[356], "ONLY");
3582   gMC->Gspos("I047",12,"IT34", 15.7354,   7.5778, 0.0,   idrotm[307], "ONLY");
3583   gMC->Gspos("I047",13,"IT34", 10.5152,  13.1856, 0.0,   idrotm[306], "ONLY");
3584   gMC->Gspos("I047",14,"IT34",  3.8863,  17.0271, 0.0,   idrotm[305], "ONLY");
3585
3586   gMC->Gspos("I048", 1,"IT34", -3.6667,  25.5027, 0.0,   idrotm[335], "ONLY");
3587   gMC->Gspos("I048", 2,"IT34",-10.9317,  23.937,  0.0,   idrotm[332], "ONLY");
3588   gMC->Gspos("I048", 3,"IT34",-16.8725,  19.4719, 0.0,   idrotm[331], "ONLY");
3589   gMC->Gspos("I048", 4,"IT34",-22.1376,  14.227,  0.0,   idrotm[366], "ONLY");
3590   gMC->Gspos("I048", 5,"IT34",-24.7213,   7.2588, 0.0,   idrotm[330], "ONLY");
3591   gMC->Gspos("I048", 6,"IT34",-26.315,    0.0,    0.0,   idrotm[350], "ONLY");
3592   gMC->Gspos("I048", 7,"IT34",-24.7213,  -7.2588, 0.0,   idrotm[329], "ONLY");
3593   gMC->Gspos("I048", 8,"IT34",-22.1376, -14.227,  0.0,   idrotm[328], "ONLY");
3594   gMC->Gspos("I048", 9,"IT34",-16.8725, -19.4719, 0.0,   idrotm[327], "ONLY");
3595   gMC->Gspos("I048",10,"IT34",-10.9316, -23.937,  0.0,   idrotm[326], "ONLY");
3596   gMC->Gspos("I048",11,"IT34", -3.6667, -25.5027, 0.0,   idrotm[325], "ONLY");
3597   gMC->Gspos("I048",12,"IT34",  3.745,  -26.0472, 0.0,   idrotm[324], "ONLY");
3598   gMC->Gspos("I048",13,"IT34", 10.7032, -23.4367, 0.0,   idrotm[323], "ONLY");
3599   gMC->Gspos("I048",14,"IT34", 17.2327, -19.8876, 0.0,   idrotm[322], "ONLY");
3600   gMC->Gspos("I048",15,"IT34", 21.6749, -13.9296, 0.0,   idrotm[320], "ONLY");
3601   gMC->Gspos("I048",16,"IT34", 25.2491,  -7.4138, 0.0,   idrotm[319], "ONLY");
3602   gMC->Gspos("I048",17,"IT34", 25.765,    0.0,    0.0,   idrotm[318], "ONLY");
3603   gMC->Gspos("I048",18,"IT34", 25.2491,   7.4138, 0.0,   idrotm[317], "ONLY");
3604   gMC->Gspos("I048",19,"IT34", 21.6749,  13.9296, 0.0,   idrotm[316], "ONLY");
3605   gMC->Gspos("I048",20,"IT34", 17.2327,  19.8876, 0.0,   idrotm[315], "ONLY");
3606   gMC->Gspos("I048",21,"IT34", 10.7032,  23.4367, 0.0,   idrotm[314], "ONLY");
3607   gMC->Gspos("I048",22,"IT34", 3.745,    26.0472, 0.0,   idrotm[334], "ONLY");
3608
3609   
3610   // --- Place SSD volumes into their mother volume IT56  
3611
3612
3613   gMC->Gspos("I570",14,"IT56",-28.0681,-36.0619,-0.27,idrotm[566],"ONLY"); 
3614   gMC->Gspos("I570",15,"IT56",-21.677,-40.0556,-0.27,idrotm[567],"ONLY");
3615   gMC->Gspos("I570",16,"IT56",-14.838,-43.2217,-0.27,idrotm[568],"ONLY");
3616   gMC->Gspos("I570",17,"IT56",-7.4965,-44.9238,-0.27,idrotm[569],"ONLY");
3617   gMC->Gspos("I570",18,"IT56",-0.27,-45.6977,-0.27,idrotm[533],"ONLY");
3618   gMC->Gspos("I570",19,"IT56",7.4965,-44.9238,-0.27,idrotm[534],"ONLY");
3619   gMC->Gspos("I570",20,"IT56",14.838,-43.2217,-0.27,idrotm[535],"ONLY");
3620   gMC->Gspos("I570",21,"IT56",21.677,-40.0556,-0.27,idrotm[623],"ONLY");
3621   gMC->Gspos("I570",22,"IT56",28.0681,-36.0619,-0.27,idrotm[537],"ONLY");
3622   gMC->Gspos("I570",23,"IT56",33.5085,-30.8468,-0.27,idrotm[538],"ONLY");
3623   gMC->Gspos("I570",24,"IT56",38.2566,-24.9943,-0.27,idrotm[539],"ONLY");
3624   gMC->Gspos("I570",25,"IT56",41.7089,-18.2952,-0.27,idrotm[540],"ONLY");
3625   gMC->Gspos("I570",26,"IT56",44.2994,-11.2181,-0.27,idrotm[541],"ONLY");
3626   gMC->Gspos("I570",27,"IT56",45.3894,-3.7611,-0.27,idrotm[542],"ONLY");
3627   gMC->Gspos("I570",28,"IT56",45.5416,3.7737,-0.27,idrotm[543],"ONLY");
3628   gMC->Gspos("I570",29,"IT56",44.1513,11.1806,-0.27,idrotm[544],"ONLY");
3629   gMC->Gspos("I570",30,"IT56",41.8487,18.3566,-0.27,idrotm[545],"ONLY");
3630   gMC->Gspos("I570",31,"IT56",38.1287,24.9107,-0.27,idrotm[546],"ONLY");
3631   gMC->Gspos("I570",32,"IT56",33.6209,30.9502,-0.27,idrotm[547],"ONLY");
3632   gMC->Gspos("I570",33,"IT56",27.9743,35.9414,-0.27,idrotm[548],"ONLY");
3633   gMC->Gspos("I570",34,"IT56",21.7497,40.1899,-0.27,idrotm[549],"ONLY");
3634   gMC->Gspos("I570",35,"IT56",14.7884,43.0772,-0.27,idrotm[550],"ONLY");
3635   gMC->Gspos("I570",36,"IT56",7.5216,45.0744,-0.27,idrotm[551],"ONLY");
3636   gMC->Gspos("I570",37,"IT56",-0.27,45.545,-0.27,0,"ONLY");
3637   gMC->Gspos("I570",38,"IT56",-7.5216,45.0744,-0.27,idrotm[552],"ONLY");
3638   gMC->Gspos("I570",1,"IT56",-14.7884,43.0772,-0.27,idrotm[553],"ONLY");
3639   gMC->Gspos("I570",2,"IT56",-21.7497,40.1899,-0.27,idrotm[620],"ONLY");
3640   gMC->Gspos("I570",3,"IT56",-27.9743,35.9414,-0.27,idrotm[555],"ONLY");
3641   gMC->Gspos("I570",4,"IT56",-33.6209,30.9502,-0.27,idrotm[556],"ONLY");
3642   gMC->Gspos("I570",5,"IT56",-38.1287,24.9108,-0.27,idrotm[557],"ONLY");
3643   gMC->Gspos("I570",6,"IT56",-41.8487,18.3566,-0.27,idrotm[558],"ONLY");
3644   gMC->Gspos("I570",7,"IT56",-44.1513,11.1806,-0.27,idrotm[559],"ONLY");
3645   gMC->Gspos("I570",8,"IT56",-45.5416,3.7737,-0.27,idrotm[560],"ONLY");
3646   gMC->Gspos("I570",9,"IT56",-45.3894,-3.7611,-0.27,idrotm[561],"ONLY");
3647   gMC->Gspos("I570",10,"IT56",-44.2994,-11.2181,-0.27,idrotm[562],"ONLY");
3648   gMC->Gspos("I570",11,"IT56",-41.7089,-18.2952,-0.27,idrotm[563],"ONLY");
3649   gMC->Gspos("I570",12,"IT56",-38.2566,-24.9943,-0.27,idrotm[564],"ONLY");
3650   gMC->Gspos("I570",13,"IT56",-33.5086,-30.8468,-0.27,idrotm[565],"ONLY");
3651   gMC->Gspos("I569",8,"IT56",-43.5484,3.6085,0.0,idrotm[560],"ONLY");
3652   gMC->Gspos("I569",9,"IT56",-43.3963,-3.5959,0.0,idrotm[561],"ONLY");
3653   gMC->Gspos("I569",10,"IT56",-42.3606,-10.7271,0.0,idrotm[562],"ONLY");
3654   gMC->Gspos("I569",11,"IT56",-39.8773,-17.4918,0.0,idrotm[563],"ONLY");
3655   gMC->Gspos("I569",12,"IT56",-36.5823,-23.9004,0.0,idrotm[564],"ONLY");
3656   gMC->Gspos("I569",13,"IT56",-32.0371,-29.4922,0.0,idrotm[565],"ONLY");
3657   gMC->Gspos("I569",14,"IT56",-26.8397,-34.4836,0.0,idrotm[566],"ONLY");
3658   gMC->Gspos("I569",15,"IT56",-20.7251,-38.2967,0.0,idrotm[567],"ONLY");
3659   gMC->Gspos("I569",16,"IT56",-14.1886,-41.33,0.0,idrotm[568],"ONLY");
3660   gMC->Gspos("I569",17,"IT56",-7.1673,-42.9511,0.0,idrotm[569],"ONLY");
3661   gMC->Gspos("I569",18,"IT56",0.0,-43.6977,0.0,idrotm[533],"ONLY");
3662   gMC->Gspos("I569",19,"IT56",7.1673,-42.9511,0.0,idrotm[534],"ONLY");
3663   gMC->Gspos("I569",20,"IT56",14.1886,-41.33,0.0,idrotm[535],"ONLY");
3664   gMC->Gspos("I569",21,"IT56",20.7251,-38.2967,0.0,idrotm[623],"ONLY");
3665   gMC->Gspos("I569",22,"IT56",26.8397,-34.4836,0.0,idrotm[537],"ONLY");
3666   gMC->Gspos("I569",23,"IT56",32.0371,-29.4922,0.0,idrotm[538],"ONLY");
3667   gMC->Gspos("I569",24,"IT56",36.5822,-23.9004,0.0,idrotm[539],"ONLY");
3668   gMC->Gspos("I569",25,"IT56",39.8773,-17.4918,0.0,idrotm[540],"ONLY");
3669   gMC->Gspos("I569",26,"IT56",42.3606,-10.7272,0.0,idrotm[541],"ONLY");
3670   gMC->Gspos("I569",27,"IT56",43.3963,-3.5959,0.0,idrotm[542],"ONLY");
3671   gMC->Gspos("I569",28,"IT56",43.5484,3.6085,0.0,idrotm[543],"ONLY");
3672   gMC->Gspos("I569",29,"IT56",42.2125,10.6897,0.0,idrotm[544],"ONLY");
3673   gMC->Gspos("I569",30,"IT56",40.0172,17.5532,0.0,idrotm[545],"ONLY");
3674   gMC->Gspos("I569",31,"IT56",36.4544,23.8169,0.0,idrotm[546],"ONLY");
3675   gMC->Gspos("I569",32,"IT56",32.1494,29.5956,0.0,idrotm[547],"ONLY");
3676   gMC->Gspos("I569",33,"IT56",26.7459,34.3631,0.0,idrotm[548],"ONLY");
3677   gMC->Gspos("I569",34,"IT56",20.7978,38.431,0.0,idrotm[549],"ONLY");
3678   gMC->Gspos("I569",35,"IT56",14.139,41.1856,0.0,idrotm[550],"ONLY");
3679   gMC->Gspos("I569",36,"IT56",7.1924,43.1017,0.0,idrotm[551],"ONLY");
3680   gMC->Gspos("I569",37,"IT56",0.0,43.545,0.0,0,"ONLY");
3681   gMC->Gspos("I569",38,"IT56",-7.1924,43.1017,0.0,idrotm[552],"ONLY");
3682   gMC->Gspos("I569",1,"IT56",-14.139,41.1856,0.0,idrotm[553],"ONLY");
3683   gMC->Gspos("I569",2,"IT56",-20.7978,38.431,0.0,idrotm[620],"ONLY");
3684   gMC->Gspos("I569",3,"IT56",-26.7459,34.3631,0.0,idrotm[555],"ONLY");
3685   gMC->Gspos("I569",4,"IT56",-32.1494,29.5956,0.0,idrotm[556],"ONLY");
3686   gMC->Gspos("I569",5,"IT56",-36.4544,23.8169,0.0,idrotm[557],"ONLY");
3687   gMC->Gspos("I569",6,"IT56",-40.0172,17.5532,0.0,idrotm[558],"ONLY");
3688   gMC->Gspos("I569",7,"IT56",-42.2125,10.6897,0.0,idrotm[559],"ONLY");
3689   gMC->Gspos("I571",15,"IT56",-21.2916,-34.387,0.0,idrotm[501],"ONLY");
3690   gMC->Gspos("I571",14,"IT56",-27.351,-30.0026,0.0,idrotm[503],"ONLY");
3691   gMC->Gspos("I571",13,"IT56",-32.2758,-24.3735,0.0,idrotm[504],"ONLY");
3692   gMC->Gspos("I571",12,"IT56",-36.3422,-18.0963,0.0,idrotm[505],"ONLY");
3693   gMC->Gspos("I571",11,"IT56",-38.901,-11.0683,0.0,idrotm[506],"ONLY");
3694   gMC->Gspos("I571",10,"IT56",-40.4252,-3.7459,0.0,idrotm[507],"ONLY");
3695   gMC->Gspos("I571",9,"IT56",-40.2725,3.7318,0.0,idrotm[508],"ONLY");
3696   gMC->Gspos("I571",8,"IT56",-39.0486,11.1103,0.0,idrotm[509],"ONLY");
3697   gMC->Gspos("I571",7,"IT56",-36.2049,18.0279,0.0,idrotm[510],"ONLY");
3698   gMC->Gspos("I571",6,"IT56",-32.3982,24.466,0.0,idrotm[511],"ONLY");
3699   gMC->Gspos("I571",5,"IT56",-27.2476,29.8892,0.0,idrotm[512],"ONLY");
3700   gMC->Gspos("I571",4,"IT56",-21.3723,34.5175,0.0,idrotm[513],"ONLY");
3701   gMC->Gspos("I571",3,"IT56",-14.6104,37.7138,0.0,idrotm[653],"ONLY");
3702   gMC->Gspos("I571",2,"IT56",-7.4599,39.9072,0.0,idrotm[514],"ONLY");
3703   gMC->Gspos("I571",1,"IT56",0.0,40.445,0.0,0,"ONLY");
3704   gMC->Gspos("I571",34,"IT56",7.46,39.9071,0.0,idrotm[515],"ONLY");
3705   gMC->Gspos("I571",33,"IT56",14.6104,37.7138,0.0,idrotm[516],"ONLY");
3706   gMC->Gspos("I571",32,"IT56",21.3723,34.5175,0.0,idrotm[517],"ONLY");
3707   gMC->Gspos("I571",31,"IT56",27.2476,29.8892,0.0,idrotm[518],"ONLY");
3708   gMC->Gspos("I571",30,"IT56",32.3983,24.466,0.0,idrotm[519],"ONLY");
3709   gMC->Gspos("I571",29,"IT56",36.2049,18.0279,0.0,idrotm[520],"ONLY");
3710   gMC->Gspos("I571",28,"IT56",39.0486,11.1103,0.0,idrotm[521],"ONLY");
3711   gMC->Gspos("I571",27,"IT56",40.2725,3.7318,0.0,idrotm[522],"ONLY");
3712   gMC->Gspos("I571",26,"IT56",40.4252,-3.746,0.0,idrotm[523],"ONLY");
3713   gMC->Gspos("I571",25,"IT56",38.901,-11.0683,0.0,idrotm[524],"ONLY");
3714   gMC->Gspos("I571",24,"IT56",36.3422,-18.0963,0.0,idrotm[525],"ONLY");
3715   gMC->Gspos("I571",23,"IT56",32.2758,-24.3736,0.0,idrotm[526],"ONLY");
3716   gMC->Gspos("I571",22,"IT56",27.351,-30.0026,0.0,idrotm[527],"ONLY");
3717   gMC->Gspos("I571",21,"IT56",21.2915,-34.387,0.0,idrotm[528],"ONLY");
3718   gMC->Gspos("I571",20,"IT56",14.6658,-37.8569,0.0,idrotm[618],"ONLY");
3719   gMC->Gspos("I571",19,"IT56",7.4317,-39.7563,0.0,idrotm[529],"ONLY");
3720   gMC->Gspos("I571",18,"IT56",0.0,-40.5984,0.0,idrotm[533],"ONLY");
3721   gMC->Gspos("I571",17,"IT56",-7.4318,-39.7563,0.0,idrotm[530],"ONLY");
3722   gMC->Gspos("I571",16,"IT56",-14.6659,-37.8569,0.0,idrotm[531],"ONLY");
3723   gMC->Gspos("I565",13,"IT56",-30.6798,-23.1683,0.0,idrotm[504],"ONLY");
3724   gMC->Gspos("I565",12,"IT56",-34.5519,-17.2048,0.0,idrotm[505],"ONLY");
3725   gMC->Gspos("I565",11,"IT56",-36.9774,-10.521,0.0,idrotm[506],"ONLY");
3726   gMC->Gspos("I565",10,"IT56",-38.4338,-3.5614,0.0,idrotm[507],"ONLY");
3727   gMC->Gspos("I565",9,"IT56",-38.281,3.5473,0.0,idrotm[508],"ONLY");
3728   gMC->Gspos("I565",8,"IT56",-37.1249,10.563,0.0,idrotm[509],"ONLY");
3729   gMC->Gspos("I565",7,"IT56",-34.4146,17.1364,0.0,idrotm[510],"ONLY");
3730   gMC->Gspos("I565",6,"IT56",-30.8022,23.2608,0.0,idrotm[511],"ONLY");
3731   gMC->Gspos("I565",5,"IT56",-25.9002,28.4112,0.0,idrotm[512],"ONLY");
3732   gMC->Gspos("I565",4,"IT56",-20.3195,32.817,0.0,idrotm[513],"ONLY");
3733   gMC->Gspos("I565",3,"IT56",-13.8879,35.8489,0.0,idrotm[653],"ONLY");
3734   gMC->Gspos("I565",2,"IT56",-7.0924,37.9412,0.0,idrotm[514],"ONLY");
3735   gMC->Gspos("I565",1,"IT56",0.0,38.445,0.0,0,"ONLY");
3736   gMC->Gspos("I565",34,"IT56",7.0925,37.9412,0.0,idrotm[515],"ONLY");
3737   gMC->Gspos("I565",33,"IT56",13.888,35.8489,0.0,idrotm[516],"ONLY");
3738   gMC->Gspos("I565",32,"IT56",20.3195,32.817,0.0,idrotm[517],"ONLY");
3739   gMC->Gspos("I565",31,"IT56",25.9002,28.4112,0.0,idrotm[518],"ONLY");
3740   gMC->Gspos("I565",30,"IT56",30.8022,23.2607,0.0,idrotm[519],"ONLY");
3741   gMC->Gspos("I565",29,"IT56",34.4146,17.1364,0.0,idrotm[520],"ONLY");
3742   gMC->Gspos("I565",28,"IT56",37.125,10.5629,0.0,idrotm[521],"ONLY");
3743   gMC->Gspos("I565",27,"IT56",38.281,3.5472,0.0,idrotm[522],"ONLY");
3744   gMC->Gspos("I565",26,"IT56",38.4338,-3.5614,0.0,idrotm[523],"ONLY");
3745   gMC->Gspos("I565",25,"IT56",36.9774,-10.521,0.0,idrotm[524],"ONLY");
3746   gMC->Gspos("I565",24,"IT56",34.5519,-17.2048,0.0,idrotm[525],"ONLY");
3747   gMC->Gspos("I565",23,"IT56",30.6798,-23.1683,0.0,idrotm[526],"ONLY");
3748   gMC->Gspos("I565",22,"IT56",26.0036,-28.5246,0.0,idrotm[527],"ONLY");
3749   gMC->Gspos("I565",21,"IT56",20.2387,-32.6866,0.0,idrotm[528],"ONLY");
3750   gMC->Gspos("I565",20,"IT56",13.9433,-35.992,0.0,idrotm[618],"ONLY");
3751   gMC->Gspos("I565",19,"IT56",7.0642,-37.7904,0.0,idrotm[529],"ONLY");
3752   gMC->Gspos("I565",18,"IT56",0.0,-38.5984,0.0,idrotm[533],"ONLY");
3753   gMC->Gspos("I565",17,"IT56",-7.0643,-37.7904,0.0,idrotm[530],"ONLY");
3754   gMC->Gspos("I565",16,"IT56",-13.9434,-35.992,0.0,idrotm[531],"ONLY");
3755   gMC->Gspos("I565",15,"IT56",-20.2387,-32.6866,0.0,idrotm[501],"ONLY");
3756   gMC->Gspos("I565",14,"IT56",-26.0036,-28.5246,0.0,idrotm[503],"ONLY");
3757   gMC->Gspos("I553",1,"I570",0.005,0.0,52.8453,0,"ONLY");
3758   gMC->Gspos("I523",1,"I570",0.0,0.0,46.9203+0.82,0,"ONLY");
3759   gMC->Gspos("I523",2,"I570",0.0,0.0,43.0103+0.82,0,"ONLY");
3760   gMC->Gspos("I523",3,"I570",0.0,0.0,39.1003+0.82,0,"ONLY");
3761   gMC->Gspos("I523",4,"I570",0.0,0.0,35.1903+0.82,0,"ONLY");
3762   gMC->Gspos("I523",5,"I570",0.0,0.0,31.2803+0.82,0,"ONLY");
3763   gMC->Gspos("I523",6,"I570",0.0,0.0,27.3703+0.82,0,"ONLY");
3764   gMC->Gspos("I523",7,"I570",0.0,0.0,23.4603+0.82,0,"ONLY");
3765   gMC->Gspos("I523",8,"I570",0.0,0.0,19.5503+0.82,0,"ONLY");
3766   gMC->Gspos("I523",9,"I570",0.0,0.0,15.6403+0.82,0,"ONLY");
3767   gMC->Gspos("I523",10,"I570",0.0,0.0,11.7303+0.82,0,"ONLY");
3768   gMC->Gspos("I523",11,"I570",0.0,0.0,7.8203+0.82,0,"ONLY");
3769   gMC->Gspos("I523",12,"I570",0.0,0.0,3.9103+0.82,0,"ONLY");
3770   gMC->Gspos("I523",13,"I570",0.0,0.0,0.0003+0.82,0,"ONLY");
3771   gMC->Gspos("I523",14,"I570",0.0,0.0,-3.9097+0.82,0,"ONLY");
3772   gMC->Gspos("I523",15,"I570",0.0,0.0,-7.8197+0.82,0,"ONLY");
3773   gMC->Gspos("I523",16,"I570",0.0,0.0,-11.7297+0.82,0,"ONLY");
3774   gMC->Gspos("I523",17,"I570",0.0,0.0,-15.6397+0.82,0,"ONLY");
3775   gMC->Gspos("I523",18,"I570",0.0,0.0,-19.5497+0.82,0,"ONLY");
3776   gMC->Gspos("I523",19,"I570",0.0,0.0,-23.4597+0.82,0,"ONLY");
3777   gMC->Gspos("I523",20,"I570",0.0,0.0,-27.3697+0.82,0,"ONLY");
3778   gMC->Gspos("I523",21,"I570",0.0,0.0,-31.2797+0.82,0,"ONLY");
3779   gMC->Gspos("I523",22,"I570",0.0,0.0,-35.1897+0.82,0,"ONLY");
3780   gMC->Gspos("I523",23,"I570",0.0,0.0,-39.0997+0.82,0,"ONLY");
3781   gMC->Gspos("I523",24,"I570",0.0,0.0,-43.0097+0.82,0,"ONLY");
3782   gMC->Gspos("I523",25,"I570",0.0,0.0,-46.9197+0.82,0,"ONLY");
3783   gMC->Gspos("I553",2,"I570",-0.005,0.0,-51.2047,idrotm[570],"ONLY");
3784   gMC->Gspos("I566",1,"I569",0.0,-0.03,46.9203,idrotm[532],"ONLY");
3785   gMC->Gspos("I566",2,"I569",0.0,0.03,43.0103,0,"ONLY");
3786   gMC->Gspos("I566",3,"I569",0.0,-0.03,39.1003,idrotm[532],"ONLY");
3787   gMC->Gspos("I566",4,"I569",0.0,0.03,35.1903,0,"ONLY");
3788   gMC->Gspos("I566",5,"I569",0.0,-0.03,31.2803,idrotm[532],"ONLY");
3789   gMC->Gspos("I566",6,"I569",0.0,0.03,27.3703,0,"ONLY");
3790   gMC->Gspos("I566",7,"I569",0.0,-0.03,23.4603,idrotm[532],"ONLY");
3791   gMC->Gspos("I566",8,"I569",0.0,0.03,19.5503,0,"ONLY");
3792   gMC->Gspos("I566",9,"I569",0.0,-0.03,15.6403,idrotm[532],"ONLY");
3793   gMC->Gspos("I566",10,"I569",0.0,0.03,11.7303,0,"ONLY");
3794   gMC->Gspos("I566",11,"I569",0.0,-0.03,7.8203,idrotm[532],"ONLY");
3795   gMC->Gspos("I566",12,"I569",0.0,0.03,3.9103,0,"ONLY");
3796   gMC->Gspos("I566",13,"I569",0.0,-0.03,0.0003,0,"ONLY");
3797   gMC->Gspos("I566",14,"I569",0.0,0.03,-3.9097,0,"ONLY");
3798   gMC->Gspos("I566",15,"I569",0.0,-0.03,-7.8197,idrotm[532],"ONLY");
3799   gMC->Gspos("I566",16,"I569",0.0,0.03,-11.7297,0,"ONLY");
3800   gMC->Gspos("I566",17,"I569",0.0,-0.03,-15.6397,0,"ONLY");
3801   gMC->Gspos("I566",18,"I569",0.0,0.03,-19.5497,0,"ONLY");
3802   gMC->Gspos("I566",19,"I569",0.0,-0.03,-23.4597,idrotm[532],"ONLY");
3803   gMC->Gspos("I566",20,"I569",0.0,0.03,-27.3697,0,"ONLY");
3804   gMC->Gspos("I566",21,"I569",0.0,-0.03,-31.2797,idrotm[532],"ONLY");
3805   gMC->Gspos("I566",22,"I569",0.0,0.03,-35.1897,0,"ONLY");
3806   gMC->Gspos("I566",23,"I569",0.0,-0.03,-39.0997,0,"ONLY");
3807   gMC->Gspos("I566",24,"I569",0.0,0.03,-43.0097,0,"ONLY");
3808   gMC->Gspos("I566",25,"I569",0.0,-0.03,-46.9197,idrotm[532],"ONLY");
3809   gMC->Gspos("I544",1,"I571",0.0101,0.0,43.125,0,"ONLY");
3810   gMC->Gspos("I516",20,"I571",0.0001,0.0,39.1-1.08,0,"ONLY");
3811   gMC->Gspos("I516",19,"I571",0.0001,0.0,35.19-1.08,0,"ONLY");
3812   gMC->Gspos("I516",18,"I571",0.0001,0.0,31.28-1.08,0,"ONLY");
3813   gMC->Gspos("I516",17,"I571",0.0001,0.0,27.37-1.08,0,"ONLY");
3814   gMC->Gspos("I516",16,"I571",0.0001,0.0,23.46-1.08,0,"ONLY");
3815   gMC->Gspos("I516",15,"I571",0.0001,0.0,19.55-1.08,0,"ONLY");
3816   gMC->Gspos("I516",14,"I571",0.0001,0.0,15.64-1.08,0,"ONLY");
3817   gMC->Gspos("I516",13,"I571",0.0001,0.0,11.73-1.08,0,"ONLY");
3818   gMC->Gspos("I516",12,"I571",0.0001,0.0,7.82-1.08,0,"ONLY");
3819   gMC->Gspos("I516",11,"I571",0.0001,0.0,3.91-1.08,0,"ONLY");
3820   gMC->Gspos("I516",10,"I571",0.0001,0.0,0.0-1.08,0,"ONLY");
3821   gMC->Gspos("I516",9,"I571",0.0001,0.0,-3.91-1.08,0,"ONLY");
3822   gMC->Gspos("I516",8,"I571",0.0001,0.0,-7.82-1.08,0,"ONLY");
3823   gMC->Gspos("I516",7,"I571",0.0001,0.0,-11.73-1.08,0,"ONLY");
3824   gMC->Gspos("I516",6,"I571",0.0001,0.0,-15.64-1.08,0,"ONLY");
3825   gMC->Gspos("I516",5,"I571",0.0001,0.0,-19.55-1.08,0,"ONLY");
3826   gMC->Gspos("I516",4,"I571",0.0001,0.0,-23.46-1.08,0,"ONLY");
3827   gMC->Gspos("I516",3,"I571",0.0001,0.0,-27.37-1.08,0,"ONLY");
3828   gMC->Gspos("I516",2,"I571",0.0001,0.0,-31.28-1.08,0,"ONLY");
3829   gMC->Gspos("I516",1,"I571",0.0001,0.0,-35.19-1.08,0,"ONLY");
3830   gMC->Gspos("I544",2,"I571",-0.0099,0.0,-41.375,idrotm[570],"ONLY");
3831   gMC->Gspos("I562",1,"I565",0.0,0.03,41.1546,0,"ONLY");
3832   gMC->Gspos("I562",2,"I565",0.0,-0.03,37.2246,0,"ONLY");
3833   gMC->Gspos("I562",3,"I565",0.0,0.03,33.3146,0,"ONLY");
3834   gMC->Gspos("I562",4,"I565",0.0,-0.03,29.3846,0,"ONLY");
3835   gMC->Gspos("I562",5,"I565",0.0,0.03,25.4746,0,"ONLY");
3836   gMC->Gspos("I562",6,"I565",0.0,-0.03,21.5446,0,"ONLY");
3837   gMC->Gspos("I562",7,"I565",0.0,0.03,17.6346,0,"ONLY");
3838   gMC->Gspos("I562",8,"I565",0.0,-0.03,13.7046,0,"ONLY");
3839   gMC->Gspos("I562",9,"I565",0.0,0.03,9.7946,0,"ONLY");
3840   gMC->Gspos("I562",10,"I565",0.0,-0.03,5.8645,0,"ONLY");
3841   gMC->Gspos("I562",11,"I565",0.0,0.03,1.9546,0,"ONLY");
3842   gMC->Gspos("I562",12,"I565",0.0,-0.03,-1.9754,0,"ONLY");
3843   gMC->Gspos("I562",13,"I565",0.0,0.03,-5.8855,0,"ONLY");
3844   gMC->Gspos("I562",14,"I565",0.0,-0.03,-9.8154,0,"ONLY");
3845   gMC->Gspos("I562",15,"I565",0.0,0.03,-13.7254,0,"ONLY");
3846   gMC->Gspos("I562",16,"I565",0.0,-0.03,-17.6555,0,"ONLY");
3847   gMC->Gspos("I562",17,"I565",0.0,0.03,-21.5655,0,"ONLY");
3848   gMC->Gspos("I562",18,"I565",0.0,-0.03,-25.4954,0,"ONLY");
3849   gMC->Gspos("I562",19,"I565",0.0,0.03,-29.4054,0,"ONLY");
3850   gMC->Gspos("I562",20,"I565",0.0,-0.03,-33.3354,0,"ONLY");
3851   gMC->Gspos("I562",21,"I565",0.0,0.03,-37.2454,0,"ONLY");
3852   gMC->Gspos("I562",22,"I565",0.0,-0.03,-41.1554,0,"ONLY");
3853   gMC->Gspos("I559",1,"I553",2.25,-1.615,0.0,0,"ONLY");
3854   gMC->Gspos("I560",1,"I553",2.25,-1.615,0.0,0,"ONLY");
3855   gMC->Gspos("I560",2,"I553",-2.25,-1.615,0.0,idrotm[573],"ONLY");
3856   gMC->Gspos("I558",1,"I553",-1.7167,-1.52,0.0,idrotm[583],"ONLY");
3857   gMC->Gspos("I557",1,"I553",-1.8533,-1.341,0.0,idrotm[581],"ONLY");
3858   gMC->Gspos("I558",2,"I553",1.8367,-1.3122,0.0,idrotm[575],"ONLY");
3859   gMC->Gspos("I557",2,"I553",1.75,-1.52,0.0,idrotm[583],"ONLY");
3860   gMC->Gspos("I558",3,"I553",-0.12,1.6613,0.0,idrotm[581],"ONLY");
3861   gMC->Gspos("I557",3,"I553",0.1034,1.6901,0.0,idrotm[575],"ONLY");
3862   gMC->Gspos("I556",3,"I553",-1.031,0.2033,-2.203,idrotm[580],"ONLY");
3863   gMC->Gspos("I556",1,"I553",1.0311,0.2033,-0.287,idrotm[576],"ONLY");
3864   gMC->Gspos("I554",1,"I553",0.0,-1.58,0.71,0,"ONLY");
3865   gMC->Gspos("I555",1,"I553",-0.0072,-1.58,-1.2311,idrotm[633],"ONLY");
3866   gMC->Gspos("I556",2,"I553",1.0311,0.2033,-2.203,idrotm[577],"ONLY");
3867   gMC->Gspos("I556",4,"I553",-1.031,0.2033,-0.287,idrotm[579],"ONLY");
3868   gMC->Gspos("I559",2,"I553",-2.25,-1.615,0.0,idrotm[573],"ONLY");
3869   gMC->Gspos("I561",1,"I553",2.1,-1.615,-0.24,0,"MANY");
3870   gMC->Gspos("I561",2,"I553",-2.1,-1.615,-0.24,idrotm[573],"MANY");
3871   gMC->Gspos("I519",37,"I523",0.0001,-1.79,-0.99,idrotm[586],"ONLY");
3872   gMC->Gspos("I519",36,"I523",-3.2986,-1.79,-1.2943,0,"ONLY");
3873   gMC->Gspos("I519",35,"I523",-3.2986,-1.71,-1.2943,0,"ONLY");
3874   gMC->Gspos("I519",34,"I523",-3.2286,-1.71,-1.2943,0,"ONLY");
3875   gMC->Gspos("I519",33,"I523",-3.2286,-1.79,-1.2943,0,"ONLY");
3876   gMC->Gspos("I519",32,"I523",-3.1586,-1.79,-1.2943,0,"ONLY");
3877   gMC->Gspos("I519",31,"I523",-3.1586,-1.71,-1.2943,0,"ONLY");
3878   gMC->Gspos("I519",30,"I523",-1.3436,-1.71,-1.2943,0,"ONLY");
3879   gMC->Gspos("I519",29,"I523",-1.3436,-1.79,-1.2943,0,"ONLY");
3880   gMC->Gspos("I519",28,"I523",-1.2736,-1.79,-1.2943,0,"ONLY");
3881   gMC->Gspos("I519",27,"I523",-1.2736,-1.71,-1.2943,0,"ONLY");
3882   gMC->Gspos("I519",26,"I523",-1.2036,-1.71,-1.2943,0,"ONLY");
3883   gMC->Gspos("I519",25,"I523",-1.2036,-1.79,-1.2943,0,"ONLY");
3884   gMC->Gspos("I519",24,"I523",-1.0458,-1.79,-1.2943,0,"ONLY");
3885   gMC->Gspos("I519",23,"I523",-1.0458,-1.71,-1.2943,0,"ONLY");
3886   gMC->Gspos("I519",22,"I523",-0.9758,-1.71,-1.2943,0,"ONLY");
3887   gMC->Gspos("I519",21,"I523",-0.9758,-1.79,-1.2943,0,"ONLY");
3888   gMC->Gspos("I519",20,"I523",-0.9058,-1.79,-1.2943,0,"ONLY");
3889   gMC->Gspos("I519",19,"I523",-0.9058,-1.71,-1.2943,0,"ONLY");
3890   gMC->Gspos("I519",18,"I523",0.9092,-1.71,-1.2943,0,"ONLY");
3891   gMC->Gspos("I519",17,"I523",0.9092,-1.79,-1.2943,0,"ONLY");
3892   gMC->Gspos("I519",16,"I523",0.9792,-1.79,-1.2943,0,"ONLY");
3893   gMC->Gspos("I519",15,"I523",0.9792,-1.71,-1.2943,0,"ONLY");
3894   gMC->Gspos("I519",14,"I523",1.0492,-1.71,-1.2943,0,"ONLY");
3895   gMC->Gspos("I519",13,"I523",1.0492,-1.79,-1.2943,0,"ONLY");
3896   gMC->Gspos("I519",12,"I523",1.207,-1.79,-1.2943,0,"ONLY");
3897   gMC->Gspos("I519",11,"I523",1.207,-1.71,-1.2943,0,"ONLY");
3898   gMC->Gspos("I519",10,"I523",1.277,-1.71,-1.2943,0,"ONLY");
3899   gMC->Gspos("I519",9,"I523",1.277,-1.79,-1.2943,0,"ONLY");
3900   gMC->Gspos("I519",8,"I523",1.347,-1.79,-1.2943,0,"ONLY");
3901   gMC->Gspos("I519",7,"I523",1.347,-1.71,-1.2943,0,"ONLY");
3902   gMC->Gspos("I519",6,"I523",3.162,-1.71,-1.2943,0,"ONLY");
3903   gMC->Gspos("I519",5,"I523",3.162,-1.79,-1.2943,0,"ONLY");
3904   gMC->Gspos("I519",4,"I523",3.232,-1.79,-1.2943,0,"ONLY");
3905   gMC->Gspos("I519",3,"I523",3.232,-1.71,-1.2943,0,"ONLY");
3906   gMC->Gspos("I521",12,"I523",-2.8209,-1.7925,-0.982,0,"ONLY");
3907   gMC->Gspos("I521",11,"I523",-1.6895,-1.7925,-0.982,0,"ONLY");
3908   gMC->Gspos("I521",10,"I523",-0.5631,-1.7925,-0.982,0,"ONLY");
3909   gMC->Gspos("I521",9,"I523",0.5633,-1.7925,-0.982,0,"ONLY");
3910   gMC->Gspos("I521",8,"I523",1.6861,-1.7925,-0.982,0,"ONLY");
3911   gMC->Gspos("I521",7,"I523",2.8161,-1.7925,-0.982,0,"ONLY");
3912   gMC->Gspos("I519",2,"I523",3.302,-1.79,-1.2943,0,"ONLY");
3913   gMC->Gspos("I520",3,"I523",0.0001,-1.845,-1.19,0,"ONLY");
3914   gMC->Gspos("I520",2,"I523",-2.2499,-1.845,-1.19,0,"ONLY");
3915   gMC->Gspos("I521",6,"I523",-2.8209,-1.7075,-0.982,0,"ONLY");
3916   gMC->Gspos("I521",5,"I523",-1.6895,-1.7075,-0.982,0,"ONLY");
3917   gMC->Gspos("I521",4,"I523",-0.5631,-1.7075,-0.982,0,"ONLY");
3918   gMC->Gspos("I521",3,"I523",0.5633,-1.7075,-0.982,0,"ONLY");
3919   gMC->Gspos("I521",2,"I523",1.6861,-1.7075,-0.982,0,"ONLY");
3920   gMC->Gspos("I518",1,"I523",0.0001,-1.75,-1.065,0,"ONLY");
3921   gMC->Gspos("I519",1,"I523",3.302,-1.71,-1.2943,0,"ONLY");
3922   gMC->Gspos("I520",1,"I523",2.2501,-1.845,-1.19,0,"ONLY");
3923   gMC->Gspos("I521",1,"I523",2.8161,-1.7075,-0.982,0,"ONLY");
3924   gMC->Gspos("I522",1,"I523",2.2501,-1.655,-1.3,idrotm[583],"MANY");
3925   gMC->Gspos("I522",2,"I523",-2.2499,-1.655,-1.3,idrotm[583],"MANY");
3926   gMC->Gspos("I542",2,"I523",-2.2499,-1.615,0.0,idrotm[573],"ONLY");
3927   gMC->Gspos("I541",2,"I523",-2.2499,-1.615,0.0,idrotm[573],"ONLY");
3928   gMC->Gspos("I541",1,"I523",2.2501,-1.615,0.0,0,"ONLY");
3929   gMC->Gspos("I542",1,"I523",2.2501,-1.615,0.0,0,"ONLY");
3930   gMC->Gspos("I543",1,"I523",2.1001,-1.615,0.955,0,"MANY");
3931   gMC->Gspos("I543",2,"I523",-2.0999,-1.615,0.955,idrotm[573],"MANY");
3932   gMC->Gspos("I537",2,"I523",1.7501,-1.52,0.0,idrotm[583],"ONLY");
3933   gMC->Gspos("I538",2,"I523",1.8368,-1.3122,0.0,idrotm[575],"ONLY");
3934   gMC->Gspos("I537",3,"I523",0.1035,1.6901,0.0,idrotm[575],"ONLY");
3935   gMC->Gspos("I538",3,"I523",-0.1199,1.6612,0.0,idrotm[581],"ONLY");
3936   gMC->Gspos("I538",1,"I523",-1.7166,-1.52,0.0,idrotm[583],"ONLY");
3937   gMC->Gspos("I537",1,"I523",-1.8532,-1.341,0.0,idrotm[581],"ONLY");
3938   gMC->Gspos("I536",3,"I523",-1.031,0.2033,-1.008,idrotm[580],"ONLY");
3939   gMC->Gspos("I536",4,"I523",-1.031,0.2033,0.908,idrotm[579],"ONLY");
3940   gMC->Gspos("I535",1,"I523",-0.0072,-1.58,-0.0361,idrotm[633],"ONLY");
3941   gMC->Gspos("I536",2,"I523",1.0312,0.2033,-1.008,idrotm[577],"ONLY");
3942   gMC->Gspos("I536",1,"I523",1.0312,0.2033,0.908,idrotm[576],"ONLY");
3943   gMC->Gspos("I534",1,"I523",0.0001,-1.58,1.905,0,"ONLY");
3944   gMC->Gspos("I540",1,"I523",0.0001,-1.785,1.905,idrotm[571],"ONLY");
3945   gMC->Gspos("I539",1,"I523",1.8001,-1.75,-0.195,idrotm[571],"ONLY");
3946   gMC->Gspos("I539",2,"I523",-1.7999,-1.75,-0.195,idrotm[572],"ONLY");
3947   gMC->Gspos("ITS6",1,"I566",0.0,0.0,0.0,0,"ONLY");
3948   gMC->Gspos("I550",1,"I544",2.25,-1.615,0.0,0,"ONLY");
3949   gMC->Gspos("I551",1,"I544",2.25,-1.615,0.0,0,"ONLY");
3950   gMC->Gspos("I551",2,"I544",-2.25,-1.615,0.0,idrotm[573],"ONLY");
3951   gMC->Gspos("I550",2,"I544",-2.25,-1.615,0.0,idrotm[573],"ONLY");
3952   gMC->Gspos("I549",1,"I544",1.7167,-1.52,0.0,idrotm[583],"ONLY");
3953   gMC->Gspos("I548",1,"I544",1.8533,-1.341,0.0,idrotm[575],"ONLY");
3954   gMC->Gspos("I547",1,"I544",1.0311,0.2033,-0.287,idrotm[576],"ONLY");
3955   gMC->Gspos("I545",1,"I544",0.0,-1.58,0.71,0,"ONLY");
3956   gMC->Gspos("I547",2,"I544",1.0311,0.2033,-2.203,idrotm[577],"ONLY");
3957   gMC->Gspos("I546",1,"I544",-0.0073,-1.58,-1.2311,idrotm[633],"ONLY");
3958   gMC->Gspos("I547",4,"I544",-1.0311,0.2033,-0.287,idrotm[579],"ONLY");
3959   gMC->Gspos("I547",3,"I544",-1.0311,0.2033,-2.203,idrotm[580],"ONLY");
3960   gMC->Gspos("I548",2,"I544",-0.1033,1.6901,0.0,idrotm[581],"O]NLY");
3961   gMC->Gspos("I549",2,"I544",0.12,1.6613,0.0,idrotm[575],"ONLY");
3962   gMC->Gspos("I549",3,"I544",-1.8367,-1.3122,0.0,idrotm[581],"ONLY");
3963   gMC->Gspos("I548",3,"I544",-1.75,-1.52,0.0,idrotm[583],"ONLY");
3964   gMC->Gspos("I552",1,"I544",2.1,-1.615,-0.24,0,"MANY");
3965   gMC->Gspos("I552",2,"I544",-2.1,-1.615,-0.24,idrotm[573],"MANY");
3966   gMC->Gspos("I515",12,"I516",-1.6896,-1.7075,-0.9822,0,"ONLY");
3967   gMC->Gspos("I515",11,"I516",-1.6896,-1.7925,-0.9822,0,"ONLY");
3968   gMC->Gspos("I513",37,"I516",0.0,-1.79,-1.035,idrotm[586],"ONLY");
3969   gMC->Gspos("I513",1,"I516",-3.2987,-1.71,-1.2943,0,"ONLY");
3970   gMC->Gspos("I515",1,"I516",-2.816,-1.7075,-0.9822,0,"ONLY");
3971   gMC->Gspos("I514",1,"I516",-2.25,-1.845,-1.19,0,"ONLY");
3972   gMC->Gspos("I514",2,"I516",0.0,-1.845,-1.19,0,"ONLY");
3973   gMC->Gspos("I514",3,"I516",2.25,-1.845,-1.19,0,"ONLY");
3974   gMC->Gspos("I515",2,"I516",-2.816,-1.7925,-0.9822,0,"ONLY");
3975   gMC->Gspos("I513",2,"I516",-3.2987,-1.79,-1.2943,0,"ONLY");
3976   gMC->Gspos("I515",3,"I516",-0.5632,-1.7075,-0.9822,0,"ONLY");
3977   gMC->Gspos("I515",4,"I516",-0.5632,-1.7925,-0.9822,0,"ONLY");
3978   gMC->Gspos("I515",5,"I516",0.5632,-1.7925,-0.9822,0,"ONLY");
3979   gMC->Gspos("I515",6,"I516",0.5632,-1.7075,-0.9822,0,"ONLY");
3980   gMC->Gspos("I515",7,"I516",1.6896,-1.7075,-0.9822,0,"ONLY");
3981   gMC->Gspos("I515",8,"I516",1.6896,-1.7925,-0.9822,0,"ONLY");
3982   gMC->Gspos("I515",9,"I516",2.816,-1.7925,-0.9822,0,"ONLY");
3983   gMC->Gspos("I515",10,"I516",2.816,-1.7075,-0.9822,0,"ONLY");
3984   gMC->Gspos("I513",3,"I516",-3.2287,-1.79,-1.2943,0,"ONLY");
3985   gMC->Gspos("I513",4,"I516",-3.2287,-1.71,-1.2943,0,"ONLY");
3986   gMC->Gspos("I513",5,"I516",-3.1587,-1.71,-1.2943,0,"ONLY");
3987   gMC->Gspos("I513",6,"I516",-3.1587,-1.79,-1.2943,0,"ONLY");
3988   gMC->Gspos("I513",7,"I516",-1.3437,-1.79,-1.2943,0,"ONLY");
3989   gMC->Gspos("I513",8,"I516",-1.3437,-1.71,-1.2943,0,"ONLY");
3990   gMC->Gspos("I513",9,"I516",-1.2737,-1.71,-1.2943,0,"ONLY");
3991   gMC->Gspos("I513",10,"I516",-1.2737,-1.79,-1.2943,0,"ONLY");
3992   gMC->Gspos("I513",11,"I516",-1.2037,-1.79,-1.2943,0,"ONLY");
3993   gMC->Gspos("I513",12,"I516",-1.2037,-1.71,-1.2943,0,"ONLY");
3994   gMC->Gspos("I513",13,"I516",-1.046,-1.71,-1.2943,0,"ONLY");
3995   gMC->Gspos("I513",14,"I516",-1.046,-1.79,-1.2943,0,"ONLY");
3996   gMC->Gspos("I513",15,"I516",-0.976,-1.79,-1.2943,0,"ONLY");
3997   gMC->Gspos("I513",16,"I516",-0.976,-1.71,-1.2943,0,"ONLY");
3998   gMC->Gspos("I513",17,"I516",-0.906,-1.71,-1.2943,0,"ONLY");
3999   gMC->Gspos("I513",18,"I516",-0.906,-1.79,-1.2943,0,"ONLY");
4000   gMC->Gspos("I513",19,"I516",0.9091,-1.79,-1.2943,0,"ONLY");
4001   gMC->Gspos("I513",20,"I516",0.9091,-1.71,-1.2943,0,"ONLY");
4002   gMC->Gspos("I513",21,"I516",0.9791,-1.71,-1.2943,0,"ONLY");
4003   gMC->Gspos("I513",22,"I516",0.9791,-1.79,-1.2943,0,"ONLY");
4004   gMC->Gspos("I513",23,"I516",1.0491,-1.79,-1.2943,0,"ONLY");
4005   gMC->Gspos("I513",24,"I516",1.0491,-1.71,-1.2943,0,"ONLY");
4006   gMC->Gspos("I513",25,"I516",1.2068,-1.71,-1.2943,0,"ONLY");
4007   gMC->Gspos("I513",26,"I516",1.2068,-1.79,-1.2943,0,"ONLY");
4008   gMC->Gspos("I513",27,"I516",1.2768,-1.79,