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