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