SLAC PEP-II
BABAR
SLAC<->RAL
Babar logo
HEPIC E,S & H Databases PDG HEP preprints
Organization Detector Computing Physics Documentation
Personnel Glossary Sitemap Search Hypernews
Unwrap page!
Computing Search
Who's who?
Meetings
FAQ Homepage
Archive
Environment
Online SW
Offline
Workbook
Simulation
Reconstruction
Data Distribution
Beta
Beta Tools
Event display
Code releases
Databases:
Hot Items!
About Us
Meetings
General DB info
Conditions DB
Event Store
Online DB
Links
Check this page for HTML 4.01 Transitional compliance with the
W3C Validator
(More checks...)

The browser aims at providing "Babar-specific" views of Objectivity databases. Detailed requirements have not yet been finalized. It is hoped that requests for features will come from the user community - Your comments are welcome. Please send all bug reports and feedback to the BaBar OO Databases hypernews group.


Now Available: The BdbEBrowser applet (05/10/01)

If you wish to browse the BaBar production federations (analboot, analboot2, sp1analboot, etc.) you need not bother dealing the BdbTools package. The BdbEBrowser client is now available as a Java 1.3 web applet.  Testing has been successful on  Windows, Solaris and Linux. I recommend you use your native desktop's web browser (Netscape or IE) for the best graphics performance. 

You can get started by simply launching the applet. If you do not have the Java 1.3 plug-in installed, you will be automatically re-directed to the plug-in download site. This is a one-time installation and should not take longer than a few minutes. Please read the notes below.

Windows users

Launch the applet and if necessary, follow the on-screen Java 1.3 plug-in installation instructions.

Solaris users

If you already have Java 1.3 on your filesystem (this includes SLAC AFS machines), there's no need for any further installation! Locate the path to the Java 1.3 distribution and set the NPX_PLUGIN_PATH environment variable. It probably makes sense if you add this to your shell startup file.

For example, on a SLAC Solaris machine with AFS, do the following:

setenv NPX_PLUGIN_PATH /afs/slac/package/java/@sys/jdk1.3/jre/plugin/sparc

For other sites, you need to alter the base of the path (/afs/slac/package/java/@sys/jdk1.3) accordingly.

Restart Netscape and launch the applet

Linux users

Currently only Sun's (not IBM's) Java 1.3 plug-in is supported. If you already have the Sun Java 1.3 distribution installed (this includes SLAC AFS machines), simply set the NPX_PLUGIN_PATH variable accordingly.

For example, on a SLAC Linux machine with AFS, do the following:

setenv NPX_PLUGIN_PATH   /afs/slac/package/java/@sys/jdk1.3-sun/jre/plugin/i386/ns4

For other sites, you need to alter the base of the path (/afs/slac/package/java/@sys/jdk1.3) accordingly.

Restart Netscape and launch the applet

Applet Security

The applet code has been digitally signed with a code signing certificate obtained from Verisign, a well recognized computing security agency. Code signing prevents unauthorized parties from tampering with code in addition to verifying  the code signer's identity. Granting permissions to signed applet allows to the code to bypass the default applet security restrictions related to network connections and local filesystem access. 

 


Browsing

Once the browser is running, a dialog window will display the list of all the currently active servers. Select a server by highlighting a bootfile entry. You may then choose to browse a server or shut it down (careful!)

servers.gif (3889 bytes)

The main GUI panel contains two tree widgets. They allow you to browse through database files and event collections respectively. Place the mouse pointer above a database icon for a brief moment: The database ID should be displayed in the form of a "tooltip".

mainwin.gif (13758 bytes)

The system is comprised of distributed objects which use CORBA to communicate. Server objects (BarB_server) are implemented in C++, using the Objectivity API to access federations (strictly read-only for the moment). Each server is a single process and may access only one federation during it's lifetime.  The client is a 100% Java GUI, completely independent of Objectivity and may even be launched within an applet.  

NOTE: The high-level tree heirarchy information is obtained from the treenode databases. Not all databases will be visible from within the browser!

The pop-up menus

Both the Database tree and Event Collection tree have pop-up menus which may be accessed by clicking the right hand mouse button. You may hide the database/collection icons if you're browsing a large federation. Also, you may choose to display the number of events by default. Use this option with care since database access is required in order to retrieve the number of events.

evwinpop.gif (1110 bytes)

The Database tree presents either a logical or physical abstraction of the database hierarchy. The logical view is a BaBar-oriented structure of domains and authorization levels. The physical view shows the placement of databases according to file hosts and filesystem paths.

dbwinpop.gif (1369 bytes)

Print to File

There is now a feature allowing you to save an ascii (text) representation of the Database and Event Collection trees to a file. Invoke the command through the tree pop-up menus. NOTE: When you specify a filename that already exists, it will be appended!! A timestamp is also included in the output so the file will resemble a log.

Browsing Event Collections

The ability to browse event collections is a high priority in the list of requirements. Double-clicking on a collection will now allow you to view the list of event IDs and any subcollections. Double-clicking on an event entry will open up a new window displaying event information. The list of event stages will be shown. If the Event contains a tag, the tag data will be listed. Please use with caution especially if other users are writing to a federation.

eventselector.gif (12629 bytes)

Tags and Filters

In the case of collections that contain descriptions of tag attributes, you can make simple tag queries. The Event browser (shown above) now displays an "Event Filter" button. If the button is active, the collection contains tag descriptions. Double-clicking on an Event entry will display it's tag attributes. These attributes may be used as a means of selection. Use the "Event Filter" button to open the Filter dialog window. Select an attribute and a value. Apply your selection and now the Event browser will only display events which match the selection - simple.

tagfilter.gif (5272 bytes)

Scanning collections

As an aid to data distribution, you can scan an event collection to obtain the list of associated databases. Place the mouse pointer on a collection in the event collection tree and click on the right hand button. Select the "database scan" command. When the scan is complete (be patient), the list of corresponding databases will be shown in place of the database tree (left side of the window). The pull-down menu above the tree pane allows you to switch between the database tree and scanned collections. If you now view the database tree and display it's pop-up menu you'll notice a change:

scanpop.gif (2481 bytes)

In addition to the regular commands you'll notice that the scanned collections are also present. Select one or more collections and when you browse the database tree, any databases which belong to the list of scans will be highlighted.

Recent changes

BdbTools V00-01-10

The database scan interface has now been linked to the database tree. Removed some toolbar buttons and added pull down menus for bootfile selection and the database tree. Fixed an annoying bug related to tag iteration which generated ooVArray bounds errors. BdbEvent no longer inherits behaviour from BdbGenericHdr.

BdbTools V00-01-08

Several changes have been made to underlying BaBar packages. In order to use this version, you should be working with BaBar 8.3.0. Multi-threaded servers are now an option. If you think you need to make use of this feature, contact me. Client window management has been improved along with event collection navigation.

BdbTools V00-01-06

The browser has moved to the "new" EventID mechanism. No more major ID and minor ID. The timestamp is shown in the collection window along with the run number. Also, objects contained within the event header trees are now visible.

BdbTools V00-01-05

Collections may now be "scanned" to obtain the list of associated databases. This should be a useful aid to data distribution. Note that scanning can take a VERY long time if the collection is part of the analysis federation. 

BdbTools V00-01-04

A nasty bug which prevented access to event collections was fixed. This was related to the change of BdbEvent class. Table widgets have been introduced, improving the layout of tag information.

BdbTools V00-01-02

Event tag information is now accessible. Simple tag selection may now be used.

BdbTools V00-01-01

Work has begun on browsing collections. A new interface lets users browse the list of events in a scalable manner. Changes are being made to the BdbEventStore package regularly so frequent updates to the browser are to be expected.

BdbTools V00-01-00

The GUI has undergone a facelift, the buttons now have icons and a new widget allows quick access to servers. A "Print to File" feature has also been added.

BdbTools V00-00-08

Servers can now be run outside of the slac domain. The location of the NamingService resource has been moved to AFS. What does this mean? Well, I ran a server at in2p3 (against a federation at in2p3) and I was able to browse it at SLAC. Performance was very satisfactory.

BdbTools V00-00-07

Pop-up menus have been added to both the Database Tree and the Event Collection Tree (with the mouse pointer positioned in either tree, click and hold the right button). Currently, you may toggle Tree Node icons on or off. This makes better use of screen space and is ideal when dealing with large numbers of Event Collections/Databases. Also, the Event Collection Pop-up menu allows users to automatically display the number of events for all Event Collections within a sublevel. Use with caution!! This feature may generate a large number of read locks.

The number of Event Collections within an Event Collection is now displayed (Double click on a collection icon). Expect this interface to be improved with time.

A signal handler has been added to the BarB_server to catch <crtl>-c and "kill" signals.  The handler then unbinds the server's name from the Naming Service. 

BdbTools V00-00-05

The CORBA NameService is essentially a Yellow Pages for CORBA objects. The browser system uses the NameService to register the references of the C++ servers. There are two ways to aquire the reference to the NameService: Either through a subnet broadcast or by passing the address to the CORBA program as an argument. Currently, I have opted for the latter since I cannot control who starts up a NameService on any given subnet.