
One approach to an online graphical user interface for PHOBOS based on ROOT is some combination, preferably weighted to the latter, of inventing displays as needed and laying down a set of specifications of what we want from a GUI. Another complementary approach is to explore the capabilities of ROOT and come up with ideas for the GUI specification based on these. This is an attempt at such an exploration.
There is a facility g2root in the ROOT distribution which allows the translation of a GEANT ZEBRA output of its geometry tree into a ROOT TGeometry collection. Andrzej Olszewski did this a while ago as described in his February 23 e-mail message; I was able to make the translation recently and set out to experiment with the display of PHOBOS which this makes possible, and the new TButton class of ROOT. The file phobos.C in this (phgeom) directory is ASCII specification in ROOT format (TNodes) of the complete PHOBOS geometry as read into GEANT (PMC) from the new (also ASCII) ugcdata_v38.txt file. The pixeling now added does not seem to produce additional volumes or nodes in the ROOT translation; "divisions" appear to be handled differently from expicit volumes in GEANT and apparently aren't transmitted by g2root. (The behavior in phgeom is the same as version 37.) The main difficulty in using this file is that the geometry organization is by convenience in defining rotation matrices; the functionality of the components is somewhat encoded in the formalism of the ASCII node names. For example, SN__ names denote the sensitive regions of all the spectrometer silicon in one arm. Macro phcset.C selects nodes by functionality. It is used by most of the large buttons in the main display to display various subsystems of PHOBOS; the red and purple buttons select particle-sensitive items.
The main routine in this demo is the macro phgeom.C. A macro phghelp.C implements another button panel when the large HELP is picked. This illustrates the start of a "tree" of button panels. The new buttons bring up web pages. Macro phtog.C implements some procedures for the very small buttons, which apparently cannot be placed in-line in phgeom.C (see "Discoveries").
The first five buttons in this auxiliary help panel bring up local web
pages which you can view now. See the first
picture below to see these buttons.
No code is compiled in this example. This is discussed in "ideas..."; there is no need to. Compilation should be used for stable code, tight loops, and items which are more true objects e.g. classes than the procedures involved here.
You may browse these web pages, or download the whole demo. Unfortunately, because of differing arguments to gSystem->Exec(), there is a separate W95 download and UNIX download; any source code you see from these pages is for W95 (and presumably Windows NT). The UNIX version has been tried only on an HP9000. I have not installed or tested OpenGL yet on the UNIX version. The downloads include these web pages which as mentioned can be called from within the demo.
The next major step is to improve access to individual geometry nodes and overload the right mouse functions in order to display our own information.
Here is a gallery of some pictures obtained from the demo.
First we have the screen after the three large red buttons and HELP
have been pushed:
Next we have an OpenGL view of the octagon and its supports, with the "t" lighting option:
This is part of the spectrometer including supports, in OpenGL:
A wireframe view of the octagon:
| Donald W. McLeod Professor
of Physics High Energy Heavy Ion
e-mail: mcleod@uic.edu, phone: (312)996-5358, fax: (312)996-9016 surface mail: D. McLeod, University of Illinois at Chicago Physics dept. M/C 273 845 W. Taylor St. Chicago Il 60607-7059 |