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