JAS 3 Current Status and Prospects by Victor
JAS 3 – Current Status and Prospects by Victor Serbo, SLAC
Contents n Introduction to JAS 3 (Java Analysis Studio) l Basic: Opening Files, Plots, Printing, etc. l Web Browser, Editor, Java Compiler, Scripting l Miscellaneous: Spreadsheet, Configuration Save/Restore, Preferences, etc. n Analysis l AIDA – Abstract Interfaces for Data Analysis l JAIDA – Java Implementation of AIDA l AIDA JNI – using JAIDA from C++ l Analysis with JAIDA and JAS 3 n JAS 3 Plugins l What is Plugin, examples l Demo: Ambient. Plugin and Geant 4 Plugin l Demo: JAIDA Web Interface JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
JAS 3 Overview n A completely new version of JAS l Design based on Application Shell, into which many (optional) modules can be plugged t. Highly customizable for different application domains – HEP/Astrophysics/Other – Data analysis/Online Monitoring/GRID analysis – Experiment/User specific modules t. Modules can be updated independently of shell – Possible to release bug fixes fast l Includes support for programming in many languages t. Scripting: Pnuts, Python, …. – Command prompt t. Java (compiled) l Analysis (histograms, tuples, fitting) based on AIDA standard n Not technically backwards compatible with JAS 2 l But migration is straightforward. JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
JAS 3 Lightning Tour n Tour designed to give you an overview of the capabilities of JAS 3, you can try them out for yourself: http: //jas. freehep. org/jas 3 Welcome Page, gives initial info and links to example scripts and programs JAS 3 – Current Status and Prospects, V. Serbo Memory monitor ACAT 03 1 -5 December 2003
Opening Files Use file menu Drag from explorer JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
Plot Manipulation and Printing Or copy/paste into Word, Power. Point etc. Can send individual plots or full page direct to printer Or save as PS, EPS, PDF, SWF, SVG, PNG, GIF… JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
Java Editor, Compiler and Loader Tree shows loaded programs Built-in Java compiler JAS 3 – Current Status and Prospects, V. Serbo Built-in editor for writing analysis code JAS 3 allows any Java program to be loaded. This example “main routine” is taken directly from the AIDA manual ACAT 03 1 -5 December 2003
Miscellaneous Features Save/Restore configuration User Preferences Plugin Manager JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
JAS 3 Spreadsheet n Simple spreadsheet plugin l for t Displaying results t Calculations t Simple Plots l Supports reading/writing t. csv files t Excel files l Cut/Paste with Excel etc l Coming Soon… t Scripting interface t GUI for building plots t User defined functions – Java, scripting JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
JAS 3 Scripting n JAS 3 has multi-language OO scripting support l Command line, Console, Editor l Major components (e. g. AIDA) have scripting interfaces n Currently have plugins to support l Pnuts – syntax almost identical to Java, fast, well documented and feature complete l Python t. Use Jython (the Java implementation of Python) t. Limitation: can not call Python libraries written in C l More scripting languages can be added tnot restricted to Java implementations (e. g. could use C-Python, JPE) JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
Pnuts Language n Currently support Pnuts scripting language l Complete and well documented thttp: //javacenter. sun. co. jp/pnuts/doc/guide. html l Fast (although not as fast as compiled Java) l Syntax very similar to Java; can compile script into Java bytecode or convert it to Java code l Can easily call compiled Java classes from scripts – best of both worlds JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
JAS 3 Scripting II Can also write and run scripts Console allows direct interaction with scripting language JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
AIDA - Abstract Interfaces for Data Analysis n AIDA is a standard set of interfaces for creating and manipulating histograms, n-tuples and related data analysis objects, like Plotter, Fitter, etc. n AIDA defines storage XML format. n It has been created cooperatively by a group of developers working on high-energy physics data analysis tools. The goal of the AIDA project is to provide the user with a powerful set of interfaces which can be used regardless of which analysis tool they are using. n Only define “protocol” for analysis objects, no internal details l AIDA defines behavior, analysis tool provides implementation l C++ and Java versions of interfaces are generated from the AID files. JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
AIDA Examples n IHistogram 1 D - IAxis axis() void fill(double x, double w) double mean() double rms() double bin. Entries(int index) double bin. Error(int index) …. n IAxis - int bins() double lower. Edge() double upper. Edge() double bin. Lower. Edge(int index) double bin. Upper. Edge(int index) double bin. Width(int index) int coordinate. To. Index(double x) …. n For more details on AIDA, see: http: //aida. freehep. org JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
JAIDA n JAIDA = Java implementation of AIDA l Complete implementation of AIDA interfaces t. With a few exceptions – Support for plot styles is somewhat limited – Some missing features in ITree, like cp, mv l Uses Java “service provider mechanism” for dynamic loading of services at Runtime t. Can be used to add support for new fitters, stores etc. t. Have defined “developer level” interfaces for IOptimizer, IStore etc l Uses Java Expression Library (JEL) for runtime compilation of expressions (for tuple evaluators and functions) JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
JAIDA – Features continued… n Fitting n n l support for multiple fitting engines (optimizers) l Support for multiple fitting methods l l Read/Write support for AIDA XML format (with built-in gzip) Read support for HBOOK/PAW files (needs hbook. Adapter native library) Read support for Root files (write support hopefully coming soon) Future plans to add: l Two implementations of IAnalysis. Factory l Multi-Threaded – plots update in real-time as they are filled l Support for embedding plotter l Graphics export in many formats including: t t t Stores t Plotting t t t UNCMIN (pure Java) Minuit (needs minuit. Adapter native library) Least. Squares, Chi 2, Binned. Maximum. Likelihood and Unbinned. Maximum. Likelihood SQL interface, binary store format, text file support … Batch. Analysis. Factory – dummy plotter, ignore calls to IPlotter Analysis. Factory – Full plotter functionality No need to call interact() or refresh() In other Java GUI’s In Java servlets for web based applications. PDF, EPS, SVG, SWF, PNG, GIF, JPG JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
AIDA-JNI n C++ interface uses AIDA-JNI AIDA- JNI AIDA C++ program JAIDA (Java) n AIDA-JNI partially generated by AID, partly by hand l Does support full AIDA functionality JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
Using JAIDA with Java JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
Using JAIDA with Python JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
Using JAIDA with C++ JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
Future Plans for JAIDA n Complete implementation of missing features l Continue to track improvements to AIDA standard n Add support for function arithmetic n Web Interface n Support for “Remote AIDA” n Support for more storage formats l Need good binary IO format. . either AIDA standard or roll our own n Future AIDA developers’ meetings JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
JAS 3 and AIDA n JAS 3 uses JAIDA - supports all AIDA functionality, including l Histograms (includes arithmetic, projections, etc. ) l Clouds (unbinned histograms, scatterplots) l Plotter l Tuples l Fitting – AIDA interfaces allow for multiple fitters t Uncmin -- pure java minimizer t Minuit -- Fortran called by Java Native Interface (JNI) l IO t AIDA XML, PAW, Root n JAS 3 supports user interaction with AIDA in three ways l Scripting (Pnuts, Python etc) l Compiled (Java) code l GUI – Plotting, Fitting, Cuts etc. JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
Graphical Interface to AIDA Histograms, Clouds, Tuples all presented in AIDA tree . aida files, . hbook files, . root files all presented as AIDA objects JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 Drag items onto page, or use 1 -5 December 2003 (popup) menus
Tuple Explorer - Plots Histogram Works with any tuple, read from file or dynamically created Scatter. Plot XY Data (More appropriate for smaller data sets) JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003 Profile
Tuple Explorer – Define Columns JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
Tuple Explorer - Cuts JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
Tuple Explorer - Tabulate JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
Tuple Explorer – Record Source To be used with record loop JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
Record Sources Opening record (or event) based files causes the run control toolbar to appear JAS 3 – Current Status and Prospects, V. Serbo Supports random access and “tagged” data sets (mainly for event displays) ACAT 03 1 -5 December 2003
JAS 3 Plugins n JAS 3 is based on the Freehep Application Framework, which provides a basic application framework into which extension modules, or "plugins" can be loaded. n The application framework provides general purpose functionality, such as top level GUI (windows, menus etc. ), help system, storing and retrieving user preferences etc. n All of the data analysis specific functionality of JAS 3 is provided by a set of extension modules. n Modules communicate with each other via service interfaces and notification events. JAS 3 comes with a standard set of service interfaces and notification events, but new plugins can also define their own interfaces and events. JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
JAS 3 Plugin II n Plugin functionality: l Do some plugin-specific task l Use services provided by other plugins l Provide services to other plugins l Modify JAS 3 menus and pop-up menus n “Core” Plugins – provide basic services l Simple: File Opener, Memory Status, Status Bar, … l More Complex: Web Browser, Plotter, Console, XMLIO, … n “Extensions” – separate packages l Included with JAS 3 distribution t AIDA, Tuple. Explorer, JAVA Compiler and Editor, Spreadsheet, … l Specific to particular Experiment t Ba. Bar Ambient DB Browser: Ambient. Plugin, Geant 4 Plugin, etc. n Partial Tutorial on writing a plugin: http: //jas. freehep. org/jas 3/developers/tutorial. jsp JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
JAS 3 Plugin Demo I n Ambient. Plugin: l Access Ba. Bar Ambient DB via CORBA l Present Time History as an AIDA object (Data. Point. Set) CORBA Server (C++) Ba. Bar Ambient DB JAS 3 (Java) Ambient. Plugin (Java CORBA Client) JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
JAS 3 Plugin Demo II n Gean 4 Plugin Geant 4 Application (C++) Java RMI Server JNI Layer JAS 3 (Java) Geant 4 Plugin (Java RMI Client) JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
AIDA Web Interface
Goals n Provide access to Histogram plots without requiring any software installation l Putting results on to the web for collaborators etc. t. For example for viewing results of “quality control” plots l Viewing “live” histograms on the web for t. Online monitoring t. Monitoring progress of batch jobs n Add as much functionality as possible in a “generic” way so that it can be used by others (with minimal work) l Complete “out-of-the-box” web application t. Packaged as a. war file for use with any J 2 EE app server – (e. g. Tomcat) l Configurable via a simple. ini file (or better via a web interface) JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
Architecture. root Application Server (Tomcat) Web Application . paw JAIDA Servlet . aida SQL … JAS 3 – Current Status and Prospects, V. Serbo Remote AIDA C++ App Java App ACAT 03 1 -5 December 2003
Features n Current Feature set l Display of “AIDA Tree” for selection of histograms l Displays plots as. png or. gif images in browser t. Allows (limited) control of image properties l Allows (limited) control over plot properties l Allows comparison to reference plots (including Kolmagorov test) l Allows export of plots to PDF, EPS, SVG, SWF, GIF, PNG, etc. n Planned features l Extend to support n-tuples as well as histograms t. Dynamic definition of new columns and cuts (evaluators, filters) l Web based fitting (including function definition) l Support multiple plots per page t. Thumbnail browser l Extend which plot options can be configured through web l Allow users to retain settings via cookies JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
Current Interface Can try from the web: http: //glast 02. slac. stanford. edu: 8080/ aida/welcome. html JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
Status n Currently released JAS 3 version 0. 7. 3 (0. 7. 4 next week) l AIDA functionality is quite solid l Compiler, Loader, Record Loop all quite recently added, t. Certainly still some rough edges n Documentation limited but available l Built-in example scripts and programs l Tutorial on web n If you used JAS 2 you will find some functionality not yet ported to JAS 3 l Remote (client/server) access to data. l 3 D Lego/Surface plots JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
JAS 3 Conclusion n JAS 3 is a powerful and flexible Analysis Tool n JAS 3 uses Plugin Architecture l Easy to add new functionality l Easy to fix problems with existing modules – do not have to wait for new release of all libraries n JAS 3 release 0. 7. 3 is out – try it! l It is still a beta version, so bugs happen l We need your input to make JAS 3 better! t. Report bugs, problems, suggestions at http: //bugs. freehep. org t. Do not have to be on JAS team to be JAS developer – ideas/code for general-purpose plugins are always welcome l Try writing JAS 3 plugins for your own needs: for Experiment and Home JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
JAS 3 Links, More Info n Report Issues – http: //bugs. freehep. org/ n JAS – Java Analysis Studio - http: //jas. freehep. org n JAS 3 – http: //jas. freehep. org/jas 3 n JAIDA – http: //java. freehep. org/jaida/ n AIDA – http: //aida. freehep. org n Free. HEP - http: //www. freehep. org n Free. HEP Java Libraries - http: //java. freehep. org n WIRED – http: //wired. freehep. org JAS 3 – Current Status and Prospects, V. Serbo ACAT 03 1 -5 December 2003
- Slides: 41