September 12, 1991
PAW - Some improvements
-- It is now possible to copy a projection or a slice into a 1-Dim histogram.
For example:
Histo/copy 20.prox 1 | copy PROX from 20 into ID=1
Histo/copy 20.slix.12 12 | copy SLIX.12 into ID=12
-- In the X11 versions of PAW, the LOCATE command provides additional fea-
tures.
Locate -1 S returns the information about the channel (1-Dim) or
cell (2-Dim) corresponding to the mouse position in
Sample mode. A small window is open and updated dy-
namically when the mouse position changes.
Locate -1 I returns the Integral of the contents of bins in a
separated window (like with option S). The integra-
ted area is dynamically redrawn in reverse video.
-- There are some new user-callable CERNLIB routines in COMIS: HMAXIM,HMINIM,
HMAX,HMIN,HNORMA,HREND and HGFIT. HELP CALL will provide the complete list
of the CERNLIB routines callable from COMIS.
-- The size of the COMIS buffer has been increased in order to allow the com-
pilation of larger routines.
------
KUIP - Version 1.67
The Vax/VMS version has now one important fix concerning the proper processing
of CTRL-C. Now the problem of the infinite-loop should be fixed, setting back
the control sequence to make external interrupts.
There are substantial changes to the KUIP Macro language, described briefly
below. A new edition of the manual containing all the new features is currently
in preparation.
1. New flow control constructs; in the following description, statements
enclosed by [ ] indicate optional syntax:
a. IF THEN ELSEIF ELSE ENDIF
IF "logical_expression" THEN
"statements"
ELSEIF "logical_expression" [THEN]
"statements"
[ ELSE
"statements" ]
ENDIF
b. CASE IN ENDCASE
CASE "parameter" IN
( "expr_list1" ) "statement"
"statements"
( "expr_list2" ) "statement"
"statements"
...
ENDCASE
where "expr_list" is a list of expressions (numbers or character
strings) separated by commas. A * in an expression acts as wild-card
matching zero or more characters. Example:
Macro EXAMPLE
CASE [1] IN
(A) Message 'The first parameter of the macro has the value A'
(B) Message 'The first parameter of the macro has the value B'
(C) Message 'The first parameter of the macro has the value C'
(D) Message 'The first parameter of the macro has the value D'
(*) Message 'Something else'
ENDCASE
c. WHILE DO ENDWHILE
WHILE "logical_expression" DO
"statements"
ENDWHILE
d. REPEAT UNTIL
REPEAT
"statements"
UNTIL "logical_expression"
e. DO ENDDO
DO "param = start,finish,[,step]"
"statements"
ENDDO
f. FOR ENDFOR
FOR "param" IN "values"
"statements"
ENDFOR
where "values" is a list of values separated by spaces. These values are
given to "param" in turn and the "statements" are executed once for each
one. The parameter [*] may be given as one or more of the values, signi-
fying the list of positional parameters given to the macro.
2. New special commands:
-- SHIFT shifts the names of the positional parameters, so that [1]
becomes [2], [2] becomes [3], etc.
-- EXIT [] returns from the current macro with a return value (0 if
not specified). Unlike RETURN it may be used anywhere inside a macro.
-- BREAK breaks out of the current WHILE, REPEAT, DO or FOR loop.
3. three new system parameters are now defined inside any macro. They are:
[*] - The list of parameters given to the macro (mentioned above).
[#] - The number of parameters given to the macro.
[@] - The return value from the previously called macro, given
in the EXIT command (initially 0).
In addition, the form [%"param"], where "param" has a positive integer va-
lue, may be used to access the positional parameter whose number is the va-
lue of "param". This is useful for looping through all of the parameters
given to a macro. Example :
PAW> Exec EXAMPLE A B C
will output:
A
B
C
If the macro is:
Macro EXAMPLE
DO i=1,[#]
Message [%i]
ENDDO
will output:
1
2
3
If the macro is:
Macro EXAMPLE
DO i=1,[#]
Message [i]
ENDDO
Undefined positional parameters are now substituted with the value ' ',
whereas ordinary undefined parameters are not substituted, as before.
4. Backward incompatibility :
The symbols [] are now mandatory to access the contains of a KUIP variable
in a macro. Example:
I=I+1 | will be illegal in the future versions of KUIP.
| Now it prints the following message:
*** WARNING: Decoded unbracketed parameter I in expression I+1
Future versions of KUIP will not do this.
I=[I]+1 | Is the correct syntax
------
KUIP and PAW with OSF/MOTIF
The new release of the KUIP package includes an interface to OSF/MOTIF (X
Toolkit Intrinsics and Motif) available on most Unix workstations (HP, IBM
6000, Silicon Graphics, etc.). PAW is the first application which has been
slightly modified to make use of this new interface. It provides a menu-driven
mode of interaction as well as a command mode with a command history mechanism.
Various new features have also been included.
All the applications based on KUIP should easily be modifiable to access this
Motif interface. Very few changes are required at initialisation time and in
the main program of the application (the new routine KUWHAM, which gives
control to Motif, has to be called instead of KUWHAT or KUWHAG). The main fea-
tures of this interface is an automatic generation of the tree command struc-
ture into a pull-down menu-bar. It also provides handling of multiple and
editable panels, and facilities to find, recall and get help on a command.
No written documentation is provided at the moment as several changes or
features will still be added in the coming weeks. Our main objective is to
reduce to the minimum the number of changes to be done in a KUIP based applica-
tion (like PAW or GEANT).
The main reason to release this new interface at this stage is to famil-
iarize potential users with the installation procedure and the various Motif
files. To install these versions of KUIP and PAW on a Unix workstation you
just have to select the PATCHY flag "MOTIF" in the PAW and KUIP installation
procedure and include the Motif libraries in the link procedure. In case of
problems please contact cremel@cernvm.
------
HIGZ - New PostScript workstation types
New features
The PostScript workstation types may have now the following format:
- ( 1000F + 100Nx + 10Ny + T )
where:
F Paper format; integer in the range 0-99 defining the DIN format of the
paper. For example F=3 defines the standard A3 format, F=5 defines the
A5 format, but F=4 and F=0 have the same meaning and define an A4 page.
The A0 format is defined by F=99.
NX,NY Number of zones on the X and Y axis respectively. They are are inte-
gers in the range 1-9.
T Type; integer parameter defining the output mode:
1 - Portrait mode with a small margin at the bottom of the page.
2 - Landscape mode with a small margin at the bottom of the page.
4 - Portrait mode with a large margin at the bottom of the page.
5 - Landscape mode with a large margin at the bottom of the page. The
large margin is useful for some PostScript printers (in particular
the color printers) because for mechanical reasons they need more
space to grip the paper.
3 - Encapsulated PostScript. This type allows one to generate files
which can be included in other documents, for example in LaTex fi-
les. Note that with this Nx and Ny are always equal to 1, and F has
no meaning. Therefore the workstation type for encapsulated Post-
Script is -113. The size of the picture must be specified by the
user via a call to IGRNG (see the examples programs).
Examples:
-111 or -4111 defines an A4 page not divided.
-111 has the same meaning as before.
-6322 define an A6 landscape page divided in 3 columns and 2 rows.
+----+----+----+
| 1 | 2 | 3 |
+----+----+----+
| 4 | 5 | 6 |
+----+----+----+
The first picture will be drawn in the area 1. If the user clear the
screen via ICLRWK, the graphics output will appear in the next area in
the order defined above. If a page is filled, a new page is used with
the same grid. Note that empty pages are not printed in order to save
paper.
If we ignore formats smaller than A12, we can compute the number of
possible different new PostScript workstation types:
4x9x9x13+1 = 4213 !
Usage in an user application program
The different way to generate PostScript files in a user program are described
in the following examples:
1. Example with IOPWK, IACWK and IGQWK:
DIMENSION R(2)
*
* Open a FORTRAN file
*
OPEN(UNIT=10,FILE='test1.ps',FORM='FORMATTED',STATUS='UNKNOWN')
*
* Open a workstation with the PostScript metafile type -111
* and with the workstation ID 5 (for example).
* Note that the UNIT used to open the FORTRAN (here 10)
* is given as second parameter in the call to IOPWK.
*
CALL IOPWK(5,10,-111)
*
* Activate the workstation
*
CALL IACWK(5)
*
* Get the size of the available space on paper. This is
* now possible because the format is known.
*
CALL IGQWK(5,'MXDS',R)
*
* Compute the size of the viewport according to the paper
* size. Note that if the screen and the paper have not the
* same ratio, then the picture on the screen and on paper
* will be different. In this case the user will have to
* inquire the screen size and compute a new viewport with
* this size and redraw the picture on the screen with the
* metafile deactivated.
*
XV=R(1)/R(2)/2.
YV=XV
CALL ISVP(2,0.,XV,0.,YV)
CALL ISWN(2,X1,X2,Y1,Y2)
CALL ISELNT(2)
.
.
Drawing
.
.
*
* Deactivate and close the metafile
*
CALL IDAWK(5)
CALL ICLWK(5)
CLOSE(10)
2. Example with IGMETA:
DIMENSION R(2)
OPEN(UNIT=10,FILE='test2.ps',FORM='FORMATTED',STATUS='UNKNOWN')
*
* IGMETA allows one to open and activate the metafile
*
CALL IGMETA(10,-111)
CALL IGQWK(2,'MXDS',R)
XV=MIN(1.,R(1)/R(2))
YV=MIN(1.,R(2)/R(1))
CALL ISVP(2,0.,XV,0.,YV)
CALL ISWN(2,X1,X2,Y1,Y2)
CALL ISELNT(2)
.
.
Drawing
.
.
*
* Deactivate the metafile
*
CALL IGMETA(0,0)
*
* Close the metafile
*
CALL ICLWK(2)
CLOSE(10)
3. Example with IGRNG:
DIMENSION R(2)
OPEN(UNIT=10,FILE='test4.ps',FORM='FORMATTED',STATUS='UNKNOWN')
CALL IGMETA(-10,-111)
*
* IGRNG defines a size in cm centred on the page (cf PAW).
* Even if the ratio of the screen and the ratio of
* the paper are different, the picture will appear
* exactly the same on both.
* Note that in the case of encapsulated PostScript
* a call to IGRNG is mandatory.
*
CALL IGRNG(10.,10.)
.
.
Drawing
.
.
CALL IGMETA(0,0)
CALL ICLWK(2)
CLOSE(10)
PAW - Backward compatibility and improvements
These new functionalities are fully compatible with the current usage of
PostScript files in PAW. The workstations type -111 -112 and -113 have exactly
the same meaning. There are three improvements for -111 and -112:
-- The pictures are now centred on the page.
-- The top and bottom margins are optimised.
-- The usable area on paper is proportional to the A4 format.
------
HIGZ - Improvements
-- IPSC/860 version introduced (Lee Roberts). The PATCHY flag is IPSC.
-- 2D PHIGS interface introduced. More information in the next CNL.
-- FLAG BATCH to generate HIGZ with only ZEBRA and PostScript:
*HIGZ,BATCH,machinename.
-- Clipping of the software polymarkers (20-31) is now implemented.
-- Some improvements in the speed of creation and display of pictures.
-- New version of the in-line function IXWCDC and IYWCDC for X11 to avoid over-
flow problems on VAX/VMS.
-- New options in IGPIE:
H : To force the labels size to be the current character height.
R : To draw the labels aligned on the radius.
--- New routine IGMESS to print a message in a X11 window.
--- Two new options in IGSET:
DRMD : to change the drawing mode. 1=COPY 2=XOR
SYNC : allows to set the Synchronisation on (1) or off (0) for X11.
Note that this two options are not reset with IGSET *.
------
HPLOT - Improvements
-- Modifications in HPLF in order to plot the Gaussian, exponential and
polynomial fits with the parameters of the curves.
-- New parameters XWID and YWID in HPLSET in order to change the width of the
X and Y axis tick marks.
-- The value of "all channels" can be printed if option STAT is selected (and
also SET STAT 1000000).
-- New option ERRX in HPLSET to define the error on X in percentage of the bin
width. The default is 0.5 . SET ERRX 0 sets the default value. To delete
the error on X one should set ERRX to a small value.
-- It is now possible to globally set parameters belonging to the same family
(*SIZ, *TYP, *COL, *WID, *FON) in HPLSET. For instance in PAW:
SET *FON 2
will set all font parameters (TFON,GFON,VFON,LFON and CFON) to 2. The
other families are respectively the text sizes, fill area types, colours
and line width.
-- Bug fixed in HPLC: nothing was drawn in case of OPTION LOGY on an histogram
with YMINI=YMAXI.
------
HIGZCONV - handling HIGZ pictures files
The new tool HIGZCONV is being made available with the publication of this Com-
puter Newsletter. HIGZCONV may be used to convert HIGZ picture metafiles
(written in RZ format) into PostScript or GKS. The RZ format is more convenient
for storing pictures and transfer them over the network due to the compression
achieved by the storage of binary data (typically a factor of 8-10 compared to
GKS metafiles).
This tool is available on all platforms and its syntax has been kept the same
(Unix-like) in order to make it transparent to the operating system:
higzconv [-d] [-m ps|eps|gks|tex|nnn] [-o ofile] hfile [framelist|?]
where:
-D displays metafile directory
-M selects output format; PostScript, encapsulated Postscript, GKS and
TeX may be requested, as well as any other metafile format supported
by HIGZ (see previous article). For instance "ps" is equivalent to
-111.
-O defines the name of the output file; the default file extension will
be chosen according to the format (or it will be HZCONV otherwise).
HFILE name of the input HIGZ metafile. The default file extension is HIGZ.
FRAMELIST optional list of pictures to extract. If not specified or if it is *
then all pictures will be processed. If it is ? then the program will
prompt the user for the selection of the pictures.
------
![]() | Release Notes | Known bugs | FAQs | Contributions | Tutorial | Reference manual | Down load | Miscellaneous |