]> git.uio.no Git - u/mrichter/AliRoot.git/blob - GEANT321/gdraw/gdhead.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / GEANT321 / gdraw / gdhead.F
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       SUBROUTINE GDHEAD(ISEL,NAME,CHRSIZ)
13 C.
14 C.    ******************************************************************
15 C.    *                                                                *
16 C.    *       This routine draws a graphics header.                    *
17 C.    *       NAME is an hollerith string terminated by a dollar sign. *
18 C.    *                                                                *
19 C.    *       Different options can be chosen by the parameter ISEL :  *
20 C.    *       =0 to have only the header lines                         *
21 C.    *       =xxxxx1 to add the text NAME centered on top of header   *
22 C.    *       =xxxx1x to add global detector name (first vol.) on left *
23 C.    *       =xxx1xx to add date on right                             *
24 C.    *       =xx1xxx to select thick characters for NAME (i.e. with   *
25 C.    *               larger line width)                               *
26 C.    *       =x1xxxx to add the text 'Event NR x' on top of header    *
27 C.    *       =1xxxxx to add the text 'Run NR x' on top of header      *
28 C.    *                                                                *
29 C.    *       A negative value of ISEL means special headers, i.e.     *
30 C.    *       directly used by GEANT3 routines :                       *
31 C.    *       =-1 : GDSPEC header                                      *
32 C.    *       =-3 : VIEWXY header                                      *
33 C.    *       =-4 : VIEWYZ header                                      *
34 C.    *       =-5 : VIEWXZ header                                      *
35 C.    *                                                                *
36 C.    *    ==>Called by : <USER>, <GXINT>, GDSPEC, GDTREE              *
37 C.    *       Author : P.Zanarini   *********                          *
38 C.    *                                                                *
39 C.    ******************************************************************
40 C.
41 #include "geant321/gcbank.inc"
42 #include "geant321/gcflag.inc"
43 #include "geant321/gcdraw.inc"
44 #include "geant321/gctime.inc"
45 C
46       DIMENSION UH(5),VH(5),UHH(2),VHH(2)
47       DIMENSION UH1(5),VH1(5),UHH1(2),VHH1(2)
48       CHARACTER*9 CHDATE
49       CHARACTER*4 CHTEXT
50       CHARACTER*(*) NAME
51 C
52       SAVE UH1,VH1,UHH1,VHH1
53 C
54       DATA UH1/0.1,0.1,19.9,19.9,0.1/
55       DATA VH1/19.9,0.1,0.1,19.9,19.9/
56       DATA UHH1/0.1,19.9/
57       DATA VHH1/18.5,18.5/
58 C.
59 C.    ------------------------------------------------------------------
60 C.
61 C             Normalize to PLTRNX,PLTRNY
62 C
63       DO 10 I=1,5
64          UH(I)=UH1(I)*PLTRNX/20.
65          VH(I)=VH1(I)*PLTRNY/20.
66    10 CONTINUE
67       DO 20 I=1,2
68          UHH(I)=UHH1(I)*PLTRNX/20.
69          VHH(I)=VHH1(I)*PLTRNY/20.
70    20 CONTINUE
71 C
72       IF (ISEL.GE.0) THEN
73          ISEL5=ISEL/100000
74          ISEL5=ISEL5-ISEL5/2*2
75          ISEL4=ISEL/10000
76          ISEL4=ISEL4-ISEL4/2*2
77          ISEL3=ISEL/1000
78          ISEL3=ISEL3-ISEL3/2*2
79          ISEL2=ISEL/100
80          ISEL2=ISEL2-ISEL2/2*2
81          ISEL1=ISEL/10
82          ISEL1=ISEL1-ISEL1/2*2
83          ISEL0=ISEL/1
84          ISEL0=ISEL0-ISEL0/2*2
85       ENDIF
86 C
87       CALL GDCOL(1)
88       CALL GDLW(2)
89       CALL GDRAWV(UH,VH,5)
90       IF (ISEL.EQ.0) THEN
91          CALL GDLW(0)
92          GO TO 30
93       ENDIF
94       CALL GDRAWV(UHH,VHH,2)
95       CALL GDLW(0)
96       IF (ISEL.LT.0.OR.ISEL1.NE.0) THEN
97          CALL UHTOC(IQ(JVOLUM+1),4,CHTEXT,4)
98          XTEXT=1.*PLTRNX/20.
99          YTEXT=19.*PLTRNY/20.
100          CSIZE=0.3*MIN(PLTRNX,PLTRNY)/20.
101          CALL GDRAWT(XTEXT,YTEXT,CHTEXT,CSIZE,0.,1,-1)
102       ENDIF
103       IF (ISEL3.NE.0) THEN
104          LWDTH=2
105       ELSE
106          LWDTH=1
107       ENDIF
108       IF (ISEL0.NE.0) THEN
109          CALL GDCOL(4)
110          XTEXT=10.*PLTRNX/20.
111          YTEXT=19.*PLTRNY/20.
112          CSIZE=CHRSIZ*MIN(PLTRNX,PLTRNY)/20.
113          CALL GDRAWT(XTEXT,YTEXT,NAME,CSIZE,0.,LWDTH,0)
114          CALL GDCOL(1)
115       ENDIF
116       IF (ISEL.GT.0) THEN
117          IF (ISEL4.NE.0) THEN
118             XTEXT=7.*PLTRNX/20.
119             YTEXT=18.7*PLTRNY/20.
120             CSIZE=0.3*MIN(PLTRNX,PLTRNY)/20.
121             CALL GDRAWT(XTEXT,YTEXT,'EVENT',CSIZE,0.,LWDTH,-1)
122             XTEXT=9.*PLTRNX/20.
123             CALL GDRAWT(XTEXT,YTEXT,'NR',CSIZE,0.,LWDTH,-1)
124 *
125             CHDATE=' '
126             WRITE (CHDATE,'(I6)') IDEVT
127             XTEXT=12.*PLTRNX/20.
128             YTEXT=18.7*PLTRNY/20.
129             CSIZE=0.3*MIN(PLTRNX,PLTRNY)/20.
130             CALL GDRAWT(XTEXT,YTEXT,CHDATE,CSIZE,0.,LWDTH,1)
131          ENDIF
132          IF (ISEL5.NE.0) THEN
133             XTEXT=7.*PLTRNX/20.
134             YTEXT=19.2*PLTRNY/20.
135             CSIZE=0.3*MIN(PLTRNX,PLTRNY)/20.
136             CALL GDRAWT(XTEXT,YTEXT,'RUN',CSIZE,0.,LWDTH,-1)
137             XTEXT=9.*PLTRNX/20.
138             CALL GDRAWT(XTEXT,YTEXT,'NR',CSIZE,0.,LWDTH,-1)
139 *
140             CHDATE=' '
141             WRITE (CHDATE,'(I6)') IDRUN
142             XTEXT=12.*PLTRNX/20.
143             YTEXT=19.2*PLTRNY/20.
144             CSIZE=0.3*MIN(PLTRNX,PLTRNY)/20.
145             CALL GDRAWT(XTEXT,YTEXT,CHDATE,CSIZE,0.,LWDTH,1)
146          ENDIF
147       ELSE
148          IF (ISEL.EQ.-1) THEN
149             CALL GDCOL(4)
150             XTEXT=8.5*PLTRNX/20.
151             YTEXT=19.*PLTRNY/20.
152             CSIZE=0.6*MIN(PLTRNX,PLTRNY)/20.
153             CALL GDRAWT(XTEXT,YTEXT,NAME,CSIZE,0.,2,1)
154             CALL GDCOL(1)
155             XTEXT=9.*PLTRNX/20.
156             YTEXT=19.*PLTRNY/20.
157             CSIZE=0.4*MIN(PLTRNX,PLTRNY)/20.
158             CALL GDRAWT(XTEXT,YTEXT,'<SPECIFICATIONS',CSIZE,0.,1,-1)
159          ELSE IF (ISEL.EQ.-3) THEN
160             CALL GDCOL(4)
161             XTEXT=10.*PLTRNX/20.
162             YTEXT=19.*PLTRNY/20.
163             CSIZE=0.5*MIN(PLTRNX,PLTRNY)/20.
164             CALL GDRAWT(XTEXT,YTEXT, 'C<ROSS - >S<ECTION> (<Z >=< >0)',
165      +      CSIZE,0.,2,0)
166             CALL GDCOL(1)
167          ELSE IF (ISEL.EQ.-4) THEN
168             CALL GDCOL(4)
169             XTEXT=10.*PLTRNX/20.
170             YTEXT=19.*PLTRNY/20.
171             CSIZE=0.5*MIN(PLTRNX,PLTRNY)/20.
172           CALL GDRAWT(XTEXT,YTEXT,
173      +      'V<ERTICAL> S<ECTION> (<X >=< >0.5)',CSIZE,0.,2,0)
174             CALL GDCOL(1)
175          ELSE IF (ISEL.EQ.-5) THEN
176             CALL GDCOL(4)
177             XTEXT=10.*PLTRNX/20.
178             YTEXT=19.*PLTRNY/20.
179             CSIZE=0.5*MIN(PLTRNX,PLTRNY)/20.
180           CALL GDRAWT(XTEXT,YTEXT,
181      +      'H<ORIZONTAL> S<ECTION> (<Y >=< >5)',CSIZE,0.,2,0)
182             CALL GDCOL(1)
183          ENDIF
184       ENDIF
185       IF (ISEL.LT.0.OR.ISEL2.NE.0) THEN
186          IYEAR  = (IGDATE)/10000
187          IMONTH = (IGDATE-IYEAR*10000)/100
188          IDAY   = (IGDATE-IYEAR*10000-IMONTH*100)
189          CHDATE=' '
190          WRITE (CHDATE,'(I2,''/'',I2,''/'',I2)') IDAY,IMONTH,IYEAR
191          XTEXT=19.*PLTRNX/20.
192          YTEXT=19.*PLTRNY/20.
193          CSIZE=0.25*MIN(PLTRNX,PLTRNY)/20.
194          CALL GDRAWT(XTEXT,YTEXT,CHDATE,CSIZE,0.,1,1)
195       ENDIF
196    30 CALL GDCOL(0)
197       END