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