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