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