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