]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/gdraw/gdplst.F
Fix needed on Sun and Alpha
[u/mrichter/AliRoot.git] / GEANT321 / gdraw / gdplst.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1995/10/24 10:20:23 cernlib
6* Geant
7*
8*
9#include "geant321/pilot.h"
10*CMZ : 3.21/02 29/03/94 15.41.26 by S.Giani
11*-- Author :
12*
13 SUBROUTINE GDPLST(JVSIM,NAME,LEVMAX,KXXX)
14*
15***************************************************************
16* *
17* Routine name: GDPLST Date: 19-2-92 *
18* *
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. *
28* *
29* Author: S. Giani ****** *
30* *
31***************************************************************
32*
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"
44*
45 CHARACTER*4 NAME,SAVNAM,NAME1,MOTH,SAVSAN,NNNN
46 CHARACTER*1 GCHAR
47*
48 IF(NNPAR.EQ.3.AND.KXXX.EQ.0)GOTO 110
49 JSIM=0
50 IDINAM=2
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, ' ')
58 NEE=NUMND1+10
59 NEES=NEE*7
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)
68 CALL IGRNG(YPLT,XPLT)
69 SAVNAM=NAME
70 SAVSAN=SAVNAM
71 LSAVLE=LEVMAX
72 LSAVSA=LSAVLE
73 YPLTNE=YPLT
74 XPLTNE=XPLT
75 NUMNDS=NUMND1
76 DO 10 J=1,NUMND1
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)
84 10 CONTINUE
85 IPLAC=LEVMAX
86 20 CONTINUE
87 IPICK=0
88 IF(IDINAM.EQ.2)THEN
89 CALL IGRNG(YPLT,XPLT)
90 ELSE
91 CALL IGRNG(YPLTNE,XPLTNE)
92 ENDIF
93 IF(KXXX.EQ.1)THEN
94 KACKT=1
95 KCHAR=1
96 IPICK=1
97 CALL GLOOK(NAME,IQ(JVOLUM+1),NVOLUM,IVO)
98 IF (IVO.LE.0) GO TO 110
99 GOTO 50
100 ENDIF
101 CALL IRQLC(1,1,KCHAR,NT,V0,U0)
102 IF (KCHAR.EQ.0) GO TO 50
103 GCHAR=CHAR(KCHAR)
104 IF(IDINAM.EQ.2)THEN
105 NUMNUM=NUMND1
106 ELSE
107 NUMNUM=NUMNDS
108 ENDIF
109 DO 40 J=1,NUMNUM
110 IF(IDINAM.EQ.2)THEN
111 IF (IQ(JSCA1+J).NE.0) THEN
112 IF(U0.LT.(Q(JULEV+J)-SIZD2).OR.U0.GT.(Q(JULEV+J)+SIZD2))
113 + GO TO 30
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
116 IPICK=J
117 KACKT=0
118 IF(V0.LT.(Q(JVLEV+J)-(SIZD2*2.*FACHV)))THEN
119 KACKT=-1
120 PLAC=((Q(JVLEV+J)-(SIZD2*2.*FACHV))-V0)*(IQ(JMYLL+J)
121 + -1)/HALF
122 IPLACS=PLAC+1
123 ENDIF
124 IF(V0.GT.(Q(JVLEV+J)+(SIZD2*2.*FACHV)))THEN
125 KACKT=1
126 PLAC=(V0-(Q(JVLEV+J)+(SIZD2*2.*FACHV)))*IQ(JTICK+J)/
127 + HALF
128 IPLAC=PLAC
129* IF((PLAC-IPLAC).GT..5)IPLAC=IPLAC+1
130 IPLAC=IPLAC+2
131 ENDIF
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)
143 ENDIF
144 GO TO 20
145 ENDIF
146 ENDIF
147 30 CONTINUE
148 40 CONTINUE
149 50 CONTINUE
150 IF(KCHAR.EQ.0)THEN
151 IF(IDINAM.EQ.2)THEN
152 IF(JVSIM.EQ.2.AND.JSIM.EQ.1)CALL ICLWK(2)
153 GOTO 110
154 ENDIF
155 ELSE
156 IF (IPICK.NE.0) THEN
157 IF(JSIM.EQ.0.AND.JVSIM.EQ.2.AND.KACKT.EQ.0)THEN
158 JSIM=1
159 CALL IOPWK(2,1,9)
160 ENDIF
161 IF(IDINAM.EQ.1)THEN
162 CALL UHTOC(IQ(JAASS3+IPICK),4,NAME,4)
163 CALL IDAWK(1)
164 CALL IACWK(JVSIM)
165 ELSEIF(IDINAM.EQ.2.AND.KXXX.NE.1)THEN
166 CALL UHTOC(IQ(JNAM1+IPICK),4,NAME,4)
167 ENDIF
168 CALL ISELNT(1)
169* CALL ICLRWK(JVSIM,1)
170 IF(KACKT.NE.0)CALL ICLRWK(0,0)
171 IF(KACKT.EQ.0)THEN
172 CALL IDAWK(1)
173 CALL IACWK(JVSIM)
174 CALL IGRNG(SAVPLX,SAVPLY)
175 CALL ICLRWK(0,0)
176 CALL GDSPEC(NAME)
177 CALL IDAWK(JVSIM)
178 CALL IACWK(1)
179 IF(IDINAM.EQ.2.AND.JVSIM.EQ.1)THEN
180 CALL IRQLC(1,1,KCHAR,NT,V0,U0)
181 CALL ICLRWK(0,0)
182 CALL ISELNT(1)
183 INTFLA=1
184 CALL GDTREE(SAVSAN,0,110)
185 INTFLA=-1
186 CALL GDTREE(SAVSAN,LSAVSA,111)
187 ENDIF
188 ELSEIF(KACKT.EQ.1)THEN
189 IF(KXXX.EQ.1)KXXX=0
190 NUMNDA=NUMND1
191 NUMND1=NUMND2
192 NNNN=NAME
193 IADDI=0
194 DO 81 JI=1,NUMND2
195 IQ(JNAM1+JI)=IQ(JFINAM+JI)
196 IQ(JSCA1+JI)=IQ(JFISCA+JI)
197 IQ(JMOT1+JI)=IQ(JFIMOT+JI)
198 81 CONTINUE
199 IF(NAME.EQ.MOMO)GOTO 41
200 DO 91 II=1,16
201 CALL GDTR8(NAME,MOTH,IONL)
202 IF(MOTH.EQ.MOMO)THEN
203 IADDI=II
204 GOTO 41
205 ENDIF
206 NAME=MOTH
207 91 CONTINUE
208 41 CONTINUE
209 NUMND1=NUMNDA
210 NAME=NNNN
211 INTFLA=1
212 CALL GDTREE(NAME,0,110)
213 INTFLA=-1
214 IF(NNPAR.NE.3)THEN
215 CALL GDTREE(NAME,IPLAC,111)
216 ELSE
217 CALL GDTREE(NAME,IPLAC,IISELT)
218 GOTO 110
219 ENDIF
220 IF(IDINAM.EQ.2.OR.KCHAR.EQ.2)THEN
221 SAVSAN=NAME
222 LSAVSA=IPLAC
223 ENDIF
224 ELSEIF(KACKT.EQ.-1)THEN
225 NUMNDA=NUMND1
226 NUMND1=NUMND2
227 IADDI=0
228 DO 80 JII=1,NUMND2
229 IQ(JNAM1+JII)=IQ(JFINAM+JII)
230 IQ(JSCA1+JII)=IQ(JFISCA+JII)
231 IQ(JMOT1+JII)=IQ(JFIMOT+JII)
232 80 CONTINUE
233 DO 90 II=1,IPLACS
234 CALL GDTR8(NAME,MOTH,IONL)
235 NAME=MOTH
236 90 CONTINUE
237 NNNN=NAME
238 IF(NAME.EQ.MOMO)GOTO 42
239 DO 92 II=1,16
240 CALL GDTR8(NAME,MOTH,IONL)
241 IF(MOTH.EQ.MOMO)THEN
242 IADDI=II
243 GOTO 42
244 ENDIF
245 NAME=MOTH
246 92 CONTINUE
247 42 CONTINUE
248 NAME=NNNN
249 NUMND1=NUMNDA
250 INTFLA=1
251 CALL GDTREE(NAME,0,110)
252 INTFLA=-1
253 CALL GDTREE(NAME,IPLAC,111)
254 IF(IDINAM.EQ.2.OR.KCHAR.EQ.2)THEN
255 SAVSAN=NAME
256 LSAVSA=IPLAC
257 ENDIF
258 ENDIF
259 CALL ISELNT(1)
260 GO TO 20
261 ELSE
262 GOTO 20
263 ENDIF
264 ENDIF
265*
266 110 CONTINUE
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, ' ')
280 LARETT(1)=0
281 999 END