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