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