Strings compared instead of pointers
[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$
268b9c60 18Revision 1.25 2001/05/30 14:04:31 hristov
19Dynamic cast replaced (F.Carminati)
20
4154d3d8 21Revision 1.24 2001/05/25 15:59:59 morsch
22Overlaps corrected. (R. Barbera)
23
9bf5e8ff 24Revision 1.22 2001/05/16 08:17:49 hristov
25Bug 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)
26
e99dbc71 27Revision 1.21 2001/05/10 00:12:59 nilsen
28Finished fixing up the default segmentation for the PPR geometry.
29
c11a498e 30Revision 1.20 2001/05/09 01:02:22 nilsen
31Finished fixing SetDefaults for the segmentation of SPD, SDD, and SSD.
32
92cc4da1 33Revision 1.19 2001/05/03 08:40:15 barbera
34Volume ITSD slightly modified to be consistent with v5. Some improvement in the printouts. The last commit did not complete successfully.
35
1e9111db 36Revision 1.17 2001/05/01 22:40:42 nilsen
37Partical update of SetDefault.
38
2c198b76 39Revision 1.16 2001/04/22 13:48:09 barbera
40New values of media parameters and thickness of SPD end-ladder electronics as given by Fabio Formenti
41
fc44ab90 42Revision 1.15 2001/04/04 07:02:16 barbera
43Position of the cylinders holding rails corrected
44
27c5763c 45Revision 1.14 2001/03/29 22:02:30 barbera
46Some changes to the services due to the new drawings from the engineers.
47
05a91552 48Revision 1.13 2001/03/29 05:28:56 barbera
49Rails material changed from aluminum to carbon fiber according with the decision of the last Technical Board
50
31683195 51Revision 1.12 2001/03/28 06:40:20 barbera
52Central and services mother volumes made consistenf for detailed and coarse geometry. Switch for rails added to the coarse geometries
53
e4f08ac3 54Revision 1.11 2001/03/23 00:12:23 nilsen
55Set Reading of AliITSgeom data from Geant3 common blocks as the default and
56not a .det file. Removed redundent calls to BuildGeometry.
57
0646a0e8 58Revision 1.10 2001/03/15 13:47:55 barbera
59Some service mother volumes modified
60
6d62fed9 61Revision 1.9 2001/03/13 18:13:30 barbera
62Some mother volumes sligthly modified to eliminate an overlap with the absorber
63
45725ec9 64Revision 1.8 2001/03/13 08:36:24 hristov
65fabsf replaced by TMath::Abs
66
767187dd 67Revision 1.7 2001/03/13 00:43:43 barbera
68Updated 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
69
9d2da7b3 70Revision 1.6 2001/02/13 16:53:35 nilsen
71Fixed a but when trying to use GEANT4. Needed to replace
72if(!((TGeant3*)gMC)) with if(!(dynamic_casst<TGeant3*>(gMC)))
73because just casting gMC to be TGeant3* even when it realy is a TGeant3 pointer
74did not result in a zero value. For AliITSv5asymm and AliITSv5symm, needed
75to fix a bug in the initilizers and a bug in BuildGeometry. This is now done
76in the same way as in AliITSv5.cxx.
77
9a4c6ea3 78Revision 1.5 2001/02/09 20:06:26 nilsen
79Fixed bug in distructor. Can't distroy fixxed length arrays. Thanks Peter.
80
58e13d99 81Revision 1.4 2001/02/09 00:05:31 nilsen
82Added fMajor/MinorVersion variables and made other changes to better make
83use of the new code changes in AliITSgeom related classes.
84
bae7e562 85Revision 1.3 2001/01/30 09:23:13 hristov
86Streamers removed (R.Brun)
87
a8a6107b 88Revision 1.2 2001/01/26 20:01:19 hristov
89Major upgrade of AliRoot code
90
2ab0c725 91Revision 1.1.2.1 2001/01/15 13:38:32 barbera
92New ITS detailed geometry to be used for the PPR
93
db915fea 94Revision 1.12 2000/12/10 16:00:44 barbera
95Added last definition of special media like end-ladder boxes and cones
96
97Revision 1.11 2000/10/30 08:02:25 barbera
98PCON's changed into simpler CONS and TUBS. Services now allow for the rails to go through them.
99
100Revision 1.3.2.7 2000/10/27 17:20:00 barbera
101Position of rails w.r.t. the interaction point corrected.
102
103Revision 1.9 2000/10/27 13:31:29 barbera
104Rails between ITS and TPC added.
105
106Revision 1.8 2000/10/27 13:03:08 barbera
107Small changes in the SPD volumes and materials
108
109Revision 1.6 2000/10/16 14:45:37 barbera
110Mother volume ITSD modified to avoid some overlaps
111
112Revision 1.5 2000/10/16 13:49:15 barbera
113Services volumes slightly modified and material added following Pierluigi Barberis' information
114
115Revision 1.4 2000/10/07 15:33:07 barbera
116Small corrections to the ITSV mother volume
117
118Revision 1.3 2000/10/07 13:06:50 barbera
119Some new materials and media defined
120
121Revision 1.2 2000/10/07 10:42:43 barbera
122Mother volume ITSV corrected
123
124Revision 1.1 2000/10/06 23:09:12 barbera
125New geometry (symmetric services
126
127Revision 1.20 2000/10/02 21:28:08 fca
128Removal of useless dependecies via forward declarations
129
130Revision 1.19 2000/07/10 16:07:19 fca
131Release version of ITS code
132
133Revision 1.14.2.2 2000/05/19 10:09:21 nilsen
134fix for bug with HP and Sun unix + fix for event display in ITS-working branch
135
136Revision 1.14.2.1 2000/03/04 23:45:19 nilsen
137Fixed up the comments/documentation.
138
139Revision 1.14 1999/11/25 06:52:56 fca
140Correct value of drca
141
142Revision 1.13.2.1 1999/11/25 06:52:21 fca
143Correct value of drca
144
145Revision 1.13 1999/10/27 11:16:26 fca
146Correction of problem in geometry
147
148Revision 1.12 1999/10/22 08:25:25 fca
149remove double definition of destructors
150
151Revision 1.11 1999/10/22 08:16:49 fca
152Correct destructors, thanks to I.Hrivnacova
153
154Revision 1.10 1999/10/06 19:56:50 fca
155Add destructor
156
157Revision 1.9 1999/10/05 08:05:09 fca
158Minor corrections for uninitialised variables.
159
160Revision 1.8 1999/09/29 09:24:20 fca
161Introduction of the Copyright and cvs Log
162
163*/
164
bae7e562 165//////////////////////////////////////////////////////////////////////////////
166// //
167// Inner Traking System version PPR symmetric //
168// This class contains the base procedures for the Inner Tracking System //
169// //
170// Authors: R. Barbera //
171// version 6. //
172// Created 2000. //
173// //
174// NOTE: THIS IS THE SYMMETRIC PPR geometry of the ITS. //
175// THIS WILL NOT WORK //
176// with the geometry or module classes or any analysis classes. You are //
177// strongly encouraged to uses AliITSv5. //
178// //
179//////////////////////////////////////////////////////////////////////////////
9d2da7b3 180// See AliITSvPPRsymm::StepManager().
bae7e562 181#include <iostream.h>
182#include <iomanip.h>
9d2da7b3 183#include <stdio.h>
184#include <stdlib.h>
db915fea 185#include <TMath.h>
db915fea 186#include <TGeometry.h>
187#include <TNode.h>
188#include <TTUBE.h>
189#include <TFile.h> // only required for Tracking function?
190#include <TCanvas.h>
191#include <TObjArray.h>
9d2da7b3 192#include <TLorentzVector.h>
193#include <TObjString.h>
db915fea 194#include <TClonesArray.h>
9d2da7b3 195#include <TBRIK.h>
196#include <TSystem.h>
db915fea 197
198#include "AliMC.h"
9d2da7b3 199#include "AliRun.h"
db915fea 200#include "AliMagF.h"
201#include "AliConst.h"
bae7e562 202#include "../TGeant3/TGeant3.h"
203#include "AliITSGeant3Geometry.h"
db915fea 204#include "AliITShit.h"
9d2da7b3 205#include "AliITS.h"
db915fea 206#include "AliITSvPPRsymm.h"
bae7e562 207#include "AliITSgeom.h"
208#include "AliITSgeomSPD.h"
209#include "AliITSgeomSDD.h"
210#include "AliITSgeomSSD.h"
2c198b76 211#include "AliITSDetType.h"
212#include "AliITSresponseSPD.h"
213#include "AliITSresponseSDD.h"
214#include "AliITSresponseSSD.h"
215#include "AliITSsegmentationSPD.h"
216#include "AliITSsegmentationSDD.h"
217#include "AliITSsegmentationSSD.h"
218#include "AliITSClusterFinderSPD.h"
219#include "AliITSClusterFinderSDD.h"
220#include "AliITSClusterFinderSSD.h"
db915fea 221
222
223ClassImp(AliITSvPPRsymm)
224
225//_____________________________________________________________________________
226AliITSvPPRsymm::AliITSvPPRsymm() {
227////////////////////////////////////////////////////////////////////////
228// Standard default constructor for the ITS version 9.
229////////////////////////////////////////////////////////////////////////
bae7e562 230 Int_t i;
231
9d2da7b3 232 fIdN = 0;
bae7e562 233 fIdName = 0;
234 fIdSens = 0;
235 fEuclidOut = kFALSE; // Don't write Euclide file
236 fGeomDetOut = kFALSE; // Don't write .det file
0646a0e8 237 fGeomDetIn = kFALSE; // Don't Read .det file
bae7e562 238 fMajorVersion = IsVersion();
239 fMinorVersion = -1;
240 for(i=0;i<60;i++) fRead[i] = '\0';
241 for(i=0;i<60;i++) fWrite[i] = '\0';
242 for(i=0;i<60;i++) fEuclidGeomDet[i] = '\0';
db915fea 243}
244//_____________________________________________________________________________
245AliITSvPPRsymm::AliITSvPPRsymm(const char *name, const char *title) : AliITS(name, title){
246////////////////////////////////////////////////////////////////////////
247// Standard constructor for the ITS version 9.
248////////////////////////////////////////////////////////////////////////
bae7e562 249 Int_t i;
250
251 fIdN = 6;
252 fIdName = new TString[fIdN];
253 fIdName[0] = "ITS1";
254 fIdName[1] = "ITS2";
255 fIdName[2] = "ITS3";
256 fIdName[3] = "ITS4";
257 fIdName[4] = "ITS5";
258 fIdName[5] = "ITS6";
259 fIdSens = new Int_t[fIdN];
260 for (i=0;i<fIdN;i++) fIdSens[i] = 0;
261 fMajorVersion = IsVersion();
9d2da7b3 262 fMinorVersion = 2;
bae7e562 263 fEuclidOut = kFALSE; // Don't write Euclide file
264 fGeomDetOut = kFALSE; // Don't write .det file
0646a0e8 265 fGeomDetIn = kFALSE; // Don't Read .det file
9d2da7b3 266 SetThicknessDet1();
267 SetThicknessDet2();
268 SetThicknessChip1();
269 SetThicknessChip2();
bae7e562 270
9d2da7b3 271 fEuclidGeometry="$ALICE_ROOT/ITS/ITSgeometry_vPPRsymm2.euc";
272 strncpy(fEuclidGeomDet,"$ALICE_ROOT/ITS/ITSgeometry_vPPRsymm2.det",60);
bae7e562 273 strncpy(fRead,fEuclidGeomDet,60);
9d2da7b3 274 strncpy(fWrite,fEuclidGeomDet,60);
275
db915fea 276}
277//____________________________________________________________________________
278AliITSvPPRsymm::AliITSvPPRsymm(const AliITSvPPRsymm &source){
279////////////////////////////////////////////////////////////////////////
280// Copy Constructor for ITS version 9.
281////////////////////////////////////////////////////////////////////////
282 if(&source == this) return;
bae7e562 283 Warning("Copy Constructor","Not allowed to copy AliITSvPPRsymm");
db915fea 284 return;
285}
286//_____________________________________________________________________________
287AliITSvPPRsymm& AliITSvPPRsymm::operator=(const AliITSvPPRsymm &source){
288////////////////////////////////////////////////////////////////////////
9d2da7b3 289// Assignment operator for the ITS version 9.
db915fea 290////////////////////////////////////////////////////////////////////////
bae7e562 291 if(&source == this) return *this;
292 Warning("= operator","Not allowed to copy AliITSvPPRsymm");
293 return *this;
db915fea 294}
295//_____________________________________________________________________________
296AliITSvPPRsymm::~AliITSvPPRsymm() {
297////////////////////////////////////////////////////////////////////////
9d2da7b3 298// Standard destructor for the ITS version 9.
db915fea 299////////////////////////////////////////////////////////////////////////
300}
db915fea 301//__________________________________________________________________________
302void AliITSvPPRsymm::BuildGeometry(){
303////////////////////////////////////////////////////////////////////////
304// Geometry builder for the ITS version 9.
305////////////////////////////////////////////////////////////////////////
306 TNode *node, *top;
307 const int kColorITS=kYellow;
308 //
309 top = gAlice->GetGeometry()->GetNode("alice");
310
311 new TTUBE("S_layer1","Layer1 of ITS","void",3.95,3.95+0.05475,12.25);
312 top->cd();
313 node = new TNode("Layer1","Layer1","S_layer1",0,0,0,"");
314 node->SetLineColor(kColorITS);
315 fNodes->Add(node);
316
317 new TTUBE("S_layer2","Layer2 of ITS","void",7.,7.+0.05475,16.3);
318 top->cd();
319 node = new TNode("Layer2","Layer2","S_layer2",0,0,0,"");
320 node->SetLineColor(kColorITS);
321 fNodes->Add(node);
322
323 new TTUBE("S_layer3","Layer3 of ITS","void",15.,15.+0.05288,21.1);
324 top->cd();
325 node = new TNode("Layer3","Layer3","S_layer3",0,0,0,"");
326 node->SetLineColor(kColorITS);
327 fNodes->Add(node);
328
329 new TTUBE("S_layer4","Layer4 of ITS","void",24,24+0.05288,29.6);
330 top->cd();
331 node = new TNode("Layer4","Layer4","S_layer4",0,0,0,"");
332 node->SetLineColor(kColorITS);
333 fNodes->Add(node);
334
335 new TTUBE("S_layer5","Layer5 of ITS","void",40,40+0.05382,45.1);
336 top->cd();
337 node = new TNode("Layer5","Layer5","S_layer5",0,0,0,"");
338 node->SetLineColor(kColorITS);
339 fNodes->Add(node);
340
341 new TTUBE("S_layer6","Layer6 of ITS","void",45,45+0.05382,50.4);
342 top->cd();
343 node = new TNode("Layer6","Layer6","S_layer6",0,0,0,"");
344 node->SetLineColor(kColorITS);
345 fNodes->Add(node);
346}
347//_____________________________________________________________________________
348void AliITSvPPRsymm::CreateGeometry(){
349////////////////////////////////////////////////////////////////////////
350// This routine defines and Creates the geometry for version 9 of the ITS.
351////////////////////////////////////////////////////////////////////////
352
353 //INNER RADII OF THE SILICON LAYERS
e4f08ac3 354 // Float_t rl[6] = { 3.8095,7.,15.,24.,38.1,43.5765 };
db915fea 355 //THICKNESSES OF LAYERS (in % radiation length)
356 Float_t drl[6] = { 1.03,1.03,0.94,0.95,0.91,0.87 };
357 //HALF LENGTHS OF LAYERS
e4f08ac3 358 // Float_t dzl[6] = { 14.35,14.35,25.1,32.1,49.405,55.27 };
db915fea 359 //LENGTHS OF END-LADDER BOXES (ALL INCLUDED)
e4f08ac3 360 // Float_t dzb[6] = { 12.4,12.4,13.5,15.,7.5,7.5 };
db915fea 361 //THICKNESSES OF END-LADDER BOXES (ALL INCLUDED)
e4f08ac3 362 // Float_t drb[6] = { rl[1]-rl[0],0.2,5.,5.,4.,4. };
9d2da7b3 363
db915fea 364
e4f08ac3 365 Float_t dits[100], rlim, zmax;
9d2da7b3 366 // Float_t zpos;
367 // Float_t pcits[50]
e4f08ac3 368 Float_t ztpc;
9d2da7b3 369 Int_t idrotm[1999], i;
e4f08ac3 370 Float_t dgh[100];
9d2da7b3 371
372
373 // Define some variables for SPD
374
375 Float_t dits1[3], di101[3], di107[3], di10b[3], di106[3]; // for layer 1
376 Float_t di103[3], di10a[3], di102[3]; // for layer 1
377 Float_t dits2[3], di1d1[3], di1d7[3], di20b[3], di1d6[3]; // for layer 2
378 Float_t di1d3[3], di20a[3], di1d2[3]; // for layer 2
379 Float_t di108[3], di104[3]; // for both layers
380
381 Float_t ddet1=300.; // total detector thickness on layer 1 (micron)
382 Float_t dchip1=300.; // total chip thickness on layer 1 (micron)
383
384 Float_t ddet2=300.; // total detector thickness on layer 2 (micron)
385 Float_t dchip2=300.; // total chip thickness on layer 2 (micron)
386
387 Float_t dbus=200.; // total bus thickness on both layers (micron)
388
389 ddet1 = GetThicknessDet1();
390 ddet2 = GetThicknessDet2();
391 dchip1 = GetThicknessChip1();
392 dchip2 = GetThicknessChip2();
393
9d2da7b3 394 if(ddet1 < 100. || ddet1 > 300.) {
1e9111db 395 cout << "ITS - WARNING: the detector thickness for layer 1 is outside the range of [100,300] microns."
9d2da7b3 396 " The default value of 300 microns will be used." << endl;
397 ddet1=300.;
398 }
399
400 if(ddet2 < 100. || ddet2 > 300.) {
1e9111db 401 cout << "ITS - WARNING: the detector thickness for layer 2 is outside the range of [100,300] microns."
9d2da7b3 402 " The default value of 300 microns will be used." << endl;
403 ddet2=300.;
404 }
405
406 if(dchip1 < 150. || dchip1 > 300.) {
1e9111db 407 cout << "ITS - WARNING: the chip thickness for layer 1 is outside the range of [150,300] microns."
9d2da7b3 408 " The default value of 300 microns will be used." << endl;
409 dchip1=300.;
410 }
411
412 if(dchip2 < 150. || dchip2 > 300.) {
1e9111db 413 cout << "ITS - WARNING: the chip thickness for layer 2 is outside the range of [150,300] microns."
9d2da7b3 414 " The default value of 300 microns will be used." << endl;
415 dchip2=300.;
416 }
e4f08ac3 417
418 Int_t rails = 1; // flag for rails (1 --> rails in; 0 --> rails out)
9d2da7b3 419
e4f08ac3 420 Int_t fluid = 1; // flag for the cooling fluid (1 --> water; 0 --> freon)
421
422 rails = GetRails();
423
424 fluid = GetCoolingFluid();
425
426 if(rails != 0 && rails != 1) {
1e9111db 427 cout << "ITS - WARNING: the switch for rails is not set neither to 0 (rails out) nor to 1 (rails in)."
e4f08ac3 428 " The default value of 1 (rails in) will be used." << endl;
429
430 }
431
432 if(fluid != 0 && fluid != 1) {
1e9111db 433 cout << "ITS - WARNING: the switch for cooling fluid is not set neither to 0 (freon) nor to 1 (water)."
e4f08ac3 434 " The default value of 1 (water) will be used." << endl;
435 }
436
1e9111db 437 cout << "ITS: Detector thickness on layer 1 is set to " << ddet1 << " microns." << endl;
438 cout << "ITS: Chip thickness on layer 1 is set to " << dchip1 << " microns." << endl;
439 cout << "ITS: Detector thickness on layer 2 is set to " << ddet2 << " microns." << endl;
440 cout << "ITS: Chip thickness on layer 2 is set to " << dchip2 << " microns." << endl;
e4f08ac3 441 if(rails == 0 ) {
1e9111db 442 cout << "ITS: Rails are out." << endl;
e4f08ac3 443 } else {
1e9111db 444 cout << "ITS: Rails are in." << endl;
e4f08ac3 445 }
446 if(fluid == 0 ) {
1e9111db 447 cout << "ITS: The cooling fluid is freon." << endl;
e4f08ac3 448 } else {
1e9111db 449 cout << "ITS: The cooling fluid is water." << endl;
e4f08ac3 450 }
451
9d2da7b3 452 ddet1 = ddet1*0.0001/2.; // conversion from tot length in um to half in cm
453 ddet2 = ddet2*0.0001/2.; // conversion from tot length in um to half in cm
454 dchip1 = dchip1*0.0001/2.;// conversion from tot length in um to half in cm
455 dchip2 = dchip2*0.0001/2.;// conversion from tot length in um to half in cm
e4f08ac3 456 dbus = dbus*0.0001/2.; // conversion from tot length in um to half in cm
9d2da7b3 457
458 Float_t deltax, deltay;
459
460 Int_t thickness = fMinorVersion/10;
461 Int_t option = fMinorVersion - 10*thickness;
462
463
464 // Define some variables for SDD
465
466
467 Float_t sin30, cos30;
468
469 // SDD electronics+services main volumes
470 Float_t I018dits[3], I024dits[3], I047dits[3], I048dits[3];
471
472 // SDD detector ladder
473
474 Float_t I302dits[3], I402dits[3], I004dits[3], I005dits[3];
475 Float_t Y_SDD_sep = 0.20;
476 Float_t ySDD;
477 Int_t iSDD;
478 Float_t Z_SDD_lay3[6] = {18.55, 10.95, 3.70, -3.70, -11.20, -18.35};
479 Float_t Z_SDD_lay4[8] = {25.75, 18.60, 11.00, 3.70, -3.70, -11.20, -18.45, -26.05};
480
481 // ladder foot and end-ladder (frame and cooling)
482 Float_t I028dits[3], I420dits[3], I421dits[3], I422dits[6], I423dits[3];
483 Float_t I424dits[3], xI424, yI424;
484 Float_t I425dits[3];
485 Int_t indI425;
486 Float_t I029dits[4], I030dits[4], I031dits[3], I032dits[3];
487
488 // SDD ladder frame and cooling
489 Float_t SDD_CoolPipe[3] = {1.7000, -0.5500, 0.0000};
490 Float_t I035dits[3], I037dits[3], I038dits[3];
491 Float_t I039dits[3], xI039, yI039;
492 Float_t I041dits[5];
493
494 // SDD hybrid, chips and capacitors
495 Float_t I050dits[3], xI050, yI050;
496 Float_t I052dits[3], xI052, yI052;
497 Float_t I042dits[3], xI042, yI042;
498 Float_t xI042space = 0.17;
499 Float_t I043dits[3], xI043, yI043;
500 Float_t xI043space = 0.17;
501 Float_t zchip, zChipSpace;
502 Float_t I051dits[3], xI051, yI051, zI051, yI051space, xcap;
503 Int_t ichip, icap;
504
505 // SDD microcables
506 Float_t I044dits[4], xI044, yI044, volI044;
507 Float_t xHV, yHV, zHV, xLV, yLV, zLV;
508 Char_t HVname[5], LVname[5];
509
510
511 // Define media off-set
db915fea 512
513 Int_t *idtmed = fIdtmed->GetArray()-199;
9d2da7b3 514
db915fea 515
516 // Rotation matrices
517
9d2da7b3 518 // SPD - option 'a' (this is NOT the default so leave commented)
519
520
521 if (option == 1) {
522
523 AliMatrix(idrotm[201],90.0,90.0,90.0,180.0,0.0,0.0);
524 AliMatrix(idrotm[202],90.0,90.0,90.0,0.0,0.0,0.0);
525 AliMatrix(idrotm[203],90.0,350.0,90.0,260.0,0.0,0.0);
526 AliMatrix(idrotm[204],90.0,170.0,90.0,80.0,0.0,0.0);
527 AliMatrix(idrotm[205],90.0,10.0,90.0,100.0,0.0,0.0);
528 AliMatrix(idrotm[206],90.0,190.0,90.0,280.0,0.0,0.0);
529 AliMatrix(idrotm[207],90.0,342.0,90.0,72.0,0.0,0.0);
530 AliMatrix(idrotm[208],90.0,156.999893,90.0,246.999893,0.0,0.0);
531 AliMatrix(idrotm[209],90.0,147.999802,90.0,237.999893,0.0,0.0);
532 AliMatrix(idrotm[210],90.0,138.999802,90.0,228.999802,0.0,0.0);
533 AliMatrix(idrotm[211],90.0,129.999802,90.0,219.999802,0.0,0.0);
534 AliMatrix(idrotm[212],90.0,36.7896,90.0,126.789597,0.0,0.0);
535 AliMatrix(idrotm[213],90.0,343.579712,90.0,73.579697,0.0,0.0);
536 AliMatrix(idrotm[214],90.0,95.413696,90.0,185.413696,0.0,0.0);
537 AliMatrix(idrotm[215],90.0,5.4141,90.0,95.414101,0.0,0.0);
538 AliMatrix(idrotm[216],90.0,318.296906,90.0,48.296902,0.0,0.0);
539 AliMatrix(idrotm[217],90.0,67.000099,90.0,157.000107,0.0,0.0);
540 AliMatrix(idrotm[218],90.0,337.003998,90.0,67.003998,0.0,0.0);
541 AliMatrix(idrotm[219],90.0,247.000305,90.0,337.000305,0.0,0.0);
542 AliMatrix(idrotm[220],90.0,305.633514,90.0,35.633499,0.0,0.0);
543 AliMatrix(idrotm[221],90.0,58.000198,90.0,148.000198,0.0,0.0);
544 AliMatrix(idrotm[222],90.0,327.997101,90.0,57.997101,0.0,0.0 );
545 AliMatrix(idrotm[223],90.0,237.994202,90.0,327.994202,0.0,0.0);
546 AliMatrix(idrotm[224],90.0,296.627502,90.0,26.627399,0.0,0.0);
547 AliMatrix(idrotm[225],90.0,48.994099,90.0,138.994095,0.0,0.0);
548 AliMatrix(idrotm[226],90.0,318.990997,90.0,48.991001,0.0,0.0);
549 AliMatrix(idrotm[227],90.0,228.988205,90.0,318.98819,0.0,0.0);
550 AliMatrix(idrotm[228],90.0,287.621399,90.0,17.621401,0.0,0.0);
551 AliMatrix(idrotm[229],90.0,39.988098,90.0,129.988098,0.0,0.0);
552 AliMatrix(idrotm[230],90.0,309.984985,90.0,39.985001,0.0,0.0);
553 AliMatrix(idrotm[231],90.0,327.2612,90.0,57.2612,0.0,0.0);
554 AliMatrix(idrotm[232],90.0,237.261398,90.0,327.261414,0.0,0.0);
555 AliMatrix(idrotm[233],90.0,252.000504,90.0,342.000488,0.0,0.0 );
556 AliMatrix(idrotm[234],90.0,71.9991,90.0,161.9991,0.0,0.0);
557 AliMatrix(idrotm[235],90.0,270.0,90.0,0.0,0.0,0.0);
558 AliMatrix(idrotm[236],90.0,180.013702,90.0,270.013702,0.0,0.0);
9bf5e8ff 559 AliMatrix(idrotm[237],90.0,180.0,90.0,90.0,0.0,0.0);
9d2da7b3 560 AliMatrix(idrotm[238],90.0,144.0,90.0,234.0,0.0,0.0);
561 AliMatrix(idrotm[239],90.0,216.0,90.0,306.0,0.0,0.0);
562 AliMatrix(idrotm[240],90.0,288.0,90.0,18.0,0.0,0.0);
563 AliMatrix(idrotm[241],90.0,324.0,90.0,54.0,0.0,0.0);
564 AliMatrix(idrotm[242],90.0,36.0,90.0,126.0,0.0,0.0);
565 AliMatrix(idrotm[243],90.0,108.0,90.0,198.0,0.0,0.0);
9bf5e8ff 566 AliMatrix(idrotm[244],90.0,180.0,90.0,270.0,0.0,0.0);
567 AliMatrix(idrotm[245],90.0,162.0,90.0,252.0,0.0,0.0);
568 AliMatrix(idrotm[246],90.0,310.0,90.0,40.0,0.0,0.0);
569 AliMatrix(idrotm[247],90.0,319.0,90.0,49.0,0.0,0.0);
570 AliMatrix(idrotm[248],90.0,328.0,90.0,58.0,0.0,0.0);
571 AliMatrix(idrotm[249],90.0,337.0,90.0,67.0,0.0,0.0);
9d2da7b3 572 AliMatrix(idrotm[1003],90.0,73.5,90.0,163.5,0.0,0.0);
573 AliMatrix(idrotm[1011],90.0,342.0,90.0,72.0,0.0,0.0);
574 AliMatrix(idrotm[1039],90.0,72.0,90.0,162.0,0.0,0.0);
575 AliMatrix(idrotm[1043],90.0,66.91,90.0,156.91,0.0,0.0);
576 AliMatrix(idrotm[1065],90.0,144.0,90.0,234.0,0.0,0.0);
577 AliMatrix(idrotm[1078],90.0,180.0,90.0,270.0,0.0,0.0);
578 AliMatrix(idrotm[1088],90.0,57.41,90.0,147.41,0.0,0.0);
579 AliMatrix(idrotm[1089],90.0,333.0,90.0,63.0,0.0,0.0);
580 AliMatrix(idrotm[1090],90.0,351.0,90.0,81.0,0.0,0.0);
581 AliMatrix(idrotm[1091],90.0,216.0,90.0,306.0,0.0,0.0);
582 AliMatrix(idrotm[1092],90.0,27.0,90.0,117.0,0.0,0.0);
583 AliMatrix(idrotm[1093],90.0,18.0,90.0,108.0,0.0,0.0);
584 AliMatrix(idrotm[1094],90.0,9.0,90.0,99.0,0.0,0.0);
585 AliMatrix(idrotm[1104],90.0,252.0,90.0,342.0,0.0,0.0);
586 AliMatrix(idrotm[1106],90.0,36.0,90.0,126.0,0.0,0.0);
587 AliMatrix(idrotm[1107],90.0,108.0,90.0,198.0,0.0,0.0);
588 AliMatrix(idrotm[1108],90.0,324.0,90.0,54.0,180.0,0.0);
589 AliMatrix(idrotm[1109],90.0,0.0,90.0,90.0,180.0,0.0);
590 AliMatrix(idrotm[1110],90.0,36.0,90.0,126.0,180.0,0.0);
591 AliMatrix(idrotm[1111],90.0,72.0,90.0,162.0,180.0,0.0);
592 AliMatrix(idrotm[1112],90.0,108.0,90.0,198.0,180.0,0.0);
593 AliMatrix(idrotm[1113],90.0,144.0,90.0,234.0,180.0,0.0);
594 AliMatrix(idrotm[1114],90.0,180.0,90.0,270.0,180.0,0.0);
595 AliMatrix(idrotm[1115],90.0,216.0,90.0,306.0,180.0,0.0);
596 AliMatrix(idrotm[1116],90.0,252.0,90.0,342.0,180.0,0.0);
597 AliMatrix(idrotm[1117],90.0,288.0,90.0,18.0,0.0,0.0);
598 AliMatrix(idrotm[1118],90.0,288.0,90.0,18.0,180.0,0.0);
599 AliMatrix(idrotm[1130],90.0,324.0,90.0,54.0,0.0,0.0);
600
601 }
db915fea 602
9d2da7b3 603 // SPD - option 'b' (this is the default)
604
605 if (option == 2) {
606
9bf5e8ff 607 AliMatrix(idrotm[201],90.0,0.0,90.0,90.0,0.0,0.0);
9d2da7b3 608 AliMatrix(idrotm[202],90.0,90.0,90.0,0.0,0.0,0.0);
609 AliMatrix(idrotm[203],90.0,350.0,90.0,260.0,0.0,0.0);
610 AliMatrix(idrotm[204],90.0,170.0,90.0,80.0,0.0,0.0);
611 AliMatrix(idrotm[205],90.0,10.0,90.0,100.0,0.0,0.0);
612 AliMatrix(idrotm[206],90.0,190.0,90.0,280.0,0.0,0.0);
613 AliMatrix(idrotm[207],90.0,342.0,90.0,72.0,0.0,0.0);
614 AliMatrix(idrotm[208],90.0,156.999893,90.0,246.999893,0.0,0.0);
615 AliMatrix(idrotm[209],90.0,147.999802,90.0,237.999893,0.0,0.0);
616 AliMatrix(idrotm[210],90.0,138.999802,90.0,228.999802,0.0,0.0);
617 AliMatrix(idrotm[211],90.0,129.999802,90.0,219.999802,0.0,0.0);
618 AliMatrix(idrotm[212],90.0,36.7896,90.0,126.789597,0.0,0.0);
619 AliMatrix(idrotm[213],90.0,343.579712,90.0,73.579697,0.0,0.0);
620 AliMatrix(idrotm[214],90.0,95.413696,90.0,185.413696,0.0,0.0);
621 AliMatrix(idrotm[215],90.0,5.4141,90.0,95.414101,0.0,0.0);
622 AliMatrix(idrotm[216],90.0,318.296906,90.0,48.296902,0.0,0.0);
623 AliMatrix(idrotm[217],90.0,67.000099,90.0,157.000107,0.0,0.0);
624 AliMatrix(idrotm[218],90.0,337.003998,90.0,67.003998,0.0,0.0);
625 AliMatrix(idrotm[219],90.0,247.000305,90.0,337.000305,0.0,0.0);
626 AliMatrix(idrotm[220],90.0,305.633514,90.0,35.633499,0.0,0.0);
627 AliMatrix(idrotm[221],90.0,58.000198,90.0,148.000198,0.0,0.0);
628 AliMatrix(idrotm[222],90.0,327.997101,90.0,57.997101,0.0,0.0);
629 AliMatrix(idrotm[223],90.0,237.994202,90.0,327.994202,0.0,0.0);
630 AliMatrix(idrotm[224],90.0,296.627502,90.0,26.627399,0.0,0.0);
631 AliMatrix(idrotm[225],90.0,48.994099,90.0,138.994095,0.0,0.0);
632 AliMatrix(idrotm[226],90.0,318.990997,90.0,48.991001,0.0,0.0);
633 AliMatrix(idrotm[227],90.0,228.988205,90.0,318.98819,0.0,0.0);
634 AliMatrix(idrotm[228],90.0,287.621399,90.0,17.621401,0.0,0.0);
635 AliMatrix(idrotm[229],90.0,39.988098,90.0,129.988098,0.0,0.0);
636 AliMatrix(idrotm[230],90.0,309.984985,90.0,39.985001,0.0,0.0);
637 AliMatrix(idrotm[231],90.0,327.2612,90.0,57.2612,0.0,0.0);
638 AliMatrix(idrotm[232],90.0,237.261398,90.0,327.261414,0.0,0.0);
639 AliMatrix(idrotm[233],90.0,252.000504,90.0,342.000488,0.0,0.0);
640 AliMatrix(idrotm[234],90.0,71.9991,90.0,161.9991,0.0,0.0);
641 AliMatrix(idrotm[235],90.0,270.0,90.0,0.0,0.0,0.0);
642 AliMatrix(idrotm[236],90.0,180.013702,90.0,270.013702,0.0,0.0);
643 AliMatrix(idrotm[237],90.0,90.0,90.0,180.0,0.0,0.0);
9bf5e8ff 644 AliMatrix(idrotm[238],90.0,180.0,90.0,270.0,0.0,0.0);
645 AliMatrix(idrotm[239],90.0,162.0,90.0,252.0,0.0,0.0);
646 AliMatrix(idrotm[240],90.0,310.0,90.0,40.0,0.0,0.0);
647 AliMatrix(idrotm[241],90.0,319.0,90.0,49.0,0.0,0.0);
648 AliMatrix(idrotm[242],90.0,328.0,90.0,58.0,0.0,0.0);
649 AliMatrix(idrotm[243],90.0,337.0,90.0,67.0,0.0,0.0);
9d2da7b3 650 AliMatrix(idrotm[244],90.0,216.0,90.0,306.0,0.0,0.0);
651 AliMatrix(idrotm[245],90.0,36.0,90.0,126.0,0.0,0.0);
652 AliMatrix(idrotm[246],90.0,108.0,90.0,198.0,0.0,0.0);
653 AliMatrix(idrotm[247],90.0,144.0,90.0,234.0,0.0,0.0);
654 AliMatrix(idrotm[248],90.0,288.0,90.0,18.0,0.0,0.0);
655 AliMatrix(idrotm[249],90.0,324.0,90.0,54.0,0.0,0.0);
656 AliMatrix(idrotm[1003],90.0,73.5,90.0,163.5,0.0,0.0);
657 AliMatrix(idrotm[1011],90.0,342.0,90.0,72.0,0.0,0.0);
658 AliMatrix(idrotm[1039],90.0,72.0,90.0,162.0,0.0,0.0);
659 AliMatrix(idrotm[1043],90.0,66.91,90.0,156.91,0.0,0.0);
660 AliMatrix(idrotm[1065],90.0,144.0,90.0,234.0,0.0,0.0);
661 AliMatrix(idrotm[1078],90.0,180.0,90.0,270.0,0.0,0.0);
662 AliMatrix(idrotm[1088],90.0,57.41,90.0,147.41,0.0,0.0);
663 AliMatrix(idrotm[1089],90.0,333.0,90.0,63.0,0.0,0.0);
664 AliMatrix(idrotm[1090],90.0,351.0,90.0,81.0,0.0,0.0);
665 AliMatrix(idrotm[1091],90.0,216.0,90.0,306.0,0.0,0.0);
666 AliMatrix(idrotm[1092],90.0,27.0,90.0,117.0,0.0,0.0);
667 AliMatrix(idrotm[1093],90.0,18.0,90.0,108.0,0.0,0.0);
668 AliMatrix(idrotm[1094],90.0,9.0,90.0,99.0,0.0,0.0);
669 AliMatrix(idrotm[1104],90.0,252.0,90.0,342.0,0.0,0.0);
670 AliMatrix(idrotm[1106],90.0,36.0,90.0,126.0,0.0,0.0);
671 AliMatrix(idrotm[1107],90.0,108.0,90.0,198.0,0.0,0.0);
672 AliMatrix(idrotm[1108],90.0,324.0,90.0,54.0,180.0,0.0);
673 AliMatrix(idrotm[1109],90.0,0.0,90.0,90.0,180.0,0.0);
674 AliMatrix(idrotm[1110],90.0,36.0,90.0,126.0,180.0,0.0);
675 AliMatrix(idrotm[1111],90.0,72.0,90.0,162.0,180.0,0.0);
676 AliMatrix(idrotm[1112],90.0,108.0,90.0,198.0,180.0,0.0);
677 AliMatrix(idrotm[1113],90.0,144.0,90.0,234.0,180.0,0.0);
678 AliMatrix(idrotm[1114],90.0,180.0,90.0,270.0,180.0,0.0);
679 AliMatrix(idrotm[1115],90.0,216.0,90.0,306.0,180.0,0.0);
680 AliMatrix(idrotm[1116],90.0,252.0,90.0,342.0,180.0,0.0);
681 AliMatrix(idrotm[1117],90.0,288.0,90.0,18.0,0.0,0.0);
682 AliMatrix(idrotm[1118],90.0,288.0,90.0,18.0,180.0,0.0);
683 AliMatrix(idrotm[1130],90.0,324.0,90.0,54.0,0.0,0.0);
684
685 }
686
db915fea 687 // SDD
688
689 AliMatrix(idrotm[301],0.0,0.0,90.0,90.0,90.0,180.0);
690 AliMatrix(idrotm[302],0.0,0.0,90.0,90.0,90.0,0.0);
691 AliMatrix(idrotm[303],180.0,0.0,90.0,90.0,90.0,0.0);
692 AliMatrix(idrotm[304],180.0,0.0,90.0,90.0,90.0,180.0);
693 AliMatrix(idrotm[305],90.0,347.14,90.0,77.14,0.0,0.0);
694 AliMatrix(idrotm[306],90.0,321.43,90.0,51.43,0.0,0.0);
695 AliMatrix(idrotm[307],90.0,295.71,90.0,25.71,0.0,0.0);
696 AliMatrix(idrotm[308],90.0,244.29,90.0,334.29,0.0,0.0);
697 AliMatrix(idrotm[309],90.0,218.57,90.0,308.57,0.0,0.0);
698 AliMatrix(idrotm[310],90.0,167.14,90.0,257.14,0.0,0.0);
699 AliMatrix(idrotm[311],90.0,141.43,90.0,231.43,0.0,0.0);
700 AliMatrix(idrotm[312],90.0,0.0,0.0,0.0,90.0,270.0);
701 AliMatrix(idrotm[313],90.0,115.71,90.0,205.71,0.0,0.0);
702 AliMatrix(idrotm[314],90.0,335.45,90.0,65.45,0.0,0.0);
703 AliMatrix(idrotm[315],90.0,319.09,90.0,49.09,0.0,0.0);
704 AliMatrix(idrotm[316],90.0,302.73,90.0,32.73,0.0,0.0);
705 AliMatrix(idrotm[317],90.0,286.36,90.0,16.36,0.0,0.0);
706 AliMatrix(idrotm[318],90.0,270.0,90.0,360.0,0.0,0.0);
707 AliMatrix(idrotm[319],90.0,253.64,90.0,343.64,0.0,0.0);
708 AliMatrix(idrotm[320],90.0,237.27,90.0,327.27,0.0,0.0);
709 AliMatrix(idrotm[321],90.0,12.86,90.0,102.86,0.0,0.0);
710 AliMatrix(idrotm[322],90.0,220.91,90.0,310.91,0.0,0.0);
711 AliMatrix(idrotm[323],90.0,204.55,90.0,294.55,0.0,0.0);
712 AliMatrix(idrotm[324],90.0,188.18,90.0,278.18,0.0,0.0);
713 AliMatrix(idrotm[325],90.0,171.82,90.0,261.82,0.0,0.0);
714 AliMatrix(idrotm[326],90.0,155.45,90.0,245.45,0.0,0.0);
715 AliMatrix(idrotm[327],90.0,139.09,90.0,229.09,0.0,0.0);
716 AliMatrix(idrotm[328],90.0,122.73,90.0,212.73,0.0,0.0);
717 AliMatrix(idrotm[329],90.0,106.36,90.0,196.36,0.0,0.0);
718 AliMatrix(idrotm[330],90.0,73.64,90.0,163.64,0.0,0.0);
719 AliMatrix(idrotm[331],90.0,40.91,90.0,130.91,0.0,0.0);
720 AliMatrix(idrotm[332],90.0,24.55,90.0,114.55,0.0,0.0);
721 AliMatrix(idrotm[333],90.0,38.57,90.0,128.57,0.0,0.0);
722 AliMatrix(idrotm[334],90.0,351.82,90.0,81.82,0.0,0.0);
723 AliMatrix(idrotm[335],90.0,8.18,90.0,98.18,0.0,0.0);
724 AliMatrix(idrotm[336],90.0,64.29,90.0,154.29,0.0,0.0);
725 AliMatrix(idrotm[337],111.0,300.0,21.0,300.0,90.0,30.0);
726 AliMatrix(idrotm[338],69.0,240.0,159.0,240.0,90.0,150.0);
727 AliMatrix(idrotm[339],111.0,240.0,21.0,240.0,90.0,150.0);
728 AliMatrix(idrotm[340],69.0,300.0,159.0,300.0,90.0,30.0);
729 AliMatrix(idrotm[341],128.0,0.0,38.0,0.0,90.0,270.0);
730 AliMatrix(idrotm[342],90.0,240.0,180.0,0.0,90.0,330.);
731 AliMatrix(idrotm[343],90.0,120.0,180.0,0.0,90.0,210.0);
732 AliMatrix(idrotm[344],90.0,0.0,180.0,0.0,90.0,90.0);
733 AliMatrix(idrotm[345],90.0,180.0,90.0,90.0,0.0,0.0);
734 AliMatrix(idrotm[346],90.0,300.0,90.0,30.0,0.0,0.0);
735 AliMatrix(idrotm[347],90.0,240.0,90.0,150.0,0.0,0.0);
736 AliMatrix(idrotm[348],90.0,180.0,0.0,0.0,90.0,270.0);
737 AliMatrix(idrotm[349],90.0,235.0,90.0,145.0,0.0,0.0);
738 AliMatrix(idrotm[350],90.0,90.0,90.0,180.0,0.0,0.0);
739 AliMatrix(idrotm[351],90.0,305.0,90.0,35.0,0.0,0.0);
740 AliMatrix(idrotm[352],0.0,0.0,90.0,0.0,90.0,90.0);
741 AliMatrix(idrotm[353],90.0,60.0,90.0,150.0,0.0,0.0);
742 AliMatrix(idrotm[354],90.0,120.0,90.0,30.0,0.0,0.0);
743 AliMatrix(idrotm[355],90.0,180.0,90.0,90.0,180.0,0.0);
744 AliMatrix(idrotm[356],90.0,270.0,90.0,0.0,0.0,0.0);
745 AliMatrix(idrotm[366],90.0,57.27,90.0,147.27,0.0,0.0);
746 AliMatrix(idrotm[386],90.0,192.86,90.0,282.86,0.0,0.0);
747
748 // SSD
749
750 AliMatrix(idrotm[501],90.0,148.24,90.0,238.24,0.0,0.0);
751 AliMatrix(idrotm[503],90.0,137.65,90.0,227.65,0.0,0.0);
752 AliMatrix(idrotm[504],90.0,127.06,90.0,217.06,0.0,0.0);
753 AliMatrix(idrotm[505],90.0,116.47,90.0,206.47,0.0,0.0);
754 AliMatrix(idrotm[506],90.0,105.88,90.0,195.88,0.0,0.0);
755 AliMatrix(idrotm[507],90.0,95.29,90.0,185.29,0.0,0.0);
756 AliMatrix(idrotm[508],90.0,84.71,90.0,174.71,0.0,0.0);
757 AliMatrix(idrotm[509],90.0,74.12,90.0,164.12,0.0,0.0);
758 AliMatrix(idrotm[510],90.0,63.53,90.0,153.53,0.0,0.0);
759 AliMatrix(idrotm[511],90.0,52.94,90.0,142.94,0.0,0.0);
760 AliMatrix(idrotm[512],90.0,42.35,90.0,132.35,0.0,0.0);
761 AliMatrix(idrotm[513],90.0,31.76,90.0,121.76,0.0,0.0);
762 AliMatrix(idrotm[514],90.0,10.59,90.0,100.59,0.0,0.0);
763 AliMatrix(idrotm[515],90.0,349.41,90.0,79.41,0.0,0.0);
764 AliMatrix(idrotm[516],90.0,338.82,90.0,68.82,0.0,0.0);
765 AliMatrix(idrotm[517],90.0,328.24,90.0,58.24,0.0,0.0);
766 AliMatrix(idrotm[518],90.0,317.65,90.0,47.65,0.0,0.0);
767 AliMatrix(idrotm[519],90.0,307.06,90.0,37.06,0.0,0.0);
768 AliMatrix(idrotm[520],90.0,296.47,90.0,26.47,0.0,0.0);
769 AliMatrix(idrotm[521],90.0,285.88,90.0,15.88,0.0,0.0);
770 AliMatrix(idrotm[522],90.0,275.29,90.0,5.29,0.0,0.0);
771 AliMatrix(idrotm[523],90.0,264.71,90.0,354.71,0.0,0.0);
772 AliMatrix(idrotm[524],90.0,254.12,90.0,344.12,0.0,0.0);
773 AliMatrix(idrotm[525],90.0,243.53,90.0,333.53,0.0,0.0);
774 AliMatrix(idrotm[526],90.0,232.94,90.0,322.94,0.0,0.0);
775 AliMatrix(idrotm[527],90.0,222.35,90.0,312.35,0.0,0.0);
776 AliMatrix(idrotm[528],90.0,211.76,90.0,301.76,0.0,0.0);
777 AliMatrix(idrotm[529],90.0,190.59,90.0,280.59,0.0,0.0);
778 AliMatrix(idrotm[530],90.0,169.41,90.0,259.41,0.0,0.0);
779 AliMatrix(idrotm[531],90.0,158.82,90.0,248.82,0.0,0.0);
780 AliMatrix(idrotm[532],90.0,360.0,90.0,90.0,0.0,0.0);
781 AliMatrix(idrotm[533],90.0,180.0,90.0,270.0,0.0,0.0);
782 AliMatrix(idrotm[534],90.0,189.47,90.0,279.47,0.0,0.0);
9d2da7b3 783 AliMatrix(idrotm[535],90.0,198.95,90.0,288.95,0.0,0.0);
db915fea 784 AliMatrix(idrotm[537],90.0,217.89,90.0,307.89,0.0,0.0);
785 AliMatrix(idrotm[538],90.0,227.37,90.0,317.37,0.0,0.0);
786 AliMatrix(idrotm[539],90.0,236.84,90.0,326.84,0.0,0.0);
787 AliMatrix(idrotm[540],90.0,246.32,90.0,336.32,0.0,0.0);
788 AliMatrix(idrotm[541],90.0,255.79,90.0,345.79,0.0,0.0);
789 AliMatrix(idrotm[542],90.0,265.26,90.0,355.26,0.0,0.0);
790 AliMatrix(idrotm[543],90.0,274.74,90.0,4.74,0.0,0.0);
791 AliMatrix(idrotm[544],90.0,284.21,90.0,14.21,0.0,0.0);
792 AliMatrix(idrotm[545],90.0,293.68,90.0,23.68,0.0,0.0);
793 AliMatrix(idrotm[546],90.0,303.16,90.0,33.16,0.0,0.0);
794 AliMatrix(idrotm[547],90.0,312.63,90.0,42.63,0.0,0.0);
795 AliMatrix(idrotm[548],90.0,322.11,90.0,52.11,0.0,0.0);
796 AliMatrix(idrotm[549],90.0,331.58,90.0,61.58,0.0,0.0);
797 AliMatrix(idrotm[550],90.0,341.05,90.0,71.05,0.0,0.0);
798 AliMatrix(idrotm[551],90.0,350.53,90.0,80.53,0.0,0.0);
799 AliMatrix(idrotm[552],90.0,9.47,90.0,99.47,0.0,0.0);
9d2da7b3 800 AliMatrix(idrotm[553],90.0,18.95,90.0,108.95,0.0,0.0);
db915fea 801 AliMatrix(idrotm[555],90.0,37.89,90.0,127.89,0.0,0.0);
802 AliMatrix(idrotm[556],90.0,47.37,90.0,137.37,0.0,0.0);
803 AliMatrix(idrotm[557],90.0,56.84,90.0,146.84,0.0,0.0);
804 AliMatrix(idrotm[558],90.0,66.32,90.0,156.32,0.0,0.0);
805 AliMatrix(idrotm[559],90.0,75.79,90.0,165.79,0.0,0.0);
806 AliMatrix(idrotm[560],90.0,85.26,90.0,175.26,0.0,0.0);
807 AliMatrix(idrotm[561],90.0,94.74,90.0,184.74,0.0,0.0);
808 AliMatrix(idrotm[562],90.0,104.21,90.0,194.21,0.0,0.0);
809 AliMatrix(idrotm[563],90.0,113.68,90.0,203.68,0.0,0.0);
810 AliMatrix(idrotm[564],90.0,123.16,90.0,213.16,0.0,0.0);
811 AliMatrix(idrotm[565],90.0,132.63,90.0,222.63,0.0,0.0);
812 AliMatrix(idrotm[566],90.0,142.11,90.0,232.11,0.0,0.0);
813 AliMatrix(idrotm[567],90.0,151.58,90.0,241.58,0.0,0.0);
814 AliMatrix(idrotm[568],90.0,161.05,90.0,251.05,0.0,0.0);
815 AliMatrix(idrotm[569],90.0,170.53,90.0,260.53,0.0,0.0);
816 AliMatrix(idrotm[570],90.0,180.0,90.0,90.0,180.0,0.0);
817 AliMatrix(idrotm[571],90.0,0.0,0.0,0.0,90.0,270.0);
818 AliMatrix(idrotm[572],90.0,180.0,0.0,0.0,90.0,270.0);
819 AliMatrix(idrotm[573],90.0,180.0,90.0,90.0,0.0,0.0);
820 AliMatrix(idrotm[575],90.0,120.0,180.0,0.0,90.0,210.0);
821 AliMatrix(idrotm[576],65.71,300.0,90.0,30.0,24.29,120.0);
822 AliMatrix(idrotm[577],114.29,300.0,90.0,30.0,155.71,120.0);
823 AliMatrix(idrotm[579],65.71,240.0,90.0,150.0,24.29,60.0);
824 AliMatrix(idrotm[580],114.29,240.0,90.0,150.0,155.71,60.0);
825 AliMatrix(idrotm[581],90.0,240.0,180.0,0.0,90.0,330.0);
826 AliMatrix(idrotm[583],90.0,0.0,180.0,0.0,90.0,90.0);
827 AliMatrix(idrotm[584],90.0,180.0,180.0,0.0,90.0,90.0);
828 AliMatrix(idrotm[586],180.0,0.0,90.0,90.0,90.0,0.0);
829 AliMatrix(idrotm[618],90.0,201.18,90.0,291.18,0.0,0.0);
830 AliMatrix(idrotm[620],90.0,28.42,90.0,118.42,0.0,0.0);
831 AliMatrix(idrotm[623],90.0,208.42,90.0,298.42,0.0,0.0);
832 AliMatrix(idrotm[633],132.46,0.0,90.0,90.0,42.46,360.0);
833 AliMatrix(idrotm[653],90.0,21.18,90.0,111.18,0.0,0.0);
834
9d2da7b3 835
836 // SDD cone
837
838 AliMatrix(idrotm[846],90.0,300.0,90.0,30.0,0.0,0.0);
839 AliMatrix(idrotm[851],90.0,305.0,90.0,35.0,0.0,0.0);
840 AliMatrix(idrotm[853],90.0,60.0,90.0,150.0,0.0,0.0);
841 AliMatrix(idrotm[856],90.0,0.0,90.0,90.0,180.0,0.0);
842 AliMatrix(idrotm[857],90.0,5.0,90.0,95.0,180.0,0.0);
843 AliMatrix(idrotm[858],90.0,65.0,90.0,155.0,180.0,0.0);
844 AliMatrix(idrotm[859],90.0,305.0,90.0,35.0,180.0,0.0);
845 AliMatrix(idrotm[860],90.0,245.0,90.0,335.0,180.0,0.0);
846 AliMatrix(idrotm[861],90.0,185.0,90.0,275.0,180.0,0.0);
847 AliMatrix(idrotm[862],90.0,125.0,90.0,215.0,180.0,0.0);
848 AliMatrix(idrotm[863],90.0,257.5,90.0,347.5,180.0,0.0);
849 AliMatrix(idrotm[864],90.0,227.5,90.0,317.5,180.0,0.0);
850 AliMatrix(idrotm[865],90.0,197.5,90.0,287.5,180.0,0.0);
851 AliMatrix(idrotm[867],90.0,167.5,90.0,257.5,180.0,0.0);
852 AliMatrix(idrotm[868],90.0,287.5,90.0,17.5,0.0,0.0);
853 AliMatrix(idrotm[869],90.0,137.5,90.0,227.5,180.0,0.0);
854 AliMatrix(idrotm[870],90.0,107.5,90.0,197.5,180.0,0.0);
855 AliMatrix(idrotm[871],90.0,77.5,90.0,167.5,180.0,0.0);
856 AliMatrix(idrotm[872],90.0,47.5,90.0,137.5,180.0,0.0);
857 AliMatrix(idrotm[873],90.0,17.5,90.0,107.5,180.0,0.0);
858 AliMatrix(idrotm[874],90.0,347.5,90.0,77.5,180.0,0.0);
859 AliMatrix(idrotm[875],90.0,317.5,90.0,47.5,180.0,0.0);
860 AliMatrix(idrotm[876],90.0,287.5,90.0,17.5,180.0,0.0);
861 AliMatrix(idrotm[877],90.0,185.0,90.0,275.0,0.0,0.0);
862 AliMatrix(idrotm[878],90.0,180.0,90.0,270.0,0.0,0.0);
863 AliMatrix(idrotm[879],90.0,125.0,90.0,215.0,0.0,0.0);
864 AliMatrix(idrotm[880],90.0,65.0,90.0,155.0,0.0,0.0);
865 AliMatrix(idrotm[881],90.0,5.0,90.0,95.0,0.0,0.0);
866 AliMatrix(idrotm[882],90.0,245.0,90.0,335.0,0.0,0.0);
867 AliMatrix(idrotm[883],90.0,47.5,90.0,137.5,0.0,0.0);
868 AliMatrix(idrotm[884],90.0,77.5,90.0,167.5,0.0,0.0);
869 AliMatrix(idrotm[885],90.0,107.5,90.0,197.5,0.0,0.0);
870 AliMatrix(idrotm[887],90.0,137.5,90.0,227.5,0.0,0.0);
871 AliMatrix(idrotm[888],90.0,167.5,90.0,257.5,0.0,0.0);
872 AliMatrix(idrotm[889],90.0,197.5,90.0,287.5,0.0,0.0);
873 AliMatrix(idrotm[890],90.0,227.5,90.0,317.5,0.0,0.0);
874 AliMatrix(idrotm[891],90.0,347.5,90.0,77.5,0.0,0.0);
875 AliMatrix(idrotm[892],90.0,317.5,90.0,47.5,0.0,0.0);
876 AliMatrix(idrotm[893],90.0,257.5,90.0,347.5,0.0,0.0);
877 AliMatrix(idrotm[894],90.0,270.0,0.0,0.0,90.0,180.0);
878 AliMatrix(idrotm[895],90.0,286.36,0.0,0.0,90.0,196.36);
879 AliMatrix(idrotm[896],90.0,302.73,0.0,0.0,90.0,212.73);
880 AliMatrix(idrotm[897],90.0,319.09,0.0,0.0,90.0,229.09);
881 AliMatrix(idrotm[898],90.0,17.5,90.0,107.5,0.0,0.0);
882 AliMatrix(idrotm[899],90.0,335.45,0.0,0.0,90.0,245.45);
883 AliMatrix(idrotm[900],90.0,351.82,0.0,0.0,90.0,261.82);
884 AliMatrix(idrotm[901],90.0,8.18,0.0,0.0,90.0,278.18);
885 AliMatrix(idrotm[902],90.0,24.55,0.0,0.0,90.0,294.55);
886 AliMatrix(idrotm[903],90.0,40.91,0.0,0.0,90.0,310.91);
887 AliMatrix(idrotm[904],90.0,57.27,0.0,0.0,90.0,327.27);
888 AliMatrix(idrotm[905],90.0,73.64,0.0,0.0,90.0,343.64);
889 AliMatrix(idrotm[906],90.0,90.0,0.0,0.0,90.0,360.0);
890 AliMatrix(idrotm[907],90.0,106.36,0.0,0.0,90.0,16.36);
891 AliMatrix(idrotm[908],90.0,122.73,0.0,0.0,90.0,32.73);
892 AliMatrix(idrotm[909],90.0,139.09,0.0,0.0,90.0,49.09);
893 AliMatrix(idrotm[910],90.0,155.45,0.0,0.0,90.0,65.45);
894 AliMatrix(idrotm[911],90.0,171.82,0.0,0.0,90.0,81.82);
895 AliMatrix(idrotm[912],90.0,188.18,0.0,0.0,90.0,98.18);
896 AliMatrix(idrotm[913],90.0,204.55,0.0,0.0,90.0,114.55);
897 AliMatrix(idrotm[914],90.0,220.91,0.0,0.0,90.0,130.91);
898 AliMatrix(idrotm[915],90.0,237.27,0.0,0.0,90.0,147.27);
899 AliMatrix(idrotm[916],90.0,253.64,0.0,0.0,90.0,163.64);
900 AliMatrix(idrotm[917],90.0,295.71,0.0,0.0,90.0,205.71);
901 AliMatrix(idrotm[918],90.0,321.43,0.0,0.0,90.0,231.43);
902 AliMatrix(idrotm[919],90.0,347.14,0.0,0.0,90.0,257.14);
903 AliMatrix(idrotm[920],90.0,12.86,0.0,0.0,90.0,282.86);
904 AliMatrix(idrotm[921],90.0,38.57,0.0,0.0,90.0,308.57);
905 AliMatrix(idrotm[922],90.0,64.29,0.0,0.0,90.0,334.29);
906 AliMatrix(idrotm[923],90.0,115.71,0.0,0.0,90.0,25.71);
907 AliMatrix(idrotm[924],90.0,141.43,0.0,0.0,90.0,51.43);
908 AliMatrix(idrotm[925],90.0,167.14,0.0,0.0,90.0,77.14);
909 AliMatrix(idrotm[926],90.0,192.86,0.0,0.0,90.0,102.86);
910 AliMatrix(idrotm[927],90.0,218.57,0.0,0.0,90.0,128.57);
911 AliMatrix(idrotm[928],90.0,244.29,0.0,0.0,90.0,154.29);
912 AliMatrix(idrotm[929],90.0,120.0,90.0,210.0,0.0,0.0);
913 AliMatrix(idrotm[930],90.0,240.0,90.0,330.0,0.0,0.0);
914 AliMatrix(idrotm[931],90.0,60.0,90.0,150.0,180.0,0.0);
915 AliMatrix(idrotm[932],90.0,120.0,90.0,210.0,180.0,0.0);
916 AliMatrix(idrotm[933],90.0,180.0,90.0,270.0,180.0,0.0);
917 AliMatrix(idrotm[934],90.0,240.0,90.0,330.0,180.0,0.0);
918 AliMatrix(idrotm[935],90.0,300.0,90.0,30.0,180.0,0.0);
919
920 // SSD cone
921
922 AliMatrix(idrotm[701],90.0,0.0,90.0,90.0,180.0,0.0);
923 AliMatrix(idrotm[702],90.0,347.5,90.0,77.5,180.0,0.0);
924 AliMatrix(idrotm[703],90.0,17.5,90.0,107.5,180.0,0.0);
925 AliMatrix(idrotm[704],90.0,47.5,90.0,137.5,180.0,0.0);
926 AliMatrix(idrotm[705],90.0,77.5,90.0,167.5,180.0,0.0);
927 AliMatrix(idrotm[706],90.0,107.5,90.0,197.5,180.0,0.0);
928 AliMatrix(idrotm[707],90.0,137.5,90.0,227.5,180.0,0.0);
929 AliMatrix(idrotm[708],90.0,167.5,90.0,257.5,180.0,0.0);
930 AliMatrix(idrotm[709],90.0,197.5,90.0,287.5,180.0,0.0);
931 AliMatrix(idrotm[710],90.0,227.5,90.0,317.5,180.0,0.0);
932 AliMatrix(idrotm[711],90.0,257.5,90.0,347.5,180.0,0.0);
933 AliMatrix(idrotm[712],90.0,287.5,90.0,17.5,180.0,0.0);
934 AliMatrix(idrotm[713],90.0,317.5,90.0,47.5,180.0,0.0);
935 AliMatrix(idrotm[714],90.0,328.4,90.0,58.4,180.0,0.0);
936 AliMatrix(idrotm[715],90.0,28.4,90.0,118.4,180.0,0.0);
937 AliMatrix(idrotm[716],90.0,88.4,90.0,178.4,180.0,0.0);
938 AliMatrix(idrotm[717],90.0,148.4,90.0,238.4,180.0,0.0);
939 AliMatrix(idrotm[718],90.0,208.4,90.0,298.4,180.0,0.0);
940 AliMatrix(idrotm[719],90.0,268.4,90.0,358.4,180.0,0.0);
941 AliMatrix(idrotm[720],90.0,28.4,90.0,118.4,0.0,0.0);
942 AliMatrix(idrotm[721],90.0,88.4,90.0,178.4,0.0,0.0);
943 AliMatrix(idrotm[722],90.0,148.4,90.0,238.4,0.0,0.0);
944 AliMatrix(idrotm[723],90.0,208.4,90.0,298.4,0.0,0.0);
945 AliMatrix(idrotm[724],90.0,268.4,90.0,358.4,0.0,0.0);
946 AliMatrix(idrotm[725],90.0,328.4,90.0,58.4,0.0,0.0);
947 AliMatrix(idrotm[726],90.0,77.5,90.0,167.5,0.0,0.0);
948 AliMatrix(idrotm[727],90.0,107.5,90.0,197.5,0.0,0.0);
949 AliMatrix(idrotm[728],90.0,137.5,90.0,227.5,0.0,0.0);
950 AliMatrix(idrotm[729],90.0,167.5,90.0,257.5,0.0,0.0);
951 AliMatrix(idrotm[730],90.0,227.5,90.0,317.5,0.0,0.0);
952 AliMatrix(idrotm[731],90.0,257.5,90.0,347.5,0.0,0.0);
953 AliMatrix(idrotm[732],90.0,317.5,90.0,47.5,0.0,0.0);
954 AliMatrix(idrotm[733],90.0,197.5,90.0,287.5,0.0,0.0);
955 AliMatrix(idrotm[734],90.0,347.5,90.0,77.5,0.0,0.0);
956 AliMatrix(idrotm[735],90.0,47.5,90.0,137.5,0.0,0.0);
957 AliMatrix(idrotm[768],90.0,287.5,90.0,17.5,0.0,0.0);
958 AliMatrix(idrotm[798],90.0,17.5,90.0,107.5,0.0,0.0);
959
960 // Services
961
962 AliMatrix(idrotm[200], 90., 0., 90., 90., 180., 0.);
db915fea 963
964
965 // CONVERT INTO CM (RL(SI)=9.36 CM)
9d2da7b3 966
db915fea 967 for (i = 0; i < 6; ++i) {
968 drl[i] = drl[i] / 100. * 9.36;
969 }
970
971 // FIELD CAGE HALF LENGTH
972
1e9111db 973 rlim = 50.;
e4f08ac3 974 zmax = 74.;
975 ztpc = 284.;
9d2da7b3 976
db915fea 977 // --- Define ghost volume containing the whole ITS (including services)
978 // and fill it with air
979
980 dgh[0] = 0.;
981 dgh[1] = 360.;
6d62fed9 982 dgh[2] = 16.;
e4f08ac3 983 dgh[3] = -ztpc-5.-0.1;
984 dgh[4] = 62.4;
db915fea 985 dgh[5] = 85.;
e4f08ac3 986 dgh[6] = -ztpc;
987 dgh[7] = 62;
db915fea 988 dgh[8] = 85.;
e4f08ac3 989 dgh[9] = -ztpc;
990 dgh[10] = 62;
991 dgh[11] = 62+4.;
992 dgh[12] = -97.5;
993 dgh[13] = 46;
1e9111db 994 dgh[14] = rlim+6;
e4f08ac3 995 dgh[15] = -zmax;
996 dgh[16] = 46;
1e9111db 997 dgh[17] = rlim+6;
e4f08ac3 998 dgh[18] = -48;
6d62fed9 999 dgh[19] = 6;
1e9111db 1000 dgh[20] = rlim+6;
e4f08ac3 1001 dgh[21] = -28.6;
6d62fed9 1002 dgh[22] = 6;
1e9111db 1003 dgh[23] = rlim+6;
e4f08ac3 1004 dgh[24] = -27.6;
6d62fed9 1005 dgh[25] = 3.295;
1e9111db 1006 dgh[26] = rlim+6;
e4f08ac3 1007 dgh[27] = 27.6;
6d62fed9 1008 dgh[28] = 3.295;
1e9111db 1009 dgh[29] = rlim+6;
e4f08ac3 1010 dgh[30] = 28.6;
6d62fed9 1011 dgh[31] = 6;
1e9111db 1012 dgh[32] = rlim+6;
e4f08ac3 1013 dgh[33] = 48;
6d62fed9 1014 dgh[34] = 6;
1e9111db 1015 dgh[35] = rlim+6;
e4f08ac3 1016 dgh[36] = zmax;
6d62fed9 1017 dgh[37] = 46;
1e9111db 1018 dgh[38] = rlim+6;
e4f08ac3 1019 dgh[39] = 97.5;
1020 dgh[40] = 46;
1e9111db 1021 dgh[41] = rlim+6;
e4f08ac3 1022 dgh[42] = ztpc;
1023 dgh[43] = 62;
1024 dgh[44] = 62+4.;
1025 dgh[45] = ztpc;
1026 dgh[46] = 62;
6d62fed9 1027 dgh[47] = 85.;
e4f08ac3 1028 dgh[48] = ztpc+4.+0.1;
6d62fed9 1029 dgh[49] = 62.4;
1030 dgh[50] = 85.;
1031 gMC->Gsvolu("ITSV", "PCON", idtmed[205], dgh, 51);
45725ec9 1032
6d62fed9 1033
db915fea 1034
1035 // --- Place the ghost volume in its mother volume (ALIC) and make it
1036 // invisible
1037
1038 gMC->Gspos("ITSV", 1, "ALIC", 0., 0., 0., 0, "ONLY");
1039 //gMC->Gsatt("ITSV", "SEEN", 0);
9d2da7b3 1040
1041
db915fea 1042 // --- Define ghost volume containing the six layers and fill it with air
1043
1044 dgh[0] = 0.;
1045 dgh[1] = 360.;
6d62fed9 1046 dgh[2] = 8.;
e4f08ac3 1047 dgh[3] = -zmax;
45725ec9 1048 dgh[4] = 46.;
e4f08ac3 1049 dgh[5] = rlim;
1050 dgh[6] = -47.5;
6d62fed9 1051 dgh[7] = 6.005;
e4f08ac3 1052 dgh[8] = rlim;
1053 dgh[9] = -28.5;
6d62fed9 1054 dgh[10] = 6.005;
e4f08ac3 1055 dgh[11] = rlim;
1056 dgh[12] = -27.5;
6d62fed9 1057 dgh[13] = 3.3;
e4f08ac3 1058 dgh[14] = rlim;
1059 dgh[15] = 27.5;
6d62fed9 1060 dgh[16] = 3.3;
e4f08ac3 1061 dgh[17] = rlim;
1062 dgh[18] = 28.5;
6d62fed9 1063 dgh[19] = 6.005;
e4f08ac3 1064 dgh[20] = rlim;
1065 dgh[21] = 47.5;
6d62fed9 1066 dgh[22] = 6.005;
e4f08ac3 1067 dgh[23] = rlim;
1068 dgh[24] = zmax;
6d62fed9 1069 dgh[25] = 46.;
e4f08ac3 1070 dgh[26] = rlim;
6d62fed9 1071 gMC->Gsvolu("ITSD", "PCON", idtmed[205], dgh, 27);
db915fea 1072
9d2da7b3 1073 // --- Place the ghost volume in its mother volume (ITSV) and make it
db915fea 1074 // invisible
1075
1076 gMC->Gspos("ITSD", 1, "ITSV", 0., 0., 0., 0, "ONLY");
1077 //gMC->Gsatt("ITSD", "SEEN", 0);
db915fea 1078
9d2da7b3 1079 // --- Define SPD (option 'a') volumes ----------------------------
1080
1081 // SPD - option 'a'
1082 // (this is NOT the default)
1083
1084 if (option == 1) {
1085
1086 dits[0] = 3.7;
1087 dits[1] = 7.75;
45725ec9 1088 dits[2] = 26.1;
9d2da7b3 1089 gMC->Gsvolu("IT12", "TUBE", idtmed[254], dits, 3);
1090
1091 dits[0] = 3.7;
1092 dits[1] = 7.7;
1093 dits[2] = 24;
1094 dits[3] = 57;
1095 dits[4] = 100;
1096 gMC->Gsvolu("I12A", "TUBS", idtmed[254], dits, 5); // sector
1097
1098 di10a[0] = 0.843;
1099 di10a[1] = ddet1+dchip1+dbus+0.0025;
1100 di10a[2] = 19.344;
1101 gMC->Gsvolu("I10A", "BOX ", idtmed[254], di10a, 3); // mother volume
1102 // on layer 1
1103 di20a[0] = 0.843;
1104 di20a[1] = ddet2+dchip2+dbus+0.0025;
1105 di20a[2] = 19.344;
1106 gMC->Gsvolu("I20A", "BOX ", idtmed[254], di20a, 3); // mother volume
1107 // on layer 2
1108 dits[0] = 1.3673;
1109 dits[1] = 0.01;
1110 dits[2] = 24;
1111 gMC->Gsvolu("I123", "BOX ", idtmed[253], dits, 3);
1112
1113 dits[0] = 0.06;
1114 dits[1] = 0.08;
1115 dits[2] = 24;
1116 dits[3] = -36.79;
1117 dits[4] = 21.834;
1118 gMC->Gsvolu("I121", "TUBS", idtmed[253], dits, 5);
1119
1120 dits[0] = 0.1253;
1121 dits[1] = 0.01;
1122 dits[2] = 24;
1123 gMC->Gsvolu("I122", "BOX ", idtmed[253], dits, 3);
1124
1125 dits[0] = 0.04;
1126 dits[1] = 0.06 ;
1127 dits[2] = 24;
1128 dits[3] = 126.79;
1129 dits[4] = 270;
1130 gMC->Gsvolu("I120", "TUBS", idtmed[253], dits, 5);
1131
1132 dits[0] = 0.1134;
1133 dits[1] = 0.01;
1134 dits[2] = 24;
1135 gMC->Gsvolu("I144", "BOX ", idtmed[253], dits, 3);
1136
1137 dits[0] = 0.25;
1138 dits[1] = 0.06;
1139 dits[2] = 24;
1140 gMC->Gsvolu("I113", "BOX ", idtmed[254], dits, 3);
1141
1142 dits[0] = 0.077;
1143 dits[1] = 0.01;
1144 dits[2] = 24;
1145 gMC->Gsvolu("I143", "BOX ", idtmed[253], dits, 3);
1146
1147 dits[0] = 0.04;
1148 dits[1] = 0.06;
1149 dits[2] = 24;
1150 dits[3] = 0;
1151 dits[4] = 90;
1152 gMC->Gsvolu("I142", "TUBS", idtmed[253], dits, 5);
1153
1154 dits[0] = 0.0695;
1155 dits[1] = 0.01;
1156 dits[2] = 24;
1157 gMC->Gsvolu("I141", "BOX ", idtmed[253], dits, 3);
1158
1159 dits[0] = 0.06;
1160 dits[1] = 0.08;
1161 dits[2] = 24;
1162 dits[3] = 0;
1163 dits[4] = 108;
1164 gMC->Gsvolu("I140", "TUBS", idtmed[253], dits, 5);
1165
1166 dits[0] = 0.1835;
1167 dits[1] = 0.01;
1168 dits[2] = 24;
1169 gMC->Gsvolu("I139", "BOX ", idtmed[253], dits, 3);
1170
1171 dits[0] = 0.1894 ;
1172 dits[1] = 0.01;
1173 dits[2] = 24;
1174 gMC->Gsvolu("I138", "BOX ", idtmed[253], dits, 3);
1175
1176 dits[0] = 0.04;
1177 dits[1] = 0.06;
1178 dits[2] = 24;
1179 dits[3] = 0;
1180 dits[4] = 75.261;
1181 gMC->Gsvolu("I137", "TUBS", idtmed[253], dits, 5);
1182
1183 dits[0] = 1.3401;
1184 dits[1] = 0.01;
1185 dits[2] = 24;
1186 gMC->Gsvolu("I136", "BOX ", idtmed[253], dits, 3);
1187
1188 dits[0] = 0.05;
1189 dits[1] = 0.07;
1190 dits[2] = 24;
1191 dits[3] = 0;
1192 dits[4] = 72.739;
1193 gMC->Gsvolu("I135", "TUBS", idtmed[253], dits, 5);
1194
1195 dits[0] = 0.1193;
1196 dits[1] = 0.01;
1197 dits[2] = 24;
1198 gMC->Gsvolu("I134", "BOX ", idtmed[253], dits, 3);
1199
1200 dits[0] = 0.163;
1201 dits[1] = 0.01;
1202 dits[2] = 24;
1203 gMC->Gsvolu("I133", "BOX ", idtmed[253], dits, 3);
1204
1205 dits[0] = 0.04;
1206 dits[1] = 0.06;
1207 dits[2] = 24;
1208 dits[3] = 0;
1209 dits[4] = 157.633;
1210 gMC->Gsvolu("I132", "TUBS", idtmed[253], dits, 5);
1211
1212 dits[0] = 0.2497;
1213 dits[1] = 0.01;
1214 dits[2] = 24;
1215 gMC->Gsvolu("I131", "BOX ", idtmed[253], dits, 3);
1216
1217 dits[0] = 0.06;
1218 dits[1] = 0.08;
1219 dits[2] = 24;
1220 dits[3] = 0;
1221 dits[4] = 148.633;
1222 gMC->Gsvolu("I130", "TUBS", idtmed[253], dits, 5);
1223
1224 dits[0] = 0.292;
1225 dits[1] = 0.01;
1226 dits[2] = 24;
1227 gMC->Gsvolu("I129", "BOX ", idtmed[253], dits, 3);
1228
1229 dits[0] = 0.163;
1230 dits[1] = 0.01;
1231 dits[2] = 24;
1232 gMC->Gsvolu("I128", "BOX ", idtmed[253], dits, 3);
1233
1234 dits[0] = 0.04;
1235 dits[1] = 0.06;
1236 dits[2] = 24;
1237 dits[3] = 0;
1238 dits[4] = 161.297;
1239 gMC->Gsvolu("I126", "TUBS", idtmed[253], dits, 5);
1240
1241 dits[0] = 0.2433;
1242 dits[1] = 0.01;
1243 dits[2] = 24;
1244 gMC->Gsvolu("I125", "BOX ", idtmed[253], dits, 3);
1245
1246 dits[0] = 0.06;
1247 dits[1] = 0.08;
1248 dits[2] = 24;
1249 dits[3] = 0;
1250 dits[4] = 42.883;
1251 gMC->Gsvolu("I124", "TUBS", idtmed[253], dits, 5);
1252
1253 di103[0] = 0.793;
1254 di103[1] = ddet1+dchip1;
1255 di103[2] = 3.536;
1256 gMC->Gsvolu("I103", "BOX ", idtmed[254], di103, 3); // contains det and chip
1257 // layer 1
1258 dits[0] = 0.793;
fc44ab90 1259 dits[1] = 0.475; //0.685; 0.015
9d2da7b3 1260 dits[2] = 2.5;
fc44ab90 1261 gMC->Gsvolu("I105", "BOX ", idtmed[290], dits, 3);
9d2da7b3 1262
1263 di104[0] = 0.843;
1264 di104[1] = dbus;
1265 di104[2] = 14.344;
1266 gMC->Gsvolu("I104", "BOX ", idtmed[275], di104, 3); // bus for both layers
1267
1268 di1d3[0] = 0.793;
1269 di1d3[1] = ddet2+dchip2;
1270 di1d3[2] = 3.536;
1271 gMC->Gsvolu("I1D3", "BOX ", idtmed[254], di1d3, 3); // contains det and chip
1272 // layer 2
1273 dits[0] = 0.793;
1274 dits[0] = 0.06;
1275 dits[1] = 0.08;
1276 dits[2] = 24;
1277 dits[3] = 0;
1278 dits[4] = 80;
1279 gMC->Gsvolu("I112", "TUBS", idtmed[253], dits, 5);
1280
1281 dits[0] = 0.04;
1282 dits[1] = 0.06;
1283 dits[2] = 24;
1284 dits[3] = 0;
1285 dits[4] = 80;
1286 gMC->Gsvolu("I111", "TUBS", idtmed[253], dits, 5);
1287
1288 dits[0] = 0.15;
1289 dits[1] = 0.0146;
1290 dits[2] = 24;
1291 gMC->Gsvolu("I118", "BOX ", idtmed[273], dits, 3);
1292
1293 dits[0] = 0.1315;
1294 dits[1] = 0.01;
1295 dits[2] = 24;
1296 gMC->Gsvolu("I110", "BOX ", idtmed[253], dits, 3);
1297
1298 dits[0] = 0.025;
1299 dits[1] = 0.035;
1300 dits[2] = 24;
1301 dits[3] = 0;
1302 dits[4] = 180;
1303 gMC->Gsvolu("I114", "TUBS", idtmed[264], dits, 5);
1304
e4f08ac3 1305 if (fluid == 1) {
1306 dits[0] = 0;
1307 dits[1] = 0.025;
1308 dits[2] = 24;
1309 dits[3] = 0;
1310 dits[4] = 180;
1311 gMC->Gsvolu("I115", "TUBS", idtmed[211], dits, 5); // set water as cooling fluid
1312 } else {
1313 dits[0] = 0;
1314 dits[1] = 0.025;
1315 dits[2] = 24;
1316 dits[3] = 0;
1317 dits[4] = 180;
1318 gMC->Gsvolu("I115", "TUBS", idtmed[212], dits, 5); // set freon as cooling fluid
1319 }
1320
9d2da7b3 1321 dits[0] = 0.063;
1322 dits[1] = 0.035;
1323 dits[2] = 24;
1324 gMC->Gsvolu("I116", "BOX ", idtmed[264], dits, 3);
1325
1326 di102[0] = 0.793;
1327 di102[1] = dchip1;
1328 di102[2] = 0.68;
1329 gMC->Gsvolu("I102", "BOX ", idtmed[201], di102, 3); // chip layer 1
1330
1331 di1d2[0] = 0.793;
1332 di1d2[1] = dchip2;
1333 di1d2[2] = 0.68;
1334 gMC->Gsvolu("I1D2", "BOX ", idtmed[201], di1d2, 3); // chip layer 2
1335
1336 di101[0] = 0.705;
1337 di101[1] = ddet1;
1338 di101[2] = 3.536;
1339 gMC->Gsvolu("I101", "BOX ", idtmed[250], di101, 3); // contains detector
1340 // layer 1
1341 di1d1[0] = 0.705;
1342 di1d1[1] = ddet2;
1343 di1d1[2] = 3.536;
1344 gMC->Gsvolu("I1D1", "BOX ", idtmed[250], di1d1, 3); // contains detector
1345 // layer 2
e4f08ac3 1346 if (fluid == 1) {
1347 dits[0] = 0.063;
1348 dits[1] = 0.025;
1349 dits[2] = 24;
1350 gMC->Gsvolu("I117", "BOX ", idtmed[211], dits, 3); // set water as cooling fuid
1351 } else {
1352 dits[0] = 0.063;
1353 dits[1] = 0.025;
1354 dits[2] = 24;
1355 gMC->Gsvolu("I117", "BOX ", idtmed[212], dits, 3); // set freon as cooling fluid
1356 }
9d2da7b3 1357
1358 dits1[0] = 0.64;
1359 dits1[1] = ddet1;
1360 dits1[2] = 3.48;
1361 gMC->Gsvolu("ITS1", "BOX ", idtmed[200], dits1, 3); // detector layer 1
1362
1363 dits2[0] = 0.64;
1364 dits2[1] = ddet2;
1365 dits2[2] = 3.48;
1366 gMC->Gsvolu("ITS2", "BOX ", idtmed[200], dits2, 3); // detector layer 2
1367
1368 dits[0] = 3.701;
1369 dits[1] = 7.699;
1370 dits[2] = 4;
1371 dits[3] = 57.1;
1372 dits[4] = 99.9;
1373 gMC->Gsvolu("I650", "TUBS", idtmed[254], dits, 5); // was I150 in old geom.
1374
1375 dits[0] = 0;
1376 dits[1] = 0.5;
1377 dits[2] = 1.5;
1378 gMC->Gsvolu("I676", "TUBE", idtmed[274], dits, 3); // was I176 in old geom.
1379
1380 dits[0] = 0;
1381 dits[1] = 0.18;
1382 dits[2] = 0.8;
1383 gMC->Gsvolu("I673", "TUBE", idtmed[274], dits, 3); // was I173 in old geom.
1384
1385 dits[0] = 0;
1386 dits[1] = 0.18;
1387 dits[2] = 3;
1388 gMC->Gsvolu("I671", "TUBE", idtmed[274], dits, 3); // was I171 in old geom.
1389
1390 dits[0] = 0;
1391 dits[1] = 0.075;
1392 dits[2] = 0.8;
1393 gMC->Gsvolu("I669", "TUBE", idtmed[264], dits, 3); // was I169 in old geom.
1394
1395 dits[0] = 3.5;
1396 dits[1] = 5.6;
1397 dits[2] = 0.55;
1398 dits[3] = 0;
1399 dits[4] = 38;
1400 gMC->Gsvolu("I667", "TUBS", idtmed[263], dits, 5); // was I167 in old geom.
1401
1402 dits[0] = 6.6;
1403 dits[1] = 7.6;
1404 dits[2] = 0.5;
1405 dits[3] = 0;
1406 dits[4] = 9;
1407 gMC->Gsvolu("I666", "TUBS", idtmed[263], dits, 5); // was I166 in old geom.
1408
1409 dits[0] = 0.26;
1410 dits[1] = 0.32;
1411 dits[2] = 0.55;
1412 gMC->Gsvolu("I678", "TUBE", idtmed[263], dits, 3); // was I178 in old geom.
1413
e4f08ac3 1414 if (fluid == 1) {
1415 dits[0] = 0;
1416 dits[1] = 0.3;
1417 dits[2] = 1.5;
1418 gMC->Gsvolu("I677", "TUBE", idtmed[211], dits, 3); // set water as cooling fluid
1419 // was I177 in old geom.
1420 } else {
1421 dits[0] = 0;
1422 dits[1] = 0.3;
1423 dits[2] = 1.5;
1424 gMC->Gsvolu("I677", "TUBE", idtmed[212], dits, 3); // set freon as cooling fluid
1425 // was I177 in old geom.
1426 }
1427
9d2da7b3 1428 dits[0] = 0.07;
1429 dits[1] = 0.125;
1430 dits[2] = 0.3;
1431 gMC->Gsvolu("I675", "TUBE", idtmed[263], dits, 3); // was I175 in old geom.
1432
e4f08ac3 1433 if (fluid == 1) {
1434 dits[0] = 0;
1435 dits[1] = 0.1;
1436 dits[2] = 0.8;
1437 gMC->Gsvolu("I674", "TUBE", idtmed[211], dits, 3); // set water as cooling fluid
1438 // was I174 in old geom.
1439 } else {
1440 dits[0] = 0;
1441 dits[1] = 0.1;
1442 dits[2] = 0.8;
1443 gMC->Gsvolu("I674", "TUBE", idtmed[212], dits, 3); // set freon as cooling fluid
1444 // was I174 in old geom.
1445 }
1446
1447 if (fluid == 1) {
1448 dits[0] = 0;
1449 dits[1] = 0.1;
1450 dits[2] = 3;
1451 gMC->Gsvolu("I672", "TUBE", idtmed[211], dits, 3); // set water as cooling fluid
1452 // was I172 in old geom.
1453 } else {
1454 dits[0] = 0;
1455 dits[1] = 0.1;
1456 dits[2] = 3;
1457 gMC->Gsvolu("I672", "TUBE", idtmed[212], dits, 3); // set freon as cooling fluid
1458 // was I172 in old geom.
1459 }
1460
1461 if (fluid == 1) {
1462 dits[0] = 0;
1463 dits[1] = 0.0746;
1464 dits[2] = 0.8;
1465 gMC->Gsvolu("I670", "TUBE", idtmed[211], dits, 3); // set water as cooling fluid
1466 // was I170 in old geom.
1467 } else {
1468 dits[0] = 0;
1469 dits[1] = 0.0746;
1470 dits[2] = 0.8;
1471 gMC->Gsvolu("I670", "TUBE", idtmed[212], dits, 3); // set freon as cooling fluid
1472 // was I170 in old geom.
1473 }
1474
1475 if (fluid == 1) {
1476 dits[0] = 3.7;
1477 dits[1] = 5.4;
1478 dits[2] = 0.35;
1479 dits[3] = 2;
1480 dits[4] = 36;
1481 gMC->Gsvolu("I668", "TUBS", idtmed[211], dits, 5); // set water as cooling fluid
1482 // was I168 in old geom.
1483 } else {
1484 dits[0] = 3.7;
1485 dits[1] = 5.4;
1486 dits[2] = 0.35;
1487 dits[3] = 2;
1488 dits[4] = 36;
1489 gMC->Gsvolu("I668", "TUBS", idtmed[212], dits, 5); // set freon as cooling fluid
1490 // was I168 in old geom.
1491 }
9d2da7b3 1492
db915fea 1493
9d2da7b3 1494 }
db915fea 1495
9d2da7b3 1496 // --- Define SPD (option 'b') volumes ----------------------------
1497
1498 // SPD - option 'b'
1499 // (this is the default)
1500
1501 if (option == 2) {
1502
1503 dits[0] = 3.7;
1504 dits[1] = 7.75;
45725ec9 1505 dits[2] = 26.1;
9d2da7b3 1506 gMC->Gsvolu("IT12", "TUBE", idtmed[254], dits, 3);
1507
1508 dits[0] = 3.7;
1509 dits[1] = 7.7;
1510 dits[2] = 24;
1511 dits[3] = 57;
1512 dits[4] = 100;
1513 gMC->Gsvolu("I12B", "TUBS", idtmed[254], dits, 5); // sector
1514
1515 di10b[0] = 0.843;
1516 di10b[1] = ddet1+dchip1+dbus+0.0025;
1517 di10b[2] = 19.344;
1518 gMC->Gsvolu("I10B", "BOX ", idtmed[254], di10b, 3); // mother volume
1519 // on layer 1
1520
1521 di20b[0] = 0.843;
1522 di20b[1] = ddet2+dchip2+dbus+0.0025;
1523 di20b[2] = 19.344;
1524 gMC->Gsvolu("I20B", "BOX ", idtmed[254], di20b, 3); // mother volume
1525 // layer 2
1526
1527 dits[0] = 1.3673;
1528 dits[1] = 0.01;
1529 dits[2] = 24;
1530 gMC->Gsvolu("I123", "BOX ", idtmed[253], dits, 3);
1531
1532 dits[0] = 0.06;
1533 dits[1] = 0.08;
1534 dits[2] = 24;
1535 dits[3] = -36.79;
1536 dits[4] = 21.834;
1537 gMC->Gsvolu("I121", "TUBS", idtmed[253], dits, 5);
1538
1539 dits[0] = 0.1253;
1540 dits[1] = 0.01;
1541 dits[2] = 24;
1542 gMC->Gsvolu("I122", "BOX ", idtmed[253], dits, 3);
1543
1544 dits[0] = 0.04;
1545 dits[1] = 0.06 ;
1546 dits[2] = 24;
1547 dits[3] = 126.79;
1548 dits[4] = 270;
1549 gMC->Gsvolu("I120", "TUBS", idtmed[253], dits, 5);
1550
1551 dits[0] = 0.1134;
1552 dits[1] = 0.01;
1553 dits[2] = 24;
1554 gMC->Gsvolu("I144", "BOX ", idtmed[253], dits, 3);
1555
1556 dits[0] = 0.25;
1557 dits[1] = 0.06;
1558 dits[2] = 24;
1559 gMC->Gsvolu("I113", "BOX ", idtmed[254], dits, 3);
1560
1561 dits[0] = 0.077;
1562 dits[1] = 0.01;
1563 dits[2] = 24;
1564 gMC->Gsvolu("I143", "BOX ", idtmed[253], dits, 3);
1565
1566 dits[0] = 0.04;
1567 dits[1] = 0.06;
1568 dits[2] = 24;
1569 dits[3] = 0;
1570 dits[4] = 90;
1571 gMC->Gsvolu("I142", "TUBS", idtmed[253], dits, 5);
1572
1573 dits[0] = 0.0695;
1574 dits[1] = 0.01;
1575 dits[2] = 24;
1576 gMC->Gsvolu("I141", "BOX ", idtmed[253], dits, 3);
1577
1578 dits[0] = 0.06;
1579 dits[1] = 0.08;
1580 dits[2] = 24;
1581 dits[3] = 0;
1582 dits[4] = 108;
1583 gMC->Gsvolu("I140", "TUBS", idtmed[253], dits, 5);
1584
1585 dits[0] = 0.1835;
1586 dits[1] = 0.01;
1587 dits[2] = 24;
1588 gMC->Gsvolu("I139", "BOX ", idtmed[253], dits, 3);
1589
1590 dits[0] = 0.1894 ;
1591 dits[1] = 0.01;
1592 dits[2] = 24;
1593 gMC->Gsvolu("I138", "BOX ", idtmed[253], dits, 3);
1594
1595 dits[0] = 0.04;
1596 dits[1] = 0.06;
1597 dits[2] = 24;
1598 dits[3] = 0;
1599 dits[4] = 75.261;
1600 gMC->Gsvolu("I137", "TUBS", idtmed[253], dits, 5);
1601
1602 dits[0] = 1.3401;
1603 dits[1] = 0.01;
1604 dits[2] = 24;
1605 gMC->Gsvolu("I136", "BOX ", idtmed[253], dits, 3);
1606
1607 dits[0] = 0.05;
1608 dits[1] = 0.07;
1609 dits[2] = 24;
1610 dits[3] = 0;
1611 dits[4] = 72.739;
1612 gMC->Gsvolu("I135", "TUBS", idtmed[253], dits, 5);
1613
1614 dits[0] = 0.1193;
1615 dits[1] = 0.01;
1616 dits[2] = 24;
1617 gMC->Gsvolu("I134", "BOX ", idtmed[253], dits, 3);
1618
1619 dits[0] = 0.163;
1620 dits[1] = 0.01;
1621 dits[2] = 24;
1622 gMC->Gsvolu("I133", "BOX ", idtmed[253], dits, 3);
1623
1624 dits[0] = 0.04;
1625 dits[1] = 0.06;
1626 dits[2] = 24;
1627 dits[3] = 0;
1628 dits[4] = 157.633;
1629 gMC->Gsvolu("I132", "TUBS", idtmed[253], dits, 5);
1630
1631 dits[0] = 0.2497;
1632 dits[1] = 0.01;
1633 dits[2] = 24;
1634 gMC->Gsvolu("I131", "BOX ", idtmed[253], dits, 3);
1635
1636 dits[0] = 0.06;
1637 dits[1] = 0.08;
1638 dits[2] = 24;
1639 dits[3] = 0;
1640 dits[4] = 148.633;
1641 gMC->Gsvolu("I130", "TUBS", idtmed[253], dits, 5);
1642
1643 dits[0] = 0.292;
1644 dits[1] = 0.01;
1645 dits[2] = 24;
1646 gMC->Gsvolu("I129", "BOX ", idtmed[253], dits, 3);
1647
1648 dits[0] = 0.163;
1649 dits[1] = 0.01;
1650 dits[2] = 24;
1651 gMC->Gsvolu("I128", "BOX ", idtmed[253], dits, 3);
1652
1653 dits[0] = 0.04;
1654 dits[1] = 0.06;
1655 dits[2] = 24;
1656 dits[3] = 0;
1657 dits[4] = 161.297;
1658 gMC->Gsvolu("I126", "TUBS", idtmed[253], dits, 5);
1659
1660 dits[0] = 0.2433;
1661 dits[1] = 0.01;
1662 dits[2] = 24;
1663 gMC->Gsvolu("I125", "BOX ", idtmed[253], dits, 3);
1664
1665 dits[0] = 0.06;
1666 dits[1] = 0.08;
1667 dits[2] = 24;
1668 dits[3] = 0;
1669 dits[4] = 42.883;
1670 gMC->Gsvolu("I124", "TUBS", idtmed[253], dits, 5);
1671
1672 dits[0] = 0.793;
fc44ab90 1673 dits[1] = 0.475; //0.685; 0.015
9d2da7b3 1674 dits[2] = 2.5;
fc44ab90 1675 gMC->Gsvolu("I105", "BOX ", idtmed[290], dits, 3);
9d2da7b3 1676
1677 di107[0] = 0.793;
1678 di107[1] = ddet1+dchip1;
1679 di107[2] = 3.536;
1680 gMC->Gsvolu("I107", "BOX ", idtmed[254], di107, 3); // contains det and chip
1681 // layer 1
1682 dits[0] = 0.705;
1683 dits[1] = 0.01;
1684 dits[2] = 2.5;
1685 gMC->Gsvolu("I109", "BOX ", idtmed[275], dits, 3);
1686
1687 di108[0] = 0.705;
1688 di108[1] = dbus;
1689 di108[2] = 14.344;
1690 gMC->Gsvolu("I108", "BOX ", idtmed[275], di108, 3); // bus for both layers
1691
1692 di1d7[0] = 0.7975;
1693 di1d7[1] = ddet2+dchip2;
1694 di1d7[2] = 3.536;
1695 gMC->Gsvolu("I1D7", "BOX ", idtmed[254], di1d7, 3); // contains det and chip
1696 // layer 2
1697 dits[0] = 0.06;
1698 dits[1] = 0.08;
1699 dits[2] = 24;
1700 dits[3] = 0;
1701 dits[4] = 80;
1702 gMC->Gsvolu("I112", "TUBS", idtmed[253], dits, 5);
1703
1704 dits[0] = 0.04;
1705 dits[1] = 0.06;
1706 dits[2] = 24;
1707 dits[3] = 0;
1708 dits[4] = 80;
1709 gMC->Gsvolu("I111", "TUBS", idtmed[253], dits, 5);
1710
1711 dits[0] = 0.15;
1712 dits[1] = 0.0146;
1713 dits[2] = 24;
1714 gMC->Gsvolu("I118", "BOX ", idtmed[273], dits, 3);
1715
1716 dits[0] = 0.1315;
1717 dits[1] = 0.01;
1718 dits[2] = 24;
1719 gMC->Gsvolu("I110", "BOX ", idtmed[253], dits, 3);
1720
1721 dits[0] = 0.025;
1722 dits[1] = 0.035;
1723 dits[2] = 24;
1724 dits[3] = 0;
1725 dits[4] = 180;
1726 gMC->Gsvolu("I114", "TUBS", idtmed[264], dits, 5);
1727
e4f08ac3 1728 if (fluid == 1) {
1729 dits[0] = 0;
1730 dits[1] = 0.025;
1731 dits[2] = 24;
1732 dits[3] = 0;
1733 dits[4] = 180;
1734 gMC->Gsvolu("I115", "TUBS", idtmed[211], dits, 5); // set water as cooling fluid
1735 } else {
1736 dits[0] = 0;
1737 dits[1] = 0.025;
1738 dits[2] = 24;
1739 dits[3] = 0;
1740 dits[4] = 180;
1741 gMC->Gsvolu("I115", "TUBS", idtmed[212], dits, 5); // set freon as cooling fluid
1742 }
1743
9d2da7b3 1744 dits[0] = 0.063;
1745 dits[1] = 0.035;
1746 dits[2] = 24;
1747 gMC->Gsvolu("I116", "BOX ", idtmed[264], dits, 3);
1748
1749 di106[0] = 0.7975;
1750 di106[1] = dchip1;
1751 di106[2] = 0.68;
1752 gMC->Gsvolu("I106", "BOX ", idtmed[201], di106, 3); // chip layer 1
1753
1754 di1d6[0] = 0.7975;
1755 di1d6[1] = dchip2;
1756 di1d6[2] = 0.68;
1757 gMC->Gsvolu("I1D6", "BOX ", idtmed[201], di1d6, 3); // chip layer 2
1758
1759 di101[0] = 0.705;
1760 di101[1] = ddet1;
1761 di101[2] = 3.536;
1762 gMC->Gsvolu("I101", "BOX ", idtmed[250], di101, 3); // contains detector
1763 // layer 1
1764 di1d1[0] = 0.705;
1765 di1d1[1] = ddet2;
1766 di1d1[2] = 3.536;
1767 gMC->Gsvolu("I1D1", "BOX ", idtmed[250], di1d1, 3); // contains detector
1768 // layer 2
e4f08ac3 1769
1770 if (fluid == 1) {
1771 dits[0] = 0.063;
1772 dits[1] = 0.025;
1773 dits[2] = 24;
1774 gMC->Gsvolu("I117", "BOX ", idtmed[211], dits, 3); // set water as cooling fluid
1775 } else {
1776 dits[0] = 0.063;
1777 dits[1] = 0.025;
1778 dits[2] = 24;
1779 gMC->Gsvolu("I117", "BOX ", idtmed[212], dits, 3); // set freon as cooling fluid
1780 }
9d2da7b3 1781
1782 dits1[0] = 0.64;
1783 dits1[1] = ddet1;
1784 dits1[2] = 3.48;
1785 gMC->Gsvolu("ITS1", "BOX ", idtmed[200], dits1, 3); // detector layer 1
1786
1787 dits2[0] = 0.64;
1788 dits2[1] = ddet2;
1789 dits2[2] = 3.48;
1790 gMC->Gsvolu("ITS2", "BOX ", idtmed[200], dits2, 3); // detector layer 2
1791
1792 dits[0] = 3.701;
1793 dits[1] = 7.699;
1794 dits[2] = 4;
1795 dits[3] = 57.1;
1796 dits[4] = 99.9;
1797 gMC->Gsvolu("I650", "TUBS", idtmed[254], dits, 5); // was I150 in old geom.
1798
1799 dits[0] = 0;
1800 dits[1] = 0.5;
1801 dits[2] = 1.5;
1802 gMC->Gsvolu("I676", "TUBE", idtmed[274], dits, 3); // was I176 in old geom.
1803
1804 dits[0] = 0;
1805 dits[1] = 0.18;
1806 dits[2] = 0.8;
1807 gMC->Gsvolu("I673", "TUBE", idtmed[274], dits, 3); // was I173 in old geom.
1808
1809 dits[0] = 0;
1810 dits[1] = 0.18;
1811 dits[2] = 3;
1812 gMC->Gsvolu("I671", "TUBE", idtmed[274], dits, 3); // was I171 in old geom.
1813
1814 dits[0] = 0;
1815 dits[1] = 0.075;
1816 dits[2] = 0.8;
1817 gMC->Gsvolu("I669", "TUBE", idtmed[264], dits, 3); // was I169 in old geom.
1818
1819 dits[0] = 3.5;
1820 dits[1] = 5.6;
1821 dits[2] = 0.55;
1822 dits[3] = 0;
1823 dits[4] = 38;
1824 gMC->Gsvolu("I667", "TUBS", idtmed[263], dits, 5); // was I167 in old geom.
1825
1826 dits[0] = 6.6;
1827 dits[1] = 7.6;
1828 dits[2] = 0.5;
1829 dits[3] = 0;
1830 dits[4] = 9;
1831 gMC->Gsvolu("I666", "TUBS", idtmed[263], dits, 5); // was I166 in old geom.
1832
1833 dits[0] = 0.26;
1834 dits[1] = 0.32;
1835 dits[2] = 0.55;
1836 gMC->Gsvolu("I678", "TUBE", idtmed[263], dits, 3); // was I178 in old geom.
1837
e4f08ac3 1838 if (fluid == 1) {
1839 dits[0] = 0;
1840 dits[1] = 0.3;
1841 dits[2] = 1.5;
1842 gMC->Gsvolu("I677", "TUBE", idtmed[211], dits, 3); //set water as cooling fluid
1843 // was I177 in old geom.
1844 } else {
1845 dits[0] = 0;
1846 dits[1] = 0.3;
1847 dits[2] = 1.5;
1848 gMC->Gsvolu("I677", "TUBE", idtmed[212], dits, 3); //set freon as cooling fluid
1849 // was I177 in old geom.
1850 }
9d2da7b3 1851
1852 dits[0] = 0.07;
1853 dits[1] = 0.125;
1854 dits[2] = 0.3;
1855 gMC->Gsvolu("I675", "TUBE", idtmed[263], dits, 3); // was I175 in old geom.
1856
e4f08ac3 1857 if (fluid == 1) {
1858 dits[0] = 0;
1859 dits[1] = 0.1;
1860 dits[2] = 0.8;
1861 gMC->Gsvolu("I674", "TUBE", idtmed[211], dits, 3); //set water as cooling fluid
1862 // was I174 in old geom.
1863 } else {
1864 dits[0] = 0;
1865 dits[1] = 0.1;
1866 dits[2] = 0.8;
1867 gMC->Gsvolu("I674", "TUBE", idtmed[212], dits, 3); //set freon as cooling fluid
1868 // was I174 in old geom.
1869 }
1870
1871 if (fluid == 1) {
1872 dits[0] = 0;
1873 dits[1] = 0.1;
1874 dits[2] = 3;
1875 gMC->Gsvolu("I672", "TUBE", idtmed[211], dits, 3); //set water as cooling fluid
1876 // was I172 in old geom.
1877 } else {
1878 dits[0] = 0;
1879 dits[1] = 0.1;
1880 dits[2] = 3;
1881 gMC->Gsvolu("I672", "TUBE", idtmed[212], dits, 3); //set freon as cooling fluid
1882 // was I172 in old geom.
1883 }
1884
1885 if (fluid == 1) {
1886 dits[0] = 0;
1887 dits[1] = 0.0746;
1888 dits[2] = 0.8;
1889 gMC->Gsvolu("I670", "TUBE", idtmed[211], dits, 3); //set water as cooling fluid
1890 // was I170 in old geom.
1891 } else {
1892 dits[0] = 0;
1893 dits[1] = 0.0746;
1894 dits[2] = 0.8;
1895 gMC->Gsvolu("I670", "TUBE", idtmed[212], dits, 3); //set freon as cooling fluid
1896 // was I170 in old geom.
1897 }
1898
1899 if (fluid == 1) {
1900 dits[0] = 3.7;
1901 dits[1] = 5.4;
1902 dits[2] = 0.35;
1903 dits[3] = 2;
1904 dits[4] = 36;
1905 gMC->Gsvolu("I668", "TUBS", idtmed[211], dits, 5); //set water as cooling fluid
1906 // was I168 in old geom.
1907 } else {
1908 dits[0] = 3.7;
1909 dits[1] = 5.4;
1910 dits[2] = 0.35;
1911 dits[3] = 2;
1912 dits[4] = 36;
1913 gMC->Gsvolu("I668", "TUBS", idtmed[212], dits, 5); //set freon as cooling fluid
1914 // was I168 in old geom.
1915 }
1916
db915fea 1917
9d2da7b3 1918 }
db915fea 1919
1920 // --- Define SDD volumes ------------------------------------------
1921
9d2da7b3 1922
1923 cos30 = cos(30.*3.14159/180.);
1924 sin30 = sin(30.*3.14159/180.);
1925
1926
db915fea 1927 dits[0] = 0;
1928 dits[1] = 360;
1929 dits[2] = 6;
e4f08ac3 1930 dits[3] = -34.6;
1931 dits[4] = 23.49;
1932 dits[5] = 28;
1933 dits[6] = -23.65;
1934 dits[7] = 23.49;
1935 dits[8] = 28;
1936 dits[9] = -23.65;
1937 dits[10] = 14.59;
1938 dits[11] = 28;
1939 dits[12] = 23.65;
1940 dits[13] = 14.59;
1941 dits[14] = 28;
1942 dits[15] = 23.65;
1943 dits[16] = 23.49;
1944 dits[17] = 28;
1945 dits[18] = 34.6;
1946 dits[19] = 23.49;
1947 dits[20] = 28;
9d2da7b3 1948 gMC->Gsvolu("IT34", "PCON", idtmed[209], dits, 21);
1949
1950 // block of the SDD electronics and related ladder frame
1951 I018dits[0] = 3.2;
1952 I018dits[1] = 2;
1953 I018dits[2] = 3.65;
1954 gMC->Gsvolu("I018", "BOX ", idtmed[209], I018dits, 3);
1955
1956 // block of the SDD end ladder
1957 I024dits[0] = 3.2;
1958 I024dits[1] = 2;
1959 I024dits[2] = 2.725;
1960 gMC->Gsvolu("I024", "BOX ", idtmed[209], I024dits, 3);
1961
1962 // ladder frame of layer 3 - F.T. March,7-2001
1963 I047dits[0] = I018dits[0];
1964 I047dits[1] = I018dits[1];
1965 I047dits[2] = 6*I018dits[2] + 2*I024dits[2];
1966 gMC->Gsvolu("I047", "BOX ", idtmed[209], I047dits, 3);
1967
1968 // ladder frame of layer 4 - F.T. March,7-2001
1969 I048dits[0] = I018dits[0];
1970 I048dits[1] = I018dits[1];
1971 I048dits[2] = 8*I018dits[2] + 2*I024dits[2];
1972 gMC->Gsvolu("I048", "BOX ", idtmed[209], I048dits, 3);
1973
1974
1975 // global SDD volume (sensitive + insensitive)
1976 I302dits[0] = 3.6250;
1977 I302dits[1] = 0.0150;
1978 I302dits[2] = 4.3794;
1979 gMC->Gsvolu("I302", "BOX ", idtmed[278], I302dits, 3);
1980
1981 // Like for I302 - F.T. March,7-2001
1982 I402dits[0] = 3.6250;
1983 I402dits[1] = 0.0150;
1984 I402dits[2] = 4.3794;
1985 gMC->Gsvolu("I402", "BOX ", idtmed[278], I402dits, 3);
1986
1987 // SDD ladder of layer 3 - F.T. March,7-2001
1988 I004dits[0] = I302dits[0]+0.005;
1989 I004dits[1] = 2*I302dits[1]+Y_SDD_sep/2.;
767187dd 1990 I004dits[2] = TMath::Abs(Z_SDD_lay3[0]);
1991 if (I004dits[2] < TMath::Abs(Z_SDD_lay3[5])) {
1992 I004dits[2] = TMath::Abs(Z_SDD_lay3[5]);
9d2da7b3 1993 }
1994 I004dits[2] = I004dits[2] + I302dits[2];
1995 gMC->Gsvolu("I004", "BOX ", idtmed[209], I004dits, 3);
1996
1997 // SDD ladder of layer 4 - F.T. March,7-2001
1998 I005dits[0] = I402dits[0]+0.005;
1999 I005dits[1] = 2*I402dits[1]+Y_SDD_sep/2.;
767187dd 2000 I005dits[2] = TMath::Abs(Z_SDD_lay4[0]);
2001 if (I005dits[2] < TMath::Abs(Z_SDD_lay4[7])) {
2002 I005dits[2] = TMath::Abs(Z_SDD_lay4[7]);
9d2da7b3 2003 }
2004 I005dits[2] = I005dits[2] + I402dits[2];
2005 gMC->Gsvolu("I005", "BOX ", idtmed[209], I005dits, 3);
2006
2007
2008 // -- block of the SDD ladder foot and end ladder
2009
2010 // ladder foot mother volume
2011 I028dits[0] = 3.0000;
2012 I028dits[1] = 0.4000;
2013 I028dits[2] = 0.9000;
2014 gMC->Gsvolu("I028", "BOX ", idtmed[224], I028dits, 3);
2015
2016 // positioning-box #1 at SDD end-ladder - F.T. March,7-2001
2017 I420dits[0] = 0.4500;
2018 I420dits[1] = 0.4000;
2019 I420dits[2] = 0.4500;
2020 gMC->Gsvolu("I420", "BOX ", idtmed[264], I420dits, 3);
2021
2022 // positioning-box #2 at SDD end-ladder - F.T. March,7-2001
e4f08ac3 2023 I421dits[0] = 0.;
2024 I421dits[1] = 0.25;
2025 I421dits[2] = I420dits[1];
2026 gMC->Gsvolu("I421", "TUBE", idtmed[209], I421dits, 3);
9d2da7b3 2027
2028 // reference ruby-sphere at SDD end-ladder - F.T. March,7-2001
2029 I422dits[0] = 0.0000;
2030 I422dits[1] = 0.2000;
2031 I422dits[2] = 0.0000;
2032 I422dits[3] = 180.00;
2033 I422dits[4] = 0.0000;
2034 I422dits[5] = 360.00;
2035 gMC->Gsvolu("I422", "SPHE", idtmed[277], I422dits, 6);
2036
2037 // support for ruby-sphere (I422) - F.T. March,7-2001
2038 I423dits[0] = 0.0000;
2039 I423dits[1] = 0.1000;
e4f08ac3 2040 I423dits[2] = (I420dits[1]-I422dits[1])/2.;
9d2da7b3 2041 gMC->Gsvolu("I423", "TUBE", idtmed[264], I423dits, 3);
2042
2043 // passage for HV microcables - F.T. March,7-2001
2044 I424dits[0] = 1.5000;
2045 I424dits[1] = 0.1500;
2046 I424dits[2] = I421dits[2];
2047 gMC->Gsvolu("I424", "BOX ", idtmed[209], I424dits, 3);
2048
2049 // HV microcables segment at the end ladder - F.T. March,7-2001
2050 I425dits[0] = 1.350000;
2051 I425dits[1] = 0.015250;
2052 I425dits[2] = I024dits[2];
2053 gMC->Gsvolu("I425", "BOX ", idtmed[279], I425dits, 3);
2054
2055 // lower edge of SDD ladder frame at end-ladder - part 1
db915fea 2056 dits[0] = 0.2;
2057 dits[1] = 0.1815;
9d2da7b3 2058 dits[2] = I024dits[2];
db915fea 2059 dits[3] = 0.015;
9d2da7b3 2060 gMC->Gsvolu("I025", "TRD1", idtmed[208], dits, 4);
db915fea 2061
9d2da7b3 2062 // lower edge of SDD ladder frame at end-ladder - part 2
db915fea 2063 dits[0] = 0.183;
2064 dits[1] = 0.165;
9d2da7b3 2065 dits[2] = I024dits[2];
2066 dits[3] = 0.015;
2067 gMC->Gsvolu("I026", "TRD1", idtmed[208], dits, 4);
2068
2069 // new: for the 1st top rod of the structure
2070 // at the end-ladder - F.T. March,7-2001
2071 I029dits[0] = 0.2;
2072 I029dits[1] = 0.1815;
2073 I029dits[2] = 1.0100;
2074 I029dits[3] = 0.015;
2075 gMC->Gsvolu("I029", "TRD1", idtmed[208], I029dits, 4);
2076
2077 // new: for the 2nd top rod of the structure
2078 // at the end-ladder - F.T. March,7-2001
2079 I030dits[0] = 0.1830;
2080 I030dits[1] = 0.1650;
2081 I030dits[2] = 1.0100;
2082 I030dits[3] = 0.0150;
2083 gMC->Gsvolu("I030", "TRD1", idtmed[208], I030dits, 4);
2084
2085 // inox cooling tubes for the end ladder - F.T. March,7-2001
2086 I031dits[0] = 0.093;
2087 I031dits[1] = 0.1;
2088 I031dits[2] = I024dits[2];
2089 gMC->Gsvolu("I031", "TUBE", idtmed[264], I031dits, 3);
2090
e4f08ac3 2091 if (fluid == 1) {
2092 // cooling water for the end ladder - F.T. March,7-2001
2093 I032dits[0] = 0;
2094 I032dits[1] = I031dits[0];
2095 I032dits[2] = I024dits[2];
2096 gMC->Gsvolu("I032", "TUBE", idtmed[211], I032dits, 3);
2097 } else {
2098 // cooling freon for the end ladder - R.B. March,21-2001
2099 I032dits[0] = 0;
2100 I032dits[1] = I031dits[0];
2101 I032dits[2] = I024dits[2];
2102 gMC->Gsvolu("I032", "TUBE", idtmed[212], I032dits, 3);
2103 }
2104
9d2da7b3 2105 // -- block of the SDD ladder frame holding the electronics
2106
2107 // edge of the ladder frame - part 1
2108 dits[0] = 0.2;
2109 dits[1] = 0.182;
2110 dits[2] = 3.65;
db915fea 2111 dits[3] = 0.015;
9d2da7b3 2112 gMC->Gsvolu("I019", "TRD1", idtmed[208], dits, 4);
db915fea 2113
9d2da7b3 2114 // edge of the ladder frame - part 2
2115 dits[0] = 0.183;
2116 dits[1] = 0.165;
2117 dits[2] = 3.65;
2118 dits[3] = 0.015;
2119 gMC->Gsvolu("I020", "TRD1", idtmed[208], dits, 4);
2120
2121 // inclined segments of the ladder frame
db915fea 2122 dits[0] = 2.23;
2123 dits[1] = 2.1;
2124 dits[2] = 0.05;
2125 dits[3] = 0.03;
9d2da7b3 2126 gMC->Gsvolu("I021", "TRD1", idtmed[208], dits, 4);
db915fea 2127
9d2da7b3 2128 // horiz.segments of the ladders, normal to ladder edges
db915fea 2129 dits[0] = 2.1;
2130 dits[1] = 2;
2131 dits[2] = 0.06;
2132 dits[3] = 0.04;
9d2da7b3 2133 gMC->Gsvolu("I022", "TRD1", idtmed[208], dits, 4);
db915fea 2134
9d2da7b3 2135 // horiz.segments of the ladders, at 45 deg. to ladder edges
2136 dits[0] = 2.615;
2137 dits[1] = 2.465;
2138 dits[2] = 0.06;
2139 dits[3] = 0.04;
2140 gMC->Gsvolu("I023", "TRD1", idtmed[208], dits, 4);
db915fea 2141
9d2da7b3 2142 // supports of the ceramic pins holding the detectors
db915fea 2143 dits[0] = 0.3;
2144 dits[1] = 0.05;
2145 dits[2] = 0.15;
9d2da7b3 2146 gMC->Gsvolu("I033", "BOX ", idtmed[208], dits, 3);
db915fea 2147
9d2da7b3 2148 // ceramic pins holding the detectors
db915fea 2149 dits[0] = 0;
2150 dits[1] = 0.05;
2151 dits[2] = 0.225;
9d2da7b3 2152 gMC->Gsvolu("I034", "TUBE", idtmed[277], dits, 3);
db915fea 2153
9d2da7b3 2154 // holders of cooling tubes
2155 I035dits[0] = 0.1;
2156 I035dits[1] = 0.15;
2157 I035dits[2] = 0.2;
2158 gMC->Gsvolu("I035", "TUBE", idtmed[208], I035dits, 3);
db915fea 2159
9d2da7b3 2160 // top holders of microcables
2161 dits[0] = 0.2;
db915fea 2162 dits[1] = 0.01;
9d2da7b3 2163 dits[2] = 0.05;
2164 gMC->Gsvolu("I036", "BOX ", idtmed[208], dits, 3);
db915fea 2165
9d2da7b3 2166 // inox cooling tubes - F.T. March,7-2001
2167 I037dits[0] = 0.093;
2168 I037dits[1] = 0.1;
2169 I037dits[2] = I018dits[2];
2170 gMC->Gsvolu("I037", "TUBE", idtmed[264], I037dits, 3);
db915fea 2171
e4f08ac3 2172 if (fluid == 1) {
2173 // cooling water - F.T. March,7-2001
2174 I038dits[0] = 0;
2175 I038dits[1] = I037dits[0];
2176 I038dits[2] = I018dits[2];
2177 gMC->Gsvolu("I038", "TUBE", idtmed[211], I038dits, 3);
2178 } else {
2179 // cooling freon - R.B. March,21-2001
2180 I038dits[0] = 0;
2181 I038dits[1] = I037dits[0];
2182 I038dits[2] = I018dits[2];
2183 gMC->Gsvolu("I038", "TUBE", idtmed[212], I038dits, 3);
2184 }
9d2da7b3 2185 // -- block of the SDD electronics (heat bridge, chips, hybrid, anode microcable)
db915fea 2186
9d2da7b3 2187 // SDD heat bridge - F.T. March,7-2001
2188 I039dits[0] = 1.1000;
2189 I039dits[1] = 0.0087;
2190 I039dits[2] = 3.2500;
2191 gMC->Gsvolu("I039", "BOX ", idtmed[268], I039dits, 3);
db915fea 2192
9d2da7b3 2193 // SDD clip part 1
2194 dits[0] = 0.25;
2195 dits[1] = 0.01;
2196 dits[2] = I039dits[2];
2197 gMC->Gsvolu("I040", "BOX ", idtmed[268], dits, 3);
2198
2199 // SDD clip part 2
2200 I041dits[0] = 0.1;
2201 I041dits[1] = 0.12;
2202 I041dits[2] = I039dits[2];
2203 I041dits[3] = 90;
2204 I041dits[4] = 320;
2205 gMC->Gsvolu("I041", "TUBS", idtmed[268], I041dits, 5);
2206
2207
2208 // SDD PASCAL - F.T. March,7-2001
2209 I042dits[0] = 0.5000;
2210 I042dits[1] = 0.0175;
2211 I042dits[2] = 0.5000;
2212 gMC->Gsvolu("I042", "BOX ", idtmed[206], I042dits, 3);
2213
2214 // SDD AMBRA - F.T. March,7-2001
2215 I043dits[0] = 0.3500;
2216 I043dits[1] = 0.0175;
2217 I043dits[2] = 0.5000;
2218 gMC->Gsvolu("I043", "BOX ", idtmed[206], I043dits, 3);
2219
2220 // SDD capacitors - F.T. March,7-2001
2221 I051dits[0] = 0.1400;
2222 I051dits[1] = 0.0350;
2223 I051dits[2] = 0.0625;
2224 gMC->Gsvolu("I051", "BOX ", idtmed[276], I051dits, 3);
2225
2226 // SDD hybrid circuit - F.T. March,7-2001
2227 I052dits[0] = 1.725000;
2228 I052dits[1] = 0.003743;
2229 I052dits[2] = I039dits[2];
e4f08ac3 2230 gMC->Gsvolu("I052", "BOX ", idtmed[281], I052dits, 3);
9d2da7b3 2231
2232 // SDD anode microcable : changed - F.T. March,7-2001
2233 I044dits[0] = I018dits[2];
2234 I044dits[1] = I039dits[2];
2235 I044dits[2] = 0.00084;
2236 I044dits[3] = (15.189149/(I044dits[0]+I044dits[1]))/2;
2237 gMC->Gsvolu("I044", "TRD1", idtmed[282], I044dits, 4);
2238 volI044 = ((2*I044dits[0] + 2*I044dits[1]) * 2*I044dits[2])/2 * 2*I044dits[3];
2239
2240 // SDD electronics box - F.T. March,7-2001
2241 I050dits[1] = I039dits[1]+I052dits[1]+I051dits[1]+I044dits[2];
2242 I050dits[0] = I018dits[1]/cos(30.*3.14159/180.)-I050dits[1]*sin(30.*3.14159/180.);
2243 I050dits[2] = I018dits[2];
2244 gMC->Gsvolu("I050", "BOX ", idtmed[209], I050dits, 3);
2245
2246 // SDD sensitive volume
2247 dits[0] = 3.50850;
2248 dits[1] = 0.01499; // not 0.015 because it is included into I302 which is 0.015
2249 dits[2] = 3.76320;
db915fea 2250 gMC->Gsvolu("ITS3", "BOX ", idtmed[200], dits, 3);
2251
9d2da7b3 2252 // Like for ITS3 - F.T. March,7-2001
2253 dits[0] = 3.50850;
2254 dits[1] = 0.01499; // not 0.015 because it is included into I402 which is 0.015
2255 dits[2] = 3.76320;
db915fea 2256 gMC->Gsvolu("ITS4", "BOX ", idtmed[200], dits, 3);
2257
2258
2259 // --- Define SSD volumes ------------------------------------------
2260
2261
2262 dits[0] = 0;
2263 dits[1] = 360;
2264 dits[2] = 6;
e4f08ac3 2265 dits[3] = -57.45;
2266 dits[4] = 43.6;
db915fea 2267 dits[5] = 48;
e4f08ac3 2268 dits[6] = -49.15;
2269 dits[7] = 43.6;
db915fea 2270 dits[8] = 48;
e4f08ac3 2271 dits[9] = -49.15;
2272 dits[10] = 36.9;
db915fea 2273 dits[11] = 48;
e4f08ac3 2274 dits[12] = 50.55;
2275 dits[13] = 36.9;
db915fea 2276 dits[14] = 48;
e4f08ac3 2277 dits[15] = 50.55;
2278 dits[16] = 43.6;
db915fea 2279 dits[17] = 48;
e4f08ac3 2280 dits[18] = 57.45;
2281 dits[19] = 43.6;
db915fea 2282 dits[20] = 48;
9d2da7b3 2283 gMC->Gsvolu("IT56", "PCON", idtmed[220], dits, 21);
db915fea 2284
2285 dits[0] = 3.4;
2286 dits[1] = 1.955;
9d2da7b3 2287 dits[2] = 56.5;
2288 gMC->Gsvolu("I570", "BOX ", idtmed[204], dits, 3);
db915fea 2289
2290 dits[0] = 3.75;
2291 dits[1] = 0.045;
2292 dits[2] = 50.975;
9d2da7b3 2293 gMC->Gsvolu("I569", "BOX ", idtmed[204], dits, 3);
db915fea 2294
2295 dits[0] = 3.4;
2296 dits[1] = 1.955;
9d2da7b3 2297 dits[2] = 47;
2298 gMC->Gsvolu("I571", "BOX ", idtmed[204], dits, 3);
db915fea 2299
2300 dits[0] = 3.75;
2301 dits[1] = 0.045;
9d2da7b3 2302 dits[2] = 43.3;
2303 gMC->Gsvolu("I565", "BOX ", idtmed[204], dits, 3);
db915fea 2304
2305 dits[0] = 3.4;
2306 dits[1] = 1.955;
2307 dits[2] = 3.15;
9d2da7b3 2308 gMC->Gsvolu("I553", "BOX ", idtmed[204], dits, 3);
db915fea 2309
2310 dits[0] = 3.405;
2311 dits[1] = 1.955;
2312 dits[2] = 1.955;
9d2da7b3 2313 gMC->Gsvolu("I523", "BOX ", idtmed[204], dits, 3);
db915fea 2314
2315 dits[0] = 3.75;
2316 dits[1] = 0.015;
2317 dits[2] = 2.1;
9d2da7b3 2318 gMC->Gsvolu("I566", "BOX ", idtmed[206], dits, 3);
db915fea 2319
2320 dits[0] = 3.4;
2321 dits[1] = 1.955;
2322 dits[2] = 3.15;
9d2da7b3 2323 gMC->Gsvolu("I544", "BOX ", idtmed[204], dits, 3);
db915fea 2324
2325 dits[0] = 3.41;
2326 dits[1] = 1.955;
2327 dits[2] = 1.955;
9d2da7b3 2328 gMC->Gsvolu("I516", "BOX ", idtmed[204], dits, 3);
db915fea 2329
2330 dits[0] = 3.75;
2331 dits[1] = 0.015;
2332 dits[2] = 2.1;
9d2da7b3 2333 gMC->Gsvolu("I562", "BOX ", idtmed[206], dits, 3);
db915fea 2334
e4f08ac3 2335 if (fluid == 1) {
2336 dits[0] = 0;
2337 dits[1] = 0.07;
2338 dits[2] = 3.15;
2339 gMC->Gsvolu("I559", "TUBE", idtmed[211], dits, 3); // set water as cooling fluid
2340 } else {
2341 dits[0] = 0;
2342 dits[1] = 0.07;
2343 dits[2] = 3.15;
2344 gMC->Gsvolu("I559", "TUBE", idtmed[212], dits, 3); // set freon as cooling fluid
2345 }
db915fea 2346
2347 dits[0] = 0.07;
2348 dits[1] = 0.1;
2349 dits[2] = 3.15;
9d2da7b3 2350 gMC->Gsvolu("I560", "TUBE", idtmed[210], dits, 3);
db915fea 2351
2352 dits[0] = 0.225;
2353 dits[1] = 0.195;
2354 dits[2] = 3.15;
2355 dits[3] = 0.025;
9d2da7b3 2356 gMC->Gsvolu("I558", "TRD1", idtmed[203], dits, 4);
db915fea 2357
2358 dits[0] = 0.25;
2359 dits[1] = 0.22;
2360 dits[2] = 3.15;
2361 dits[3] = 0.025;
9d2da7b3 2362 gMC->Gsvolu("I557", "TRD1", idtmed[203], dits, 4);
db915fea 2363
2364 dits[0] = 2.17;
2365 dits[1] = 0.035;
2366 dits[2] = 0.05;
9d2da7b3 2367 gMC->Gsvolu("I556", "BOX ", idtmed[203], dits, 3);
db915fea 2368
2369 dits[0] = 2 ;
2370 dits[1] = 0.035;
2371 dits[2] = 0.05;
9d2da7b3 2372 gMC->Gsvolu("I554", "BOX ", idtmed[203], dits, 3);
db915fea 2373
2374 dits[0] = 2.675;
2375 dits[1] = 0.035;
2376 dits[2] = 0.05;
9d2da7b3 2377 gMC->Gsvolu("I555", "BOX ", idtmed[203], dits, 3);
db915fea 2378
2379 dits[0] = 0.3;
2380 dits[1] = 0.15;
2381 dits[2] = 0.15;
9d2da7b3 2382 gMC->Gsvolu("I561", "BOX ", idtmed[203], dits, 3);
db915fea 2383
2384 dits[0] = 0.025;
2385 dits[1] = 0.025;
2386 dits[2] = 0.05;
9d2da7b3 2387 gMC->Gsvolu("I519", "BOX ", idtmed[214], dits, 3);
db915fea 2388
2389 dits[0] = 0.304;
2390 dits[1] = 0.0275;
2391 dits[2] = 0.432;
9d2da7b3 2392 gMC->Gsvolu("I521", "BOX ", idtmed[206], dits, 3);
db915fea 2393
2394 dits[0] = 0.16;
2395 dits[1] = 0.08;
2396 dits[2] = 0.08;
9d2da7b3 2397 gMC->Gsvolu("I520", "BOX ", idtmed[214], dits, 3);
db915fea 2398
2399 dits[0] = 3.4;
2400 dits[1] = 0.015;
2401 dits[2] = 0.525;
9d2da7b3 2402 gMC->Gsvolu("I518", "BOX ", idtmed[203], dits, 3);
db915fea 2403
2404 dits[0] = 0.15;
2405 dits[1] = 0.105;
2406 dits[2] = 0.29;
2407 dits[3] = 0.08;
9d2da7b3 2408 gMC->Gsvolu("I522", "TRD1", idtmed[203], dits, 4);
db915fea 2409
2410 dits[0] = 0.07;
2411 dits[1] = 0.1;
2412 dits[2] = 1.955;
9d2da7b3 2413 gMC->Gsvolu("I542", "TUBE", idtmed[210], dits, 3);
db915fea 2414
e4f08ac3 2415 if (fluid == 1) {
2416 dits[0] = 0;
2417 dits[1] = 0.07;
2418 dits[2] = 1.955;
2419 gMC->Gsvolu("I541", "TUBE", idtmed[211], dits, 3); // set water as cooling fluid
2420 } else {
2421 dits[0] = 0;
2422 dits[1] = 0.07;
2423 dits[2] = 1.955;
2424 gMC->Gsvolu("I541", "TUBE", idtmed[212], dits, 3); // set freon as cooling fluid
2425 }
db915fea 2426
2427 dits[0] = 0.3;
2428 dits[1] = 0.15;
2429 dits[2] = 0.15;
9d2da7b3 2430 gMC->Gsvolu("I543", "BOX ", idtmed[203], dits, 3);
db915fea 2431
2432 dits[0] = 0.25;
2433 dits[1] = 0.22;
2434 dits[2] = 1.955;
2435 dits[3] = 0.025;
9d2da7b3 2436 gMC->Gsvolu("I537", "TRD1", idtmed[203], dits, 4);
db915fea 2437
2438 dits[0] = 0.225;
2439 dits[1] = 0.195;
2440 dits[2] = 1.955;
2441 dits[4] = 0.025;
9d2da7b3 2442 gMC->Gsvolu("I538", "TRD1", idtmed[203], dits, 4);
db915fea 2443
2444 dits[0] = 2.17;
2445 dits[1] = 0.035;
2446 dits[2] = 0.05;
9d2da7b3 2447 gMC->Gsvolu("I536", "BOX ", idtmed[203], dits, 3);
db915fea 2448
2449 dits[0] = 2.675;
2450 dits[1] = 0.035;
2451 dits[2] = 0.05;
9d2da7b3 2452 gMC->Gsvolu("I535", "BOX ", idtmed[203], dits, 3);
db915fea 2453
2454 dits[0] = 2;
2455 dits[1] = 0.035;
2456 dits[2] = 0.05;
9d2da7b3 2457 gMC->Gsvolu("I534", "BOX ", idtmed[203], dits, 3);
db915fea 2458
2459 dits[0] = 0;
2460 dits[1] = 0.05;
2461 dits[2] = 0.17;
9d2da7b3 2462 gMC->Gsvolu("I540", "TUBE", idtmed[203], dits, 3);
db915fea 2463
2464 dits[0] = 0;
2465 dits[1] = 0.05;
2466 dits[2] = 0.205;
9d2da7b3 2467 gMC->Gsvolu("I539", "TUBE", idtmed[203], dits, 3);
db915fea 2468
2469 dits[0] = 3.65;
2470 dits[1] = 0.015;
2471 dits[2] = 2;
2472 gMC->Gsvolu("ITS6", "BOX ", idtmed[200], dits, 3);
2473
e4f08ac3 2474 if (fluid == 1) {
2475 dits[0] = 0;
2476 dits[1] = 0.07;
2477 dits[2] = 3.15;
2478 gMC->Gsvolu("I550", "TUBE", idtmed[211], dits, 3); // set water as cooling fluid
2479 } else {
2480 dits[0] = 0;
2481 dits[1] = 0.07;
2482 dits[2] = 3.15;
2483 gMC->Gsvolu("I550", "TUBE", idtmed[212], dits, 3); // set freon as cooling fluid
2484 }
db915fea 2485
2486 dits[0] = 0.07;
2487 dits[1] = 0.1;
2488 dits[2] = 3.15;
9d2da7b3 2489 gMC->Gsvolu("I551", "TUBE", idtmed[210], dits, 3);
db915fea 2490
2491 dits[0] = 0.225;
2492 dits[1] = 0.195;
2493 dits[2] = 3.15;
2494 dits[3] = 0.025;
9d2da7b3 2495 gMC->Gsvolu("I549", "TRD1", idtmed[203], dits, 4);
db915fea 2496
2497 dits[0] = 0.25;
2498 dits[1] = 0.22;
2499 dits[2] = 3.15;
2500 dits[3] = 0.025;
9d2da7b3 2501 gMC->Gsvolu("I548", "TRD1", idtmed[203], dits, 4);
db915fea 2502
2503 dits[0] = 2.17;
2504 dits[1] = 0.035;
2505 dits[2] = 0.05;
9d2da7b3 2506 gMC->Gsvolu("I547", "BOX ", idtmed[203], dits, 3);
db915fea 2507
2508 dits[0] = 2;
2509 dits[1] = 0.035;
2510 dits[2] = 0.05;
9d2da7b3 2511 gMC->Gsvolu("I545", "BOX ", idtmed[203], dits, 3);
db915fea 2512
2513 dits[0] = 2.675;
2514 dits[1] = 0.035;
2515 dits[2] = 0.05;
9d2da7b3 2516 gMC->Gsvolu("I546", "BOX ", idtmed[203], dits, 3);
db915fea 2517
2518 dits[0] = 0.3;
2519 dits[1] = 0.15;
2520 dits[2] = 0.15;
9d2da7b3 2521 gMC->Gsvolu("I552", "BOX ", idtmed[203], dits, 3);
db915fea 2522
2523 dits[0] = 0.304;
2524 dits[1] = 0.0275;
2525 dits[2] = 0.4322;
9d2da7b3 2526 gMC->Gsvolu("I515", "BOX ", idtmed[206], dits, 3);
db915fea 2527
2528 dits[0] = 0.025;
2529 dits[1] = 0.025;
2530 dits[2] = 0.05;
9d2da7b3 2531 gMC->Gsvolu("I513", "BOX ", idtmed[214], dits, 3);
db915fea 2532
2533 dits[0] = 0.16;
2534 dits[1] = 0.08;
2535 dits[2] = 0.08;
9d2da7b3 2536 gMC->Gsvolu("I514", "BOX ", idtmed[214], dits, 3);
db915fea 2537
2538 dits[0] = 3.4;
2539 dits[1] = 0.015;
2540 dits[2] = 0.525;
9d2da7b3 2541 gMC->Gsvolu("I512", "BOX ", idtmed[203], dits, 3);
db915fea 2542
2543 dits[0] = 0.225;
2544 dits[1] = 0.195;
2545 dits[2] = 1.955;
2546 dits[3] = 0.025;
9d2da7b3 2547 gMC->Gsvolu("I528", "TRD1", idtmed[203], dits, 4);
db915fea 2548
2549 dits[0] = 0.25;
2550 dits[1] = 0.22;
2551 dits[2] = 1.955;
2552 dits[3] = 0.025;
9d2da7b3 2553 gMC->Gsvolu("I527", "TRD1", idtmed[203], dits, 4);
db915fea 2554
2555 dits[0] = 2.17;
2556 dits[1] = 0.035;
2557 dits[2] = 0.05;
9d2da7b3 2558 gMC->Gsvolu("I526", "BOX ", idtmed[203], dits, 3);
db915fea 2559
2560 dits[0] = 2.675;
2561 dits[1] = 0.035;
2562 dits[2] = 0.05;
9d2da7b3 2563 gMC->Gsvolu("I525", "BOX ", idtmed[203], dits, 3);
db915fea 2564
2565 dits[0] = 2;
2566 dits[1] = 0.035;
2567 dits[2] = 0.05;
9d2da7b3 2568 gMC->Gsvolu("I524", "BOX ", idtmed[203], dits, 3);
db915fea 2569
2570 dits[0] = 0;
2571 dits[1] = 0.05;
2572 dits[2] = 0.205;
9d2da7b3 2573 gMC->Gsvolu("I529", "TUBE", idtmed[203], dits, 3);
db915fea 2574
2575 dits[0] = 0;
2576 dits[1] = 0.05;
2577 dits[2] = 0.17;
9d2da7b3 2578 gMC->Gsvolu("I530", "TUBE", idtmed[203], dits, 3);
db915fea 2579
2580 dits[0] = 0.15;
2581 dits[1] = 0.105;
2582 dits[2] = 0.29;
2583 dits[3] = 0.08;
9d2da7b3 2584 gMC->Gsvolu("I517", "TRD1", idtmed[203], dits, 4);
db915fea 2585
e4f08ac3 2586 if (fluid == 1) {
2587 dits[0] = 0;
2588 dits[1] = 0.07;
2589 dits[2] = 1.955;
2590 gMC->Gsvolu("I531", "TUBE", idtmed[211], dits, 3); // set water as cooling fluid
2591 } else {
2592 dits[0] = 0;
2593 dits[1] = 0.07;
2594 dits[2] = 1.955;
2595 gMC->Gsvolu("I531", "TUBE", idtmed[212], dits, 3); // set freon as cooling fluid
2596 }
db915fea 2597
2598 dits[0] = 0.07;
2599 dits[1] = 0.1;
2600 dits[2] = 1.955;
9d2da7b3 2601 gMC->Gsvolu("I532", "TUBE", idtmed[210], dits, 3);
db915fea 2602
2603 dits[0] = 0.3;
2604 dits[1] = 0.15;
2605 dits[2] = 0.15;
9d2da7b3 2606 gMC->Gsvolu("I533", "BOX ", idtmed[203], dits, 3);
db915fea 2607
2608 dits[0] = 3.65;
2609 dits[1] = 0.015;
2610 dits[2] = 2;
2611 gMC->Gsvolu("ITS5", "BOX ", idtmed[200], dits, 3);
2612
2613
e4f08ac3 2614
2615 // --- Define volumes of shield of SPD ----------------
9d2da7b3 2616
2617
2618 dits[0] = 8.37;
2619 dits[1] = 9.93;
2620 dits[2] = 25;
2621 gMC->Gsvolu("IC01", "TUBE", idtmed[289], dits, 3);
2622
2623 dits[0] = 8.3;
e4f08ac3 2624 dits[1] = 9.995;
9d2da7b3 2625 dits[2] = 17.5/2.;
2626 gMC->Gsvolu("IC02", "TUBE", idtmed[289], dits, 3);
2627
2628
e4f08ac3 2629 // --- Define volume of first cylinder between SPD and SDD --------------
9d2da7b3 2630
e4f08ac3 2631 dits[0] = (21.-0.128)/2.;
2632 dits[1] = 21./2.;
2633 dits[2] = 39.4;
2634 gMC->Gsvolu("ICY1", "TUBE", idtmed[208], dits, 3);
9d2da7b3 2635
e4f08ac3 2636 // --- Define volume of second cylinder between SDD and SSD --------------
9d2da7b3 2637
e4f08ac3 2638 dits[0] = (59.5-0.128)/2.;
2639 dits[1] = 59.5/2.;
2640 dits[2] = 56.2; // was 57
2641 gMC->Gsvolu("ICY2", "TUBE", idtmed[208], dits, 3);
9d2da7b3 2642
2643 // --- Define volumes of SDD cone ----------------------------------
2644
2645 dits[0] = 0;
2646 dits[1] = 360;
2647 dits[2] = 12;
2648 dits[3] = -59.7;
2649 dits[4] = 27;
e4f08ac3 2650 dits[5] = 28.6;
9d2da7b3 2651 dits[6] = -42.7;
2652 dits[7] = 10;
e4f08ac3 2653 dits[8] = 28.6;
9d2da7b3 2654 dits[9] = -34.65;
2655 dits[10] = 10;
e4f08ac3 2656 dits[11] = 28.6;
9d2da7b3 2657 dits[12] = -34.65;
2658 dits[13] = 10;
2659 dits[14] = 23.495;
2660 dits[15] = -23.7;
2661 dits[16] = 10;
2662 dits[17] = 23.495;
2663 dits[18] = -23.7;
2664 dits[19] = 10;
2665 dits[20] = 14.595;
2666 dits[21] = 23.7;
2667 dits[22] = 10;
2668 dits[23] = 14.595;
2669 dits[24] = 23.7;
2670 dits[25] = 10;
2671 dits[26] = 23.495;
2672 dits[27] = 34.65;
2673 dits[28] = 10;
2674 dits[29] = 23.495;
2675 dits[30] = 34.65;
2676 dits[31] = 10;
e4f08ac3 2677 dits[32] = 28.6;
2678 dits[33] = 42.7;
9d2da7b3 2679 dits[34] = 10;
e4f08ac3 2680 dits[35] = 28.6;
9d2da7b3 2681 dits[36] = 59.7;
2682 dits[37] = 27.2637;
e4f08ac3 2683 dits[38] = 28.6;
9d2da7b3 2684 gMC->Gsvolu("IS02", "PCON", idtmed[204], dits, 39);
2685
2686 dits[0] = 0;
2687 dits[1] = 360;
2688 dits[2] = 6;
e4f08ac3 2689 dits[3] = 38.65;
2690 dits[4] = 10.75;
2691 dits[5] = 12.25;
2692 dits[6] = 40.15;
2693 dits[7] = 10.75;
2694 dits[8] = 13.96;
2695 dits[9] = 40.15;
2696 dits[10] = 12.46;
9d2da7b3 2697 dits[11] = 13.96;
e4f08ac3 2698 dits[12] = 55.75;
2699 dits[13] = 27;
2700 dits[14] = 28.5;
2701 dits[15] = 55.75;
2702 dits[16] = 27;
2703 dits[17] = 28.5;
2704 dits[18] = 57.25;
2705 dits[19] = 27;
2706 dits[20] = 28.5;
9d2da7b3 2707 gMC->Gsvolu("I093", "PCON", idtmed[272], dits, 21); // SDD cone
2708
2709 dits[0] = 0;
2710 dits[1] = 50;
2711 dits[2] = 3;
e4f08ac3 2712 dits[3] = 39;
9d2da7b3 2713 dits[4] = 14;
2714 dits[5] = 18.75;
2715 dits[6] = 46.7-3;
2716 dits[7] = 14;
2717 dits[8] = 18.75;
2718 dits[9] = 51.45-3;
2719 dits[10] = 18.75;
2720 dits[11] = 18.75;
e4f08ac3 2721 gMC->Gsvolu("I099", "PCON", idtmed[204], dits, 12); // SDD 3 cone hole
9d2da7b3 2722
2723 dits[0] = 0;
2724 dits[1] = 25;
2725 dits[2] = 3;
e4f08ac3 2726 dits[3] = 49;
9d2da7b3 2727 dits[4] = 23.4;
2728 dits[5] = 26.4;
2729 dits[6] = 56.1-3;
2730 dits[7] = 23.4;
2731 dits[8] = 26.4;
2732 dits[9] = 59.1-3;
2733 dits[10] = 26.4;
2734 dits[11] = 26.4;
e4f08ac3 2735 gMC->Gsvolu("I200", "PCON", idtmed[204], dits, 12); // SDD 4 cone hole
9d2da7b3 2736
e4f08ac3 2737 dits[0] = 10.0;
2738 dits[1] = 10.5;
9d2da7b3 2739 dits[2] = 0.25;
e4f08ac3 2740 gMC->Gsvolu("I090", "TUBE", idtmed[224], dits, 3); // SDD cylinder flange
9d2da7b3 2741
2742 dits[0] = 21.95;
e4f08ac3 2743 dits[1] = 22.95;
9d2da7b3 2744 dits[2] = 1;
e4f08ac3 2745 gMC->Gsvolu("I098", "TUBE", idtmed[283], dits, 3); // ladder support on layer 4
9d2da7b3 2746
e4f08ac3 2747 dits[0] = 13.1;
2748 dits[1] = 14.1;
9d2da7b3 2749 dits[2] = 1;
e4f08ac3 2750 gMC->Gsvolu("I097", "TUBE", idtmed[283], dits, 3); // ladder support on layer 3
9d2da7b3 2751
2752 dits[0] = 1;
2753 dits[1] = 1;
2754 dits[2] = 7.74;
2755 gMC->Gsvolu("I202", "BOX ", idtmed[272], dits, 3);
2756
2757 dits[0] = 1;
2758 dits[1] = 1;
2759 dits[2] = 9.14;
2760 gMC->Gsvolu("I203", "BOX ", idtmed[272], dits, 3);
2761
2762 dits[0] = 21.95;
2763 dits[1] = 22.95;
2764 dits[2] = 1;
2765 gMC->Gsvolu("I095", "TUBE", idtmed[224], dits, 3);
2766
2767 dits[0] = 3;
2768 dits[1] = 2.7;
2769 dits[2] = 1;
2770 dits[3] = 0.63;
2771 gMC->Gsvolu("I096", "TRD1", idtmed[264], dits, 4);
2772
2773 dits[0] = 13.1;
2774 dits[1] = 14.1;
2775 dits[2] = 1;
2776 gMC->Gsvolu("I094", "TUBE", idtmed[224], dits, 3);
2777
2778
2779 // --- Define volumes of SSD cone ----------------------------------
2780
2781
2782 dits[0] = 0;
2783 dits[1] = 360;
2784 dits[2] = 12;
e4f08ac3 2785 dits[3] = -zmax;
2786 dits[4] = 46;
2787 dits[5] = 49.25;
9d2da7b3 2788 dits[6] = -61.2;
e4f08ac3 2789 dits[7] = 28.7;
2790 dits[8] = 49.25;
9d2da7b3 2791 dits[9] = -57.5;
e4f08ac3 2792 dits[10] = 28.7;
2793 dits[11] = 49.25;
9d2da7b3 2794 dits[12] = -57.5;
e4f08ac3 2795 dits[13] = 28.7;
9d2da7b3 2796 dits[14] = 43.5;
e4f08ac3 2797 dits[15] = -49.2;
2798 dits[16] = 28.7;
9d2da7b3 2799 dits[17] = 43.5;
e4f08ac3 2800 dits[18] = -49.2;
2801 dits[19] = 28.7;
2802 dits[20] = 36.85;
2803 dits[21] = 50.6;
2804 dits[22] = 28.7;
2805 dits[23] = 36.85;
2806 dits[24] = 50.6;
2807 dits[25] = 28.7;
9d2da7b3 2808 dits[26] = 43.5;
e4f08ac3 2809 dits[27] = 57.5;
2810 dits[28] = 28.7;
9d2da7b3 2811 dits[29] = 43.5;
e4f08ac3 2812 dits[30] = 57.5;
2813 dits[31] = 28.7;
2814 dits[32] = 49.25;
2815 dits[33] = 61.2;
2816 dits[34] = 28.7;
2817 dits[35] = 49.25;
2818 dits[36] = zmax;
2819 dits[37] = 46;
2820 dits[38] = 49.25;
2821 gMC->Gsvolu("IS01", "PCON", idtmed[204], dits, 39); // SSD cone mother volume
9d2da7b3 2822
2823 dits[0] = 0;
2824 dits[1] = 360;
2825 dits[2] = 6;
e4f08ac3 2826 dits[3] = -zmax;
2827 dits[4] = 47.75;
2828 dits[5] = 49.25;
2829 dits[6] = -zmax+2.;
2830 dits[7] = 47.75;
2831 dits[8] = 49.25;
2832 dits[9] = -71.2819;
2833 dits[10] = 46.75;
2834 dits[11] = 49.0319;
2835 dits[12] = -57.25; // was 58.5
2836 dits[13] = 32.9681;
2837 dits[14] = 34.75;
2838 dits[15] = -57.25; // was 58.5
2839 dits[16] = 30;
2840 dits[17] = 34.75;
2841 dits[18] = -55.75; // was 57
2842 dits[19] = 30;
2843 dits[20] = 32.25; // was 31.5
9d2da7b3 2844 gMC->Gsvolu("I212", "PCON", idtmed[272], dits, 21); // SSD cone
2845
e4f08ac3 2846 dits[0] = 28.75;
2847 dits[1] = 29.75;
9d2da7b3 2848 dits[2] = 0.5;
e4f08ac3 2849 gMC->Gsvolu("I211", "TUBE", idtmed[224], dits, 3); // SSD cylinder flange
9d2da7b3 2850
e4f08ac3 2851 dits[0] = 35.8;
2852 dits[1] = 36.8;
9d2da7b3 2853 dits[2] = 1;
e4f08ac3 2854 gMC->Gsvolu("I217", "TUBE", idtmed[283], dits, 3); // ladder support on layer 5
9d2da7b3 2855
e4f08ac3 2856 dits[0] = 41.4;
2857 dits[1] = 42.4;
9d2da7b3 2858 dits[2] = 1;
e4f08ac3 2859 gMC->Gsvolu("I219", "TUBE", idtmed[283], dits, 3); // ladder support on layer 6
2860
2861 dits[0] = 42.05+5.;
2862 dits[1] = 42.55+5.;
9d2da7b3 2863 dits[2] = 1.25;
e4f08ac3 2864 gMC->Gsvolu("I214", "TUBE", idtmed[224], dits, 3); // layer 6 electronic support
2865 // this will change after PPR
2866 dits[0] = 37.05+5.;
2867 dits[1] = 37.55+5.;
9d2da7b3 2868 dits[2] = 1.25;
e4f08ac3 2869 gMC->Gsvolu("I213", "TUBE", idtmed[224], dits, 3); // layer 5 electronic support
2870 // this will change after PPR
9d2da7b3 2871 dits[0] = 0;
2872 dits[1] = 25;
2873 dits[2] = 5;
e4f08ac3 2874 dits[3] = -zmax+3;
2875 dits[4] = 45.5;
2876 dits[5] = 45.5;
9d2da7b3 2877 dits[6] = -69.7+3;
2878 dits[7] = 37;
e4f08ac3 2879 dits[8] = 45.5;
9d2da7b3 2880 dits[9] = -68.5+3;
2881 dits[10] = 37;
e4f08ac3 2882 dits[11] = 45.5;
9d2da7b3 2883 dits[12] = -68.5+4.8;
2884 dits[13] = 37;
e4f08ac3 2885 dits[14] = 45.5;
9d2da7b3 2886 dits[15] = -63.5+4.8;
2887 dits[16] = 37;
e4f08ac3 2888 dits[17] = 45.5;
2889 gMC->Gsvolu("I215", "PCON", idtmed[204], dits, 18); // SSD cone hole
9d2da7b3 2890
2891 dits[0] = 0;
2892 dits[1] = 3.2;
2893 dits[2] = 9;
e4f08ac3 2894 dits[3] = -14;
9d2da7b3 2895 dits[4] = 30.5;
2896 dits[5] = 33.5;
e4f08ac3 2897 dits[6] = -9.85;
9d2da7b3 2898 dits[7] = 30.5;
2899 dits[8] = 33.5;
e4f08ac3 2900 dits[9] = -9.85;
9d2da7b3 2901 dits[10] = 30.5;
e4f08ac3 2902 dits[11] = 43.45;
2903 dits[12] = -7.85;
9d2da7b3 2904 dits[13] = 30.5;
e4f08ac3 2905 dits[14] = 43.45;
2906 dits[15] = -7.85;
9d2da7b3 2907 dits[16] = 30.5;
2908 dits[17] = 36.5;
e4f08ac3 2909 dits[18] = -7;
9d2da7b3 2910 dits[19] = 30.5;
2911 dits[20] = 36.5;
e4f08ac3 2912 dits[21] = -4;
9d2da7b3 2913 dits[22] = 33.0173;
2914 dits[23] = 36.5;
e4f08ac3 2915 dits[24] = -4;
9d2da7b3 2916 dits[25] = 33.0173;
e4f08ac3 2917 dits[26] = 36.80;
2918 dits[27] = -2;
9d2da7b3 2919 dits[28] = 34.6955;
e4f08ac3 2920 dits[29] = 36.80;
2921 gMC->Gsvolu("I216", "PCON", idtmed[272], dits, 30); // supports (1-6) of the ladders
9d2da7b3 2922
2923
2924 // --- Place SPD (option 'a') volumes into their mother volume IT12
2925
2926 // SPD - option 'a'
2927 // (this is NOT the default)
2928
2929 if (option == 1) {
2930
2931 gMC->Gspos("I12A",5,"IT12",0.0,0.0,0.0,idrotm[238],"MANY");
2932 gMC->Gspos("I12A",6,"IT12",0.0,0.0,0.0,idrotm[236],"MANY");
2933 gMC->Gspos("I12A",7,"IT12",0.0,0.0,0.0,idrotm[239],"MANY");
2934 gMC->Gspos("I12A",8,"IT12",0.0,0.0,0.0,idrotm[233],"MANY");
2935 gMC->Gspos("I12A",9,"IT12",0.0,0.0,0.0,idrotm[240],"MANY");
2936 gMC->Gspos("I12A",10,"IT12",0.0,0.0,0.0,idrotm[241],"MANY");
2937 gMC->Gspos("I12A",2,"IT12",0.0,0.0,0.0,idrotm[242],"MANY");
2938 gMC->Gspos("I12A",3,"IT12",0.0,0.0,0.0,idrotm[234],"MANY");
2939 gMC->Gspos("I12A",4,"IT12",0.0,0.0,0.0,idrotm[243],"MANY");
2940 gMC->Gspos("I12A",1,"IT12",0.0,0.0,0.0,0,"MANY");
2941 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.); // see definition of idrotm[244]
2942 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.); // see definition of idrotm[244]
2943 gMC->Gspos("I10A",2,"I12A",0.203+deltax,3.8206+deltay,0.0,idrotm[244],"ONLY");
2944 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.); // see definition of idrotm[245]
2945 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.); // see definition of idrotm[245]
2946 gMC->Gspos("I10A",1,"I12A",1.4531+deltax,3.8152+deltay,0.0,idrotm[245],"ONLY");
2947 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.); // see definition of idrotm[246]
2948 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.); // see definition of idrotm[246]
2949 gMC->Gspos("I20A",1,"I12A",3.0174+deltax,6.5143+deltay,0.0,idrotm[246],"ONLY");
2950 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.); // see definition of idrotm[247]
2951 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.); // see definition of idrotm[247]
2952 gMC->Gspos("I20A",2,"I12A",1.9612+deltax,6.9062+deltay,0.0,idrotm[247],"ONLY");
2953 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.); // see definition of idrotm[248]
2954 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.); // see definition of idrotm[248]
2955 gMC->Gspos("I20A",3,"I12A",0.8567+deltax,7.1279+deltay,0.0,idrotm[248],"ONLY");
2956 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.); // see definition of idrotm[249]
2957 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.); // see definition of idrotm[249]
2958 gMC->Gspos("I20A",4,"I12A",-0.2689+deltax,7.1742+deltay,0.0,idrotm[249],"ONLY");
2959 gMC->Gspos("I123",2,"I12A",-0.2978,5.5196,0.0,idrotm[214],"ONLY");
2960 gMC->Gspos("I121",2,"I12A",-0.2385,4.1518,0.0,idrotm[213],"ONLY");
2961 gMC->Gspos("I122",2,"I12A",-0.2968,4.0207,0.0,idrotm[212],"ONLY");
2962 gMC->Gspos("I120",2,"I12A",-0.3672,3.9056,0.0,0,"ONLY");
2963 gMC->Gspos("I144",1,"I12A",-0.2538,3.8556,0.0,0,"ONLY");
2964 gMC->Gspos("I113",3,"I12A",0.1095,3.9056,0.0,0,"ONLY");
2965 gMC->Gspos("I143",1,"I12A",0.4365,3.8556,0.0,idrotm[236],"ONLY");
2966 gMC->Gspos("I142",1,"I12A",0.5136,3.9056,0.0,idrotm[235],"ONLY");
2967 gMC->Gspos("I141",1,"I12A",0.5636,3.9752,0.0,idrotm[201],"ONLY");
2968 gMC->Gspos("I140",1,"I12A",0.6336,4.0447,0.0,idrotm[234],"ONLY");
2969 gMC->Gspos("I139",1,"I12A",0.8297,4.0545,0.0,idrotm[207],"ONLY");
2970 gMC->Gspos("I113",5,"I12A",1.2575,3.9681,0.0,idrotm[207],"ONLY");
2971 gMC->Gspos("I138",1,"I12A",1.66,3.7848,0.0,idrotm[207],"ONLY");
2972 gMC->Gspos("I137",1,"I12A",1.8556,3.7738,0.0,idrotm[233],"ONLY");
2973 gMC->Gspos("I136",1,"I12A",2.6224,4.874,0.0,idrotm[232],"ONLY");
2974 gMC->Gspos("I135",1,"I12A",3.2967,6.0337,0.0,idrotm[231],"ONLY");
2975 gMC->Gspos("I134",1,"I12A",3.266,6.1636,0.0,idrotm[230],"ONLY");
2976 gMC->Gspos("I113",1,"I12A",2.9903,6.4144,0.0,idrotm[211],"ONLY");
2977 gMC->Gspos("I133",3,"I12A",2.7631,6.7627,0.0,idrotm[230],"ONLY");
2978 gMC->Gspos("I132",3,"I12A",2.62,6.8555,0.0,idrotm[229],"ONLY");
2979 gMC->Gspos("I131",3,"I12A",2.648,6.6023,0.0,idrotm[228],"ONLY");
2980 gMC->Gspos("I130",3,"I12A",2.6569,6.3431,0.0,idrotm[227],"ONLY");
2981 gMC->Gspos("I129",3,"I12A",2.3906,6.4819,0.0,idrotm[226],"ONLY");
2982 gMC->Gspos("I113",2,"I12A",1.9488,6.7998,0.0,idrotm[210],"ONLY");
2983 gMC->Gspos("I133",2,"I12A",1.6699,7.1085,0.0,idrotm[226],"ONLY");
2984 gMC->Gspos("I132",2,"I12A",1.5142,7.1777,0.0,idrotm[225],"ONLY");
2985 gMC->Gspos("I131",2,"I12A",1.5814,6.932,0.0,idrotm[224],"ONLY");
2986 gMC->Gspos("I130",2,"I12A",1.6308,6.6774,0.0,idrotm[223],"ONLY");
2987 gMC->Gspos("I129",2,"I12A",1.346,6.7728,0.0,idrotm[222],"ONLY");
2988 gMC->Gspos("I113",6,"I12A",0.8599,7.0176,0.0,idrotm[209],"ONLY");
2989 gMC->Gspos("I133",1,"I12A",0.5362,7.2789,0.0,idrotm[222],"ONLY");
2990 gMC->Gspos("I132",1,"I12A",0.3715,7.3228,0.0,idrotm[221],"ONLY");
2991 gMC->Gspos("I131",1,"I12A",0.4763,7.0907,0.0,idrotm[220],"ONLY");
2992 gMC->Gspos("I130",1,"I12A",0.5649,6.8469,0.0,idrotm[219],"ONLY");
2993 gMC->Gspos("I129",1,"I12A",0.2688,6.8966,0.0,idrotm[218],"ONLY");
2994 gMC->Gspos("I113",4,"I12A",-0.2497,7.0624,0.0,idrotm[208],"ONLY");
2995 gMC->Gspos("I128",1,"I12A",-0.6103,7.2698,0.0,idrotm[218],"ONLY");
2996 gMC->Gspos("I126",2,"I12A",-0.7799,7.2874,0.0,idrotm[217],"ONLY");
2997 gMC->Gspos("I125",2,"I12A",-0.6315,7.0883,0.0,idrotm[216],"ONLY");
2998 gMC->Gspos("I124",2,"I12A",-0.4965,6.8742,0.0,idrotm[215],"ONLY");
9bf5e8ff 2999 gMC->Gspos("I103",3,"I10A",-0.05,-di10a[1]+2.*di104[1]+di103[1],-3.536,0,"ONLY");
3000 gMC->Gspos("I103",4,"I10A",-0.05,-di10a[1]+2.*di104[1]+di103[1],-10.708,0,"ONLY");
9d2da7b3 3001 gMC->Gspos("I103",1,"I10A",-0.05,-di10a[1]+2.*di104[1]+di103[1],10.708,0,"ONLY");
3002 gMC->Gspos("I103",2,"I10A",-0.05,-di10a[1]+2.*di104[1]+di103[1],3.536,0,"ONLY");
3003 gMC->Gspos("I105",1,"I10A",-0.05,0.01,-16.844,idrotm[237],"ONLY");
3004 gMC->Gspos("I105",2,"I10A",-0.05,0.01,16.844,0,"ONLY");
3005 gMC->Gspos("I104",1,"I10A",0.0,-di10a[1]+di104[1],0.0,0,"ONLY");
9bf5e8ff 3006 gMC->Gspos("I1D3",3,"I20A",-0.05,-di20a[1]+2.*di104[1]+di1d3[1],-3.536,0,"ONLY");
3007 gMC->Gspos("I1D3",4,"I20A",-0.05,-di20a[1]+2.*di104[1]+di1d3[1],-10.708,0,"ONLY");
9d2da7b3 3008 gMC->Gspos("I1D3",1,"I20A",-0.05,-di20a[1]+2.*di104[1]+di1d3[1],10.708,0,"ONLY");
3009 gMC->Gspos("I1D3",2,"I20A",-0.05,-di20a[1]+2.*di104[1]+di1d3[1],3.536,0,"ONLY");
3010 gMC->Gspos("I105",3,"I20A",-0.05,0.01,-16.844,idrotm[237],"ONLY");
3011 gMC->Gspos("I105",4,"I20A",-0.05,0.01,16.844,0,"ONLY");
3012 gMC->Gspos("I104",2,"I20A",0.0,-di20a[1]+di104[1],0.0,0,"ONLY");
3013 gMC->Gspos("I112",2,"I113",0.25,0.02,0.0,idrotm[206],"ONLY");
3014 gMC->Gspos("I111",2,"I113",0.1318,-0.0008,0.0,idrotm[205],"ONLY");
3015 gMC->Gspos("I118",1,"I113",0.0,-0.0454,0.0,0,"ONLY");
3016 gMC->Gspos("I110",1,"I113",0.0,0.0492,0.0,0,"ONLY");
3017 gMC->Gspos("I114",1,"I113",0.063,0.0042,0.0,idrotm[202],"ONLY");
3018 gMC->Gspos("I115",1,"I113",0.063,0.0042,0.0,idrotm[202],"ONLY");
3019 gMC->Gspos("I115",2,"I113",-0.063,0.0042,0.0,idrotm[201],"ONLY");
3020 gMC->Gspos("I114",2,"I113",-0.063,0.0042,0.0,idrotm[201],"ONLY");
3021 gMC->Gspos("I116",1,"I113",0.0,0.0042,0.0,0,"ONLY");
3022 gMC->Gspos("I111",1,"I113",-0.1318,-0.0008,0.0,idrotm[204],"ONLY");
3023 gMC->Gspos("I112",1,"I113",-0.25,0.02,0.0,idrotm[203],"ONLY");
3024 gMC->Gspos("I101",1,"I103",-0.088,ddet1,0.0,0,"ONLY");
3025 gMC->Gspos("I102",1,"I103",0.0,-dchip1,-2.8,0,"ONLY");
3026 gMC->Gspos("I102",2,"I103",0.0,-dchip1,-1.4,0,"ONLY");
3027 gMC->Gspos("I102",3,"I103",0.0,-dchip1,0.0,0,"ONLY");
3028 gMC->Gspos("I102",4,"I103",0.0,-dchip1,1.4,0,"ONLY");
3029 gMC->Gspos("I102",5,"I103",0.0,-dchip1,2.8,0,"ONLY");
3030 gMC->Gspos("I1D1",1,"I1D3",-0.088,ddet2,0.0,0,"ONLY");
3031 gMC->Gspos("I1D2",1,"I1D3",0.0,-dchip2,-2.8,0,"ONLY");
3032 gMC->Gspos("I1D2",2,"I1D3",0.0,-dchip2,-1.4,0,"ONLY");
3033 gMC->Gspos("I1D2",3,"I1D3",0.0,-dchip2,0.0,0,"ONLY");
3034 gMC->Gspos("I1D2",4,"I1D3",0.0,-dchip2,1.4,0,"ONLY");
3035 gMC->Gspos("I1D2",5,"I1D3",0.0,-dchip2,2.8,0,"ONLY");
3036 gMC->Gspos("I117",1,"I116",0.0,0.0,0.0,0,"ONLY");
3037 gMC->Gspos("ITS1",1,"I101",0.0,0.0,0.0,0,"ONLY");
3038 gMC->Gspos("ITS2",1,"I1D1",0.0,0.0,0.0,0,"ONLY");
3039 gMC->Gspos("I650",16,"IT12",0.0,0.0,22.0,idrotm[1104],"MANY");
3040 gMC->Gspos("I650",20,"IT12",0.0,0.0,22.0,idrotm[1130],"MANY");
3041 gMC->Gspos("I650",18,"IT12",0.0,0.0,22.0,idrotm[1117],"MANY");
3042 gMC->Gspos("I650",1,"IT12",0.0,0.0,22.0,0,"MANY");
3043 gMC->Gspos("I650",4,"IT12",0.0,0.0,22.0,idrotm[1106],"MANY");
3044 gMC->Gspos("I650",6,"IT12",0.0,0.0,22.0,idrotm[1039],"MANY");
3045 gMC->Gspos("I650",8,"IT12",0.0,0.0,22.0,idrotm[1107],"MANY");
3046 gMC->Gspos("I650",10,"IT12",0.0,0.0,22.0,idrotm[1065],"MANY");
3047 gMC->Gspos("I650",12,"IT12",0.0,0.0,22.0,idrotm[1078],"MANY");
3048 gMC->Gspos("I650",14,"IT12",0.0,0.0,22.0,idrotm[1091],"MANY");
3049 gMC->Gspos("I650",19,"IT12",0.0,0.0,-22.0,idrotm[1108],"MANY");
3050 gMC->Gspos("I650",2,"IT12",0.0,0.0,-22.0,idrotm[1109],"MANY");
3051 gMC->Gspos("I650",3,"IT12",0.0,0.0,-22.0,idrotm[1110],"MANY");
3052 gMC->Gspos("I650",5,"IT12",0.0,0.0,-22.0,idrotm[1111],"MANY");
3053 gMC->Gspos("I650",7,"IT12",0.0,0.0,-22.0,idrotm[1112],"MANY");
3054 gMC->Gspos("I650",9,"IT12",0.0,0.0,-22.0,idrotm[1113],"MANY");
3055 gMC->Gspos("I650",11,"IT12",0.0,0.0,-22.0,idrotm[1114],"MANY");
3056 gMC->Gspos("I650",13,"IT12",0.0,0.0,-22.0,idrotm[1115],"MANY");
3057 gMC->Gspos("I650",15,"IT12",0.0,0.0,-22.0,idrotm[1116],"MANY");
3058 gMC->Gspos("I650",17,"IT12",0.0,0.0,-22.0,idrotm[1118],"MANY");
3059 gMC->Gspos("I666",1,"I650",0.0,0.0,0.25,idrotm[1003],"MANY");
3060 gMC->Gspos("I667",1,"I650",0.1102,0.9945,0.45,idrotm[1088],"ONLY");
3061 gMC->Gspos("I669",3,"I650",0.1883,4.0372,-3.2,0,"ONLY");
3062 gMC->Gspos("I671",3,"I650",0.1883,4.0372,0.6,0,"ONLY");
3063 gMC->Gspos("I669",2,"I650",1.3343,4.0609,-3.2,0,"ONLY");
3064 gMC->Gspos("I671",2,"I650",1.3343,4.0609,0.6,0,"ONLY");
3065 gMC->Gspos("I669",6,"I650",2.9567,6.1959,-3.2,idrotm[1089],"ONLY");
3066 gMC->Gspos("I671",6,"I650",2.9567,6.1959,0.6,idrotm[1089],"ONLY");
3067 gMC->Gspos("I669",5,"I650",1.9511,6.5822,-3.2,idrotm[1011],"ONLY");
3068 gMC->Gspos("I671",5,"I650",1.9511,6.5822,0.6,idrotm[1011],"ONLY");
3069 gMC->Gspos("I669",4,"I650",0.8974,6.8064,-3.2,idrotm[1090],"ONLY");
3070 gMC->Gspos("I671",4,"I650",0.8974,6.8064,0.6,idrotm[1090],"ONLY");
3071 gMC->Gspos("I669",1,"I650",-0.1784,6.863,-3.2,0,"ONLY");
3072 gMC->Gspos("I671",1,"I650",-0.1784,6.863,0.6,0,"ONLY");
3073 gMC->Gspos("I673",1,"I650",0.2173,4.8037,1.8,0,"ONLY");
3074 gMC->Gspos("I673",6,"I650",1.5093,4.5605,1.8,0,"ONLY");
3075 gMC->Gspos("I673",4,"I650",-0.173,6.2531,1.8,idrotm[1092],"ONLY");
3076 gMC->Gspos("I673",3,"I650",0.8073,6.2032,1.8,idrotm[1093],"ONLY");
3077 gMC->Gspos("I673",2,"I650",1.7678,6.0005,1.8,idrotm[1094],"ONLY");
3078 gMC->Gspos("I673",5,"I650",2.6847,5.6501,1.8,0,"ONLY");
3079 gMC->Gspos("I676",2,"I650",1.7618,5.2269,2.5,0,"ONLY");
3080 gMC->Gspos("I676",1,"I650",0.4018,5.5869,2.5,0,"ONLY");
3081 gMC->Gspos("I668",1,"I667",0.0,0.0,0.0,0,"ONLY");
3082 gMC->Gspos("I670",1,"I669",0.0,0.0,0.0,0,"ONLY");
3083 gMC->Gspos("I672",1,"I671",0.0,0.0,0.0,0,"ONLY");
3084 gMC->Gspos("I674",1,"I673",0.0,0.0,0.0,0,"MANY");
3085 gMC->Gspos("I675",1,"I673",0.0,0.0,-0.5,0,"ONLY");
3086 gMC->Gspos("I677",1,"I676",0.0,0.0,0.0,0,"MANY");
3087 gMC->Gspos("I678",1,"I676",0.0,0.0,-0.95,0,"ONLY");
3088
3089 }
3090
3091
3092 // --- Place SPD (option 'b') volumes into their mother volume IT12
3093
3094 // SPD - option 'b'
3095 // (this is the default)
3096
3097 if (option == 2) {
3098
3099 gMC->Gspos("I12B",1,"IT12",0.0,0.0,0.0,0,"MANY");
3100 gMC->Gspos("I12B",8,"IT12",0.0,0.0,0.0,idrotm[233],"MANY");
3101 gMC->Gspos("I12B",7,"IT12",0.0,0.0,0.0,idrotm[244],"MANY");
3102 gMC->Gspos("I12B",6,"IT12",0.0,0.0,0.0,idrotm[236],"MANY");
3103 gMC->Gspos("I12B",2,"IT12",0.0,0.0,0.0,idrotm[245],"MANY");
3104 gMC->Gspos("I12B",3,"IT12",0.0,0.0,0.0,idrotm[234],"MANY");
3105 gMC->Gspos("I12B",4,"IT12",0.0,0.0,0.0,idrotm[246],"MANY");
3106 gMC->Gspos("I12B",5,"IT12",0.0,0.0,0.0,idrotm[247],"MANY");
3107 gMC->Gspos("I12B",9,"IT12",0.0,0.0,0.0,idrotm[248],"MANY");
3108 gMC->Gspos("I12B",10,"IT12",0.0,0.0,0.0,idrotm[249],"MANY");
3109 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.); // see definition of idrotm[238]
3110 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.); // see definition of idrotm[238]
3111 gMC->Gspos("I10B",2,"I12B",0.203+deltax,3.8206+deltay,0.0,idrotm[238],"ONLY");
3112 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.); // see definition of idrotm[239]
3113 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.); // see definition of idrotm[239]
3114 gMC->Gspos("I10B",1,"I12B",1.4531+deltax,3.8152+deltay,0.0,idrotm[239],"ONLY");
3115 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.); // see definition of idrotm[240]
3116 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.); // see definition of idrotm[240]
3117 gMC->Gspos("I20B",1,"I12B",3.0174+deltax,6.5143+deltay,0.0,idrotm[240],"ONLY");
3118 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.); // see definition of idrotm[241]
3119 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.); // see definition of idrotm[241]
3120 gMC->Gspos("I20B",2,"I12B",1.9612+deltax,6.9062+deltay,0.0,idrotm[241],"ONLY");
3121 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.); // see definition of idrotm[242]
3122 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.); // see definition of idrotm[242]
3123 gMC->Gspos("I20B",3,"I12B",0.8567+deltax,7.1279+deltay,0.0,idrotm[242],"ONLY");
3124 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.); // see definition of idrotm[243]
3125 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.); // see definition of idrotm[243]
3126 gMC->Gspos("I20B",4,"I12B",-0.2689+deltax,7.1742+deltay,0.0,idrotm[243],"ONLY");
3127 gMC->Gspos("I123",1,"I12B",-0.2978,5.5196,0.0,idrotm[214],"ONLY");
3128 gMC->Gspos("I121",1,"I12B",-0.2385,4.1518,0.0,idrotm[213],"ONLY");
3129 gMC->Gspos("I122",1,"I12B",-0.2968,4.0207,0.0,idrotm[212],"ONLY");
3130 gMC->Gspos("I120",1,"I12B",-0.3672,3.9056,0.0,0,"ONLY");
3131 gMC->Gspos("I144",1,"I12B",-0.2538,3.8556,0.0,0,"ONLY");
3132 gMC->Gspos("I113",3,"I12B",0.1095,3.9056,0.0,0,"ONLY");
3133 gMC->Gspos("I143",1,"I12B",0.4365,3.8556,0.0,idrotm[236],"ONLY");
3134 gMC->Gspos("I142",1,"I12B",0.5136,3.9056,0.0,idrotm[235],"ONLY");
3135 gMC->Gspos("I141",1,"I12B",0.5636,3.9752,0.0,idrotm[237],"ONLY");
3136 gMC->Gspos("I140",1,"I12B",0.6336,4.0447,0.0,idrotm[234],"ONLY");
3137 gMC->Gspos("I139",1,"I12B",0.8297,4.0545,0.0,idrotm[207],"ONLY");
3138 gMC->Gspos("I113",5,"I12B",1.2575,3.9681,0.0,idrotm[207],"ONLY");
3139 gMC->Gspos("I138",1,"I12B",1.66,3.7848,0.0,idrotm[207],"ONLY");
3140 gMC->Gspos("I137",1,"I12B",1.8556,3.7738,0.0,idrotm[233],"ONLY");
3141 gMC->Gspos("I136",1,"I12B",2.6224,4.874,0.0,idrotm[232],"ONLY");
3142 gMC->Gspos("I135",1,"I12B",3.2967,6.0337,0.0,idrotm[231],"ONLY");
3143 gMC->Gspos("I134",1,"I12B",3.266,6.1636,0.0,idrotm[230],"ONLY");
3144 gMC->Gspos("I113",1,"I12B",2.9903,6.4144,0.0,idrotm[211],"ONLY");
3145 gMC->Gspos("I133",3,"I12B",2.7631,6.7627,0.0,idrotm[230],"ONLY");
3146 gMC->Gspos("I132",3,"I12B",2.62,6.8555,0.0,idrotm[229],"ONLY");
3147 gMC->Gspos("I131",3,"I12B",2.648,6.6023,0.0,idrotm[228],"ONLY");
3148 gMC->Gspos("I130",3,"I12B",2.6569,6.3431,0.0,idrotm[227],"ONLY");
3149 gMC->Gspos("I129",3,"I12B",2.3906,6.4819,0.0,idrotm[226],"ONLY");
3150 gMC->Gspos("I113",2,"I12B",1.9488,6.7998,0.0,idrotm[210],"ONLY");
3151 gMC->Gspos("I133",2,"I12B",1.6699,7.1085,0.0,idrotm[226],"ONLY");
3152 gMC->Gspos("I132",2,"I12B",1.5142,7.1777,0.0,idrotm[225],"ONLY");
3153 gMC->Gspos("I131",2,"I12B",1.5814,6.932,0.0,idrotm[224],"ONLY");
3154 gMC->Gspos("I130",2,"I12B",1.6308,6.6774,0.0,idrotm[223],"ONLY");
3155 gMC->Gspos("I129",2,"I12B",1.346,6.7728,0.0,idrotm[222],"ONLY");
3156 gMC->Gspos("I113",6,"I12B",0.8599,7.0176,0.0,idrotm[209],"ONLY");
3157 gMC->Gspos("I133",1,"I12B",0.5362,7.2789,0.0,idrotm[222],"ONLY");
3158 gMC->Gspos("I132",1,"I12B",0.3715,7.3228,0.0,idrotm[221],"ONLY");
3159 gMC->Gspos("I131",1,"I12B",0.4763,7.0907,0.0,idrotm[220],"ONLY");
3160 gMC->Gspos("I130",1,"I12B",0.5649,6.8469,0.0,idrotm[219],"ONLY");
3161 gMC->Gspos("I129",1,"I12B",0.2688,6.8966,0.0,idrotm[218],"ONLY");
3162 gMC->Gspos("I113",4,"I12B",-0.2497,7.0624,0.0,idrotm[208],"ONLY");
3163 gMC->Gspos("I128",1,"I12B",-0.6103,7.2698,0.0,idrotm[218],"ONLY");
3164 gMC->Gspos("I126",1,"I12B",-0.7799,7.2874,0.0,idrotm[217],"ONLY");
3165 gMC->Gspos("I125",1,"I12B",-0.6315,7.0883,0.0,idrotm[216],"ONLY");
3166 gMC->Gspos("I124",1,"I12B",-0.4965,6.8742,0.0,idrotm[215],"ONLY");
3167 gMC->Gspos("I105",3,"I10B",-0.05,-0.01,-16.844,idrotm[201],"ONLY");
3168 gMC->Gspos("I105",4,"I10B",-0.05,-0.01,16.844,0,"ONLY");
3169 gMC->Gspos("I107",2,"I10B",-0.0455,-di10b[1]+di107[1],3.536,0,"ONLY");
3170 gMC->Gspos("I107",1,"I10B",-0.0455,-di10b[1]+di107[1],10.708,0,"ONLY");
9bf5e8ff 3171 gMC->Gspos("I107",4,"I10B",-0.0455,-di10b[1]+di107[1],-10.708,0,"ONLY");
3172 gMC->Gspos("I107",3,"I10B",-0.0455,-di10b[1]+di107[1],-3.536,0,"ONLY");
9d2da7b3 3173 gMC->Gspos("I109",1,"I10B",-0.138,0.015,-16.844,idrotm[201],"ONLY");
3174 gMC->Gspos("I109",2,"I10B",-0.138,0.015,16.844,0,"ONLY");
3175 gMC->Gspos("I108",1,"I10B",-0.138,-di10b[1]+2.*di107[1]+di108[1],0.0,0,"ONLY");
3176 gMC->Gspos("I105",1,"I20B",-0.05,-0.01,-16.844,idrotm[201],"ONLY");
3177 gMC->Gspos("I105",2,"I20B",-0.05,-0.01,16.844,0,"ONLY");
3178 gMC->Gspos("I1D7",2,"I20B",-0.0455,-di20b[1]+di1d7[1],3.536,0,"ONLY");
3179 gMC->Gspos("I1D7",1,"I20B",-0.0455,-di20b[1]+di1d7[1],10.708,0,"ONLY");
3180 gMC->Gspos("I1D7",4,"I20B",-0.0455,-di20b[1]+di1d7[1],-10.708,idrotm[201],"ONLY");
3181 gMC->Gspos("I1D7",3,"I20B",-0.0455,-di20b[1]+di1d7[1],-3.536,idrotm[201],"ONLY");
3182 gMC->Gspos("I109",3,"I20B",-0.138,0.015,-16.844,idrotm[201],"ONLY");
3183 gMC->Gspos("I109",4,"I20B",-0.138,0.015,16.844,0,"ONLY");
3184 gMC->Gspos("I108",2,"I20B",-0.138,-di20b[1]+2.*di1d7[1]+di108[1],0.0,0,"ONLY");
3185 gMC->Gspos("I112",2,"I113",0.25,0.02,0.0,idrotm[206],"ONLY");
3186 gMC->Gspos("I111",2,"I113",0.1318,-0.0008,0.0,idrotm[205],"ONLY");
3187 gMC->Gspos("I118",1,"I113",0.0,-0.0454,0.0,0,"ONLY");
3188 gMC->Gspos("I110",1,"I113",0.0,0.0492,0.0,0,"ONLY");
3189 gMC->Gspos("I114",1,"I113",0.063,0.0042,0.0,idrotm[202],"ONLY");
3190 gMC->Gspos("I115",1,"I113",0.063,0.0042,0.0,idrotm[202],"ONLY");
3191 gMC->Gspos("I115",2,"I113",-0.063,0.0042,0.0,idrotm[237],"ONLY");
3192 gMC->Gspos("I114",2,"I113",-0.063,0.0042,0.0,idrotm[237],"ONLY");
3193 gMC->Gspos("I116",1,"I113",0.0,0.0042,0.0,0,"ONLY");
3194 gMC->Gspos("I111",1,"I113",-0.1318,-0.0008,0.0,idrotm[204],"ONLY");
3195 gMC->Gspos("I112",1,"I113",-0.25,0.02,0.0,idrotm[203],"ONLY");
3196 gMC->Gspos("I106",1,"I107",0.0,-dchip1,-1.4,0,"ONLY");
3197 gMC->Gspos("I106",2,"I107",0.0,-dchip1,0.0,0,"ONLY");
3198 gMC->Gspos("I106",3,"I107",0.0,-dchip1,1.4,0,"ONLY");
3199 gMC->Gspos("I106",4,"I107",0.0,-dchip1,2.8,0,"ONLY");
3200 gMC->Gspos("I106",5,"I107",0.0,-dchip1,-2.8,0,"ONLY");
3201 gMC->Gspos("I101",1,"I107",0.0,ddet1,0.0,0,"ONLY");
3202 gMC->Gspos("I1D6",1,"I1D7",0.0,-dchip2,-1.4,0,"ONLY");
3203 gMC->Gspos("I1D6",2,"I1D7",0.0,-dchip2,0.0,0,"ONLY");
3204 gMC->Gspos("I1D6",3,"I1D7",0.0,-dchip2,1.4,0,"ONLY");
3205 gMC->Gspos("I1D6",4,"I1D7",0.0,-dchip2,2.8,0,"ONLY");
3206 gMC->Gspos("I1D6",5,"I1D7",0.0,-dchip2,-2.8,0,"ONLY");
3207 gMC->Gspos("I1D1",1,"I1D7",0.0,ddet2,0.0,0,"ONLY");
3208 gMC->Gspos("I117",1,"I116",0.0,0.0,0.0,0,"ONLY");
3209 gMC->Gspos("ITS1",1,"I101",0.0,0.0,0.0,0,"ONLY");
3210 gMC->Gspos("ITS2",1,"I1D1",0.0,0.0,0.0,0,"ONLY");
3211 gMC->Gspos("I650",16,"IT12",0.0,0.0,22.0,idrotm[1104],"MANY");
3212 gMC->Gspos("I650",20,"IT12",0.0,0.0,22.0,idrotm[1130],"MANY");
3213 gMC->Gspos("I650",18,"IT12",0.0,0.0,22.0,idrotm[1117],"MANY");
3214 gMC->Gspos("I650",1,"IT12",0.0,0.0,22.0,0,"MANY");
3215 gMC->Gspos("I650",4,"IT12",0.0,0.0,22.0,idrotm[1106],"MANY");
3216 gMC->Gspos("I650",6,"IT12",0.0,0.0,22.0,idrotm[1039],"MANY");
3217 gMC->Gspos("I650",8,"IT12",0.0,0.0,22.0,idrotm[1107],"MANY");
3218 gMC->Gspos("I650",10,"IT12",0.0,0.0,22.0,idrotm[1065],"MANY");
3219 gMC->Gspos("I650",12,"IT12",0.0,0.0,22.0,idrotm[1078],"MANY");
3220 gMC->Gspos("I650",14,"IT12",0.0,0.0,22.0,idrotm[1091],"MANY");
3221 gMC->Gspos("I650",19,"IT12",0.0,0.0,-22.0,idrotm[1108],"MANY");
3222 gMC->Gspos("I650",2,"IT12",0.0,0.0,-22.0,idrotm[1109],"MANY");
3223 gMC->Gspos("I650",3,"IT12",0.0,0.0,-22.0,idrotm[1110],"MANY");
3224 gMC->Gspos("I650",5,"IT12",0.0,0.0,-22.0,idrotm[1111],"MANY");
3225 gMC->Gspos("I650",7,"IT12",0.0,0.0,-22.0,idrotm[1112],"MANY");
3226 gMC->Gspos("I650",9,"IT12",0.0,0.0,-22.0,idrotm[1113],"MANY");
3227 gMC->Gspos("I650",11,"IT12",0.0,0.0,-22.0,idrotm[1114],"MANY");
3228 gMC->Gspos("I650",13,"IT12",0.0,0.0,-22.0,idrotm[1115],"MANY");
3229 gMC->Gspos("I650",15,"IT12",0.0,0.0,-22.0,idrotm[1116],"MANY");
3230 gMC->Gspos("I650",17,"IT12",0.0,0.0,-22.0,idrotm[1118],"MANY");
3231 gMC->Gspos("I666",1,"I650",0.0,0.0,0.25,idrotm[1003],"MANY");
3232 gMC->Gspos("I667",1,"I650",0.1102,0.9945,0.45,idrotm[1088],"ONLY");
3233 gMC->Gspos("I669",3,"I650",0.1883,4.0372,-3.2,0,"ONLY");
3234 gMC->Gspos("I671",3,"I650",0.1883,4.0372,0.6,0,"ONLY");
3235 gMC->Gspos("I669",2,"I650",1.3343,4.0609,-3.2,0,"ONLY");
3236 gMC->Gspos("I671",2,"I650",1.3343,4.0609,0.6,0,"ONLY");
3237 gMC->Gspos("I669",6,"I650",2.9567,6.1959,-3.2,idrotm[1089],"ONLY");
3238 gMC->Gspos("I671",6,"I650",2.9567,6.1959,0.6,idrotm[1089],"ONLY");
3239 gMC->Gspos("I669",5,"I650",1.9511,6.5822,-3.2,idrotm[1011],"ONLY");
3240 gMC->Gspos("I671",5,"I650",1.9511,6.5822,0.6,idrotm[1011],"ONLY");
3241 gMC->Gspos("I669",4,"I650",0.8974,6.8064,-3.2,idrotm[1090],"ONLY");
3242 gMC->Gspos("I671",4,"I650",0.8974,6.8064,0.6,idrotm[1090],"ONLY");
3243 gMC->Gspos("I669",1,"I650",-0.1784,6.863,-3.2,0,"ONLY");
3244 gMC->Gspos("I671",1,"I650",-0.1784,6.863,0.6,0,"ONLY");
3245 gMC->Gspos("I673",1,"I650",0.2173,4.8037,1.8,0,"ONLY");
3246 gMC->Gspos("I673",6,"I650",1.5093,4.5605,1.8,0,"ONLY");
3247 gMC->Gspos("I673",4,"I650",-0.173,6.2531,1.8,idrotm[1092],"ONLY");
3248 gMC->Gspos("I673",3,"I650",0.8073,6.2032,1.8,idrotm[1093],"ONLY");
3249 gMC->Gspos("I673",2,"I650",1.7678,6.0005,1.8,idrotm[1094],"ONLY");
3250 gMC->Gspos("I673",5,"I650",2.6847,5.6501,1.8,0,"ONLY");
3251 gMC->Gspos("I676",2,"I650",1.7618,5.2269,2.5,0,"ONLY");
3252 gMC->Gspos("I676",1,"I650",0.4018,5.5869,2.5,0,"ONLY");
3253 gMC->Gspos("I668",1,"I667",0.0,0.0,0.0,0,"ONLY");
3254 gMC->Gspos("I670",1,"I669",0.0,0.0,0.0,0,"ONLY");
3255 gMC->Gspos("I672",1,"I671",0.0,0.0,0.0,0,"ONLY");
3256 gMC->Gspos("I674",1,"I673",0.0,0.0,0.0,0,"MANY");
3257 gMC->Gspos("I675",1,"I673",0.0,0.0,-0.5,0,"ONLY");
3258 gMC->Gspos("I677",1,"I676",0.0,0.0,0.0,0,"MANY");
3259 gMC->Gspos("I678",1,"I676",0.0,0.0,-0.95,0,"ONLY");
3260
3261 }
db915fea 3262
3263 // --- Place SDD volumes into their mother volume IT34
9d2da7b3 3264
db915fea 3265
9d2da7b3 3266 // -- position SDD detectors of ladder 3 / layer 3
3267
3268 gMC->Gspos("ITS3", 1,"I302", 0.0, 0.0, 0.0, 0, "ONLY");
3269 ySDD = Y_SDD_sep/2.+I302dits[1];
3270 for (iSDD=0; iSDD<6; iSDD++) {
3271 gMC->Gspos("I302", iSDD+1, "I004", 0.0, ySDD, Z_SDD_lay3[iSDD], 0, "ONLY");
3272 ySDD = -ySDD;
3273 }
3274
3275 gMC->Gspos("I004", 1,"IT34", -3.2777, 14.3607, 0.0, idrotm[321],"ONLY");
3276 gMC->Gspos("I004", 2,"IT34", -9.5581, 11.9855, 0.0, idrotm[333],"ONLY");
3277 gMC->Gspos("I004", 3,"IT34",-13.2713, 6.3911, 0.0, idrotm[336],"ONLY");
3278 gMC->Gspos("I004", 4,"IT34",-15.33, 0.0, 0.0, idrotm[350],"ONLY");
3279 gMC->Gspos("I004", 5,"IT34",-13.2713, -6.3911, 0.0, idrotm[313],"ONLY");
3280 gMC->Gspos("I004", 6,"IT34", -9.5581, -11.9855, 0.0, idrotm[311],"ONLY");
3281 gMC->Gspos("I004", 7,"IT34", -3.2777, -14.3607, 0.0, idrotm[310],"ONLY");
3282 gMC->Gspos("I004", 8,"IT34", 3.4112, -14.9456, 0.0, idrotm[386],"ONLY");
3283 gMC->Gspos("I004", 9,"IT34", 9.184, -11.5164, 0.0, idrotm[309],"ONLY");
3284 gMC->Gspos("I004",10,"IT34", 13.8119, -6.6514, 0.0, idrotm[308],"ONLY");
3285 gMC->Gspos("I004",11,"IT34", 14.73, 0.0, 0.0, idrotm[356],"ONLY");
3286 gMC->Gspos("I004",12,"IT34", 13.8119, 6.6514, 0.0, idrotm[307],"ONLY");
3287 gMC->Gspos("I004",13,"IT34", 9.184, 11.5164, 0.0, idrotm[306],"ONLY");
3288 gMC->Gspos("I004",14,"IT34", 3.4113, 14.9456, 0.0, idrotm[305],"ONLY");
3289
3290
3291 // -- position SDD detectors of ladder 4 / layer 4
3292
3293 gMC->Gspos("ITS4", 1,"I402", 0.0, 0.000, 0.0, 0,"ONLY");
3294 ySDD = -(Y_SDD_sep/2.+I402dits[1]);
3295 for (iSDD=0; iSDD<8; iSDD++) {
3296 gMC->Gspos("I402", iSDD+1, "I005", 0.0, ySDD, Z_SDD_lay4[iSDD], 0, "ONLY");
3297 ySDD = -ySDD;
3298 }
db915fea 3299
9d2da7b3 3300 gMC->Gspos("I005", 1,"IT34", -3.3629, 23.3895,-0.15, idrotm[335],"ONLY");
3301 gMC->Gspos("I005", 2,"IT34",-10.0447, 21.9949,-0.15, idrotm[332],"ONLY");
3302 gMC->Gspos("I005", 3,"IT34",-15.4744, 17.8584,-0.15, idrotm[331],"ONLY");
3303 gMC->Gspos("I005", 4,"IT34",-20.3415, 13.0727,-0.15, idrotm[366],"ONLY");
3304 gMC->Gspos("I005", 5,"IT34",-22.6728, 6.6573,-0.15, idrotm[330],"ONLY");
3305 gMC->Gspos("I005", 6,"IT34",-24.18, 0.0, -0.15, idrotm[350],"ONLY");
3306 gMC->Gspos("I005", 7,"IT34",-22.6728, -6.6573,-0.15, idrotm[329],"ONLY");
3307 gMC->Gspos("I005", 8,"IT34",-20.3415, -13.0727,-0.15, idrotm[328],"ONLY");
3308 gMC->Gspos("I005", 9,"IT34",-15.4744, -17.8584,-0.15, idrotm[327],"ONLY");
3309 gMC->Gspos("I005",10,"IT34",-10.0447, -21.9949,-0.15, idrotm[326],"ONLY");
3310 gMC->Gspos("I005",11,"IT34", -3.3629, -23.3895,-0.15, idrotm[325],"ONLY");
3311 gMC->Gspos("I005",12,"IT34", 3.4412, -23.9339,-0.15, idrotm[324],"ONLY");
3312 gMC->Gspos("I005",13,"IT34", 9.8163, -21.4946,-0.15, idrotm[323],"ONLY");
3313 gMC->Gspos("I005",14,"IT34", 15.8345, -18.274, -0.15, idrotm[322],"ONLY");
3314 gMC->Gspos("I005",15,"IT34", 19.8788, -12.7753,-0.15, idrotm[320],"ONLY");
3315 gMC->Gspos("I005",16,"IT34", 23.2005, -6.8123,-0.15, idrotm[319],"ONLY");
3316 gMC->Gspos("I005",17,"IT34", 23.63, 0.0, -0.15, idrotm[318],"ONLY");
3317 gMC->Gspos("I005",18,"IT34", 23.2005, 6.8123,-0.15, idrotm[317],"ONLY");
3318 gMC->Gspos("I005",19,"IT34", 19.8788, 12.7753,-0.15, idrotm[316],"ONLY");
3319 gMC->Gspos("I005",20,"IT34", 15.8345, 18.274, -0.15, idrotm[315],"ONLY");
3320 gMC->Gspos("I005",21,"IT34", 9.8163, 21.4946,-0.15, idrotm[314],"ONLY");
3321 gMC->Gspos("I005",22,"IT34", 3.4412, 23.9339,-0.15, idrotm[334],"ONLY");
3322
3323
3324 // -- build block of the SDD ladder frame holding the electronics
3325
3326 gMC->Gspos("I019", 1,"I018", -1.9, -1.735, 0.0, idrotm[344], "ONLY");
3327 gMC->Gspos("I019", 2,"I018", 1.987, -1.5843, 0.0, idrotm[343], "ONLY");
3328 gMC->Gspos("I019", 3,"I018", -0.087, 1.7066, 0.0, idrotm[342], "ONLY");
3329
3330 gMC->Gspos("I020", 1,"I018", -1.9782, -1.569, 0.0, idrotm[342], "ONLY");
3331 gMC->Gspos("I020", 2,"I018", 1.8824, -1.735, 0.0, idrotm[344], "ONLY");
3332 gMC->Gspos("I020", 3,"I018", 0.0958, 1.6913, 0.0, idrotm[343], "ONLY");
3333
3334 gMC->Gspos("I021", 1,"I018", 1.0761, 0.0835, 2.6008, idrotm[340], "ONLY");
3335 gMC->Gspos("I021", 2,"I018", -1.0761, 0.0835,-2.8008, idrotm[339], "ONLY");
3336 gMC->Gspos("I021", 3,"I018", -1.0761, 0.0835,-1.0492, idrotm[338], "ONLY");
3337 gMC->Gspos("I021", 4,"I018", 1.0761, 0.0835,-2.8008, idrotm[337], "ONLY");
3338 gMC->Gspos("I021", 5,"I018", 1.0761, 0.0835,-1.0492, idrotm[340], "ONLY");
3339 gMC->Gspos("I021", 6,"I018", -1.0761, 0.0835, 0.8492, idrotm[339], "ONLY");
3340 gMC->Gspos("I021", 7,"I018", -1.0761, 0.0835, 2.6008, idrotm[338], "ONLY");
3341 gMC->Gspos("I021", 8,"I018", 1.0761, 0.0835, 0.8492, idrotm[337], "ONLY");
3342
3343 gMC->Gspos("I022", 1,"I018", 0.0, -1.79, 3.55, idrotm[312], "ONLY");
3344 gMC->Gspos("I022", 2,"I018", 0.0, -1.79, -0.1, idrotm[312], "ONLY");
3345
3346 gMC->Gspos("I023", 1,"I018", 0.0, -1.79, 1.725, idrotm[341], "ONLY");
3347 gMC->Gspos("I023", 2,"I018", 0.0, -1.79, -1.925, idrotm[341], "ONLY");
3348
3349 gMC->Gspos("I033", 1,"I018", 1.8, -1.75, 1.35, 0, "MANY");
3350 gMC->Gspos("I033", 2,"I018", -1.8, -1.75, -2.65, idrotm[345], "MANY");
3351 gMC->Gspos("I033", 3,"I018", -1.8, -1.75, 1.35, idrotm[345], "MANY");
3352 gMC->Gspos("I033", 4,"I018", 1.8, -1.75, -2.65, 0, "MANY");
3353
3354 gMC->Gspos("I034", 1,"I018", 1.6, -1.775, 1.35, idrotm[312], "ONLY");
3355 gMC->Gspos("I034", 2,"I018", -1.6, -1.775, -2.65, idrotm[348], "ONLY");
3356 gMC->Gspos("I034", 3,"I018", -1.6, -1.775, 1.35, idrotm[348], "ONLY");
3357 gMC->Gspos("I034", 4,"I018", 1.6, -1.775, -2.65, idrotm[312], "ONLY");
3358
3359 gMC->Gspos("I035", 1,"I018", 1.7, -0.55, I018dits[2]-I035dits[2], 0, "MANY");
3360 gMC->Gspos("I035", 2,"I018", -1.7, -0.55, I018dits[2]-I035dits[2], 0, "MANY");
3361
3362 gMC->Gspos("I036", 1,"I018", 0.3087, 1.7191, 3.56, idrotm[346], "ONLY");
3363 gMC->Gspos("I036", 2,"I018", 0.3087, 1.7191,-0.11, idrotm[346], "ONLY");
3364 gMC->Gspos("I036", 3,"I018", -0.3087, 1.7191,-0.11, idrotm[347], "ONLY");
3365 gMC->Gspos("I036", 4,"I018", -0.3087, 1.7191, 3.56, idrotm[347], "ONLY");
3366
3367 gMC->Gspos("I037", 1,"I018", SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], 0 , "ONLY");
3368 gMC->Gspos("I037", 2,"I018", -SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], 0 , "ONLY");
3369
3370 gMC->Gspos("I038", 1,"I018", SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], 0 , "ONLY");
3371 gMC->Gspos("I038", 2,"I018", -SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], 0 , "ONLY");
3372
3373 gMC->Gspos("I040", 1,"I018", 1.9204, -0.7118, 0.0, idrotm[346],"ONLY");
3374 gMC->Gspos("I040", 2,"I018", -1.9204, -0.7118, 0.0, idrotm[347],"ONLY");
3375 gMC->Gspos("I041", 1,"I018", SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], idrotm[346], "ONLY");
3376 gMC->Gspos("I041", 2,"I018", -SDD_CoolPipe[0], SDD_CoolPipe[1], SDD_CoolPipe[2], idrotm[347], "ONLY");
3377
3378
3379 // -- build block of the SDD electronics (heat bridge, chips, hybrid, anode microcable)
3380
3381 xI050 = SDD_CoolPipe[0]+SDD_CoolPipe[1]*sin30+I050dits[1]/cos30+I041dits[1];
3382 yI050 = 0;
3383 xI039 = -SDD_CoolPipe[1]/cos30;
3384 yI039 = -I050dits[1]+I039dits[1];
3385 gMC->Gspos("I039", 1,"I050", xI039, yI039, 0.0, 0, "ONLY");
3386 xI042 = xI039+I039dits[0]-xI042space-I042dits[0];
3387 yI042 = yI039+I039dits[1]+I042dits[1];
3388 xI043 = xI039-I039dits[0]+xI043space+I043dits[0];
3389 yI043 = yI039+I039dits[1]+I043dits[1];
3390 zChipSpace = I042dits[2];
3391 if (zChipSpace < I043dits[2]) {
3392 zChipSpace = I043dits[2];
3393 }
3394 zChipSpace = zChipSpace * 2;
3395 yI051space = (2*I039dits[2] - 4*zChipSpace)/5;
3396 zchip = -I039dits[2] + yI051space + zChipSpace/2.;
3397 for (ichip=0; ichip<4; ichip++) {
3398 gMC->Gspos("I042", ichip+1, "I050", xI042, yI042, zchip, 0, "ONLY");
3399 gMC->Gspos("I043", ichip+1, "I050", xI043, yI043, zchip, 0, "ONLY");
3400 zchip += zChipSpace + yI051space;
3401 }
3402 xcap = 2*I039dits[0]/5.;
3403 yI051 = yI039+I039dits[1]+I051dits[1];
3404 zI051 = -I039dits[2] + yI051space/3.;
3405 icap = 1;
3406 for (ichip=0; ichip<5; ichip++) {
3407 xI051 = xI039-I039dits[0]+xcap;
3408 gMC->Gspos("I051", icap++,"I050", xI051, yI051, zI051, 0, "ONLY");
3409 zI051 += yI051space/3.;
3410 gMC->Gspos("I051", icap++,"I050", xI051, yI051, zI051, 0, "ONLY");
3411 xI051 += xcap;
3412 gMC->Gspos("I051", icap++,"I050", xI051, yI051, zI051, 0, "ONLY");
3413 xI051 += xcap;
3414 gMC->Gspos("I051", icap++,"I050", xI051, yI051, zI051, 0, "ONLY");
3415 xI051 += xcap;
3416 gMC->Gspos("I051", icap++,"I050", xI051, yI051, zI051, 0, "ONLY");
3417 zI051 -= yI051space/3.;
3418 if (ichip == 0) {
3419 gMC->Gspos("I051", icap++,"I050", xI051, yI051, zI051, 0, "ONLY");
3420 }
3421