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