230 likes | 372 Views
Java Analysis Studio. CHEP 2000 February 2000 Tony Johnson (tony_johnson@slac.stanford.edu). 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
E N D
Java Analysis Studio CHEP 2000 February 2000 Tony Johnson (tony_johnson@slac.stanford.edu)
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
Histo/Plot Adaptor Analysis Framework Plugin GUI Framework Network Adaptor Histogram Accumulation 3-4 Vector Utilities JASHist (Plot Bean) Fitting Framework Particle Properties Data Interface Jet Finder Functions Fitters PAW SQL stdHEP JAS Components
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 – 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 XY Plot Scatter 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
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?)
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