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