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