5 * Revision 1.1.1.1 1995/10/24 10:20:23 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.26 by S.Giani
13 SUBROUTINE GDPLST(JVSIM,NAME,LEVMAX,KXXX)
15 ***************************************************************
17 * Routine name: GDPLST Date: 19-2-92 *
19 * Function: It performs the drawing of the tree under the *
20 * user control. Clicking the left button of the *
21 * mouse when the cursor is inside the name's box *
22 * will display the specification of such a volume, *
23 * clicking on the red arrows will display the tree *
24 * below it, clicking on the green arrows will dis- *
25 * play the tree starting from an upper level. *
26 * The number of levels displayed in both cases *
27 * depends on the arrow which has been clicked. *
29 * Author: S. Giani ****** *
31 ***************************************************************
33 #include "geant321/gcbank.inc"
34 #include "geant321/pawc.inc"
35 #include "geant321/gcnum.inc"
36 #include "geant321/gcunit.inc"
37 #include "geant321/gcdraw.inc"
38 #include "geant321/gcgobj.inc"
39 #include "geant321/gcmutr.inc"
40 #include "geant321/gcspee.inc"
41 #include "geant321/gchil2.inc"
42 #include "geant321/gccurs.inc"
43 #include "geant321/gcursb.inc"
45 CHARACTER*4 NAME,SAVNAM,NAME1,MOTH,SAVSAN,NNNN
48 IF(NNPAR.EQ.3.AND.KXXX.EQ.0)GOTO 110
51 IF(JAASS1.NE.0) CALL MZDROP(IXSTOR, JAASS1, ' ')
52 IF(JAASS2.NE.0) CALL MZDROP(IXSTOR, JAASS2, ' ')
53 IF(JAASS3.NE.0) CALL MZDROP(IXSTOR, JAASS3, ' ')
54 IF(JAASS4.NE.0) CALL MZDROP(IXSTOR, JAASS4, ' ')
55 IF(JTICKS.NE.0) CALL MZDROP(IXSTOR, JTICKS, ' ')
56 IF(JMYLLS.NE.0) CALL MZDROP(IXSTOR, JMYLLS, ' ')
57 IF(JMYMOT.NE.0) CALL MZDROP(IXSTOR, JMYMOT, ' ')
60 CALL MZNEED(IXDIV,NEES,'G')
61 CALL MZBOOK(IXDIV,JAASS1,JAASS1,1,'TREX',0,0,NEE,3,-1)
62 CALL MZBOOK(IXDIV,JAASS2,JAASS2,1,'TREY',0,0,NEE,3,-1)
63 CALL MZBOOK(IXDIV,JAASS3,JAASS3,1,'NAMS',0,0,NEE,2,-1)
64 CALL MZBOOK(IXDIV,JAASS4,JAASS4,1,'SCAS',0,0,NEE,2,-1)
65 CALL MZBOOK(IXDIV,JTICKS,JTICKS,1,'TICK',0,0,NEE,2,-1)
66 CALL MZBOOK(IXDIV,JMYLLS,JMYLLS,1,'MYLS',0,0,NEE,2,-1)
67 CALL MZBOOK(IXDIV,JMYMOT,JMYMOT,1,'MYMO',0,0,NEE,2,-1)
77 Q(JAASS1+J)=Q(JULEV+J)
78 Q(JAASS2+J)=Q(JVLEV+J)
79 IQ(JAASS3+J)=IQ(JNAM1+J)
80 IQ(JAASS4+J)=IQ(JSCA1+J)
81 IQ(JTICKS+J)=IQ(JTICK+J)
82 IQ(JMYLLS+J)=IQ(JMYLL+J)
83 IQ(JMYMOT+J)=IQ(JMOT1+J)
91 CALL IGRNG(YPLTNE,XPLTNE)
97 CALL GLOOK(NAME,IQ(JVOLUM+1),NVOLUM,IVO)
98 IF (IVO.LE.0) GO TO 110
101 CALL IRQLC(1,1,KCHAR,NT,V0,U0)
102 IF (KCHAR.EQ.0) GO TO 50
111 IF (IQ(JSCA1+J).NE.0) THEN
112 IF(U0.LT.(Q(JULEV+J)-SIZD2).OR.U0.GT.(Q(JULEV+J)+SIZD2))
114 IF(V0.LT.(Q(JVLEV+J)-(SIZD2*2.*FACHV)-HALF).OR.V0.GT.(
115 + Q(JVLEV+J)+(SIZD2*2.*FACHV)+HALF)) GO TO 30
118 IF(V0.LT.(Q(JVLEV+J)-(SIZD2*2.*FACHV)))THEN
120 PLAC=((Q(JVLEV+J)-(SIZD2*2.*FACHV))-V0)*(IQ(JMYLL+J)
124 IF(V0.GT.(Q(JVLEV+J)+(SIZD2*2.*FACHV)))THEN
126 PLAC=(V0-(Q(JVLEV+J)+(SIZD2*2.*FACHV)))*IQ(JTICK+J)/
129 * IF((PLAC-IPLAC).GT..5)IPLAC=IPLAC+1
132 IF (KCHAR.EQ.1.OR.KCHAR.EQ.2) GO TO 50
133 IF(GCHAR.EQ.' ')GO TO 50
134 CALL UHTOC(IQ(JNAM1+J),4,NAME1,4)
135 IF (GCHAR.EQ.'2') THEN
136 CALL GSATT(NAME1,'SEEN',-2)
137 ELSE IF (GCHAR.EQ.'-') THEN
138 CALL GSATT(NAME1,'SEEN',-1)
139 ELSE IF (GCHAR.EQ.'0') THEN
140 CALL GSATT(NAME1,'SEEN',0)
141 ELSE IF (GCHAR.EQ.'1') THEN
142 CALL GSATT(NAME1,'SEEN',1)
152 IF(JVSIM.EQ.2.AND.JSIM.EQ.1)CALL ICLWK(2)
157 IF(JSIM.EQ.0.AND.JVSIM.EQ.2.AND.KACKT.EQ.0)THEN
162 CALL UHTOC(IQ(JAASS3+IPICK),4,NAME,4)
165 ELSEIF(IDINAM.EQ.2.AND.KXXX.NE.1)THEN
166 CALL UHTOC(IQ(JNAM1+IPICK),4,NAME,4)
169 * CALL ICLRWK(JVSIM,1)
170 IF(KACKT.NE.0)CALL ICLRWK(0,0)
174 CALL IGRNG(SAVPLX,SAVPLY)
179 IF(IDINAM.EQ.2.AND.JVSIM.EQ.1)THEN
180 CALL IRQLC(1,1,KCHAR,NT,V0,U0)
184 CALL GDTREE(SAVSAN,0,110)
186 CALL GDTREE(SAVSAN,LSAVSA,111)
188 ELSEIF(KACKT.EQ.1)THEN
195 IQ(JNAM1+JI)=IQ(JFINAM+JI)
196 IQ(JSCA1+JI)=IQ(JFISCA+JI)
197 IQ(JMOT1+JI)=IQ(JFIMOT+JI)
199 IF(NAME.EQ.MOMO)GOTO 41
201 CALL GDTR8(NAME,MOTH,IONL)
212 CALL GDTREE(NAME,0,110)
215 CALL GDTREE(NAME,IPLAC,111)
217 CALL GDTREE(NAME,IPLAC,IISELT)
220 IF(IDINAM.EQ.2.OR.KCHAR.EQ.2)THEN
224 ELSEIF(KACKT.EQ.-1)THEN
229 IQ(JNAM1+JII)=IQ(JFINAM+JII)
230 IQ(JSCA1+JII)=IQ(JFISCA+JII)
231 IQ(JMOT1+JII)=IQ(JFIMOT+JII)
234 CALL GDTR8(NAME,MOTH,IONL)
238 IF(NAME.EQ.MOMO)GOTO 42
240 CALL GDTR8(NAME,MOTH,IONL)
251 CALL GDTREE(NAME,0,110)
253 CALL GDTREE(NAME,IPLAC,111)
254 IF(IDINAM.EQ.2.OR.KCHAR.EQ.2)THEN
267 *************** CALL IGRNG(SAVPLX,SAVPLY)
268 IF(JAASS1.NE.0) CALL MZDROP(IXSTOR, JAASS1, ' ')
269 IF(JAASS2.NE.0) CALL MZDROP(IXSTOR, JAASS2, ' ')
270 IF(JAASS3.NE.0) CALL MZDROP(IXSTOR, JAASS3, ' ')
271 IF(JAASS4.NE.0) CALL MZDROP(IXSTOR, JAASS4, ' ')
272 IF(JTICKS.NE.0) CALL MZDROP(IXSTOR, JTICKS, ' ')
273 IF(JMYLLS.NE.0) CALL MZDROP(IXSTOR, JMYLLS, ' ')
274 IF(JMYMOT.NE.0) CALL MZDROP(IXSTOR, JMYMOT, ' ')
275 IF(JMYLL.NE.0) CALL MZDROP(IXSTOR, JMYLL, ' ')
276 IF(JTICK.NE.0) CALL MZDROP(IXSTOR, JTICK, ' ')
277 IF(JFIMOT.NE.0) CALL MZDROP(IXSTOR, JFIMOT, ' ')
278 IF(JFISCA.NE.0) CALL MZDROP(IXSTOR, JFISCA, ' ')
279 IF(JFINAM.NE.0) CALL MZDROP(IXSTOR, JFINAM, ' ')