]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STRUCT/AliPIPEv3.cxx
AliSHILv2 added correctly
[u/mrichter/AliRoot.git] / STRUCT / AliPIPEv3.cxx
CommitLineData
4c039060 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$
e035db65 18Revision 1.8 2000/10/02 21:28:15 fca
19Removal of useless dependecies via forward declarations
20
94de3818 21Revision 1.7 2000/06/11 12:38:00 morsch
22Coding rule violations corrected
23
b43eb0dc 24Revision 1.6 1999/10/06 19:57:07 fca
25Correct materials in pipe
26
a2ff21a6 27Revision 1.5 1999/09/29 09:24:30 fca
28Introduction of the Copyright and cvs Log
29
4c039060 30*/
31
77289c85 32///////////////////////////////////////////////////////////////////////////////
33// //
34// Beam pipe class //
35// //
36//Begin_Html
37/*
1439f98e 38<img src="picts/AliPIPEClass.gif">
77289c85 39*/
40//End_Html
41// //
42///////////////////////////////////////////////////////////////////////////////
43
44#include "AliPIPEv3.h"
45#include "AliRun.h"
94de3818 46#include "AliMC.h"
47#include "AliMagF.h"
77289c85 48
49ClassImp(AliPIPEv3)
50
51//_____________________________________________________________________________
52AliPIPEv3::AliPIPEv3()
53{
54 //
55 // Default constructor for beam pipe
56 //
57}
58
59//_____________________________________________________________________________
60AliPIPEv3::AliPIPEv3(const char *name, const char *title)
61 : AliPIPE(name,title)
62{
63 //
64 // Standard constructor for beam pipe
65 //
66}
67
68//_____________________________________________________________________________
69void AliPIPEv3::CreateGeometry()
70{
71 //
72 // Create Beam Pipe geometry
73 //
74 //Begin_Html
75 /*
1439f98e 76 <img src="picts/AliPIPE.gif">
77289c85 77 */
78 //End_Html
79 //Begin_Html
80 /*
1439f98e 81 <img src="picts/AliPIPETree.gif">
77289c85 82 */
83 //End_Html
84
77289c85 85 Float_t tpar[3], dzmo, zpos;
86 Float_t bepar[3], alpar[3],sspar[3],flange[3],vacpar[3];
87 Float_t bellow[3];
88// Float_t undul[3];
89// const Double_t z_flange = 150;
90//for undulated structure
91 char cn18[][5]={"CN01","CN02","CN03","CN04","CN05","CN06","CN07","CN08"};
92 char cn48[][5]={"CN21","CN22","CN23","CN24","CN25","CN26","CN27","CN28"};
93// char undul[][5]={'BELO','UNDL'};
94 Float_t zundul;
95 Float_t rundul;
96 Float_t pitch;
97 Float_t thick;
98
99
ad51aeb0 100 Int_t *idtmed = fIdtmed->GetArray()-1999;
77289c85 101// the mother of all beam pipes
102
103 tpar[0] = 0.;
104 tpar[1] = 10.;
105 tpar[2] = 1400. / 2;
106 dzmo = tpar[2];
cfce8870 107 gMC->Gsvolu("QQMO", "TUBE", idtmed[2015], tpar, 3);
77289c85 108
109// All beam pipe details as per the provisonal drawings given by Lars
110// Leistam on 31.5.99
111
112// Beryllium beam pipe, length 56.6 cm, centered at vertex
113
114 bepar[0]=0.0;
115 bepar[1]=3.0;
116 bepar[2]=28.3;
117 zpos=0.0;
118 vacpar[0]=0.0;
119 vacpar[1]=2.9;
120 vacpar[2]=bepar[2];
121 //
cfce8870 122 gMC->Gsvolu("QQBE", "TUBE", idtmed[2004], bepar, 3);
e035db65 123 gMC->Gsvolu("QAC1", "TUBE", idtmed[2015], vacpar, 3);
124 gMC->Gspos("QAC1", 1, "QQBE", 0., 0., 0., 0, "ONLY");
cfce8870 125 gMC->Gspos("QQBE", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
77289c85 126
127 // now beam pipes only in negative z-part for use in PMD.
128
129 // SS Flange 4 cm thick, 5.8 cm ID, 6.3 cm OD
130 flange[0]=0.0;
131 flange[1]=3.15;
132 flange[2]=2.0;
133 zpos = zpos -bepar[2] - flange[2];
134 vacpar[0]=0.0;
135 vacpar[1]=2.9;
136 vacpar[2]=flange[2];
137 //
cfce8870 138 gMC->Gsvolu("QFL1", "TUBE", idtmed[2018], flange, 3);
e035db65 139 gMC->Gsvolu("QAC2", "TUBE", idtmed[2015], vacpar, 3);
140 gMC->Gspos("QAC2", 1, "QFL1", 0., 0., 0., 0, "ONLY");
cfce8870 141 gMC->Gspos("QFL1", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
77289c85 142
143 // Aluminium alloy beam pipe, 1mm thick, 230 cm long
144 alpar[0]=0.0;
145 alpar[1]=3.0;
146 alpar[2]=115.;
147 zpos = zpos - flange[2] - alpar[2];
148
149 vacpar[0]=0.0;
150 vacpar[1]=2.9;
151 vacpar[2]=alpar[2];
cfce8870 152 gMC->Gsvolu("QQAL", "TUBE", idtmed[2003], alpar, 3);
e035db65 153 gMC->Gsvolu("QAC3", "TUBE", idtmed[2015], vacpar, 3);
154 gMC->Gspos("QAC3", 1, "QQAL", 0., 0., 0., 0, "ONLY");
cfce8870 155 gMC->Gspos("QQAL", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
77289c85 156
157
158 // SS tube 2.0 cm long, 0.8 mm thick, 5.96 cm OD
159
160 sspar[0]=0.0;
161 sspar[1]=2.98;
162 sspar[2]=1.0;
163 zpos = zpos - alpar[2] - sspar[2];
164
165 vacpar[0]=0.0;
166 vacpar[1]=2.9;
167 vacpar[2]=sspar[2];
cfce8870 168 gMC->Gsvolu("QSS1", "TUBE", idtmed[2018], sspar, 3);
e035db65 169 gMC->Gsvolu("QAC4", "TUBE", idtmed[2015], vacpar, 3);
170 gMC->Gspos("QAC4", 1, "QSS1", 0., 0., 0., 0, "ONLY");
cfce8870 171 gMC->Gspos("QSS1", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
77289c85 172
173
174 // SS Flange 3 cm thick 7.4 cm OD, 5.8 cm ID
175
176 flange[0]=0.0;
177 flange[1]=3.7;
178 flange[2]=1.5;
179 zpos = zpos - sspar[2] - flange[2];
180
181 vacpar[0]=0.0;
182 vacpar[1]=2.9;
183 vacpar[2]=flange[2];
cfce8870 184 gMC->Gsvolu("QFL2", "TUBE", idtmed[2018], flange, 3);
e035db65 185 gMC->Gsvolu("QAC5", "TUBE", idtmed[2015], vacpar, 3);
186 gMC->Gspos("QAC5", 1, "QFL2", 0., 0., 0., 0, "ONLY");
cfce8870 187 gMC->Gspos("QFL2", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
77289c85 188
189
190 // SS tube 4.0 cm long, 0.8 mm thick, 5.96 cm OD
191
192 sspar[0]=0.0;
193 sspar[1]=2.98;
194 sspar[2]=2.0;
195 zpos = zpos - flange[2] - sspar[2];
196
197 vacpar[0]=0.0;
198 vacpar[1]=2.9;
199 vacpar[2]=sspar[2];
cfce8870 200 gMC->Gsvolu("QSS2", "TUBE", idtmed[2018], sspar, 3);
e035db65 201 gMC->Gsvolu("QAC6", "TUBE", idtmed[2015], vacpar, 3);
202 gMC->Gspos("QAC6", 1, "QSS2", 0., 0., 0., 0, "ONLY");
cfce8870 203 gMC->Gspos("QSS2", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
77289c85 204
205
206 // *************
207 // SS Bellow 8.4 cm long, 6.5 cm ID, 7.5 cm OD
208 // 0.8 mm thick material, 0.3 cm pitch.
209 // zundul=4.2, rundul=6.5, thick=0.08
210 // **************
211 pitch=0.3;
212 thick=0.08;
213 zundul=4.2;
214 rundul=6.5;
215 Undulation("BELO",pitch,thick,zundul,rundul,cn18);
216//
217 bellow[2]=zundul;
218 zpos = zpos - sspar[2] - bellow[2];
cfce8870 219 gMC->Gspos("BELO", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
77289c85 220
221 // SS tube 20.0 cm long, 0.8 mm thick, 5.96 cm OD
222
223 sspar[0]=0.0;
224 sspar[1]=2.98;
225 sspar[2]=10.0;
226 zpos = zpos - bellow[2] - sspar[2];
227
228 vacpar[0]=0.0;
229 vacpar[1]=2.9;
230 vacpar[2]=sspar[2];
cfce8870 231 gMC->Gsvolu("QSS3", "TUBE", idtmed[2018], sspar, 3);
e035db65 232 gMC->Gsvolu("QAC7", "TUBE", idtmed[2015], vacpar, 3);
233 gMC->Gspos("QAC7", 1, "QSS3", 0., 0., 0., 0, "ONLY");
cfce8870 234 gMC->Gspos("QSS3", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
77289c85 235
236 // *************
237 // SS Bellow 8.4 cm long, 6.5 cm ID, 7.5 cm OD
238 // 0.8 mm thick material, 0.3 cm pitch.
239 // **************
240//
241 zpos = zpos - sspar[2] - bellow[2];
cfce8870 242 gMC->Gspos("BELO", 2, "QQMO", 0., 0., zpos, 0, "ONLY");
77289c85 243
244 // SS tube 4.7 cm long, 0.8 mm thick,
245
246 sspar[0]=0.0;
247 sspar[1]=2.98;
248 sspar[2]=4.7/2.;
249 zpos = zpos - bellow[2] - sspar[2];
250
251 vacpar[0]=0.0;
252 vacpar[1]=2.9;
253 vacpar[2]=sspar[2];
cfce8870 254 gMC->Gsvolu("QSS4", "TUBE", idtmed[2018], sspar, 3);
e035db65 255 gMC->Gsvolu("QAC8", "TUBE", idtmed[2015], vacpar, 3);
256 gMC->Gspos("QAC8", 1, "QSS4", 0., 0., 0., 0, "ONLY");
cfce8870 257 gMC->Gspos("QSS4", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
77289c85 258
259 // SS Flange 2.2 cm thick, ID=5.8 cm, OD=9.8 cm
260
261 flange[0]=0.0;
262 flange[1]=4.9;
263 flange[2]=1.1;
264 zpos = zpos - sspar[2] - flange[2];
265
266 vacpar[0]=0.0;
267 vacpar[1]=2.9;
268 vacpar[2]=flange[2];
cfce8870 269 gMC->Gsvolu("QFL3", "TUBE", idtmed[2018], flange, 3);
e035db65 270 gMC->Gsvolu("QAC9", "TUBE", idtmed[2015], vacpar, 3);
271 gMC->Gspos("QAC9", 1, "QFL3", 0., 0., 0., 0, "ONLY");
cfce8870 272 gMC->Gspos("QFL3", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
77289c85 273
274//Total of 3150 mm from vertex on the negative side upto this point.
275
276// SS tube 20.0 cm long, 0.15 cm thick, 5.8 cm ID, to support vac. pump
277
278 sspar[0]=0.0;
279 sspar[1]=3.05;
280 sspar[2]=10.0;
281 zpos = zpos - flange[2] - sspar[2];
282
283 vacpar[0]=0.0;
284 vacpar[1]=2.9;
285 vacpar[2]=sspar[2];
cfce8870 286 gMC->Gsvolu("QSS5", "TUBE", idtmed[2018], sspar, 3);
e035db65 287 gMC->Gsvolu("QA10", "TUBE", idtmed[2015], vacpar, 3);
288 gMC->Gspos("QA10", 1, "QSS5", 0., 0., 0., 0, "ONLY");
cfce8870 289 gMC->Gspos("QSS5", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
77289c85 290
291//
292 // last item, undulated SS beam pipe, pitch=0.25, length= 342.0 cm
293 // material thickness 0.015 cm, ID=6.0 cm,
294 // zundul=171.0, thick=0.015, rundul=3.0
295 pitch=0.25;
296 thick=0.015;
297 zundul=171;
298 rundul=3.0;
299 Undulation("UNDL",pitch,thick,zundul,rundul,cn48);
300 //
301 zpos = zpos - sspar[2] - zundul;
cfce8870 302 gMC->Gspos("UNDL", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
77289c85 303//
cfce8870 304 gMC->Gspos("QQMO", 1, "ALIC", 0., 0., 0.1, 0, "ONLY");
77289c85 305
306// total of 6770 mm length upto this point, end of undulated beam
307// pipe section.
308
309// SS flange 22*2 mm thick
310
311
312 flange[0]=0.0;
313 flange[1]=6.3;
314 flange[2]=2.2;
315 zpos = zpos - zundul - flange[2];
316
317 vacpar[0]=0.0;
318 vacpar[1]=2.9;
319 vacpar[2]=flange[2];
cfce8870 320 gMC->Gsvolu("QFL4", "TUBE", idtmed[2018], flange, 3);
e035db65 321 gMC->Gsvolu("QC11", "TUBE", idtmed[2015], vacpar, 3);
322 gMC->Gspos("QC11", 1, "QFL4", 0., 0., 0., 0, "ONLY");
cfce8870 323 gMC->Gspos("QFL4", 1, "QQMO", 0., 0., zpos, 0, "ONLY");
77289c85 324
325}
326
327//_____________________________________________________________________________
328void AliPIPEv3::DrawModule()
329{
330 //
331 // Draw a shaded view of the Beam Pipe
332 //
333
77289c85 334 // Set everything unseen
cfce8870 335 gMC->Gsatt("*", "seen", -1);
77289c85 336 //
337 // Set ALIC mother transparent
cfce8870 338 gMC->Gsatt("ALIC","SEEN",0);
77289c85 339 //
340 // Set the volumes visible
cfce8870 341 gMC->Gsatt("QQMO","seen",1);
342 gMC->Gsatt("QQBE","seen",1);
343 gMC->Gsatt("QFL1","seen",1);
344 gMC->Gsatt("QQAL","seen",1);
345 gMC->Gsatt("QSS1","seen",1);
346 gMC->Gsatt("QFL2","seen",1);
347 gMC->Gsatt("QSS2","seen",1);
348 gMC->Gsatt("QSS3","seen",1);
349 gMC->Gsatt("QSS4","seen",1);
350 gMC->Gsatt("QFL3","seen",1);
351 gMC->Gsatt("QSS5","seen",1);
352 gMC->Gsatt("BELO","seen",1);
353 gMC->Gsatt("UNDL","seen",1);
77289c85 354 //
cfce8870 355 gMC->Gdopt("hide", "on");
356 gMC->Gdopt("shad", "on");
357 gMC->Gsatt("*", "fill", 7);
358 gMC->SetClipBox(".");
359 gMC->SetClipBox("*", 0, 3000, -3000, 3000, -6000, 6000);
360 gMC->DefaultRange();
361 gMC->Gdraw("alic", 40, 30, 0, 3, 5, .04, .04);
362 gMC->Gdhead(1111, "Beam Pipe");
363 gMC->Gdman(16, 6, "MAN");
364 gMC->Gdopt("hide","off");
77289c85 365}
366
367//_____________________________________________________________________________
368void AliPIPEv3::CreateMaterials()
369{
370 //
371 // Create materials for beam pipe
372 //
373
b43eb0dc 374 Int_t isxfld = gAlice->Field()->Integ();
375 Float_t sxmgmx = gAlice->Field()->Max();
77289c85 376
377 Float_t asteel[4] = { 55.847,51.9961,58.6934,28.0855 };
378 Float_t zsteel[4] = { 26.,24.,28.,14. };
379 Float_t wsteel[4] = { .715,.18,.1,.005 };
380
381 Float_t epsil, stmin, tmaxfd, deemax, stemax;
382
383 // STEEL
384
385
386 // --- Define the various materials for GEANT ---
387 AliMaterial(5, "BERILLIUM$", 9.01, 4., 1.848, 35.3, 36.7);
388 AliMaterial(4, "ALUMINIUM$", 26.98, 13., 2.7, 8.9, 18.5);
389 AliMaterial(16, "VACUUM$ ", 1e-16, 1e-16, 1e-16, 1e16, 1e16);
390 AliMaterial(15, "AIR$ ", 14.61, 7.3, .001205, 30423.24, 67500);
391 AliMixture(19, "STAINLESS STEEL$", asteel, zsteel, 7.88, 4, wsteel);
392
393 // ****************
394 // Defines tracking media parameters.
395 // Les valeurs sont commentees pour laisser le defaut
396 // a GEANT (version 3-21, page CONS200), f.m.
397 epsil = .001; // Tracking precision,
398 stemax = -1.; // Maximum displacement for multiple scat
399 tmaxfd = -20.; // Maximum angle due to field deflection
400 deemax = -.3; // Maximum fractional energy loss, DLS
401 stmin = -.8;
402
403 // Air
404
b43eb0dc 405 AliMedium(15, "AIR_L3_US", 15, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
77289c85 406
407 // Beryllium
408
b43eb0dc 409 AliMedium(5, "BE_L3_US", 5, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
77289c85 410
411
412 // Aluminium
413
b43eb0dc 414 AliMedium(4, "AL_L3_US", 4, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
77289c85 415
416 // Vacuum
417
b43eb0dc 418 AliMedium(16, "VA_L3_US", 16, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
77289c85 419
420 // Steel
421
b43eb0dc 422 AliMedium(19, "ST_L3_US", 19, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
77289c85 423}
424//
425void AliPIPEv3::Undulation(char *undul, Float_t pitch, Float_t thick,
426 Float_t zundul, Float_t rundul, char (*cone)[5])
427{
428 //
429 // RUNDUL : Internal radius of the undulated chamber
430 // THICK : material thickness
431 // PITCH : one-QUARTER wave of undulation (cm)
432 // ZUNDUL : half length (cm)
433 //
434 // The undulated structure is desgned as a superposition of eight CONES
435 // of suitable sizes, where the inner/outer radius of the cone increases,
436 // then decreases, each half of the wave is assumed to be a semicircle,
437 // which allows to calculate the thickness and the radii of the cone, by
438 // dividing the semicircle into 4 parts of equal arc length.
439 // Thus apear the constants 0.293 and 0.707.
440 //
441
b43eb0dc 442 const Float_t kConst1 = .293;
443 const Float_t kConst2 = .707;
77289c85 444
77289c85 445 // Local variables
446 Int_t j, nwave;
447 Float_t dcone1[5], dcone2[5], dcone3[5], dcone4[5], dcone5[5],
448 dcone6[5], dcone7[5], dcone8[5];
449 Float_t xc, yc, zc, dundul[3];
ad51aeb0 450 Int_t *idtmed = fIdtmed->GetArray()-1999;
77289c85 451
452 // Function Body
453
b43eb0dc 454 dcone1[0] = kConst1 * pitch / 2;
77289c85 455 dcone1[1] = rundul;
456 dcone1[2] = dcone1[1] + thick;
b43eb0dc 457 dcone1[3] = dcone1[1] + kConst2 * pitch;
77289c85 458 dcone1[4] = dcone1[3] + thick;
459
b43eb0dc 460 dcone2[0] = kConst2 * pitch / 2;
77289c85 461 dcone2[1] = dcone1[3];
462 dcone2[2] = dcone1[4];
b43eb0dc 463 dcone2[3] = dcone2[1] + kConst1 * pitch;
77289c85 464 dcone2[4] = dcone2[3] + thick;
465
466 dcone3[0] = dcone2[0];
467 dcone3[1] = dcone2[3];
468 dcone3[2] = dcone2[4];
469 dcone3[3] = dcone2[1];
470 dcone3[4] = dcone2[2];
471
472 dcone4[0] = dcone1[0];
473 dcone4[1] = dcone1[3];
474 dcone4[2] = dcone1[4];
475 dcone4[3] = dcone1[1];
476 dcone4[4] = dcone1[2];
477
478 dcone5[0] = dcone1[0];
479 dcone5[1] = dcone1[1] - thick;
480 dcone5[2] = dcone1[1];
b43eb0dc 481 dcone5[3] = dcone5[1] - kConst2 * pitch;
77289c85 482 dcone5[4] = dcone5[3] + thick;
483
484 dcone6[0] = dcone2[0];
485 dcone6[1] = dcone5[3];
486 dcone6[2] = dcone5[4];
b43eb0dc 487 dcone6[3] = dcone6[1] - kConst1 * pitch;
77289c85 488 dcone6[4] = dcone6[3] + thick;
489 dcone7[0] = dcone6[0];
490 dcone7[1] = dcone6[3];
491 dcone7[2] = dcone6[4];
492 dcone7[3] = dcone5[3];
493 dcone7[4] = dcone5[4];
494
495 dcone8[0] = dcone5[0];
496 dcone8[1] = dcone7[3];
497 dcone8[2] = dcone7[4];
498 dcone8[3] = dcone5[1];
499 dcone8[4] = dcone5[2];
500
a2ff21a6 501 gMC->Gsvolu(cone[0], "CONE", idtmed[2018], dcone1, 5);
502 gMC->Gsvolu(cone[1], "CONE", idtmed[2018], dcone2, 5);
503 gMC->Gsvolu(cone[2], "CONE", idtmed[2018], dcone3, 5);
504 gMC->Gsvolu(cone[3], "CONE", idtmed[2018], dcone4, 5);
505 gMC->Gsvolu(cone[4], "CONE", idtmed[2018], dcone5, 5);
506 gMC->Gsvolu(cone[5], "CONE", idtmed[2018], dcone6, 5);
507 gMC->Gsvolu(cone[6], "CONE", idtmed[2018], dcone7, 5);
508 gMC->Gsvolu(cone[7], "CONE", idtmed[2018], dcone8, 5);
cfce8870 509 gMC->Gsatt(cone[0], "SEEN", 0);
510 gMC->Gsatt(cone[1], "SEEN", 0);
511 gMC->Gsatt(cone[2], "SEEN", 0);
512 gMC->Gsatt(cone[3], "SEEN", 0);
513 gMC->Gsatt(cone[4], "SEEN", 0);
514 gMC->Gsatt(cone[5], "SEEN", 0);
515 gMC->Gsatt(cone[6], "SEEN", 0);
516 gMC->Gsatt(cone[7], "SEEN", 0);
77289c85 517
518 // DEFINE AN IMAGINARY TUBE VOLUME FOR UNDULATED CHAMBER, FILL WITH VACUUM
519
520 nwave = Int_t (zundul / (pitch * 2) + .1);
521 dundul[2] = pitch * 2 * nwave;
522 dundul[1] = rundul + pitch + thick * 2;
523 //
524 dundul[0] = 1e-4;
cfce8870 525 gMC->Gsvolu(undul, "TUBE", idtmed[2015], dundul, 3);
77289c85 526
527 xc = 0;
528 yc = 0;
529 zc = -dundul[2] + dcone1[0];
530 for (j = 1; j <= nwave; ++j) {
cfce8870 531 gMC->Gspos(cone[0], j, undul, xc, yc, zc, 0, "ONLY");
77289c85 532 zc = zc + dcone1[0] + dcone2[0];
cfce8870 533 gMC->Gspos(cone[1], j, undul, xc, yc, zc, 0, "ONLY");
77289c85 534 zc = zc + dcone2[0] + dcone3[0];
cfce8870 535 gMC->Gspos(cone[2], j, undul, xc, yc, zc, 0, "ONLY");
77289c85 536 zc = zc + dcone3[0] + dcone4[0];
cfce8870 537 gMC->Gspos(cone[3], j, undul, xc, yc, zc, 0, "ONLY");
77289c85 538 zc = zc + dcone4[0] + dcone5[0];
cfce8870 539 gMC->Gspos(cone[4], j, undul, xc, yc, zc, 0, "ONLY");
77289c85 540 zc = zc + dcone5[0] + dcone6[0];
cfce8870 541 gMC->Gspos(cone[5], j, undul, xc, yc, zc, 0, "ONLY");
77289c85 542 zc = zc + dcone6[0] + dcone7[0];
cfce8870 543 gMC->Gspos(cone[6], j, undul, xc, yc, zc, 0, "ONLY");
77289c85 544 zc = zc + dcone7[0] + dcone8[0];
cfce8870 545 gMC->Gspos(cone[7], j, undul, xc, yc, zc, 0, "ONLY");
77289c85 546 zc = zc + dcone8[0] + dcone1[0];
547 }
548}