Java Analysis Studio - Chep 2000 Home Page
Download
Report
Transcript Java Analysis Studio - Chep 2000 Home Page
Java Analysis Studio
CHEP 2000
February 2000
Tony Johnson
([email protected])
Contents
(Lightning Fast) Overview of JAS
Open Source/CVS/jmk
What's new in Version 2.0
Modular Plot Component
• XML support
• Servlet Support
• 3-D support
JEdit editor
Embedded HTML
Examples of Use
Babar Online Monitoring
US Linear Collider Detector (LCD)
Java Performance
Documentation
Acknowledgments
Conclusions
JAS Components
Plugin
Histo/Plot
Adaptor
GUI
Framework
Network
Adaptor
JASHist
(Plot Bean)
Analysis
Framework
Histogram
Accumulation
Fitting
Framework
Functions
3-4 Vector
Utilities
Particle
Properties
Data
Interface
Fitters
PAW
SQL
Jet
Finder
stdHEP
Lightning Fast JAS Overview
Modular Java Toolkit for Analysis of HEP data
Data Format Independent
Experiment Independent
Supports arbitrarily complex analysis modules written in Java
Rich Graphical User Interface (GUI) with:
•
•
•
•
•
Data Explorer
Flexible Histogram + Scatterplot display
Histogram manipulation+fitting
Built-in Editor/Compiler (for writing analysis modules)
Extensible via plugins
User extensible via Object Orientated API's
Written entirely in Java so will run on any platform with a Java
VM (JDK 1.1 or better)
• Support: Windows 95/98/NT/2000 + Linux + Solaris
• Works on: DEC + SGI + Mac
JAS GUI
JAS GUI – Histogram Viewer
JAS GUI – Editor/Compiler
JAS GUI – Plugin
JAS – Remote Data Access
Rather than transporting peta-bytes of data to the physicist
Transport the physics analysis code to the data
Transparently - so that it feels just like local data access
Using Java-Agent Technology
Just ship histogram contents back to the physicists desktop
For more background on JAS see CHEP 98 paper
JAS Jumps on OpenSource Bandwagon
All source code now stored in CVS
Use any CVS client for anonymous (read-only) access
• We recommend jCVS (pure Java CVS client)
Source code all web browsable
• Implemented using jCVS servlet
Write access can be given to interested developers
Intend to put entire code under LGPL
Platform independent build system
Uses jmk - pure java make-like tool
• To build entire system on any platform with CVS and Java
cvs co jas
cd jas
java -jar jmk.jar
Modular Plot Component
Can be used in other applications
Uses Model-View-Controller design
Data Source
1D Histogram
2D Histogram
Scatter Plot
XY Plot
Plot Component Features
1+2-D histograms and scatter plots
Scatter Plot display optimized for 1000’s of points
Overlaying of several histograms or scatter plots
Interactive function fitting for 1-D plots
Direct User Interaction by clicking and dragging
Numeric or time axes, plus axes with named bins
Many display styles that can be set interactively or programmatically
Dynamic creation and display of slices and projections of 2-D data.
Very efficient redrawing to support rapidly changing data (handles over
100 updates/second).
Printing using both Java 1 and Java 2 printing models. High quality
print output is available when using Java 2.
Saving plots as GIF images or as XML. Support for encapsulated
postscript and PDF is in progress.
Custom overlays which allow data to be displayed using user defined
plot routines for specialized plots.
XML Support
XML specifies a generic syntax for a markup language
but no tags
• Users specify tags to use for a specific problem domain
• HTML roughly an XML instance for web pages
Tag set formally specified by a DTD.
• Have defined tag set for markup of plots
• Tried to make it generic so it could be used by other programs
JASHist bean directly supports reading/writing XML
XML file can store
• Display style + snapshot of current data
• Display style + reference to (live) data
XML is ASCII file (like HTML) so can be hand edited
Use as a replacement for TopDraw!
Example XML File:
3D Support (Future)
Andrey Kubarovsky and Joy Kyriakopulos at
Fermilab
Using Java 3D API (standard Java extension)
Build lego plot, surface plot, 3D scatter plot
Built as standalone package
Designed to be compatible with the JASHist bean
Will fit into same model-view-controlled model
3D Support
Servlet Support
JASHist can be used to create plots from a Servlet
Example of using JASHist bean in another application.
Servlet vaguely similar to Java Applet
•
•
•
•
•
Both could be used to but a "live" plot on a web page
Sevlet runs on web server and sends GIF to browser
No need for java support in browser
No worries about browser version/functionality
No slow download of Java code
JASHist just requires data source to provide
simple interface
Easy to interface to many different data sources
Many examples on our web site
• Being used to display PingER from SLAC network group
Embedded HTML
Using Swing JEditorPane JAS now supports HTML
display
Supports most features of HTML 3.2
• Nested tables and frames a bit dodgy
• "Live" objects can be embedded within HTML page
Built in objects such as plots
Used defined objects (sliders etc)
Multiple Objects on page can interact with each other
Useful for:
Tutorial information
Online monitoring
Presentations (perhaps?)
Babar Online Monitoring
JEdit Editor Bean
Earlier versions of JAS used custom source code editor
Now replaced with JEdit Syntax Highlighter/Editor Bean
•
•
•
•
•
•
Part of pure Java JEdit editor
Syntax Highlighting (Java + HTML + XML etc)
Improved source code editing
Auto indent
Parenthesis matching
Customizable Syntax highlighting
Intending to incorporate more JEdit features in future
Searching/Replacing/Macros/etc
Eventually to support JEdit plugin architecture
Code completion
Interactive Fullscreen Debugging
Usage
Babar using for Online Monitoring
Using Online Monitoring API
HTML Pages with embedded plots
Custom Overlays
US Linear Collider Studies
Have an entire recon+analysis package written in Java
• Using JAS as analysis interface
• Making use of remote data access using repository at
University of Pennsylvania
Other smaller scale users
All giving very valuable feedback
Helping to produce more reliable solution
Documentation
LCD Tutorial exists
Nice step by step tutorial for beginners
Examples are all based on LCD but can be used by anyone
Starts from very beginning
Slowly adding information to Users Guide
Still nowhere near complete
How To being created to cover specific topics
Servlets How To
HTML How To
XML How To
Online API How To
Working on Fitting How To
JavaDoc generated API documentation available
Documentation remains weak link
We are aware of this and are working on producing more documentation
Also need more design specs/internals documentation to make open
source model more effective
Acknowledgements
Many People have contributed code
Peter Armstrong, Kevin Garwood, Jonas
Gifford, Azhar Zuberi.
Gary Bower, Kevin Rennert, Alex Samuel, Bob
Wilson
And support/ideas
Mike Ronan …
Conclusions
Version 2.0 Alpha 2 is available from our
website
2.0 Alpha 3 coming very soon
• In use by Babar, needs Productization
We remain committed to supporting JAS
Plan to continue to improve it
Very adaptable to user input