Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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