September 12, 1991

PAW version 1.12/01


                            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 NotesKnown bugsFAQsContributionsTutorialReference manualDown loadMiscellaneous

Paw.Support@cern.ch