March 9, 1992
This file contains the following items:
The Ntuple facility currently implemented in HBOOK and PAW has proven to be a very useful concept and is the corner stone of interactive data analysis. During these first years of experience with PAW, we have collected many suggestions to make this Ntuple facility more powerful, still keeping its basic simplicity. The old (current) ntuples allowed only columns with real numbers, a fix number of columns per row and the file base was designed to handle ntuples not exceeding a few Megabytes. We plan to release this new software with the next release of PAW. We strongly invite PAW users to comment on this proposal as quickly as possible.
The new ntuples will provide:
A note describing extensively the new ntuple facility currently being implemented in HBOOK and PAW can be found in a separate news item and is also available in the following files:
CERNVM : NTUPLE NEWS (GIME PAW
VXCRNA : DISK$DL:[PAW]NTUPLE.NEWS
PAW > NT/PLOT id.x%y%z
Generates a 3D scatter plot. By default the marker type used is the dot but it can be changed with the commands SMK or IGSET MTYPE. The color of the markers can be changed using the command SPMCI or IGSET PMCI. The view angles THETA and PHI can be changed using the command ANGLE. Example:
PAW > NT/PLOT id.x%y%z%t
Generate a 4D scatter plot where "t" is mapped on a color table which starts at the color index 9 and ends a the color index NCOL, defined with the command IGSET NCOL. In the future, it will also be possible to map the marker size and/or the marker type on a fifth and a sixth variable. The option 'S' (for SAME) allows several plots on the same picture. Example:
PAW > NT/PLOT id.x%y%z
PAW > NT/PLOT id.x%y%sin(z) OPTION=S
If PAW is linked with the PHIGS version of HIGZ, it is possible to to fill a PHIGS data structure which can be manipulated (zoom, rotation, translation etc ...) by a separated program: the PHIGS viewer.
Note that these two new options make sense only on high quality displays, or printers (providing colours or at least grey scales like PostScript printers)
PAW > SET PCOL 1004 | The picture background is blue
PAW > SET BCOL 1007 | The histogram background is cyan
PAW > SET HCOL 1002 | The histogram is red
PAW > SURFACE 2 Theta=30 Phi=60 4 | Draw a surface with the histogram
| 2 with the Gouraud shading method
PAW > IGSET CLIP 1 | Set the clipping on
PAW > IGSET CLIP 0 | Set the clipping off
From HBOOK:
HBOOK1,HBOOK2,HBOOKN,HFILL,HF1,HPRINT,HDELET,HRESET
HFITGA,HFITPO,HFITEX,HPROJ1,HPROJ2,HFN,HGFIT
HROPEN,PAOPEN,PACLOS,PAREAD,PAWRIT,HCDIR,HGIVEN
HTITLE,HBFUN1,HBFUN2,HRNDM1,HRNDM2,HBARX,HBARY
HPAK,HPAKE,HUNPAK,HGIVE,HGN,HGNF,HGNPAR,HF2,HFF1,HFF2
HRIN,HROUT,HI,HIE,HIX,HIJ,HIF,HIDALL,HNOENT,HX,HXY
HTITLE,HCOPY,HSTATI,HBPROF,HOPERA,HIDOPT,HDERIV
HMAXIM,HMINIM,HMAX,HMIN,HSUM,HNORMA,HREND
HEXIST,HRGET,HRPUT,HSCR,HFIND,HCX,HCXY
HBPROX,HBPROY,HBANDX,HBANDY,HBSLIX,HBSLIY
HBOOKB,HBSTAT,HDIFF,HUNPKE,HREBIN,HERROR
HOUTPU,HERMES,HISTDO,HFUNC,HIJXY,HXYIJ
HSPLI1,HSPLI2,HMDIR,HLDIR,HLOCAT,HFITH,HFITV
From HPLOT:
HPLOT,HPLSYM,HPLERR,HPLEGO,HPLNT,HPLSUR,HPLSOF
HPLABL,HPLSET,HPLGIV,HPLOC,HPLTOC,HPLNEW
From ZEBRA:
FZIN,FZOUT,FZFILE,FZENDI,FZENDO
RZCDIR,RZLDIR,RZFILE,RZEND,RZIN,RZOUT,RZVIN,RZVOUT
RZOPEN,RZIODO
From KUIP:
KUGETV,KUDPAR,KUVECT,KILEXP,KUTIME,KUEXEL
From HIGZ:
IPL,IPM,IFA,IGTEXT,IGBOX,IGAXIS,IGPIE,IGRAPH,IGHIST
IGARC,IGLBL,IGRNG,IGMETA,IGSA,IGSET,IRQLC,IRQST,ISCR
ISELNT,ISFAIS,ISFASI,ISLN,ISMK,ISVP,ISWN,ITX,ICLRWK
IGPAVE,IGTERM
From KERNLIB:
VZERO,UCOPY,RNDM,RANNOR,LENOCC,SBIT0,SBIT1,SBYT
JBIT,JBYT,UCTOH,UHTOC
In all fit commands, a new option 'E' is available. This option performs a better error evaluation with MINUIT.
PAW > NTUPLE/SCAN 10 TRACK.AND.HIT
the previous version of PAW produced a full list of the N-tuple. This statement should not be permitted as both TRACK and HIT are REAL values. On the new version this statement will produce an error message. i.e.: operands of a boolean expression will have to be boolean.
PAW > NTUPLE/SCAN 10 (ANGLE.EQ.50).EQ.1
the previous version of PAW finds no entry satisfying this condition. The statement should produce a list of N-tuples with ANGLE=50, on the new version this statement is evaluated correctly. i.e.: for the moment, a boolean operand can be used in a comparison.
Arithmetic operators between boolean statements are now evaluated correctly. For example:
PAW > NTUPLE/SCAN 10 (TRACK.GT.10)+(X.GT.5)
Is evaluated the same as:
PAW > NTUPLE/SCAN 10 (TRACK.GT.10).OR.(X.GT.5)
This feature WILL NOT be supported in future versions of PAW.
On the new version of PAW there is no need to put a dot on either side of a boolean operator when it is between two brackets.
For example:
PAW > NTUPLE/SCAN 10 (VERTEX>1).AND.(ANGLE>30)
Can now be written:
PAW > NTUPLE/SCAN 10 (VERTEX>1)AND(ANGLE>30)
On the previous version, the second expression above was incorrectly evaluated.
Care must be taken with the following type of statements:
PAW > NTUPLE/SCAN 10 (TRACK.EQ.5).AND.1
This statement will look for the CUT named 1, but if 1.0 is used it is interpreted as a boolean constant and will list all the N-tuples with TRACK=5.
PAW > NTUPLE/SCAN 10 ANGLE=50+(VERTEX=2)
this will list all N-tuples with ANGLE=50 and VERTEX=0 or all N-tuples with ANGLE=51 and VERTEX=2.
PAW > NTUPLE/SCAN 10 VERTEX=2*(ANGLE=50)
this will list all N-tuples with VERTEX=0 and ANGLE.NE.50 or all N-tuples with VERTEX=2 and ANGLE=50 .
IMPORTANT NOTE: WE KNOW THAT THERE ARE STILL A NUMBER OF INCONSISTENCIES IN THE HANDLING OF SELECTION CRITERIA. THIS WHOLE AREA IS NOW BEING ENTIRELY REDESIGNED, ALSO IN VIEW OF THE NEW DATA TYPES WHICH WILL BE PERMITTED IN NTUPLES. USERS WILL BE CONSULTED BEFORE STARTING THE ACTUAL IMPLEMENTATION OF NEW FEATURES.
On Unix machines emacs-style command line editing (similar to the Korn-shell) is now possible.
Entering printable keys generally inserts new text into the buffer (unless in overwrite mode, see below). Other special keys can be used to modify the text in the buffer. In the description of the keys below, ^n means Control-n, or holding the CONTROL key down while pressing "n". Errors will ring the terminal bell.
^A/^E : Move cursor to beginning/end of the line.
^F/^B : Move cursor forward/backward one character.
^D : Delete the character under the cursor.
^H, DEL : Delete the character to the left of the cursor.
^K : Kill from the cursor to the end of line.
^L : Redraw current line.
^O : Toggle overwrite/insert mode. Initially in insert mode. Text
added in overwrite mode (including yanks) overwrite
existing text, while insert mode does not overwrite.
^P/^N : Move to previous/next item on history list.
^R/^S : Perform incremental reverse/forward search for string on
the history list. Typing normal characters adds to the
current search string and searches for a match. Typing
^R/^S marks the start of a new search, and moves on to
the next match. Typing ^H or DEL deletes the last
character from the search string, and searches from the
starting location of the last search.
Therefore, repeated DEL's appear to unwind to the match
nearest the point at which the last ^R or ^S was typed.
If DEL is repeated until the search string is empty the
search location begins from the start of the history
list. Typing ESC or any other editing character accepts
the current match and loads it into the buffer,
terminating the search.
^T : Toggle the characters under and to the left of the cursor.
^Y : Yank previously killed text back at current location.
Note that this will overwrite or insert, depending on
the current mode.
TAB : By default adds spaces to buffer to get to next TAB stop
(just after every 8th column).
NL, CR : Returns current buffer to the program.
The Kuip Edit Server (KUESVR) makes a-synchronous editing of files during the execution of a user program possible.
To use the KUESVR, kuip must be able to find the executable 'kuesvr' somewhere in your search path. Also the editor you want to use must not be plain vi (or for that matter any editor that runs in the same window as the application). Emacs and HP's ved are "save" editors. When your system supports X windows then any editor can be made safe by specifying as editor (see HOST_EDITOR) 'xterm -e editor' (where editor may be vi).
KUESVR is implemented using a small program, kuesvr, that takes as arguments the process id of the user program, the KUIP command that was used to invoke it, the editor to use and the file to edit (kuesvr -p pid -c command -e editor file). Kuesvr invokes the editor (using system) and waits till the editor is exited. Once the editor session finished, kuesvr determines if the edited file was changed. In case the file was changed it writes on the file /tmp/kuesvr.pid the name of the edited file and the kuip command. In case the file was not changed it prepends to the file name a -. During writing of the /tmp/kuesvr.pid file this file is locked (using lockf) to prevent different kuesvr processes to write at the same time to this file. As last action before exiting, kuesvr signals (using signal SIGUSR1) the parent process that it finished and that there is information to be read from the /tmp/kuesvr.pid file.
The kuesvr is invoked when the user program calls the routine KUESVR. The calling sequence is the same as for the synchronous edit routine KUEDIT. When the status IST is <>0, the kuesvr is not available or the editor is plain vi. In that case call KUEDIT. When the KUESVR exits KUIP jumps, on receiving SIGUSR1, to the routine KIEDTH to read and store the information from the /tmp/kuesvr.pid file. After reading this file is cleared. When the user program comes in the wait loop (in command mode it is not really a loop but a blocking read) an interval timer is activated that triggers (sends an SIGALRM) every 250ms. On every trigger the routine KITIMH is called. This routine checks if there are any finished edit sessions and if so it calls a user routine to handle the edited files. This user routine is only called when it has been registered in advance using the routine KUEUSR and when the command used to edit the file was not /KUIP/EDIT. The user routine is called without arguments. The first thing it should do is call KSVPAR(file, command) to obtain the name of the edit file and the kuip command that caused the edit.
The user program can inquire if the KUESVR is available by calling the logical function KUQSVR.
Kuip contains now all changes proposed by Harald Butenschoen for the MVS NEWLIB systems.
Two new HIGZ routines are available:
SUBROUTINE IGPXMP(IPX,IX,IY,CHOPT)
Input parameters:
INTEGER IPX : Pixmap identifier (input or output, see CHOPT).
INTEGER IX,IY : Pixmap size or position (see CHOPT).
CHARACTER CHOPT : Character option.
CHOPT='O' Open pixmap. IPX is an output parameter
IX is the width and IY the height.
CHOPT='R' Remove pixmap. IPX is an input parameter.
CHOPT='D' Display pixmap. (IX,IY) is the position
where the pixmap has to be displayed.
IPX is an input parameter.
CHOPT='C' Close the currently opened pixmap.
CHOPT='S' Save the region of the current window at
the position (IX,IY) in the previously created
pixmap IPX.
SUBROUTINE IGCHWK(IWTYP,IX,IY,IW,IH)
Input parameters:
INTEGER IWTYP : Workstation type.
INTEGER IX,IY : New position of the window (in pixels).
INTEGER IW,IH : New width and height of the window (in pixels).
With this release of the CERN library users will have access to a new version of PAW using MOTIF as User Interface. It provides a menu-driven mode of interaction as well as a command mode with a more sophisticated command history mechanism. A number of new features have also been included: the most important one is that lists of histograms can be displayed in a window, and commands (HISTO/PLOT, LEGO, SURFACE, ...) can be issued directly by selecting histograms in this list.
This preliminary version is still a prototype: no written documentation is provided at the moment, apart from this news, as many changes or features will be added in the next months according to user feedback. At the moment PAW/MOTIF runs only on Unix Workstations which have access to the Motif software, and which runs preferably the Motif Window Manager Mwm.
The following is a short guide for the usage of PAW/MOTIF.
As one can see on the diagram below, PAW and PAWX11 give access essentially to a "command mode" interface except for the "style G" and "P" available on graphics terminals. PAWM gives access to a more general and complete graphics user interface which includes a "Command Mode", "Pulldown Menus" to display the complete tree of commands for the application, "User Defined Panels" (similar to style P) and also "Lists of Objects" that can be manipulated directly (see later "Parameters of type LIST").
The workstation type 1 (or 2, 3, ...) gives always access to the X window driver of HIGZ and is connected to the configuration file higz_windows.dat. In PAWM all the values for the configuration are taken from the normal "Resource" file for MOTIF: .Xdefaults (see later "PAWM Resources").
N.B. The command "STYLE" is not available in PAWM and "STYLE M" is selected for the whole session. "STYLE M" is in fact a kind of combination of all the other existing styles, with many improvements and a MOTIF look.
_____________________________________
| |
| PAW |
| Falco, MG600, Tektronix, .... |___
| WKTYPE = 7878, 7800, 101, 121, ... | |
| Terminal drivers: HIGZ / GKS | |
|____________________________________| |
|
____________________________________ |
| | |______ _____________________
| PAWX11 | | | |
| X terminals, Workstations, ... |__________|___| Command Mode + |
| WKTYPE = 1, 2, ... | | | STYLE 'G' or |
| (X driver for HIGZ) | | | STYLE 'P' on |
| --> file higz_windows.dat | | | graphics terminals |
|____________________________________| ______| |_____________________|
|
|
_______|______________
| |
___________________I WKTYPE = 1, 2, ... |
| | (X driver for HIGZ) |
| | --> higz_windows.dat |
| |______________________|
____________|____________
| |
| PAWM |
| X terminals, |
| Workstations with Motif |
|_________________________|
| ______________________
| | |
| | WKTYPE = M/m |
|___________________| (X driver for HIGZ, |
| MOTIF interface) |
| --> file .Xdefaults |
|______________________|
|
______________________|_____________________
| |
__________| GRAPHICS USER INTERFACE (STYLE M) |__
| |____________________________________________| |
| | | |
______|_______ ________|_______ ______|_______ _________|__________
| | | | | | | |
| Command Mode | | Pulldown Menus | | User Defined | | Lists of Objects |
| | | (Panels) | | Panels | | |
|______________| |________________| |______________| |___________________|
In summary, the different modes of interaction proposed by PAWM are:
Here commands are simply entered through the keyboard in the "Command Area". Parameters can be given on the command line, otherwise they are prompted for.
Here there is a panel of "buttons" on the screen, each one corresponding to a command. The assignment of commands to buttons may be defined by the user with aliases. When a button is pressed the user is prompted for the parameters in the normal way, and then the command is executed.
Here there is a menu bar at the top of the screen containing the top level elements (menus) in the command structure. These menus can be accessed by moving the mouse pointer to the menu name and pressing the [mouse button 1]. The menus contain further command elements. If a terminal command element is selected by releasing [mouse button 1], the user is prompted for the parameters and a panel showing the list of parameters is displayed. The user has to fill it and press [OK] to execute the command. If another menu element is selected the appropriate menu is "pulled down" and the process continues until a terminal element is reached.
This is significantly different from the other three modes. In this mode, lists of objects can be displayed on the screen, and commands can be applied to the objects therein by clicking on the object and choosing a command from a menu. This mode is connected to the parameter type LIST and a more detailed description is given in section 4).
The same executable module can be used to access PAWX11 (for X11 interface) or PAWM (for Motif). The choice is made via the terminal type: n or n.hostname (where n is a number corresponding to one entry in the file higz_windows.dat) to access the X11 version, OR m (character) or m.hostname to access the new Motif version. In this version the graphics is still done by the X11 driver of HIGZ, but the graphics window in now opened by Motif and is included in the application main window (it is not anymore a separate window).
This is the schematic representation of the window which will appear on the screen when running PAWM:
+------------------------------+
| Menu Bar |
-------> +------------------------------+
| | |
Command | | List of Commands |
Area | +------------------------------+
| | ---> Command Input |
-------> +--------+---------------------+
| | | +-----------------+ |
| | Appl. | | | |
| | Row | | | |
W | | Column | | Drawing | |
o | | | | Area | |
r | | | | (graphics) | |
k | | (Exit, | | | |
| | Recall,| | | |
a | | Etc..) | +-----------------+ |
r | +--------+---------------------+
e | | |
a | | Program Output |
| | |
| | (ScrollWindow) |
-------> +------------------------------+
With KUIP/MOTIF a new parameter type has been introduced: LIST. With Motif a parameter of type LIST will display a special widget which will propose a list of the possible values which can be selected by the user. Both alphanumeric (e.g. for histogram identifiers) and graphics lists (e.g. for marker types) are available. In command mode the LIST parameters are treated as lists of integer or real numbers, or character strings (values have to be separated with a comma (,) in the command).
Manipulation of the LIST widgets:
N.B. To "Post" (in the Motif sense) the popup_menu on the screen one has to do a quick [Single Click] with [mouse button 3]. When the menu is "posted" then releasing [button 3] on a command will still execute this command instantaneously (with the default values for the other parameters) whereas a [Simple Click] with [mouse button 2] will display the panel corresponding to that command (if any) : it is then possible for the user to modify the values of the other parameters and press [OK] to execute the command. (Before he can fill the panel the user has to release the popup menu with the [mouse button 3]. The value of the parameters and the command are kept in memory and can be re-executed for other selected items.
Please note that all these convention with [mouse button 1] for selection and [mouse button 3] for displaying a popup menu are conformed to the "Style Guide" proposed by the OSF/MOTIF consortium.
Three parameters of type LIST have been presently introduced in PAW:
The resources associated to KUIP/MOTIF and that can be changed in the file .Xdefaults are listed below. The name and the number of these resources is not yet finalised and the following description is only an indication of what might be available in the future. A default value is always provided if the user did not specify anything for any resource.
Main*geometry wxh+x+y (w = width, h = height, x = xposition, y = yposition
for the main window. All are integer values in pixel)
Command.historyVisibleItemCount ival (number of lines in the command
list history, integer)
background color_name (background color, string)
foreground color_name (foreground color, string)
fontList font_name (font for command panels, string)
helpFont font_name (font for HELP windows, string)
mainCursor ival (cursor shape in main window,
integer)
inputCursor ival (cursor shape in panels and
input windows, integer)
cursorColor color_name (cursor color, string)
gBell ival (bell intensity, integer)
![]() | Release Notes | Known bugs | FAQs | Contributions | Tutorial | Reference manual | Down load | Miscellaneous |