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