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