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