Fourth Week of August 97

\
Mostly on vacation this week.

\
Sorted out notes from the rushed last two weeks.

\
LJM has written down his formula for getting RAVEL to recognize its dial box
after the go dead (usually due to a cable being disconnected).
-
Combined my own notes with LJM's to create a how-to-fix page for the dial box.
Linked it into the standard SLD how-to-fix page.

|| Do Soon ||

\
Sick leave and PTO were done wrong for June.
-
Leslie has agreed to provide me copies of the last year's time cards.
I can compare these to my paystubs to see if there have been other errors.
Leslie says mine was not the only recent problem.

\
carry over from last week of july: 3 slf
first week of august: 4 vac, 12 slf
second week of august: 2 slf
third week of august: full week
fourth week of august: project 16 vac

\
SLDTMS:
-
See detailed notes.

\
WebTables:
-
Turn WebTables talk into a self-contained PowerPoint presentation
to have as a record of this work, a tour of the system.
Prepare a set of GIF screencaptures of forms and results.
-
WebTables discards one of the values when doing a plot of a ratio.
-
Will need to kludge (and later extend rules system) to handle
the three kinds of Crid .DAT files in the same directories.
Their naming conventions do not match that which is currently supported.

\
Event Display Crashes:
-
See if the DecWindows debugger is working again.
-
Get back to fixing Event Display KAL UNPHITS crashes.

\
HEPVis 98:
-
Make a caption sheet for the poster.

\
Week of 22 Sept: with LJM, have Bill Weeks check that VM isn't
autologging SLDTMS1 or SLDTMS2.

\
Discuss with Ramon whether all but the RSH part of the 2D display job
should work without name service.

\
37543 rec 281 is beautiful (see web).
Save these event pictures.

\
SGI:
-
Got another reply from ACORDA.
Most of his suggestions didn't sound like they'd help.
I will, as he suggests, double-check the backplane jumpers,
but I very much doubt that I accidentally changed any of those.
-
Await peripherals from MANLY.
Will then still need to hack around root password (see notes in ACORDA).
-
Peripherals have arrived from Yale.  But still short a keyboard cable.
Need round 9 pin to DB9.
See if there's one at SLAC, or else check sources such as black box corp.
-
SGI is preferable to RS6000 because RS6000 at SLAC gives us dependence
on SCS.  SCS outages such as the one 16 July leave us without a 3D display.

\
Study relink failure DUCSLOG files in [PERL.SHARE].
 
\
Have the EPEM process that does the
RENAME LATEST_Z_TEMP.JAZZDATA LATEST_Z.JAZZDATA
do a
DELETE LATEST_Z.JAZZDATA;*
when the version number gets near the 32K limit.

\
Recover old VM mail.
Seem to not have complete oldmail files either on VM or on Unix.
ftp the files straight to Unix for storage.
also try to make copies of them for current mail systems,
but keep straight old versions for solid backup.

\
DUCS Q no longer shows old ducs versions.
Sounds like we don't have the newest version of the DUCS executable.

\
Get Tony to create new SLD Confer Group, SLD Changes,
as discussed at offline meething.
-
Start by subscribing everyone who has shown activity in the recent SLDTMS logs.
-
Tony will create a web form that allows users to subscribe or unsubscribe from
Confer mail.
-
The first SLD Changes Confer item will advise users of the purpose of the new
Confer, of why they were selected to be subscribed to this confer mail,
and will advise them how to unsubscribe or subscribe to this and other Confer
mail.

\
GRB reports that expedite is not defined at VU.

\
Copy all of my work to my Syquest.
This includes code, web documents, mail, notes and so forth.

\
Copy any useful files from PERL VM account to Unix.

\
Keep on Tony to fix the Workbook's search engine.
The "rebuild workbook database" button fails to write out a useful index.

\
Order a copy of Norton Utilities for NT 4.0.

\
Make the event display give a useful diagnostic rather than crashing
when the user tries to do SDDXWDO or XTERM without the appropriate
terminal settings.
Allow the user to proceed with other devices, such as POSTSCR.

--------------------Less Critical Issues Below-----------------------

\
Update examples in DSP Help System to use newer code or else replace
the examples with a pointer to the relevant section of the Workbook.
http://www.slac.stanford.edu:80/usr/local/scs/net/doc/netscape-config.html

\
Visitor's Center:
-
Disable the Midas feature that has it query the console for how to proceed
when it needs to crash.  Let it crash right away so batch can restart it.
-
Might want to have the main window appear on the Visitor's Center NCD.
Once the job gets going, this window will be covered by the event display
window.  Is this safe enough?  Can the user do anything troublesome before
the event display window comes up?
-
Check whether short or zero drag on mouse button two causes a crash by
requesting an unreasonable zoom.
-
Write up restart instructions for use by Helen, Nina and Herb.
-
Make the job run on an Alpha.
-
Get new MIDAS code to install to DEV MIDAS and DEV SLDMIDAS.
-
Make job survive power-cycling of the NCD.
Currrently, the NCD comes up ready but the display job never knows to
stop and restart.  It keeps waiting for input from the x session that is gone.
-
Devise a method whereby, when we are taking data, the display reads
from the real data stream while, when we are not taking data,
the display automatically switches to read from a set of canned events.

\
Figure out how to turn off the SGI's screen saver during runs
to encourage shiftees to pay more attention to it.

\
Saw a recurrence of an Event Display problem I saw on the SGI about a month ago.
A PHTRKX was drawn clearly wrong, with a big kink in it.
Previously, when I went back to work on this, the problem was no longer
evident.  This time, noted that the associated PHTRK had the special
characteristic that it was an Endcap track.
Check whether PHTRKX work correctly for Endcap tracks.

\
GRB reports that expedite/noopt of a fortran file optimizes anyway.

\
GRB would like expedite to handle /mlist.

\
Expedite fails to create a UID file from a UIL.
It doesn't complain, but leaves no UID file behind.

\
Make poster size prints of the Event Display images that were considered
for the visitor's center.

\
Look again at CSCLA2 tray selection from Unix.
Specifically look at Netscape from Hebe.
TAS requested this.  Get him to help push SCS if necessary.
- 
Add RESET sequence to the CSCLA2 printer queues.

\
Richard converts SGTBELB to return INVBITNM as an I rather than E,
can change can change DSPBTBX to call SGTBELB with ERROR RETURN.
Currently it does so with no ERROR RETURN.

\
Make project less picky about how users hand edit the .project file.
Allow variable length records.
Don't require the exact column position of the colons.

\
Check all other code I have written for dependence on MA_BEL slot ids.
Use SGTBELB where necessary.

\
Remove archaic 120 Hz unpacking code from DUCS.

\
Could create a web-based Event Display server very much like the
new Run Information System:
-
The user would enter parameters into a form
(run number, event number, zoom, angles, object selections).
The form would be read and the information stored in a long URL.
The resulting image would be shown as an inline GIF wrapped in a
resubmission form.
-
Just like in the new Run Information System, one could then bookmark
ones most commonly used display selections.
-
If the resulting image information were sent to a Java script rather than
as a GIF, one could then rotate, zoom and otherwise manipulate the image.

\
Make HANDYPAK and DSP able to redisplay to SDDXWDO when the user has
already done one such display in the IDA session and has then closed
the SDDXWDO window (without doing a UG close).
Should have HANDYPAK and DSP recognize when the window has been closed
out from under them and open a new window appropriately.

\
PAVEL reports MFIT gets errors wrong if one divides out the NDF before
Minuit is done.  Should move the /NDF from FITMINI to MFITCMD.
 
\
Make VAX KALSHR able to survive rebuilds of DSPSHR.
This requires that we fix the handling of TVUGS common in DSPSHR and KALSHR.
Need instead to have DSPSHR.OPT and KALSHR.OPT both link TVUGS common
as global.
Must be careful to place the common block in such a way as to minimize
the chance of it moving.  Specifically, it should be placed immediately
after the xfr cluster.
 
\
Make DUCS TEST complain if given an invalid directory name.
 
\
Check that Tony changes the constant system to ignore RUN = 0.
 
\
Just as I modified UBLDSHR.COM to leave the "unsupported" option
out of Alpha OPT files, also have it leave out "universal."
 
\
Find out about how to make a hologram from an event display graphic.
 
\
The DSP PIECE command now works correctly except for cases in which
a single child volume name is used inside of different mother volume
names.  One such example is VLAD in the vertex detector.
Gets an error message from GLVOLU called by DSPDRDE.
-
Check whether this same GLVOLU message shows up in MC simulation jobs.
This would help to indicate whether the problem is specific to GEANT's
draw package or is also present in simulation.
-
Would be great to be able to pick on a geometry element and find
out its volume name and lineage.
-
Is there a way to increase the number of line segments the GEANT
drawing package uses for circles?  Current default looks like 40.
This is not smooth enough for some of SMY's VXD3 work.
 
\
Remake RECEVS data to include correct PHPOINT associations.
 
\
From the interactive display, the first time the image comes up
suppress all but the main information box.
 
\
Check recent changes by Giampiero to WIC DSP.
He fixed some of DW's bugs.
Make sure he didn't lose any of my bug fixes
 
\
Have DSP only draw invisible mark for GENWKST.
 
\
Range option of OPENTAPE is not documented.
Note that it works for TAPES but not for disk files.
 
\
Make CRID "pick gets histogram" plot for portfolio
and add it to the HEPVis talk.
Perhaps add HEPVis section on "What does it mean to be interactive"
(it is more than just rotate and zoom).
 
\
Write up IDA code for "object pick removes object."
 
\
MIDAS: add dialog for adding a pick function.  Put it into PICK menu.

\
MIDAS: allow "printing" to a file rather than to an actual printer.
 
\
Work with Tony or Ray to get our SLAC image server to respect
the original pixmap dimensions found in the PostScript generated
from XV screen captures.
 
\
Need to somehow prevent users from accidentally using
DSP VAL EHIT MIN when they mean to use the command DSP VAL EHIT <.
-
Might do this by making the MIN and MAX commands only work
on the GENWKST devices.
But the way the code flows doesn't make this easy.
Perhaps some other solution could be found.
Could at least improve the documentation to steer users away
from confusing these two commands.
 
\
There are some nasty bugs in the CRID section of the event display.
DSP ADD CREHITP causes an abend.
DSP ADD CREHIT or DSP ADD CRIHIT cause lots of non-fatal messages
about a non-existent valuator set being referenced.
 
\
Need a way for the event display system to keep ISOLATE from removing
the titles from lists.
The current system has no way to distinguish between these titles and
other PICKID=0 objects.
No elegant solution has yet presented itself.
 
\
Make PHDTHRU PREPMORT not abend when the last six elements of
PHCLASS%(THRUST) do not contain meaningful values.
In the first event of REC30064, they contain -  0.17014e+39.
 
\
Modify PHDCHRG and PHDTRKX to apply different colors to the extrapolation
parts of the track depending on the number of vertex hits used.
 
\
Make PHDCHRN draw numbers inside VTX detector if very zoomed.
Currently doesn't get closer than inside of CDC.
 
\
Make DSPDSVX draw inner and outer radii of vertex detector.
Currently draws lum radii.
 
\
SGI job abends with UG eye position problem when one zooms the SGI
abruptly from vertex scale to wic scale.
 
\
Improve system for overlaying plots in IDA Handypak.
-
IDA has a command, HCOMB.  This isn't what we want.  It does a combine,
which is not the same as an overlay.
-
GRB says he wrote a system to do overlays two years ago.
Vella says he knows about GRB's system but that it is too hard to use
(or perhaps he said he didn't like how it worked).
Ask GRB what this system is.  I don't see it.  He can't just mean HCOMB.
GRB's system must be what RTH uses.  What is this?
-
DAVIDW wrote his own version of an overlay system.  It runs on VMS.
Involves processors called IHOVER, IHRENAM and IHGETLS.
See notes in ALL NOTEBOOK B.
-
Usher wrote his own version.  It runs on VMS.
It is in [USHER.BPHYSICS.VETO]DOVRPLT.PREPMORT.
-
Combine all of this into one system and make it work THE SAME on both
VM and VMS.
-
People who would have strong opinions as to how this should work
are Vella, Usher, Strauss.
 
\
Add 120Hz analysis to Pass2.
Richard will add MA_BEL to the RECON datasets that come out of PASS2.
For each event, check the 120 data to see
what triggers passed the event
what triggers failed the event due to VETO
One can then tell by the difference of these two, which triggers failed
the event due to some other cause.
 
\
Make it possible for users to call up their own copy of the 2D event
display window that we have running in the CEH.
That is, not run a new process but merely create a new window and have
the process already running display to this new window.
-
Should use some variation of the code used to put up displays from Midas.
When the user requests a new display window,
- the menu button causes a new drawing window to pop up
- the widget id of the drawing window is passed to the routine
  DSPSetWidget in DUCSSLDMIDAS:DSP.C
- the widget's display and window numbers are written into the
  UGOPEN options string of the first display device in the DSPDVIC bank
- the event display is then told to open a new window using this
  UGOPEN string
-
When the user asks for a copy of the display, it should
- create a new drawing window on their current display device
- send that widget's display and window numbers to the 2D display process
- the 2D display process should be looking out for these interrupts
- on receiving such an interrupt, the 2D display process should
  modify it's DSPDVIC bank to use the new widget information
- the 2D display process should then tell the event display to open
  a new window using this UGOPEN string
- the 2D display process should be set to always use DSP DRAW ALL
-
There will also need to be a mechanism for dropping windows in a
tidy manner.
 
\
Improve help in CARTCMD.
Make CARTCMD not give message IDA Unknown Command when only the
subcommand is in fact unknown.
 
\
The run monitoring event display jobs had been unable to put signal
messages onto the status display.
Turns out that in order to reduce the number of unintended messages
getting to the status display, a change was made last year that requires
all IDA jobs that want to signal to the status display to issue the
command $SIGNAL SGL$STATUS
Might also require $SIGNAL SGN$ONLINE.
-
Note however that the SIGNAL IGNORE stuff may not be working.
 
\
Clean up truncation of lines received by CMDSERVE from VMS clients.
 
\
Make READCAT IDA reject Oracle queries if a range is specified
and the limits have different lengths.
 
\
Arrange to go see true stereo display at UCSC with Richard.
 
\
Archive copies of the status displays I worked on.
 
\
DAVIDW has written a nice little IDA file that uses DSP DEFINE to
draw an arrow on a display.  It is [DAVIDW.IDAGENERAL]DSP_ARROW.IDA.
I have put a copy into [PERL] for savekeeping.
Should put this somewhere else for longer term, perhaps into DUCS.
Might mention the file in the DSP HELP.
 
\
Keep studying the KALPARMS.LEVELDET 5 problem.
Figure out more precisely where Geant is spending this time and on what
volumes it is working.
 
\
When we have solved the KALPARMS.LEVELDET 5 GDRVOL problem:
Get the GSIMGEOM.BUILDCOM to work.  Include full KAL.
Tony now believes it isn't a memory problem at all, since Jazelle
still had sufficient memory to sort out the entire Jazelle post mortem.



|| WebTables ||

\
Tony found some way to add an objectype in the advanced interface
when no objecttype was selected.
Put in more protection.
Maybe also have wtintermed.com start off by replacing any double plus signs
with a single plus sign.  This would fix the most common mistake people make
when hand editing the url.

\
Check how link datatypes look in selected list of advanced interface.

\
If user enters more than one non-date "last" range,
the second "last" range overrides the first "last" range.
Should change the system so that the minimum of these "last" numbers is
what is used.
Where have nreturn = suffix3
should have nreturn = min(suffix3,nreturn).
Need to handle this limitation in the interface or at least mention
the effect in the help file.

\
Finish removing old system.
-
Give old system a pointer to new system.
-
Put out a news item to advise users to switch to the new system.
-
Archive old code in a directory [PERL.DISUSED] on slacvx.
-
Delete old code.

\
When not grouped, have option to select full report.
Should look like a standard cater report as generated from the
slc cater interfaces.
Started work on this, but realized that it is a lot of work to generate
a clean output of a full row.
My existing system is not well suited to this task.
One might to better to send this task to a different system such as Karen's
generic query tool.
The link from the standard table to the full report would be made as follows:
when writing out the row elements, if the dataname is CR.NUM,
replace report_number with:
  "href=http://www-sld.slac.stanford.edu/htbin/wtintermed/CATER/TABLE/EXCL/
  +*+CR.NUM^E^report_number">report_number</a>
where the +* means select all.
Might alternately use a syntax such as:
  "href=http://www-sld.slac.stanford.edu/htbin/wtintermed/CATER/DUMP/EXCL/
  +CR.NUM^E^report_number">report_number</a>
where a new displaytype, DUMP, is used.

\
Have all tables end with sum and average.

\
Rethink use of delimiters in wtquery.
Long term solution might be as follows:
Have wtquery convert | to v-b-a-r and ? to q-m-r-k
then have it use | as delimiter between columns
and ? as delimiter for ninvalid.
Have wtintermed maintains the column delimiter as |.
Have colmath maintains the column delimiter as |.
Have wtintermed converts v-b-a-r back to | and q-m-r-k back to ?

\
might allow ranges to have scrolling list of appropriate values.
For example, LINAC is one of the appropriate values for CR.AREA

\
For LINK datatypes, always apply same precision to date formats,
to get form 10-JAN-1997
Make a general rule that all years are handled as four digits.

\
LINK formats assume DP_JOBS.
This is a special case included in the execs rather than the datanames.dat
file.
Is it worth doing this the proper generic way with some kind of extra
line in the glossary file to define the base file specification?
These DP_JOBS are the only case,
and it would be better for future applications to just use the
VMSFILE method rather than the LINK method.

\
Maybe would be better to form fullname in wtquery rather than
just reading this from the glossary file.
Could then allow use of table name abbreviations even for datanames
that have no glossary file.

\
Try using decode statement for class code 1.
Range logic should now include the same decode.

\
LINK and VMSFILE files that have been taken off disk by HSM should be marked
differently in tables.
Perhaps have a link to an explanation that they are not on disk
rather than a link to the file.

\
Don't allow group by to have denominator.

\
Make sure can handle 1.0/dataname.

\
Ask SLC group to consider creating a new dataname that is the decoded
value of Class_Code1 and Class_Code2.
This is better than having lots of queries trying to run this complicated
decode statement on the fly.
Best if they backfill their tables with the new dataname.

\
Find a better way to handle very long strings in output tables.
The current weak link is the wtintermed.com statement:
"row = ''row' rowelem"

\
Write new version of the maintenance file.

\
Get proper descriptions into CATER's datanames.dat.

\
If have to keep using topdraw plotting package:
Support strings as x axis by assigning numbers to them and
supplying a lookup table at the bottom of the plot.

\
If have to keep using topdraw plotting package:
Topdraw does not correctly handle plots by day that span a year.
It always puts JAN on the left and DEC on the right,
even if they are from different years.
Multiple years are folded onto a single year's display.
Try setting topdraw dates as year.day as in 1997.122.
Does it then span years correctly?

\
If have to keep using topdraw plotting package:
Topdraw does not go to zero for empty days.
This is fairly tricky since I have to track dates that may span months.
Best solution may be to replace TOPDRAW with some other plotting package
that handles dates better.

\
If have to keep using topdraw plotting package:
In ADV interface, replace PLOT with two options: Histogram and Scatterplot
In SIM interface, maybe just support Histogram.
The proposed java plotting package would have all plots come up first as
a histogram and would then have other plot types done locally.

\
If java plotting package works,
allow plotting of more than one quantity per histogram.

\
Replace SLD menus with SLC menus if form is CATER.
Somehow specify menu in the datanames.dat file.

\
Investigate whether the current browsers all support multiple submit buttons
in a single form.

\
Have formread reject range values that do not fit datatype.

\
Have a mechanism to allow grouped quantities to be expanded into the full
table.
Might add a column of radio buttons to the grouped table.
User selects the radio button for the row they want to expand,
and then hits the "expand selected row" button of the submit gif.
This resubmits the query with the "group by" removed
and an appropriate new range criteria added so that all data that had been
grouped into the selected row is redisplayed as ungrouped data.

\
Make sure system still works for data that have no forms at all.

\
Allow URL to include ranges that are not in datanames.dat.
There are many such elements in the datlog tables.

\
Reverse black and white of histograms.
New version of UG is
SLD::DISK$SYS3:[UGSYS]UGSRTL_Z.EXE
Optional different colors, BGRD = 1 through 8, are the eight UG colors.
Will then want to explicitly change the the Run Information system's
Topdraw code to use non-default, display white background and
non-default, display black lines.

\
does from_phrase include all tables mentioned in all extra parts of
qualifiers or select phrases?

\
why do I need from_phrase if all table names are fully explicit?

\
get from_tables to include extra table names from qualifiers,
special select,exclude,badness and join

\
Put following recipe into maintenance manual to make a new interface set.
-
Do this work on one of the slacvx cluster nodes.
Go to the WebTables directory.
create/dir [.newname]
create/dir [.newname.glossary]
cd [.newname]
create a datanames.dat file there (base it on one from one of the
existing directories).
cd [-]
@wtformwrite newname
cd [.newname]
ftp vesta
login
cd /afs/slac.stanford.edu/www/exp/sld/run-info/webtables/newname
put datanames.dat datanames.dat
lcd [.glossary]
cd glossary
mput *.*
quit

\
Note in maintenance manual that wtquery contains check to make
cater tables include @uinxcater.
Can this be done i the datanames.dat file instead?

\
Handle correlated errors.

\
Have all error messages, along with the URL that caused them, mailed to PERL.

\
Have another look at the execs with an eye towards network safety.



|| SLDTMS ||

\
Reorganize notes.
Include any new problems since 12 August.

\
Add time stamp to "initialization complete"
Add time stamp to end of transaction

\
Have had numerous cases where the cron job failed at startup.
sldtms/cmdserve: Permission denied.
-
In some of these cases, when it finally does start,
it hangs right after:
CMDSERVE: Initialization complete.  Listening on port 7906.
There is no error message, but no further communications are logged
(although at minimum, the process test_sldtms would have been trying
to contact it every 20 minutes).
-
12 August, port 7906 hung right after 9 pm restart.
-
afs problems may be fixed by afs cron system coming soon.

\
PLASSE had a job fail when TMS 7905 died of broken pipe.
See home:SLDTMS_PLASSE.LOG;1

\
11 August, Markiewicz did readcat rec96v14_mdst
took about 50 minutes.
Usher then did the same a little later, but I killed it.

\
New delays due to PLASSE's long queries.
readcat REC[33383-35522]
-
Run this same request in a test server, port 7907.
See what is actually taking so much time.
-
If the time is really going into long queries,
come up with some way to limit overly long queries or else multi-thread.
-
Karen will hide names of long groups.  Maybe that will be enough.
-
Maybe moving the tables to Unix will speed things up and therefore
lessen these contention problems.
-
Might be best to have a preliminary query that checks how many tapes qualify.
If the answer is too large, skip the real query.

\
Summarize SLDTMS problems since last summarized Week of 1 July.
-
Half hour outage 8 am Wed 30 July due to afs problems,
-
Port 7905 failed Thursday, 31 July.
Normal shutdown at 9 pm.
New process then showed no activity until I killed it at 10:30.
Next process ran fine.

\
To solve SLDTMS long queries problem,
Karen was to add a field to the database indicating which
dataset names to hide.
Has this been done?

\
Why did acqcopy jobs fail with:
SPMDAF500E ACQIN job AIS37520 errors:
SPMDAF000E ...%CART-F-CMDFAIL Could not connect to one of the SLDTMS servers
SPMDAF000E ...  No CRID data in this run
SPMDAF000E ...Unusual messages found in console file:
SPMDAF000E ...         Eff
SPMDAF000E ...   Count Sev Message
SPMDAF000E ...   ----- --- ----------
SPMDAF000E ...       1 -F- %CART-F-CMDFAIL Could not connect to one of the
SLDTMS servers
SPMDAF000E ...>>Missing Data<<
SPMDAF000E ...>>Tape Errors<<
-
SLDTMS logs show no requests from SLDPM for this time period.
It was fairly busy with many other short requests.
-
Study retry loops.  Should retry infinitely and frequently.
-
Failed at 22:25 and 23;36 on 21 July.
Logs show system sitting idle at these times.
To be more precise, logs show a quick heartbeat transaction at 22:24.
and then nothing else until a transaction from Yashima at 22:29.
There were no transactions received from SLDPM between when this log file
began at 21:24 and 00:02.

\
TEST_SLDTMS died some time around sunday the 6th.
Study job_juggler logs to figure out what happened.
The logs referenced TONYJ's documentation are not from this year.
Need to ask him where, if anywhere, the current logs reside.

\
If multiple jobs are waiting for sldtms,
and sldtms is killed,
I accept that the current job fails,
but do the other jobs waiting for it also fail?

\
Use standard VMS logging (see mail from Richard on how).

\
Will add escalation to TEST_SLDTMS so that it can page someone else if
I don't respond.
sldtms: page perl, ackwait 60, page richard.

\
Might give test_sldtms the ability to rshell to unix and kill a hung sldtms.

\
Have TEST_SLDTMS log problems to the system logs (ask Tony for details).

\
Update maintenance document.

\
Figure out how to make cmdserve survive the "broken pipe" condition
that occurs when it tries to send output to a dead client.
Doesn't matter too much since cron tries a restart every five minutes.

\
Currently giving lots of access to get sldtms into orsess.
better to use some nfs space. discuss with len.

\
Write mail file to temp directory rather than to u18.
Or else figure out how to have the cronjob write to afs space.

\
Had to use nfs space for the temp.mail file.
If I should instead use afs space, need to work out how to get afs to
permit the crontab job to erase and write the temp.mail file there.
The session would have to remain authenticated indefinitely, not just 25 hours.

\
Check available disk space before writing temp mail file.

\
Rename variables to have prefixes depending on function.
db for basic database info
gf for getfree
nc for newcom
etc

\
Check whether we still could have this problem that occured on old SLDTMS:
Add more error checking to the SLDTMS code to handle the Oracle error
SPMDAF021E Error looking for DataGroups table in database (RC=8)
SPMORA000E ORA-04045: errors during recompilation/revalidation of
SLD.CUR_DATASET
Should at least figure out how to prevent the IDA client from going into
an infinite loop.

\
Do we need a way for the Oracle administrator to tell SLDTMS to disconnect
from the database for a period of time?
Would have SLDTMS then inform users of the temporary outage if they tried
to use it.
Should discuss these changes further with LJM.
Seems like he has much of this code already in his SLDPM server,
but that server uses WAIT and TELL rather than Sockets.
Rather than just having me borrow and rewrite some of this code,
we should develop an integrated approach to making these utilities
use sockets such that a single set of utilities will be able to be
used by all servers that move to Unix.



|| DUCS Archive System ||

\
While GRB is in control of VU:
Need to get the new version of the DUCS command into PROD
and the image reinstalled at all nodes.
Only really matters at SLAC and VU, since other nodes don't have archives.

\
Get DUCS VERSION 13.0, 13,1, 14.0 and 14.1 onto tape.

\
Figure out why version numbers don't match between SLAC and VU

\
Get weekly ducs checking job running to compare SLAC with VU

\
For minor updates, consider what happens when one has changes in a section
such as CART which lives inside another section's directory
as in prodcart = [...util.cart].
Does one also then have to populate produtil?
Either make this not necessary, or document the issue.

\
Backup does not accept host name as part of the file description.
Will therefore have to return to using COPY for partial versions.
For now, just omitted the host name and had the system skip vupacb.
Thus there are no archive copies at vupacb for versions 13.1 and 14.1.

\
If normal mode for making partial archive copies is to take code from
current DUCS, might just make a command that does the copies
directly from there.
One would have to specify the section names.
This would avoid need to first copy large sections to an intermediate
directory structure.

\
Use pool.
stor/append tape1 tape2
stor/append tape2 tape3
then just backup to tape1
it will automatically continue with tape2, etc.
Implement tape backups using DEC's MDSM

\
Add code to ducs_arch.com to:
write to the pool
if the pool is full, get and add another tape
Is DUCS account authorized to get prod tapes?  If not, make it so.
Have all pool tapes owned by DUCS account.
Make sure they are set to keep forever and to never recycle.
Very old pool tapes do not necessarily have to stay in the silo, rack is ok.

\
Have DUCS VERSION return a fatal error in batch if it can't find the
requested version.

\
Have Meb Webster at VU set the DUCS accounts fillm and astlm quotas to 400.

\
Karen's Oracle query system that I use to list all current versions
has the unacceptable restriction that it only works for SLAC nodes.

\
Add update number to database for all full versions.
May need a VMS utility to get this information.

\
Finish documentation.
Check for anything else to take from powerpoint talk.
Check for anything else to take from notes in 1OCT, 3OCT and 4OCT plus later.

\
For the long run, have TONYJ here at SLAC and Webster at VU
set up logicals such as DUCSROOT_AXP and DUCSROOT_VAX
to point to the relevant DUCS directories.
Then have Unix ducs_arch command just send DUCSROOT_AXP or DUCSROOT_VAX
and have ducs_arch.com translate this to the actual disk name.
Can't just use the existing logical, DUCSROOT, since I want to run
this command for both SLAC AXP and SLAC VAX on the AXP machine SLDA6.
DUCSROOT only shows me the VAX root when I run it from a VAX.

\
When we switch to using Ray Cowan's new VMS DUCS hub,
change DUCS enable and disable logic of ducs_arch command to use
the new system.  Will check logical name DUCS_STATUS to confirm whether
the DUCS is in fact ENABLED or DISABLED.

\
When we switch to using Ray Cowan's new VMS DUCS hub,
build in more checks that all nodes match SLAC code or at least that all
actions that fail only at certain nodes are noted and problem-tracked.



|| Watchdogs ||

\
Replace simple SENDPAGE with Wendling's TELALERT system for better
logging, delay till morning and alarm-escalation.
Since GRB lives out of pager range, have the system phone his home number
and speak.

\
sldtms: page perl, ackwait 60, page richard.
testducs: delay till 10am, page richard
sldpm: if any datatypes missing, page richard, delay 60, phone gary.
viscent: delay till 10am, page perl
watcher of watchdogs: delay till 10am, page perl, ackwait 60, page richard.

\
Inprove methods for detecting when any of the three watchdogs have
themselves died.
-
User       Job
PERL       TEST_SLDTMS
PERL       TEST_SLDPM
SLDPM      td-8-FEB-1997
VISCENT    EXHIBIT
-                                                                       	
Have each of these jobs write out a time stamp file to $scr disk.
Have a Unix cron job nfs mount this disk and check these files.
Once an hour should do it.

\
Provide simple method to disable watchdogs during maintenance.
This is to be used when one takes one of the watchdogs or one of the
watched systems down for upgrades.
The system could work simply by doing an RSH to VMS that
writes a SENT_PAGE_SLDPM.DAT file to the appropriate directory.
Recall that the presence of such a file suppresses TEST_SLDPM reporting.

\
Check that mail is delivered between VM and VMS is on time.
Have a process on VMS periodically send mail to SLDPM.
Have SLDPM modify this mail slightly and then send it back to VMS.
Have the process on VMS page someone if the mail doesn't come back correctly
within a reasonable amount of time.
Talk to Teresa Downey before implementing this; she may have her own ideas
about how to watch for such problems.

\
Check that offline Oracle tables are being updated from online Oracle.
Could have SLDPM launch a UNIX process that
connects to the SLD cluster's Oracle, checks the latest run,
then drops that Oracle and connects to VM Oracle to check the latest run there.
Richard has asked Tony Waite to set up an account on SLD Oracle to be used
for this purpose.

\
Check that the SLDPM conference is being updated promptly.
Or else check whatever other system we use to communicate about SLDPM problems.

\
If it isn't already being done, check that DCSC is alive and well

\
If it isn't already being done, check that the batch system is running

\
Check that User and Scratch disks are less than 95 percent full.

\
Check that we have an adequate number of free User and Prod tapes.



|| SLDPM (other than automatic watchdogging) ||

\
Get AUTOLOG privileges for SLDPM.
LJM says BOEHEIM is the one who can grant this.

\
Make QJOBS give better information for FILTER jobs.
Works well for ACQ and RECON, but doesn't give enough info for FILTER jobs.
This is discussed in four mail items beginning with one from LJM 29 May 1996.

\
Make error mail for ACQIN problems include run number.

\
Archive error mail, perhaps by sending mail to GNATS.

\
Add NOSUBMIT and TEST options.
NOTSUBMIT would create the job but, rather than running it, would put a DCL
wrapper around it such that one could make mods and then run the job by hand.
TEST would do everything but actually start any jobs or change any databases.

\
Come up with Unix utility to write a tape mark.
LJM has such utilities on VM to write a tape mark to an arbitrary position.
This is used to take out ACQ "burps" from the end of tapes.
Bill Weeks may have such a utility or may be interested in writing one.

\
Remove many of the archaic disk datacats which are now handled by Oracle.
The disk versions of datacats such as the raw data one contain information
which is no longer correct.
Considered setting up code to generate new datacats from Oracle,
but Oracle has been sufficiently reliable as to not require this backup.

\
Make OPENTAPE correctly fall back to datacats when VM is down.
Probably involves putting a limit on the retry or wait.

\
George's Oracle backup system sends SLDPM@SLACVM a sleep message before
backup and a wakeup message after backup.
May need changes when we shift to Unix Oracle or Unix SLDPM.


 
|| Workbook ||

\
Discuss use of ghostview (command gv) for display of PS on an Xterm.
 
\
Add copy of LJM's data flow diagram (ACQ to RAW to PASS1 to PASS2)
for section on The Data.
 
\
Give the Search engine a way for users to log what it was they
were looking for when a search fails.  Pattern the facility
after MEB's "AID Failed" system.
 
\
Make section on SLD conferences recommend users monitor the
General Software discussion.
 
\
Mention GO TO in the IDA section.
 
\
The Workbook section on debugging a run should include information
on how to use AUTO DEBUG and on how to set up a canned debug routine.
It should also discuss how to get access to Jazelle information
from the debugger.
 
\
Add instructions on finding frozen DUCS versions.
 
\
Put instructions into Handling Files on VMS on
how to use the RECALL command and up arrow to get back commands.
 
\
Mention that a block=512 Bytes.
 
\
Discuss use of the INTERP command.
Also should have notes or a pointer to these notes in the
SLD Midas help system and in the DSP help system.
Can use MISSED IDA N as an example.
 
\
Put something about synonyms into VMS_FILES.
 
\
In section on IDA variables, warn users against redefining
key system variables such as Weight.
 
\
Might want to mention IDALVARs in the section on writing code.
 
\
In section on writing code, under Handypak calls:
mention how to include FORTRAN routines.
 
\
In section on writing code, talk more about how to create a template.
 
\
In section on debugging the run, mention how to force load of an image
so that you can set breakpoints on the init section of a processor
or cmdproc.
Trick is to set break in the load utility routine.
 
\
Check where IDA continuation character (dash) is introduced.
 
\
Eric: carefully introduce the underscore pointer convention.
Eric: introduce concept of CONTEXT with more detail.
And clean up the grammar of the CONTEXT sentence.
 
\
Somewhere, cover:
$RETURN IDA$ABORTGO (use FINDWAB IDA B as example)
 
\
Have one of the display jobs, perhaps on firstday, use DSP INT
and pick.
 
\
In section on WRITE USING, mention that IEVENTH is always written out.
See Tom's notes in ALL NOTEBOOK for his way of describing this and a
related output bug.
 
\
Include Tom Junk's notes on IDA.
See mail stored on SLACVX as TRJIDA.NOTE.
 
 

|| Shareables ||
 
Priority codes are as follows:
  A: Fix a problem that causes big trouble for users
  B: Fix a problem that seriously detracts from friendliness
  C: Nice idea when we have time for it
Difficulty codes are as follows:
  E: Easy
  M: Medium
  H: Hard
 
AE  Remove duplicate routines (same routine name in different DUCS
    sections).  Homer knows of one such routine name in ZXFIND & CERNLIB.
    Need to run some sort of utility to check for all such conflicts.
 
AE  Clear up the problems with MCLUND/MCL63/LIDACOM
 
AE  Keep a list in WWW of the combinations of DEV shareables that must
    be rebuilt and executed together.
    Review this list at the weekly Offline meetings.
 
AM  Move shared common blocks to the top of their shareable on the VAX.
    Make them universal on the Alpha.
    Includes MFIT commons.
    What about commons that "BUILD" users put in DUCS?
 
BE  Use release numbers to have shareables automatically check for
    correct match between a given shareable and the other shareables
    to which it is linked.
 
BE  Keep old copies of .VEC and .OPT files on the VAX.
    Add feature to the DUCS RESEND command to resend a file
    to a particular user@site.
 
BE  Have DUCS keep shareable link maps, at least on SLACVX cluster
 
AH  Extend the nightly set of diagnostic jobs that check the integrity of
    the DUCS code.
    1. Are shareables up to date? How long has stuff been in DEV?
       Check dates.
    2. Check if PFKEB.PREPMNLB is up to date. (Any templates deleted?)
    3. Check for routine names used in more than one shareable
 
AH  In DEV on Alphas have a second .OLB and .EXE with /NOOPT code
 
AE  The emergency full shareables tree rebuild system,
    [PERL.SHARE]REBSHARE.COM, needs to be documented in Web.
 
AH  Have DUCS check every new TEMPLATE to confirm that those that have
    MAXID have had a corresponding change to PFKEB.PREPMNLB.
    If no such change has been made, warn the user who installed the
    change plus the shareables czar.
    Might even try to have PFKEB.PREPMNLB fixed automatically.
 
CH  Reorganize the content of the shareables to make them more
    properly hierarchical.

 
 
|| MIDAS ||
 
Priority codes for Midas work are as follows:
*** Fix a problem that causes big trouble for users.
 ** Fix a problem that seriously detracts from friendliness.
  * Nice idea when we have time for it.
 
IDA and General
---------------
**
All three subsystems have problems when they have been opened but
then closed.
-
If they remain closed, a subsequent GO will cause an abend.
When investigated a year ago this was an access violation in
MidasGetShell at line 48858 called by
MidasIngot by MidasEvaluate by MidasDeclare.
-
If they have been subsequently reopened, the GO does not cause a crash
but the menus do not work correctly.
-
For the time being, the menu items have been removed.
The verb definitions have been left in place so that the options can be
easily restored once they have been fixed.
 
**
When IDA is busy, make cursor change to clock in ALL windows.
 
***Check
Check whether it runs correctly on a non-SLAC host.
 
***Check
Go 0 with a bad pointer in Evanal caused system to hang.
 
**
The "Debug" item that used to be in the Midas Main Window's
"Customize" menu caused the session to hang.
For the time being, the menu item has been removed.
The verb definition has been left in place so that the option can be
easily restored once it has been fixed.
 
**
Give "Data" menu a "Data From Tapes" dialog.
This should provide a browser into the DATACATs.
 
**
Allow user to Submit the contents of a Midas session as a batch job.
It would use the currently selected data set, allow the user to add
other data sets, allow the user to select the number of events,
and use the current Evanal.
It should also provide information on how batch jobs are running.
 
*
It appears that one cannot have two separate MIDAS sessions running
at the same time, at least on the same display on the same host.
Only one works.  And when the dead one is closed, the remaining one
gets into trouble.
It might be sufficient to have Midas just refuse to start a session
when one is already running.
 
*
When commands take a long time, have output window update before
the command is finished.
 
*
Consider some system, perhaps graying out, to show that a given
Jazelle, Histogram or Display window has not yet been updated to
reflect the current event (for example, during a long GO).
 
*
Make scroll bars of the Command area and the Output area be on same side.
 
*
Allow cut and paste by mouse buttons of text from the IDA window.
 
*
Have a toggle for a mode that makes all new Jazelle peeks,
event displays and histograms output to new windows.
 
*
Allow display to echo to a second user's workstation so that they can
do remote consulting.
 
*
Create a "Make NTuple" dialog as bridge between MIDAS and PAW.
 
Handypak
--------
**
Make REBIN the default for Hist commands entered from Midas.
Users anticipating making histograms too large to save in this way will
have to use the NOREBIN option (add such an option if none yet exists).
 
**
When there are multiple histograms in a window, need a way to
control which histogram the fit dialog affects.
 
**
In the histogram display window, dim out the rebin button in the
options menu if the histogram can not be rebinned.
Needs a new IDA function to determine whether a hist can be rebinned.
 
*
Correct handling of Subticks in Histogram Display Options dialog.
 
*
Don't write so much junk to the output window.  Cut to 1 line per HOUT.
 
*
Replace the fitting package with the Minuit fitting package.
 
*
Add X and Y scroll bars to handle case of more plots than fit on page.
 
*
Reconsider the section of the Rebin dialog box that allows one to change
the storage mode.  Might simply have user specify Scatterplot or Lego.
 
Event Display
-------------
 
***
The TOGGLE dialog only pops up in conjunction with the first Display
window.  If this window is iconized, the TOGGLE dialog does not pop
up for other windows.
In the long term, it would be good to have the toggles be window
specific.  However, this would require changes in the overall
control system of the display.
In the short term, it would be enough just to make sure the toggle
dialog pops up regardless of whether the first DISPLAY window has
been iconized.
 
**
Provide a Midas interface to the detector geometry system.
Leave the tree drawing in the event display window.
Really just need a button box that does calls to DSPTRMP with the
appropriate LINEDAT stored.
 
**
Provide a Midas interface to the relations system.
 
**
Provide a Midas interface to the labeling system.
 
**
Provide a Midas interface to defining objects on the fly.
 
**
Put up a message if no objects have been added.
Needs to handle the two different cases of no objects at all
and the case of no objects created because no appropriate data.
 
*
Make zoom not do cuts on front and back.
 
*
Make SDDXWDO driver use thickness to represent the UG brightness options.
 
*
Make valuator system support OFF and ON without having this do a INIT.
 
*
Support alternate method of specifying a valuator range,
i.e., minimum plus width.
 
Jazelle
-------
**
Make the Jazelle window update when one does a poke from the IDA command
line.  This should also work if the IDA command is in an IDA exec  .
 
**
Allow a way to look at only a portion of a bank, or allow some other
way of handling very large banks.
 
*
How are the banks ordered in the Jazelle window.
Should it be alphabetical?

 
 
|| MFIT Minuit Fitting ||

\
Have option to store residuals as a bank of points rather than creating
a histogram of them.  Ron Cassell needed this.  Showed him how to hack
MFITCMD.PREPMNLB to do this himself.

\
Figure out how to get VAX and Alpha to use the same kind of double precision.
 
\
MFIT doesn't accept character histids on VMS while it does work on VM.
 
\
Might allow user to have an almost arbitrary length polynomial as
follows:
Change FITPOLY PREPMORT to use a very large polynomial, say 15 terms.
Based on how many terms the user requests at run time, fix some number
of high order terms at zero and suppress output about these terms.
 
\
Make the MFIT system handle plots of averages.
 
\
Change HOPTN('NFUNC'...) calls to get rid of spurious error message
caused by the MFIT RESID command.
 
\
Richard suspects the FITGS2D function is still not really correct.
See how its derivative comes out.
Richard says that Bevington contains an example of how to take such
a derivative.
If FITGS2D is fixed, include it in the help file as a 2D example.
 
\
The 2D function is not being plotted.  The HOPTN('FUNC'...)  call is
being made, but at HOUT time handypak is not calling my function.
 
\
Make IDA support plots to some color devices.  Then check whether
my color option is working.
 
\
Make MFIT SET DRAW and MFIT SET FUNC ... DRAW work.
Note that the one controls drawing the sum of functions while the other
controls drawing the individual functions.
 
\
Understand the IMPROVE function of Minuit.  Fix support for it or
else remove it.
 
\
As expected, fill is not currently supported.
But I have interested Adam in seeing whether he can support it
without too much work.  I think he will.
 
\
Provide a means for function processor to come up with starting values
based on contents of the histogram.
 
\
Provide a fortran call for users to retrieve the parameters.
Something like
CALL FITRESU(function_number,parm_number,value,error)
 
\
Provide a fortran call for users to retrieve the bin values and widths.
 
 

|| DSP Event Display System ||

\
HEDGES would like to have DSP able to do two views (in her case xv and yv)
one above the other rather than the current one view and 3v.
 
\
When I get back to simplifying the draw routine toggles,
could combine a great deal of code from many different draw routines.
Might have a single utility to handle the details of track drawing.
This utility would have all of the best features of the latest
track drawer, PHDCHRG.
This single utility could work for MCPART, PHPART, PHTRK, PHPSUM
and PHCHRG.
The utility could have a toggle to handle both lines and track numbers.
Input would be the basic track parameters plus the DSPOBJ pointer.
-
Could likewise combine much of the KAL drawing into some shared
routines.
-
In general, the draw routines currently contain a large amount of
redundant code.
 
\
Modify all draw routines that create 3D text to specify DSIZE values
rather than SIZE values.  UG ignores SIZE values for 3D.
This causes no harm, but means we have misleading examples in the code.
 
\
Make DSPMPRI check merge options if multiple USERDATAs try to include
the same primitive.
 
\
Ideas from the meetings with Drevermann:
-
On Pick devices, have ID numbers default to be drawn in Black,
when one then sets the cursor on the relevant object, the number
becomes visible.
-
As an option, allow HIGHLIGH and ISOLATE to affect all windows.
This makes it easier to match an object seen in one view to the same
object seen in another view.
-
Allow the inverse of object picking, specify the name of an object
and have the cursor be automatically placed on that object.
Is this really even as good as our existing DSP HIGHLIGH command?
-
To make small objects such as hits visible,
draw the hit small but surround it with a larger black shield.
-
Allow drawing to be done in the Rho Z view rather than in any
of the 3D physical views.
-
Have an interactive cursor that is a small plane, tilted half way
out of the view plane.  The third dimension in the view is then
reflected in how objects cross the cursor plane.
One sees something like this in our vertex detector when one looks
from an angle on a CCD and sees how the tracks bisect that CCD leaving
the Pixel hits distributed around the little plane of the CCD.
-
Allow the Aleph "fish eye" view.  This is a Z view that draws the
CDC large but compresses the Calorimeters into small surrounding bands.
Radius is portioned out according to resolution rather than according
to actual space.
-
Allow one to zoom disproportionately in the two different screen axes.
This is useful when one is looking at a tight jet.
One wants to compress the distance along the jet but expand the distance
perpendicular to the jet.
 
\
Keep working on driving display from VM on a MAC using TN3270.
Send results to NAGAMINE at SLACVM.  He is working with ABEK.
TOPDRAW works with TN3270.  It sets the device to IBM3179 and
then disappears into the topdraw module.
 
\
To make it easier to work with filled backgrounds, make a shield for
the menu.  May be difficult for the following reasons:
Cannot use UGSHLD since this doesn't protect against filled polygons.
Cannot just lay in a black box under the menu since we draw the menu
before all of the other objects.
 
\
Can get too many info boxes by typing many adds and draws
from the interactive device keyboard.
 
\
IDA-I-INFO Begin implicit definition message should be
kept out of IBOX.
 
\
See if we can come up with some logical way to switch between locator
and keyboard (with PF key) input for Interlev 3.
UG cannot watch the locator at the same time that it watches for
keyboard or PF key input.
Might just draw simulated PF keys as pickable objects on the screen.
Could have one of these PF keys make the keyboard sensitive.
 
\
Make either a fortran routine or an IDA exec to allow users to
specify an ellipse to be drawn in the view plane.
They would provide XYZ center, and XYZ deltas.
 
\
Allow users to specify their own names and disk/dir for hard copy files.
-
When VMS event display users attempt to output a file and the current
directory is read only, it currently causes a UGOPEN abend.
It would be better to have the code give a more useful error message
or perhaps prompt the user for another directory in which to write.
At least it should not cause an abend.
 
\
Need some protection against single DSPO* banks getting larger than
seventy percent of LBUF.
 
\
Figure out why handypak overlays create a 20 percent X offset
in GENWKST displays.
 
\
Make a special relations routine to relate PHTRK to KRFCLUS
Have a start, called DSPRTKK PREPMORT.
 
\
Don't allow the user to issue DSP CLOSE from the interactive device
to close itself.
 
\
Make everything on the screen, the logo, the conditional display
list, the pf list, the ibox, even perhaps the menus be standard
object types, managed by the usual BUILD, ASSIGNP, TRANSMIT flags
and routines.
At this time, would probably become worthwhile to make some object
types be able to survive from one event to the next.
Could do this simply by copying the relevant primitive information
to some kind of temporary storage while wiping the context.
 
\
The whole IBOX system needs redesign and simplification.
Should make PICKID a distinct element of the block.
 
\
Make the DSP LABEL ATTACH feature work.  If successful, include
it in the help file.
 
\
Tony suggests having some kind of DSP EXPERT command.  If the user
does not issue this command, they are spared many of the arcane
features of the system.
 
\
Understand why when one has very large objects, they can be
drawn but not deleted (at least on RAVEL).
One can see this behavior if one modifies KALDDHT PREPMORT to break
objects into groups of 500 hits rather than the current 200 hits.
 
\
Incorporate DSPRCTX into DSPDRAW.
 
\
Incorporate DSPSCTX into DSPINTR.
 
\
Have DSPAPOP take care of setting draw primitive names based on primitive
bank type.  The draw routines will then not have to worry about this.
Would keep primitive bank names in DSPPRIM TEMPLATE.
 
\
Have DSPAPOP trap cases in which the draw routine added no objects.
Put out a standardized message when this occurs.
Use PATH to get bank name for message.
Will then be able to remove such messages from some drawers.
 
\
Menu constants should include an arbitrary number of lines of help
information for a given menu button.  User would pick a "help" button
then pick the button on which they want help.
 
\
Might put in a button which makes the display completely
reinitialize, the equivalent of starting the job over.
This would help in cases in which things have gotten very messed up.
One wishes such things didn't happen, but they still sometimes do.
 
\
Unify the three different hard copy functions (objects, relations
graph and detector geometry tree).
Might make hard copy code just a special INTLEV and then call INTR.
 
\
Have DSPDVIC CONSTANT contain only the aspect ratio rather than an
x and a y.  Y should never be allowed anything other than 1.
-
ASPECT is currently used only in DSPCMD and DSPRCTX.
-
Replace DSPSAVV%(RIGHEDGE) with DSPSAVV%(ASPECT).
May have to watch for cases in which ASPECT is not yet set.
 
\
Might have the GOFASTER toggle zero all PARENT pointers.
This in effect turns off all of the pick and valuator ability.
 
\
Might want to allow any kind of relation to be done automatically when
both objects have been added.
Currently this is only done for SAMEOBJ relations.
Indicate which relations should have this feature by
a flag in DSPRELA TEMPLATE.  Flag could be Forwards, Backwards or
Not.  Default would be Not.
 
\
Might use DSPPARM.PKTFLAG to simplify some of the routines called
by toggle buttons.
 
\
Mark DSPTYPS template to show BPEREV, TPEREV, TPERDEV, TPERVIEW
as not currently implemented.
 
\
Allow multiple arbitrary windows per page.
New page is triggered by CALL UGPICT('CLEAR', 0).
This call is made only by DSPRCTX (plus the hard copy sections of
DSPSREL and DSPTREE).
But can't have a UGPICT CLEAR call within a single UG3WRD section.
Would have to switch to 2D which would mean having to do all the trig
in my draw routines (or in my primitives).  This would be ugly, no?
Does UG let me use its 3D to 2D translation routines?
 
\
Swimmer is drawing neutral tracks as stepped object.
This results in complicated polylines which could just be a
single line segment.
 
\
Have FIP detector draw routines use the new DSPCRVW utility.
 
\
Allow DSP SHOW RELATIONS to take one of the objects as an argument.
 
\
Add userdata selection to the data selection menu.  Would have to check
for load of PHRDSP, KALRDSP, etc to know which userdatas are possible.
For shareables users, this is not a problem.
 
\
look for new solutions to working in tight.
Perhaps replace UG scissoring by my own scissoring in the draw prims.
 
\
DSP USERDATA doesn't add new menu to screen in PIKBYLOC XTERM on SLACVX.
 
\
When I do a UGEVNT for keyboard input on a TEKEMUL window on the
NCD from VM, there is a problem.  Lines of "@" signs appear on the
text window and keep clearing and redrawing.  Typing there sometimes
gets a single character through, sometimes returns nothing.
Works fine from a VAX.
 
\
The locator for TEKEMUL on the NCD needs a mouse button plus a return
key.  Would be better if this was just a mouse key.
This has to be done from the NCD.  UG has no control.
 
\
Give display a mode in which hists alternate with display.  Tell DYAEB.
 
\
Give PIKBYLOC a feedback system so the user can tell what they
picked.  It would be like highlight mode, except it should change
to solid if the object was dotted or to dotted if the object was solid.
Likewise, a picked UGMARK should change mark style.
 
\
Fix PF4 so that a DSPGOMI(include) undoes a DSPPICT(omit) and vice versa.
Might also look for a way to unify all of this and include DSPGPIC.
This could get rid of problem of sometimes having to hit PF4 twice
to get action after going into or out of the relations or geom menus.
 
\
Keep an eye out for other cases in which I use a jazelle expression
as an argument supplied to a routine and then modify the jazelle
quantity before this value is used.
 
\
Make DSP REP remark if the current view is one of the standard 3 views.
 
\
Make hard copies respect Z clipping of 3D devices
 
\
Replace DSPPARM flags like IBOX, MENU etc with window-dependent flags.
 
\
Could probably replace my three linked lists (DSPOTND, DSPISOB and
DSPHIOB with JZTSCNs if I simply changed their DSPWIND pointers to keys.
This would give the code a more consistent look, a more complete reliance
on Jazelle's intrinsic pointers.
Also it would give me automatic deletion of these banks if a window was
closed.
I could, on the other hand, replace my use of TSCNs and Jazelle SAME
pointers with explicit linked lists (would make DSPOBJ and DSPOVAL be
linked lists).
Any such work should be part of a major reexamination of the whole
bank structure.
Would have to ask Tony which is the faster way and what other factors
I ought to be considering.
 
\
Could make a companion to the DSP SIM system such that it records
interactively issued commands.
Could use this as an easy way to make scripts for later simulation.
Could use these scripts as a package of standard diagnostics.
Could also use this as a way of putting a recorder on troublesome
jobs in case they later bomb.
-
Could make a system that compiles a dictionary of these DESC
based on the current set of userdatas.
 
\
Might make all of the primitive banks initialize position values to 0.
This would make unfilled values less nasty on the VAX.
 
\
Make DSPSGRP check that DSPMENU has enough room before expanding bank.
Error message should advise user to expand the bank size in DSPMENU
TEMPLATE, also change the NUMLINES in DSPMENU CONSTANT and recompile
DSPSGRP to include the new size.
 
\
Allow any toggle to have any number of states.
 
\
Give each menu a state flag.
Such a flag could replace the internal state flags of SREL and TREE.
 
\
Make DSPRBSI handle indices if integer*4 as well as integer*2
(just like DSPRBSI).
 
\
DSPVDEF's min/max save and restore need interactive interface.
 
\
Allow DSPMODM to modify a PICKIDAC as well as an IDACOM.
 
\
Remove NPICK + 31 from JZBEXP of DSPADPK.  Just use default doubling.
The 31 makes the reader suspect some hidden complexity that is not there.
 
\
Redesign/simplify list handling system.
Somehow make DSPOLST just a special case of DSPOTXT items.
Make list draw utility handle making lists go to extra columns.
This would make this feature universal and would simplify the
draw routines that currently worry about extra columns.
 
\
Allow the valuator set in one *UDSP to access parms in another *UDSP.
Requires loosening up DSPBVAL and then testing more carefully when
the user actually tries to use the parameters.
 
\
Tried running FSIM SANECTRL to generate an FSIM event.
It hangs after the statements: FULL CDC TRACKS...ERROR MATRIX FROM...
 
\
Add buttons to the MCPART menu to make
object pick isolate parent
object pick isolate daughters
 
\
DSPMCIN IDA needs to relate the new object to MCPART.
 
\
Maybe MCIHITs should not just be system accessible.
Copied old version from @PREPMOR on N.
Only improvement it needs to come up to date is to move the
DSPUVAL call to above the hits loop.
Then just need to remove the SYSTEM /FALSE/ setting in DSPTYPS CONSTANT.
 
\
DSPTRNS uses the number of DSPOBJ banks to set the size of the scratch
spaces.  Under multiple windows, this number is larger than needed.
Really just need to set the size to the number of DSPOBJ banks in the
current window.
 
\
Talk to Richard about allowing a two part init in USERDATA DSPUINIs.
Could call them at USERDATA time with INIT and then at first
other DSP command with DOIT.
 
\
Might use DSPOTND(GRPNUM and TYPNUM) to have DSPTOGG and DSPPICK
check PATHs to decide which objects to act upon.
 
\
Might change VAXSTA to use DECVST2 as in 1990 UG manual.
 
\
Have the display use the same terminal control sequences as
Saxton uses in his GRFPLOT.  Get these from TERMPARM NAMES on the
Udisk.  Feed them into the BEGPGM, ENDPGM, etc. parameters in the
TEKEMUL UG Open string of DSPDVIC CONSTANT.
 
\
Work on cutting down memory use.
 
\
Allow user control of UPDIR (or perpup).
 
\
Make all relations routines allow either object to be a repeat block.
 
\
Reconsider whether I want to have NORTHEND and SOUTHEND.
 
\
Can set up jazelle to give more info in the DC peeks.
Have the DC menu control what one is to get.
Code things similar to how KGCINI PREPMORT gives KALTAG for KRBHITs.
 
\
Add a "draw as 4 vectors" item to the MCPART control system.
Will affect DSPDMCT and DSPDMCN.
 
\
Allow the user to control the number of segments used in drawing
detector circles.
 
\
Add measuring feature so that by picking on a point, that point
will be brought down to the zero on the ruler.
 
\
Allow generalized jazelle tables to be display lists.
 
\
Show missing energy (represented as a vector).
 
\
Allow user to pick a group of tracks, then give them the mass sum.
 
\
Sometimes DSPPICK gets called with a pick that satisfies none of the IFs.
Seems to happen when I'm picking on the menus.  But I can't understand
exactly what action triggers it.
 
\
Make toggling off the info box also remove it from hard copies.
It currently only works on refresh devices since it relies on 'OMIT.'
 
\
Clean up the KAL display code:
-
Consolidate routines that are similar.
Use parallel style as much as possible.
Have them call common utilities.
-
Replace the "Draw DIGTHRM as filled polygon" toggle with a more general
"Use filled polygons where applicable" toggle.
This can be used both by DIGTHRMs and by grid displays.
-
Save space in the menus by replacing the two cluster shape toggles
by a single button (the sort that changes function and text each time
one uses it).
-
Make toggles be true $TOGGLE$ branches rather than $SAME$ buttons.
This makes them available to non-interactive users.
-
Make all object types respect the DOT, SQUARE and CUBE toggles.
 
 

|| DSP Event Display GEANT Drawing Package ||
 
\
Investigate having the geant draw code do clipping planes.
 
\
GO 1 seems to undo piece selections.
 
\
Select a piece from int, draw, clear pieces, next select piece does
a tree move.
 
\
Several improvements that would all require having a table somewhere that
equates DSP object type names (such as DETLAC) with geant volume names
(such as SBLA).
-
Allow synonyms for geometry names, e.g., allow LAC for SBLA.
-
Have DSP ADD done automatically when user attempts to turn on geometry
detail for a subsystem which has not yet been added.
-
Use this new table to drive the detailed geometry drawers such as
DSPDLAC.  The DSPODETs would be filled from the information in the
table rather than from information hardwired in.
This would also make it possible for a user, simply by changing this
table, to change what the initial DSP ADD DETLAC command turns on.
-
Replace all the DSPDR** detector drawing routines with a single
generic detector drawing routine.
-
See if these changes allow the DSP PIECE system to be simplified.
 
\
Find a way to not need the DSPBILD call in DSPCOPW.
It is currently there to facilitate getting DSP PIECEs to copy windows.
 
\
In Det Geom Menu, if you try to select a piece of a volume that
has not been added, the error message blows you out of the display.
It is non-fatal, but it should not do this DSP NOINT.
 
\
Make a button in the Det Geom Tree to make an entire tree seen.
 
\
DSPPIEC does more JZBEXP than it may need.
Have it first check the limit before expanding.
 
\
See if I can find a way to do without DSPOTYP%(PIECEINI) and PIECEFST.
They are OK, but they seem awfully clumsy.
 
\
DSP GEOM SBWI can abend from running out of zebra space.
 
 

|| DSP Event Display Help and Documentation ||
 
\
Bring DSP TEX up to date with the current PROD code.  Then Release it.
Include information on how the Geant drawings are hijacked by the
SLD display variants of Geant drawing primitives.  These primitives are
in DSPGEANG PREPMORT.
 
\
Correct all comments in code to adopt the reference manual's terminology
for DSPOTND%(PARENT) versus "parent of the object."
 
\
Clarify headers of the tree and stack handling utilities.
 
\
Update the Additions Manual:
-
discuss DSPRVTY, DSPCRVW, DSPFVAL and other utilities
-
discuss the new flag DSPPARM.PKTFLAG and new IDALVAR DSPPKFLG
-
discuss how to write IDA routines for calling by the display
-
include a diagram that shows how DSPOPPTs map into DSPOBJs into DSPOTNDs.
should show the keys and the multiplicities.
-
In ADDOBJ TEX, discuss 2D vs 3D coordinate system for primitives.
 
\
Make the Additions Manual into a Web document
Convert TEX files in DISK$SLD_FAC0:[SLDWWW.DSP] to html.
-
Notify RKROEGER.

 
 
|| GENWKST UG Driver ||
 
\
Understand the SGI's message:
UGserve: Compressing graphic segment storage...
 
\
Find out how LES' fix worked for the Crimson at UCSC.
 
\
Want a way to control eye separation of 3D SGI without dial box.

\
Want a way to control Z clipping without dials.

\
Need to fix pick in SGI's true stereo mode.  Pick currently misses.
 
\
Would like SGI and AIX machines to refresh picture without needing my
.001 second quick return UGEVNT calls.
May be ok now.  Check on all devices.
 
\
Flip the initial state of the Z buffering toggle on the GENWKST devices.
This will make them handle area fill consistent with the IBM5080 and
the POSTSCRIPT printers.
 
\
Restore last sent view by an SGI button (like mouse button 4 on 5080)
 
\
Ping (give VAX a way to tell if UG server is up)
 
\
Anti-alias solid lines while still drawing dotted lines
 
\
Auto-rotate and wobble

 
 
|| Waiting on Others ||
 
\
Work with Tony on passing IDA a pointer rather than an index.
Once I have the pointer, should be able to make the IDAPICK menu item
"object pick deletes object."
 
\
Install new DSPINTR to handle TYPE/DSP when the relevant DEV IDA code
moves to PROD.  The DSPINTR has been stored as DSPINTR PREPIDA.
It will need to be updated to match the latest DEV DISPLAY version.
 
\
Get Tony to implement his idea for a way to tell jazelle to skip
pointer checks when it does deletes.
This would greatly speed up deletion of object types.
 
\
Protect against RVIEW and RREL of inappropriate JAZZDATA files.
Requires that some more features go into the JZIO code.
 
\
Have interactive restore view/relations list Jazzdata files in
a pickable IBOX.
Requires that some more features go into the JZIO code.
 
 

|| Other Projects ||

\
If ever get back involved with the WIRED project,
consider usefulness of XML and SCC.
 
\
Possible improvements to the WWW MC Processing Status System:
-
Include number of events for each job.
-
Put real total number of events at bottom of file (currently just takes
number of jobs times canonical 300 events per job).
-
Allow user to dump the full Oracle table entry for a given job.
 
\
Change DSPHIST PREPMORT's COMMON DPMODE to a $SLD_COMMON.
 
\
Could use SLDPM QJOBS RECON (PEND 10 or more
to tell whether a day is incomplete in the ZHIST.
For such days, use an up arrow rather than a star.
First check with Richard.  He may switch to a fast recon to temporarily
fill the ZHIST numbers.
