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