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