]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/gdraw/gspe3d.F
100 parameters now allowed for geant shapes
[u/mrichter/AliRoot.git] / GEANT321 / gdraw / gspe3d.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
d43b40e2 5* Revision 1.1.1.1 1999/05/18 15:55:04 fca
6* AliRoot sources
7*
fe4da5cc 8* Revision 1.1.1.1 1995/10/24 10:20:30 cernlib
9* Geant
10*
11*
12#include "geant321/pilot.h"
13*CMZ : 3.21/02 29/03/94 15.41.27 by S.Giani
14*-- Author :
15 SUBROUTINE GSPE3D(NAME,TETA3,PHI3,PSI3,U03,V03,ZM3)
16C.
17C. ******************************************************************
18C. * *
19C. * This routine draws specifications of volume NAME *
20C. * *
21C. * ==>Called by : <USER>, <GXINT>, GDFSPC *
22C. * *
23C. * Author : S.Giani 29-10-92 ************ *
24C. * *
25C. ******************************************************************
26C.
27#include "geant321/gcbank.inc"
28#include "geant321/gcdraw.inc"
29#include "geant321/gcnum.inc"
30#include "geant321/gcshno.inc"
31 COMMON/SP3D/ISPFLA
32*
33 CHARACTER*4 NAME,NAMSEE,ISON
d43b40e2 34 DIMENSION PAR(100)
fe4da5cc 35 DIMENSION U0(3),V0(3),THE(3),PHI(3)
36 DIMENSION U01(3),V01(3)
37 DIMENSION NNDM(100),INDM(5,100),ATT(10)
38 SAVE NNDM,INDM,U01,V01,THE,PHI,XMAN1,YMAN1
39C
40 DATA NNDM/0,0,0,4,0,2,0,2,4,3,4,3,0,0,13*0,5,72*0/
41 DATA INDM/0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 2,3,7,11,0, 0,0,0,0,0,
42 + 4,5,0,0,0, 0,0,0,0,0, 6,7,0,0,0, 3,4,5,6,0, 4,5,6,0,0,
43 + 1,2,3,4,0, 1,2,3,0,0, 0,0,0,0,0, 70*0, 2,3,4,8,12,
44 + 360*0/
45C
46 DATA U01/14.5,5.5,14.5/
47 DATA V01/14.,5.,5./
48 DATA THE/45.,0.,90./
49 DATA PHI/135.,0.,180./
50 DATA XMAN1/3./
51 DATA YMAN1/3./
52C.
53C. ------------------------------------------------------------------
54C.
55 CALL ICLRWK(1,1)
56 ISPFLA=0
57C Is NAME an existing volume ?
58C
59 CALL IGRNG(20.,20.)
60 CALL GLOOK(NAME,IQ(JVOLUM+1),NVOLUM,IVO)
61 IF (IVO.LE.0) GO TO 999
62C
63C Normalize to PLTRNX,PLTRNY
64C
65 DO 10 I=1,3
66 U0(I)=U01(I)*PLTRNX/20.
67 V0(I)=V01(I)*PLTRNY/20.
68 10 CONTINUE
69 XMAN=XMAN1*PLTRNX/20.
70 YMAN=YMAN1*PLTRNY/20.
71C
72C Save GDRAW calling parameters
73C and ZOOM internal parameters
74C
75 GTHETA=TETA3
76 GPHI=PHI3
77 GPSI=PSI3
78*
79 SAVTHE=GTHETA
80 SAVPHI=GPHI
81 SAVPSI=GPSI
82 SAVU0=GU0
83 SAVV0=GV0
84 SAVSCU=GSCU
85 SAVSCV=GSCV
86 SVGZUA=GZUA
87 SVGZVA=GZVA
88 SVGZUB=GZUB
89 SVGZVB=GZVB
90 SVGZUC=GZUC
91 SVGZVC=GZVC
92 GZUA=1
93 GZVA=1
94 GZUB=0
95 GZVB=0
96 GZUC=0
97 GZVC=0
98C
99C Get shape type
100C
101 JVO=LQ(JVOLUM-IVO)
102 ISHAPE=Q(JVO+2)
103C
104C Get user parameters
105C
106 CALL GFPARA(NAME,1,0,NPAR,NATT,PAR,ATT)
107 IF(NPAR.LE.0) GO TO 70
108C
109C
110C Check parameter sizes
111C
112 PARMAX=-1.
113 DO 40 I=1,NPAR
114 IF(NNDM(ISHAPE).LE.0) GO TO 30
115 NDM=NNDM(ISHAPE)
116 DO 20 IDM=1,NDM
117 IF(I.EQ.INDM(IDM,ISHAPE)) GO TO 40
118 20 CONTINUE
119 30 ABSPAR=ABS(PAR(I))
120 PARMAX=MAX(PARMAX,ABSPAR)
121 40 CONTINUE
122C
123 AXSIZ=PARMAX*.5
124 PARMAX=PARMAX/ZM3
125 GSCU=MIN(PLTRNX,PLTRNY)/(7.*PARMAX)
126 GSCV=GSCU
127C
128C Draw header
129C
130 CALL GDHEAD(-1,NAME,0.)
131C
132C Draw parameters list
133C
134C
135C Draw views
136C
137 CALL GFATT(NAME,'SEEN',KSEEN)
138C
139C Add local value SEEN 1 to starting node of tree
140C
141 KSEEN=KSEEN+110
142 ISEEN=KSEEN
143 CALL GSATT(NAME,'SEEN',ISEEN)
144C
145 CALL GSATT(NAME,'COLO',2)
146 CALL GDNSON(NAME,NSON,IDIV)
147 DO 50 N=1,NSON
148 CALL GDSON(N,NAME,ISON)
149 CALL GFATT(ISON,'SEEN',KSEEN)
150C
151C ISON is a volume with multiplicity;
152C first occurrence has already been set
153C
154 IF (KSEEN.GT.50) GO TO 50
155C
156C Add local value SEEN -2 to each one-level-down node
157C
158 KSEEN=KSEEN+80
159 ISEEN=KSEEN
160 CALL GSATT(ISON,'SEEN',ISEEN)
161C
162 CALL GSATT(ISON,'COLO',4)
163 50 CONTINUE
164C
165 ISPFLA=1
166 CALL GDRAW(NAME,TETA3,PHI3,PSI3,U03,V03,GSCU,GSCV)
167 CALL GDCOL(3)
168* XSCAL=PLTRNX/4.
169* YSCAL=PLTRNY/2.
170 XSCAL=17.
171 YSCAL=3.
172 CALL GDSCAL(XSCAL,YSCAL)
173** IF (GSCU.LE.0.05) CALL GDMAN(XMAN,YMAN)
174 IF (GSCU.LE.0.05) CALL GDWMN1(XMAN,YMAN)
175 CALL GDAXIS(0.,0.,0.,AXSIZ)
176 ISPFLA=0
177C
178 CALL GPVOLX(IVO)
179*
180 CALL GDCOL(0)
181C
182C Reset global SEEN values
183C
184 DO 60 IVO=1,NVOLUM
185 CALL UHTOC(IQ(JVOLUM+IVO),4,NAMSEE,4)
186 CALL GFATT(NAMSEE,'SEEN',KSEEN)
187 IF (KSEEN.LT.50) GO TO 60
188 ISEENL=KSEEN/10.+0.5
189 ISEENG=KSEEN-ISEENL*10.
190 CALL GSATT(NAMSEE,'SEEN',ISEENG)
191 60 CONTINUE
192C
193 70 CONTINUE
194C
195C Restore GDRAW calling parameters
196C and ZOOM internal parameters
197C
198 GTHETA=SAVTHE
199 GPHI=SAVPHI
200 GPSI=SAVPSI
201 GU0=SAVU0
202 GV0=SAVV0
203 GSCU=SAVSCU
204 GSCV=SAVSCV
205 NGVIEW=0
206 GZUA=SVGZUA
207 GZVA=SVGZVA
208 GZUB=SVGZUB
209 GZVB=SVGZVB
210 GZUC=SVGZUC
211 GZVC=SVGZVC
212 999 END