Put vacuum in beam-pipe not air.
[u/mrichter/AliRoot.git] / STRUCT / AliSHILv0.cxx
CommitLineData
6523e275 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$
9d5c07b4 18Revision 1.11 2000/10/27 15:21:24 morsch
19Shield composition after muon project leader meeting: 24/10/2000
20- 1 cm recess in steel for station 3
21- no heavy shielding between chambers for stations 1 and 2
22
39311070 23Revision 1.10 2000/10/02 21:28:15 fca
24Removal of useless dependecies via forward declarations
25
94de3818 26Revision 1.9 2000/09/12 17:00:45 morsch
27Overlaps in YMO3 and YMO4 (side-effect from last update only) corrected.
28
949f3b29 29Revision 1.8 2000/09/12 16:11:43 morsch
30- Bug in volume YGO2 corrected: PCON started with twice the same z-value.
31- Recesses for chambers added to outer Pb cone.
32
404559e5 33Revision 1.7 2000/06/15 09:40:31 morsch
34Obsolete typedef keyword removed
35
56f14ac2 36Revision 1.6 2000/06/13 15:01:38 morsch
37Make kind of heavy shielding material (Pb, NiCuW) dependent on presence of outer cone.
38
bb03e53c 39Revision 1.5 2000/06/12 19:40:00 morsch
40New structure of beam pipe and heating jacket.
41Optional outer Pb cone added. Not yet compatible with chamber inner radii.
42
2b32db74 43Revision 1.4 2000/04/03 08:13:40 fca
44Introduce extra scope for non ANSI compliant C++ compilers
45
74c0d076 46Revision 1.3 2000/01/17 10:29:30 morsch
47Overlap between Shield and Absorber due to limited numerical precision removed
48by displacing the Shield by epsilon = 0.01 cm.
49
f0c34869 50Revision 1.2 2000/01/13 11:27:51 morsch
51Overlaps corrected: YCS3, YCS4; Inner radius YS21 corrected
52
6d4aaa11 53Revision 1.1 2000/01/12 15:44:03 morsch
54Standard version of SHIL
55
6523e275 56*/
57
58///////////////////////////////////////////////////////////////////////////////
59// //
60// Muon Shield Class //
61// This class contains a description of the muon shield //
62// //
63//Begin_Html
64/*
65<img src="picts/AliSHILClass.gif">
66*/
67//End_Html
68// //
69// //
70///////////////////////////////////////////////////////////////////////////////
71
72#include "AliSHILv0.h"
73#include "AliRun.h"
94de3818 74#include "AliMC.h"
6523e275 75#include "AliConst.h"
76
77ClassImp(AliSHILv0)
78
79//_____________________________________________________________________________
80AliSHILv0::AliSHILv0()
81{
82 //
83 // Default constructor for muon shield
84 //
85}
86
87//_____________________________________________________________________________
88AliSHILv0::AliSHILv0(const char *name, const char *title)
89 : AliSHIL(name,title)
90{
91 //
92 // Standard constructor for muon shield
93 //
94 SetMarkerColor(7);
95 SetMarkerStyle(2);
96 SetMarkerSize(0.4);
2b32db74 97 // Pb cone not yet compatible with muon chamber inner radii
98 // Switched off by default
99 fPbCone=kFALSE;
6523e275 100}
101
102//_____________________________________________________________________________
103void AliSHILv0::CreateGeometry()
104{
105 //
106 // Build muon shield geometry
107 //
108 //
109 //Begin_Html
110 /*
111 <img src="picts/AliSHILv0.gif">
112 */
113 //End_Html
114 //Begin_Html
115 /*
116 <img src="picts/AliSHILv0Tree.gif">
117 */
118 //End_Html
119
2b32db74 120 Float_t cpar[5], cpar0[5], tpar[3], par1[39], par2[27], par3[27],
404559e5 121 par4[21], par0[45];
2b32db74 122 Float_t dz, dZ;
6523e275 123
2b32db74 124 Int_t *idtmed = fIdtmed->GetArray()-1699;
125
126#include "ABSOSHILConst.h"
127#include "SHILConst.h"
6523e275 128
56f14ac2 129enum {kC=1705, kAl=1708, kFe=1709, kCu=1710, kW=1711, kPb=1712,
9d5c07b4 130 kNiCuW=1720, kVacuum=1715, kAir=1714, kConcrete=1716,
2b32db74 131 kPolyCH2=1717, kSteel=1709, kInsulation=1713};
bb03e53c 132//
133// Material of the rear part of the shield
134 Int_t iHeavy=kNiCuW;
135 if (fPbCone) iHeavy=kPb;
136
2b32db74 137
6523e275 138//
139// Mother volume
140//
2b32db74 141 Float_t dRear1=dRear;
142
143 Float_t zstart=zRear-dRear1;
144
6523e275 145 par0[0] = 0.;
146 par0[1] = 360.;
147 par0[2] = 13.;
148
f0c34869 149 Float_t dl=(zvac12-zstart)/2.;
150 dz=zstart+dl;
6523e275 151//
152 par0[3] = -dl;
153 par0[4] = 0.;
2b32db74 154 par0[5] = zstart * TMath::Tan(accMin);
6523e275 155
2b32db74 156 par0[6] = -dl+dRear1;
6523e275 157 par0[7] = 0.;
2b32db74 158 par0[8] = zRear * TMath::Tan(accMin);
6523e275 159
2b32db74 160 par0[9] = -dl+dRear1;
6523e275 161 par0[10] = 0.;
162 par0[11] = R11;
163
164 par0[12] = -dz+zvac4;
165 par0[13] = 0.;
166 par0[14] = R11;
167
168 par0[15] = -dz+zvac4;
169 par0[16] = 0.;
170 par0[17] = R21;
171
172 par0[18] = -dz+zvac6;
173 par0[19] = 0.;
174 par0[20] = R21;
175
176 par0[21] = -dz+zvac6;
177 par0[22] = 0.;
2b32db74 178 par0[23] = zvac6 * TMath::Tan(accMin);
6523e275 179
2b32db74 180 par0[24] = -dz+zConeE;
6523e275 181 par0[25] = 0.;
182 par0[26] = 30.;
183
184 par0[27] = -dz+zvac10;
185 par0[28] = 0.;
186 par0[29] = 30.;
187
188 par0[30] = -dz+zvac10;
189 par0[31] = 0.;
190 par0[32] = R42;
191
192 par0[33] = -dz+zvac11;
193 par0[34] = 0.;
194 par0[35] = R42;
195
196 par0[36] = -dz+zvac11;
197 par0[37] = 0.;
198 par0[38] = R43;
199
200 par0[39] = -dz+zvac12;
201 par0[40] = 0.;
202 par0[41] = R43;
203
2b32db74 204 gMC->Gsvolu("YMOT", "PCON", idtmed[kVacuum], par0, 42);
f0c34869 205 dz=zstart+dl;
6523e275 206 gMC->Gspos("YMOT", 1, "ALIC", 0., 0., dz, 0, "ONLY");
207//
208
2b32db74 209 dZ=-dl;
6523e275 210
211//
212// First section: bellows below and behind front absorber
213//
214//
6523e275 215 par1[0] = 0.;
216 par1[1] = 360.;
217 par1[2] = 12.;
f0c34869 218 dl=(zvac4-zstart)/2.;
6523e275 219
220 par1[3] = -dl;
2b32db74 221 par1[4] = rAbs+(zstart-zOpen) * TMath::Tan(thetaOpen1);
222 par1[5] = zstart * TMath::Tan(accMin);
6523e275 223
f0c34869 224 par1[6] = -dl+zvac1-zstart;
2b32db74 225 par1[7] = rAbs+ (zvac1-zOpen) * TMath::Tan(thetaOpen1);
226 par1[8] = zvac1 * TMath::Tan(accMin);
6523e275 227
228 par1[9] = par1[6]+dr11;
229 par1[10] = par1[7]+dr11;
2b32db74 230 par1[11] = (zvac1+dr11) * TMath::Tan(accMin);
6523e275 231
2b32db74 232 par1[12] = -dl+dRear1;
6523e275 233 par1[13] = par1[10];
2b32db74 234 par1[14] = zRear * TMath::Tan(accMin);
6523e275 235
2b32db74 236 par1[15] = -dl+dRear1;
6523e275 237 par1[16] = par1[10];
238 par1[17] = R11;
239
f0c34869 240 par1[18] = -dl+(zvac1+dr11+dB1-zstart);
6523e275 241 par1[19] = par1[16];
242 par1[20] = R11;
243
244 par1[21] = par1[18]+dr12;
245 par1[22] = par1[19]+dr12;
246 par1[23] = R11;
247
248 par1[24] = par1[21]+dF1;
249 par1[25] = par1[22];
250 par1[26] = R11;
251
252 par1[27] = par1[24]+dr12;
253 par1[28] = par1[25]-dr12;
254 par1[29] = R11;
255
256 par1[30] = par1[27]+dB1;
257 par1[31] = par1[28];
258 par1[32] = R11;
259
260 par1[33] = par1[30]+dr13;
261 par1[34] = par1[31]-dr13;
262 par1[35] = R11;
263
f0c34869 264 par1[36] = -dl+zvac4-zstart;
2b32db74 265 par1[37] = par1[34]+(zvac4-zvac3)*TMath::Tan(thetaOpen2);
6523e275 266 par1[38] = R11;
267
268 Float_t r2=par1[34];
2b32db74 269 Float_t rBox=par1[31]-0.1;
6523e275 270
2b32db74 271 gMC->Gsvolu("YGO1", "PCON", idtmed[kNiCuW], par1, 39);
74c0d076 272 { // Begin local scope for i
2b32db74 273 for (Int_t i=4; i<38; i+=3) par1[i] = 0;
74c0d076 274 } // End local scope for i
2b32db74 275 gMC->Gsvolu("YMO1", "PCON", idtmed[kVacuum+40], par1, 39);
6523e275 276 gMC->Gspos("YGO1", 1, "YMO1", 0., 0., 0., 0, "ONLY");
2b32db74 277 dZ+=dl;
278 gMC->Gspos("YMO1", 1, "YMOT", 0., 0., dZ, 0, "ONLY");
279 dZ+=dl;
6523e275 280
281//
282// Steel envelope
283 tpar[0]=R11-dRSteel1;
284 tpar[1]=R11;
2b32db74 285 tpar[2]=dl-dRear1/2;
286 gMC->Gsvolu("YSE1", "TUBE", idtmed[kNiCuW], tpar, 3);
6523e275 287 dz=dl-tpar[2];
2b32db74 288 gMC->Gspos("YSE1", 1, "YGO1", 0., 0., dz, 0, "ONLY");
6523e275 289//
290// 1st section: vacuum system
291//
292//
293// Bellow 1
294//
295 tpar[0]=rB1;
296 tpar[1]=rB1+hB1;
297 tpar[2]=eB1/2.;
2b32db74 298 gMC->Gsvolu("YB11", "TUBE", idtmed[kSteel+40], tpar, 3);
6523e275 299 Float_t dl1=tpar[2];
300
301 tpar[0]=rB1+hB1-eB1;
302 tpar[1]=rB1+hB1;
303 tpar[2]=(lB1/2.-2.*eB1)/2.;
2b32db74 304 gMC->Gsvolu("YB12", "TUBE", idtmed[kSteel+40], tpar, 3);
6523e275 305 Float_t dl2=tpar[2];
306
307 tpar[0]=rB1-eB1;
308 tpar[1]=rB1;
309 tpar[2]=lB1/8.;
2b32db74 310 gMC->Gsvolu("YB13", "TUBE", idtmed[kSteel+40], tpar, 3);
6523e275 311 Float_t dl3=tpar[2];
312
313
314 tpar[0]=0;
315 tpar[1]=rB1+hB1;
316 tpar[2]=lB1/2.;
2b32db74 317 gMC->Gsvolu("YBU1", "TUBE", idtmed[kVacuum+40], tpar, 3);
6523e275 318
319 dz=-tpar[2]+dl3;
320 gMC->Gspos("YB13", 1, "YBU1", 0., 0., dz, 0, "ONLY");
321 dz+=dl3;
322 dz+=dl1;
323 gMC->Gspos("YB11", 1, "YBU1", 0., 0., dz, 0, "ONLY");
324 dz+=dl1;
325 dz+=dl2;
326 gMC->Gspos("YB12", 1, "YBU1", 0., 0., dz, 0, "ONLY");
327 dz+=dl2;
328 dz+=dl1;
329 gMC->Gspos("YB11", 2, "YBU1", 0., 0., dz, 0, "ONLY");
330 dz+=dl1;
331 dz+=dl3;
332 gMC->Gspos("YB13", 2, "YBU1", 0., 0., dz, 0, "ONLY");
333
334
335 tpar[0]=0;
336 tpar[1]=rB1+hB1;
337 tpar[2]=10.*lB1/2.;
2b32db74 338 gMC->Gsvolu("YBM1", "TUBE", idtmed[kVacuum+40], tpar, 3);
6523e275 339 dz=-tpar[2]+lB1/2.;
74c0d076 340 { // Begin local scope for i
2b32db74 341 for (Int_t i=0; i<10; i++) {
342 gMC->Gspos("YBU1", i+1 , "YBM1", 0., 0., dz, 0, "ONLY");
343 dz+=lB1;
344 }
74c0d076 345 } // End local scope for i
f0c34869 346 dz=-dl+(zvac1-zstart)+dr11+tpar[2];
6523e275 347 gMC->Gspos("YBM1", 1, "YMO1", 0., 0., dz, 0, "ONLY");
348
2b32db74 349 dz=dl-dr13-(zvac4-zvac3)-tpar[2];
6523e275 350 gMC->Gspos("YBM1", 2, "YMO1", 0., 0., dz, 0, "ONLY");
351
352//
353// Flange
354
355 tpar[0]=0;
356 tpar[1]=rF1;
357 tpar[2]=dF1/2.;
2b32db74 358 gMC->Gsvolu("YFM1", "TUBE", idtmed[kVacuum+40], tpar, 3);
6523e275 359
2b32db74 360 tpar[0]=rF1-2.;
6523e275 361 tpar[1]=rF1;
362 tpar[2]=dF1/2.;
2b32db74 363 gMC->Gsvolu("YF11", "TUBE", idtmed[kSteel+40], tpar, 3);
6523e275 364 gMC->Gspos("YF11", 1, "YFM1", 0., 0., 0., 0, "ONLY");
365
366 tpar[0]=rB1;
2b32db74 367 tpar[1]=rF1-2.;
368 tpar[2]=dFlange/2.;
369 gMC->Gsvolu("YF12", "TUBE", idtmed[kSteel+40], tpar, 3);
6523e275 370 dz=-dF1/2.+tpar[2];
371 gMC->Gspos("YF12", 1, "YFM1", 0., 0., dz, 0, "ONLY");
372 dz= dF1/2.-tpar[2];
373 gMC->Gspos("YF12", 2, "YFM1", 0., 0., dz, 0, "ONLY");
374
f0c34869 375 dz=-dl+(zvac2-zstart);
6523e275 376 gMC->Gspos("YFM1", 2, "YMO1", 0., 0., dz, 0, "ONLY");
377
6523e275 378//
379// pipe between flange and bellows
2b32db74 380 tpar[0]=rB1-dTubeS;
6523e275 381 tpar[1]=rB1;
382 tpar[2]=2.*(dB1+dr12-10.*lB1)/4.;
2b32db74 383 gMC->Gsvolu("YPF1", "TUBE", idtmed[kSteel+40], tpar, 3);
384
f0c34869 385 dz=-dl+(zvac2-zstart)-dF1/2.-tpar[2];
6523e275 386 gMC->Gspos("YPF1", 1, "YMO1", 0., 0., dz, 0, "ONLY");
f0c34869 387 dz=-dl+(zvac2-zstart)+dF1/2.+tpar[2];
6523e275 388 gMC->Gspos("YPF1", 2, "YMO1", 0., 0., dz, 0, "ONLY");
389
6523e275 390// pipe and heating jackets outside bellows
391//
392// left side
f0c34869 393 cpar0[0]=(zvac1-zstart)/2;
2b32db74 394 cpar0[1]=rVacu+(zstart-zOpen)*TMath::Tan(thetaOpen1)-0.05;
395 cpar0[2]=rAbs +(zstart-zOpen)*TMath::Tan(thetaOpen1);
396 cpar0[3]=cpar0[1]+2.*cpar0[0]*TMath::Tan(thetaOpen1);
397 cpar0[4]=cpar0[2]+2.*cpar0[0]*TMath::Tan(thetaOpen1);
398 gMC->Gsvolu("YV11", "CONE", idtmed[kSteel+40], cpar0, 5);
6523e275 399//
400// insulation
2b32db74 401 dTubeS=0.15;
6523e275 402 cpar[0]=cpar0[0];
2b32db74 403 cpar[1]=cpar0[1]+0.15;
404 cpar[2]=cpar0[1]+0.65;
405 cpar[3]=cpar0[3]+0.15;
406 cpar[4]=cpar0[3]+0.65;
407 gMC->Gsvolu("YI11", "CONE", idtmed[kInsulation+40], cpar, 5);
6523e275 408 gMC->Gspos("YI11", 1, "YV11", 0., 0., 0., 0, "ONLY");
409//
410// clearance
2b32db74 411 cpar[1]=cpar0[1]+0.75;
412 cpar[2]=cpar0[1]+1.25;
413 cpar[3]=cpar0[3]+0.75;
414 cpar[4]=cpar0[3]+1.25;
415 gMC->Gsvolu("YP11", "CONE", idtmed[kVacuum+40], cpar, 5);
6523e275 416 gMC->Gspos("YP11", 1, "YV11", 0., 0., 0., 0, "ONLY");
417
418 dz=-dl+cpar0[0];
419 gMC->Gspos("YV11", 1, "YMO1", 0., 0., dz, 0, "ONLY");
6523e275 420// right side
2b32db74 421 dTubeS=0.35;
422 dVacuS+=0.25;
423
6523e275 424 cpar0[0]=(zvac4-zvac3)/2;
2b32db74 425 cpar0[1]=rB1;
426 cpar0[2]=cpar0[1]+dVacuS;
427
428 cpar0[3]=cpar0[1]+2.*cpar0[0]*TMath::Tan(thetaOpenB);
429 cpar0[4]=cpar0[2]+2.*cpar0[0]*TMath::Tan(thetaOpenB);
430 gMC->Gsvolu("YV12", "CONE", idtmed[kSteel], cpar0, 5);
431 Float_t r2V=cpar0[3];
6523e275 432//
433// insulation
434 cpar[0]=cpar0[0];
2b32db74 435 cpar[1]=cpar0[1]+dTubeS;
436 cpar[2]=cpar0[1]+dTubeS+dInsuS;
437 cpar[3]=cpar0[3]+dTubeS;
438 cpar[4]=cpar0[3]+dTubeS+dInsuS;
439 gMC->Gsvolu("YI12", "CONE", idtmed[kInsulation], cpar, 5);
6523e275 440 gMC->Gspos("YI12", 1, "YV12", 0., 0., 0., 0, "ONLY");
2b32db74 441
6523e275 442//
443// clearance
2b32db74 444 cpar[1]=cpar0[1]+dTubeS+dInsuS+dEnveS;
445 cpar[2]=cpar0[1]+dTubeS+dInsuS+dEnveS+dFreeS;
446 cpar[3]=cpar0[3]+dTubeS+dInsuS+dEnveS;
447 cpar[4]=cpar0[3]+dTubeS+dInsuS+dEnveS+dFreeS;
448 gMC->Gsvolu("YP12", "CONE", idtmed[kAir], cpar, 5);
6523e275 449 gMC->Gspos("YP12", 1, "YV12", 0., 0., 0., 0, "ONLY");
450
451 dz=dl-cpar0[0];
452 gMC->Gspos("YV12", 1, "YMO1", 0., 0., dz, 0, "ONLY");
6523e275 453//
454// Second Section
2b32db74 455// Between first and second bellow section
456//
6523e275 457
458 par2[0] = 0.;
459 par2[1] = 360.;
404559e5 460 par2[2] = 6.;
6523e275 461 dl=(zvac7-zvac4)/2.;
404559e5 462// recess station 2
6523e275 463 par2[3] = -dl;
2b32db74 464 par2[4] = r2+(zvac4-zvac3) * TMath::Tan(thetaOpen2);
404559e5 465 par2[5] = R21;
6523e275 466
404559e5 467 par2[6] = -dl+(zvac6-zvac4);
468 par2[7] = r2+(zvac6-zvac3) * TMath::Tan(thetaOpen2);
469 par2[8] = R21;
6523e275 470
404559e5 471 par2[9] = -dl+(zvac6-zvac4);
472 par2[10] = par2[7];
473 par2[11] = zvac6*TMath::Tan(accMin);
6523e275 474
2b32db74 475// Start of Pb section
404559e5 476 par2[12] = -dl+(zPb-zvac4);
477 par2[13] = r2+(zPb-zvac3) * TMath::Tan(thetaOpen2);
478 par2[14] = zPb*TMath::Tan(accMin);
6523e275 479
2b32db74 480//
481// end of cone following 2 deg line
404559e5 482 par2[15] = -dl+(zConeE-zvac4);
483 par2[16] = r2+(zConeE-zvac3) * TMath::Tan(thetaOpen2);
484 par2[17] = 30.;
6523e275 485
404559e5 486 par2[18] = -dl+(zvac7-zvac4);
487 par2[19] = r2+(zvac7-zvac3) * TMath::Tan(thetaOpen2);
488 par2[20] = 30.;
2b32db74 489
6523e275 490
404559e5 491 gMC->Gsvolu("YGO2", "PCON", idtmed[kNiCuW+40], par2, 21);
2b32db74 492//
493// Lead cone option replacing Tungsten
494//
495 Float_t parPb[12];
496 parPb[0] = 0.;
497 parPb[1] = 360.;
498 parPb[2] = 3.;
499 Float_t dlPb=(zvac7-zPb)/2.;
500
501 parPb[3] = -dlPb;
502 parPb[4] = 17.657;
503 parPb[5] = zPb*TMath::Tan(accMin);
504
505 parPb[6] = -dlPb+(zConeE-zPb);
506 parPb[7] = parPb[4]+(zConeE-zPb)*TMath::Tan(thetaOpenPb);
507 parPb[8] = 30.;
508
509 parPb[9] = dlPb;
510 parPb[10] = parPb[7]+(zvac7-zConeE)*TMath::Tan(thetaOpenPb);
511 parPb[11] = 30.;
949f3b29 512
513 Float_t rPbLast=parPb[10];
514
515
2b32db74 516 gMC->Gsvolu("YXO2", "PCON", idtmed[kPb], parPb, 12);
517 gMC->Gspos("YXO2", 1, "YGO2", 0., 0., (zPb-zvac4)/2., 0, "ONLY");
404559e5 518
519 parPb[4] = r2+(zPb-zvac3) * TMath::Tan(thetaOpen2);
520 parPb[5] = 17.657;
521
522 parPb[7] = r2+(zConeE-zvac3) * TMath::Tan(thetaOpen2);
523 parPb[8] = parPb[5]+(zConeE-zPb)*TMath::Tan(thetaOpenPb);
2b32db74 524
404559e5 525 parPb[10] = r2+(zvac7-zvac3) * TMath::Tan(thetaOpen2);
526 parPb[11] = parPb[8]+(zvac7-zConeE)*TMath::Tan(thetaOpenPb);
527
528 gMC->Gsvolu("YYO2", "PCON", idtmed[iHeavy+40], parPb, 12);
529 gMC->Gspos("YYO2", 1, "YGO2", 0., 0., (zPb-zvac4)/2., 0, "ONLY");
530
531
74c0d076 532 { // Begin local scope for i
2b32db74 533 for (Int_t i=4; i<23; i+=3) par2[i] = 0;
74c0d076 534 } // End local scope for i
2b32db74 535
536 gMC->Gsvolu("YMO2", "PCON", idtmed[kVacuum+40], par2, 24);
6523e275 537 gMC->Gspos("YGO2", 1, "YMO2", 0., 0., 0., 0, "ONLY");
2b32db74 538 dZ+=dl;
539 gMC->Gspos("YMO2", 1, "YMOT", 0., 0., dZ, 0, "ONLY");
540 dZ+=dl;
6523e275 541//
542// Steel envelope
543//
39311070 544// (1)
6d4aaa11 545 tpar[0]=R11-dRSteel1;
6523e275 546 tpar[1]=R21;
547 tpar[2]=2;
2b32db74 548 gMC->Gsvolu("YS21", "TUBE", idtmed[kSteel], tpar, 3);
6523e275 549 dz=-dl+tpar[2];
550 gMC->Gspos("YS21", 1, "YGO2", 0., 0., dz, 0, "ONLY");
551 dz+=tpar[2];
39311070 552// (2)
6523e275 553 tpar[0]=R21-dRSteel2;
554 tpar[1]=R21;
555 tpar[2]=(zvac6-zvac5)/2.;
2b32db74 556 gMC->Gsvolu("YS22", "TUBE", idtmed[kSteel], tpar, 3);
6523e275 557 dz+=tpar[2];
558 gMC->Gspos("YS22", 1, "YGO2", 0., 0., dz, 0, "ONLY");
559 dz+=tpar[2];
39311070 560// (3)
6523e275 561 cpar[0]=2.;
562 cpar[1]=R21-dRSteel2;
2b32db74 563 cpar[2]=zvac6 * TMath::Tan(accMin);
6523e275 564 cpar[3]=cpar[1];
2b32db74 565 cpar[4]=cpar[2]+4.*TMath::Tan(accMin);
2b32db74 566 gMC->Gsvolu("YS23", "CONE", idtmed[kSteel], cpar, 5);
6523e275 567 dz+=cpar[0];
39311070 568 gMC->Gspos("YS23", 1, "YGO2", 0., 0., dz, 0, "ONLY");
6523e275 569 dz+=cpar[0];
39311070 570// (4)
2b32db74 571 cpar[0]=(zPb-zvac6-4.)/2;
6523e275 572 cpar[2]=cpar[4];
2b32db74 573 cpar[4]=cpar[2]+2.*cpar[0]*TMath::Tan(accMin);
6523e275 574 cpar[1]=cpar[2]-dRSteel2;
575 cpar[3]=cpar[4]-dRSteel2;
576
2b32db74 577 gMC->Gsvolu("YS24", "CONE", idtmed[kSteel], cpar, 5);
6523e275 578 dz+=cpar[0];
579 gMC->Gspos("YS24", 1, "YGO2", 0., 0., dz, 0, "ONLY");
580 dz+=cpar[0];
581
39311070 582// (5)
2b32db74 583 cpar[0]=(zConeE-zPb)/2;
584 cpar[2]=cpar[4];
585 cpar[4]=cpar[2]+2.*cpar[0]*TMath::Tan(accMin);
586 cpar[1]=cpar[2]-dRSteel2;
587 cpar[3]=cpar[4]-dRSteel2;
588
589 gMC->Gsvolu("YS25", "CONE", idtmed[kSteel], cpar, 5);
590 dz=-dlPb+cpar[0];
591 gMC->Gspos("YS25", 1, "YXO2", 0., 0., dz, 0, "ONLY");
592 dz+=cpar[0];
39311070 593// (6)
6523e275 594 tpar[0]=26.;
595 tpar[1]=30.;
2b32db74 596 tpar[2]=(zvac7-zConeE)/2.;
6523e275 597
2b32db74 598 gMC->Gsvolu("YS26", "TUBE", idtmed[kSteel], tpar, 3);
6523e275 599 dz+=tpar[2];
2b32db74 600 gMC->Gspos("YS26", 1, "YXO2", 0., 0., dz, 0, "ONLY");
39311070 601 dz = -tpar[2];
602
603// Recess in steel for station 3
604//
605 tpar[0]=29.;
606 tpar[1]=30.;
607 tpar[2]=(zch32-zch31)/2.;
608 gMC->Gsvolu("YS27", "TUBE", idtmed[kAir], tpar, 3);
609 dz+=(tpar[2]+zch31-zConeE);
2b32db74 610
39311070 611 gMC->Gspos("YS27", 1, "YS26", 0., 0., dz, 0, "ONLY");
612
613//
6523e275 614//
615// 2nd section: vacuum system
2b32db74 616//
6523e275 617 cpar0[0]=(zvac7-zvac4)/2;
2b32db74 618 cpar0[1]=r2V;
619 cpar0[2]=r2V+dVacuS;
620 cpar0[3]=cpar0[1]+2.*cpar0[0]*TMath::Tan(thetaOpenB);
621 cpar0[4]=cpar0[2]+2.*cpar0[0]*TMath::Tan(thetaOpenB);
622 gMC->Gsvolu("YV21", "CONE", idtmed[kSteel+40], cpar0, 5);
6523e275 623//
624// insulation
625 cpar[0]=cpar0[0];
2b32db74 626 cpar[1]=cpar0[1]+dTubeS;
627 cpar[2]=cpar0[1]+dTubeS+dInsuS;
628 cpar[3]=cpar0[3]+dTubeS;
629 cpar[4]=cpar0[3]+dTubeS+dInsuS;
630 gMC->Gsvolu("YI21", "CONE", idtmed[kInsulation+40], cpar, 5);
6523e275 631 gMC->Gspos("YI21", 1, "YV21", 0., 0., 0., 0, "ONLY");
632//
633// clearance
2b32db74 634 cpar[1]=cpar0[1]+dTubeS+dInsuS+dEnveS;
635 cpar[2]=cpar0[1]+dTubeS+dInsuS+dEnveS+dFreeS;
636 cpar[3]=cpar0[3]+dTubeS+dInsuS+dEnveS;
637 cpar[4]=cpar0[3]+dTubeS+dInsuS+dEnveS+dFreeS;
638 gMC->Gsvolu("YP21", "CONE", idtmed[kAir+40], cpar, 5);
6523e275 639 gMC->Gspos("YP21", 1, "YV21", 0., 0., 0., 0, "ONLY");
640
641 dz=0.;
642 gMC->Gspos("YV21", 1, "YMO2", 0., 0., dz, 0, "ONLY");
643
2b32db74 644
6523e275 645//
646// Third Section: Bellows and Flange
647//
648 par3[0] = 0.;
649 par3[1] = 360.;
650 par3[2] = 8.;
651 dl=(zvac9-zvac7)/2.;
652
653 par3[3] = -dl;
2b32db74 654 par3[4] = r2+(zvac7-zvac3) * TMath::Tan(thetaOpen2);
6523e275 655 par3[5] = 30.;
656
657 par3[6] = -dl+dr21;
658 par3[7] = par3[4]+dr21;
659 par3[8] = 30.;
660
661 par3[9] = par3[6]+dB2;
662 par3[10] = par3[7];
663 par3[11] = 30.;
664
665 par3[12] = par3[9]+dr22;
666 par3[13] = par3[10]+dr22;
667 par3[14] = 30.;
668
669 par3[15] = par3[12]+dF2;
670 par3[16] = par3[13];
671 par3[17] = 30.;
672
673 par3[18] = par3[15]+dr22;
674 par3[19] = par3[16]-dr22;
675 par3[20] = 30.;
676
677 par3[21] = par3[18]+dB2;
678 par3[22] = par3[19];
679 par3[23] = 30.;
680
681 par3[24] = par3[21]+dr23;
682 par3[25] = par3[22]-dr23;
683 par3[26] = 30.;
2b32db74 684//
685 rBox=par3[22]-0.1;
6523e275 686 Float_t r3=par3[25];
687
bb03e53c 688 gMC->Gsvolu("YGO3", "PCON", idtmed[iHeavy+40], par3, 27);
2b32db74 689
690 parPb[0] = dl;
949f3b29 691 parPb[1] = rPbLast;
2b32db74 692 parPb[2] = 30;
693 parPb[3] = parPb[1]+2.*dl*TMath::Tan(thetaOpenPb);
694 parPb[4] = 30;
695 gMC->Gsvolu("YXO3", "CONE", idtmed[kPb], parPb, 5);
696 gMC->Gspos("YXO3", 1, "YGO3", 0., 0., 0., 0, "ONLY");
74c0d076 697 { // Begin local scope for i
2b32db74 698 for (Int_t i=4; i<26; i+=3) par3[i] = 0;
74c0d076 699 } // End local scope for i
2b32db74 700 gMC->Gsvolu("YMO3", "PCON", idtmed[kVacuum+40], par3, 27);
6523e275 701 gMC->Gspos("YGO3", 1, "YMO3", 0., 0., 0., 0, "ONLY");
702
703//
704// Steel envelope
705 tpar[0]=26;
706 tpar[1]=30;
707 tpar[2]=dl;
2b32db74 708 gMC->Gsvolu("YS31", "TUBE", idtmed[kSteel], tpar, 3);
709 gMC->Gspos("YS31", 1, "YXO3", 0., 0., 0., 0, "ONLY");
710 dZ+=dl;
711 gMC->Gspos("YMO3", 1, "YMOT", 0., 0., dZ, 0, "ONLY");
712 dZ+=dl;
6523e275 713
714//
715// 3rd section: vacuum system
716//
717//
718// Bellow2
719//
720 tpar[0]=rB2;
721 tpar[1]=rB2+hB2;
722 tpar[2]=eB2/2.;
2b32db74 723 gMC->Gsvolu("YB21", "TUBE", idtmed[kSteel+40], tpar, 3);
6523e275 724 dl1=tpar[2];
725
726 tpar[0]=rB2+hB2-eB2;
727 tpar[1]=rB2+hB2;
728 tpar[2]=(lB2/2.-2.*eB2)/2.;
2b32db74 729 gMC->Gsvolu("YB22", "TUBE", idtmed[kSteel+40], tpar, 3);
6523e275 730 dl2=tpar[2];
731
732 tpar[0]=rB2-eB2;
733 tpar[1]=rB2;
734 tpar[2]=lB2/8.;
2b32db74 735 gMC->Gsvolu("YB23", "TUBE", idtmed[kSteel+40], tpar, 3);
6523e275 736 dl3=tpar[2];
737
738
739 tpar[0]=0;
740 tpar[1]=rB2+hB2;
741 tpar[2]=lB2/2.;
2b32db74 742 gMC->Gsvolu("YBU2", "TUBE", idtmed[kVacuum+40], tpar, 3);
6523e275 743
744 dz=-tpar[2]+dl3;
745 gMC->Gspos("YB23", 1, "YBU2", 0., 0., dz, 0, "ONLY");
746 dz+=dl3;
747 dz+=dl1;
748 gMC->Gspos("YB21", 1, "YBU2", 0., 0., dz, 0, "ONLY");
749 dz+=dl1;
750 dz+=dl2;
751 gMC->Gspos("YB22", 1, "YBU2", 0., 0., dz, 0, "ONLY");
752 dz+=dl2;
753 dz+=dl1;
754 gMC->Gspos("YB21", 2, "YBU2", 0., 0., dz, 0, "ONLY");
755 dz+=dl1;
756 dz+=dl3;
757 gMC->Gspos("YB23", 2, "YBU2", 0., 0., dz, 0, "ONLY");
758
759
760 tpar[0]=0;
761 tpar[1]=rB2+hB2;
762 tpar[2]=7.*lB2/2.;
2b32db74 763 gMC->Gsvolu("YBM2", "TUBE", idtmed[kVacuum+40], tpar, 3);
6523e275 764 dz=-tpar[2]+lB2/2.;
74c0d076 765 { // Begin local scope for i
2b32db74 766 for (Int_t i=0; i<7; i++) {
767 gMC->Gspos("YBU2", i+1 , "YBM2", 0., 0.,dz , 0, "ONLY");
768 dz+=lB2;
769 }
74c0d076 770 } // End local scope for i
6523e275 771 dz=-dl+dr21+tpar[2];
772 gMC->Gspos("YBM2", 1, "YMO3", 0., 0., dz, 0, "ONLY");
773
774 dz=dl-dr23-tpar[2];
775 gMC->Gspos("YBM2", 2, "YMO3", 0., 0., dz, 0, "ONLY");
776
777//
778// Flange
779
780 tpar[0]=0;
781 tpar[1]=rF2;
782 tpar[2]=dF2/2.;
2b32db74 783 gMC->Gsvolu("YFM2", "TUBE", idtmed[kVacuum+40], tpar, 3);
6523e275 784
39311070 785 tpar[0]=rF2-2.;
6523e275 786 tpar[1]=rF2;
787 tpar[2]=dF2/2.;
2b32db74 788 gMC->Gsvolu("YF21", "TUBE", idtmed[kSteel+40], tpar, 3);
6523e275 789 gMC->Gspos("YF21", 1, "YFM2", 0., 0., 0., 0, "ONLY");
790
791 tpar[0]=rB2;
39311070 792 tpar[1]=rF2-2.;
2b32db74 793 tpar[2]=dFlange/2.;
794 gMC->Gsvolu("YF22", "TUBE", idtmed[kSteel+40], tpar, 3);
6523e275 795 dz=-dF2/2.+tpar[2];
796 gMC->Gspos("YF22", 1, "YFM2", 0., 0., dz, 0, "ONLY");
797 dz= dF2/2.-tpar[2];
798 gMC->Gspos("YF22", 2, "YFM2", 0., 0., dz, 0, "ONLY");
799
800 dz=dr21/2.-dr23/2.;
801 gMC->Gspos("YFM2", 2, "YMO3", 0., 0., dz, 0, "ONLY");
802
803
804//
805// pipe between flange and bellows
2b32db74 806 tpar[0]=rB2-dTubeS;
6523e275 807 tpar[1]=rB2;
808 tpar[2]=2.*(dB2+dr22-7.*lB2)/4.;
2b32db74 809 gMC->Gsvolu("YPF2", "TUBE", idtmed[kSteel+40], tpar, 3);
6523e275 810 dz=dr21/2.-dr23/2.-dF2/2.-tpar[2];
811 gMC->Gspos("YPF2", 1, "YMO3", 0., 0., dz, 0, "ONLY");
812 dz=dr21/2.-dr23/2.+dF2/2.+tpar[2];
813 gMC->Gspos("YPF2", 2, "YMO3", 0., 0., dz, 0, "ONLY");
814
815//
816// 4th section: rear shield and closing cone
817//
818 par4[0] = 0.;
819 par4[1] = 360.;
820 par4[2] = 6.;
821 dl=(zvac12-zvac9)/2.;
822
823 par4[3] = -dl;
824 par4[4] = r3;
825 par4[5] = 30.;
826
827 par4[6] = -dl+(zvac10-zvac9);
2b32db74 828 par4[7] = r3+(zvac10-zvac9) * TMath::Tan(thetaOpen3);
6523e275 829 par4[8] = 30.;
830
831 par4[9] = par4[6];
832 par4[10] = par4[7];
833 par4[11] = R42;
834
835 par4[12] = -dl+(zvac11-zvac9);
2b32db74 836 par4[13] = r3+(zvac11-zvac9) * TMath::Tan(thetaOpen3);
6523e275 837 par4[14] = R42;
838
839 par4[15] = par4[12];
840 par4[16] = par4[13];
841 par4[17] = R43;
842
843 par4[18] = -dl+(zvac12-zvac9);
2b32db74 844 par4[19] = rAbs;
6523e275 845 par4[20] = R43;
846
bb03e53c 847 gMC->Gsvolu("YGO4", "PCON", idtmed[iHeavy+40], par4, 21);
2b32db74 848
849 parPb[0] = (zvac10-zvac9)/2.;
850 parPb[1] = parPb[3];
851 parPb[2] = 30;
852 parPb[3] = parPb[1]+2.*parPb[0]*TMath::Tan(thetaOpenPb);
853 parPb[4] = 30;
854 gMC->Gsvolu("YXO4", "CONE", idtmed[kPb], parPb, 5);
855 gMC->Gspos("YXO4", 1, "YGO4", 0., 0., -dl+parPb[0], 0, "ONLY");
856
857 parPb[0] = (zvac12-zvac10)/2.;
858 parPb[1] = parPb[3];
859 parPb[2] = 31.;
860 parPb[3] = parPb[1]+2.*parPb[0]*TMath::Tan(thetaOpenPb);
861 parPb[4] = 31.;
862 gMC->Gsvolu("YXO5", "CONE", idtmed[kPb], parPb, 5);
863 gMC->Gspos("YXO5", 1, "YGO4", 0., 0., -dl+(zvac10-zvac9)+parPb[0], 0, "ONLY");
74c0d076 864 { // Begin local scope for i
2b32db74 865 for (Int_t i=4; i<20; i+=3) par4[i] = 0;
74c0d076 866 } // End local scope for i
6523e275 867
2b32db74 868 gMC->Gsvolu("YMO4", "PCON", idtmed[kVacuum+40], par4, 21);
6523e275 869 gMC->Gspos("YGO4", 1, "YMO4", 0., 0., 0., 0, "ONLY");
870
871
2b32db74 872
873 dZ+=dl;
874 gMC->Gspos("YMO4", 1, "YMOT", 0., 0., dZ, 0, "ONLY");
875 dZ+=dl;
6523e275 876//
877// Closing concrete cone
878//
879 cpar[0]=(zvac12-zvac11)/2.;
2b32db74 880 cpar[1] = r3+(zvac11-zvac9) * TMath::Tan(thetaOpen3);
6523e275 881 cpar[2] = cpar[1]+0.001;
2b32db74 882 cpar[3] = rAbs;
6523e275 883 cpar[4] = cpar[2];
2b32db74 884 gMC->Gsvolu("YCC4", "CONE", idtmed[kConcrete+40], cpar, 5);
6523e275 885 dz=dl-cpar[0];
886 gMC->Gspos("YCC4", 1, "YGO4", 0., 0., dz, 0, "ONLY");
887//
888// Steel envelope
889//
890 dz=-dl;
891 tpar[0]=26.;
892 tpar[1]=30.;
893 tpar[2]=(zvac10-zvac9)/2.;
2b32db74 894 gMC->Gsvolu("YS41", "TUBE", idtmed[kSteel], tpar, 3);
6523e275 895 dz+=tpar[2];
2b32db74 896 gMC->Gspos("YS41", 1, "YXO4", 0., 0., 0., 0, "ONLY");
6523e275 897 dz+=tpar[2];
2b32db74 898/*
899 tpar[0]=30.;
6523e275 900 tpar[1]=R41;
901 tpar[2]=2.;
2b32db74 902 gMC->Gsvolu("YS42", "TUBE", idtmed[kSteel], tpar, 3);
6523e275 903 dz+=tpar[2];
904 gMC->Gspos("YS42", 1, "YGO4", 0., 0., dz, 0, "ONLY");
905 dz+=tpar[2];
2b32db74 906*/
6523e275 907 tpar[0]=R41-dRSteel2;
908 tpar[1]=R41;
2b32db74 909 tpar[2]=(zvac11-zvac10)/2.;
910 gMC->Gsvolu("YS43", "TUBE", idtmed[kSteel], tpar, 3);
6523e275 911 dz+=tpar[2];
912 gMC->Gspos("YS43", 1, "YGO4", 0., 0., dz, 0, "ONLY");
913//
914// rear lead shield
915//
916 tpar[0]=R41;
917 tpar[1]=R42;
918 tpar[2]=(zvac11-zvac10)/2.;
2b32db74 919 gMC->Gsvolu("YPBI", "TUBE", idtmed[kPb+40], tpar, 3);
920 dz-=0;
6523e275 921 gMC->Gspos("YPBI", 1, "YGO4", 0., 0., dz, 0, "ONLY");
922
923 tpar[0]=R42-5;
924 tpar[1]=R42;
925 tpar[2]=(zvac11-zvac10)/2.;
2b32db74 926 gMC->Gsvolu("YPBO", "TUBE", idtmed[kPb], tpar, 3);
6523e275 927 gMC->Gspos("YPBO", 1, "YPBI", 0., 0., 0., 0, "ONLY");
928
929//
930// rear Fe shield
931//
932
2b32db74 933 tpar[0]=31.;
6523e275 934 tpar[1]=R43;
935 tpar[2]=(zvac12-zvac11)/2.;
2b32db74 936 gMC->Gsvolu("YFEI", "TUBE", idtmed[kFe+40], tpar, 3);
6523e275 937 dz=dl-tpar[2];
938 gMC->Gspos("YFEI", 1, "YGO4", 0., 0., dz, 0, "ONLY");
939
2b32db74 940 tpar[0]=31.;
6523e275 941 tpar[1]=R43;
942 tpar[2]=2.5;
2b32db74 943 gMC->Gsvolu("YFEO", "TUBE", idtmed[kFe], tpar, 3);
6523e275 944 dz=-(zvac12-zvac11)/2.+tpar[2];
945 gMC->Gspos("YFEO", 1, "YFEI", 0., 0., dz, 0, "ONLY");
2b32db74 946//
947// Magnet element
948//
949 tpar[0]=0.;
950 tpar[1]=R43;
951 tpar[2]=50.;
9d5c07b4 952 gMC->Gsvolu("YAEM", "TUBE", idtmed[kVacuum], tpar, 3);
2b32db74 953 tpar[0]=rAbs;
954 tpar[1]=R43;
955 tpar[2]=50.;
956 gMC->Gsvolu("YFEM", "TUBE", idtmed[kFe], tpar, 3);
957 gMC->Gspos("YFEM", 1, "YAEM", 0., 0., 0., 0, "ONLY");
6523e275 958
2b32db74 959//
960
961 dz=zvac12+50.;
962 gMC->Gspos("YAEM", 1, "ALIC", 0., 0., dz, 0, "ONLY");
963
964
965//
6523e275 966//
967// 4th section: vacuum system
968//
969// up to closing cone
970 cpar0[0]=(zvac11-zvac9)/2;
2b32db74 971 cpar0[1]=r3-dVacuS;
6523e275 972 cpar0[2]=r3;
2b32db74 973 cpar0[3]=cpar0[1]+2.*cpar0[0]*TMath::Tan(thetaOpen3);
974 cpar0[4]=cpar0[2]+2.*cpar0[0]*TMath::Tan(thetaOpen3);
975 gMC->Gsvolu("YV31", "CONE", idtmed[kSteel+40], cpar0, 5);
6523e275 976//
977// insulation
978 cpar[0]=cpar0[0];
2b32db74 979 cpar[1]=cpar0[1]+dTubeS;
980 cpar[2]=cpar0[1]+dTubeS+dInsuS;
981 cpar[3]=cpar0[3]+dTubeS;
982 cpar[4]=cpar0[3]+dTubeS+dInsuS;
983 gMC->Gsvolu("YI31", "CONE", idtmed[kInsulation+40], cpar, 5);
6523e275 984 gMC->Gspos("YI31", 1, "YV31", 0., 0., 0., 0, "ONLY");
985//
986// clearance
2b32db74 987 cpar[1]=cpar0[2]-dProtS-dFreeS;
988 cpar[2]=cpar0[2]-dProtS;
989 cpar[3]=cpar0[4]-dProtS-dFreeS;
990 cpar[4]=cpar0[4]-dProtS;
991 gMC->Gsvolu("YP31", "CONE", idtmed[kVacuum+40], cpar, 5);
6523e275 992 gMC->Gspos("YP31", 1, "YV31", 0., 0., 0., 0, "ONLY");
993
994 dz=-dl+cpar[0];
995 gMC->Gspos("YV31", 1, "YMO4", 0., 0., dz, 0, "ONLY");
996//
997// closing cone
998 cpar0[0]=(zvac12-zvac11)/2;
2b32db74 999 cpar0[1]=r3-dVacuS+(zvac11-zvac9)*TMath::Tan(thetaOpen3);
1000 cpar0[2]=r3 +(zvac11-zvac9)*TMath::Tan(thetaOpen3);
1001 cpar0[3]=rVacu;
1002 cpar0[4]=rAbs;
1003 gMC->Gsvolu("YV32", "CONE", idtmed[kSteel+40], cpar0, 5);
6523e275 1004//
1005// insulation
1006 cpar[0]=cpar0[0];
2b32db74 1007 cpar[1]=cpar0[1]+dTubeS;
1008 cpar[2]=cpar0[1]+dTubeS+dInsuS;
1009 cpar[3]=cpar0[3]+dTubeS;
1010 cpar[4]=cpar0[3]+dTubeS+dInsuS;
1011 gMC->Gsvolu("YI32", "CONE", idtmed[kInsulation+40], cpar, 5);
6523e275 1012 gMC->Gspos("YI32", 1, "YV32", 0., 0., 0., 0, "ONLY");
1013//
1014// clearance
2b32db74 1015 cpar[1]=cpar0[2]-dProtS-dFreeS;
1016 cpar[2]=cpar0[2]-dProtS;
1017 cpar[3]=cpar0[4]-dProtS-dFreeS;
1018 cpar[4]=cpar0[4]-dProtS;
1019 gMC->Gsvolu("YP32", "CONE", idtmed[kVacuum+40], cpar, 5);
6523e275 1020 gMC->Gspos("YP32", 1, "YV32", 0., 0., 0., 0, "ONLY");
1021
1022 dz=dl-cpar[0];
1023 gMC->Gspos("YV32", 1, "YMO4", 0., 0., dz, 0, "ONLY");
1024//
1025//
1026// MUON trigger wall
2b32db74 1027//
1028 tpar[0] = 50.;
6523e275 1029 tpar[1] = 310.;
2b32db74 1030 tpar[2] = (zFilterOut - zFilterIn) / 2.;
1031 gMC->Gsvolu("YFIM", "TUBE", idtmed[kFe+40], tpar, 3);
1032 dz = (zFilterIn + zFilterOut) / 2.;
6523e275 1033 tpar[2] -= 10.;
2b32db74 1034 gMC->Gsvolu("YFII","TUBE", idtmed[kFe], tpar, 3);
6523e275 1035 gMC->Gspos("YFII", 1, "YFIM", 0., 0., 0., 0, "ONLY");
1036 gMC->Gspos("YFIM", 1, "ALIC", 0., 0., dz, 0, "ONLY");
1037//
1038// Shielding close to chamber
1039//
39311070 1040//
1041 cpar[0]=(zch11-zRear)/2.;
6523e275 1042 cpar[1]=R11;
2b32db74 1043 cpar[2]=zRear*TMath::Tan(accMin);
6523e275 1044 cpar[3]=R11;
2b32db74 1045 cpar[4]=(zRear+2.*cpar[0])*TMath::Tan(accMin);
1046 gMC->Gsvolu("YCS1", "CONE", idtmed[kNiCuW], cpar, 5);
1047 dz=zRear+cpar[0];
6523e275 1048 gMC->Gspos("YCS1", 1, "ALIC", 0., 0., dz, 0, "ONLY");
1049
39311070 1050/*
1051 cpar[0]=(zvac4-zch12)/2.;
6523e275 1052 cpar[1]=R11;
2b32db74 1053 cpar[2]=(zvac4-2.*cpar[0])*TMath::Tan(accMin);
6523e275 1054 cpar[3]=R11;
6d4aaa11 1055 cpar[4]=R21;
2b32db74 1056 gMC->Gsvolu("YCS2", "CONE", idtmed[kNiCuW], cpar, 5);
6523e275 1057 dz=zvac4-cpar[0];
1058 gMC->Gspos("YCS2", 1, "ALIC", 0., 0., dz, 0, "ONLY");
1059
39311070 1060
1061 cpar[0]=(zch12-zch11-2.)/2.;
2b32db74 1062 cpar[1]=R11;
39311070 1063 cpar[2]=(zch11+2.)*TMath::Tan(accMin);
2b32db74 1064 cpar[3]=R11;
1065 cpar[4]=cpar[2]+2.*cpar[0]*TMath::Tan(accMin);
1066 gMC->Gsvolu("YCS3", "CONE", idtmed[kNiCuW], cpar, 5);
39311070 1067 dz=(zch11+zch12)/2.;
2b32db74 1068 gMC->Gspos("YCS3", 1, "ALIC", 0., 0., dz, 0, "ONLY");
39311070 1069*/
2b32db74 1070
39311070 1071 cpar[0]=(zch21-zvac4)/2.;
6523e275 1072 cpar[1]=R21;
2b32db74 1073 cpar[2]=zvac4*TMath::Tan(accMin);
6523e275 1074 cpar[3]=R21;
2b32db74 1075 cpar[4]=(zvac4+2.*cpar[0])*TMath::Tan(accMin);
1076 gMC->Gsvolu("YCS4", "CONE", idtmed[kNiCuW], cpar, 5);
6523e275 1077 dz=zvac4+cpar[0];
2b32db74 1078 gMC->Gspos("YCS4", 1, "ALIC", 0., 0., dz, 0, "ONLY");
6523e275 1079
39311070 1080/*
1081 cpar[0]=(zvac6-zch22)/2.;
6d4aaa11 1082 cpar[1]=R21;
2b32db74 1083 cpar[2]=(zvac6-2.*cpar[0])*TMath::Tan(accMin);
6d4aaa11 1084 cpar[3]=R21;
2b32db74 1085 cpar[4]=zvac6*TMath::Tan(accMin);
1086 gMC->Gsvolu("YCS5", "CONE", idtmed[kNiCuW], cpar, 5);
6523e275 1087 dz=zvac6-cpar[0];
2b32db74 1088 gMC->Gspos("YCS5", 1, "ALIC", 0., 0., dz, 0, "ONLY");
6523e275 1089
39311070 1090
1091 cpar[0]=(zch22-zch21-2.)/2.;
2b32db74 1092 cpar[1]=R21;
39311070 1093 cpar[2]=(zch21+2.)*TMath::Tan(accMin);
2b32db74 1094 cpar[3]=R21;
1095 cpar[4]=cpar[2]+2.*cpar[0]*TMath::Tan(accMin);
1096 gMC->Gsvolu("YCS6", "CONE", idtmed[kNiCuW], cpar, 5);
39311070 1097 dz=(zch21+zch22)/2.;
2b32db74 1098 gMC->Gspos("YCS6", 1, "ALIC", 0., 0., dz, 0, "ONLY");
39311070 1099*/
2b32db74 1100//
1101// Outer Pb Cone
39311070 1102
2b32db74 1103 if (fPbCone) {
39311070 1104
404559e5 1105 par0[0] = 0.;
1106 par0[1] = 360.;
39311070 1107 par0[2] = 10.;
1108/*
404559e5 1109// start of cone
1110 par0[3] = zConeE;
39311070 1111 par0[4] = 30.;
404559e5 1112 par0[5] = 30.01;
1113// 3rd station
1114 par0[6] = zch31;
39311070 1115 par0[7] = 30.;
1116 par0[8] = 30.+(zch31-zConeE)*TMath::Tan(thetaOpenPbO);
404559e5 1117
1118 par0[9] = zch31;
1119 par0[10] = 30.0;
39311070 1120 par0[11] = par0[8]-1.;
1121
404559e5 1122
1123 par0[12] = zch32;
1124 par0[13] = 30.0;
39311070 1125 par0[14] = par0[11];
1126*/
1127 par0[ 3] = zch32;
1128 par0[ 4] = 30.;
1129 par0[ 5] = 30.+(zch32-zConeE)*TMath::Tan(thetaOpenPbO);
404559e5 1130
1131// 4th station
39311070 1132 par0[ 6] = zch41;
1133 par0[ 7] = 30.;
1134 par0[ 8] = 30.+(zch41-zConeE)*TMath::Tan(thetaOpenPbO);
1135
1136 par0[ 9] = zch41;
1137 par0[10] = 30.;
1138 par0[11] = 37.5;
1139 // recess erice2000
1140 par0[12] = zch42;
1141 par0[13] = 30.;
1142 par0[14] = par0[11];
1143
1144 par0[15] = zch42;
1145 par0[16] = 30.;
1146 par0[17] = 30.+(zch42-zConeE)*TMath::Tan(thetaOpenPbO);
404559e5 1147
1148// 5th station
39311070 1149 par0[18] = zch51;
1150 par0[19] = 30.;
1151 par0[20] = 30.+(zch51-zConeE)*TMath::Tan(thetaOpenPbO);
404559e5 1152
39311070 1153 par0[21] = zch51;
1154 par0[22] = 30.;
1155 par0[23] = 37.5; // recess erice2000
404559e5 1156
39311070 1157 par0[24] = zch52;
1158 par0[25] = 30.;
1159 par0[26] = par0[23];
404559e5 1160
39311070 1161 par0[27] = zch52;
1162 par0[28] = 30.;
1163 par0[29] = 30.+(zch52-zConeE)*TMath::Tan(thetaOpenPbO);
404559e5 1164// end of cone
39311070 1165 par0[30] = zFilterIn;
1166 par0[31] = 30.;
1167 par0[32] = par0[29];
404559e5 1168//
39311070 1169 gMC->Gsvolu("YOPB", "PCON", idtmed[kPb], par0, 33);
404559e5 1170 dz=0.;
2b32db74 1171 gMC->Gspos("YOPB", 1, "ALIC", 0., 0., dz, 0, "ONLY");
1172 }
6523e275 1173}
1174
1175void AliSHILv0::Init()
1176{
1177 //
1178 // Initialise the muon shield after it has been built
1179 //
1180 Int_t i;
1181 //
1182 printf("\n");
1183 for(i=0;i<35;i++) printf("*");
1184 printf(" SHILv0_INIT ");
1185 for(i=0;i<35;i++) printf("*");
1186 printf("\n");
1187 //
1188 // Here the SHIL initialisation code (if any!)
1189 for(i=0;i<80;i++) printf("*");
1190 printf("\n");
1191}