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