Here is a short description of various PIXIE utilities, with their arguments and purpose. Before using them, it may be useful to check in the routine itself for any restrictions, ... BEAMNO(CBMN1, CBMN2) : Get beam crossing numbers for event (Only uniuqe number associated with event.) OUTPUT: INTEGER CBMN1 - first 32 integers of beam crossing number INTEGER CBMN2 - second 32 integers of beam crossing number DI3END : End DI-3000, clear screen, turn off device 1. (LOGIN device) DI3INT : Initialize DI-3000, turn on device 1 (LOGIN device), set defaults. PLASOF : Turn off device 2 (the laser printer) using the DHS routine DVHPL and print file PLASON : turn on device 2 (the laser printer) using DHS routine DVHPL and turn off device 1. PLABEL(VMIN,XMIN,XMAX,YMIN,YMAX,ZMIN,ZMAX,XLAB,YLAB,ZLAB,TYMAX,TXMAX,TZMAX,NX, NXMIN,MY,NYMIN,ZSCAL) - Writes the label on each axis of a LEGO plot PLDBAR(XMIN,XMAX,YMIN,YMAX,ZMIN,ZMAX,DSET) - Draws a tower in a LEGO plot. PLEGO(NX,XMIN,XMAX,NY,YMIN,YMAX,ECUT,ZMAX,TITLE,XLAB,YLAB,ZLAB,COL1,COL2, ARRAY1,ARRAY2,NXMIN,NYMIN,XDEL,YDEL,N,ZSCALE) - Main routine for making a general LEGO plot. Calls other routines PL____. PLFIND(U,V,X,Y,IERR) - Finds the world coordinates of a PICKed point inside a diamond by using geometry. (See PLFIND.DOC for drawing and description of variables.) PLGRID(NXMIN,NX,NYMIN,NY,NXG,NYG,XMIN,XMAX,YMIN,YMAX) - Draws the grid for a LEGO plot. PLTITL(TITLE,VMIN,UMIN,XSIZE) - Writes the title for a LEGO plot. PLZAXS(NXMIN,NYMIN,ZMAX,ZMIN,ZMED,ZSCAL) - Draws the up axis in a LEGO plot. PLZMAX(NXMIN,NX,NYMIN,NY,ARRAY1,ARRAY2,ZMAX,N,DATNUM) - Finds the maximum value of data in the array ARRAY1, or in the sum of ARRAY1+ARRAY2, depending on the flag DATNUM. PLZOOM(XMIN,XMAX,YMIN,YMAX,NX,NY,NXMIN,NYMIN) - Sets data for ZOOM in a LEGO plot. PXBOX(XC,YC,ZC,DX,DY,DZ) - Draws a box at the position specified, with the specified dimensions Input: Real XC,YC,ZC,DX,DY,DZ XC,YC,ZC - The world coordinate position of the center of the box DX,DY,DZ - Half-lengths of the width, heigth and depth, respectively, of the box PXCTOI(CEXP,NCHAR,IEXP)- Converts a character expression into an integer expression. Input : CHARACTER CEXP - character string to be converted Input : INTEGER NCHAR - number of characters in string Output: INTEGER IEXP - integer returned PXDROT(GMAT,RMAT) : Convert a GEANT rotation matrix to a DI3000 rotation matrix. INPUT: REAL GMAT(10) - GEANT rotation matrix OUTPUT: REAL RMAT(4,4) - DI3000 transformation matrix PXDV01(GDIPAR) : Draw GEANT volume shape type 1 - BOX INPUT: REAL GDIPAR(3) PXDV02(GDIPAR) : Draw GEANT volume shape type 2 - symmetric trapezoid INPUT: REAL GDIPAR(4) PXDV04(GDIPAR) : Draw GEANT volume shape type 4 - general trapezoid INPUT: REAL GDIPAR(11) PXDV06(GDIPAR) : Draw GEANT volume shape type 6 - Tube section (does not work quite right) INPUT: REAL GDIPAR(5) PXENTR : Initialize DI3000 for event display and HPLOT. Second entry PXBACK, sets DI3000 defaults to the values expected by HPLOT. PXHIST( NBIN, BINS, KOLOR ) : Draw a plot of the content of array BINS(1:NBIN) in the current window, with color KOLOR. The minimum/maximum value is written on the vertical scale. No horizontal scale. We use a retained segment, reserved thru PZ system. PXICRT : Initializes variable ICRT to 1. Second ENTRY PXGCRT(ICRT) gets value of ICRT PXITOC(IEXP,NDIG,CEXP) - Converts an integer expression into a character expression. Input: INTEGER IEXP,NDIG Output: CHARACTER CEXP PXLINE(ILINE,NPTS,XPTS,YPTS,ZPTS) - Connects a series of NPTS points with a line of DI-3000 linestyle ILINE Input: INTEGER ILINE,NPTS Input: REAL XPTS,YPTS,ZPTS (1 dimensional arrays of size NPTS) PXLRUN(XPOS,YPOX,ZPOS) - Labels display with run number and event number or run number and beam crossing number. INPUT: REAL XPOS,YPOS,ZPOS - Position of beginning of label in world coord PXMARK(ICOLR,IMARK,XMARK,YMARK,ZMARK) - Marks the world coordinate point XMARK,YMARK,ZMARK with DI-3000 mark # IMARK in color ICOLR. Input: INTEGER ICOLR,IMARK Input: REAL XMARK,YMARK,ZMARK PXMENU( NMENU, MENMES, IMES ) : Draw on the lower left part of the screen a graphic menu with NMENU items ( less than 9 ), each with title MENMES(i) ( a character variable ) preceded by the line number. The cursor is positioned on item IMES ( or 1 if IMES is out of range ). The choice is performed either by moving the graphic cursor to one of the box and typing any character ( no digit ), OR by typing the digit ( 1-9) written in the choosen box. IMES returns the choosen item. We use only temporary segment, and don't clear the screen neither before nor after. PXPROM(PRMPT) - Prompts the user for input in the lower right-hand corner of the screen. Input: CHARACTER PRMPT - character string to be displayed PXRDIN( NBVAL, PROMPT, IVAL ) : Read in graphic mode some integer values and put them in array IVAL. The number of items is NBVAL, and the default value is IVAL(i) for each item. PROMPT(i) is a character variable, and is the prompt text. We append the default value between brackets. All retained segments are deleted ( JCLEAR ) before displaying the prompts. The screen is cleared after completion of the answers. PXRECT(RCTCOL,XC,YC,ZC,DX,DY) - Draws a rectangle with center at XC,YC,ZC with sides of dimensions 2*DX and 2*DY Input: REAL XC,YC,ZC,DX,DY XC,YC,ZC - world coordinates of the center of the rectangle DX,DY - Half-lengths of the sides of the rectangle PXRTOC(REXP,CEXP) - Converts a real expression into a character expression. Input: REAL REXP - real expression to be converted Output: CHARACTER CEXP - character output PXSAVE Print the current display, i.e. all the retained segments, on the second DI3000 driver, i.e. the hardcopy unit. PXTERM(ICRT) - CHARACTER FUNCTION - Uses the number of unique character sizes to determine which kind of terminal one is using. (There should really be a better way of doing this). Input: INTEGER ICRT - device number Output: CHARACTER PXTERM - 3 letter code of device driver PXTRP(XCENT,YCENT,ZCENT,ZANG,DXB,DXT,DY,DZ,NSEC) - Draws a trapezoid, with NSEC sections, at XCENT,YCENT,ZCENT using DI-3000. Input: REAL XCENT,YCENT,ZCENT,ZANG,DXB,DXT,DY,DZ Input: INTEGER NSEC XCENT,YCENT,ZCENT - Position in which one would like the trapeziod, in coordinates of the mother volume. ZANG - Angle, in degrees that one would like the trapezoid rotated. (0 degrees is straight up with DXT the top and DXB the bottom.) DXB,DXT - Half-lengths of the top and bottom of the trapezoid. DY,DZ - Half-lengths of the heigth and depth, respectively. NSEC - The number of sections one would like the trapezoid to be divided into. PXZOOM Ask the user to give ( graphic input ) two points, and expand the current view to fill the screen with what was inside the selected rectangle. Works only on the segments of the current class ( PZ system ), and require that a call to JTTYPE( 2 ) has been made before creating all segments. You can not make a Zoom of a zoomed picture... PXZZZ(DTIM) - Puts a running process to sleep for DTIM seconds Input: CHARACTER*6 DTIM - the delta time in Vax format to sleep Example: 0::5 is 5 seconds PZEBRA(NZEB) : Initialize GEANT geometry bank as second ZEBRA store INPUT: INTEGER NZEB - Number of words of dynamic store needed