SLAC logo HepRApp logo
HepRApp Users Home Page


Release Notes

30 March 2007 - Version 3.15.0
Major New Release - Many Improvements - details
27 May 2005 - Version 3.14.1
Bug Fixes and Usability Improvements - details
18 March 2005 - Version 3.14.0
Major New Release - Many Improvements - details
For complete details on these and earlier release notes, see Release Notes for HepRApp

Introduction

HepRApp, the original HepRep Data Browsing Application, is a Java application that was developed to let physicists visualize particles interacting with matter (a "single event display" in the language of High Energy Physics applications). Just as HepRep has proven to be a useful general way to represent certain kinds of geometry and data, HepRApp is a general purpose browser for that data. Current uses include High Energy Physics, Space Physics, Shielding Studies and Medical Physics.

HepRApp accepts HepRep data both from XML files and from HepRep-enabled HepEventServers. This data may be particle physics events, Geant4 detector geometries or some other hierarchical graphics data. The data may be either HepRep version 1 or HepRep version 2. The data source may be another process on the same computer as HepRApp or it may be a server an ocean away.

HepRApp is written as 100 percent pure Java to provide a true "runs anywhere" capability. It is currently being used on all versions of Windows (from Windows 95 to XP and Vista), Linux, Unix and Mac OSX.

Users are encouraged to install and run HepRApp on their desktop machines rather than running it via x-windows from remote Unix systems. HepRApp will work either way, but the best performance comes when it runs on the desktop.

A few more historical and technical details are provided in a later section of this document.


Installing and Starting

Nothing Could be Simpler. HepRApp comes as one simple file, HepRApp.jar.

If you are on Mac or Windows (or some other systems that have automatic association of jar files with Java), just click on this file to start the application.

The first time you run HepRApp, it will immediately open the "Select Group" menu. This is where you can specify whether HepRApp should run with any special settings for known groups (currently the BaBar and GLAST experimental collaborations). You can also revisit this setting at any time from the Options menu. The setting you make here, along with many other settings you make as you work in HepRApp, will be stored in a file called "user.properties" that will be created in the directory from which you ran HepRApp.

If you would like to run with a step by step tutorial showing exactly what output you should see at each step, try the tutorial that was written for Geant4 users: Geant4 Visualization Tutorial using the HepRApp HepRep Browser

BaBar users may want to check out another step by step tutorial that was written specifically for them: Using the event display

Otherwise, see the section below on Basic Operation.


Checking Your Java Version or Installing a new Java

HepRApp requires Java version 1.4.1 or greater, and your Java MUST NOT Be one called libgcj.

You can check the version number by typing the following from a terminal window (or on Windows, a command or cygwin window):

   java -version

If the response includes the words "libgcj", watch out, this is not a real Java version. Rather, it is a minimal version that some Linux distributions include as a place-holder for a real Java. While it may be sufficient to run some simple web applets, it is not sufficient to run serious Java applications such as HepRApp.

If you don't already have the appropriate Java:

Additional notes for Linux users:


Basic Operation

The Main Toolbar

Use the Open Data button to select some data.

Use the reload button to reread data that may have changed.

The previous and next event buttons read the next data from your chosen data source.

The up and down buttons navigate up and down lists of specific event IDs.

The AutoUpdate button lets you continually update to new data.

The New View button creates a new view window.

The Data Visibility Control button turns on and off the data visibility tree (which is turned on by default).


The Orientation Toolbar

The bottom of the view window contains the Orientation Toolbar. These buttons control zoom, rotate and translation functions.

The View Popup Menu

To see other options, place the cursor into the window that contains the view and hit the right mouse button (Macintosh users, hit control and mouse button).

The File Menu

The File Menu provides functions for opening and saving data.

The Options Menu

The Options Menu lets you control an assortment of features.

The Window Menu

The Window Menu lets you create and lay out additional view windows (so that you can do things like have a front, top and side view of your data at the same time).

The Help Menu

The Help Menu points your default web browser at relevant help pages. It assumes you have internet access.

Advanced Features


Labels

HepRApp can label any object with any of its HepRep attributes. For example, the label could appear as follows:

Labelling follows the flexible scheme envisioned in the HepRep standard. For example, if there is a Track that has a Transverse Momentum of 3.143 GeV, you can choose to

Labels are anchored to whatever point of the object appears closest to a screen edge. This has the desireable affect that when you zoom in on a track, while the end of the track may fall off the screen, the label will slide along the track, remaining on the screen, unless the track falls completely off the screen.

You can reposition labels by hand if you need to.

Labels can be controlled from a Label Control Dialog or from startup options.


Cuts

HepRApp can hide objects based on cuts that you provide. For example, you could cut out all calorimeter clusters that have less than some specified energy. Cuts can be based on any HepRep attribute.

Cuts can be controlled from a Cut Control Dialog or from startup options.

The type of value tested can be either integer, float or string as long as it matches the type of value of the relevant HepRep attribute (which can be seen from the attribute popup or by using the labelling feature.

Whenever cuts are in force, the cut will be listed in the lower right corner of the view window, and this list will be included in any exported graphics.


Selecting Server Data

The Open Data Dialog has many advanced features to help you select data.

Startup Options

HepRApp respects a large selection of startup options to save you effort or allow you to customize the look and feel of the application. Most users will not need any of these options, but any of them can be used by including them in your user.properties file.

The first time you start HepRApp, a properties file is created in the current directory:

   user.properties

HepRApp stores various values in this file so that it can remember some of your settings (size and location of the main HepRApp window, directory from which you last read a HepRep file, etc.). You can edit this file to add addtional startup options.

You may notice that some of the stored values have ":" replaced by "\:". This just occcurs because Java saves properties using ISO 8859-1 character encoding. If you write properties files by hand, you can go with or without these extra slashes.

You can prevent HepRApp from overwriting your properties file by setting the property "lockPropertiesFile" to true.

The complete list of available startup options, along with their default values and explanatory comments is described at:
    http://www.slac.stanford.edu/~perl/HepRApp/default.properties

To change any of those defaults, copy the corresponding line into your user.properties file. Your value will override the default. Take care not to modify the default file itself (if you find that you have done that, replace it with a fresh copy from the above link).

Note that some option values are case sensitive (for example, projection name must be Perspective, not perspective).

If you run HepRApp from the command line, you can also specify these options there, for example:

   java -jar HepRApp -fullScreen true

Each option is preceded by a dash and follwed by a value. You may string together as many of these options as you wish (there is no order-dependence).

For boolean options, if you leave out the value it has the same effect as setting the value to true, for example:

   java -jar HepRApp -fullScreen

Options provided on the command line are in effect only for the current session.

One special option which can be used only from the command line is "-opt". Use this to specify an alternate properties file (instead of user.properties), as in:

   java -jar HepRApp -opt myspecial.properties
The regular user.properties file will then be ignored.

To Make Your Own Server

HepRApp is fundamentally experiment-independent. Any experiment that implements the HepRep and HepEventServer protocols can serve events to this same HepRApp client. To learn how to do this, first study the HepRep and HepEventServer documentation, then contact Joseph Perl for general guidance (including the latest example code from BaBar and GLAST).

Although BaBar already has many production event display servers, individual BaBar users may want to run their own servers to look at a special database, to run special reconstruction code or to develop the server itself. For details, see: Running Your Own Event Display Server, Rapidly! or contact the BaBar Event Display maintainers at wiredces@slac.stanford.edu.


Historical and Technical Details

HepRApp was developed by doing a major revision and refactoring of an earlier application, Wired3. The new name gives a better reflection of the application's function, as a HepRep Data Browsing Application. The first release of HepRApp is called Version 3.15 rather than version 1.0 to reflect that it is not an entirely new application. HepRApp is a major improvement over Wired3 in terms of ease of installation, ease of use and extent of feature set, but it was made by refactoring, refining and extending Wired 3.14.

Wired3 grew out of earlier WIRED event display work at CERN (originally a web applet, WIRED stood for World-Wide Web Interactive Remote Event Display). With the addition at SLAC of the HepRep Generic Interface Definition for HEP Event Display Representables and the HepEventServer Generic Design for HEP Event Data Servers, WIRED become Wired3 - a generic, experiment-independent HepRep browser that can serve many different user communities.

HepRApp can communicate via CORBA or XML architectures to a variety of servers which provide HepRep format data through the HepEventServer event server protocol. Pools of such servers may be managed using the JProcMan process management system. An overview of how all of these components fit together can be seen at A Component Approach to HEP Event Displays.

HepRApp uses the unique projection engine originally developed for Wired (rather than a conventional hardware graphics engine) to allow creation of specialized, often non-linear, projections of interest to physicists. A special layering model insures that certain data such as raw hits are always layered on top of their associated found tracks no matter what orientation the view is presented in. The work is analogous to how a cartographer layers data on a map to maximize the presentation of useful information.


Additional Features Coming Soon

Many improvements are planned, including faster response and continued debugging.

Some highlights of work going on at this moment are:

For a complete description of the functionality we eventually intend to achieve, see:


For More Information


Send us your Feedback

Questions and feedback are always welcome.

In Case of BaBar Server Problems

The BaBar Event Display servers get their data from the standard BaBar databases and run on standard SLAC interactive machines. They contain at their heart a standard BaBar analysis job. They are therefore unable to serve events when these databases are down or when the SLAC BaBar interactive machines are experiencing system problems. In most cases, the event display servers will come back up as soon as the underlying system issues are resolved.

If a server goes down, you will be given the option to browse the server logs. The tail of the log should show you something about why the server failed. You can also check the server logs at any time by clicking on the Help menu's "Browse Server Logs" option or directly viewing the Server Status Page.

You can ask for a new server of the same kind by first clicking on the minus sign next to the server description (which closes that part of the tree) and then again clicking on the plus sign next to the server description.

Please consider the following possible problems before assuming this is a problem with the HepRApp system itself:

Relevant problems will often be reported in the BaBar Hypernews groups:

Most suspected BaBar event display server crashes turn out to actually be crashes that would occur in any equivalent BaBar interactive analysis job. So please, if you have the time, try an equivalent analysis job (using the same release as the server) to check if this problem is really specific to the event display servers.

Having said all that, we really do want to hear from you if there are any problems. Please contact us through the above feedback links.


HepRApp and this web page are currently maintained by Joseph Perl.
HepRApp is based on earlier WIRED3 and WIRED versions by Mark Donszelmann, Joseph Perl and many others.

1 June 2007