1 *CMZ : 22/02/99 17.57.04 by Federico Carminati
2 *CMZ : 2.03/01 10/09/98 11.48.45 by Roberto Barbera
3 *CMZ : 2.00/05 25/05/98 14.39.00 by Federico Carminati
4 *CMZ : 2.00/04 22/05/98 09.37.53 by Roberto Barbera (Catania)
5 *CMZ : 2.00/02 24/04/98 13.35.44 by Federico Carminati
6 *CMZ : 2.00/01 22/04/98 19.18.39 by Federico Carminati
7 *CMZ : 1.05/06 24/10/95 14.00.47 by Nick van Eijndhoven (RUU/CERN)
8 *CMZ : 1.05/00 10/12/92 16.45.55 by Nick van Eijndhoven (RUU/CERN)
9 *-- Author : Nick van Eijndhoven (CERN) 24/09/90
10 SUBROUTINE ITS_GEO4(IVERS,IDTMED)
12 C *** DEFINITION OF THE GEOMETRY OF THE ITS ***
13 C *** RB APR-1990 CATANIA ***
16 C ORIGIN : ROBERTO BARBERA
18 #undef CERNLIB_GEANT321_GCONSP_INC
19 #include "geant321/gconsp.inc"
23 DIMENSION IDROTM(5250)
25 CHARACTER*4 NATRA(8),NATRA1(16),NATRA2(6),NATRA3(6),NATRA4(16)
27 REAL*8 BIGA,BIGB,BIGA1,BIGB1
28 REAL*8 COEFFA,COEFFB,COEFFC
29 REAL*8 XCC1,YCC1,XCC2,YCC2
31 DIMENSION DITS(3),DBUS(3),DCHI(3)
32 DIMENSION DSUP(3),DTUB(3),DWAT(3)
33 DIMENSION DCEI(3),DFRA(10)
34 DIMENSION DAL1(3),DAL2(3),DKAP(3)
35 DIMENSION DPCB(3),DCOP(3),DCER(3),DSIL(3)
36 DIMENSION DPLA(3),DEPX(3)
38 DIMENSION XX(13),YY(13),XBEG(12),YBEG(12),XEND(12),YEND(12)
39 DIMENSION DARC(5),XARC(12),YARC(12),RARC(12)
40 DIMENSION DTRA(3),DTRA1(3),DTRA2(3),DTRA3(3),DTRA4(3)
41 DIMENSION XTRA(8),YTRA(8),ZTRA(8)
42 DIMENSION XTRA1(6),YTRA1(6),ZTRA1(6)
43 DIMENSION DCONE(5),DTUBE(3),DPGON(10)
44 DIMENSION DBOX1(3),DBOX2(3),DSRV(3),DELA(3)
46 DATA NATRA/'TR01','TR02','TR03','TR04','TR05','TR06','TR07',
48 DATA NATRA1/'TR11','TR12','TR13','TR14','TR15','TR16','TR17',
49 $ 'TR18','TR19','TR20','TR21','TR22','TR23','TR24',
51 DATA NATRA2/'TR31','TR32','TR33','TR34','TR35','TR36'/
52 DATA NATRA3/'TR41','TR42','TR43','TR44','TR45','TR46'/
53 DATA NATRA4/'TR51','TR52','TR53','TR54','TR55','TR56','TR57',
54 $ 'TR58','TR59','TR60','TR61','TR62','TR63','TR64',
57 DATA XX/0.,0.,-4.824,-4.833,-22.167,-22.585,-28.070,-27.626,
58 $ -38.139,-19.749,-13.449,-14.726,0./
59 DATA YY/0.,34.028,34.064,32.594,29.984,30.914,29.180,27.777,
60 $ 22.522,-7.918,-4.769,-2.216,0./
61 DATA XBEG/0.,-0.497,-4.827,-5.425,-22.395,-23.009,-27.919,
62 $ -28.161,-37.859,-19.337,-13.673,-13.773/
63 DATA YBEG/0.430,34.032,33.564,32.505,30.493,30.781,28.702,
64 $ 27.509,22.058,-7.711,-4.322,-2.073/
65 DATA XEND/0.,-4.323,-4.830,-21.643,-22.395,-27.593,-27.807,
66 $ -37.655,-19.988,-13.897,-14.294,-0.425/
67 DATA YEND/33.531,34.060,33.192,30.064,30.493,29.330,28.347,
68 $ 22.764,-7.523,-4.992,-3.077,-0.064/
69 DATA XARC/-19.560,-14.120,-13.669,-0.500,-0.500,-4.327,-5.529,
70 $ -21.746,-22.858,-27.442,-28.474,-37.431/
71 DATA YARC/-7.264,-4.545,-2.765,0.431,33.531,33.560,33.197,
72 $ 30.756,30.304,28.854,28.136,22.316/
73 DATA RARC/0.5,0.5,0.7,0.5,0.5,0.5,0.7,0.7,0.5,0.5,0.7,0.5/
75 DATA RR,TTETA,PPHI,GTETA/4.08332,63.,-27.,89.4/ ! 89.4 = 90.-0.6
77 C --- Define ghost volume containing the whole ITS and fill it with air
95 CALL GSVOLU('ITSV','PCON',IDTMED(276),DGH,15,IOUT)
97 C --- Place the ghost volume in its mother volume (ALIC) and make it
100 CALL GSPOS('ITSV',1,'ALIC',0.,0.,0.,0,'ONLY')
101 CALL GSATT('ITSV','SEEN',0)
103 C ************************************************************************
108 C ************************************************************************
110 C GOTO 2345 ! skip ITS layer no. 1 and 2
112 C --- Define ghost volume containing the Pixel Detectors and fill it with air
115 XXM=(49.999-3.)/(70.-25.)
119 DGH(4)=-25.-(9.-3.01)/XXM
128 DGH(13)=25.+(9.-3.01)/XXM
131 CALL GSVOLU('IT12','PCON',IDTMED(276),DGH,15,IOUT)
133 C --- Place the ghost volume in its mother volume (ITSV) and make it
136 CALL GSPOS('IT12',1,'ITSV',0.,0.,0.,0,'ONLY')
137 CALL GSATT('IT12','SEEN',0)
139 C --- Define a ghost volume containing a single element of layer #1
140 C and fill it with air or vacuum
142 DBOX1(1)=0.005+0.01+0.0075
145 CALL GSVOLU('IPV1','BOX ',IDTMED(204),DBOX1,3,IOUT)
147 C --- Divide each element of layer #1 in three ladders along the beam direction
149 CALL GSDVN('IPB1','IPV1',3,3)
151 C --- Make the ghost volumes invisible
153 CALL GSATT('IPV1','SEEN',0)
154 CALL GSATT('IPB1','SEEN',0)
156 C --- Define a volume containing the chip of pixels (silicon, layer #1)
161 CALL GSVOLU('ICH1','BOX ',IDTMED(201),DCHI,3,IOUT)
163 C --- Define a volume containing the bus of pixels (silicon, layer #1)
168 CALL GSVOLU('IBU1','BOX ',IDTMED(202),DBUS,3,IOUT)
170 C --- Define a volume containing the sensitive part of pixels
171 C (silicon, layer #1)
176 CALL GSVOLU('ITS1','BOX ',IDTMED(200),DITS,3,IOUT)
178 C --- Place the chip into its mother (IPB1)
180 XPOS=DBOX1(1)-DCHI(1)
183 CALL GSPOS('ICH1',1,'IPB1',XPOS,YPOS,ZPOS,0,'ONLY')
185 C --- Place the sensitive volume into its mother (IPB1)
187 XPOS=DBOX1(1)-2.*DCHI(1)-DITS(1)
189 ZPOS=-(DCHI(3)-DITS(3))
190 CALL GSPOS('ITS1',1,'IPB1',XPOS,YPOS,ZPOS,0,'ONLY')
192 C --- Place the bus into its mother (IPB1)
194 XPOS=DBOX1(1)-2.*DCHI(1)-2.*DITS(1)-DBUS(1)
196 ZPOS=-(DCHI(3)-DBUS(3))
197 CALL GSPOS('IBU1',1,'IPB1',XPOS,YPOS,ZPOS,0,'ONLY')
199 C --- Define a ghost volume containing a single element of layer #2
200 C and fill it with air or vacuum
202 DBOX2(1)=0.005+0.01+0.0075
205 CALL GSVOLU('IPV2','BOX ',IDTMED(204),DBOX2,3,IOUT)
207 C --- Divide each element of layer #2 in four ladders along the beam direction
209 CALL GSDVN('IPB2','IPV2',4,3)
211 C --- Make the ghost volumes invisible
213 CALL GSATT('IPV2','SEEN',0)
214 CALL GSATT('IPB2','SEEN',0)
216 C --- Define a volume containing the chip of pixels (silicon, layer #2)
221 CALL GSVOLU('ICH2','BOX ',IDTMED(201),DCHI,3,IOUT)
223 C --- Define a volume containing the bus of pixels (silicon, layer #2)
228 CALL GSVOLU('IBU2','BOX ',IDTMED(202),DBUS,3,IOUT)
230 C --- Define a volume containing the sensitive part of pixels
231 C (silicon, layer #2)
236 CALL GSVOLU('ITS2','BOX ',IDTMED(200),DITS,3,IOUT)
238 C --- Place the chip into its mother (IPB2)
240 XPOS=DBOX1(1)-2.*DBUS(1)-2.*DITS(1)-DCHI(1)
243 CALL GSPOS('ICH2',1,'IPB2',XPOS,YPOS,ZPOS,0,'ONLY')
245 C --- Place the sensitive volume into its mother (IPB2)
247 XPOS=DBOX1(1)-2.*DBUS(1)-DITS(1)
248 YPOS=-(DCHI(2)-DITS(2))
249 ZPOS=-(DCHI(3)-DITS(3))
250 CALL GSPOS('ITS2',1,'IPB2',XPOS,YPOS,ZPOS,0,'ONLY')
252 C --- Place the bus into its mother (IPB2)
254 XPOS=DBOX1(1)-DBUS(1)
255 YPOS=-(DCHI(2)-DBUS(2))
256 ZPOS=-(DCHI(3)-DBUS(3))
257 CALL GSPOS('IBU2',1,'IPB2',XPOS,YPOS,ZPOS,0,'ONLY')
259 C --- Define a generic segment of an element of the mechanical support
264 CALL GSVOLU('SPIX','BOX ',IDTMED(203),DSUP,0,IOUT)
266 C --- Define a generic arc of an element of the mechanical support
271 CALL GSVOLU('SARC','TUBS',IDTMED(203),DARC,0,IOUT)
273 C --- Define the mechanical supports of layers #1 and #2 and place the
274 C elements of the layers in it
276 JBOX1=0 ! counter over the number of elements of layer #1 (1-20)
277 JBOX2=0 ! counter over the number of elements of layer #2 (1-40)
279 DO I=1,10 ! number of carbon fiber supports (see sketch)
281 C --- Place part # 1-2 (see sketch)
285 DSUP(2)=SQRT((XEND(1)-XBEG(1))*(XEND(1)-XBEG(1))+
286 $ (YEND(1)-YBEG(1))*(YEND(1)-YBEG(1)))/20.
288 XCC=(XX(1)+XX(2))/20.
289 YCC=(YY(1)+YY(2))/20.
290 XCCC=(XBEG(1)+XEND(1))/20.
291 YCCC=(YBEG(1)+YEND(1))/20.
292 IF(XX(1).EQ.XX(2)) THEN
295 OFFSET2=ATG(YY(2)-YY(1),XX(2)-XX(1))*RADDEG-90.
297 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
298 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
299 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
300 XPOS1=XCCC*COS(APHI)-YCCC*SIN(APHI)+XZERO
301 YPOS1=XCCC*SIN(APHI)+YCCC*COS(APHI)+YZERO
302 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
303 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
305 ATHETA12=FLOAT(I-1)*36.+OFFSET1+OFFSET2-GTETA
306 CALL SXSROT(IDROTM(1100+(I-1)*13+1),90.,ATHETA12,90.,
307 $ 90.+ATHETA12,0.,0.)
308 CALL GSPOSP('SPIX',(I-1)*13+1,'IT12',XPOS,YPOS,ZPOS,IDROTM(
309 $ 1100+(I-1)*13+1),'ONLY',DSUP,3)
311 C --- Place part # 2-3 (see sketch)
315 DSUP(2)=SQRT((XEND(2)-XBEG(2))*(XEND(2)-XBEG(2))+
316 $ (YEND(2)-YBEG(2))*(YEND(2)-YBEG(2)))/20.
318 XCC=(XX(2)+XX(3))/20.
319 YCC=(YY(2)+YY(3))/20.
320 XCCC=(XBEG(2)+XEND(2))/20.
321 YCCC=(YBEG(2)+YEND(2))/20.
322 IF(XX(2).EQ.XX(3)) THEN
325 OFFSET2=ATG(YY(3)-YY(2),XX(3)-XX(2))*RADDEG-90.
327 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
328 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
329 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
330 XPOS1=XCCC*COS(APHI)-YCCC*SIN(APHI)+XZERO
331 YPOS1=XCCC*SIN(APHI)+YCCC*COS(APHI)+YZERO
332 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
333 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
335 ATHETA23=FLOAT(I-1)*36.+OFFSET1+OFFSET2-GTETA
336 CALL SXSROT(IDROTM(1100+(I-1)*13+2),90.,ATHETA23,90.,
337 $ 90.+ATHETA23,0.,0.)
338 CALL GSPOSP('SPIX',(I-1)*13+2,'IT12',XPOS,YPOS,ZPOS,IDROTM(
339 $ 1100+(I-1)*13+2),'ONLY',DSUP,3)
341 C --- Place an element of layer #2
343 BIGA=(YY(3)-YY(2))/(XX(3)-XX(2))
344 BIGB=(XX(3)*YY(2)-XX(2)*YY(3))/(XX(3)-XX(2))/10.
345 COEFFA=(BIGA*BIGA+1.)
346 COEFFB=(BIGA*BIGB-BIGA*YCC-XCC)
347 COEFFC=(XCC*XCC+YCC*YCC-2.*YCC*BIGB+BIGB*BIGB-0.04713*0.04713)
348 XCC1=(-COEFFB+SQRT(COEFFB*COEFFB-COEFFA*COEFFC))/COEFFA
351 BIGB1=(XCC1/BIGA+YCC1)
352 COEFFA=(BIGA1*BIGA1+1.)
353 COEFFB=(BIGA1*BIGB1-BIGA1*YCC1-XCC1)
354 COEFFC=(XCC1*XCC1+YCC1*YCC1-2.*YCC1*BIGB1+BIGB1*BIGB1-
355 $ (DSUP(1)+DBOX2(1))*(DSUP(1)+DBOX2(1)))
356 XCC2=(-COEFFB+SQRT(COEFFB*COEFFB-COEFFA*COEFFC))/COEFFA
357 YCC2=BIGA1*XCC2+BIGB1
358 XPOS1=XCC2*COS(APHI)-YCC2*SIN(APHI)+XZERO
359 YPOS1=XCC2*SIN(APHI)+YCC2*COS(APHI)+YZERO
360 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
361 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
364 CALL GSPOS('IPV2',JBOX2,'IT12',XPOS,YPOS,ZPOS,IDROTM(
365 $ 1100+(I-1)*13+2),'ONLY')
367 C --- Place part # 3-4 (see sketch)
371 DSUP(2)=SQRT((XEND(3)-XBEG(3))*(XEND(3)-XBEG(3))+
372 $ (YEND(3)-YBEG(3))*(YEND(3)-YBEG(3)))/20.
374 XCC=(XX(2)+XX(3))/20.
375 YCC=(YY(2)+YY(3))/20.
376 XCCC=(XBEG(3)+XEND(3))/20.
377 YCCC=(YBEG(3)+YEND(3))/20.
378 IF(XX(3).EQ.XX(4)) THEN
381 OFFSET2=ATG(YY(4)-YY(3),XX(4)-XX(3))*RADDEG-90.
383 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
384 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
385 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
386 XPOS1=XCCC*COS(APHI)-YCCC*SIN(APHI)+XZERO
387 YPOS1=XCCC*SIN(APHI)+YCCC*COS(APHI)+YZERO
388 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
389 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
391 ATHETA34=FLOAT(I-1)*36.+OFFSET1+OFFSET2-GTETA
392 CALL SXSROT(IDROTM(1100+(I-1)*13+3),90.,ATHETA34,90.,
393 $ 90.+ATHETA34,0.,0.)
394 CALL GSPOSP('SPIX',(I-1)*13+3,'IT12',XPOS,YPOS,ZPOS,IDROTM(
395 $ 1100+(I-1)*13+3),'ONLY',DSUP,3)
397 C --- Place part # 4-5 (see sketch)
401 DSUP(2)=SQRT((XEND(4)-XBEG(4))*(XEND(4)-XBEG(4))+
402 $ (YEND(4)-YBEG(4))*(YEND(4)-YBEG(4)))/20.
404 XCC=(XX(4)+XX(5))/20.
405 YCC=(YY(4)+YY(5))/20.
406 XCCC=(XBEG(4)+XEND(4))/20.
407 YCCC=(YBEG(4)+YEND(4))/20.
408 IF(XX(4).EQ.XX(5)) THEN
411 OFFSET2=ATG(YY(5)-YY(4),XX(5)-XX(4))*RADDEG-90.
413 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
414 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
415 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
416 XPOS1=XCCC*COS(APHI)-YCCC*SIN(APHI)+XZERO
417 YPOS1=XCCC*SIN(APHI)+YCCC*COS(APHI)+YZERO
418 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
419 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
421 ATHETA45=FLOAT(I-1)*36.+OFFSET1+OFFSET2-GTETA
422 CALL SXSROT(IDROTM(1100+(I-1)*13+4),90.,ATHETA45,90.,
423 $ 90.+ATHETA45,0.,0.)
424 CALL GSPOSP('SPIX',(I-1)*13+4,'IT12',XPOS,YPOS,ZPOS,IDROTM(
425 $ 1100+(I-1)*13+4),'ONLY',DSUP,3)
427 C --- Place an element of layer #2
429 BIGA=(YY(5)-YY(4))/(XX(5)-XX(4))
430 BIGB=(XX(5)*YY(4)-XX(4)*YY(5))/(XX(5)-XX(4))/10.
431 COEFFA=(BIGA*BIGA+1.)
432 COEFFB=(BIGA*BIGB-BIGA*YCC-XCC)
433 COEFFC=(XCC*XCC+YCC*YCC-2.*YCC*BIGB+BIGB*BIGB-0.*0.)
437 BIGB1=(XCC1/BIGA+YCC1)
438 COEFFA=(BIGA1*BIGA1+1.)
439 COEFFB=(BIGA1*BIGB1-BIGA1*YCC1-XCC1)
440 COEFFC=(XCC1*XCC1+YCC1*YCC1-2.*YCC1*BIGB1+BIGB1*BIGB1-
441 $ (DSUP(1)+DBOX2(1))*(DSUP(1)+DBOX2(1)))
442 XCC2=(-COEFFB-SQRT(COEFFB*COEFFB-COEFFA*COEFFC))/COEFFA
443 YCC2=BIGA1*XCC2+BIGB1
444 XPOS1=XCC2*COS(APHI)-YCC2*SIN(APHI)+XZERO
445 YPOS1=XCC2*SIN(APHI)+YCC2*COS(APHI)+YZERO
446 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
447 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
450 CALL GSPOS('IPV2',JBOX2,'IT12',XPOS,YPOS,ZPOS,IDROTM(
451 $ 1100+(I-1)*13+4),'ONLY')
453 C --- Place part # 5-6 (see sketch)
457 DSUP(2)=SQRT((XEND(5)-XBEG(5))*(XEND(5)-XBEG(5))+
458 $ (YEND(5)-YBEG(5))*(YEND(5)-YBEG(5)))/20.
460 XCC=(XX(5)+XX(6))/20.
461 YCC=(YY(5)+YY(6))/20.
462 XCCC=(XBEG(5)+XEND(5))/20.
463 YCCC=(YBEG(5)+YEND(5))/20.
464 IF(XX(5).EQ.XX(6)) THEN
467 OFFSET2=ATG(YY(6)-YY(5),XX(6)-XX(5))*RADDEG-90.
469 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
470 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
471 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
472 XPOS1=XCCC*COS(APHI)-YCCC*SIN(APHI)+XZERO
473 YPOS1=XCCC*SIN(APHI)+YCCC*COS(APHI)+YZERO
474 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
475 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
477 ATHETA56=FLOAT(I-1)*36.+OFFSET1+OFFSET2-GTETA
478 CALL SXSROT(IDROTM(1100+(I-1)*13+5),90.,ATHETA56,90.,
479 $ 90.+ATHETA56,0.,0.)
480 CALL GSPOSP('SPIX',(I-1)*13+5,'IT12',XPOS,YPOS,ZPOS,IDROTM(
481 $ 1100+(I-1)*13+5),'ONLY',DSUP,3)
483 C --- Place part # 6-7 (see sketch)
487 DSUP(2)=SQRT((XEND(6)-XBEG(6))*(XEND(6)-XBEG(6))+
488 $ (YEND(6)-YBEG(6))*(YEND(6)-YBEG(6)))/20.
490 XCC=(XX(6)+XX(7))/20.
491 YCC=(YY(6)+YY(7))/20.
492 XCCC=(XBEG(6)+XEND(6))/20.
493 YCCC=(YBEG(6)+YEND(6))/20.
494 IF(XX(6).EQ.XX(7)) THEN
497 OFFSET2=ATG(YY(7)-YY(6),XX(7)-XX(6))*RADDEG-90.
499 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
500 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
501 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
502 XPOS1=XCCC*COS(APHI)-YCCC*SIN(APHI)+XZERO
503 YPOS1=XCCC*SIN(APHI)+YCCC*COS(APHI)+YZERO
504 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
505 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
507 ATHETA67=FLOAT(I-1)*36.+OFFSET1+OFFSET2-GTETA
508 CALL SXSROT(IDROTM(1100+(I-1)*13+6),90.,ATHETA67,90.,
509 $ 90.+ATHETA67,0.,0.)
510 CALL GSPOSP('SPIX',(I-1)*13+6,'IT12',XPOS,YPOS,ZPOS,IDROTM(
511 $ 1100+(I-1)*13+6),'ONLY',DSUP,3)
513 C --- Place an element of layer #2
515 BIGA=(YY(7)-YY(6))/(XX(7)-XX(6))
516 BIGB=(XX(7)*YY(6)-XX(6)*YY(7))/(XX(7)-XX(6))/10.
517 COEFFA=(BIGA*BIGA+1.)
518 COEFFB=(BIGA*BIGB-BIGA*YCC-XCC)
519 COEFFC=(XCC*XCC+YCC*YCC-2.*YCC*BIGB+BIGB*BIGB-0.*0.)
523 BIGB1=(XCC1/BIGA+YCC1)
524 COEFFA=(BIGA1*BIGA1+1.)
525 COEFFB=(BIGA1*BIGB1-BIGA1*YCC1-XCC1)
526 COEFFC=(XCC1*XCC1+YCC1*YCC1-2.*YCC1*BIGB1+BIGB1*BIGB1-
527 $ (DSUP(1)+DBOX2(1))*(DSUP(1)+DBOX2(1)))
528 XCC2=(-COEFFB-DSQRT(COEFFB*COEFFB-COEFFA*COEFFC))/COEFFA
529 YCC2=BIGA1*XCC2+BIGB1
530 XPOS1=XCC2*COS(APHI)-YCC2*SIN(APHI)+XZERO
531 YPOS1=XCC2*SIN(APHI)+YCC2*COS(APHI)+YZERO
532 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
533 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
536 CALL GSPOS('IPV2',JBOX2,'IT12',XPOS,YPOS,ZPOS,IDROTM(
537 $ 1100+(I-1)*13+6),'ONLY')
539 C --- Place part # 7-8 (see sketch)
543 DSUP(2)=SQRT((XEND(7)-XBEG(7))*(XEND(7)-XBEG(7))+
544 $ (YEND(7)-YBEG(7))*(YEND(7)-YBEG(7)))/20.
546 XCC=(XX(7)+XX(8))/20.
547 YCC=(YY(7)+YY(8))/20.
548 XCCC=(XBEG(7)+XEND(7))/20.
549 YCCC=(YBEG(7)+YEND(7))/20.
550 IF(XX(7).EQ.XX(8)) THEN
553 OFFSET2=ATG(YY(8)-YY(7),XX(8)-XX(7))*RADDEG-90.
555 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
556 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
557 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
558 XPOS1=XCCC*COS(APHI)-YCCC*SIN(APHI)+XZERO
559 YPOS1=XCCC*SIN(APHI)+YCCC*COS(APHI)+YZERO
560 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
561 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
563 ATHETA78=FLOAT(I-1)*36.+OFFSET1+OFFSET2-GTETA
564 CALL SXSROT(IDROTM(1100+(I-1)*13+7),90.,ATHETA78,90.,
565 $ 90.+ATHETA78,0.,0.)
566 CALL GSPOSP('SPIX',(I-1)*13+7,'IT12',XPOS,YPOS,ZPOS,IDROTM(
567 $ 1100+(I-1)*13+7),'ONLY',DSUP,3)
569 C --- Place part # 8-9 (see sketch)
573 DSUP(2)=SQRT((XEND(8)-XBEG(8))*(XEND(8)-XBEG(8))+
574 $ (YEND(8)-YBEG(8))*(YEND(8)-YBEG(8)))/20.
576 XCC=(XX(8)+XX(9))/20.
577 YCC=(YY(8)+YY(9))/20.
578 XCCC=(XBEG(8)+XEND(8))/20.
579 YCCC=(YBEG(8)+YEND(8))/20.
580 IF(XX(2).EQ.XX(3)) THEN
583 OFFSET2=ATG(YY(9)-YY(8),XX(9)-XX(8))*RADDEG-90.
585 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
586 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
587 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
588 XPOS1=XCCC*COS(APHI)-YCCC*SIN(APHI)+XZERO
589 YPOS1=XCCC*SIN(APHI)+YCCC*COS(APHI)+YZERO
590 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
591 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
593 ATHETA89=FLOAT(I-1)*36.+OFFSET1+OFFSET2-GTETA
594 CALL SXSROT(IDROTM(1100+(I-1)*13+8),90.,ATHETA89,90.,
595 $ 90.+ATHETA89,0.,0.)
596 CALL GSPOSP('SPIX',(I-1)*13+8,'IT12',XPOS,YPOS,ZPOS,IDROTM(
597 $ 1100+(I-1)*13+8),'ONLY',DSUP,3)
599 C --- Place an element of layer #2
601 BIGA=(YY(9)-YY(8))/(XX(9)-XX(8))
602 BIGB=(XX(9)*YY(8)-XX(8)*YY(9))/(XX(9)-XX(8))/10.
603 COEFFA=(BIGA*BIGA+1.)
604 COEFFB=(BIGA*BIGB-BIGA*YCC-XCC)
605 COEFFC=(XCC*XCC+YCC*YCC-2.*YCC*BIGB+BIGB*BIGB-0.23564*0.23564)
606 XCC1=(-COEFFB-SQRT(COEFFB*COEFFB-COEFFA*COEFFC))/COEFFA
609 BIGB1=(XCC1/BIGA+YCC1)
610 COEFFA=(BIGA1*BIGA1+1.)
611 COEFFB=(BIGA1*BIGB1-BIGA1*YCC1-XCC1)
612 COEFFC=(XCC1*XCC1+YCC1*YCC1-2.*YCC1*BIGB1+BIGB1*BIGB1-
613 $ (DSUP(1)+DBOX2(1))*(DSUP(1)+DBOX2(1)))
614 XCC2=(-COEFFB-SQRT(COEFFB*COEFFB-COEFFA*COEFFC))/COEFFA
615 YCC2=BIGA1*XCC2+BIGB1
616 XPOS1=XCC2*COS(APHI)-YCC2*SIN(APHI)+XZERO
617 YPOS1=XCC2*SIN(APHI)+YCC2*COS(APHI)+YZERO
618 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
619 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
622 CALL GSPOS('IPV2',JBOX2,'IT12',XPOS,YPOS,ZPOS,IDROTM(
623 $ 1100+(I-1)*13+8),'ONLY')
625 C --- Place part # 9-10 (see sketch)
629 DSUP(2)=SQRT((XEND(9)-XBEG(9))*(XEND(9)-XBEG(9))+
630 $ (YEND(9)-YBEG(9))*(YEND(9)-YBEG(9)))/20.
632 XCC=(XX(9)+XX(10))/20.
633 YCC=(YY(9)+YY(10))/20.
634 XCCC=(XBEG(9)+XEND(9))/20.
635 YCCC=(YBEG(9)+YEND(9))/20.
636 IF(XX(9).EQ.XX(10)) THEN
639 OFFSET2=ATG(YY(10)-YY(9),XX(10)-XX(9))*RADDEG-90.
641 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
642 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
643 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
644 XPOS1=XCCC*COS(APHI)-YCCC*SIN(APHI)+XZERO
645 YPOS1=XCCC*SIN(APHI)+YCCC*COS(APHI)+YZERO
646 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
647 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
649 ATHETA910=FLOAT(I-1)*36.+OFFSET1+OFFSET2-GTETA
650 CALL SXSROT(IDROTM(1100+(I-1)*13+9),90.,ATHETA910,90.,
651 $ 90.+ATHETA910,0.,0.)
652 CALL GSPOSP('SPIX',(I-1)*13+9,'IT12',XPOS,YPOS,ZPOS,IDROTM(
653 $ 1100+(I-1)*13+9),'ONLY',DSUP,3)
655 C --- Place part # 12-13 (see sketch)
659 DSUP(2)=SQRT((XEND(12)-XBEG(12))*(XEND(12)-XBEG(12))+
660 $ (YEND(12)-YBEG(12))*(YEND(12)-YBEG(12)))/20.
662 XCC=(XX(12)+XX(13))/20.
663 YCC=(YY(12)+YY(13))/20.
664 XCCC=(XBEG(12)+XEND(12))/20.
665 YCCC=(YBEG(12)+YEND(12))/20.
666 IF(XX(12).EQ.XX(13)) THEN
669 OFFSET2=ATG(YY(13)-YY(12),XX(13)-XX(12))*RADDEG-90.
671 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
672 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
673 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
674 XPOS1=XCCC*COS(APHI)-YCCC*SIN(APHI)+XZERO
675 YPOS1=XCCC*SIN(APHI)+YCCC*COS(APHI)+YZERO
676 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
677 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
679 ATHETA1213=FLOAT(I-1)*36.+OFFSET1+OFFSET2-GTETA
680 CALL SXSROT(IDROTM(1100+(I-1)*13+12),270.,ATHETA1213,90.,
681 $ 270.+ATHETA1213,0.,0.)
682 CALL GSPOSP('SPIX',(I-1)*13+12,'IT12',XPOS,YPOS,ZPOS,IDROTM(
683 $ 1100+(I-1)*13+12),'ONLY',DSUP,3)
685 C --- Place an element of layer #1
687 BIGA=(YY(13)-YY(12))/(XX(13)-XX(12))
688 BIGB=(XX(13)*YY(12)-XX(12)*YY(13))/(XX(13)-XX(12))/10.
689 COEFFA=(BIGA*BIGA+1.)
690 COEFFB=(BIGA*BIGB-BIGA*YCC-XCC)
691 COEFFC=(XCC*XCC+YCC*YCC-2.*YCC*BIGB+BIGB*BIGB-0.12567*0.12567)
692 XCC1=(-COEFFB+SQRT(COEFFB*COEFFB-COEFFA*COEFFC))/COEFFA
695 BIGB1=(XCC1/BIGA+YCC1)
696 COEFFA=(BIGA1*BIGA1+1.)
697 COEFFB=(BIGA1*BIGB1-BIGA1*YCC1-XCC1)
698 COEFFC=(XCC1*XCC1+YCC1*YCC1-2.*YCC1*BIGB1+BIGB1*BIGB1-
699 $ (DSUP(1)+DBOX1(1))*(DSUP(1)+DBOX1(1)))
700 XCC2=(-COEFFB+SQRT(COEFFB*COEFFB-COEFFA*COEFFC))/COEFFA
701 YCC2=BIGA1*XCC2+BIGB1
702 XPOS1=XCC2*COS(APHI)-YCC2*SIN(APHI)+XZERO
703 YPOS1=XCC2*SIN(APHI)+YCC2*COS(APHI)+YZERO
704 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
705 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
708 CALL GSPOS('IPV1',JBOX1,'IT12',XPOS,YPOS,ZPOS,IDROTM(
709 $ 1100+(I-1)*13+12),'ONLY')
711 C --- Place part # 11-12 (see sketch)
715 DSUP(2)=SQRT((XEND(11)-XBEG(11))*(XEND(11)-XBEG(11))+
716 $ (YEND(11)-YBEG(11))*(YEND(11)-YBEG(11)))/20.
718 XCC=(XX(11)+XX(12))/20.
719 YCC=(YY(11)+YY(12))/20.
720 XCCC=(XBEG(11)+XEND(11))/20.
721 YCCC=(YBEG(11)+YEND(11))/20.
722 IF(XX(11).EQ.XX(12)) THEN
725 OFFSET2=ATG(YY(12)-YY(11),XX(12)-XX(11))*RADDEG-90.
727 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
728 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
729 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
730 XPOS1=XCCC*COS(APHI)-YCCC*SIN(APHI)+XZERO
731 YPOS1=XCCC*SIN(APHI)+YCCC*COS(APHI)+YZERO
732 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
733 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
735 ATHETA1112=FLOAT(I-1)*36.+OFFSET1+OFFSET2-GTETA
736 CALL SXSROT(IDROTM(1100+(I-1)*13+11),90.,ATHETA1112,90.,
737 $ 90.+ATHETA1112,0.,0.)
738 CALL GSPOSP('SPIX',(I-1)*13+11,'IT12',XPOS,YPOS,ZPOS,IDROTM(
739 $ 1100+(I-1)*13+11),'ONLY',DSUP,3)
741 C --- Place part # 10-11 (see sketch)
745 DSUP(2)=SQRT((XEND(10)-XBEG(10))*(XEND(10)-XBEG(10))+
746 $ (YEND(10)-YBEG(10))*(YEND(10)-YBEG(10)))/20.
748 XCC=(XX(10)+XX(11))/20.
749 YCC=(YY(10)+YY(11))/20.
750 XCCC=(XBEG(10)+XEND(10))/20.
751 YCCC=(YBEG(10)+YEND(10))/20.
752 IF(XX(10).EQ.XX(11)) THEN
755 OFFSET2=ATG(YY(11)-YY(10),XX(11)-XX(10))*RADDEG-90.
757 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
758 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
759 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
760 XPOS1=XCCC*COS(APHI)-YCCC*SIN(APHI)+XZERO
761 YPOS1=XCCC*SIN(APHI)+YCCC*COS(APHI)+YZERO
762 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
763 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
765 ATHETA1011=FLOAT(I-1)*36.+OFFSET1+OFFSET2-GTETA
766 CALL SXSROT(IDROTM(1100+(I-1)*13+10),270.,ATHETA1011,90.,
767 $ 270.+ATHETA1011,0.,0.)
768 CALL GSPOSP('SPIX',(I-1)*13+10,'IT12',XPOS,YPOS,ZPOS,IDROTM(
769 $ 1100+(I-1)*13+10),'ONLY',DSUP,3)
771 C --- Place an element of layer #1
773 BIGA=(YY(11)-YY(10))/(XX(11)-XX(10))
774 BIGB=(XX(11)*YY(10)-XX(10)*YY(11))/(XX(11)-XX(10))/10.
775 COEFFA=(BIGA*BIGA+1.)
776 COEFFB=(BIGA*BIGB-BIGA*YCC-XCC)
777 COEFFC=(XCC*XCC+YCC*YCC-2.*YCC*BIGB+BIGB*BIGB-0.001*0.001)
778 XCC1=(-COEFFB-SQRT(COEFFB*COEFFB-COEFFA*COEFFC))/COEFFA
781 BIGB1=(XCC1/BIGA+YCC1)
782 COEFFA=(BIGA1*BIGA1+1.)
783 COEFFB=(BIGA1*BIGB1-BIGA1*YCC1-XCC1)
784 COEFFC=(XCC1*XCC1+YCC1*YCC1-2.*YCC1*BIGB1+BIGB1*BIGB1-
785 $ (DSUP(1)+DBOX1(1))*(DSUP(1)+DBOX1(1)))
786 XCC2=(-COEFFB+SQRT(COEFFB*COEFFB-COEFFA*COEFFC))/COEFFA
787 YCC2=BIGA1*XCC2+BIGB1
788 XPOS1=XCC2*COS(APHI)-YCC2*SIN(APHI)+XZERO
789 YPOS1=XCC2*SIN(APHI)+YCC2*COS(APHI)+YZERO
790 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
791 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
794 CALL GSPOS('IPV1',JBOX1,'IT12',XPOS,YPOS,ZPOS,IDROTM(
795 $ 1100+(I-1)*13+10),'ONLY')
797 C --- Place arc # 5 (between part 1-2 and part 2-3) (see sketch)
799 DARC(1)=RARC(5)/10.-0.02
802 DARC(4)=ATHETA12+90.-FLOAT(I-1)*(360./10.)
803 DARC(5)=ATHETA23+90.-FLOAT(I-1)*(360./10.)
806 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
807 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
808 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
809 XPOS1=XCC*COS(APHI)-YCC*SIN(APHI)+XZERO
810 YPOS1=XCC*SIN(APHI)+YCC*COS(APHI)+YZERO
811 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
812 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
814 CALL GSPOSP('SARC',(I-1)*13+5,'IT12',XPOS,YPOS,ZPOS,IDROTM(
815 $ 1100+(I-1)*13+5),'ONLY',DARC,5)
817 C --- Place arc # 6 (between part 2-3 and part 3-4) (see sketch)
819 DARC(1)=RARC(6)/10.-0.02
822 DARC(4)=ATHETA23-FLOAT(I-1)*(360./10.)
823 DARC(5)=ATHETA34-FLOAT(I-1)*(360./10.)
826 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
827 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
828 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
829 XPOS1=XCC*COS(APHI)-YCC*SIN(APHI)+XZERO
830 YPOS1=XCC*SIN(APHI)+YCC*COS(APHI)+YZERO
831 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
832 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
834 CALL GSPOSP('SARC',(I-1)*13+6,'IT12',XPOS,YPOS,ZPOS,IDROTM(
835 $ 1100+(I-1)*13+6),'ONLY',DARC,5)
837 C --- Place arc # 7 (between part 3-4 and part 4-5) (see sketch)
839 DARC(1)=RARC(7)/10.-0.02
842 DARC(4)=ATHETA45+90.-FLOAT(I-1)*(360./10.)
843 DARC(5)=ATHETA34+90.-FLOAT(I-1)*(360./10.)
846 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
847 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
848 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
849 XPOS1=XCC*COS(APHI)-YCC*SIN(APHI)+XZERO
850 YPOS1=XCC*SIN(APHI)+YCC*COS(APHI)+YZERO
851 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
852 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
854 CALL GSPOSP('SARC',(I-1)*13+7,'IT12',XPOS,YPOS,ZPOS,IDROTM(
855 $ 1100+(I-1)*13+7),'ONLY',DARC,5)
857 C --- Place arc # 8 (between part 4-5 and part 5-6) (see sketch)
859 DARC(1)=RARC(8)/10.-0.02
862 DARC(4)=ATHETA56+180.-FLOAT(I-1)*(360./10.)
863 DARC(5)=ATHETA45+180.-FLOAT(I-1)*(360./10.)
866 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
867 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
868 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
869 XPOS1=XCC*COS(APHI)-YCC*SIN(APHI)+XZERO
870 YPOS1=XCC*SIN(APHI)+YCC*COS(APHI)+YZERO
871 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
872 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
874 CALL GSPOSP('SARC',(I-1)*13+8,'IT12',XPOS,YPOS,ZPOS,IDROTM(
875 $ 1100+(I-1)*13+8),'ONLY',DARC,5)
877 C --- Place arc # 9 (between part 5-6 and part 6-7) (see sketch)
879 DARC(1)=RARC(9)/10.-0.02
882 DARC(4)=ATHETA56-90.-FLOAT(I-1)*(360./10.)
883 DARC(5)=ATHETA67-90.-FLOAT(I-1)*(360./10.)
886 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
887 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
888 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
889 XPOS1=XCC*COS(APHI)-YCC*SIN(APHI)+XZERO
890 YPOS1=XCC*SIN(APHI)+YCC*COS(APHI)+YZERO
891 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
892 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
894 CALL GSPOSP('SARC',(I-1)*13+9,'IT12',XPOS,YPOS,ZPOS,IDROTM(
895 $ 1100+(I-1)*13+9),'ONLY',DARC,5)
897 C --- Place arc # 10 (between part 6-7 and part 7-8) (see sketch)
899 DARC(1)=RARC(10)/10.-0.02
902 DARC(4)=ATHETA67-FLOAT(I-1)*(360./10.)
903 DARC(5)=ATHETA78-FLOAT(I-1)*(360./10.)
906 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
907 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
908 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
909 XPOS1=XCC*COS(APHI)-YCC*SIN(APHI)+XZERO
910 YPOS1=XCC*SIN(APHI)+YCC*COS(APHI)+YZERO
911 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
912 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
914 CALL GSPOSP('SARC',(I-1)*13+10,'IT12',XPOS,YPOS,ZPOS,IDROTM(
915 $ 1100+(I-1)*13+10),'ONLY',DARC,5)
917 C --- Place arc # 11 (between part 7-8 and part 8-9) (see sketch)
919 DARC(1)=RARC(11)/10.-0.02
922 DARC(4)=ATHETA89-90.-FLOAT(I-1)*(360./10.)
923 DARC(5)=ATHETA78-90.-FLOAT(I-1)*(360./10.)
926 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
927 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
928 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
929 XPOS1=XCC*COS(APHI)-YCC*SIN(APHI)+XZERO
930 YPOS1=XCC*SIN(APHI)+YCC*COS(APHI)+YZERO
931 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
932 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
934 CALL GSPOSP('SARC',(I-1)*13+11,'IT12',XPOS,YPOS,ZPOS,IDROTM(
935 $ 1100+(I-1)*13+11),'ONLY',DARC,5)
937 C --- Place arc # 12 (between part 8-9 and part 9-10) (see sketch)
939 DARC(1)=RARC(12)/10.-0.02
942 DARC(4)=ATHETA89-FLOAT(I-1)*(360./10.)
943 DARC(5)=ATHETA910-FLOAT(I-1)*(360./10.)
946 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
947 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
948 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
949 XPOS1=XCC*COS(APHI)-YCC*SIN(APHI)+XZERO
950 YPOS1=XCC*SIN(APHI)+YCC*COS(APHI)+YZERO
951 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
952 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
954 CALL GSPOSP('SARC',(I-1)*13+12,'IT12',XPOS,YPOS,ZPOS,IDROTM(
955 $ 1100+(I-1)*13+12),'ONLY',DARC,5)
957 C --- Place arc # 1 (between part 9-10 and part 10-11) (see sketch)
959 DARC(1)=RARC(1)/10.-0.02
962 DARC(4)=ATHETA1011+10.-FLOAT(I-1)*(360./10.)
963 DARC(5)=ATHETA910-120.-FLOAT(I-1)*(360./10.)
966 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
967 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
968 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
969 XPOS1=XCC*COS(APHI)-YCC*SIN(APHI)+XZERO
970 YPOS1=XCC*SIN(APHI)+YCC*COS(APHI)+YZERO
971 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
972 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
974 CALL GSPOSP('SARC',(I-1)*13+1,'IT12',XPOS,YPOS,ZPOS,IDROTM(
975 $ 1100+(I-1)*13+1),'ONLY',DARC,5)
977 C --- Place arc # 2 (between part 10-11 and part 11-12) (see sketch)
979 DARC(1)=RARC(2)/10.-0.02
982 DARC(4)=ATHETA1011-FLOAT(I-1)*(360./10.)
983 DARC(5)=ATHETA1112+45.-FLOAT(I-1)*(360./10.)
986 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
987 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
988 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
989 XPOS1=XCC*COS(APHI)-YCC*SIN(APHI)+XZERO
990 YPOS1=XCC*SIN(APHI)+YCC*COS(APHI)+YZERO
991 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
992 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
994 CALL GSPOSP('SARC',(I-1)*13+2,'IT12',XPOS,YPOS,ZPOS,IDROTM(
995 $ 1100+(I-1)*13+2),'ONLY',DARC,5)
997 C --- Place arc # 3 (between part 11-12 and part 12-13) (see sketch)
999 DARC(1)=RARC(3)/10.-0.02
1002 DARC(4)=ATHETA1213+115.-FLOAT(I-1)*(360./10.)
1003 DARC(5)=ATHETA1112+115.-FLOAT(I-1)*(360./10.)
1006 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
1007 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
1008 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
1009 XPOS1=XCC*COS(APHI)-YCC*SIN(APHI)+XZERO
1010 YPOS1=XCC*SIN(APHI)+YCC*COS(APHI)+YZERO
1011 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
1012 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
1014 CALL GSPOSP('SARC',(I-1)*13+3,'IT12',XPOS,YPOS,ZPOS,IDROTM(
1015 $ 1100+(I-1)*13+3),'ONLY',DARC,5)
1017 C --- Place arc # 4 (between part 12-13 and part 1-2) (see sketch)
1019 DARC(1)=RARC(4)/10.-0.02
1022 DARC(4)=ATHETA1213-FLOAT(I-1)*(360./10.)
1023 DARC(5)=ATHETA12-FLOAT(I-1)*(360./10.)
1026 APHI=(PPHI+FLOAT(I-1)*36.)*DEGRAD
1027 XZERO=RR*COS((TTETA+FLOAT(I-1)*36.)*DEGRAD)
1028 YZERO=RR*SIN((TTETA+FLOAT(I-1)*36.)*DEGRAD)
1029 XPOS1=XCC*COS(APHI)-YCC*SIN(APHI)+XZERO
1030 YPOS1=XCC*SIN(APHI)+YCC*COS(APHI)+YZERO
1031 XPOS=XPOS1*COS(GTETA*DEGRAD)+YPOS1*SIN(GTETA*DEGRAD)
1032 YPOS=-XPOS1*SIN(GTETA*DEGRAD)+YPOS1*COS(GTETA*DEGRAD)
1034 CALL GSPOSP('SARC',(I-1)*13+4,'IT12',XPOS,YPOS,ZPOS,IDROTM(
1035 $ 1100+(I-1)*13+4),'ONLY',DARC,5)
1040 C ************************************************************************
1045 C ************************************************************************
1047 C --- Define a ghost volume containing the Silicon Drift Detectors
1048 C (layer #3 and #4) and fill it with air or vacuum
1050 XXM=(49.999-3.)/(70.-25.)
1054 DGH(4)=-25.-(9.-3.01)/XXM-(9.01-9.)/XXM-(27.-9.01)/XXM
1057 DGH(7)=-25.-(9.-3.01)/XXM-(9.01-9.)/XXM
1060 DGH(10)=25.+(9.-3.01)/XXM+(9.01-9.)/XXM
1063 DGH(13)=25.+(9.-3.01)/XXM+(9.01-9.)/XXM+(27.-9.01)/XXM
1066 CALL GSVOLU('IT34','PCON',IDTMED(276),DGH,15,IOUT)
1068 C --- Place the ghost volume in its mother volume (ITSV) and make it
1071 CALL GSPOS('IT34',1,'ITSV',0.,0.,0.,0,'ONLY')
1072 CALL GSATT('IT34','SEEN',0)
1076 C GOTO 3456 ! skip ITS layer no. 3
1078 C --- Define a ghost volume containing a single ladder of layer #3 (with the
1079 C smaller lenght of ribs) and fill it with air or vacuum
1081 DBOX1(1)=0.5+(0.0172+0.03+0.0252+0.04+0.003)
1082 DBOX1(2)=3.85 ! the widest element is the sensitive element
1083 DBOX1(3)=(8.7*5.-2.*1.+2.*0.1)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1084 CALL GSVOLU('IDV1','BOX ',IDTMED(229),DBOX1,3,IOUT)
1086 C --- Make the ghost volume invisible
1088 CALL GSATT('IDV1','SEEN',0)
1090 C --- Define a volume containing the sensitive part of drifts
1091 C (silicon, layer #3)
1093 DITS(1)=0.0172 ! see material budget report by G. Feofilov
1096 CALL GSVOLU('ITS3','BOX ',IDTMED(225),DITS,3,IOUT)
1098 C --- Define the part of the (smaller) rib between two sensitive parts made of
1103 DSUP(3)=(8.7*5.-2.*1.+2.*0.1)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1104 CALL GSVOLU('IR11','BOX ',IDTMED(228),DSUP,3,IOUT)
1106 C --- Define the first part of the (smaller) rib between two sensitive parts
1107 C made of aluminum (layer #3)
1111 DAL1(3)=(8.7*5.-2.*1.+2.*0.1)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1112 CALL GSVOLU('IR12','BOX ',IDTMED(231),DAL1,3,IOUT)
1114 C --- Define the part of the (smaller) rib between two sensitive parts made of
1119 DKAP(3)=(8.7*5.-2.*1.+2.*0.1)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1120 CALL GSVOLU('IR13','BOX ',IDTMED(237),DKAP,3,IOUT)
1122 C --- Define the second part of the (smaller) rib between two sensitive parts
1123 C made of aluminum (layer #3)
1127 DAL2(3)=(8.7*5.-2.*1.+2.*0.1)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1128 CALL GSVOLU('IR14','BOX ',IDTMED(231),DAL2,3,IOUT)
1130 C --- Define the part of the (smaller) rib between two sensitive parts
1131 C made of silicon (the electronics) (layer #3)
1135 DCHI(3)=(8.7*5.-2.*1.+2.*0.1)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1136 CALL GSVOLU('IR15','BOX ',IDTMED(226),DAL2,3,IOUT)
1138 C --- Define the part of the (smaller) rib between two sensitive parts
1139 C made of water (the cooler) (layer #3)
1143 DWAT(3)=(8.7*5.-2.*1.+2.*0.1)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1144 CALL GSVOLU('IR16','BOX ',IDTMED(232),DWAT,3,IOUT)
1146 C --- Define the third part of the (smaller) rib between two sensitive parts
1147 C made of aluminum (the cooling tubes) (layer #3)
1151 DTUB(3)=(8.7*5.-2.*1.+2.*0.1)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1152 CALL GSVOLU('IR17','BOX ',IDTMED(231),DTUB,3,IOUT)
1154 C --- Define the part of the end-ladder stuff made of PCB (layer #3)
1156 DPCB(1)=0.03 ! twice the foreseen thickness
1159 CALL GSVOLU('IEL1','BOX ',IDTMED(234),DPCB,3,IOUT)
1161 C --- Define the part of the end-ladder stuff made of copper (layer #3)
1163 DCOP(1)=0.0252 ! twice the foreseen thickness
1166 CALL GSVOLU('IEL2','BOX ',IDTMED(235),DCOP,3,IOUT)
1168 C --- Define the part of the end-ladder stuff made of ceramics (layer #3)
1170 DCER(1)=0.04 ! twice the foreseen thickness
1173 CALL GSVOLU('IEL3','BOX ',IDTMED(236),DCER,3,IOUT)
1175 C --- Define the part of the end-ladder stuff made of silicon (layer #3)
1177 DSIL(1)=0.003 ! twice the foreseen thickness
1180 CALL GSVOLU('IEL4','BOX ',IDTMED(227),DSIL,3,IOUT)
1182 C --- Place the sensitive part of the drifts (smaller ribs) into its mother
1186 DO J=1,5 ! odd elements are up and even elements are down
1188 XPOS=DBOX1(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-2.*DSIL(1)-
1190 ZPOS=0.-DITS(3)+1.-2.*DITS(3)-0.1-DITS(3)
1191 ELSE IF(J.EQ.2) THEN
1192 XPOS=-DBOX1(1)+DITS(1)
1193 ZPOS=0.-DITS(3)+1.-DITS(3)
1194 ELSE IF(J.EQ.3) THEN
1195 XPOS=DBOX1(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-2.*DSIL(1)-
1198 ELSE IF(J.EQ.4) THEN
1199 XPOS=-DBOX1(1)+DITS(1)
1200 ZPOS=0.+DITS(3)-1.+DITS(3)
1201 ELSE IF(J.EQ.5) THEN
1202 XPOS=DBOX1(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-2.*DSIL(1)-
1204 ZPOS=0.+DITS(3)-1.+2.*DITS(3)+0.1+DITS(3)
1206 CALL GSPOS('ITS3',J,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1209 C --- Place the smaller ribs into their mother (IDV1)
1211 C --- Right ribs (just a matter of convention)
1213 XPOS=0.5-DBOX1(1)+DITS(1)
1219 CALL GSPOS('IR11',1,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1223 YPOS=2.81+DSUP(2)+DAL1(2)
1224 CALL GSPOS('IR12',1,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1228 YPOS=2.81+DSUP(2)+2.*DAL1(2)+DKAP(2)
1229 CALL GSPOS('IR13',1,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1233 YPOS=2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+DAL2(2)
1234 CALL GSPOS('IR14',1,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1236 C --- Silicon (chip)
1238 YPOS=2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+DCHI(2)
1239 CALL GSPOS('IR15',1,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1243 YPOS=2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+2.*DCHI(2)+
1245 CALL GSPOS('IR16',1,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1249 YPOS=2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+2.*DCHI(2)+
1251 CALL GSPOS('IR17',1,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1253 C --- Right ribs (just a matter of convention)
1258 CALL GSPOS('IR11',2,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1262 YPOS=-(2.81+DSUP(2)+DAL1(2))
1263 CALL GSPOS('IR12',2,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1267 YPOS=-(2.81+DSUP(2)+2.*DAL1(2)+DKAP(2))
1268 CALL GSPOS('IR13',2,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1272 YPOS=-(2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+DAL2(2))
1273 CALL GSPOS('IR14',2,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1275 C --- Silicon (chip)
1277 YPOS=-(2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+DCHI(2))
1278 CALL GSPOS('IR15',2,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1282 YPOS=-(2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+2.*DCHI(2)+
1284 CALL GSPOS('IR16',2,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1288 YPOS=-(2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+2.*DCHI(2)+
1289 $2.*DWAT(2)+DTUB(2))
1290 CALL GSPOS('IR17',2,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1292 C --- Place the end-ladder stuff into its mother (IDV1)
1295 C --- Negative-Z end-ladder
1298 ZPOS=-(8.7*5.-2.*1.+2.*0.1)/2.-7.5
1302 XPOS=DBOX1(1)-DPCB(1)
1303 CALL GSPOS('IEL1',1,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1307 XPOS=DBOX1(1)-2.*DPCB(1)-DCOP(1)
1308 CALL GSPOS('IEL2',1,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1312 XPOS=DBOX1(1)-2.*DPCB(1)-2.*DCOP(1)-DCER(1)
1313 CALL GSPOS('IEL3',1,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1317 XPOS=DBOX1(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-DSIL(1)
1318 CALL GSPOS('IEL4',1,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1320 C --- Positive-Z end-ladder
1323 ZPOS=(8.7*5.-2.*1.+2.*0.1)/2.+7.5
1327 XPOS=DBOX1(1)-DPCB(1)
1328 CALL GSPOS('IEL1',2,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1332 XPOS=DBOX1(1)-2.*DPCB(1)-DCOP(1)
1333 CALL GSPOS('IEL2',2,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1337 XPOS=DBOX1(1)-2.*DPCB(1)-2.*DCOP(1)-DCER(1)
1338 CALL GSPOS('IEL3',2,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1342 XPOS=DBOX1(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-DSIL(1)
1343 CALL GSPOS('IEL4',2,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1345 C --- Define a ghost volume containing a single ladder of layer #3 (with the
1346 C larger lenght of ribs) and fill it with air or vacuum
1348 DBOX2(1)=0.65+(0.0172+0.03+0.0252+0.04+0.003)
1349 DBOX2(2)=3.85 ! the widest element is the sensitive element
1350 DBOX2(3)=(8.7*5.-2.*1.+2.*0.1)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1351 CALL GSVOLU('IDV2','BOX ',IDTMED(229),DBOX2,3,IOUT)
1353 C --- Make the ghost volume invisible
1355 CALL GSATT('IDV2','SEEN',0)
1357 C --- Define the part of the (larger) rib between two sensitive parts made of
1360 DSUP(1)=0.65-DITS(1)
1362 DSUP(3)=(8.7*5.-2.*1.+2.*0.1)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1363 CALL GSVOLU('IR21','BOX ',IDTMED(228),DSUP,3,IOUT)
1365 C --- Define the first part of the (larger) rib between two sensitive parts
1366 C made of aluminum (layer #3)
1368 DAL1(1)=0.65-DITS(1)
1370 DAL1(3)=(8.7*5.-2.*1.+2.*0.1)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1371 CALL GSVOLU('IR22','BOX ',IDTMED(231),DAL1,3,IOUT)
1373 C --- Define the part of the (larger) rib between two sensitive parts made of
1376 DKAP(1)=0.65-DITS(1)
1378 DKAP(3)=(8.7*5.-2.*1.+2.*0.1)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1379 CALL GSVOLU('IR23','BOX ',IDTMED(237),DKAP,3,IOUT)
1381 C --- Define the second part of the (larger) rib between two sensitive parts
1382 C made of aluminum (layer #3)
1384 DAL2(1)=0.65-DITS(1)
1386 DAL2(3)=(8.7*5.-2.*1.+2.*0.1)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1387 CALL GSVOLU('IR24','BOX ',IDTMED(231),DAL2,3,IOUT)
1389 C --- Define the part of the (larger) rib between two sensitive parts
1390 C made of silicon (the electronics) (layer #3)
1392 DCHI(1)=0.65-DITS(1)
1394 DCHI(3)=(8.7*5.-2.*1.+2.*0.1)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1395 CALL GSVOLU('IR25','BOX ',IDTMED(226),DAL2,3,IOUT)
1397 C --- Define the part of the (larger) rib between two sensitive parts
1398 C made of water (the cooler) (layer #3)
1400 DWAT(1)=0.65-DITS(1)
1402 DWAT(3)=(8.7*5.-2.*1.+2.*0.1)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1403 CALL GSVOLU('IR26','BOX ',IDTMED(232),DWAT,3,IOUT)
1405 C --- Define the third part of the (larger) rib between two sensitive parts
1406 C made of aluminum (the cooling tubes) (layer #3)
1408 DTUB(1)=0.65-DITS(1)
1410 DTUB(3)=(8.7*5.-2.*1.+2.*0.1)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1411 CALL GSVOLU('IR27','BOX ',IDTMED(231),DTUB,3,IOUT)
1413 C --- Place the sensitive part of the drifts (smaller ribs) into its mother
1417 DO J=1,5 ! odd element are up and even elements are down
1419 XPOS=DBOX2(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-2.*DSIL(1)-
1421 ZPOS=0.-DITS(3)+1.-2.*DITS(3)-0.1-DITS(3)
1422 ELSE IF(J.EQ.2) THEN
1423 XPOS=-DBOX2(1)+DITS(1)
1424 ZPOS=0.-DITS(3)+1.-DITS(3)
1425 ELSE IF(J.EQ.3) THEN
1426 XPOS=DBOX2(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-2.*DSIL(1)-
1429 ELSE IF(J.EQ.4) THEN
1430 XPOS=-DBOX2(1)+DITS(1)
1431 ZPOS=0.+DITS(3)-1.+DITS(3)
1432 ELSE IF(J.EQ.5) THEN
1433 XPOS=DBOX2(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-2.*DSIL(1)-
1435 ZPOS=0.+DITS(3)-1.+2.*DITS(3)+0.1+DITS(3)
1437 CALL GSPOS('ITS3',J,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1440 C --- Place the larger ribs into their mother (IDV2)
1443 C --- Right ribs (just a matter of convention)
1445 XPOS=0.65-DBOX2(1)+DITS(1)
1451 CALL GSPOS('IR21',1,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1455 YPOS=2.81+DSUP(2)+DAL1(2)
1456 CALL GSPOS('IR22',1,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1460 YPOS=2.81+DSUP(2)+2.*DAL1(2)+DKAP(2)
1461 CALL GSPOS('IR23',1,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1465 YPOS=2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+DAL2(2)
1466 CALL GSPOS('IR24',1,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1468 C --- Silicon (chip)
1470 YPOS=2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+DCHI(2)
1471 CALL GSPOS('IR25',1,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1475 YPOS=2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+2.*DCHI(2)+
1477 CALL GSPOS('IR26',1,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1481 YPOS=2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+2.*DCHI(2)+
1483 CALL GSPOS('IR27',1,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1485 C --- Right ribs (just a matter of convention)
1490 CALL GSPOS('IR21',2,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1494 YPOS=-(2.81+DSUP(2)+DAL1(2))
1495 CALL GSPOS('IR22',2,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1499 YPOS=-(2.81+DSUP(2)+2.*DAL1(2)+DKAP(2))
1500 CALL GSPOS('IR23',2,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1504 YPOS=-(2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+DAL2(2))
1505 CALL GSPOS('IR24',2,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1507 C --- Silicon (chip)
1509 YPOS=-(2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+DCHI(2))
1510 CALL GSPOS('IR25',2,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1514 YPOS=-(2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+2.*DCHI(2)+
1516 CALL GSPOS('IR26',2,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1520 YPOS=-(2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+2.*DCHI(2)+
1521 $2.*DWAT(2)+DTUB(2))
1522 CALL GSPOS('IR27',2,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1524 C --- Place the end-ladder stuff into its mother (IDV1)
1527 C --- Negative-Z end-ladder
1530 ZPOS=-(8.7*5.-2.*1.+2.*0.1)/2.-7.5
1534 XPOS=DBOX2(1)-DPCB(1)
1535 CALL GSPOS('IEL1',3,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1539 XPOS=DBOX2(1)-2.*DPCB(1)-DCOP(1)
1540 CALL GSPOS('IEL2',3,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1544 XPOS=DBOX2(1)-2.*DPCB(1)-2.*DCOP(1)-DCER(1)
1545 CALL GSPOS('IEL3',3,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1549 XPOS=DBOX2(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-DSIL(1)
1550 CALL GSPOS('IEL4',3,'IDV1',XPOS,YPOS,ZPOS,0,'ONLY')
1552 C --- Positive-Z end-ladder
1555 ZPOS=(8.7*5.-2.*1.+2.*0.1)/2.+7.5
1559 XPOS=DBOX2(1)-DPCB(1)
1560 CALL GSPOS('IEL1',4,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1564 XPOS=DBOX2(1)-2.*DPCB(1)-DCOP(1)
1565 CALL GSPOS('IEL2',4,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1569 XPOS=DBOX2(1)-2.*DPCB(1)-2.*DCOP(1)-DCER(1)
1570 CALL GSPOS('IEL3',4,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1574 XPOS=DBOX2(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-DSIL(1)
1575 CALL GSPOS('IEL4',4,'IDV2',XPOS,YPOS,ZPOS,0,'ONLY')
1577 C --- Place the ghost volumes containing the drift ladders of layer #3 in their
1578 C mother volume (IT34)
1579 C Odd elements have large ribs and even elements have small ribs
1582 ATHETA=FLOAT(I-1)*(360./12.)
1583 CALL SXSROT(IDROTM(1300+I),90.,ATHETA,90.,90.+ATHETA,0.,0.)
1584 IF(MOD(I,2).EQ.0) THEN
1585 RZERO=(14.5+13.5)/2.
1586 XPOS=RZERO*COS(TWOPI*FLOAT(I-1)/12.)
1587 YPOS=RZERO*SIN(TWOPI*FLOAT(I-1)/12.)
1589 CALL GSPOS('IDV1',I,'IT34',XPOS,YPOS,ZPOS,IDROTM(1300+I),
1592 RZERO=(14.5+13.2)/2.
1593 XPOS=RZERO*COS(TWOPI*FLOAT(I-1)/12.)
1594 YPOS=RZERO*SIN(TWOPI*FLOAT(I-1)/12.)
1596 CALL GSPOS('IDV2',I,'IT34',XPOS,YPOS,ZPOS,IDROTM(1300+I),
1605 C GOTO 4567 ! skip ITS layer no. 4
1607 C --- Define a ghost volume containing a single ladder of layer #4 (with the
1608 C smaller lenght of ribs) and fill it with air or vacuum
1610 DBOX1(1)=0.5+(0.0172+0.03+0.0252+0.04+0.003)
1611 DBOX1(2)=3.5 ! the widest element is the end-ladder stuff
1612 DBOX1(3)=(8.7*7.-2.*0.7-2.*1.3)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1613 CALL GSVOLU('IDV3','BOX ',IDTMED(229),DBOX1,3,IOUT)
1615 C --- Make the ghost volume invisible
1617 CALL GSATT('IDV3','SEEN',0)
1619 C --- Define a volume containing the sensitive part of drifts
1620 C (silicon, layer #4)
1622 DITS(1)=0.0172 ! see material budget report by G. Feofilov
1625 CALL GSVOLU('ITS4','BOX ',IDTMED(225),DITS,3,IOUT)
1627 C --- Define the part of the (smaller) rib between two sensitive parts made of
1632 DSUP(3)=(8.7*7.-2.*0.7-2.*1.3)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1633 CALL GSVOLU('IR31','BOX ',IDTMED(228),DSUP,3,IOUT)
1635 C --- Define the first part of the (smaller) rib between two sensitive parts
1636 C made of aluminum (layer #4)
1640 DAL1(3)=(8.7*7.-2.*0.7-2.*1.3)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1641 CALL GSVOLU('IR32','BOX ',IDTMED(231),DAL1,3,IOUT)
1643 C --- Define the part of the (smaller) rib between two sensitive parts made of
1648 DKAP(3)=(8.7*7.-2.*0.7-2.*1.3)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1649 CALL GSVOLU('IR33','BOX ',IDTMED(237),DKAP,3,IOUT)
1651 C --- Define the second part of the (smaller) rib between two sensitive parts
1652 C made of aluminum (layer #4)
1656 DAL2(3)=(8.7*7.-2.*0.7-2.*1.3)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1657 CALL GSVOLU('IR34','BOX ',IDTMED(231),DAL2,3,IOUT)
1659 C --- Define the part of the (smaller) rib between two sensitive parts
1660 C made of silicon (the electronics) (layer #4)
1664 DCHI(3)=(8.7*7.-2.*0.7-2.*1.3)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1665 CALL GSVOLU('IR35','BOX ',IDTMED(226),DAL2,3,IOUT)
1667 C --- Define the part of the (smaller) rib between two sensitive parts
1668 C made of water (the cooler) (layer #4)
1672 DWAT(3)=(8.7*7.-2.*0.7-2.*1.3)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1673 CALL GSVOLU('IR36','BOX ',IDTMED(232),DWAT,3,IOUT)
1675 C --- Define the third part of the (smaller) rib between two sensitive parts
1676 C made of aluminum (the cooling tubes) (layer #4)
1680 DTUB(3)=(8.7*7.-2.*0.7-2.*1.3)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1681 CALL GSVOLU('IR37','BOX ',IDTMED(231),DTUB,3,IOUT)
1683 C --- Define the part of the end-ladder stuff made of PCB (layer #4)
1685 DPCB(1)=0.03 ! twice the foreseen thickness
1688 CALL GSVOLU('IEL5','BOX ',IDTMED(234),DPCB,3,IOUT)
1690 C --- Define the part of the end-ladder stuff made of copper (layer #4)
1692 DCOP(1)=0.0252 ! twice the foreseen thickness
1695 CALL GSVOLU('IEL6','BOX ',IDTMED(235),DCOP,3,IOUT)
1697 C --- Define the part of the end-ladder stuff made of ceramics (layer #4)
1699 DCER(1)=0.04 ! twice the foreseen thickness
1702 CALL GSVOLU('IEL7','BOX ',IDTMED(236),DCER,3,IOUT)
1704 C --- Define the part of the end-ladder stuff made of silicon (layer #4)
1706 DSIL(1)=0.003 ! twice the foreseen thickness
1709 CALL GSVOLU('IEL8','BOX ',IDTMED(227),DSIL,3,IOUT)
1711 C --- Place the sensitive part of the drifts (smaller ribs) into its mother
1715 DO J=1,7 ! odd elements are down and even elements are up
1717 XPOS=DBOX1(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-2.*DSIL(1)-
1719 ZPOS=0.-DITS(3)+0.7-2.*DITS(3)-0.-2.*DITS(3)+1.3-DITS(3)
1720 ELSE IF(J.EQ.2) THEN
1721 XPOS=-DBOX1(1)+DITS(1)
1722 ZPOS=0.-DITS(3)+0.7-2.*DITS(3)-0.-DITS(3)
1723 ELSE IF(J.EQ.3) THEN
1724 XPOS=DBOX1(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-2.*DSIL(1)-
1726 ZPOS=0.-DITS(3)+0.7-DITS(3)
1727 ELSE IF(J.EQ.4) THEN
1728 XPOS=-DBOX1(1)+DITS(1)
1730 ELSE IF(J.EQ.5) THEN
1731 XPOS=DBOX1(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-2.*DSIL(1)-
1733 ZPOS=0.+DITS(3)-0.7+DITS(3)
1734 ELSE IF(J.EQ.6) THEN
1735 XPOS=-DBOX1(1)+DITS(1)
1736 ZPOS=0.+DITS(3)-0.7+2.*DITS(3)+0.+DITS(3)
1737 ELSE IF(J.EQ.7) THEN
1738 XPOS=DBOX1(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-2.*DSIL(1)-
1740 ZPOS=0.+DITS(3)-0.7+2.*DITS(3)+0.+2.*DITS(3)-1.3+DITS(3)
1742 CALL GSPOS('ITS4',J,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1745 C --- Place the smaller ribs into their mother (IDV3)
1747 C --- Right ribs (just a matter of convention)
1749 XPOS=0.5-DBOX1(1)+DITS(1)
1755 CALL GSPOS('IR31',1,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1759 YPOS=2.81+DSUP(2)+DAL1(2)
1760 CALL GSPOS('IR32',1,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1764 YPOS=2.81+DSUP(2)+2.*DAL1(2)+DKAP(2)
1765 CALL GSPOS('IR33',1,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1769 YPOS=2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+DAL2(2)
1770 CALL GSPOS('IR34',1,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1772 C --- Silicon (chip)
1774 YPOS=2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+DCHI(2)
1775 CALL GSPOS('IR35',1,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1779 YPOS=2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+2.*DCHI(2)+
1781 CALL GSPOS('IR36',1,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1785 YPOS=2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+2.*DCHI(2)+
1787 CALL GSPOS('IR37',1,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1789 C --- Right ribs (just a matter of convention)
1794 CALL GSPOS('IR31',2,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1798 YPOS=-(2.81+DSUP(2)+DAL1(2))
1799 CALL GSPOS('IR32',2,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1803 YPOS=-(2.81+DSUP(2)+2.*DAL1(2)+DKAP(2))
1804 CALL GSPOS('IR33',2,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1808 YPOS=-(2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+DAL2(2))
1809 CALL GSPOS('IR34',2,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1811 C --- Silicon (chip)
1813 YPOS=-(2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+DCHI(2))
1814 CALL GSPOS('IR35',2,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1818 YPOS=-(2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+2.*DCHI(2)+
1820 CALL GSPOS('IR36',2,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1824 YPOS=-(2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+2.*DCHI(2)+
1825 $2.*DWAT(2)+DTUB(2))
1826 CALL GSPOS('IR37',2,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1828 C --- Place the end-ladder stuff into its mother (IDV1)
1831 C --- Negative-Z end-ladder
1834 ZPOS=-(8.7*7.-2.*0.7-2.*1.3)/2.-7.5
1838 XPOS=DBOX1(1)-DPCB(1)
1839 CALL GSPOS('IEL5',1,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1843 XPOS=DBOX1(1)-2.*DPCB(1)-DCOP(1)
1844 CALL GSPOS('IEL6',1,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1848 XPOS=DBOX1(1)-2.*DPCB(1)-2.*DCOP(1)-DCER(1)
1849 CALL GSPOS('IEL7',1,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1853 XPOS=DBOX1(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-DSIL(1)
1854 CALL GSPOS('IEL8',1,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1856 C --- Positive-Z end-ladder
1859 ZPOS=(8.7*7.-2.*0.7-2.*1.3)/2.+7.5
1863 XPOS=DBOX1(1)-DPCB(1)
1864 CALL GSPOS('IEL5',2,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1868 XPOS=DBOX1(1)-2.*DPCB(1)-DCOP(1)
1869 CALL GSPOS('IEL6',2,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1873 XPOS=DBOX1(1)-2.*DPCB(1)-2.*DCOP(1)-DCER(1)
1874 CALL GSPOS('IEL7',2,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1878 XPOS=DBOX1(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-DSIL(1)
1879 CALL GSPOS('IEL8',2,'IDV3',XPOS,YPOS,ZPOS,0,'ONLY')
1881 C --- Define a ghost volume containing a single ladder of layer #4 (with the
1882 C larger lenght of ribs) and fill it with air or vacuum
1884 DBOX2(1)=0.65+(0.0172+0.03+0.0252+0.04+0.003)
1885 DBOX2(2)=3.5 ! the widest element is the end-ladder stuff
1886 DBOX2(3)=(8.7*7.-2.*0.7-2.*1.3)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1887 CALL GSVOLU('IDV4','BOX ',IDTMED(229),DBOX2,3,IOUT)
1889 C --- Make the ghost volume invisible
1891 CALL GSATT('IDV4','SEEN',0)
1893 C --- Define the part of the (larger) rib between two sensitive parts made of
1896 DSUP(1)=0.65-DITS(1)
1898 DSUP(3)=(8.7*7.-2.*0.7-2.*1.3)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1899 CALL GSVOLU('IR41','BOX ',IDTMED(228),DSUP,3,IOUT)
1901 C --- Define the first part of the (larger) rib between two sensitive parts
1902 C made of aluminum (layer #4)
1904 DAL1(1)=0.65-DITS(1)
1906 DAL1(3)=(8.7*7.-2.*0.7-2.*1.3)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1907 CALL GSVOLU('IR42','BOX ',IDTMED(231),DAL1,3,IOUT)
1909 C --- Define the part of the (larger) rib between two sensitive parts made of
1912 DKAP(1)=0.65-DITS(1)
1914 DKAP(3)=(8.7*7.-2.*0.7-2.*1.3)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1915 CALL GSVOLU('IR43','BOX ',IDTMED(237),DKAP,3,IOUT)
1917 C --- Define the second part of the (larger) rib between two sensitive parts
1918 C made of aluminum (layer #4)
1920 DAL2(1)=0.65-DITS(1)
1922 DAL2(3)=(8.7*7.-2.*0.7-2.*1.3)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1923 CALL GSVOLU('IR44','BOX ',IDTMED(231),DAL2,3,IOUT)
1925 C --- Define the part of the (larger) rib between two sensitive parts
1926 C made of silicon (the electronics) (layer #4)
1928 DCHI(1)=0.65-DITS(1)
1930 DCHI(3)=(8.7*7.-2.*0.7-2.*1.3)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1931 CALL GSVOLU('IR45','BOX ',IDTMED(226),DAL2,3,IOUT)
1933 C --- Define the part of the (larger) rib between two sensitive parts
1934 C made of water (the cooler) (layer #4)
1936 DWAT(1)=0.65-DITS(1)
1938 DWAT(3)=(8.7*7.-2.*0.7-2.*1.3)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1939 CALL GSVOLU('IR46','BOX ',IDTMED(232),DWAT,3,IOUT)
1941 C --- Define the third part of the (larger) rib between two sensitive parts
1942 C made of aluminum (the cooling tubes) (layer #4)
1944 DTUB(1)=0.65-DITS(1)
1946 DTUB(3)=(8.7*7.-2.*0.7-2.*1.3)/2.+2.*7.5 ! 7.5 cm is the lenght of the end-ladder module
1947 CALL GSVOLU('IR47','BOX ',IDTMED(231),DTUB,3,IOUT)
1949 C --- Place the sensitive part of the drifts (smaller ribs) into its mother
1953 DO J=1,7 ! odd elements are down and even elements are up
1955 XPOS=DBOX2(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-2.*DSIL(1)-
1957 ZPOS=0.-DITS(3)+0.7-2.*DITS(3)-0.-2.*DITS(3)+1.3-DITS(3)
1958 ELSE IF(J.EQ.2) THEN
1959 XPOS=-DBOX2(1)+DITS(1)
1960 ZPOS=0.-DITS(3)+0.7-2.*DITS(3)-0.-DITS(3)
1961 ELSE IF(J.EQ.3) THEN
1962 XPOS=DBOX2(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-2.*DSIL(1)-
1964 ZPOS=0.-DITS(3)+0.7-DITS(3)
1965 ELSE IF(J.EQ.4) THEN
1966 XPOS=-DBOX2(1)+DITS(1)
1968 ELSE IF(J.EQ.5) THEN
1969 XPOS=DBOX2(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-2.*DSIL(1)-
1971 ZPOS=0.+DITS(3)-0.7+DITS(3)
1972 ELSE IF(J.EQ.6) THEN
1973 XPOS=-DBOX2(1)+DITS(1)
1974 ZPOS=0.+DITS(3)-0.7+2.*DITS(3)+0.+DITS(3)
1975 ELSE IF(J.EQ.7) THEN
1976 XPOS=DBOX2(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-2.*DSIL(1)-
1978 ZPOS=0.+DITS(3)-0.7+2.*DITS(3)+0.+2.*DITS(3)-1.3+DITS(3)
1980 CALL GSPOS('ITS4',J,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
1983 C --- Place the larger ribs into their mother (IDV4)
1986 C --- Right ribs (just a matter of convention)
1988 XPOS=0.65-DBOX2(1)+DITS(1)
1994 CALL GSPOS('IR41',1,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
1998 YPOS=2.81+DSUP(2)+DAL1(2)
1999 CALL GSPOS('IR42',1,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2003 YPOS=2.81+DSUP(2)+2.*DAL1(2)+DKAP(2)
2004 CALL GSPOS('IR43',1,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2008 YPOS=2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+DAL2(2)
2009 CALL GSPOS('IR44',1,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2011 C --- Silicon (chip)
2013 YPOS=2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+DCHI(2)
2014 CALL GSPOS('IR45',1,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2018 YPOS=2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+2.*DCHI(2)+
2020 CALL GSPOS('IR46',1,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2024 YPOS=2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+2.*DCHI(2)+
2026 CALL GSPOS('IR47',1,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2028 C --- Right ribs (just a matter of convention)
2033 CALL GSPOS('IR41',2,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2037 YPOS=-(2.81+DSUP(2)+DAL1(2))
2038 CALL GSPOS('IR42',2,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2042 YPOS=-(2.81+DSUP(2)+2.*DAL1(2)+DKAP(2))
2043 CALL GSPOS('IR43',2,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2047 YPOS=-(2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+DAL2(2))
2048 CALL GSPOS('IR44',2,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2050 C --- Silicon (chip)
2052 YPOS=-(2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+DCHI(2))
2053 CALL GSPOS('IR45',2,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2057 YPOS=-(2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+2.*DCHI(2)+
2059 CALL GSPOS('IR46',2,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2063 YPOS=-(2.81+DSUP(2)+2.*DAL1(2)+2.*DKAP(2)+2.*DAL2(2)+2.*DCHI(2)+
2064 $2.*DWAT(2)+DTUB(2))
2065 CALL GSPOS('IR47',2,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2067 C --- Place the end-ladder stuff into its mother (IDV1)
2070 C --- Negative-Z end-ladder
2073 ZPOS=-(8.7*7.-2.*0.7-2.*1.3)/2.-7.5
2077 XPOS=DBOX2(1)-DPCB(1)
2078 CALL GSPOS('IEL5',3,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2082 XPOS=DBOX2(1)-2.*DPCB(1)-DCOP(1)
2083 CALL GSPOS('IEL6',3,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2087 XPOS=DBOX2(1)-2.*DPCB(1)-2.*DCOP(1)-DCER(1)
2088 CALL GSPOS('IEL7',3,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2092 XPOS=DBOX2(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-DSIL(1)
2093 CALL GSPOS('IEL8',3,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2095 C --- Positive-Z end-ladder
2098 ZPOS=(8.7*7.-2.*0.7-2.*1.3)/2.+7.5
2102 XPOS=DBOX2(1)-DPCB(1)
2103 CALL GSPOS('IEL5',4,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2107 XPOS=DBOX2(1)-2.*DPCB(1)-DCOP(1)
2108 CALL GSPOS('IEL6',4,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2112 XPOS=DBOX2(1)-2.*DPCB(1)-2.*DCOP(1)-DCER(1)
2113 CALL GSPOS('IEL7',4,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2117 XPOS=DBOX2(1)-2.*DPCB(1)-2.*DCOP(1)-2.*DCER(1)-DSIL(1)
2118 CALL GSPOS('IEL8',4,'IDV4',XPOS,YPOS,ZPOS,0,'ONLY')
2120 C --- Place the ghost volumes containing the drift ladders of layer #4 in their
2121 C mother volume (IT34)
2122 C Odd elements have large ribs and even elements have small ribs
2125 ATHETA=FLOAT(I-1)*(360./24.)
2126 CALL SXSROT(IDROTM(1400+I),90.,ATHETA,90.,90.+ATHETA,0.,0.)
2127 IF(MOD(I,2).EQ.0) THEN
2128 RZERO=(24.0+23.0)/2.
2129 XPOS=RZERO*COS(TWOPI*FLOAT(I-1)/24.)
2130 YPOS=RZERO*SIN(TWOPI*FLOAT(I-1)/24.)
2132 CALL GSPOS('IDV3',I,'IT34',XPOS,YPOS,ZPOS,IDROTM(1400+I),
2135 RZERO=(24.0+22.8)/2.
2136 XPOS=RZERO*COS(TWOPI*FLOAT(I-1)/24.)
2137 YPOS=RZERO*SIN(TWOPI*FLOAT(I-1)/24.)
2139 CALL GSPOS('IDV4',I,'IT34',XPOS,YPOS,ZPOS,IDROTM(1400+I),
2146 C ************************************************************************
2151 C ************************************************************************
2154 C --- Define SSD with the 35+39 lay-out
2156 IF(IVERS.EQ.40 .OR. IVERS.EQ.41 .OR. IVERS.EQ.42) THEN
2158 C --- Define ghost volume containing the Strip Detectors and fill it with air
2161 XXM=(49.999-3.)/(70.-25.)
2165 DGH(4)=-25.-(9.-3.01)/XXM-(9.01-9.)/XXM-(27.-9.01)/XXM-
2166 $ (37.-27)/XXM-(49.998-37.)/XXM
2169 DGH(7)=-25.-(9.-3.01)/XXM-(9.01-9.)/XXM-(27.-9.01)/XXM-
2173 DGH(10)=25.+(9.-3.01)/XXM+(9.01-9.)/XXM+(27.-9.01)/XXM+
2177 DGH(13)=25.+(9.-3.01)/XXM+(9.01-9.)/XXM+(27.-9.01)/XXM+
2178 $ (37.-27)/XXM+(49.998-37.)/XXM
2181 CALL GSVOLU('IT56','PCON',IDTMED(276),DGH,15,IOUT)
2182 CALL GSPOS('IT56',1,'ITSV',0.,0.,0.,0,'ONLY')
2183 CALL GSATT('IT56','SEEN',0)
2187 C GOTO 5678 ! skip ITS layer no. 5
2189 C --- Define a ghost volume containing a single ladder of layer #5 and fill
2190 C it with air or vacuum
2192 DBOX1(1)=(0.0600+2.*0.0150)/2.
2195 CALL GSVOLU('ISV1','BOX ',IDTMED(254),DBOX1,3,IOUT)
2197 C --- Make the ghost volume invisible
2199 CALL GSATT('ISV1','SEEN',0)
2201 C --- Define a ghost volume containing the electronics and cooling of
2202 C a single ladder of layer #5 and fill it with air or vacuum
2204 DSRV(1)=(0.47+(SQRT(3.)/2.)*4.2+0.05)/2.
2207 CALL GSVOLU('SSV1','BOX ',IDTMED(254),DSRV,3,IOUT)
2209 C --- Make the ghost volume invisible
2211 CALL GSATT('SSV1','SEEN',0)
2213 C --- Define a ghost volume containing the end-ladder stuff of
2214 C a single ladder of layer #5 and fill it with air or vacuum
2219 CALL GSVOLU('ELL5','BOX ',IDTMED(254),DELA,3,IOUT)
2221 C --- Make the ghost volume invisible
2223 CALL GSATT('ELL5','SEEN',0)
2225 C --- Define a volume containing the sensitive part of the strips
2226 C (silicon, layer #5)
2231 CALL GSVOLU('ITS5','BOX ',IDTMED(250),DITS,3,IOUT)
2233 C --- Define a volume containing the electronics of the strips
2234 C (silicon, layer #5)
2239 CALL GSVOLU('SCH5','BOX ',IDTMED(251),DCHI,3,IOUT)
2241 C --- Define the cooling tubes (aluminum, layer #5)
2244 DTUB(2)=DTUB(1)+0.01
2246 CALL GSVOLU('STB5','TUBE',IDTMED(256),DTUB,3,IOUT)
2248 C --- Define the cooling fluid (water or freon, layer #5)
2253 CALL GSVOLU('SWT5','TUBE',IDTMED(257),DWAT,3,IOUT) ! water
2254 C CALL GSVOLU('SWT5','TUBE',IDTMED(258),DWAT,3,IOUT) ! freon
2256 C --- Define the (triangular) element of the heat bridge (carbon, layer #5)
2263 DFRA(6)=4.2*SQRT(3.)/6.
2264 DFRA(7)=DFRA(6)+0.03
2268 CALL GSVOLU('SFR5','PGON',IDTMED(253),DFRA,10,IOUT)
2270 C --- Define the element connecting the triangles of the heat bridge
2271 C (carbon, layer #5)
2276 CALL GSVOLU('SCE5','TUBE',IDTMED(253),DCEI,3,IOUT)
2278 C --- Define the part of the end-ladder stuff made of plastic (G10FR4)
2281 DPLA(1)=(10./(8.*7.))/2.
2284 CALL GSVOLU('EPL5','BOX ',IDTMED(263),DPLA,3,IOUT)
2286 C --- Define the part of the end-ladder stuff made of copper (layer #5)
2288 DCOP(1)=(2./(8.*7.))/2.
2291 CALL GSVOLU('ECU5','BOX ',IDTMED(260),DCOP,3,IOUT)
2293 C --- Define the part of the end-ladder stuff made of epoxy (layer #5)
2295 DEPX(1)=(30./(8.*7.))/2.
2298 CALL GSVOLU('EPX5','BOX ',IDTMED(263),DEPX,3,IOUT)
2300 C --- Define the part of the end-ladder stuff made of silicon (bus)
2303 DSIL(1)=(20./(8.*7.))/2.
2306 CALL GSVOLU('ESI5','BOX ',IDTMED(252),DSIL,3,IOUT)
2308 C --- Place the end-ladder stuff into its mother (ELL5)
2310 SEP=(4.-2.*(DPLA(1)+DCOP(1)+DEPX(1)+DSIL(1)))/3.
2316 XPOS=-DELA(1)+DPLA(1)
2317 CALL GSPOS('EPL5',1,'ELL5',XPOS,YPOS,ZPOS,0,'ONLY')
2321 XPOS=-DELA(1)+2.*DPLA(1)+SEP+DCOP(1)
2322 CALL GSPOS('ECU5',1,'ELL5',XPOS,YPOS,ZPOS,0,'ONLY')
2326 XPOS=-DELA(1)+2.*DPLA(1)+SEP+2.*DCOP(1)+SEP+DEPX(1)
2327 CALL GSPOS('EPX5',1,'ELL5',XPOS,YPOS,ZPOS,0,'ONLY')
2331 XPOS=-DELA(1)+2.*DPLA(1)+SEP+2.*DCOP(1)+SEP+2.*DEPX(1)+
2333 CALL GSPOS('ESI5',1,'ELL5',XPOS,YPOS,ZPOS,0,'ONLY')
2335 C --- Place the sensitive part of the strips into its mother (ISV1)
2339 IF(MOD(J,2).EQ.0) THEN
2340 XPOS=DBOX1(1)-DITS(1)
2342 XPOS=-DBOX1(1)+DITS(1)
2344 ZPOS=(-11.+FLOAT(J-1))*3.91
2345 CALL GSPOS('ITS5',J,'ISV1',XPOS,YPOS,ZPOS,0,'ONLY')
2348 C --- Place the electronics of the strips into its mother (SSV1)
2352 IF(MOD(J,2).EQ.0) THEN
2355 XPOS=-DSRV(1)+0.28-2.*DITS(1)-0.03
2357 ZPOS=(-11.+FLOAT(J-1))*3.91+0.85
2358 CALL GSPOS('SCH5',J,'SSV1',XPOS,YPOS,ZPOS,0,'ONLY')
2361 C --- Place the cooling tubes and the cooling fluid into their mother (SSV1)
2366 C --- Left tube (just a matter of convention)
2369 CALL GSPOS('STB5',1,'SSV1',XPOS,YPOS,ZPOS,0,'ONLY')
2370 CALL GSPOS('SWT5',1,'SSV1',XPOS,YPOS,ZPOS,0,'ONLY')
2372 C --- Right tube (just a matter of convention)
2375 CALL GSPOS('STB5',2,'SSV1',XPOS,YPOS,ZPOS,0,'ONLY')
2376 CALL GSPOS('SWT5',2,'SSV1',XPOS,YPOS,ZPOS,0,'ONLY')
2378 C --- Place the heat bridge elements into their mother (SSV1)
2380 XPOS=-DSRV(1)+0.47+(SQRT(3.)/6.)*4.2
2383 ZPOS=(-11.+FLOAT(J-1))*3.91-4.2/2.
2384 CALL GSPOS('SFR5',J,'SSV1',XPOS,YPOS,ZPOS,0,'ONLY')
2387 C --- Place the elements connecting the triangles of the heat bridge
2388 C into their mother (SSV1)
2392 C --- Left element (just a matter of convention)
2396 CALL GSPOS('SCE5',1,'SSV1',XPOS,YPOS,ZPOS,0,'ONLY')
2402 CALL GSPOS('SCE5',2,'SSV1',XPOS,YPOS,ZPOS,0,'ONLY')
2406 XPOS=-DSRV(1)+0.47+(SQRT(3.)/2.)*4.2+0.015
2408 CALL GSPOS('SCE5',3,'SSV1',XPOS,YPOS,ZPOS,0,'ONLY')
2410 C --- Place the ghost volumes containing the strip ladders (ISV1),
2411 C electronics/cooling (SSV1) and end-ladder stuff (ELL5) of layer #5 in
2412 C their mother volume (IT56)
2414 OFFSET1=ATG(0.9,40.)
2417 RUNO=40.+2.*DBOX1(1)+DSRV(1)
2418 RTWO=40.+2.*DBOX1(1)+DELA(1)
2420 ATHETA=TWOPI*FLOAT(I-1)*RADDEG/35.+OFFSET2
2421 CALL SXSROT(IDROTM(1500+I),90.,ATHETA,90.,90.+ATHETA,0.,0.)
2425 XPOS=RZERO*COS(TWOPI*FLOAT(I-1)/35.+OFFSET1)
2426 YPOS=RZERO*SIN(TWOPI*FLOAT(I-1)/35.+OFFSET1)
2428 CALL GSPOS('ISV1',I,'IT56',XPOS,YPOS,ZPOS,IDROTM(1500+I),
2431 C --- Electronics/cooling
2433 XPOS=RUNO*COS(TWOPI*FLOAT(I-1)/35.+OFFSET1)
2434 YPOS=RUNO*SIN(TWOPI*FLOAT(I-1)/35.+OFFSET1)
2436 CALL GSPOS('SSV1',I,'IT56',XPOS,YPOS,ZPOS,IDROTM(1500+I),
2439 C --- End-ladders (nagative-Z and positive-Z)
2441 XPOS=RTWO*COS(TWOPI*FLOAT(I-1)/35.+OFFSET1)
2442 YPOS=RTWO*SIN(TWOPI*FLOAT(I-1)/35.+OFFSET1)
2443 ZPOS=-(DBOX1(3)+DELA(3)+6.)
2444 CALL GSPOS('ELL5',I,'IT56',XPOS,YPOS,ZPOS,IDROTM(1500+I),
2446 ZPOS=DBOX1(3)+DELA(3)+6.
2447 CALL GSPOS('ELL5',I+35,'IT56',XPOS,YPOS,ZPOS,IDROTM(1500+I),
2455 C GOTO 5778 ! skip ITS layer no. 6
2457 C --- Define a ghost volume containing a single ladder of layer #6 and fill
2458 C it with air or vacuum
2460 DBOX2(1)=(0.0600+2.*0.0150)/2.
2463 CALL GSVOLU('ISV2','BOX ',IDTMED(254),DBOX2,3,IOUT)
2465 C --- Make the ghost volume invisible
2467 CALL GSATT('ISV2','SEEN',0)
2469 C --- Define a ghost volume containing the electronics and cooling of
2470 C a single ladder of layer #6 and fill it with air or vacuum
2472 DSRV(1)=(0.47+(SQRT(3.)/2.)*4.2+0.05)/2.
2475 CALL GSVOLU('SSV2','BOX ',IDTMED(254), DSRV,3,IOUT)
2477 C --- Make the ghost volume invisible
2479 CALL GSATT('SSV2','SEEN',0)
2481 C --- Define a ghost volume containing the end-ladder stuff of
2482 C a single ladder of layer #6 and fill it with air or vacuum
2487 CALL GSVOLU('ELL6','BOX ',IDTMED(254),DELA,3,IOUT)
2489 C --- Make the ghost volume invisible
2491 CALL GSATT('ELL6','SEEN',0)
2493 C --- Define a volume containing the sensitive part of the strips
2494 C (silicon, layer #6)
2499 CALL GSVOLU('ITS6','BOX ',IDTMED(250),DITS,3,IOUT)
2501 C --- Define a volume containing the electronics of the strips
2502 C (silicon, layer #6)
2507 CALL GSVOLU('SCH6','BOX ',IDTMED(251),DCHI,3,IOUT)
2509 C --- Define the cooling tubes (aluminum, layer #6)
2512 DTUB(2)=DTUB(1)+0.01
2514 CALL GSVOLU('STB6','TUBE',IDTMED(256),DTUB,3,IOUT)
2516 C --- Define the cooling fluid (water or freon, layer #6)
2521 CALL GSVOLU('SWT6','TUBE',IDTMED(257),DWAT,3,IOUT) ! water
2522 C CALL GSVOLU('SWT6','TUBE',IDTMED(258),DWAT,3,IOUT) ! freon
2524 C --- Define the (triangular) element of the heat bridge (carbon, layer #6)
2531 DFRA(6)=4.2*SQRT(3.)/6.
2532 DFRA(7)=DFRA(6)+0.03
2536 CALL GSVOLU('SFR6','PGON',IDTMED(253),DFRA,10,IOUT)
2538 C --- Define the element connecting the triangles of the heat bridge
2539 C (carbon, layer #6)
2544 CALL GSVOLU('SCE6','TUBE',IDTMED(253),DCEI,3,IOUT)
2546 C --- Define the part of the end-ladder stuff made of plastic (G10FR4)
2549 DPLA(1)=(10./(8.*7.))/2.
2552 CALL GSVOLU('EPL6','BOX ',IDTMED(263),DPLA,3,IOUT)
2554 C --- Define the part of the end-ladder stuff made of copper (layer #6)
2556 DCOP(1)=(2./(8.*7.))/2.
2559 CALL GSVOLU('ECU6','BOX ',IDTMED(260),DCOP,3,IOUT)
2561 C --- Define the part of the end-ladder stuff made of epoxy (layer #6)
2563 DEPX(1)=(30./(8.*7.))/2.
2566 CALL GSVOLU('EPX6','BOX ',IDTMED(263),DEPX,3,IOUT)
2568 C --- Define the part of the end-ladder stuff made of silicon (bus)
2571 DSIL(1)=(20./(8.*7.))/2.
2574 CALL GSVOLU('ESI6','BOX ',IDTMED(252),DSIL,3,IOUT)
2576 C --- Place the end-ladder stuff into its mother (ELL5)
2578 SEP=(4.-2.*(DPLA(1)+DCOP(1)+DEPX(1)+DSIL(1)))/3.
2584 XPOS=-DELA(1)+DPLA(1)
2585 CALL GSPOS('EPL6',1,'ELL6',XPOS,YPOS,ZPOS,0,'ONLY')
2589 XPOS=-DELA(1)+2.*DPLA(1)+SEP+DCOP(1)
2590 CALL GSPOS('ECU6',1,'ELL6',XPOS,YPOS,ZPOS,0,'ONLY')
2594 XPOS=-DELA(1)+2.*DPLA(1)+SEP+2.*DCOP(1)+SEP+DEPX(1)
2595 CALL GSPOS('EPX6',1,'ELL6',XPOS,YPOS,ZPOS,0,'ONLY')
2599 XPOS=-DELA(1)+2.*DPLA(1)+SEP+2.*DCOP(1)+SEP+2.*DEPX(1)+
2601 CALL GSPOS('ESI6',1,'ELL6',XPOS,YPOS,ZPOS,0,'ONLY')
2603 C --- Place the sensitive part of the strips into its mother (ISV2)
2607 IF(MOD(J,2).EQ.0) THEN
2608 XPOS=DBOX2(1)-DITS(1)
2610 XPOS=-DBOX2(1)+DITS(1)
2612 ZPOS=(-12.+FLOAT(J-1))*3.91-1.96
2613 CALL GSPOS('ITS6',J,'ISV2',XPOS,YPOS,ZPOS,0,'ONLY')
2616 C --- Place the electronics of the strips into its mother (SSV2)
2620 IF(MOD(J,2).EQ.0) THEN
2623 XPOS=-DSRV(1)+0.28-2.*DITS(1)-0.03
2625 ZPOS=(-12.+FLOAT(J-1))*3.91-1.96+0.85
2626 CALL GSPOS('SCH5',J,'SSV2',XPOS,YPOS,ZPOS,0,'ONLY')
2629 C --- Place the cooling tubes and the cooling fluid into their mother (SSV1)
2634 C --- Left tube (just a matter of convention)
2637 CALL GSPOS('STB6',1,'SSV2',XPOS,YPOS,ZPOS,0,'ONLY')
2638 CALL GSPOS('SWT6',1,'SSV2',XPOS,YPOS,ZPOS,0,'ONLY')
2640 C --- Right tube (just a matter of convention)
2643 CALL GSPOS('STB6',2,'SSV2',XPOS,YPOS,ZPOS,0,'ONLY')
2644 CALL GSPOS('SWT6',2,'SSV2',XPOS,YPOS,ZPOS,0,'ONLY')
2646 C --- Place the heat bridge elements into their mother (SSV2)
2648 XPOS=-DSRV(1)+0.47+(SQRT(3.)/6.)*4.2
2651 ZPOS=(-12.+FLOAT(J-1))*3.91-1.96-4.2/2.
2652 CALL GSPOS('SFR6',J,'SSV2',XPOS,YPOS,ZPOS,0,'ONLY')
2655 C --- Place the elements connecting the triangles of the heat bridge
2656 C into their mother (SSV2)
2660 C --- Left element (just a matter of convention)
2664 CALL GSPOS('SCE6',1,'SSV2',XPOS,YPOS,ZPOS,0,'ONLY')
2670 CALL GSPOS('SCE6',2,'SSV2',XPOS,YPOS,ZPOS,0,'ONLY')
2674 XPOS=-DSRV(1)+0.47+(SQRT(3.)/2.)*4.2+0.015
2676 CALL GSPOS('SCE6',3,'SSV2',XPOS,YPOS,ZPOS,0,'ONLY')
2678 C --- Place the ghost volumes containing the strip ladders (ISV2),
2679 C electronics/cooling (SSV2) and end-ladder stuff (ELL6) of layer #6 in
2680 C their mother volume (IT56)
2682 OFFSET1=ATG(1.0,45.)
2685 RUNO=45.+2.*DBOX2(1)+DSRV(1)
2686 RTWO=45.+2.*DBOX2(1)+DELA(1)
2688 ATHETA=TWOPI*FLOAT(I-1)*RADDEG/39.+OFFSET2
2689 CALL SXSROT(IDROTM(1600+I),90.,ATHETA,90.,90.+ATHETA,0.,0.)
2693 XPOS=RZERO*COS(TWOPI*FLOAT(I-1)/39.+OFFSET1)
2694 YPOS=RZERO*SIN(TWOPI*FLOAT(I-1)/39.+OFFSET1)
2696 CALL GSPOS('ISV2',I,'IT56',XPOS,YPOS,ZPOS,IDROTM(1600+I),
2699 C --- Electronics/cooling
2701 XPOS=RUNO*COS(TWOPI*FLOAT(I-1)/39.+OFFSET1)
2702 YPOS=RUNO*SIN(TWOPI*FLOAT(I-1)/39.+OFFSET1)
2704 CALL GSPOS('SSV2',I,'IT56',XPOS,YPOS,ZPOS,IDROTM(1600+I),
2707 C --- End-ladders (nagative-Z and positive-Z)
2709 XPOS=RTWO*COS(TWOPI*FLOAT(I-1)/39.+OFFSET1)
2710 YPOS=RTWO*SIN(TWOPI*FLOAT(I-1)/39.+OFFSET1)
2711 ZPOS=-(DBOX2(3)+DELA(3)+6.)
2712 CALL GSPOS('ELL6',I,'IT56',XPOS,YPOS,ZPOS,IDROTM(1600+I),
2714 ZPOS=DBOX2(3)+DELA(3)+6.
2715 CALL GSPOS('ELL6',I+39,'IT56',XPOS,YPOS,ZPOS,IDROTM(1600+I),
2723 C --- Define SSD with the 32+36 lay-out
2725 IF(IVERS.EQ.43 .OR. IVERS.EQ.44 .OR. IVERS.EQ.45) THEN
2727 C --- Define ghost volume containing the Strip Detectors and fill it with air
2730 XXM=(49.999-3.)/(70.-25.)
2734 DGH(4)=-25.-(9.-3.01)/XXM-(9.01-9.)/XXM-(27.-9.01)/XXM-
2735 $ (36.-27)/XXM-(49.998-36.)/XXM
2738 DGH(7)=-25.-(9.-3.01)/XXM-(9.01-9.)/XXM-(27.-9.01)/XXM-
2742 DGH(10)=25.+(9.-3.01)/XXM+(9.01-9.)/XXM+(27.-9.01)/XXM+
2746 DGH(13)=25.+(9.-3.01)/XXM+(9.01-9.)/XXM+(27.-9.01)/XXM+
2747 $ (36.-27)/XXM+(49.998-36.)/XXM
2750 CALL GSVOLU('IT56','PCON',IDTMED(276),DGH,15,IOUT)
2751 CALL GSPOS('IT56',1,'ITSV',0.,0.,0.,0,'ONLY')
2752 CALL GSATT('IT56','SEEN',0)
2756 C GOTO 6678 ! skip ITS layer no. 5
2758 C --- Define a ghost volume containing a single ladder of layer #5 and fill
2759 C it with air or vacuum
2761 DBOX1(1)=(0.0600+2.*0.0150)/2.
2764 CALL GSVOLU('ISV1','BOX ',IDTMED(254),DBOX1,3,IOUT)
2766 C --- Make the ghost volume invisible
2768 CALL GSATT('ISV1','SEEN',0)
2770 C --- Define a ghost volume containing the electronics and cooling of
2771 C a single ladder of layer #5 and fill it with air or vacuum
2773 DSRV(1)=(0.47+(SQRT(3.)/2.)*4.2+0.05)/2.
2776 CALL GSVOLU('SSV1','BOX ',IDTMED(254),DSRV,3,IOUT)
2778 C --- Make the ghost volume invisible
2780 CALL GSATT('SSV1','SEEN',0)
2782 C --- Define a ghost volume containing the end-ladder stuff of
2783 C a single ladder of layer #5 and fill it with air or vacuum
2788 CALL GSVOLU('ELL5','BOX ',IDTMED(254),DELA,3,IOUT)
2790 C --- Make the ghost volume invisible
2792 CALL GSATT('ELL5','SEEN',0)
2794 C --- Define a volume containing the sensitive part of the strips
2795 C (silicon, layer #5)
2800 CALL GSVOLU('ITS5','BOX ',IDTMED(250),DITS,3,IOUT)
2802 C --- Define a volume containing the electronics of the strips
2803 C (silicon, layer #5)
2808 CALL GSVOLU('SCH5','BOX ',IDTMED(251),DCHI,3,IOUT)
2810 C --- Define the cooling tubes (aluminum, layer #5)
2813 DTUB(2)=DTUB(1)+0.01
2815 CALL GSVOLU('STB5','TUBE',IDTMED(256),DTUB,3,IOUT)
2817 C --- Define the cooling fluid (water or freon, layer #5)
2822 CALL GSVOLU('SWT5','TUBE',IDTMED(257),DWAT,3,IOUT) ! water
2823 C CALL GSVOLU('SWT5','TUBE',IDTMED(258),DWAT,3,IOUT) ! freon
2825 C --- Define the (triangular) element of the heat bridge (carbon, layer #5)
2832 DFRA(6)=4.2*SQRT(3.)/6.
2833 DFRA(7)=DFRA(6)+0.03
2837 CALL GSVOLU('SFR5','PGON',IDTMED(253),DFRA,10,IOUT)
2839 C --- Define the element connecting the triangles of the heat bridge
2840 C (carbon, layer #5)
2845 CALL GSVOLU('SCE5','TUBE',IDTMED(253),DCEI,3,IOUT)
2847 C --- Define the part of the end-ladder stuff made of plastic (G10FR4)
2850 DPLA(1)=(10./(8.*7.))/2.
2853 CALL GSVOLU('EPL5','BOX ',IDTMED(263),DPLA,3,IOUT)
2855 C --- Define the part of the end-ladder stuff made of copper (layer #5)
2857 DCOP(1)=(2./(8.*7.))/2.
2860 CALL GSVOLU('ECU5','BOX ',IDTMED(260),DCOP,3,IOUT)
2862 C --- Define the part of the end-ladder stuff made of epoxy (layer #5)
2864 DEPX(1)=(30./(8.*7.))/2.
2867 CALL GSVOLU('EPX5','BOX ',IDTMED(263),DEPX,3,IOUT)
2869 C --- Define the part of the end-ladder stuff made of silicon (bus)
2872 DSIL(1)=(20./(8.*7.))/2.
2875 CALL GSVOLU('ESI5','BOX ',IDTMED(252),DSIL,3,IOUT)
2877 C --- Place the end-ladder stuff into its mother (ELL5)
2879 SEP=(4.-2.*(DPLA(1)+DCOP(1)+DEPX(1)+DSIL(1)))/3.
2885 XPOS=-DELA(1)+DPLA(1)
2886 CALL GSPOS('EPL5',1,'ELL5',XPOS,YPOS,ZPOS,0,'ONLY')
2890 XPOS=-DELA(1)+2.*DPLA(1)+SEP+DCOP(1)
2891 CALL GSPOS('ECU5',1,'ELL5',XPOS,YPOS,ZPOS,0,'ONLY')
2895 XPOS=-DELA(1)+2.*DPLA(1)+SEP+2.*DCOP(1)+SEP+DEPX(1)
2896 CALL GSPOS('EPX5',1,'ELL5',XPOS,YPOS,ZPOS,0,'ONLY')
2900 XPOS=-DELA(1)+2.*DPLA(1)+SEP+2.*DCOP(1)+SEP+2.*DEPX(1)+
2902 CALL GSPOS('ESI5',1,'ELL5',XPOS,YPOS,ZPOS,0,'ONLY')
2904 C --- Place the sensitive part of the strips into its mother (ISV1)
2908 IF(MOD(J,2).EQ.0) THEN
2909 XPOS=DBOX1(1)-DITS(1)
2911 XPOS=-DBOX1(1)+DITS(1)
2913 ZPOS=(-10.+FLOAT(J-1))*3.91-1.96
2914 CALL GSPOS('ITS5',J,'ISV1',XPOS,YPOS,ZPOS,0,'ONLY')
2917 C --- Place the electronics of the strips into its mother (SSV1)
2921 IF(MOD(J,2).EQ.0) THEN
2924 XPOS=-DSRV(1)+0.28-2.*DITS(1)-0.03
2926 ZPOS=(-10.+FLOAT(J-1))*3.91-1.96+0.85
2927 CALL GSPOS('SCH5',J,'SSV1',XPOS,YPOS,ZPOS,0,'ONLY')
2930 C --- Place the cooling tubes and the cooling fluid into their mother (SSV1)
2935 C --- Left tube (just a matter of convention)
2938 CALL GSPOS('STB5',1,'SSV1',XPOS,YPOS,ZPOS,0,'ONLY')
2939 CALL GSPOS('SWT5',1,'SSV1',XPOS,YPOS,ZPOS,0,'ONLY')
2941 C --- Right tube (just a matter of convention)
2944 CALL GSPOS('STB5',2,'SSV1',XPOS,YPOS,ZPOS,0,'ONLY')
2945 CALL GSPOS('SWT5',2,'SSV1',XPOS,YPOS,ZPOS,0,'ONLY')
2947 C --- Place the heat bridge elements into their mother (SSV1)
2949 XPOS=-DSRV(1)+0.47+(SQRT(3.)/6.)*4.2
2952 ZPOS=(-10.+FLOAT(J-1))*3.91-1.96-4.2/2.
2953 CALL GSPOS('SFR5',J,'SSV1',XPOS,YPOS,ZPOS,0,'ONLY')
2956 C --- Place the elements connecting the triangles of the heat bridge
2957 C into their mother (SSV1)
2961 C --- Left element (just a matter of convention)
2965 CALL GSPOS('SCE5',1,'SSV1',XPOS,YPOS,ZPOS,0,'ONLY')
2971 CALL GSPOS('SCE5',2,'SSV1',XPOS,YPOS,ZPOS,0,'ONLY')
2975 XPOS=-DSRV(1)+0.47+(SQRT(3.)/2.)*4.2+0.015
2977 CALL GSPOS('SCE5',3,'SSV1',XPOS,YPOS,ZPOS,0,'ONLY')
2979 C --- Place the ghost volumes containing the strip ladders (ISV1),
2980 C electronics/cooling (SSV1) and end-ladder stuff (ELL5) of layer #5 in
2981 C their mother volume (IT56)
2983 OFFSET1=ATG(0.8,36.6)
2986 RUNO=36.6+2.*DBOX1(1)+DSRV(1)
2987 RTWO=36.6+2.*DBOX1(1)+DELA(1)
2989 ATHETA=TWOPI*FLOAT(I-1)*RADDEG/32.+OFFSET2
2990 CALL SXSROT(IDROTM(1500+I),90.,ATHETA,90.,90.+ATHETA,0.,0.)
2994 XPOS=RZERO*COS(TWOPI*FLOAT(I-1)/32.+OFFSET1)
2995 YPOS=RZERO*SIN(TWOPI*FLOAT(I-1)/32.+OFFSET1)
2997 CALL GSPOS('ISV1',I,'IT56',XPOS,YPOS,ZPOS,IDROTM(1500+I),
3000 C --- Electronics/cooling
3002 XPOS=RUNO*COS(TWOPI*FLOAT(I-1)/32.+OFFSET1)
3003 YPOS=RUNO*SIN(TWOPI*FLOAT(I-1)/32.+OFFSET1)
3005 CALL GSPOS('SSV1',I,'IT56',XPOS,YPOS,ZPOS,IDROTM(1500+I),
3008 C --- End-ladders (nagative-Z and positive-Z)
3010 XPOS=RTWO*COS(TWOPI*FLOAT(I-1)/32.+OFFSET1)
3011 YPOS=RTWO*SIN(TWOPI*FLOAT(I-1)/32.+OFFSET1)
3012 ZPOS=-(DBOX1(3)+DELA(3)+6.)
3013 CALL GSPOS('ELL5',I,'IT56',XPOS,YPOS,ZPOS,IDROTM(1500+I),
3015 ZPOS=DBOX1(3)+DELA(3)+6.
3016 CALL GSPOS('ELL5',I+35,'IT56',XPOS,YPOS,ZPOS,IDROTM(1500+I),
3024 C GOTO 6778 ! skip ITS layer no. 6
3026 C --- Define a ghost volume containing a single ladder of layer #6 and fill
3027 C it with air or vacuum
3029 DBOX2(1)=(0.0600+2.*0.0150)/2.
3032 CALL GSVOLU('ISV2','BOX ',IDTMED(254),DBOX2,3,IOUT)
3034 C --- Make the ghost volume invisible
3036 CALL GSATT('ISV2','SEEN',0)
3038 C --- Define a ghost volume containing the electronics and cooling of
3039 C a single ladder of layer #6 and fill it with air or vacuum
3041 DSRV(1)=(0.47+(SQRT(3.)/2.)*4.2+0.05)/2.
3044 CALL GSVOLU('SSV2','BOX ',IDTMED(254),DSRV,3,IOUT)
3046 C --- Make the ghost volume invisible
3048 CALL GSATT('SSV2','SEEN',0)
3050 C --- Define a ghost volume containing the end-ladder stuff of
3051 C a single ladder of layer #6 and fill it with air or vacuum
3056 CALL GSVOLU('ELL6','BOX ',IDTMED(254),DELA,3,IOUT)
3058 C --- Make the ghost volume invisible
3060 CALL GSATT('ELL6','SEEN',0)
3062 C --- Define a volume containing the sensitive part of the strips
3063 C (silicon, layer #6)
3068 CALL GSVOLU('ITS6','BOX ',IDTMED(250),DITS,3,IOUT)
3070 C --- Define a volume containing the electronics of the strips
3071 C (silicon, layer #6)
3076 CALL GSVOLU('SCH6','BOX ',IDTMED(251),DCHI,3,IOUT)
3078 C --- Define the cooling tubes (aluminum, layer #6)
3081 DTUB(2)=DTUB(1)+0.01
3083 CALL GSVOLU('STB6','TUBE',IDTMED(256),DTUB,3,IOUT)
3085 C --- Define the cooling fluid (water or freon, layer #6)
3090 CALL GSVOLU('SWT6','TUBE',IDTMED(257),DWAT,3,IOUT) ! water
3091 C CALL GSVOLU('SWT6','TUBE',IDTMED(258),DWAT,3,IOUT) ! freon
3093 C --- Define the (triangular) element of the heat bridge (carbon, layer #6)
3100 DFRA(6)=4.2*SQRT(3.)/6.
3101 DFRA(7)=DFRA(6)+0.03
3105 CALL GSVOLU('SFR6','PGON',IDTMED(253),DFRA,10,IOUT)
3107 C --- Define the element connecting the triangles of the heat bridge
3108 C (carbon, layer #6)
3113 CALL GSVOLU('SCE6','TUBE',IDTMED(253),DCEI,3,IOUT)
3115 C --- Define the part of the end-ladder stuff made of plastic (G10FR4)
3118 DPLA(1)=(10./(8.*7.))/2.
3121 CALL GSVOLU('EPL6','BOX ',IDTMED(263),DPLA,3,IOUT)
3123 C --- Define the part of the end-ladder stuff made of copper (layer #6)
3125 DCOP(1)=(2./(8.*7.))/2.
3128 CALL GSVOLU('ECU6','BOX ',IDTMED(260),DCOP,3,IOUT)
3130 C --- Define the part of the end-ladder stuff made of epoxy (layer #6)
3132 DEPX(1)=(30./(8.*7.))/2.
3135 CALL GSVOLU('EPX6','BOX ',IDTMED(263),DEPX,3,IOUT)
3137 C --- Define the part of the end-ladder stuff made of silicon (bus)
3140 DSIL(1)=(20./(8.*7.))/2.
3143 CALL GSVOLU('ESI6','BOX ',IDTMED(252),DSIL,3,IOUT)
3145 C --- Place the end-ladder stuff into its mother (ELL5)
3147 SEP=(4.-2.*(DPLA(1)+DCOP(1)+DEPX(1)+DSIL(1)))/3.
3153 XPOS=-DELA(1)+DPLA(1)
3154 CALL GSPOS('EPL6',1,'ELL6',XPOS,YPOS,ZPOS,0,'ONLY')
3158 XPOS=-DELA(1)+2.*DPLA(1)+SEP+DCOP(1)
3159 CALL GSPOS('ECU6',1,'ELL6',XPOS,YPOS,ZPOS,0,'ONLY')
3163 XPOS=-DELA(1)+2.*DPLA(1)+SEP+2.*DCOP(1)+SEP+DEPX(1)
3164 CALL GSPOS('EPX6',1,'ELL6',XPOS,YPOS,ZPOS,0,'ONLY')
3168 XPOS=-DELA(1)+2.*DPLA(1)+SEP+2.*DCOP(1)+SEP+2.*DEPX(1)+
3170 CALL GSPOS('ESI6',1,'ELL6',XPOS,YPOS,ZPOS,0,'ONLY')
3172 C --- Place the sensitive part of the strips into its mother (ISV2)
3176 IF(MOD(J,2).EQ.0) THEN
3177 XPOS=-DBOX2(1)+DITS(1)
3179 XPOS=DBOX2(1)-DITS(1)
3181 ZPOS=(-11.+FLOAT(J-1))*3.91-1.96
3182 CALL GSPOS('ITS6',J,'ISV2',XPOS,YPOS,ZPOS,0,'ONLY')
3185 C --- Place the electronics of the strips into its mother (SSV2)
3189 IF(MOD(J,2).EQ.0) THEN
3190 XPOS=-DSRV(1)+0.28-2.*DITS(1)-0.03
3194 ZPOS=(-11.+FLOAT(J-1))*3.91-1.96+0.85
3195 CALL GSPOS('SCH5',J,'SSV1',XPOS,YPOS,ZPOS,0,'ONLY')
3198 C --- Place the cooling tubes and the cooling fluid into their mother (SSV2)
3203 C --- Left tube (just a matter of convention)
3206 CALL GSPOS('STB6',1,'SSV2',XPOS,YPOS,ZPOS,0,'ONLY')
3207 CALL GSPOS('SWT6',1,'SSV2',XPOS,YPOS,ZPOS,0,'ONLY')
3209 C --- Right tube (just a matter of convention)
3212 CALL GSPOS('STB6',2,'SSV2',XPOS,YPOS,ZPOS,0,'ONLY')
3213 CALL GSPOS('SWT6',2,'SSV2',XPOS,YPOS,ZPOS,0,'ONLY')
3215 C --- Place the heat bridge elements into their mother (SSV2)
3217 XPOS=-DSRV(1)+0.47+(SQRT(3.)/6.)*4.2
3220 ZPOS=(-11.+FLOAT(J-1))*3.91-1.96-4.2/2.
3221 CALL GSPOS('SFR6',J,'SSV2',XPOS,YPOS,ZPOS,0,'ONLY')
3224 C --- Place the elements connecting the triangles of the heat bridge
3225 C into their mother (SSV2)
3229 C --- Left element (just a matter of convention)
3233 CALL GSPOS('SCE6',1,'SSV2',XPOS,YPOS,ZPOS,0,'ONLY')
3239 CALL GSPOS('SCE6',2,'SSV2',XPOS,YPOS,ZPOS,0,'ONLY')
3243 XPOS=-DSRV(1)+0.47+(SQRT(3.)/2.)*4.2+0.015
3245 CALL GSPOS('SCE6',3,'SSV2',XPOS,YPOS,ZPOS,0,'ONLY')
3247 C --- Place the ghost volumes containing the strip ladders (ISV2),
3248 C electronics/cooling (SSV2) and end-ladder stuff (ELL6) of layer #6 in
3249 C their mother volume (IT56)
3251 OFFSET1=ATG(0.9,41.2)
3254 RUNO=41.2+2.*DBOX2(1)+DSRV(1)
3255 RTWO=41.2+2.*DBOX2(1)+DELA(1)
3257 ATHETA=TWOPI*FLOAT(I-1)*RADDEG/36.+OFFSET2
3258 CALL SXSROT(IDROTM(1600+I),90.,ATHETA,90.,90.+ATHETA,0.,0.)
3262 XPOS=RZERO*COS(TWOPI*FLOAT(I-1)/36.+OFFSET1)
3263 YPOS=RZERO*SIN(TWOPI*FLOAT(I-1)/36.+OFFSET1)
3265 CALL GSPOS('ISV2',I,'IT56',XPOS,YPOS,ZPOS,IDROTM(1600+I),
3268 C --- Electronics/cooling
3270 XPOS=RUNO*COS(TWOPI*FLOAT(I-1)/36.+OFFSET1)
3271 YPOS=RUNO*SIN(TWOPI*FLOAT(I-1)/36.+OFFSET1)
3273 CALL GSPOS('SSV2',I,'IT56',XPOS,YPOS,ZPOS,IDROTM(1600+I),
3276 C --- End-ladders (nagative-Z and positive-Z)
3278 XPOS=RTWO*COS(TWOPI*FLOAT(I-1)/36.+OFFSET1)
3279 YPOS=RTWO*SIN(TWOPI*FLOAT(I-1)/36.+OFFSET1)
3280 ZPOS=-(DBOX2(3)+DELA(3)+6.)
3281 CALL GSPOS('ELL6',I,'IT56',XPOS,YPOS,ZPOS,IDROTM(1600+I),
3283 ZPOS=DBOX2(3)+DELA(3)+6.
3284 CALL GSPOS('ELL6',I+39,'IT56',XPOS,YPOS,ZPOS,IDROTM(1600+I),
3292 C ************************************************************************
3294 C * E N D - C A P S A N D F R A M E S *
3295 C * ========================================= *
3297 C ************************************************************************
3299 C --- Define a dummy cylinder for multiple scattering tests
3301 C GOTO 7890 ! skip dummy cylinder for multiple scattering tests
3304 C DITS(2)=DITS(1)+0.1
3306 C CALL GSVOLU('ITST','TUBE',IDTMED(255),DITS,3,IOUT)
3307 C CALL GSPOS('ITST',1,'ITSV',0.,0.,0.,0,'ONLY')
3310 C --- The 0.74% X0 outer wall (C) of the gas vessel at r=50cm ---
3312 IF(IVERS.EQ.40 .OR. IVERS.EQ.43) THEN
3314 C GOTO 8901 ! skip outer wall
3317 DITS(2)=DITS(1)+0.06926
3318 DITS(3)=62.7+2.*DPCB(3)-10.5 ! old value 60.3
3319 CALL GSVOLU('ITSG','TUBE',IDTMED(275),DITS,3,I)
3320 CALL GSPOS('ITSG',1,'ITSV',0.,0.,0.,0,'ONLY')
3326 C --- The frame between the end-caps (octagonal lay-out) ---
3328 C GOTO 9012 ! skip octagonal frame
3330 IF(IVERS.EQ.41) THEN
3335 DTRA(3)=50.5+2.*DPCB(3)-10.5
3338 DTRA1(3)=SQRT(DTRA(3)*DTRA(3)+(55.4*55.4-50.5*50.5))/2.
3342 XTRA(I)=RZERO*COS(FLOAT(I-1)*ANGLE*DEGRAD)
3343 YTRA(I)=RZERO*SIN(FLOAT(I-1)*ANGLE*DEGRAD)
3345 CALL GSVOLU(NATRA(I),'TUBE',IDTMED(275),DTRA,3,IOUT)
3346 CALL GSPOS(NATRA(I),1,'ITSV',XTRA(I),YTRA(I),ZTRA(I),0,
3351 APHI1=ACOS(DTRA(3)/SQRT(DTRA(3)*DTRA(3)+
3352 $ ((50.5/COS(28.*DEGRAD))*(50.5/COS(28.*DEGRAD))-50.5*50.5)))*
3355 XPOS=(XTRA(1)+XTRA(2))/2.
3356 YPOS=(YTRA(1)+YTRA(2))/2.
3358 CALL GSVOLU(NATRA1(1),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3359 CALL SXSROT(IDROTM(5101),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3361 CALL GSPOS(NATRA1(1),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5101),'ONLY'
3364 CALL GSVOLU(NATRA1(2),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3365 CALL SXSROT(IDROTM(5102),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3367 CALL GSPOS(NATRA1(2),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5102),'ONLY'
3371 APHI2=ACOS(DTRA(3)/SQRT(DTRA(3)*DTRA(3)+
3372 $ ((50.5/COS(28.*DEGRAD))*(50.5/COS(28.*DEGRAD))-50.5*50.5)))*
3375 XPOS=(XTRA(2)+XTRA(3))/2.
3376 YPOS=(YTRA(2)+YTRA(3))/2.
3378 CALL GSVOLU(NATRA1(3),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3379 CALL SXSROT(IDROTM(5103),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3381 CALL GSPOS(NATRA1(3),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5103),'ONLY'
3384 CALL GSVOLU(NATRA1(4),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3385 CALL SXSROT(IDROTM(5104),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3387 CALL GSPOS(NATRA1(4),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5104),'ONLY'
3391 APHI1=ACOS(DTRA(3)/SQRT(DTRA(3)*DTRA(3)+
3392 $ ((50.5/COS(28.*DEGRAD))*(50.5/COS(28.*DEGRAD))-50.5*50.5)))*
3395 XPOS=(XTRA(3)+XTRA(4))/2.
3396 YPOS=(YTRA(3)+YTRA(4))/2.
3398 CALL GSVOLU(NATRA1(5),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3399 CALL SXSROT(IDROTM(5105),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3401 CALL GSPOS(NATRA1(5),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5105),'ONLY'
3404 CALL GSVOLU(NATRA1(6),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3405 CALL SXSROT(IDROTM(5106),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3407 CALL GSPOS(NATRA1(6),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5106),'ONLY'
3411 APHI2=ACOS(DTRA(3)/SQRT(DTRA(3)*DTRA(3)+
3412 $ ((50.5/COS(28.*DEGRAD))*(50.5/COS(28.*DEGRAD))-50.5*50.5)))*
3415 XPOS=(XTRA(4)+XTRA(5))/2.
3416 YPOS=(YTRA(4)+YTRA(5))/2.
3418 CALL GSVOLU(NATRA1(7),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3419 CALL SXSROT(IDROTM(5107),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3421 CALL GSPOS(NATRA1(7),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5107),'ONLY'
3424 CALL GSVOLU(NATRA1(8),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3425 CALL SXSROT(IDROTM(5108),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3427 CALL GSPOS(NATRA1(8),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5108),'ONLY'
3431 APHI2=ACOS(DTRA(3)/SQRT(DTRA(3)*DTRA(3)+
3432 $ ((50.5/COS(28.*DEGRAD))*(50.5/COS(28.*DEGRAD))-50.5*50.5)))*
3435 XPOS=(XTRA(5)+XTRA(6))/2.
3436 YPOS=(YTRA(5)+YTRA(6))/2.
3438 CALL GSVOLU(NATRA1(9),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3439 CALL SXSROT(IDROTM(5109),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3441 CALL GSPOS(NATRA1(9),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5109),'ONLY'
3444 CALL GSVOLU(NATRA1(10),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3445 CALL SXSROT(IDROTM(5110),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3447 CALL GSPOS(NATRA1(10),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5110)
3451 APHI1=ACOS(DTRA(3)/SQRT(DTRA(3)*DTRA(3)+
3452 $ ((50.5/COS(28.*DEGRAD))*(50.5/COS(28.*DEGRAD))-50.5*50.5)))*
3455 XPOS=(XTRA(6)+XTRA(7))/2.
3456 YPOS=(YTRA(6)+YTRA(7))/2.
3458 CALL GSVOLU(NATRA1(11),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3459 CALL SXSROT(IDROTM(5111),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3461 CALL GSPOS(NATRA1(11),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5111)
3464 CALL GSVOLU(NATRA1(12),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3465 CALL SXSROT(IDROTM(5112),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3467 CALL GSPOS(NATRA1(12),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5112)
3471 APHI2=ACOS(DTRA(3)/SQRT(DTRA(3)*DTRA(3)+
3472 $ ((50.5/COS(28.*DEGRAD))*(50.5/COS(28.*DEGRAD))-50.5*50.5)))*
3475 XPOS=(XTRA(7)+XTRA(8))/2.
3476 YPOS=(YTRA(7)+YTRA(8))/2.
3478 CALL GSVOLU(NATRA1(13),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3479 CALL SXSROT(IDROTM(5113),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3481 CALL GSPOS(NATRA1(13),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5113)
3484 CALL GSVOLU(NATRA1(14),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3485 CALL SXSROT(IDROTM(5114),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3487 CALL GSPOS(NATRA1(14),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5114)
3491 APHI1=ACOS(DTRA(3)/SQRT(DTRA(3)*DTRA(3)+
3492 $ ((50.5/COS(28.*DEGRAD))*(50.5/COS(28.*DEGRAD))-50.5*50.5)))*
3495 XPOS=(XTRA(8)+XTRA(1))/2.
3496 YPOS=(YTRA(8)+YTRA(1))/2.
3498 CALL GSVOLU(NATRA1(15),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3499 CALL SXSROT(IDROTM(5115),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3501 CALL GSPOS(NATRA1(15),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5115)
3504 CALL GSVOLU(NATRA1(16),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3505 CALL SXSROT(IDROTM(5116),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3507 CALL GSPOS(NATRA1(16),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5116)
3511 ELSEIF(IVERS.EQ.44) THEN
3517 DTRA(3)=50.5+2.*DPCB(3)-10.5
3520 DTRA1(3)=SQRT(DTRA(3)*DTRA(3)+(55.4*55.4-50.5*50.5))/2.
3524 XTRA(I)=RZERO*COS(FLOAT(I-1)*ANGLE*DEGRAD)
3525 YTRA(I)=RZERO*SIN(FLOAT(I-1)*ANGLE*DEGRAD)
3527 CALL GSVOLU(NATRA(I),'TUBE',IDTMED(275),DTRA,3,IOUT)
3528 CALL GSPOS(NATRA(I),1,'ITSV',XTRA(I),YTRA(I),ZTRA(I),0,
3533 APHI1=ACOS(DTRA(3)/SQRT(DTRA(3)*DTRA(3)+
3534 $ ((50.5/COS(28.*DEGRAD))*(50.5/COS(28.*DEGRAD))-50.5*50.5)))*
3537 XPOS=(XTRA(1)+XTRA(2))/2.
3538 YPOS=(YTRA(1)+YTRA(2))/2.
3540 CALL GSVOLU(NATRA1(1),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3541 CALL SXSROT(IDROTM(5101),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3543 CALL GSPOS(NATRA1(1),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5101),'ONLY'
3546 CALL GSVOLU(NATRA1(2),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3547 CALL SXSROT(IDROTM(5102),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3549 CALL GSPOS(NATRA1(2),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5102),'ONLY'
3553 APHI2=ACOS(DTRA(3)/SQRT(DTRA(3)*DTRA(3)+
3554 $ ((50.5/COS(28.*DEGRAD))*(50.5/COS(28.*DEGRAD))-50.5*50.5)))*
3557 XPOS=(XTRA(2)+XTRA(3))/2.
3558 YPOS=(YTRA(2)+YTRA(3))/2.
3560 CALL GSVOLU(NATRA1(3),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3561 CALL SXSROT(IDROTM(5103),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3563 CALL GSPOS(NATRA1(3),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5103),'ONLY'
3566 CALL GSVOLU(NATRA1(4),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3567 CALL SXSROT(IDROTM(5104),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3569 CALL GSPOS(NATRA1(4),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5104),'ONLY'
3573 APHI1=ACOS(DTRA(3)/SQRT(DTRA(3)*DTRA(3)+
3574 $ ((50.5/COS(28.*DEGRAD))*(50.5/COS(28.*DEGRAD))-50.5*50.5)))*
3577 XPOS=(XTRA(3)+XTRA(4))/2.
3578 YPOS=(YTRA(3)+YTRA(4))/2.
3580 CALL GSVOLU(NATRA1(5),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3581 CALL SXSROT(IDROTM(5105),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3583 CALL GSPOS(NATRA1(5),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5105),'ONLY'
3586 CALL GSVOLU(NATRA1(6),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3587 CALL SXSROT(IDROTM(5106),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3589 CALL GSPOS(NATRA1(6),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5106),'ONLY'
3593 APHI2=ACOS(DTRA(3)/SQRT(DTRA(3)*DTRA(3)+
3594 $ ((50.5/COS(28.*DEGRAD))*(50.5/COS(28.*DEGRAD))-50.5*50.5)))*
3597 XPOS=(XTRA(4)+XTRA(5))/2.
3598 YPOS=(YTRA(4)+YTRA(5))/2.
3600 CALL GSVOLU(NATRA1(7),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3601 CALL SXSROT(IDROTM(5107),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3603 CALL GSPOS(NATRA1(7),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5107),'ONLY'
3606 CALL GSVOLU(NATRA1(8),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3607 CALL SXSROT(IDROTM(5108),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3609 CALL GSPOS(NATRA1(8),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5108),'ONLY'
3613 APHI2=ACOS(DTRA(3)/SQRT(DTRA(3)*DTRA(3)+
3614 $ ((50.5/COS(28.*DEGRAD))*(50.5/COS(28.*DEGRAD))-50.5*50.5)))*
3617 XPOS=(XTRA(5)+XTRA(6))/2.
3618 YPOS=(YTRA(5)+YTRA(6))/2.
3620 CALL GSVOLU(NATRA1(9),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3621 CALL SXSROT(IDROTM(5109),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3623 CALL GSPOS(NATRA1(9),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5109),'ONLY'
3626 CALL GSVOLU(NATRA1(10),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3627 CALL SXSROT(IDROTM(5110),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3629 CALL GSPOS(NATRA1(10),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5110)
3633 APHI1=ACOS(DTRA(3)/SQRT(DTRA(3)*DTRA(3)+
3634 $ ((50.5/COS(28.*DEGRAD))*(50.5/COS(28.*DEGRAD))-50.5*50.5)))*
3637 XPOS=(XTRA(6)+XTRA(7))/2.
3638 YPOS=(YTRA(6)+YTRA(7))/2.
3640 CALL GSVOLU(NATRA1(11),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3641 CALL SXSROT(IDROTM(5111),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3643 CALL GSPOS(NATRA1(11),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5111)
3646 CALL GSVOLU(NATRA1(12),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3647 CALL SXSROT(IDROTM(5112),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3649 CALL GSPOS(NATRA1(12),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5112)
3653 APHI2=ACOS(DTRA(3)/SQRT(DTRA(3)*DTRA(3)+
3654 $ ((50.5/COS(28.*DEGRAD))*(50.5/COS(28.*DEGRAD))-50.5*50.5)))*
3657 XPOS=(XTRA(7)+XTRA(8))/2.
3658 YPOS=(YTRA(7)+YTRA(8))/2.
3660 CALL GSVOLU(NATRA1(13),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3661 CALL SXSROT(IDROTM(5113),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3663 CALL GSPOS(NATRA1(13),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5113)
3666 CALL GSVOLU(NATRA1(14),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3667 CALL SXSROT(IDROTM(5114),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3669 CALL GSPOS(NATRA1(14),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5114)
3673 APHI1=ACOS(DTRA(3)/SQRT(DTRA(3)*DTRA(3)+
3674 $ ((50.5/COS(28.*DEGRAD))*(50.5/COS(28.*DEGRAD))-50.5*50.5)))*
3677 XPOS=(XTRA(8)+XTRA(1))/2.
3678 YPOS=(YTRA(8)+YTRA(1))/2.
3680 CALL GSVOLU(NATRA1(15),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3681 CALL SXSROT(IDROTM(5115),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3683 CALL GSPOS(NATRA1(15),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5115)
3686 CALL GSVOLU(NATRA1(16),'TUBE',IDTMED(275),DTRA1,3,IOUT)
3687 CALL SXSROT(IDROTM(5116),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3689 CALL GSPOS(NATRA1(16),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5116)
3698 C --- The frame between the end-caps (hexagonal lay-out) ---
3700 C GOTO 9123 ! skip hexagonal frame
3702 IF(IVERS.EQ.42) THEN
3707 DTRA2(3)=50.+2.*DPCB(3)-10.5
3713 DTRA4(3)=SQRT(DTRA2(3)*DTRA2(3)+(59.9*59.9-50.*50.))/2.
3717 XTRA1(I)=RZERO*COS((FLOAT(I-1)*ANGLE+OFFSET)*DEGRAD)
3718 YTRA1(I)=RZERO*SIN((FLOAT(I-1)*ANGLE+OFFSET)*DEGRAD)
3720 CALL GSVOLU(NATRA2(I),'TUBE',IDTMED(275),DTRA2,3,IOUT)
3721 CALL GSPOS(NATRA2(I),1,'ITSV',XTRA1(I),YTRA1(I),ZTRA1(I)
3727 XPOS=(XTRA1(1)+XTRA1(2))/2.
3728 YPOS=(YTRA1(1)+YTRA1(2))/2.
3730 CALL GSVOLU(NATRA3(1),'TUBE',IDTMED(275),DTRA3,3,IOUT)
3731 CALL SXSROT(IDROTM(5201),90.,ATHETA,90.+APHI,90.+ATHETA,APHI,90.
3733 CALL GSPOS(NATRA3(1),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5201),'ONLY'
3738 XPOS=(XTRA1(2)+XTRA1(3))/2.
3739 YPOS=(YTRA1(2)+YTRA1(3))/2.
3741 CALL GSVOLU(NATRA3(2),'TUBE',IDTMED(275),DTRA3,3,IOUT)
3742 CALL SXSROT(IDROTM(5202),90.,ATHETA,90.+APHI,90.+ATHETA,APHI,90.
3744 CALL GSPOS(NATRA3(2),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5202),'ONLY'
3749 XPOS=(XTRA1(3)+XTRA1(4))/2.
3750 YPOS=(YTRA1(3)+YTRA1(4))/2.
3752 CALL GSVOLU(NATRA3(3),'TUBE',IDTMED(275),DTRA3,3,IOUT)
3753 CALL SXSROT(IDROTM(5203),90.,ATHETA,90.+APHI,90.+ATHETA,APHI,90.
3755 CALL GSPOS(NATRA3(3),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5203),'ONLY'
3760 XPOS=(XTRA1(4)+XTRA1(5))/2.
3761 YPOS=(YTRA1(4)+YTRA1(5))/2.
3763 CALL GSVOLU(NATRA3(4),'TUBE',IDTMED(275),DTRA3,3,IOUT)
3764 CALL SXSROT(IDROTM(5204),90.,ATHETA,90.+APHI,90.+ATHETA,APHI,90.
3766 CALL GSPOS(NATRA3(4),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5204),'ONLY'
3771 XPOS=(XTRA1(5)+XTRA1(6))/2.
3772 YPOS=(YTRA1(5)+YTRA1(6))/2.
3774 CALL GSVOLU(NATRA3(5),'TUBE',IDTMED(275),DTRA3,3,IOUT)
3775 CALL SXSROT(IDROTM(5205),90.,ATHETA,90.+APHI,90.+ATHETA,APHI,90.
3777 CALL GSPOS(NATRA3(5),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5205),'ONLY'
3782 XPOS=(XTRA1(6)+XTRA1(1))/2.
3783 YPOS=(YTRA1(6)+YTRA1(1))/2.
3785 CALL GSVOLU(NATRA3(6),'TUBE',IDTMED(275),DTRA3,3,IOUT)
3786 CALL SXSROT(IDROTM(5206),90.,ATHETA,90.+APHI,90.+ATHETA,APHI,90.
3788 CALL GSPOS(NATRA3(6),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5206),'ONLY'
3792 APHI2=ACOS(DTRA2(3)/SQRT(DTRA2(3)*DTRA2(3)+
3793 $ ((50./COS(34.*DEGRAD))*(50./COS(34.*DEGRAD))-50.*50.)))*
3796 XPOS=(XTRA1(1)+XTRA1(2))/2.
3797 YPOS=(YTRA1(1)+YTRA1(2))/2.
3799 CALL GSVOLU(NATRA4(1),'TUBE',IDTMED(275),DTRA4,3,IOUT)
3800 CALL SXSROT(IDROTM(5211),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3802 CALL GSPOS(NATRA4(1),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5211),'ONLY'
3805 CALL GSVOLU(NATRA4(2),'TUBE',IDTMED(275),DTRA4,3,IOUT)
3806 CALL SXSROT(IDROTM(5212),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3808 CALL GSPOS(NATRA4(2),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5212),'ONLY'
3812 APHI1=ACOS(DTRA2(3)/SQRT(DTRA2(3)*DTRA2(3)+
3813 $ ((50./COS(34.*DEGRAD))*(50./COS(34.*DEGRAD))-50.*50.)))*
3816 XPOS=(XTRA1(2)+XTRA1(3))/2.
3817 YPOS=(YTRA1(2)+YTRA1(3))/2.
3819 CALL GSVOLU(NATRA4(3),'TUBE',IDTMED(275),DTRA4,3,IOUT)
3820 CALL SXSROT(IDROTM(5213),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3822 CALL GSPOS(NATRA4(3),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5213),'ONLY'
3825 CALL GSVOLU(NATRA4(4),'TUBE',IDTMED(275),DTRA4,3,IOUT)
3826 CALL SXSROT(IDROTM(5214),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3828 CALL GSPOS(NATRA4(4),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5214),'ONLY'
3832 APHI2=ACOS(DTRA2(3)/SQRT(DTRA2(3)*DTRA2(3)+
3833 $ ((50./COS(34.*DEGRAD))*(50./COS(34.*DEGRAD))-50.*50.)))*
3836 XPOS=(XTRA1(3)+XTRA1(4))/2.
3837 YPOS=(YTRA1(3)+YTRA1(4))/2.
3839 CALL GSVOLU(NATRA4(5),'TUBE',IDTMED(275),DTRA4,3,IOUT)
3840 CALL SXSROT(IDROTM(5215),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3842 CALL GSPOS(NATRA4(5),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5215),'ONLY'
3845 CALL GSVOLU(NATRA4(6),'TUBE',IDTMED(275),DTRA4,3,IOUT)
3846 CALL SXSROT(IDROTM(5216),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3848 CALL GSPOS(NATRA4(6),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5216),'ONLY'
3851 APHI1=ACOS(DTRA2(3)/SQRT(DTRA2(3)*DTRA2(3)+
3852 $ ((50./COS(34.*DEGRAD))*(50./COS(34.*DEGRAD))-50.*50.)))*
3855 XPOS=(XTRA1(3)+XTRA1(4))/2.
3856 YPOS=(YTRA1(3)+YTRA1(4))/2.
3858 CALL GSVOLU(NATRA4(7),'TUBE',IDTMED(275),DTRA4,3,IOUT)
3859 CALL SXSROT(IDROTM(5217),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3861 CALL GSPOS(NATRA4(7),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5217),'ONLY'
3864 CALL GSVOLU(NATRA4(8),'TUBE',IDTMED(275),DTRA4,3,IOUT)
3865 CALL SXSROT(IDROTM(5218),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3867 CALL GSPOS(NATRA4(8),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5218),'ONLY'
3871 APHI2=ACOS(DTRA2(3)/SQRT(DTRA2(3)*DTRA2(3)+
3872 $ ((50./COS(34.*DEGRAD))*(50./COS(34.*DEGRAD))-50.*50.)))*
3875 XPOS=(XTRA1(4)+XTRA1(5))/2.
3876 YPOS=(YTRA1(4)+YTRA1(5))/2.
3878 CALL GSVOLU(NATRA4(9),'TUBE',IDTMED(275),DTRA4,3,IOUT)
3879 CALL SXSROT(IDROTM(5219),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3881 CALL GSPOS(NATRA4(9),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5219),'ONLY'
3884 CALL GSVOLU(NATRA4(10),'TUBE',IDTMED(275),DTRA4,3,IOUT)
3885 CALL SXSROT(IDROTM(5220),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3887 CALL GSPOS(NATRA4(10),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5220)
3891 APHI1=ACOS(DTRA2(3)/SQRT(DTRA2(3)*DTRA2(3)+
3892 $ ((50./COS(34.*DEGRAD))*(50./COS(34.*DEGRAD))-50.*50.)))*
3895 XPOS=(XTRA1(5)+XTRA1(6))/2.
3896 YPOS=(YTRA1(5)+YTRA1(6))/2.
3898 CALL GSVOLU(NATRA4(11),'TUBE',IDTMED(275),DTRA4,3,IOUT)
3899 CALL SXSROT(IDROTM(5221),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3901 CALL GSPOS(NATRA4(11),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5221)
3904 CALL GSVOLU(NATRA4(12),'TUBE',IDTMED(275),DTRA4,3,IOUT)
3905 CALL SXSROT(IDROTM(5222),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3907 CALL GSPOS(NATRA4(12),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5222)
3911 APHI2=ACOS(DTRA2(3)/SQRT(DTRA2(3)*DTRA2(3)+
3912 $ ((50./COS(34.*DEGRAD))*(50./COS(34.*DEGRAD))-50.*50.)))*
3915 XPOS=(XTRA1(6)+XTRA1(1))/2.
3916 YPOS=(YTRA1(6)+YTRA1(1))/2.
3918 CALL GSVOLU(NATRA4(13),'TUBE',IDTMED(275),DTRA4,3,IOUT)
3919 CALL SXSROT(IDROTM(5223),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3921 CALL GSPOS(NATRA4(13),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5223)
3924 CALL GSVOLU(NATRA4(14),'TUBE',IDTMED(275),DTRA4,3,IOUT)
3925 CALL SXSROT(IDROTM(5224),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3927 CALL GSPOS(NATRA4(14),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5224)
3930 APHI1=ACOS(DTRA2(3)/SQRT(DTRA2(3)*DTRA2(3)+
3931 $ ((50./COS(34.*DEGRAD))*(50./COS(34.*DEGRAD))-50.*50.)))*
3934 XPOS=(XTRA1(6)+XTRA1(1))/2.
3935 YPOS=(YTRA1(6)+YTRA1(1))/2.
3937 CALL GSVOLU(NATRA4(15),'TUBE',IDTMED(275),DTRA4,3,IOUT)
3938 CALL SXSROT(IDROTM(5225),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
3940 CALL GSPOS(NATRA4(15),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5225)
3943 CALL GSVOLU(NATRA4(16),'TUBE',IDTMED(275),DTRA4,3,IOUT)
3944 CALL SXSROT(IDROTM(5226),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
3946 CALL GSPOS(NATRA4(16),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5226)
3951 ELSEIF(IVERS.EQ.45) THEN
3957 DTRA2(3)=50.+2.*DPCB(3)-10.5
3963 DTRA4(3)=SQRT(DTRA2(3)*DTRA2(3)+(59.9*59.9-50.*50.))/2.
3967 XTRA1(I)=RZERO*COS((FLOAT(I-1)*ANGLE+OFFSET)*DEGRAD)
3968 YTRA1(I)=RZERO*SIN((FLOAT(I-1)*ANGLE+OFFSET)*DEGRAD)
3970 CALL GSVOLU(NATRA2(I),'TUBE',IDTMED(275),DTRA2,3,IOUT)
3971 CALL GSPOS(NATRA2(I),1,'ITSV',XTRA1(I),YTRA1(I),ZTRA1(I)
3977 XPOS=(XTRA1(1)+XTRA1(2))/2.
3978 YPOS=(YTRA1(1)+YTRA1(2))/2.
3980 CALL GSVOLU(NATRA3(1),'TUBE',IDTMED(275),DTRA3,3,IOUT)
3981 CALL SXSROT(IDROTM(5201),90.,ATHETA,90.+APHI,90.+ATHETA,APHI,90.
3983 CALL GSPOS(NATRA3(1),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5201),'ONLY'
3988 XPOS=(XTRA1(2)+XTRA1(3))/2.
3989 YPOS=(YTRA1(2)+YTRA1(3))/2.
3991 CALL GSVOLU(NATRA3(2),'TUBE',IDTMED(275),DTRA3,3,IOUT)
3992 CALL SXSROT(IDROTM(5202),90.,ATHETA,90.+APHI,90.+ATHETA,APHI,90.
3994 CALL GSPOS(NATRA3(2),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5202),'ONLY'
3999 XPOS=(XTRA1(3)+XTRA1(4))/2.
4000 YPOS=(YTRA1(3)+YTRA1(4))/2.
4002 CALL GSVOLU(NATRA3(3),'TUBE',IDTMED(275),DTRA3,3,IOUT)
4003 CALL SXSROT(IDROTM(5203),90.,ATHETA,90.+APHI,90.+ATHETA,APHI,90.
4005 CALL GSPOS(NATRA3(3),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5203),'ONLY'
4010 XPOS=(XTRA1(4)+XTRA1(5))/2.
4011 YPOS=(YTRA1(4)+YTRA1(5))/2.
4013 CALL GSVOLU(NATRA3(4),'TUBE',IDTMED(275),DTRA3,3,IOUT)
4014 CALL SXSROT(IDROTM(5204),90.,ATHETA,90.+APHI,90.+ATHETA,APHI,90.
4016 CALL GSPOS(NATRA3(4),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5204),'ONLY'
4021 XPOS=(XTRA1(5)+XTRA1(6))/2.
4022 YPOS=(YTRA1(5)+YTRA1(6))/2.
4024 CALL GSVOLU(NATRA3(5),'TUBE',IDTMED(275),DTRA3,3,IOUT)
4025 CALL SXSROT(IDROTM(5205),90.,ATHETA,90.+APHI,90.+ATHETA,APHI,90.
4027 CALL GSPOS(NATRA3(5),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5205),'ONLY'
4032 XPOS=(XTRA1(6)+XTRA1(1))/2.
4033 YPOS=(YTRA1(6)+YTRA1(1))/2.
4035 CALL GSVOLU(NATRA3(6),'TUBE',IDTMED(275),DTRA3,3,IOUT)
4036 CALL SXSROT(IDROTM(5206),90.,ATHETA,90.+APHI,90.+ATHETA,APHI,90.
4038 CALL GSPOS(NATRA3(6),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5206),'ONLY'
4042 APHI2=ACOS(DTRA2(3)/SQRT(DTRA2(3)*DTRA2(3)+
4043 $ ((50./COS(34.*DEGRAD))*(50./COS(34.*DEGRAD))-50.*50.)))*
4046 XPOS=(XTRA1(1)+XTRA1(2))/2.
4047 YPOS=(YTRA1(1)+YTRA1(2))/2.
4049 CALL GSVOLU(NATRA4(1),'TUBE',IDTMED(275),DTRA4,3,IOUT)
4050 CALL SXSROT(IDROTM(5211),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
4052 CALL GSPOS(NATRA4(1),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5211),'ONLY'
4055 CALL GSVOLU(NATRA4(2),'TUBE',IDTMED(275),DTRA4,3,IOUT)
4056 CALL SXSROT(IDROTM(5212),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
4058 CALL GSPOS(NATRA4(2),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5212),'ONLY'
4062 APHI1=ACOS(DTRA2(3)/SQRT(DTRA2(3)*DTRA2(3)+
4063 $ ((50./COS(34.*DEGRAD))*(50./COS(34.*DEGRAD))-50.*50.)))*
4066 XPOS=(XTRA1(2)+XTRA1(3))/2.
4067 YPOS=(YTRA1(2)+YTRA1(3))/2.
4069 CALL GSVOLU(NATRA4(3),'TUBE',IDTMED(275),DTRA4,3,IOUT)
4070 CALL SXSROT(IDROTM(5213),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
4072 CALL GSPOS(NATRA4(3),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5213),'ONLY'
4075 CALL GSVOLU(NATRA4(4),'TUBE',IDTMED(275),DTRA4,3,IOUT)
4076 CALL SXSROT(IDROTM(5214),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
4078 CALL GSPOS(NATRA4(4),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5214),'ONLY'
4082 APHI2=ACOS(DTRA2(3)/SQRT(DTRA2(3)*DTRA2(3)+
4083 $ ((50./COS(34.*DEGRAD))*(50./COS(34.*DEGRAD))-50.*50.)))*
4086 XPOS=(XTRA1(3)+XTRA1(4))/2.
4087 YPOS=(YTRA1(3)+YTRA1(4))/2.
4089 CALL GSVOLU(NATRA4(5),'TUBE',IDTMED(275),DTRA4,3,IOUT)
4090 CALL SXSROT(IDROTM(5215),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
4092 CALL GSPOS(NATRA4(5),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5215),'ONLY'
4095 CALL GSVOLU(NATRA4(6),'TUBE',IDTMED(275),DTRA4,3,IOUT)
4096 CALL SXSROT(IDROTM(5216),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
4098 CALL GSPOS(NATRA4(6),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5216),'ONLY'
4101 APHI1=ACOS(DTRA2(3)/SQRT(DTRA2(3)*DTRA2(3)+
4102 $ ((50./COS(34.*DEGRAD))*(50./COS(34.*DEGRAD))-50.*50.)))*
4105 XPOS=(XTRA1(3)+XTRA1(4))/2.
4106 YPOS=(YTRA1(3)+YTRA1(4))/2.
4108 CALL GSVOLU(NATRA4(7),'TUBE',IDTMED(275),DTRA4,3,IOUT)
4109 CALL SXSROT(IDROTM(5217),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
4111 CALL GSPOS(NATRA4(7),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5217),'ONLY'
4114 CALL GSVOLU(NATRA4(8),'TUBE',IDTMED(275),DTRA4,3,IOUT)
4115 CALL SXSROT(IDROTM(5218),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
4117 CALL GSPOS(NATRA4(8),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5218),'ONLY'
4121 APHI2=ACOS(DTRA2(3)/SQRT(DTRA2(3)*DTRA2(3)+
4122 $ ((50./COS(34.*DEGRAD))*(50./COS(34.*DEGRAD))-50.*50.)))*
4125 XPOS=(XTRA1(4)+XTRA1(5))/2.
4126 YPOS=(YTRA1(4)+YTRA1(5))/2.
4128 CALL GSVOLU(NATRA4(9),'TUBE',IDTMED(275),DTRA4,3,IOUT)
4129 CALL SXSROT(IDROTM(5219),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
4131 CALL GSPOS(NATRA4(9),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5219),'ONLY'
4134 CALL GSVOLU(NATRA4(10),'TUBE',IDTMED(275),DTRA4,3,IOUT)
4135 CALL SXSROT(IDROTM(5220),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
4137 CALL GSPOS(NATRA4(10),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5220)
4141 APHI1=ACOS(DTRA2(3)/SQRT(DTRA2(3)*DTRA2(3)+
4142 $ ((50./COS(34.*DEGRAD))*(50./COS(34.*DEGRAD))-50.*50.)))*
4145 XPOS=(XTRA1(5)+XTRA1(6))/2.
4146 YPOS=(YTRA1(5)+YTRA1(6))/2.
4148 CALL GSVOLU(NATRA4(11),'TUBE',IDTMED(275),DTRA4,3,IOUT)
4149 CALL SXSROT(IDROTM(5221),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
4151 CALL GSPOS(NATRA4(11),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5221)
4154 CALL GSVOLU(NATRA4(12),'TUBE',IDTMED(275),DTRA4,3,IOUT)
4155 CALL SXSROT(IDROTM(5222),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
4157 CALL GSPOS(NATRA4(12),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5222)
4161 APHI2=ACOS(DTRA2(3)/SQRT(DTRA2(3)*DTRA2(3)+
4162 $ ((50./COS(34.*DEGRAD))*(50./COS(34.*DEGRAD))-50.*50.)))*
4165 XPOS=(XTRA1(6)+XTRA1(1))/2.
4166 YPOS=(YTRA1(6)+YTRA1(1))/2.
4168 CALL GSVOLU(NATRA4(13),'TUBE',IDTMED(275),DTRA4,3,IOUT)
4169 CALL SXSROT(IDROTM(5223),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
4171 CALL GSPOS(NATRA4(13),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5223)
4174 CALL GSVOLU(NATRA4(14),'TUBE',IDTMED(275),DTRA4,3,IOUT)
4175 CALL SXSROT(IDROTM(5224),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
4177 CALL GSPOS(NATRA4(14),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5224)
4180 APHI1=ACOS(DTRA2(3)/SQRT(DTRA2(3)*DTRA2(3)+
4181 $ ((50./COS(34.*DEGRAD))*(50./COS(34.*DEGRAD))-50.*50.)))*
4184 XPOS=(XTRA1(6)+XTRA1(1))/2.
4185 YPOS=(YTRA1(6)+YTRA1(1))/2.
4187 CALL GSVOLU(NATRA4(15),'TUBE',IDTMED(275),DTRA4,3,IOUT)
4188 CALL SXSROT(IDROTM(5225),90.,ATHETA,90.+APHI1,90.+ATHETA,APHI1
4190 CALL GSPOS(NATRA4(15),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5225)
4193 CALL GSVOLU(NATRA4(16),'TUBE',IDTMED(275),DTRA4,3,IOUT)
4194 CALL SXSROT(IDROTM(5226),90.,ATHETA,90.+APHI2,90.+ATHETA,APHI2
4196 CALL GSPOS(NATRA4(16),1,'ITSV',XPOS,YPOS,ZPOS,IDROTM(5226)
4204 C --- Define the end-caps
4206 C GOTO 9234 ! skip both end-caps
4208 C --- Define the Z>0 end-cap
4210 C GOTO 9345 ! skip the Z>0 end-cap
4212 DCONE(1)=(338.-3.)/2./10.
4215 DCONE(4)=(338.-3.)*455./(338.-3.-10.)/10.
4216 DCONE(5)=(338.-3.)*455./(338.-3.-10.)/10.+0.02/COS(45.*DEGRAD)
4219 ZPOS=(583.+(338.-3.))/2./10.+2.*DPCB(3)-10.5 ! end-ladder electronics
4220 CALL GSVOLU('RCON','CONE',IDTMED(275),DCONE,5,IOUT)
4221 CALL GSPOS('RCON',1,'ITSV',XPOS,YPOS,ZPOS,0,'ONLY')
4223 DTUBE(1)=(338.-3.)*455./(338.-3.-10.)/10.+0.02/COS(45.*DEGRAD)
4224 DTUBE(2)=49.9 ! In the Simonetti's drawings 52. In the TP 50.
4228 ZPOS=(583./2.+(338-1.5))/10.+2.*DPCB(3)-10.5 ! end-ladder electronics
4229 CALL GSVOLU('RTB1','TUBE',IDTMED(275),DTUBE,3,IOUT)
4230 CALL GSPOS('RTB1',1,'ITSV',XPOS,YPOS,ZPOS,0,'ONLY')
4234 DTUBE(3)=26.8/2./10.
4237 ZPOS=(583./2.-89.+26.8/2.)/10.+2.*DPCB(3)-10.5 ! end-ladder electronics
4238 CALL GSVOLU('RTB2','TUBE',IDTMED(275),DTUBE,3,IOUT)
4239 CALL GSPOS('RTB2',1,'ITSV',XPOS,YPOS,ZPOS,0,'ONLY')
4245 DPGON(5)=(583./2.-62.2)/10.+2.*DPCB(3)-10.5 ! end-ladder electronics
4248 DPGON(8)=583./2./10.+2.*DPCB(3)-10.5 ! end-ladder electronics
4254 CALL GSVOLU('RP03','PGON',IDTMED(275),DPGON,10,IOUT)
4255 CALL GSPOS('RP03',1,'ITSV',XPOS,YPOS,ZPOS,0,'ONLY')
4261 DPGON(5)=(583./2.+(338.-273.))/10.+2.*DPCB(3)-10.5 ! end-ladder electronics
4264 DPGON(8)=(583./2.+(338.-273.+15.))/10.+2.*DPCB(3)-10.5 ! end-ladder electronics
4270 CALL GSVOLU('RP04','PGON',IDTMED(275),DPGON,10,IOUT)
4271 CALL GSPOS('RP04',1,'ITSV',XPOS,YPOS,ZPOS,0,'ONLY')
4273 IF(IVERS.EQ.40 .OR. IVERS.EQ.41 .OR. IVERS.EQ.42) THEN
4275 DPGON(1)=360./(2.*35.)+OFFSET2
4279 DPGON(5)=(583./2.+(338.-106.))/10.+2.*DPCB(3)-10.5 ! end-ladder electronics
4282 DPGON(8)=(583./2.+(338.-106.+15.))/10.+2.*DPCB(3)-10.5 ! end-ladder electr.
4288 CALL GSVOLU('RP05','PGON',IDTMED(275),DPGON,10,IOUT)
4289 CALL GSPOS('RP05',1,'ITSV',XPOS,YPOS,ZPOS,0,'ONLY')
4291 DPGON(1)=360./(2.*39.)+OFFSET2
4295 DPGON(5)=(583./2.+(338.-56.))/10.+2.*DPCB(3)-10.5 ! end-ladder electronics
4298 DPGON(8)=(583./2.+(338.-56.+15.))/10.+2.*DPCB(3)-10.5 ! end-ladder electr.
4304 CALL GSVOLU('RP06','PGON',IDTMED(275),DPGON,10,IOUT)
4305 CALL GSPOS('RP06',1,'ITSV',XPOS,YPOS,ZPOS,0,'ONLY')
4307 IF(IVERS.EQ.43 .OR. IVERS.EQ.44 .OR. IVERS.EQ.45) THEN
4309 DPGON(1)=360./(2.*32.)+OFFSET2
4313 DPGON(5)=(583./2.+(338.-106.))/10.-(40.-36.6)/TAN(45.*DEGRAD)+
4314 $ 2.*DPCB(3)-10.5 ! end-ladder electronics
4317 DPGON(8)=(583./2.+(338.-106.+15.))/10.-
4318 $ (40.-36.6)/TAN(45.*DEGRAD)+2.*DPCB(3)-10.5 ! end-ladder electronics
4324 CALL GSVOLU('RP05','PGON',IDTMED(275),DPGON,10,IOUT)
4325 CALL GSPOS('RP05',1,'ITSV',XPOS,YPOS,ZPOS,0,'ONLY')
4327 DPGON(1)=360./(2.*36.)+OFFSET2
4331 DPGON(5)=(583./2.+(338.-56.))/10.-(45.-41.2)/TAN(45.*DEGRAD)+
4332 $ 2.*DPCB(3)-10.5 ! end-ladder electronics
4335 DPGON(8)=(583./2.+(338.-56.+15.))/10.-
4336 $ (45.-41.2)/TAN(45.*DEGRAD)+2.*DPCB(3)-10.5 ! end-ladder electronics
4342 CALL GSVOLU('RP06','PGON',IDTMED(275),DPGON,10,IOUT)
4343 CALL GSPOS('RP06',1,'ITSV',XPOS,YPOS,ZPOS,0,'ONLY')
4348 C --- Define the Z<0 end-cap
4350 C GOTO 9456 ! skip the Z<0 end-cap
4352 DCONE(1)=(338.-3.)/2./10.
4353 DCONE(2)=(338.-3.)*455./(338.-3.-10.)/10.
4354 DCONE(3)=(338.-3.)*455./(338.-3.-10.)/10.+0.02/COS(45.*DEGRAD)
4359 ZPOS=-(583.+(338.-3.))/2./10.-2.*DPCB(3)+10.5 ! end-ladder electronics
4360 CALL GSVOLU('LCON','CONE',IDTMED(275),DCONE,5,IOUT)
4361 CALL GSPOS('LCON',1,'ITSV',XPOS,YPOS,ZPOS,0,'ONLY')
4363 DTUBE(1)=(338.-3.)*455./(338.-3.-10.)/10.+0.02/COS(45.*DEGRAD)
4364 DTUBE(2)=49.9 ! In the Simonetti's drawings 52. In the TP 50.
4368 ZPOS=-(583./2.+(338-1.5))/10.-2.*DPCB(3)+10.5 ! end-ladder electronics
4369 CALL GSVOLU('LTB1','TUBE',IDTMED(275),DTUBE,3,IOUT)
4370 CALL GSPOS('LTB1',1,'ITSV',XPOS,YPOS,ZPOS,0,'ONLY')
4374 DTUBE(3)=26.8/2./10.
4377 ZPOS=-(583./2.-89.+26.8/2.)/10.-2.*DPCB(3)+10.5 ! end-ladder electronics
4378 CALL GSVOLU('LTB2','TUBE',IDTMED(275),DTUBE,3,IOUT)
4379 CALL GSPOS('LTB2',1,'ITSV',XPOS,YPOS,ZPOS,0,'ONLY')
4385 DPGON(5)=-583./2./10.-2.*DPCB(3)+10.5 ! end-ladder electronics
4388 DPGON(8)=-(583./2.-62.2)/10.-2.*DPCB(3)+10.5 ! end-ladder electronics
4394 CALL GSVOLU('LP03','PGON',IDTMED(275),DPGON,10,IOUT)
4395 CALL GSPOS('LP03',1,'ITSV',XPOS,YPOS,ZPOS,0,'ONLY')
4401 DPGON(5)=-(583./2.+(338.-273.+15.))/10.-2.*DPCB(3)+10.5 ! end-ladder electr.
4404 DPGON(8)=-(583./2.+(338.-273.))/10.-2.*DPCB(3)+10.5 ! end-ladder electronics
4410 CALL GSVOLU('LP04','PGON',IDTMED(275),DPGON,10,IOUT)
4411 CALL GSPOS('LP04',1,'ITSV',XPOS,YPOS,ZPOS,0,'ONLY')
4413 IF(IVERS.EQ.40 .OR. IVERS.EQ.41 .OR. IVERS.EQ.42) THEN
4415 DPGON(1)=360./(2.*35.)+OFFSET2
4419 DPGON(5)=-(583./2.+(338.-106.))/10.-2.*DPCB(3)+10.5 ! end-ladder electr.
4422 DPGON(8)=-(583./2.+(338.-106.+15.))/10.-2.*DPCB(3)+10.5 ! end-ladder electr.
4428 CALL GSVOLU('LP05','PGON',IDTMED(275),DPGON,10,IOUT)
4429 CALL GSPOS('LP05',1,'ITSV',XPOS,YPOS,ZPOS,0,'ONLY')
4431 DPGON(1)=360./(2.*39.)+OFFSET2
4435 DPGON(5)=-(583./2.+(338.-56.))/10.-2.*DPCB(3)+10.5 ! end-ladder electronics
4438 DPGON(8)=-(583./2.+(338.-56.+15.))/10.-2.*DPCB(3)+10.5 ! end-ladder electr.
4444 CALL GSVOLU('LP06','PGON',IDTMED(275),DPGON,10,IOUT)
4445 CALL GSPOS('LP06',1,'ITSV',XPOS,YPOS,ZPOS,0,'ONLY')
4447 IF(IVERS.EQ.43 .OR. IVERS.EQ.44 .OR. IVERS.EQ.45) THEN
4449 DPGON(1)=360./(2.*32.)+OFFSET2
4453 DPGON(5)=-(583./2.+(338.-106.))/10.+(40.-36.6)/TAN(45.*DEGRAD)-
4454 $ 2.*DPCB(3)+10.5 ! end-ladder electronics
4457 DPGON(8)=-(583./2.+(338.-106.+15.))/10.+
4458 $ (40.-36.6)/TAN(45.*DEGRAD)-2.*DPCB(3)+10.5 ! end-ladder electronics
4464 CALL GSVOLU('LP05','PGON',IDTMED(275),DPGON,10,IOUT)
4465 CALL GSPOS('LP05',1,'ITSV',XPOS,YPOS,ZPOS,0,'ONLY')
4467 DPGON(1)=360./(2.*36.)+OFFSET2
4471 DPGON(5)=-(583./2.+(338.-56.))/10.+(45.-41.2)/TAN(45.*DEGRAD)-
4472 $ 2.*DPCB(3)+10.5 ! end-ladder electronics
4475 DPGON(8)=-(583./2.+(338.-56.+15.))/10.+
4476 $ (45.-41.2)/TAN(45.*DEGRAD)-2.*DPCB(3)+10.5 ! end-ladder electronics
4482 CALL GSVOLU('LP06','PGON',IDTMED(275),DPGON,10,IOUT)
4483 CALL GSPOS('LP06',1,'ITSV',XPOS,YPOS,ZPOS,0,'ONLY')