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