]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STRUCT/AliSHILv2.cxx
Removing GetDebug and SetDebug from AliRun and AliModule. Using AliLog for the messages
[u/mrichter/AliRoot.git] / STRUCT / AliSHILv2.cxx
CommitLineData
be4fc320 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
eeacf08b 16/* $Id$ */
be4fc320 17
eeacf08b 18//-------------------------------------------------------------------------
19// MUON shielding class
20// Default version
21// Author: A.Morsch
22//-------------------------------------------------------------------------
be4fc320 23
5d12ce38 24#include <TVirtualMC.h>
25#include <TArrayI.h>
26
be4fc320 27#include "AliSHILv2.h"
be4fc320 28#include "AliConst.h"
29#include "AliALIFE.h"
4951e003 30#include "AliLog.h"
be4fc320 31
32ClassImp(AliSHILv2)
33
34//_____________________________________________________________________________
35AliSHILv2::AliSHILv2()
36{
37 //
38 // Default constructor for muon shield
39 //
40}
41
42//_____________________________________________________________________________
43AliSHILv2::AliSHILv2(const char *name, const char *title)
44 : AliSHIL(name,title)
45{
46 //
47 // Standard constructor for muon shield
48 //
49 SetMarkerColor(7);
50 SetMarkerStyle(2);
51 SetMarkerSize(0.4);
52 // Pb cone not yet compatible with muon chamber inner radii
53 // Switched off by default
54 SetWriteGeometry();
55 SetPbCone();
56}
57
58//_____________________________________________________________________________
59void AliSHILv2::CreateGeometry()
60{
61 //
62 // Build muon shield geometry
63 //
64 //
65 //Begin_Html
66 /*
67 <img src="picts/AliSHILv2.gif">
68 */
69 //End_Html
70 //Begin_Html
71 /*
72 <img src="picts/AliSHILv2Tree.gif">
73 */
74 //End_Html
75
76 Float_t cpar[5], cpar0[5], tpar[3], par1[100], pars1[100], par2[100], par3[100],
b21c95fc 77 par4[24], par0[100];
be4fc320 78 Float_t dz, dZ;
79
80 Int_t *idtmed = fIdtmed->GetArray()-1699;
dd6a9ea4 81
82 Int_t idrotm[1799];
83
be4fc320 84#include "ABSOSHILConst.h"
85#include "SHILConst2.h"
86
87 enum {kC=1705, kAl=1708, kFe=1709, kCu=1710, kW=1711, kPb=1712,
88 kNiCuW=1720, kVacuum=1715, kAir=1714, kConcrete=1716,
89 kPolyCH2=1717, kSteel=1709, kInsulation=1713};
90//
91// Material of the rear part of the shield
92 Int_t iHeavy=kNiCuW;
93 if (fPbCone) iHeavy=kPb;
94//
95//
96// begin Fluka
97 AliALIFE* flukaGeom = new AliALIFE("beamshield.alife", "beamshield_vol.inp");
9a4f9621 98
be4fc320 99 Int_t i=0,ifl=0;
100 Float_t posfluka[3]={0., 0., 0.};
101 Float_t zfluka[12], rfluka1[12], rfluka2[12], rfluka3[12] ;
102//
103// end Fluka
104
105
106//
107// Mother volume
108//
dbbe5bc1 109 Float_t dRear1=kDRear;
be4fc320 110
dbbe5bc1 111 Float_t zstart=kZRear-dRear1;
be4fc320 112
113 par0[0] = 0.;
114 par0[1] = 360.;
115 par0[2] = 28.;
116
dbbe5bc1 117 Float_t dl=(kZvac12-zstart)/2.;
be4fc320 118 dz=zstart+dl;
119//
120// start
121 par0[3] = -dl;
122 par0[4] = 0.;
dbbe5bc1 123 par0[5] = zstart * TMath::Tan(kAccMin);
be4fc320 124// recess station 1
dbbe5bc1 125 par0[6] = -dz+kZch11;
be4fc320 126 par0[7] = 0.;
dbbe5bc1 127 par0[8] = kZch11 * TMath::Tan(kAccMin);
be4fc320 128
129 par0[9] = par0[6];
130 par0[10] = 0.;
131 par0[11] = 17.9;
132
dbbe5bc1 133 par0[12] = -dz+kZch12;
be4fc320 134 par0[13] = 0.;
135 par0[14] = 17.9;
136
137 par0[15] = par0[12];
138 par0[16] = 0.;
dbbe5bc1 139 par0[17] = kZch12 * TMath::Tan(kAccMin);
be4fc320 140// recess station 2
dbbe5bc1 141 par0[18] = -dz+kZch21;
be4fc320 142 par0[19] = 0.;
dbbe5bc1 143 par0[20] = kZch21 * TMath::Tan(kAccMin);
be4fc320 144
dbbe5bc1 145 par0[21] = -dz+kZch21;
be4fc320 146 par0[22] = 0.;
147 par0[23] = 23.;
148
dbbe5bc1 149 par0[24] = -dz+kZch22;
be4fc320 150 par0[25] = 0.;
151 par0[26] = 23.;
152
dbbe5bc1 153 par0[27] = -dz+kZch22;
be4fc320 154 par0[28] = 0.;
dbbe5bc1 155 par0[29] = kZch22 * TMath::Tan(kAccMin);
be4fc320 156//
dbbe5bc1 157 par0[30] = -dz+kZvac6;
be4fc320 158 par0[31] = 0.;
dbbe5bc1 159 par0[32] = kZvac6 * TMath::Tan(kAccMin);
be4fc320 160// end of 2 deg cone
dbbe5bc1 161 par0[33] = -dz+kZConeE;
be4fc320 162 par0[34] = 0.;
163 par0[35] = 30.;
164
dbbe5bc1 165 par0[36] = -dz+kZch31;
be4fc320 166 par0[37] = 0.;
167 par0[38] = 30.;
168
dbbe5bc1 169 par0[39] = -dz+kZch31;
be4fc320 170 par0[40] = 0.;
171 par0[41] = 29.;
172
dbbe5bc1 173 par0[42] = -dz+kZch32;
be4fc320 174 par0[43] = 0.;
175 par0[44] = 29.;
176// start of 1.6 deg cone
dbbe5bc1 177 par0[45] = -dz+kZch32;
be4fc320 178 par0[46] = 0.;
dbbe5bc1 179 par0[47] = 30.+(kZch32-kZConeE)*TMath::Tan(kThetaOpenPbO);
be4fc320 180// recess station 4
dbbe5bc1 181 par0[48] = -dz+kZch41;
be4fc320 182 par0[49] = 0.;
dbbe5bc1 183 par0[50] = 30.+(kZch41-kZConeE)*TMath::Tan(kThetaOpenPbO);
be4fc320 184
dbbe5bc1 185 par0[51] = -dz+kZch41;
be4fc320 186 par0[52] = 0.;
187 par0[53] = 37.5;
188
dbbe5bc1 189 par0[54] = -dz+kZch42;
be4fc320 190 par0[55] = 0.;
191 par0[56] = 37.5;
192
dbbe5bc1 193 par0[57] = -dz+kZch42;
be4fc320 194 par0[58] = 0.;
dbbe5bc1 195 par0[59] = 30.+(kZch42-kZConeE)*TMath::Tan(kThetaOpenPbO);
be4fc320 196
197// recess station 5
198
dbbe5bc1 199 par0[60] = -dz+kZch51;
be4fc320 200 par0[61] = 0.;
dbbe5bc1 201 par0[62] = 30.+(kZch51-kZConeE)*TMath::Tan(kThetaOpenPbO);
be4fc320 202
dbbe5bc1 203 par0[63] = -dz+kZch51;
be4fc320 204 par0[64] = 0.;
205 par0[65] = 37.5;
206
dbbe5bc1 207 par0[66] = -dz+kZch52;
be4fc320 208 par0[67] = 0.;
209 par0[68] = 37.5;
210
dbbe5bc1 211 par0[69] = -dz+kZch52;
be4fc320 212 par0[70] = 0.;
65cb363f 213 par0[71] = 30.+(kZch52+4.-kZConeE)*TMath::Tan(kThetaOpenPbO);
be4fc320 214
215// end of cone
216
dbbe5bc1 217 par0[72] = -dz+kZvac10;
be4fc320 218 par0[73] = 0.;
65cb363f 219 par0[74] = par0[71];
be4fc320 220
dbbe5bc1 221 par0[75] = -dz+kZvac10;
be4fc320 222 par0[76] = 0.;
dbbe5bc1 223 par0[77] = kR42;
be4fc320 224
dbbe5bc1 225 par0[78] = -dz+kZvac11;
be4fc320 226 par0[79] = 0.;
dbbe5bc1 227 par0[80] = kR42;
be4fc320 228
dbbe5bc1 229 par0[81] = -dz+kZvac11;
be4fc320 230 par0[82] = 0.;
dbbe5bc1 231 par0[83] = kR43;
be4fc320 232
dbbe5bc1 233 par0[84] = -dz+kZvac12;
be4fc320 234 par0[85] = 0.;
dbbe5bc1 235 par0[86] = kR43;
be4fc320 236
237 gMC->Gsvolu("YMOT", "PCON", idtmed[kVacuum], par0, 87);
238 dz=zstart+dl;
dd6a9ea4 239 AliMatrix(idrotm[1705], 270., 0., 90., 90., 180., 0.);
240 gMC->Gspos("YMOT", 1, "ALIC", 0., 0., - dz, idrotm[1705], "ONLY");
92a841cc 241 gMC->Gsbool("YMOT","L3DO");
242 gMC->Gsbool("YMOT","L3O1");
243 gMC->Gsbool("YMOT","L3O2");
244
be4fc320 245//
246
247 dZ=-dl;
248
249//
250// First section: bellows below and behind front absorber
251//
252//
253 par1[ 0] = 0.;
254 par1[ 1] = 360.;
255 par1[ 2] = 14.;
dbbe5bc1 256 dl=(kZvac4-zstart)/2.;
be4fc320 257
258 par1[ 3] = -dl;
dbbe5bc1 259 par1[ 4] = kRAbs+(zstart-kZOpen) * TMath::Tan(kThetaOpen1);
260 par1[ 5] = zstart * TMath::Tan(kAccMin);
be4fc320 261
262 par1[ 6] = -dl+dRear1;
dbbe5bc1 263 par1[ 7] = par1[4] + dRear1 * TMath::Tan(kThetaOpen1);
264 par1[ 8] = kZRear * TMath::Tan(kAccMin);
be4fc320 265
266 par1[ 9] = -dl+dRear1;
267 par1[10] = par1[7];
dbbe5bc1 268 par1[11] = kR11;
be4fc320 269
dbbe5bc1 270 par1[12] = -dl+kZvac41-zstart;
271 par1[13] = kRAbs + (kZvac41-kZOpen) * TMath::Tan(kThetaOpen1);
272 par1[14] = kR11;
be4fc320 273
274 par1[15] = par1[12];
275 par1[16] = par1[13];
dbbe5bc1 276 par1[17] = kR21;
be4fc320 277
278
dbbe5bc1 279 par1[18] = -dl+kZvac1-zstart;
280 par1[19] = kRAbs+ (kZvac1-kZOpen) * TMath::Tan(kThetaOpen1);
281 par1[20] = kR21;
be4fc320 282
dbbe5bc1 283 par1[21] = par1[18]+kDr11/10.;
284 par1[22] = par1[19]+kDr11;
285 par1[23] = kR21;
be4fc320 286
287
dbbe5bc1 288 par1[24] = -dl+(kZvac1+kDr11/10.+kDB1-zstart);
be4fc320 289 par1[25] = par1[22];
dbbe5bc1 290 par1[26] = kR21;
be4fc320 291
dbbe5bc1 292 par1[27] = par1[24]+kDr12;
293 par1[28] = par1[25]+kDr12;
294 par1[29] = kR21;
be4fc320 295
dbbe5bc1 296 par1[30] = par1[27]+kDF1;
be4fc320 297 par1[31] = par1[28];
dbbe5bc1 298 par1[32] = kR21;
be4fc320 299
dbbe5bc1 300 par1[33] = par1[30]+kDr12;
301 par1[34] = par1[31]-kDr12;
302 par1[35] = kR21;
be4fc320 303
dbbe5bc1 304 par1[36] = par1[33]+kDB1;
be4fc320 305 par1[37] = par1[34];
dbbe5bc1 306 par1[38] = kR21;
be4fc320 307
dbbe5bc1 308 par1[39] = par1[36]+kDr13;
309 par1[40] = par1[37]-kDr13;
310 par1[41] = kR21;
be4fc320 311
dbbe5bc1 312 par1[42] = -dl+kZvac4-zstart;
be4fc320 313 par1[43] = par1[40];
dbbe5bc1 314 par1[44] = kR21;
be4fc320 315
316 Float_t r2 = par1[43];
317 Float_t rBox= par1[43]-0.1;
318 Float_t rc1 = par1[7];
319
866a26a3 320 gMC->Gsvolu("YGO1", "PCON", idtmed[kNiCuW+40], par1, 45);
be4fc320 321
322//
323// begin Fluka
9a4f9621 324
be4fc320 325 for (ifl=0; ifl<14; ifl++) {
dbbe5bc1 326 zfluka[ifl]=par1[3+3*ifl]+dl+kZRear-kDRear;
be4fc320 327 rfluka1[ifl] = par1[4+3*ifl];
328 rfluka2[ifl] = par1[5+3*ifl];
dbbe5bc1 329 if (ifl > 3) rfluka2[ifl]=rfluka2[ifl]-kDRSteel1;
be4fc320 330 }
331
332
333 Float_t rfluka0[8]={rBox,rBox,rBox,rBox,rBox,rBox,rBox,rBox};
334
335 flukaGeom->Comment("1st part: Shield");
336// Use default for first three cones
337 flukaGeom->SetDefaultVolume("*ACR02");
338 rfluka2[0]=rfluka2[1]=rfluka2[2]=-1;
339//
340 flukaGeom->Comment("Shield");
341 flukaGeom->PolyCone(rfluka1, rfluka2, zfluka, 12, posfluka, "NIW", "MF", "$SHS");
342 flukaGeom->Comment("Vacuum");
343 flukaGeom->PolyCone(rfluka0, rfluka1+2, zfluka+2, 8, posfluka, "VACUUM", "MF", "$SHS");
344//
345// end Fluka
346
347 for (i=0; i<45; i++) pars1[i] = par1[i];
348 for (i=4; i<44; i+=3) pars1[i] = 0.;
349
350 gMC->Gsvolu("YMO1", "PCON", idtmed[kVacuum+40], pars1, 45);
351 gMC->Gspos("YGO1", 1, "YMO1", 0., 0., 0., 0, "ONLY");
352 dZ+=dl;
353 gMC->Gspos("YMO1", 1, "YMOT", 0., 0., dZ, 0, "ONLY");
354 dZ+=dl;
355
356
dbbe5bc1 357 tpar[0]=kR21-0.6;
358 tpar[1]=kR21;
359 tpar[2]=(kZvac4-kZvac41)/2.;
be4fc320 360 gMC->Gsvolu("YSE1", "TUBE", idtmed[kSteel], tpar, 3);
361 dz=dl-tpar[2];
362 gMC->Gspos("YSE1", 1, "YGO1", 0., 0., dz, 0, "ONLY");
363
364
dbbe5bc1 365 tpar[0]=kR11-0.6;
366 tpar[1]=kR11;
367 tpar[2]=(kZvac41-zstart-dRear1)/2.;
be4fc320 368 gMC->Gsvolu("YSE2", "TUBE", idtmed[kSteel], tpar, 3);
dbbe5bc1 369 dz=dl-tpar[2]-(kZvac4-kZvac41);
be4fc320 370 gMC->Gspos("YSE2", 1, "YGO1", 0., 0., dz, 0, "ONLY");
371
372// begin Fluka
373 flukaGeom->Comment("1st part: Steel Envelope");
dbbe5bc1 374 flukaGeom->Cylinder(tpar[0], tpar[1], kZRear, kZvac4, posfluka, "NIW", "MF", "$SHS");
be4fc320 375//
376// end Fluka
377
378//
379// 1st section: vacuum system
380//
381//
382// Bellow 1
383//
dbbe5bc1 384 tpar[0]=kRB1;
385 tpar[1]=kRB1+kHB1;
386 tpar[2]=kEB1/2.;
be4fc320 387 gMC->Gsvolu("YB11", "TUBE", idtmed[kSteel+40], tpar, 3);
388 Float_t dl1=tpar[2];
389
dbbe5bc1 390 tpar[0]=kRB1+kHB1-kEB1;
391 tpar[1]=kRB1+kHB1;
392 tpar[2]=(kLB1/2.-2.*kEB1)/2.;
be4fc320 393 gMC->Gsvolu("YB12", "TUBE", idtmed[kSteel+40], tpar, 3);
394 Float_t dl2=tpar[2];
395
dbbe5bc1 396 tpar[0]=kRB1-kEB1;
397 tpar[1]=kRB1;
398 tpar[2]=kLB1/8.;
be4fc320 399 gMC->Gsvolu("YB13", "TUBE", idtmed[kSteel+40], tpar, 3);
400 Float_t dl3=tpar[2];
401
402
403 tpar[0]=0;
dbbe5bc1 404 tpar[1]=kRB1+kHB1;
405 tpar[2]=kLB1/2.;
be4fc320 406 gMC->Gsvolu("YBU1", "TUBE", idtmed[kVacuum+40], tpar, 3);
407
408 dz=-tpar[2]+dl3;
409 gMC->Gspos("YB13", 1, "YBU1", 0., 0., dz, 0, "ONLY");
410 dz+=dl3;
411 dz+=dl1;
412 gMC->Gspos("YB11", 1, "YBU1", 0., 0., dz, 0, "ONLY");
413 dz+=dl1;
414 dz+=dl2;
415 gMC->Gspos("YB12", 1, "YBU1", 0., 0., dz, 0, "ONLY");
416 dz+=dl2;
417 dz+=dl1;
418 gMC->Gspos("YB11", 2, "YBU1", 0., 0., dz, 0, "ONLY");
419 dz+=dl1;
420 dz+=dl3;
421 gMC->Gspos("YB13", 2, "YBU1", 0., 0., dz, 0, "ONLY");
422
423
424 tpar[0]=0;
dbbe5bc1 425 tpar[1]=kRB1+kHB1+0.5;
426 tpar[2]=12.*kLB1/2.;
be4fc320 427 gMC->Gsvolu("YBM1", "TUBE", idtmed[kVacuum+40], tpar, 3);
428 Float_t bsize = tpar[2];
dbbe5bc1 429 tpar[0]=kRB1+kHB1;
be4fc320 430 gMC->Gsvolu("YBI1", "TUBE", idtmed[kInsulation+40], tpar, 3);
431 gMC->Gspos("YBI1", 2, "YBM1", 0., 0., 0., 0, "ONLY");
432
dbbe5bc1 433 dz=-bsize+kLB1/2.;
be4fc320 434
435 for (i=0; i<12; i++) {
436 gMC->Gspos("YBU1", i+1 , "YBM1", 0., 0., dz, 0, "ONLY");
dbbe5bc1 437 dz+=kLB1;
be4fc320 438 }
439
dbbe5bc1 440 dz=-dl+(kZvac1-zstart)+kDr11/10.+bsize;
be4fc320 441 gMC->Gspos("YBM1", 1, "YMO1", 0., 0., dz, 0, "ONLY");
442
dbbe5bc1 443// dz=dl-kDr13-(kZvac4-kZvac3)-bsize;
be4fc320 444// gMC->Gspos("YBM1", 2, "YMO1", 0., 0., dz, 0, "ONLY");
445
446
447//
448// Flange
449
450 tpar[0]=0;
dbbe5bc1 451 tpar[1]=kRF1+0.6;
452 tpar[2]=kDF1/2.;
be4fc320 453 gMC->Gsvolu("YFM1", "TUBE", idtmed[kVacuum+40], tpar, 3);
454// Steel
dbbe5bc1 455 tpar[0]=kRB1;
456 tpar[1]=kRF1+0.6;
457 tpar[2]=kDF1/2.;
be4fc320 458 gMC->Gsvolu("YF11", "TUBE", idtmed[kSteel+40], tpar, 3);
459// Insulation
dbbe5bc1 460 tpar[0]=kRF1;
461 tpar[1]=kRF1+0.5;
462 tpar[2]=kDF1/2.;
be4fc320 463 gMC->Gsvolu("YF12", "TUBE", idtmed[kInsulation+40], tpar, 3);
464
465
466 gMC->Gspos("YF11", 1, "YFM1", 0., 0., 0., 0, "ONLY");
467 gMC->Gspos("YF12", 1, "YFM1", 0., 0., 0., 0, "ONLY");
dbbe5bc1 468 dz=-dl+(kZvac3-zstart)-2.*kDr13-tpar[2];
be4fc320 469 gMC->Gspos("YFM1", 2, "YMO1", 0., 0., dz, 0, "ONLY");
470
471//
472// pipe between flange and bellows
473//
474// Steel
dbbe5bc1 475 tpar[0] = kRB1-dTubeS;
476 tpar[1] = kRB1+0.6;
477 tpar[2] = (kZvac3-kZvac1-2.*kDr13-kDr11/10.-kDF1-2.*bsize)/2.;
be4fc320 478 gMC->Gsvolu("YPF1", "TUBE", idtmed[kSteel+40], tpar, 3);
479// Insulation
dbbe5bc1 480 tpar[0]=kRB1;
481 tpar[1]=kRB1+0.5;
be4fc320 482 gMC->Gsvolu("YPS1", "TUBE", idtmed[kInsulation+40], tpar, 3);
483 gMC->Gspos("YPS1", 1, "YPF1", 0., 0., 0., 0, "ONLY");
dbbe5bc1 484 dz=-dl+(kZvac1-zstart)+kDr11/10.+2.*bsize+tpar[2];
be4fc320 485 gMC->Gspos("YPF1", 1, "YMO1", 0., 0., dz, 0, "ONLY");
dbbe5bc1 486// dz=-dl+(kZvac2-zstart)+kDF1/2.+tpar[2];
be4fc320 487// gMC->Gspos("YPF1", 2, "YMO1", 0., 0., dz, 0, "ONLY");
488
489//
490// begin Fluka
491 flukaGeom->Comment("First Bellow");
dbbe5bc1 492 Float_t z1=kZvac1+kDr11;
be4fc320 493 Float_t z2;
494
495 for (i=0; i<10; i++) {
dbbe5bc1 496 z2=z1+kEB1;
497 flukaGeom->Cylinder(0., kRB1, z1, z2, posfluka, "VACUUM", "MF", "$SHH");
498 flukaGeom->Cylinder(kRB1, kRB1+kHB1, z1, z2, posfluka, "STEEL", "MF", "$SHH");
be4fc320 499
500 z1=z2;
dbbe5bc1 501 z2+=kLB1/2.-kEB1;
502 flukaGeom->Cylinder(0., kRB1+kHB1-kEB1, z1, z2, posfluka, "VACUUM", "MF", "$SHH");
503 flukaGeom->Cylinder(kRB1+kHB1-kEB1, kRB1+kHB1, z1, z2, posfluka, "STEEL", "MF", "$SHH");
be4fc320 504 z1=z2;
dbbe5bc1 505 z2=z1+kEB1;
506 flukaGeom->Cylinder(0., kRB1, z1, z2, posfluka, "VACUUM", "MF", "$SHH");
507 flukaGeom->Cylinder(kRB1, kRB1+kHB1, z1, z2, posfluka, "STEEL", "MF", "$SHH");
be4fc320 508 z1=z2;
dbbe5bc1 509 z2+=kLB1/2.-kEB1;
510 flukaGeom->Cylinder(0., kRB1, z1, z2, posfluka, "VACUUM", "MF", "$SHH");
511 flukaGeom->Cylinder(kRB1, kRB1+kEB1, z1, z2, posfluka, "STEEL", "MF", "$SHH");
512 flukaGeom->Cylinder(kRB1+kEB1, kRB1+kHB1, z1, z2, posfluka, "AIR", "MF", "$SHH");
be4fc320 513 z1=z2;
514 }
dbbe5bc1 515 flukaGeom->Cylinder(kRB1+kHB1, kRB1+kHB1+0.5, kZvac1+kDr11, z1, posfluka, "AIR", "MF", "$SHH");
516 flukaGeom->Cylinder(kRB1+kHB1+0.5, rBox, kZvac1+kDr11, z1, posfluka, "AIR", "MF", "$SHH");
be4fc320 517 Float_t zcy1=z1;
518
519
520 flukaGeom->Comment("Second Bellow");
dbbe5bc1 521 z1=kZvac3-kDr13;
be4fc320 522 for (i=0; i<10; i++) {
dbbe5bc1 523 z2=z1-kEB1;
524 flukaGeom->Cylinder(0., kRB1, z2, z1, posfluka, "VACUUM", "MF", "$SHH");
525 flukaGeom->Cylinder(kRB1, kRB1+kHB1, z2, z1, posfluka, "STEEL", "MF", "$SHH");
be4fc320 526 z1=z2;
dbbe5bc1 527 z2-=kLB1/2.-kEB1;
528 flukaGeom->Cylinder(0., kRB1+kHB1-kEB1, z2, z1, posfluka, "VACUUM", "MF", "$SHH");
529 flukaGeom->Cylinder(kRB1+kHB1-kEB1, kRB1+kHB1, z2, z1, posfluka, "STEEL", "MF", "$SHH");
be4fc320 530 z1=z2;
dbbe5bc1 531 z2=z1-kEB1;
532 flukaGeom->Cylinder(0., kRB1, z2, z1, posfluka, "VACUUM", "MF", "$SHH");
533 flukaGeom->Cylinder(kRB1, kRB1+kHB1, z2, z1, posfluka, "STEEL", "MF", "$SHH");
be4fc320 534 z1=z2;
dbbe5bc1 535 z2-=kLB1/2.-kEB1;
536 flukaGeom->Cylinder(0., kRB1, z2, z1, posfluka, "VACUUM", "MF", "$SHH");
537 flukaGeom->Cylinder(kRB1, kRB1+kEB1, z2, z1, posfluka, "STEEL", "MF", "$SHH");
538 flukaGeom->Cylinder(kRB1+kEB1, kRB1+kHB1, z2, z1, posfluka, "AIR", "MF", "$SHH");
be4fc320 539 z1=z2;
540 }
dbbe5bc1 541 flukaGeom->Cylinder(kRB1+kHB1, kRB1+kHB1+0.5, z1, kZvac3-kDr13, posfluka, "AIR", "MF", "$SHH");
542 flukaGeom->Cylinder(kRB1+kHB1+0.5, rBox, z1, kZvac3-kDr13, posfluka, "AIR", "MF", "$SHH");
be4fc320 543
544 Float_t zcy2=z1;
545 flukaGeom->Comment("Flange");
546 Float_t zfl=(zcy1+zcy2)/2.;
547
dbbe5bc1 548 z1=zfl-kDF1/2.;
549 z2=zfl+kDF1/2.;
550 flukaGeom->Cylinder(0.,kRF1-2. , z1, z2, posfluka, "VACUUM", "MF", "$SHH");
551 flukaGeom->Cylinder(kRF1-2., kRF1 , z1, z2, posfluka, "STEEL", "MF", "$SHH");
552 flukaGeom->Cylinder(kRF1, kRF1+0.05 , z1, z2, posfluka, "AIR", "MF", "$SHH");
553 flukaGeom->Cylinder(kRF1+0.05, rBox , z1, z2, posfluka, "AIR", "MF", "$SHH");
be4fc320 554 z2=z1;
dbbe5bc1 555 z1=z2-kDFlange;
556 flukaGeom->Cylinder(0.,kRB1 , z1, z2, posfluka, "VACUUM", "MF", "$SHH");
557 flukaGeom->Cylinder(kRB1, kRF1 , z1, z2, posfluka, "STEEL", "MF", "$SHH");
558 flukaGeom->Cylinder(kRF1, kRF1+0.5 , z1, z2, posfluka, "AIR", "MF", "$SHH");
559 flukaGeom->Cylinder(kRF1+0.5, rBox , z1, z2, posfluka, "AIR", "MF", "$SHH");
be4fc320 560 z2=z1;
561 z1=zcy1;
dbbe5bc1 562 flukaGeom->Cylinder(0.,kRB1 , z1, z2, posfluka, "VACUUM", "MF", "$SHH");
563 flukaGeom->Cylinder(kRB1, kRB1+0.1 , z1, z2, posfluka, "STEEL", "MF", "$SHH");
564 flukaGeom->Cylinder(kRB1+0.1, kRB1+0.6 , z1, z2, posfluka, "AIR", "MF", "$SHH");
565 flukaGeom->Cylinder(kRB1+0.6, rBox , z1, z2, posfluka, "AIR", "MF", "$SHH");
566
567 z1=zfl+kDF1/2.;
568 z2=z1+kDFlange;
569 flukaGeom->Cylinder(0.,kRB1 , z1, z2, posfluka, "VACUUM", "MF", "$SHH");
570 flukaGeom->Cylinder(kRB1, kRF1 , z1, z2, posfluka, "STEEL", "MF", "$SHH");
571 flukaGeom->Cylinder(kRF1, kRF1+0.5 , z1, z2, posfluka, "AIR", "MF", "$SHH");
572 flukaGeom->Cylinder(kRF1+0.5, rBox , z1, z2, posfluka, "AIR", "MF", "$SHH");
be4fc320 573 z1=z2;
574 z2=zcy2;
dbbe5bc1 575 flukaGeom->Cylinder(0.,kRB1 , z1, z2, posfluka, "VACUUM", "MF", "$SHH");
576 flukaGeom->Cylinder(kRB1, kRB1+0.1 , z1, z2, posfluka, "STEEL", "MF", "$SHH");
577 flukaGeom->Cylinder(kRB1+0.1, kRB1+0.6 , z1, z2, posfluka, "AIR", "MF", "$SHH");
578 flukaGeom->Cylinder(kRB1+0.6, rBox , z1, z2, posfluka, "AIR", "MF", "$SHH");
be4fc320 579// end Fluka
580//
581
582// Pipe+Heating 1.5 mm
583// Heating Jacket 5.0 mm
584// Protection 1.0 mm
585// ========================
586// 7.5 mm
587// pipe and heating jackets outside bellows
588//
589// left side
dbbe5bc1 590 cpar0[0]=(kZvac1+kDr11/10.-zstart)/2;
591 cpar0[1]=kRVacu-0.05 +(zstart-kZOpen)*TMath::Tan(kThetaOpen1);
592 cpar0[2]=kRVacu+0.7 +(zstart-kZOpen)*TMath::Tan(kThetaOpen1);
593 cpar0[3]=cpar0[1]+2.*cpar0[0]*TMath::Tan(kThetaOpen1);
594 cpar0[4]=cpar0[2]+2.*cpar0[0]*TMath::Tan(kThetaOpen1);
be4fc320 595 gMC->Gsvolu("YV11", "CONE", idtmed[kSteel+40], cpar0, 5);
596//
597// insulation
598 dTubeS=0.15;
599 cpar[0]=cpar0[0];
600 cpar[1]=cpar0[1]+0.15;
601 cpar[2]=cpar0[1]+0.65;
602 cpar[3]=cpar0[3]+0.15;
603 cpar[4]=cpar0[3]+0.65;
604 gMC->Gsvolu("YI11", "CONE", idtmed[kInsulation+40], cpar, 5);
605 gMC->Gspos("YI11", 1, "YV11", 0., 0., 0., 0, "ONLY");
606 dz=-dl+cpar0[0];
607 gMC->Gspos("YV11", 1, "YMO1", 0., 0., dz, 0, "ONLY");
608
609// begin Fluka
610//
611 Float_t rf1[10], rf2[10];
eeacf08b 612 rf1[0]=0.;
be4fc320 613 rf1[1] = cpar0[1];
eeacf08b 614 rf1[2]=rf1[1]+0.15;
615 rf1[3]=rf1[2]+0.5;
616 rf1[4]=rf1[3]+0.1;
617 rf1[5]=par1[4];
618 rf1[6]=0.; //PH This has to be checked...
be4fc320 619
eeacf08b 620 rf2[0]=0.;
621 rf2[1] = cpar0[3];
622 rf2[2]=rf2[1]+0.15;
623 rf2[3]=rf2[2]+0.5;
624 rf2[4]=rf2[3]+0.1;
be4fc320 625 rf2[5]=par1[7];
eeacf08b 626 rf2[6]=0.; //PH This has to be checked
be4fc320 627
01a62e80 628 const char* materialsA[7]
be4fc320 629 = {"VACUUM", "STEEL", "PIPEINSU", "STEEL", "AIR", "AIR"};
01a62e80 630 const char* fieldsA[7]
be4fc320 631 = {"MF", "MF", "MF", "MF", "MF", "MF"};
01a62e80 632 const char* cutsA[7]
be4fc320 633 = {"$SHH","$SHH","$SHH","$SHH","$SHH","$SHH","$SHH"};
634
635 flukaGeom->Comment("1st part: Beam pipe lateral struture (left)");
dbbe5bc1 636 flukaGeom->OnionCone(rf1, rf2, 6 , zstart, kZvac1, posfluka, materialsA, fieldsA, cutsA);
be4fc320 637 for (i=0; i<7; i++) rf1[i]=rf2[i];
dbbe5bc1 638 for (i=1; i<7; i++) rf2[i]=rf1[i]+kDr11*TMath::Tan(kThetaOpen1);
639 flukaGeom->OnionCone(rf1, rf2, 6 , kZvac1, kZvac1+kDr11, posfluka, materialsA, fieldsA, cutsA);
640 flukaGeom->Cone(rc1, rf2[5], rc1, rc1+kDr11, kZvac1 , kZvac1+kDr11, posfluka,"AIR", "MF", "$SHH");
be4fc320 641//
642// end Fluka
643
644
645// right side
646 dTubeS = 0.35;
647 dVacuS += 0.25;
648
dbbe5bc1 649 cpar0[0] = (kZvac4-kZvac3+2.*kDr13)/2;
650 cpar0[1] = kRB1;
be4fc320 651 cpar0[2] = cpar0[1]+dVacuS;
dbbe5bc1 652 cpar0[3] = cpar0[1]+2.*cpar0[0]*TMath::Tan(kThetaOpenB);
653 cpar0[4] = cpar0[2]+2.*cpar0[0]*TMath::Tan(kThetaOpenB);
be4fc320 654 gMC->Gsvolu("YV12", "CONE", idtmed[kSteel], cpar0, 5);
655 Float_t r2V=cpar0[3];
656//
657// insulation
658 cpar[0] = cpar0[0];
659 cpar[1] = cpar0[1]+dTubeS;
dbbe5bc1 660 cpar[2] = cpar0[1]+dTubeS+kDInsuS;
be4fc320 661 cpar[3] = cpar0[3]+dTubeS;
dbbe5bc1 662 cpar[4] = cpar0[3]+dTubeS+kDInsuS;
be4fc320 663 gMC->Gsvolu("YI12", "CONE", idtmed[kInsulation], cpar, 5);
664 gMC->Gspos("YI12", 1, "YV12", 0., 0., 0., 0, "ONLY");
665
666 dz=dl-cpar0[0];
667 gMC->Gspos("YV12", 1, "YMO1", 0., 0., dz, 0, "ONLY");
668
669//
670// begin Fluka
01a62e80 671 const char* materialsB[5]
be4fc320 672 = {"VACUUM", "STEEL", "PIPEINSU", "STEEL", "AIR"};
673
01a62e80 674 const char* fieldsB[5]
be4fc320 675 = {"MF", "MF", "MF", "MF", "MF"};
676
01a62e80 677 const char* cutsB[5]
be4fc320 678 = {"$SHH","$SHH","$SHH","$SHH","$SHH"};
679
680 rf1[0]=rf2[0]=0.;
681 rf1[1]=cpar0[1];
682 rf2[1]=cpar0[3];
683
dbbe5bc1 684 rf1[2]=rf1[1]+dTubeS; rf1[3]=rf1[2]+kDInsuS; rf1[4]=rf1[3]+kDEnveS;
be4fc320 685 rf1[5]=r2;
686
dbbe5bc1 687 rf2[2]=rf2[1]+dTubeS; rf2[3]=rf2[2]+kDInsuS; rf2[4]=rf2[3]+kDEnveS;
be4fc320 688 rf2[5]=r2;
689 flukaGeom->Comment("1st part: Beam pipe lateral structure (right)");
dbbe5bc1 690 flukaGeom->OnionCone(rf1, rf2, 6 , kZvac3, kZvac4, posfluka, materialsB, fieldsB, cutsB);
be4fc320 691 for (i=0; i<6; i++) rf2[i]=rf1[i];
692 for (i=1; i<5; i++) rf1[i]=rf2[i];
dbbe5bc1 693 rf1[5]=rf2[5]+kDr13;
694 flukaGeom->OnionCone(rf1, rf2, 6 , kZvac3-kDr13, kZvac3, posfluka, materialsB, fieldsB, cutsB);
be4fc320 695
696//
697// end Fluka
698
699//
700// Second Section
701// Between first and second bellow section
702//
703
704 par2[0] = 0.;
705 par2[1] = 360.;
706 par2[2] = 11.;
dbbe5bc1 707 dl=(kZvac7-kZvac4)/2.;
be4fc320 708// recess station 2
709 par2[3] = -dl;
710 par2[4] = r2;
dbbe5bc1 711 par2[5] = kR21;
be4fc320 712
713 par2[6] = -dl+.1;
714 par2[7] = r2;
dbbe5bc1 715 par2[8] = kR21;
be4fc320 716
dbbe5bc1 717 par2[9] = -dl+(kZvac6-kZvac4);
718 par2[10] = r2+(kZvac6-kZvac4-10.) * TMath::Tan(kThetaOpen2);
719 par2[11] = kR21;
be4fc320 720
dbbe5bc1 721 par2[12] = -dl+(kZvac6-kZvac4);
be4fc320 722 par2[13] = par2[10];
dbbe5bc1 723 par2[14] = kZvac6*TMath::Tan(kAccMin);
be4fc320 724
725// Start of Pb section
dbbe5bc1 726 par2[15] = -dl+(kZPb-kZvac4);
727 par2[16] = r2+(kZPb-kZvac4-10.) * TMath::Tan(kThetaOpen2);
728 par2[17] = kZPb*TMath::Tan(kAccMin);
be4fc320 729//
730// end of cone following 2 deg line
dbbe5bc1 731 par2[18] = -dl+(kZConeE-kZvac4);
732 par2[19] = r2+(kZConeE-kZvac4-10.) * TMath::Tan(kThetaOpen2);
be4fc320 733 par2[20] = 30.;
734// recess station 3
dbbe5bc1 735 par2[21] = -dl+(kZch31-kZvac4);
736 par2[22] = r2+(kZch31-kZvac4-10.) * TMath::Tan(kThetaOpen2);
be4fc320 737 par2[23] = 30.;
738
dbbe5bc1 739 par2[24] = -dl+(kZch31-kZvac4);
740 par2[25] = r2+(kZch31-kZvac4-10.) * TMath::Tan(kThetaOpen2);
be4fc320 741 par2[26] = 29.;
742
dbbe5bc1 743 par2[27] = -dl+(kZch32-kZvac4);
744 par2[28] = r2+(kZch32-kZvac4-10.) * TMath::Tan(kThetaOpen2);
be4fc320 745 par2[29] = 29.;
746
dbbe5bc1 747 par2[30] = -dl+(kZch32-kZvac4);
748 par2[31] = r2+(kZch32-kZvac4-10.) * TMath::Tan(kThetaOpen2);
be4fc320 749 par2[32] = 30.;
750
dbbe5bc1 751 par2[33] = -dl+(kZvac7-kZvac4);
752 par2[34] = r2+(kZvac7-kZvac4-10.) * TMath::Tan(kThetaOpen2);
be4fc320 753 par2[35] = 30.;
754
755 gMC->Gsvolu("YGO2", "PCON", idtmed[kSteel+40], par2, 36);
756
757//
758// begin Fluka
759
01a62e80 760 const char* materials1[8]
be4fc320 761 = {"VACUUM", "STEEL", "PIPEINSU", "STEEL", "AIR", "NIW", "NIW", "STEEL"};
01a62e80 762 const char* fields1[8]
be4fc320 763 = {"MF", "MF", "MF", "MF", "MF", "MF", "MF", "MF"};
01a62e80 764 const char* cuts1[8]
be4fc320 765 = {"$SHH","$SHH","$SHH","$SHH","$SHH","$SHH","$SHH","$SHH"};
766
767 flukaGeom->Comment("2nd part: Beam shield lateral struture (0)");
768 // until end of recess 1
dbbe5bc1 769 rf1[0] = 0.; rf1[1] = r2V; rf1[2] = rf1[1] + dTubeS; rf1[3] = rf1[2] + kDInsuS;
770 rf1[4] = rf1[3] + kDEnveS; rf1[5] = r2; rf1[6] = rf1[5]+2.;
771 rf1[7] = kR11-kDRSteel1; rf1[8] = kR21;
be4fc320 772
dbbe5bc1 773 for (i=1; i<7; i++) rf2[i]=rf1[i]+4.*TMath::Tan(kThetaOpenB);
be4fc320 774 rf2[7] = rf1[7];
775 rf2[8] = rf1[8];
dbbe5bc1 776 flukaGeom->OnionCone(rf1, rf2, 9 , kZvac4, kZvac4+4, posfluka, materials1, fields1, cuts1);
be4fc320 777
778 flukaGeom->Comment("2nd part: Beam shield lateral struture (1)");
779 // until end of recess 2
780 for (i=0; i<9; i++) rf1[i]=rf2[i];
dbbe5bc1 781 rf1[7] = kR21-kDRSteel2; rf1[8] = kR21;
782 for (i=1; i<9; i++) rf2[i]=rf1[i]+(kZvac6-kZvac4-4.)*TMath::Tan(kThetaOpenB);
be4fc320 783 rf2[7] = rf1[7];
784 rf2[8] = rf1[8];
dbbe5bc1 785 flukaGeom->OnionCone(rf1, rf2, 9 , kZvac4+4, kZvac6, posfluka, materials1, fields1, cuts1);
be4fc320 786
787 flukaGeom->Comment("2nd part: Beam shield lateral struture (2)");
788 // steel recess
789 for (i=0; i<9; i++) rf1[i]=rf2[i];
dbbe5bc1 790 rf1[8] = kZvac6*TMath::Tan(kAccMin);
791 rf1[7] = kR21-kDRSteel2;
be4fc320 792
dbbe5bc1 793 for (i=1; i<9; i++) rf2[i]=rf1[i]+4.*TMath::Tan(kThetaOpenB);
be4fc320 794 rf2[7] = rf1[7];
795
dbbe5bc1 796 rf2[8] = -(rf1[8]+4.*TMath::Tan(kAccMin));
be4fc320 797 rf1[8] = -rf1[8];
798
dbbe5bc1 799 flukaGeom->OnionCone(rf1, rf2, 9 , kZvac6, kZvac6+4, posfluka, materials1, fields1, cuts1);
be4fc320 800 rf1[8] = -rf1[8];
801 rf2[8] = -rf2[8];
802
803 flukaGeom->Comment("2nd part: Beam shield lateral struture (3)");
804 // until start of lead section
805 for (i=0; i<9; i++) rf1[i]=rf2[i];
dbbe5bc1 806 for (i=1; i<9; i++) rf2[i]=rf1[i]+(kZPb-kZvac6-4.)*TMath::Tan(kThetaOpenB);
807 rf1[7] = rf1[8] - kDRSteel2;
808 rf2[8] = rf1[8] + (kZPb-kZvac6-4.)*TMath::Tan(kAccMin);
809 rf2[7] = rf2[8] - kDRSteel2;
be4fc320 810
811 rf1[8]=-rf1[8];
812 rf2[8]=-rf2[8];
dbbe5bc1 813 flukaGeom->OnionCone(rf1, rf2, 9 , kZvac6+4, kZPb, posfluka, materials1, fields1, cuts1);
be4fc320 814 rf1[8]=-rf1[8];
815 rf2[8]=-rf2[8];
816
817 flukaGeom->Comment("2nd part: Beam shield lateral struture (4)");
818 // until end of 2deg
819 materials1[5] = "LEAD";
820 materials1[6] = "LEAD";
821 for (i=0; i<9; i++) rf1[i]=rf2[i];
dbbe5bc1 822 for (i=1; i<9; i++) rf2[i]=rf1[i]+(kZConeE-kZPb)*TMath::Tan(kThetaOpenB);
be4fc320 823 rf1[8] = -rf1[8];
824 rf2[8] = -30.;
825 rf2[7] = 26.;
dbbe5bc1 826 flukaGeom->OnionCone(rf1, rf2, 9 , kZPb, kZConeE, posfluka, materials1, fields1, cuts1);
be4fc320 827 rf1[8]=-rf1[8];
828 rf2[8]=-rf2[8];
829
830 flukaGeom->Comment("2nd part: Beam shield lateral struture (4)");
831 // until end of this section
832 for (i=0; i<9; i++) rf1[i]=rf2[i];
dbbe5bc1 833 for (i=1; i<9; i++) rf2[i]=rf1[i]+(kZvac7-kZConeE)*TMath::Tan(kThetaOpenB);
be4fc320 834 rf2[8] = 30;
835 rf2[7] = 26;
dbbe5bc1 836 flukaGeom->OnionCone(rf1, rf2, 9 , kZConeE, kZvac7, posfluka, materials1, fields1, cuts1);
be4fc320 837
838 Float_t r3V = rf2[1];
839
840// end Fluka
841
842//
843// Lead cone
844//
845 Float_t parPb[18];
846 parPb[ 0] = 0.;
847 parPb[ 1] = 360.;
848 parPb[ 2] = 5.;
dbbe5bc1 849 Float_t dlPb=(kZvac7-kZPb)/2.;
be4fc320 850
851 parPb[ 3] = -dlPb;
dbbe5bc1 852 parPb[ 4] = r2+(kZPb-kZvac4-10.) * TMath::Tan(kThetaOpen2);
853 parPb[ 5] = kZPb*TMath::Tan(kAccMin)-kDRSteel2;
be4fc320 854
dbbe5bc1 855 parPb[ 6] = -dlPb+(kZConeE-kZPb);
856 parPb[ 7] = r2+(kZConeE-kZvac4-10.) * TMath::Tan(kThetaOpen2);
be4fc320 857 parPb[ 8] = 26.;
858
dbbe5bc1 859 parPb[ 9] = -dlPb+(kZch32+4.-kZPb);
860 parPb[10] = r2+(kZch32+4.-kZvac4-10.) * TMath::Tan(kThetaOpen2);
be4fc320 861 parPb[11] = 26.;
862
dbbe5bc1 863 parPb[12] = -dlPb+(kZch32+4.-kZPb);
864 parPb[13] = r2+(kZch32+4.-kZvac4-10.) * TMath::Tan(kThetaOpen2);
be4fc320 865 parPb[14] = 30.;
866
867 parPb[15] = dlPb;
dbbe5bc1 868 parPb[16] = r2+(kZvac7-kZvac4-10.) * TMath::Tan(kThetaOpen2);
be4fc320 869 parPb[17] = 30.;
870
866a26a3 871 gMC->Gsvolu("YXO2", "PCON", idtmed[kPb+40], parPb, 18);
dbbe5bc1 872 gMC->Gspos("YXO2", 1, "YGO2", 0., 0., (kZPb-kZvac4)/2., 0, "ONLY");
be4fc320 873//
874// Concrete replacing Pb
875//
876 Float_t parCC[9];
877 Float_t zCC1 = 1066.;
878 Float_t zCC2 = 1188.;
879
880 parCC[ 0] = 0.;
881 parCC[ 1] = 360.;
882 parCC[ 2] = 2.;
883 Float_t dlCC=(zCC2-zCC1)/2.;
884 parCC[ 3] = -dlCC;
dbbe5bc1 885 parCC[ 4] = r2+(zCC1-kZvac4-10.) * TMath::Tan(kThetaOpen2);
be4fc320 886 parCC[ 5] = 30.;
887
888 parCC[ 6] = dlCC;
dbbe5bc1 889 parCC[ 7] = r2+(zCC2-kZvac4-10.) * TMath::Tan(kThetaOpen2);
be4fc320 890 parCC[ 8] = 30.;
891 gMC->Gsvolu("YCO2", "PCON", idtmed[kSteel], parCC, 9);
dbbe5bc1 892// gMC->Gspos("YCO2", 1, "YXO2", 0., 0., dlPb-dlCC-(kZvac7-zCC2), 0, "ONLY");
be4fc320 893
894 zCC1 = 751.75;
dbbe5bc1 895 zCC2 = kZConeE;
be4fc320 896 dlCC=(zCC2-zCC1)/2.;
897 parCC[ 3] = -dlCC;
dbbe5bc1 898 parCC[ 4] = r2+(zCC1-kZvac4-10.) * TMath::Tan(kThetaOpen2);
899 parCC[ 5] = zCC1*TMath::Tan(kAccMin)-kDRSteel2;
be4fc320 900
901 parCC[ 6] = dlCC;
dbbe5bc1 902 parCC[ 7] = r2+(zCC2-kZvac4-10.) * TMath::Tan(kThetaOpen2);
be4fc320 903 parCC[ 8] = 26.;
904
905 gMC->Gsvolu("YCO1", "PCON", idtmed[kSteel], parCC, 9);
dbbe5bc1 906// gMC->Gspos("YCO1", 1, "YXO2", 0., 0., dlPb-dlCC-(kZvac7-zCC2), 0, "ONLY");
be4fc320 907
908//
909// W cone
910//
911 Float_t parW[15];
912 parW[0] = 0.;
913 parW[1] = 360.;
914 parW[2] = 4.;
dbbe5bc1 915 Float_t dlW=(kZPb-kZvac4)/2.;
be4fc320 916
917 parW[3] = -dlW;
918 parW[4] = r2;
dbbe5bc1 919 parW[5] = kR21-kDRSteel2;
be4fc320 920
dbbe5bc1 921 parW[6] = -dlW+(kZvac6-kZvac4)+kDRSteel2;
922 parW[7] = r2+(kZvac6-kZvac4+kDRSteel2) * TMath::Tan(kThetaOpen2);
923 parW[8] = kR21-kDRSteel2;
be4fc320 924
dbbe5bc1 925 parW[9] = -dlW+(kZvac6-kZvac4)+kDRSteel2;
926 parW[10] = r2+(kZvac6-kZvac4+kDRSteel2) * TMath::Tan(kThetaOpen2);
927 parW[11] = (kZvac6+kDRSteel2)*TMath::Tan(kAccMin)-kDRSteel2;
be4fc320 928
929 parW[12] = dlW;
dbbe5bc1 930 parW[13] = r2+(kZPb-kZvac4) * TMath::Tan(kThetaOpen2);
931 parW[14] = kZPb*TMath::Tan(kAccMin)-kDRSteel2;
be4fc320 932
866a26a3 933 gMC->Gsvolu("YYO2", "PCON", idtmed[kNiCuW+40], parW, 15);
dbbe5bc1 934 gMC->Gspos("YYO2", 1, "YGO2", 0., 0., -(kZvac7-kZPb)/2., 0, "ONLY");
be4fc320 935
936 for (i=4; i<35; i+=3) par2[i] = 0;
937
938 gMC->Gsvolu("YMO2", "PCON", idtmed[kVacuum+40], par2, 36);
939 gMC->Gspos("YGO2", 1, "YMO2", 0., 0., 0., 0, "ONLY");
940 dZ+=dl;
941 gMC->Gspos("YMO2", 1, "YMOT", 0., 0., dZ, 0, "ONLY");
942 dZ+=dl;
943//
944//
945// 2nd section: vacuum system
946//
dbbe5bc1 947 cpar0[0]=(kZvac7-kZvac4)/2;
be4fc320 948 cpar0[1]=r2V;
949 cpar0[2]=r2V+dVacuS;
dbbe5bc1 950 cpar0[3]=cpar0[1]+2.*cpar0[0]*TMath::Tan(kThetaOpenB);
951 cpar0[4]=cpar0[2]+2.*cpar0[0]*TMath::Tan(kThetaOpenB);
be4fc320 952 gMC->Gsvolu("YV21", "CONE", idtmed[kSteel+40], cpar0, 5);
953//
954// insulation
955 cpar[0]=cpar0[0];
956 cpar[1]=cpar0[1]+dTubeS;
dbbe5bc1 957 cpar[2]=cpar0[1]+dTubeS+kDInsuS;
be4fc320 958 cpar[3]=cpar0[3]+dTubeS;
dbbe5bc1 959 cpar[4]=cpar0[3]+dTubeS+kDInsuS;
be4fc320 960 gMC->Gsvolu("YI21", "CONE", idtmed[kInsulation+40], cpar, 5);
961 gMC->Gspos("YI21", 1, "YV21", 0., 0., 0., 0, "ONLY");
962 gMC->Gspos("YV21", 1, "YMO2", 0., 0., 0., 0, "ONLY");
963
964//
965// Third Section: Bellows and Flange
966//
967 par3[0] = 0.;
968 par3[1] = 360.;
969 par3[2] = 8.;
dbbe5bc1 970 dl=(kZvac9-kZvac7)/2.;
be4fc320 971
972 par3[3] = -dl;
dbbe5bc1 973 par3[4] = r2+(kZvac7-kZvac3) * TMath::Tan(kThetaOpen2);
be4fc320 974 par3[5] = 30.;
975
dbbe5bc1 976 par3[6] = -dl+kDr21;
977 par3[7] = par3[4]+kDr21;
be4fc320 978 par3[8] = 30.;
979
dbbe5bc1 980 par3[9] = par3[6]+kDB2;
be4fc320 981 par3[10] = par3[7];
982 par3[11] = 30.;
983
dbbe5bc1 984 par3[12] = par3[9]+kDr22;
985 par3[13] = par3[10]+kDr22;
be4fc320 986 par3[14] = 30.;
987
dbbe5bc1 988 par3[15] = par3[12]+kDF2;
be4fc320 989 par3[16] = par3[13];
990 par3[17] = 30.;
991
dbbe5bc1 992 par3[18] = par3[15]+kDr22;
993 par3[19] = par3[16]-kDr22;
be4fc320 994 par3[20] = 30.;
995
dbbe5bc1 996 par3[21] = par3[18]+kDB2;
be4fc320 997 par3[22] = par3[19];
998 par3[23] = 30.;
999
dbbe5bc1 1000 par3[24] = par3[21]+kDr23;
be4fc320 1001 par3[25] = par3[22];
1002 par3[26] = 30.;
1003//
1004 rBox=par3[22]-0.1;
1005 Float_t r3=par3[25];
1006
1007 gMC->Gsvolu("YGO3", "PCON", idtmed[iHeavy+40], par3, 27);
1008
1009// begin Fluka
1010 Float_t rfvacu0[15];
1011 for (ifl=0; ifl<8; ifl++) {
dbbe5bc1 1012 zfluka[ifl]=par3[3+3*ifl]+dl+kZvac7;
be4fc320 1013 rfluka1[ifl] = par3[4+3*ifl];
1014 rfluka2[ifl] = par3[5+3*ifl]-4.;
1015 rfluka3[ifl] = par3[5+3*ifl];
1016 rfvacu0[ifl] = 0.;
1017 }
1018 for (i=0; i<8; i++) rfluka0[i]=rBox;
1019 rfluka0[0]=0.; rfluka0[7]=0.;
1020
1021 flukaGeom->Comment("3rd part: Shield");
1022 flukaGeom->PolyCone(rfluka1, rfluka2, zfluka, 8, posfluka, "LEAD", "MF", "$SHS");
1023 flukaGeom->Comment("3rd part: Steel envelope");
1024 flukaGeom->PolyCone(rfluka2, rfluka3, zfluka, 8, posfluka, "STEEL", "MF", "$SHS");
1025 flukaGeom->Comment("3rd part: Vacuum");
1026 flukaGeom->PolyCone(rfluka0+1, rfluka1+1, zfluka+1, 6, posfluka, "AIR", "MF", "$SHH");
1027
1028 flukaGeom->Comment("3rd part: Beam Pipe (left)");
1029
1030 rf1[0]=0.; rf2[0]=0.;
1031 rf1[1] = r3V;
dbbe5bc1 1032 rf2[1] = rf1[1]+kDr21*TMath::Tan(kThetaOpenB);
1033 rf1[2] = rf1[1]+dTubeS; rf1[3]=rf1[2]+kDInsuS; rf1[4]=rf1[3]+kDEnveS;
be4fc320 1034 rf1[5] = par3[4];
dbbe5bc1 1035 rf2[2] = rf2[1]+dTubeS; rf2[3]=rf2[2]+kDInsuS; rf2[4]=rf2[3]+kDEnveS;
1036 rf2[5] = rf1[5]+kDr21;
1037 flukaGeom->OnionCone(rf1, rf2, 6 , kZvac7, kZvac7+kDr21, posfluka, materialsB, fieldsB, cutsB);
be4fc320 1038
1039
1040 flukaGeom->Comment("3rd part: Beam Pipe (right)");
1041
1042 rf1[0] = 0.;
1043 rf1[1] = rf2[1];
dbbe5bc1 1044 rf1[2] = rf1[1]+dTubeS; rf1[3]=rf1[2]+kDInsuS; rf1[4]=rf1[3]+kDEnveS;
be4fc320 1045 rf1[5] = par3[25];
dbbe5bc1 1046 flukaGeom->OnionCylinder(rf1, 6 , kZvac9-kDr23, kZvac9, posfluka, materialsA, fieldsA, cutsA);
be4fc320 1047
1048//
1049 flukaGeom->Comment("First Bellow");
dbbe5bc1 1050 z1=kZvac7+kDr21;
be4fc320 1051
1052 for (i=0; i<7; i++) {
dbbe5bc1 1053 z2=z1+kEB2;
1054 flukaGeom->Cylinder(0., kRB2, z1, z2, posfluka, "VACUUM", "MF", "$SHH");
1055 flukaGeom->Cylinder(kRB2, kRB2+kHB2, z1, z2, posfluka, "STEEL", "MF", "$SHH");
be4fc320 1056
1057 z1=z2;
dbbe5bc1 1058 z2+=kLB2/2.-kEB2;
1059 flukaGeom->Cylinder(0., kRB2+kHB2-kEB2, z1, z2, posfluka, "VACUUM", "MF", "$SHH");
1060 flukaGeom->Cylinder(kRB2+kHB2-kEB2, kRB2+kHB2, z1, z2, posfluka, "STEEL", "MF", "$SHH");
be4fc320 1061 z1=z2;
dbbe5bc1 1062 z2=z1+kEB2;
1063 flukaGeom->Cylinder(0., kRB2, z1, z2, posfluka, "VACUUM", "MF", "$SHH");
1064 flukaGeom->Cylinder(kRB2, kRB2+kHB2, z1, z2, posfluka, "STEEL", "MF", "$SHH");
be4fc320 1065 z1=z2;
dbbe5bc1 1066 z2+=kLB2/2.-kEB2;
1067 flukaGeom->Cylinder(0., kRB2, z1, z2, posfluka, "VACUUM", "MF", "$SHH");
1068 flukaGeom->Cylinder(kRB2, kRB2+kEB2, z1, z2, posfluka, "STEEL", "MF", "$SHH");
1069 flukaGeom->Cylinder(kRB2+kEB2, kRB2+kHB2, z1, z2, posfluka, "AIR", "MF", "$SHH");
be4fc320 1070 z1=z2;
1071 }
dbbe5bc1 1072 flukaGeom->Cylinder(kRB2+kHB2, kRB2+kHB2+0.2, kZvac7+kDr21, z1, posfluka, "AIR", "MF", "$SHH");
1073 flukaGeom->Cylinder(kRB2+kHB2+0.2, rBox, kZvac7+kDr21, z1, posfluka, "AIR", "MF", "$SHH");
be4fc320 1074 zcy1=z1;
1075
1076
1077 flukaGeom->Comment("Second Bellow");
dbbe5bc1 1078 z1=kZvac9-kDr23;
be4fc320 1079 for (i=0; i<7; i++) {
dbbe5bc1 1080 z2=z1-kEB2;
1081 flukaGeom->Cylinder(0., kRB2, z2, z1, posfluka, "VACUUM", "MF", "$SHH");
1082 flukaGeom->Cylinder(kRB2, kRB2+kHB2, z2, z1, posfluka, "STEEL", "MF", "$SHH");
be4fc320 1083 z1=z2;
dbbe5bc1 1084 z2-=kLB2/2.-kEB2;
1085 flukaGeom->Cylinder(0., kRB2+kHB2-kEB2, z2, z1, posfluka, "VACUUM", "MF", "$SHH");
1086 flukaGeom->Cylinder(kRB2+kHB2-kEB2, kRB2+kHB2, z2, z1, posfluka, "STEEL", "MF", "$SHH");
be4fc320 1087 z1=z2;
dbbe5bc1 1088 z2=z1-kEB2;
1089 flukaGeom->Cylinder(0., kRB2, z2, z1, posfluka, "VACUUM", "MF", "$SHH");
1090 flukaGeom->Cylinder(kRB2, kRB2+kHB2, z2, z1, posfluka, "STEEL", "MF", "$SHH");
be4fc320 1091 z1=z2;
dbbe5bc1 1092 z2-=kLB2/2.-kEB2;
1093 flukaGeom->Cylinder(0., kRB2, z2, z1, posfluka, "VACUUM", "MF", "$SHH");
1094 flukaGeom->Cylinder(kRB2, kRB2+kEB2, z2, z1, posfluka, "STEEL", "MF", "$SHH");
1095 flukaGeom->Cylinder(kRB2+kEB2, kRB2+kHB2, z2, z1, posfluka, "AIR", "MF", "$SHH");
be4fc320 1096 z1=z2;
1097 }
dbbe5bc1 1098 flukaGeom->Cylinder(kRB2+kHB2, kRB2+kHB2+0.2, z1, kZvac9-kDr23, posfluka, "AIR", "MF", "$SHH");
1099 flukaGeom->Cylinder(kRB2+kHB2+0.2, rBox, z1, kZvac9-kDr23, posfluka, "AIR", "MF", "$SHH");
be4fc320 1100
1101 zcy2=z1;
1102 flukaGeom->Comment("Flange");
1103 zfl=(zcy1+zcy2)/2.;
1104
dbbe5bc1 1105 z1=zfl-kDF2/2.;
1106 z2=zfl+kDF2/2.;
1107 flukaGeom->Cylinder(0.,kRF2-2., z1, z2, posfluka, "VACUUM", "MF", "$SHH");
1108 flukaGeom->Cylinder(kRF2-2., kRF2, z1, z2, posfluka, "STEEL", "MF", "$SHH");
1109 flukaGeom->Cylinder(kRF2, kRF2+0.02 , z1, z2, posfluka, "AIR", "MF", "$SHH");
1110 flukaGeom->Cylinder(kRF2+0.02, rBox , z1, z2, posfluka, "AIR", "MF", "$SHH");
be4fc320 1111 z2=z1;
dbbe5bc1 1112 z1=z2-kDFlange;
1113 flukaGeom->Cylinder(0.,kRB2 , z1, z2, posfluka, "VACUUM", "MF", "$SHH");
1114 flukaGeom->Cylinder(kRB2, kRF2 , z1, z2, posfluka, "STEEL", "MF", "$SHH");
1115 flukaGeom->Cylinder(kRF2, kRF2+0.2 , z1, z2, posfluka, "AIR", "MF", "$SHH");
1116 flukaGeom->Cylinder(kRF2+0.2, rBox , z1, z2, posfluka, "AIR", "MF", "$SHH");
be4fc320 1117 z2=z1;
1118 z1=zcy1;
dbbe5bc1 1119 flukaGeom->Cylinder(0.,kRB2 , z1, z2, posfluka, "VACUUM", "MF", "$SHH");
1120 flukaGeom->Cylinder(kRB2, kRB2+0.1 , z1, z2, posfluka, "STEEL", "MF", "$SHH");
1121 flukaGeom->Cylinder(kRB2+0.1, kRB2+0.2 , z1, z2, posfluka, "AIR", "MF", "$SHH");
1122 flukaGeom->Cylinder(kRB2+0.2, rBox , z1, z2, posfluka, "AIR", "MF", "$SHH");
1123
1124 z1=zfl+kDF2/2.;
1125 z2=z1+kDFlange;
1126 flukaGeom->Cylinder(0.,kRB2 , z1, z2, posfluka, "VACUUM", "MF", "$SHH");
1127 flukaGeom->Cylinder(kRB2, kRF2 , z1, z2, posfluka, "STEEL", "MF", "$SHH");
1128 flukaGeom->Cylinder(kRF2, kRF2+0.2 , z1, z2, posfluka, "AIR", "MF", "$SHH");
1129 flukaGeom->Cylinder(kRF2+0.2, rBox , z1, z2, posfluka, "AIR", "MF", "$SHH");
be4fc320 1130 z1=z2;
1131 z2=zcy2;
dbbe5bc1 1132 flukaGeom->Cylinder(0.,kRB2 , z1, z2, posfluka, "VACUUM", "MF", "$SHH");
1133 flukaGeom->Cylinder(kRB2, kRB2+0.1 , z1, z2, posfluka, "STEEL", "MF", "$SHH");
1134 flukaGeom->Cylinder(kRB2+0.1, kRB2+0.2 , z1, z2, posfluka, "AIR", "MF", "$SHH");
1135 flukaGeom->Cylinder(kRB2+0.2, rBox , z1, z2, posfluka, "AIR", "MF", "$SHH");
be4fc320 1136//
1137// end Fluka
1138
1139 for (i=4; i<26; i+=3) par3[i] = 0;
1140
1141 gMC->Gsvolu("YMO3", "PCON", idtmed[kVacuum+40], par3, 27);
1142 gMC->Gspos("YGO3", 1, "YMO3", 0., 0., 0., 0, "ONLY");
1143
1144//
1145// Steel envelope
1146// tpar[0]=26;
1147// tpar[1]=30;
1148// tpar[2]=dl;
1149// gMC->Gsvolu("YS31", "TUBE", idtmed[kSteel], tpar, 3);
1150// gMC->Gspos("YS31", 1, "YGO3", 0., 0., 0., 0, "ONLY");
1151 dZ+=dl;
1152 gMC->Gspos("YMO3", 1, "YMOT", 0., 0., dZ, 0, "ONLY");
1153 dZ+=dl;
1154
1155//
1156// 3rd section: vacuum system
1157//
1158//
1159// Bellow2
1160//
dbbe5bc1 1161 tpar[0]=kRB2;
1162 tpar[1]=kRB2+kHB2;
1163 tpar[2]=kEB2/2.;
be4fc320 1164 gMC->Gsvolu("YB21", "TUBE", idtmed[kSteel+40], tpar, 3);
1165 dl1=tpar[2];
1166
dbbe5bc1 1167 tpar[0]=kRB2+kHB2-kEB2;
1168 tpar[1]=kRB2+kHB2;
1169 tpar[2]=(kLB2/2.-2.*kEB2)/2.;
be4fc320 1170 gMC->Gsvolu("YB22", "TUBE", idtmed[kSteel+40], tpar, 3);
1171 dl2=tpar[2];
1172
dbbe5bc1 1173 tpar[0]=kRB2-kEB2;
1174 tpar[1]=kRB2;
1175 tpar[2]=kLB2/8.;
be4fc320 1176 gMC->Gsvolu("YB23", "TUBE", idtmed[kSteel+40], tpar, 3);
1177 dl3=tpar[2];
1178
1179
1180 tpar[0]=0;
dbbe5bc1 1181 tpar[1]=kRB2+kHB2;
1182 tpar[2]=kLB2/2.;
be4fc320 1183 gMC->Gsvolu("YBU2", "TUBE", idtmed[kVacuum+40], tpar, 3);
1184
1185 dz=-tpar[2]+dl3;
1186 gMC->Gspos("YB23", 1, "YBU2", 0., 0., dz, 0, "ONLY");
1187 dz+=dl3;
1188 dz+=dl1;
1189 gMC->Gspos("YB21", 1, "YBU2", 0., 0., dz, 0, "ONLY");
1190 dz+=dl1;
1191 dz+=dl2;
1192 gMC->Gspos("YB22", 1, "YBU2", 0., 0., dz, 0, "ONLY");
1193 dz+=dl2;
1194 dz+=dl1;
1195 gMC->Gspos("YB21", 2, "YBU2", 0., 0., dz, 0, "ONLY");
1196 dz+=dl1;
1197 dz+=dl3;
1198 gMC->Gspos("YB23", 2, "YBU2", 0., 0., dz, 0, "ONLY");
1199
1200
1201 tpar[0]=0;
dbbe5bc1 1202 tpar[1]=kRB2+kHB2;
1203 tpar[2]=7.*kLB2/2.;
be4fc320 1204 gMC->Gsvolu("YBM2", "TUBE", idtmed[kVacuum+40], tpar, 3);
dbbe5bc1 1205 dz=-tpar[2]+kLB2/2.;
be4fc320 1206
1207 for (i=0; i<7; i++) {
1208 gMC->Gspos("YBU2", i+1 , "YBM2", 0., 0.,dz , 0, "ONLY");
dbbe5bc1 1209 dz+=kLB2;
be4fc320 1210 }
1211
dbbe5bc1 1212 dz=-dl+kDr21+tpar[2];
be4fc320 1213 gMC->Gspos("YBM2", 1, "YMO3", 0., 0., dz, 0, "ONLY");
1214
dbbe5bc1 1215 dz=dl-kDr23-tpar[2];
be4fc320 1216 gMC->Gspos("YBM2", 2, "YMO3", 0., 0., dz, 0, "ONLY");
1217
1218//
1219// Flange
1220
1221 tpar[0]=0;
dbbe5bc1 1222 tpar[1]=kRF2;
1223 tpar[2]=kDF2/2.;
be4fc320 1224 gMC->Gsvolu("YFM2", "TUBE", idtmed[kVacuum+40], tpar, 3);
1225
dbbe5bc1 1226 tpar[0]=kRF2-2.;
1227 tpar[1]=kRF2;
1228 tpar[2]=kDF2/2.;
be4fc320 1229 gMC->Gsvolu("YF21", "TUBE", idtmed[kSteel+40], tpar, 3);
1230 gMC->Gspos("YF21", 1, "YFM2", 0., 0., 0., 0, "ONLY");
1231
dbbe5bc1 1232 tpar[0]=kRB2;
1233 tpar[1]=kRF2-2.;
1234 tpar[2]=kDFlange/2.;
be4fc320 1235 gMC->Gsvolu("YF22", "TUBE", idtmed[kSteel+40], tpar, 3);
dbbe5bc1 1236 dz=-kDF2/2.+tpar[2];
be4fc320 1237 gMC->Gspos("YF22", 1, "YFM2", 0., 0., dz, 0, "ONLY");
dbbe5bc1 1238 dz= kDF2/2.-tpar[2];
be4fc320 1239 gMC->Gspos("YF22", 2, "YFM2", 0., 0., dz, 0, "ONLY");
1240
dbbe5bc1 1241 dz=kDr21/2.-kDr23/2.;
be4fc320 1242 gMC->Gspos("YFM2", 2, "YMO3", 0., 0., dz, 0, "ONLY");
1243
1244
1245//
1246// pipe between flange and bellows
dbbe5bc1 1247 tpar[0]=kRB2-dTubeS;
1248 tpar[1]=kRB2;
1249 tpar[2]=2.*(kDB2+kDr22-7.*kLB2)/4.;
be4fc320 1250 gMC->Gsvolu("YPF2", "TUBE", idtmed[kSteel+40], tpar, 3);
dbbe5bc1 1251 dz=kDr21/2.-kDr23/2.-kDF2/2.-tpar[2];
be4fc320 1252 gMC->Gspos("YPF2", 1, "YMO3", 0., 0., dz, 0, "ONLY");
dbbe5bc1 1253 dz=kDr21/2.-kDr23/2.+kDF2/2.+tpar[2];
be4fc320 1254 gMC->Gspos("YPF2", 2, "YMO3", 0., 0., dz, 0, "ONLY");
1255
1256 Float_t dHorZ=20.;
1257
1258//
1259// 4th section: rear shield and closing cone
1260//
1261 par4[0] = 0.;
1262 par4[1] = 360.;
1263 par4[2] = 7.;
dbbe5bc1 1264 dl=(kZvac12-kZvac9)/2.;
be4fc320 1265
1266 par4[3] = -dl;
1267 par4[4] = r3;
1268 par4[5] = 30.;
1269
1270 par4[6] = -dl+dHorZ;
1271 par4[7] = r3;
1272 par4[8] = 30.;
1273
dbbe5bc1 1274 par4[9] = -dl+(kZvac10-kZvac9);
1275 par4[10] = r3+(kZvac10-kZvac9-dHorZ) * TMath::Tan(kThetaOpen3);
be4fc320 1276 par4[11] = 30.;
1277
1278 par4[12] = par4[9];
1279 par4[13] = par4[10];
dbbe5bc1 1280 par4[14] = kR42;
be4fc320 1281
dbbe5bc1 1282 par4[15] = -dl+(kZvac11-kZvac9);
1283 par4[16] = r3+(kZvac11-kZvac9-dHorZ) * TMath::Tan(kThetaOpen3);
1284 par4[17] = kR42;
be4fc320 1285
1286 par4[18] = par4[15];
1287 par4[19] = par4[16];
dbbe5bc1 1288 par4[20] = kR43;
be4fc320 1289
dbbe5bc1 1290 par4[21] = -dl+(kZvac12-kZvac9);
1291 par4[22] = kRVacu+dVacuS;
1292 par4[23] = kR43;
be4fc320 1293
1294 gMC->Gsvolu("YGO4", "PCON", idtmed[iHeavy+40], par4, 24);
1295
1296
1297 for (i=4; i<23; i+=3) par4[i] = 0;
1298
1299 gMC->Gsvolu("YMO4", "PCON", idtmed[kVacuum+40], par4, 24);
1300 gMC->Gspos("YGO4", 1, "YMO4", 0., 0., 0., 0, "ONLY");
1301
1302
1303
1304 dZ+=dl;
1305 gMC->Gspos("YMO4", 1, "YMOT", 0., 0., dZ, 0, "ONLY");
1306 dZ+=dl;
1307//
1308// Concrete replacing Pb
1309//
1310 zCC1 = 1316.;
1311 zCC2 = 1349.;
1312
1313 parCC[ 0] = 0.;
1314 parCC[ 1] = 360.;
1315 parCC[ 2] = 2.;
1316 dlCC=(zCC2-zCC1)/2.;
1317 parCC[ 3] = -dlCC;
dbbe5bc1 1318 parCC[ 4] = r3+(zCC1-kZvac9-dHorZ) * TMath::Tan(kThetaOpen3);
be4fc320 1319 parCC[ 5] = 30.;
1320
1321 parCC[ 6] = dlCC;
dbbe5bc1 1322 parCC[ 7] = r3+(zCC2-kZvac9-dHorZ) * TMath::Tan(kThetaOpen3);
be4fc320 1323 parCC[ 8] = 30.;
1324
1325 gMC->Gsvolu("YCO4", "PCON", idtmed[kSteel], parCC, 9);
dbbe5bc1 1326// gMC->Gspos("YCO4", 1, "YGO4", 0., 0., dl-dlCC-(kZvac12-zCC2), 0, "ONLY");
be4fc320 1327
1328 zCC1 = 1471.;
1329 zCC2 = 1591.;
1330
1331 dlCC=(zCC2-zCC1)/2.;
1332 parCC[ 3] = -dlCC;
dbbe5bc1 1333 parCC[ 4] = r3+(zCC1-kZvac9-dHorZ) * TMath::Tan(kThetaOpen3);
1334 parCC[ 5] = kR41-kDRSteel2;
be4fc320 1335
1336 parCC[ 6] = dlCC;
dbbe5bc1 1337 parCC[ 7] = r3+(zCC2-kZvac9-dHorZ) * TMath::Tan(kThetaOpen3);
1338 parCC[ 8] = kR41-kDRSteel2;
be4fc320 1339
1340 gMC->Gsvolu("YCO5", "PCON", idtmed[kSteel], parCC, 9);
dbbe5bc1 1341// gMC->Gspos("YCO5", 1, "YGO4", 0., 0., dl-dlCC-(kZvac12-zCC2), 0, "ONLY");
be4fc320 1342
1343//
1344// Closing concrete cone
1345//
dbbe5bc1 1346 cpar[0]=(kZvac12-kZvac11)/2.;
1347 cpar[1] = r3+(kZvac11-kZvac9-dHorZ) * TMath::Tan(kThetaOpen3);
be4fc320 1348 cpar[2] = cpar[1]+0.001;
dbbe5bc1 1349 cpar[3] = kRVacu+dVacuS;
be4fc320 1350 cpar[4] = cpar[2];
1351 gMC->Gsvolu("YCC4", "CONE", idtmed[kConcrete+40], cpar, 5);
1352 dz=dl-cpar[0];
1353 gMC->Gspos("YCC4", 1, "YGO4", 0., 0., dz, 0, "ONLY");
1354
1355//
1356// begin Fluka
1357
dbbe5bc1 1358 Float_t r10=r3+(kZvac10-kZvac9-dHorZ) * TMath::Tan(kThetaOpen3);
be4fc320 1359 Float_t r11=cpar[1];
1360
1361 flukaGeom->Comment("4th part: Shield");
1362
dbbe5bc1 1363 flukaGeom->Cone(r3, r3, 26.0, 26.0, kZvac9, kZvac9+dHorZ,
be4fc320 1364 posfluka, "LEAD", "NF", "$SHH");
1365
dbbe5bc1 1366 flukaGeom->Cone(r3, r10, 26.0, 26.0, kZvac9+dHorZ, kZvac10,
be4fc320 1367 posfluka, "LEAD", "NF", "$SHH");
dbbe5bc1 1368 flukaGeom->Cone(r10, r11, 30.0, 30.0, kZvac10, kZvac11,
be4fc320 1369 posfluka, "LEAD", "NF", "$SHH");
dbbe5bc1 1370 flukaGeom->Cylinder( cpar[1], 30.0, kZvac11, kZvac12,
be4fc320 1371 posfluka, "LEAD", "NF", "$SHH");
1372
1373
1374 flukaGeom->Comment("4th part: Steel Envelope");
dbbe5bc1 1375 flukaGeom->Cylinder(26.0, 30., kZvac9, kZvac10, posfluka, "STEEL", "NF", "$SHH");
be4fc320 1376 flukaGeom->Comment("4th part: Closing Cone");
dbbe5bc1 1377 flukaGeom->Cone(cpar[1]-0.1, cpar[3], cpar[1], cpar[1], kZvac11, kZvac12,
be4fc320 1378 posfluka, "PORTLAND", "NF", "$SHH");
1379 flukaGeom->Comment("4th part: VACUUM");
dbbe5bc1 1380 flukaGeom->Cone(0., 0., cpar[1]-0.1, cpar[3], kZvac11, kZvac12,
be4fc320 1381 posfluka, "VACUUM", "NF", "$SHH");
1382//
1383// end Fluka
1384//
1385// Steel envelope
1386//
1387 dz=-dl;
1388 tpar[0]=26.;
1389 tpar[1]=30.;
dbbe5bc1 1390 tpar[2]=(kZvac10-kZvac9)/2.;
be4fc320 1391 gMC->Gsvolu("YS41", "TUBE", idtmed[kSteel], tpar, 3);
1392 dz+=tpar[2];
1393// gMC->Gspos("YS41", 1, "YGO4", 0., 0., dz, 0, "ONLY");
1394 dz+=tpar[2];
1395
dbbe5bc1 1396 tpar[0]=kR41-kDRSteel2;
1397 tpar[1]=kR41;
1398 tpar[2]=(kZvac11-kZvac10)/2.;
866a26a3 1399 gMC->Gsvolu("YS43", "TUBE", idtmed[kPb+40], tpar, 3);
be4fc320 1400 dz+=tpar[2];
1401 gMC->Gspos("YS43", 1, "YGO4", 0., 0., dz, 0, "ONLY");
1402//
1403// rear lead shield
1404//
dbbe5bc1 1405 tpar[0]=kR41;
1406 tpar[1]=kR42;
1407 tpar[2]=(kZvac11-kZvac10)/2.;
be4fc320 1408 gMC->Gsvolu("YPBI", "TUBE", idtmed[kPb+40], tpar, 3);
1409 dz-=0;
1410 gMC->Gspos("YPBI", 1, "YGO4", 0., 0., dz, 0, "ONLY");
1411
1412 tpar[2]=(zCC2-zCC1)/2.;
1413 gMC->Gsvolu("YCO6", "TUBE", idtmed[kSteel+40], tpar, 3);
dbbe5bc1 1414// gMC->Gspos("YCO6", 1, "YPBI", 0., 0., -(kZvac11-kZvac10)/2.+tpar[2], 0, "ONLY");
be4fc320 1415
1416
dbbe5bc1 1417 tpar[0]=kR42-5;
1418 tpar[1]=kR42;
1419 tpar[2]=(kZvac11-kZvac10)/2.;
866a26a3 1420 gMC->Gsvolu("YPBO", "TUBE", idtmed[kPb+40], tpar, 3);
be4fc320 1421 gMC->Gspos("YPBO", 1, "YPBI", 0., 0., 0., 0, "ONLY");
1422
1423 tpar[2]=(zCC2-zCC1)/2.;
1424 gMC->Gsvolu("YCO7", "TUBE", idtmed[kSteel], tpar, 3);
dbbe5bc1 1425// gMC->Gspos("YCO7", 1, "YPBO", 0., 0., -(kZvac11-kZvac10)/2.+tpar[2], 0, "ONLY");
be4fc320 1426
1427//
1428// rear Fe shield
1429//
1430
1431 tpar[0]=31.;
dbbe5bc1 1432 tpar[1]=kR43;
1433 tpar[2]=(kZvac12-kZvac11)/2.;
be4fc320 1434 gMC->Gsvolu("YFEI", "TUBE", idtmed[kFe+40], tpar, 3);
1435 dz=dl-tpar[2];
1436 gMC->Gspos("YFEI", 1, "YGO4", 0., 0., dz, 0, "ONLY");
1437
1438 tpar[0]=31.;
dbbe5bc1 1439 tpar[1]=kR43;
be4fc320 1440 tpar[2]=2.5;
1441 gMC->Gsvolu("YFEO", "TUBE", idtmed[kFe], tpar, 3);
dbbe5bc1 1442 dz=-(kZvac12-kZvac11)/2.+tpar[2];
be4fc320 1443 gMC->Gspos("YFEO", 1, "YFEI", 0., 0., dz, 0, "ONLY");
1444//
866a26a3 1445// The following element has been moved to ZDC
1446//
be4fc320 1447// Magnet element
1448//
866a26a3 1449// tpar[0]=0.;
1450// tpar[1]= 40.;
1451// tpar[2]=85.;
1452// gMC->Gsvolu("YAEM", "TUBE", idtmed[kAir], tpar, 3);
1453// tpar[0]=17.6/2.;
1454// tpar[1]=40.;
1455// tpar[2]=85.;
1456// gMC->Gsvolu("YFEM", "TUBE", idtmed[kFe], tpar, 3);
1457// gMC->Gspos("YFEM", 1, "YAEM", 0., 0., 0., 0, "ONLY");
be4fc320 1458
1459//
1460
14b05f13 1461 dz=1921.6 + tpar[2];
866a26a3 1462
1463// gMC->Gspos("YAEM", 1, "ALIC", 0., 0., - dz, 0, "ONLY");
be4fc320 1464
1465
1466//
1467//
1468// 4th section: vacuum system
1469//
1470// up to closing cone
1471
dbbe5bc1 1472 r3V=r3-kDr23+dVacuS-1.6;
be4fc320 1473
dbbe5bc1 1474 cpar0[0]=(kZvac11-kZvac9)/2;
be4fc320 1475 cpar0[1]=r3V-dVacuS;
1476 cpar0[2]=r3V;
dbbe5bc1 1477 cpar0[3]=cpar0[1]+2.*cpar0[0]*TMath::Tan(kThetaOpen3);
1478 cpar0[4]=cpar0[2]+2.*cpar0[0]*TMath::Tan(kThetaOpen3);
be4fc320 1479 gMC->Gsvolu("YV31", "CONE", idtmed[kSteel+40], cpar0, 5);
1480//
1481// insulation
1482 cpar[0]=cpar0[0];
1483 cpar[1]=cpar0[1]+dTubeS;
dbbe5bc1 1484 cpar[2]=cpar0[1]+dTubeS+kDInsuS;
be4fc320 1485 cpar[3]=cpar0[3]+dTubeS;
dbbe5bc1 1486 cpar[4]=cpar0[3]+dTubeS+kDInsuS;
be4fc320 1487 gMC->Gsvolu("YI31", "CONE", idtmed[kInsulation+40], cpar, 5);
1488 gMC->Gspos("YI31", 1, "YV31", 0., 0., 0., 0, "ONLY");
1489 dz=-dl+cpar[0];
1490 gMC->Gspos("YV31", 1, "YMO4", 0., 0., dz, 0, "ONLY");
1491
1492//
1493// begin Fluka
1494 flukaGeom->Comment("4th part: Beam pipe lateral structure");
1495 for (i=0; i<7; i++) fieldsA[i] = "NF";
1496
1497 rf1[0]=0.; rf2[0]=0.;
dbbe5bc1 1498 rf1[1]=rf2[1]; rf2[1]=rf1[1]+dHorZ*TMath::Tan(kThetaOpen3);
be4fc320 1499
dbbe5bc1 1500 rf1[2]=rf1[1]+dTubeS; rf1[3]=rf1[2]+kDInsuS; rf1[4]=rf1[3]+kDEnveS;
be4fc320 1501 rf1[5]=r3;
1502
dbbe5bc1 1503 rf2[2]=rf2[1]+dTubeS; rf2[3]=rf2[2]+kDInsuS; rf2[4]=rf2[3]+kDEnveS;
be4fc320 1504 rf2[5]=r3;
1505
dbbe5bc1 1506 flukaGeom->OnionCone(rf1, rf2, 6 , kZvac9 , kZvac9+dHorZ, posfluka, materialsA, fieldsA, cutsA);
be4fc320 1507
1508 rf1[0]=0.; rf2[0]=0.;
1509
dbbe5bc1 1510 rf1[1]=rf2[1]; rf2[1]=rf1[1]+(kZvac10-kZvac9-dHorZ)*TMath::Tan(kThetaOpen3);
be4fc320 1511
dbbe5bc1 1512 rf1[2]=rf1[1]+dTubeS; rf1[3]=rf1[2]+kDInsuS; rf1[4]=rf1[3]+kDEnveS;
be4fc320 1513 rf1[5]=r3;
1514
dbbe5bc1 1515 rf2[2]=rf2[1]+dTubeS; rf2[3]=rf2[2]+kDInsuS; rf2[4]=rf2[3]+kDEnveS;
be4fc320 1516 rf2[5]=r10;
1517
1518
dbbe5bc1 1519 flukaGeom->OnionCone(rf1, rf2, 6 , kZvac9+dHorZ, kZvac10, posfluka, materialsA, fieldsA, cutsA);
be4fc320 1520
1521 rf1[0]=0.; rf2[0]=0.;
dbbe5bc1 1522 rf1[1]=rf2[1]; rf2[1]=rf1[1]+(kZvac11-kZvac10)*TMath::Tan(kThetaOpen3);
be4fc320 1523
dbbe5bc1 1524 rf1[2]=rf1[1]+dTubeS; rf1[3]=rf1[2]+kDInsuS; rf1[4]=rf1[3]+kDEnveS;
be4fc320 1525 rf1[5]=r10;
dbbe5bc1 1526 rf2[2]=rf2[1]+dTubeS; rf2[3]=rf2[2]+kDInsuS; rf2[4]=rf2[3]+kDEnveS;
be4fc320 1527 rf2[5]=r11;
1528
dbbe5bc1 1529 flukaGeom->OnionCone(rf1, rf2, 6 , kZvac10, kZvac11, posfluka, materialsA, fieldsA, cutsA);
be4fc320 1530//
1531// end Fluka
1532//
1533// closing cone
dbbe5bc1 1534 cpar0[0]=(kZvac12-kZvac11)/2;
1535 cpar0[1]=r3V-dVacuS+(kZvac11-kZvac9)*TMath::Tan(kThetaOpen3);
1536 cpar0[2]=r3V +(kZvac11-kZvac9)*TMath::Tan(kThetaOpen3);
1537 cpar0[3]=kRVacu;
1538 cpar0[4]=kRVacu+dTubeS+kDInsuS+kDProtS+kDFreeS;
be4fc320 1539 gMC->Gsvolu("YV32", "CONE", idtmed[kSteel+40], cpar0, 5);
1540//
1541// insulation
1542 cpar[0]=cpar0[0];
1543 cpar[1]=cpar0[1]+dTubeS;
dbbe5bc1 1544 cpar[2]=cpar0[1]+dTubeS+kDInsuS;
be4fc320 1545 cpar[3]=cpar0[3]+dTubeS;
dbbe5bc1 1546 cpar[4]=cpar0[3]+dTubeS+kDInsuS;
be4fc320 1547 gMC->Gsvolu("YI32", "CONE", idtmed[kInsulation+40], cpar, 5);
1548 gMC->Gspos("YI32", 1, "YV32", 0., 0., 0., 0, "ONLY");
1549
1550 dz=dl-cpar[0];
1551 gMC->Gspos("YV32", 1, "YMO4", 0., 0., dz, 0, "ONLY");
1552//
1553//
1554// MUON trigger wall
1555//
1556 tpar[0] = 50.;
1557 tpar[1] = 310.;
8e985238 1558 tpar[2] = (kZFilterOut - kZFilterIn) / 2.;
be4fc320 1559 gMC->Gsvolu("YFIM", "TUBE", idtmed[kFe+40], tpar, 3);
dbbe5bc1 1560 dz = (kZFilterIn + kZFilterOut) / 2.;
be4fc320 1561 tpar[2] -= 10.;
1562 gMC->Gsvolu("YFII","TUBE", idtmed[kFe], tpar, 3);
1563 gMC->Gspos("YFII", 1, "YFIM", 0., 0., 0., 0, "ONLY");
dd6a9ea4 1564 gMC->Gspos("YFIM", 1, "ALIC", 0., 0., - dz, 0, "ONLY");
be4fc320 1565//
1566// Shielding close to chamber
1567//
1568//
dbbe5bc1 1569 cpar[0]=(kZch11-kZRear)/2.;
1570 cpar[1]=kR11;
1571 cpar[2]=kZRear*TMath::Tan(kAccMin);
1572 cpar[3]=kR11;
1573 cpar[4]=(kZRear+2.*cpar[0])*TMath::Tan(kAccMin);
866a26a3 1574 gMC->Gsvolu("YCS1", "CONE", idtmed[kNiCuW+40], cpar, 5);
dbbe5bc1 1575 dz=-(kZvac12-zstart)/2.+(kZRear-zstart)+cpar[0];
be4fc320 1576 gMC->Gspos("YCS1", 1, "YMOT", 0., 0., dz, 0, "ONLY");
1577
65cb363f 1578 cpar[0]=(kZvac4-kZvac41)/2.;
1579 cpar[1]=kR21;
1580 cpar[2]=kZvac41*TMath::Tan(kAccMin);
1581 cpar[3]=kR21;
1582 cpar[4]=(kZvac41+2.*cpar[0])*TMath::Tan(kAccMin);
866a26a3 1583 gMC->Gsvolu("YCS3", "CONE", idtmed[kNiCuW+40], cpar, 5);
65cb363f 1584 dz=-(kZvac12-zstart)/2.+(kZvac41-zstart)+cpar[0];
be4fc320 1585 gMC->Gspos("YCS3", 1, "YMOT", 0., 0., dz, 0, "ONLY");
1586
1587
1588// Recess station 1
1589
dbbe5bc1 1590 cpar[0]=(kZch12-kZch11)/2.;
1591 cpar[1]=kR11;
65cb363f 1592 cpar[2]=17.9;
dbbe5bc1 1593 cpar[3]=kR11;
be4fc320 1594 cpar[4]=17.9;
1595 gMC->Gsvolu("YCS2", "CONE", idtmed[kAir], cpar, 5);
dbbe5bc1 1596 dz=-(kZvac12-zstart)/2.+(kZch11-zstart)+cpar[0];
be4fc320 1597 gMC->Gspos("YCS2", 1, "YMOT", 0., 0., dz, 0, "ONLY");
1598
1599 Float_t ptubs[5];
dbbe5bc1 1600 ptubs[0] = kR11;
be4fc320 1601 ptubs[1] = 17.9;
1602 ptubs[2] = 0.;
1603// phi_min, phi_max
1604 ptubs[3] = 0.;
1605 ptubs[4] = 90.;
866a26a3 1606 gMC->Gsvolu("YCR0", "TUBS", idtmed[kNiCuW+40], ptubs, 0);
dd6a9ea4 1607
be4fc320 1608 AliMatrix(idrotm[1701],90., 0., 90., 90., 0., 0.);
1609 AliMatrix(idrotm[1702],90., 90., 90., 180., 0., 0.);
1610 AliMatrix(idrotm[1703],90., 180., 90., 270., 0., 0.);
1611 AliMatrix(idrotm[1704],90., 270., 90., 0., 0., 0.);
1612 // Int_t ipos;
1613
1614 dz=-cpar[0];
1615// 1.
1616 ptubs[2]=6.5/2.;
1617 dz+=ptubs[2];
1618 gMC->Gsposp("YCR0", 1, "YCS2", 0., 0., dz, idrotm[1701], "ONLY", ptubs, 5);
1619 gMC->Gsposp("YCR0", 2, "YCS2", 0., 0., dz, idrotm[1703], "ONLY", ptubs, 5);
1620 dz+=ptubs[2];
1621 dz+=1.5;
1622// 2.
1623 ptubs[2]=5.0/2.;
1624 dz+=ptubs[2];
1625 gMC->Gsposp("YCR0", 3, "YCS2", 0., 0., dz, idrotm[1702], "ONLY", ptubs, 5);
1626 gMC->Gsposp("YCR0", 4, "YCS2", 0., 0., dz, idrotm[1704], "ONLY", ptubs, 5);
1627 dz+=ptubs[2];
1628 dz+=1.5;
1629// 3.
1630 ptubs[2]=5.0/2.;
1631 dz+=ptubs[2];
1632 gMC->Gsposp("YCR0", 5, "YCS2", 0., 0., dz, idrotm[1701], "ONLY", ptubs, 5);
1633 gMC->Gsposp("YCR0", 6, "YCS2", 0., 0., dz, idrotm[1703], "ONLY", ptubs, 5);
1634 dz+=ptubs[2];
1635 dz+=1.5;
1636// 4.
1637 ptubs[2]=6.5/2.;
1638 dz+=ptubs[2];
1639 gMC->Gsposp("YCR0", 7, "YCS2", 0., 0., dz, idrotm[1702], "ONLY", ptubs, 5);
1640 gMC->Gsposp("YCR0", 8, "YCS2", 0., 0., dz, idrotm[1704], "ONLY", ptubs, 5);
1641 dz+=ptubs[2];
1642 dz+=1.5;
1643
1644
1645
dbbe5bc1 1646 cpar[0]=(kZch21-kZvac4)/2.;
1647 cpar[1]=kR21;
1648 cpar[2]=kZvac4*TMath::Tan(kAccMin);
1649 cpar[3]=kR21;
1650 cpar[4]=(kZvac4+2.*cpar[0])*TMath::Tan(kAccMin);
866a26a3 1651 gMC->Gsvolu("YCS4", "CONE", idtmed[kNiCuW+40], cpar, 5);
dbbe5bc1 1652 dz=-(kZvac12-zstart)/2.+(kZvac4-zstart)+cpar[0];
be4fc320 1653 gMC->Gspos("YCS4", 1, "YMOT", 0., 0., dz, 0, "ONLY");
1654
dbbe5bc1 1655 cpar[0]=(kZvac6-kZch22)/2.;
1656 cpar[1]=kR21;
1657 cpar[2]=kZch22*TMath::Tan(kAccMin);
1658 cpar[3]=kR21;
1659 cpar[4]=(kZch22+2.*cpar[0])*TMath::Tan(kAccMin);
866a26a3 1660 gMC->Gsvolu("YCS6", "CONE", idtmed[kNiCuW+40], cpar, 5);
dbbe5bc1 1661 dz=-(kZvac12-zstart)/2.+(kZch22-zstart)+cpar[0];
be4fc320 1662 gMC->Gspos("YCS6", 1, "YMOT", 0., 0., dz, 0, "ONLY");
1663
1664// Recess station 2
1665
dbbe5bc1 1666 cpar[0]=(kZch22-kZch21)/2.;
1667 cpar[1]=kR21;
be4fc320 1668 cpar[2]=23.;
dbbe5bc1 1669 cpar[3]=kR21;
be4fc320 1670 cpar[4]=23.;
1671 gMC->Gsvolu("YCS5", "CONE", idtmed[kAir], cpar, 5);
dbbe5bc1 1672 dz=-(kZvac12-zstart)/2.+(kZch21-zstart)+cpar[0];
be4fc320 1673 gMC->Gspos("YCS5", 1, "YMOT", 0., 0., dz, 0, "ONLY");
1674
dbbe5bc1 1675 ptubs[0] = kR21;
be4fc320 1676 ptubs[1] = 23;
1677 ptubs[2] = 0.;
1678 ptubs[3] = 0.;
1679 ptubs[4] = 90.;
866a26a3 1680 gMC->Gsvolu("YCR1", "TUBS", idtmed[kNiCuW+40], ptubs, 0);
be4fc320 1681
1682 dz=-cpar[0];
1683// 1.
1684 ptubs[2]=7.5/2.;
1685 dz+=ptubs[2];
1686 gMC->Gsposp("YCR1", 1, "YCS5", 0., 0., dz, idrotm[1701], "ONLY", ptubs, 5);
1687 gMC->Gsposp("YCR1", 2, "YCS5", 0., 0., dz, idrotm[1703], "ONLY", ptubs, 5);
1688 dz+=ptubs[2];
1689 dz+=1.5;
1690// 2.
1691 ptubs[2]=6.0/2.;
1692 dz+=ptubs[2];
1693 gMC->Gsposp("YCR1", 3, "YCS5", 0., 0., dz, idrotm[1702], "ONLY", ptubs, 5);
1694 gMC->Gsposp("YCR1", 4, "YCS5", 0., 0., dz, idrotm[1704], "ONLY", ptubs, 5);
1695 dz+=ptubs[2];
1696 dz+=1.5;
1697// 3.
1698 ptubs[2]=6.0/2.;
1699 dz+=ptubs[2];
1700 gMC->Gsposp("YCR1", 5, "YCS5", 0., 0., dz, idrotm[1701], "ONLY", ptubs, 5);
1701 gMC->Gsposp("YCR1", 6, "YCS5", 0., 0., dz, idrotm[1703], "ONLY", ptubs, 5);
1702 dz+=ptubs[2];
1703 dz+=1.5;
1704// 4.
1705 ptubs[2]=7.5/2.;
1706 dz+=ptubs[2];
1707 gMC->Gsposp("YCR1", 7, "YCS5", 0., 0., dz, idrotm[1702], "ONLY", ptubs, 5);
1708 gMC->Gsposp("YCR1", 8, "YCS5", 0., 0., dz, idrotm[1704], "ONLY", ptubs, 5);
1709 dz+=ptubs[2];
1710 dz+=1.5;
1711
1712
1713//
1714// begin Fluka
1715/*
1716 flukaGeom->Cone(R11, R11, -1., -1.,
dbbe5bc1 1717 kZRear, kZch11, posfluka,"NIW", "MF", "$SHS");
be4fc320 1718
1719 flukaGeom->Cone(R11, R11, -1., -1.,
dbbe5bc1 1720 kZch11, kZch12, posfluka,"AIR", "MF", "$SHS");
be4fc320 1721
1722 flukaGeom->Cone(R11, R11, -1., -1.,
dbbe5bc1 1723 kZch12, kZvac4, posfluka,"NIW", "MF", "$SHS");
be4fc320 1724
dbbe5bc1 1725 flukaGeom->Cone(kR21, kR21, -1., -1.,
1726 kZvac4, kZch21, posfluka,"NIW", "MF", "$SHS");
1727 flukaGeom->Cone(kR21, kR21, -1., -1.,
1728 kZch21, kZch22, posfluka,"AIR", "MF", "$SHS");
1729 flukaGeom->Cone(kR21, kR21, -1., -1.,
1730 kZch22, kZvac6, posfluka,"NIW", "MF", "$SHS");
be4fc320 1731
1732*/
9a4f9621 1733 flukaGeom->Finish(!fWriteGeometry);
be4fc320 1734
1735//
1736// end Fluka
1737//
1738// Outer Pb Cone
1739
1740 if (fPbCone) {
dbbe5bc1 1741 dl = (kZvac10-kZch32)/2.;
1742 dz = dl+kZch32;
be4fc320 1743
1744 par0[0] = 0.;
1745 par0[1] = 360.;
1746 par0[2] = 10.;
1747
1748 par0[ 3] = -dl;
1749 par0[ 4] = 30.;
dbbe5bc1 1750 par0[ 5] = 30.+(kZch32-kZConeE)*TMath::Tan(kThetaOpenPbO);
be4fc320 1751
1752// 4th station
dbbe5bc1 1753 par0[ 6] = -dz + kZch41;
be4fc320 1754 par0[ 7] = 30.;
dbbe5bc1 1755 par0[ 8] = 30.+(kZch41-kZConeE)*TMath::Tan(kThetaOpenPbO);
be4fc320 1756
dbbe5bc1 1757 par0[ 9] = -dz + kZch41;
be4fc320 1758 par0[10] = 30.;
1759 par0[11] = 37.5;
1760 // recess erice2000
dbbe5bc1 1761 par0[12] = -dz + kZch42;
be4fc320 1762 par0[13] = 30.;
1763 par0[14] = par0[11];
1764
dbbe5bc1 1765 par0[15] = -dz + kZch42;
be4fc320 1766 par0[16] = 30.;
dbbe5bc1 1767 par0[17] = 30.+(kZch42-kZConeE)*TMath::Tan(kThetaOpenPbO);
be4fc320 1768
1769// 5th station
dbbe5bc1 1770 par0[18] = -dz + kZch51;
be4fc320 1771 par0[19] = 30.;
dbbe5bc1 1772 par0[20] = 30.+(kZch51-kZConeE)*TMath::Tan(kThetaOpenPbO);
be4fc320 1773
dbbe5bc1 1774 par0[21] = -dz + kZch51;
be4fc320 1775 par0[22] = 30.;
1776 par0[23] = 37.5; // recess erice2000
1777
dbbe5bc1 1778 par0[24] = -dz + kZch52;
be4fc320 1779 par0[25] = 30.;
1780 par0[26] = par0[23];
1781
dbbe5bc1 1782 par0[27] = -dz + kZch52;
be4fc320 1783 par0[28] = 30.;
a83e7079 1784 par0[29] = 30.+(kZch52+4.-kZConeE)*TMath::Tan(kThetaOpenPbO);
be4fc320 1785// end of cone
1786 par0[30] = +dl;
1787 par0[31] = 30.;
1788 par0[32] = par0[29];
1789//
866a26a3 1790 gMC->Gsvolu("YOPB", "PCON", idtmed[kPb+40], par0, 33);
dbbe5bc1 1791 Float_t dzs = -(kZvac12-zstart)/2. + (kZch32-zstart) + dl;
be4fc320 1792 gMC->Gspos("YOPB", 1, "YMOT", 0., 0., dzs, 0, "ONLY");
1793
1794//
1795// Steel envelope
1796//
1797 par0[ 0] = 0.;
1798 par0[ 1] = 360.;
d5806350 1799 par0[ 2] = 11.;
be4fc320 1800
1801 par0[ 3] = -dl;
dbbe5bc1 1802 par0[ 5] = 30.+(kZch32-kZConeE)*TMath::Tan(kThetaOpenPbO);
be4fc320 1803 par0[ 4] = par0[ 5] - 4.;
d5806350 1804
be4fc320 1805// 4th station
d5806350 1806
dbbe5bc1 1807 par0[ 6] = -dz + kZch41 - 4.;
1808 par0[ 8] = 30.+(kZch41-4.-kZConeE)*TMath::Tan(kThetaOpenPbO);
be4fc320 1809 par0[ 7] = par0[ 8] -4.;
1810
dbbe5bc1 1811 par0[ 9] = -dz + kZch41 - 4.;
be4fc320 1812 par0[11] = par0[8];
1813 par0[10] = 33.5;
1814
dbbe5bc1 1815 par0[12] = -dz + kZch41;
1816 par0[14] = 30.+(kZch41-kZConeE)*TMath::Tan(kThetaOpenPbO);
be4fc320 1817 par0[13] = 33.5;
1818
dbbe5bc1 1819 par0[15] = -dz + kZch41;
be4fc320 1820 par0[17] = 37.5;
1821 par0[16] = 33.5;
d5806350 1822
1823// 5th station
1824
1825 par0[18] = -dz + kZch51;
be4fc320 1826 par0[20] = 37.5;
1827 par0[19] = 33.5;
1828
d5806350 1829 par0[21] = -dz + kZch52;
1830 par0[23] = 37.5;
be4fc320 1831 par0[22] = 33.5;
1832
d5806350 1833 par0[24] = -dz + kZch52;
1834 par0[26] = 30.+(kZch52-kZConeE)*TMath::Tan(kThetaOpenPbO);
be4fc320 1835 par0[25] = 33.5;
1836
d5806350 1837 par0[27] = -dz + kZch52 + 4.;
1838 par0[29] = 30.+(kZch52+4.-kZConeE)*TMath::Tan(kThetaOpenPbO);
1839 par0[28] = 33.5;
be4fc320 1840
d5806350 1841 par0[30] = -dz + kZch52 + 4.;
1842 par0[32] = 30.+(kZch52+4.-kZConeE)*TMath::Tan(kThetaOpenPbO);
be4fc320 1843 par0[31] = par0[32] - 4.;
be4fc320 1844
d5806350 1845 par0[33] = +dl;
1846 par0[35] = par0[32];
1847 par0[34] = par0[31];
be4fc320 1848
d5806350 1849 gMC->Gsvolu("YOSE", "PCON", idtmed[kSteel], par0, 36);
be4fc320 1850 gMC->Gspos ("YOSE", 1, "YOPB", 0., 0., 0., 0, "ONLY");
1851//
1852// Concrete replacing lead
1853//
1854 zCC1 = 1066.;
1855 zCC2 = 1188.;
1856 dlCC=(zCC2-zCC1)/2.;
1857 parCC[ 3] = -dlCC;
1858 parCC[ 4] = 30.;
dbbe5bc1 1859 parCC[ 5] = 30.+(zCC1-kZConeE)*TMath::Tan(kThetaOpenPbO)-4.;
be4fc320 1860
1861 parCC[ 6] = dlCC;
1862 parCC[ 7] = 30.;
dbbe5bc1 1863 parCC[ 8] = 30.+(zCC2-kZConeE)*TMath::Tan(kThetaOpenPbO)-4.;
be4fc320 1864 gMC->Gsvolu("YOC1", "PCON", idtmed[kSteel], parCC, 9);
dbbe5bc1 1865// gMC->Gspos("YOC1", 1, "YOPB", 0., 0., dl-dlCC-(kZvac10-zCC2), 0, "ONLY");
be4fc320 1866
1867 zCC1 = 1316.;
1868 zCC2 = 1349.;
1869 dlCC=(zCC2-zCC1)/2.;
1870 parCC[ 3] = -dlCC;
1871 parCC[ 4] = 30.;
dbbe5bc1 1872 parCC[ 5] = 30.+(zCC1-kZConeE)*TMath::Tan(kThetaOpenPbO)-4.;
be4fc320 1873
1874 parCC[ 6] = dlCC;
1875 parCC[ 7] = 30.;
dbbe5bc1 1876 parCC[ 8] = 30.+(zCC2-kZConeE)*TMath::Tan(kThetaOpenPbO)-4.;
be4fc320 1877 gMC->Gsvolu("YOC2", "PCON", idtmed[kSteel], parCC, 9);
dbbe5bc1 1878// gMC->Gspos("YOC2", 1, "YOPB", 0., 0., dl-dlCC-(kZvac10-zCC2), 0, "ONLY");
be4fc320 1879 }
1880}
1881
1882void AliSHILv2::Init()
1883{
1884 //
1885 // Initialise the muon shield after it has been built
1886 //
1887 Int_t i;
1888 //
4951e003 1889 if(AliLog::GetGlobalDebugLevel()>0) {
be4fc320 1890 printf("\n%s: ",ClassName());
1891 for(i=0;i<35;i++) printf("*");
1892 printf(" SHILv2_INIT ");
1893 for(i=0;i<35;i++) printf("*");
1894 printf("\n%s: ",ClassName());
1895 //
1896 // Here the SHIL initialisation code (if any!)
1897 for(i=0;i<80;i++) printf("*");
1898 printf("\n");
1899 }
1900}