The HPS Monitoring Application is a Java Swing GUI application which provides an online data monitoring framework for the experiment.  EVIO and LCIO files can be loaded directly, or EVIO data can be read from an ET server and decoded.  The LCIO events built from EVIO can be processed using Drivers defined in an lcsim xml steering file.  Plotting is done using the Java AIDA API with a custom JFreeChart based backend.

Installation

The application is part of the HPS Java project, so the Installing HPS Java instructions should be followed to build it.

You may also find an hps-distribution jar using a Nexus repository search and download it through the web interface.

Running

The application is activated through its main method and takes only one command line argument, which is the name of a settings properties file.

java -Xmx1g -cp hps-distribution-bin.jar org.hps.monitoring.application.Main -c settings.prop

The settings files are not typically hand edited but created by saving settings from the GUI's menu.

GUI Diagram

 

LabelNameDescription
1Application Menu Barcontains menus with commands
2Status Panelapplication's current status (connected or disconnected)
3Date Panelshows when status last changed
4Control Buttonsused to connect, disconnect, pause, continue, etc.
5Data Sourceavailable data sources (files or ET)
6Event Dashboardstatistics for the current session
7System Status Monitor Tabsystem status monitoring tables (for alarms)
8Log Tablist of application log messages
9Trigger Diagnosticsshows trigger diagnostics info when the right Driver is active in the job
10Plot Panelshows the current set of plots in the session
11Plot Info Panelshows information about the currently selected plot

Session Management

Connecting and Disconnecting

You can start a new monitoring session by clicking on the connect button in the GUI.

When the application is disconnected, as it will be just after starting up, the button will look like this.

The status panel will show a disconnected status similar to this.
Clicking the button will connect to a new session using the currently configured settings.

After connecting, the button's appearance will change.

And the status panel will show the connected status.

When starting a new session, you may have to wait 30 seconds or more for initialization, mostly due to the large amount of data that must be loaded from the conditions database.

Pausing

The application can be paused to suspend event processing and then step through individual events.

The control buttons will look like this in the un-paused state.

Clicking the pause button will change the buttons so that the play and step buttons are active.

Now you can use the step button on the right to process single events, or event processing can be resumed by pressing the play button.

Settings

Settings can be saved under Save Settings in the Settings menu.

Previously saved settings may also be loaded in the application under Load Settings in the Settings menu.  You should give these files the extension of .prop to indicate that they are Java properties files.  The settings will not take effect until a new session is started.  If there is a currently active session, it will not be affected.

Configuring Settings

Settings can be configured in the GUI by clicking on Open Settings Window under the Settings menu.

Connection Settings

The first tab contains settings for configuring the application's connection to an ET server.

 

SettingDescriptionNotes
ET Namename of the ET buffer file 
HostET server's TCP/IP hostname 
Portport for connection to server 
Blockingblock when reading from ET systemusually should be deselected
Verboserun ET station in verbose mode 
Station Namethe name of the ET station used by the monitoring applicationshould not exist already
Chunk Sizenumber of chunks encoded togethertypically one chunk corresponds with an EVIO event
Queue Sizethe queue (cue?) sizenot sure what this means!
Station Positionstation's position in the chain of ET stations 
Wait Modewait mode for when events are not immediately available 
Wait Timein timed Wait Mode, determines how long to wait for events before giving up 

Job Settings

 

SettingDescriptionNotes
Steering File Resourcepath to steering file jar resource 
Steering Filepath to steering file on diskuse the Select Steering File button to choose a file
Steering Typechoose whether a file or resource is used

determines whether the Steering File or Steering File Resource value is used

Processing Stagelimit event processing to a certain stage

event processing will be done up to and including the selected stage

Detector Namename of detector model 
Detector Resources Directoryused to select a directory with detector resourcesimplements detector aliasing as the selected detector may override a known detector
User Run Numberprovide a run number to override those from the events 
Conditions Tagselect a conditions tag for limiting returned conditions data 
Freeze Detector Conditionsprevent conditions system from using run numbers in the datamay only be used when run number and detector are provided
Max Eventsmax events to read before disconnecting-1 means unlimited
LCSim Event Builderselect the builder for creating LCSim eventsdefault should be fine
Disconnect on errordisconnect if there are any errors 
Disconnect on end rundisconnect when run ends 
Log to Filelog messages to a file instead of the log table 
Log File Namelog file name if logging to a file instead of the log table 

 

Recent Files

A list of recent files is available under Recent Files in the File menu.  This has a list of files that were opened using the Open File command.

Files added to this list will not appear automatically if the application is closed and reopened.  They must be saved by using the Save Settings menu item under Settings.

Menu Commands

The application menu has the following commands.

CommandMenuDescription
Open FileFileopen an EVIO or LCIO data source
Close FileFileclose the current data source (removes from Data Source drop down)
Recent FilesFileselect a recent file
ExitFileexit the application
Open Settings WindowSettingsopen the Settings Window
Load SettingsSettingsload settings from a properties file
Save SettingsSettingssave settings to a properties file
Load Default SettingsSettingsload the application's default settings
Save PlotsPlotssave plots to file (PDF, AIDA, etc.)
Clear PlotsPlotsclear the underlying objects in the AIDA data store
Save ScreenshotToolssave a screenshot of the application window
Log to FileToolslog application messages to file rather than Log Table
MaximizeWindowmaximize the application window
MinimizeWindowminimize the application window
Restore DefaultsWindowrestore the application's default window settings

Data Sources

EVIO Data Source

EVIO files can be loaded using the Open File menu item under File.  These events will be processed using the currently configured event builder to produce in-memory LCIO events which can then be reconstructed.

LCIO Data Source

LCIO files can also be loaded using Open File.  These files may contain only the data collections, in which case reconstruction steering should be run.  Or these files may already contain reconstruction output.

ET Server

Data can be read from an ET server (also called ET ring) and converted to EVIO.

A local ET ring can be started from the command line.

java -Xmx2g -cp ./distribution/target/hps-distribution-bin.jar org.jlab.coda.et.apps.StartEt -f ETBuffer -s 20000 -v

Then the EVIO file can be streamed to the ET server using a utility in HPS Java.

java -cp ./distribution/target/hps-distribution-bin.jar org.hps.record.evio.EvioFileProducer -e events.evio -f ETBuffer

In real data taking, the monitoring application will need to be configured to connect properly to the Counting House's ET ring.

System Status Monitor

The application implements a soft alarm system using its system status monitor component.

Active alarms and a sequential list of system status changes can be viewed in the System Status Monitor tab.

An alarm can be cleared by clicking on its record's Clear button.

Steering Files

Many different monitoring steering files are available under the org.hps.steering.monitoring package in HPS Java.  Only steering files in this package will be shown in the Job Settings menu.

FileSubsystemDescription
EcalMonitoringFinal.lcsimECalfull ECal monitoring plots with event display
SensorOccupancyPlots.lcsimSVTsensor occupancy plots with system status monitoring
TrackingAndReconMonitoring.lcsimReconstructionplots of full reconstruction output
SVTMonitoringSVTprimarily SVT data monitoring plots
TriggerDiagnosticsMonitoring.lcsimTriggerpushes information to the Trigger Diagnostics Panel
  • No labels