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