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