JAIDA AIDAJNI JAS 3 Status and Plans n

  • Slides: 31
Download presentation
JAIDA, AIDA-JNI, JAS 3 Status and Plans n n Mark Dönszelmann, Tony Johnson, Joseph

JAIDA, AIDA-JNI, JAS 3 Status and Plans n n Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

Contents n JAIDA – Java Implementation of AIDA l Part of Free. HEP Java

Contents n JAIDA – Java Implementation of AIDA l Part of Free. HEP Java library n AIDA-JNI – C++ interface to JAIDA n JAS 3 – Experiment, Data Format independent graphical data analysis tool based on JAIDA, AIDA-JNI, JAS 3 July 2003

JAIDA n JAIDA = Java implementation of AIDA l Complete implementation of AIDA interfaces

JAIDA n JAIDA = Java implementation of AIDA l Complete implementation of AIDA interfaces t. With a few exceptions – limited support for plot styles currently – Some missing features in ITree, 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) JAIDA, AIDA-JNI, JAS 3 July 2003

JAIDA – Features continued… n Fitting n n l support for multiple fitting engines

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 t t t Stores t Plotting t t UNCMIN (pure Java) Minuit (needs minuit. Adapter native library) Least. Squares, Chi 2, Clever. Chi 2, Binned. Maximum. Likelihood and Unbinned. Maximum. Likelihood SQL interface, JDO interface, text file support … Batch. Analysis. Factory – dummy plotter, ignore calls to IPlotter Analysis. Factory – Full plotter functionality – limited user input, for full GUI use JAS 3 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 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 JAIDA, AIDA-JNI, JAS 3 July 2003

Using JAIDA with Java JAIDA, AIDA-JNI, JAS 3 July 2003

Using JAIDA with Java JAIDA, AIDA-JNI, JAS 3 July 2003

Using JAIDA with Python JAIDA, AIDA-JNI, JAS 3 July 2003

Using JAIDA with Python JAIDA, AIDA-JNI, JAS 3 July 2003

Using JAIDA with C++ JAIDA, AIDA-JNI, JAS 3 July 2003

Using JAIDA with C++ JAIDA, AIDA-JNI, JAS 3 July 2003

AIDA-JNI n C++ interface uses AIDA-JNI AIDA- JNI AIDA C++ program JAIDA n AIDA-JNI

AIDA-JNI n C++ interface uses AIDA-JNI AIDA- JNI AIDA C++ program JAIDA n AIDA-JNI partially generated by AID, partly by hand l Does not currently support full AIDA functionality n AID improvements (v 0. 9. 5) coming soon l JNI Adapters generated to interface with JACE generated code t. JACE (JNI made easy) version 1. 1 code generates connector to allow access from C++ to Java t. AID generates code to implement the AID interfaces using the JACE generated code JAIDA, AIDA-JNI, JAS 3 July 2003

Future Plans for JAIDA n Complete implementation of missing features l Continue to track

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 (see later talk) n Support for “Remote AIDA” (see later talk) n Support for more storage formats l Need good binary IO format. . either AIDA standard or roll our own JAIDA, AIDA-JNI, JAS 3 July 2003

JAS 3 Overview n A completely new version of JAS l Design based on

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 – DST 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: Python, Pnuts, Dynamic Java, …. – 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. JAIDA, AIDA-JNI, JAS 3 July 2003

JAS 3 and AIDA n JAS 3 supports all AIDA functionality, including l Histograms

JAS 3 and AIDA n JAS 3 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. JAIDA, AIDA-JNI, JAS 3 July 2003

JAS 3 Scripting n JAS 3 has multi-language OO scripting support l Command line,

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 (using Jython) l More scripting languages can be added tnot restricted to Java implementations (e. g. could use C-Python, JPE) JAIDA, AIDA-JNI, JAS 3 July 2003

JAS 3 Lightning Tour n Tour designed to give you an overview of the

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 this afternoon. Welcome Page, gives initial info and links to example scripts and programs JAIDA, AIDA-JNI, JAS 3 Memory monitor July 2003

Opening Files Use file menu Drag from explorer JAIDA, AIDA-JNI, JAS 3 July 2003

Opening Files Use file menu Drag from explorer JAIDA, AIDA-JNI, JAS 3 July 2003

Graphical Interface to AIDA Histograms, Clouds, Tuples all presented in AIDA tree . aida

Graphical Interface to AIDA Histograms, Clouds, Tuples all presented in AIDA tree . aida files, . hbook files, . root files all presented as AIDA objects JAIDA, AIDA-JNI, JAS 3 July 2003 Drag items onto page, or use (popup) menus

Printing Or copy/paste into Word, Power. Point etc. Can send individual plots or full

Printing Or copy/paste into Word, Power. Point etc. Can send individual plots or full page direct to printer JAIDA, AIDA-JNI, JAS 3 Or save as PS, EPS, PDF, SWF, SVG, PNG, GIF… July 2003

Java Editor, Compiler and Loader Tree shows loaded programs Built-in Java compiler JAIDA, AIDA-JNI,

Java Editor, Compiler and Loader Tree shows loaded programs Built-in Java compiler JAIDA, AIDA-JNI, JAS 3 Built-in editor for writing analysis code Unlike JAS 2 which only supported “event analyzers” JAS 3 allows any Java program to be loaded. This example “main routine” is July 2003 taken directly from the AIDA manual

Scripting Can also write and run scripts Console allows direct interaction with scripting language

Scripting Can also write and run scripts Console allows direct interaction with scripting language JAIDA, AIDA-JNI, JAS 3 July 2003

Pnuts Language n Currently favour Pnuts scripting language l Complete and well documented thttp:

Pnuts Language n Currently favour 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 l Can easily call compiled Java classes from scripts – best of both worlds JAIDA, AIDA-JNI, JAS 3 July 2003

Record Sources Opening record (or event) based files causes the run control toolbar to

Record Sources Opening record (or event) based files causes the run control toolbar to appear JAIDA, AIDA-JNI, JAS 3 Works similarly to JAS 2 Job control, but now also supports random access and “tagged” data sets (mainly for event displays) July 2003

Tuple Explorer - Plots Histogram Works with any tuple, read from file or dynamically

Tuple Explorer - Plots Histogram Works with any tuple, read from file or dynamically created Scatter. Plot XY Data (More appropriate for smaller data sets) JAIDA, AIDA-JNI, JAS 3 July 2003 Profile

Tuple Explorer – Define Columns JAIDA, AIDA-JNI, JAS 3 July 2003

Tuple Explorer – Define Columns JAIDA, AIDA-JNI, JAS 3 July 2003

Tuple Explorer - Cuts JAIDA, AIDA-JNI, JAS 3 July 2003

Tuple Explorer - Cuts JAIDA, AIDA-JNI, JAS 3 July 2003

Tuple Explorer - Tabulate JAIDA, AIDA-JNI, JAS 3 July 2003

Tuple Explorer - Tabulate JAIDA, AIDA-JNI, JAS 3 July 2003

Tuple Explorer – Record Source To be used with record loop JAIDA, AIDA-JNI, JAS

Tuple Explorer – Record Source To be used with record loop JAIDA, AIDA-JNI, JAS 3 July 2003

JAS 3 Spreadsheet n Simple spreadsheet plugin l for t Displaying results t Calculations

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 JAIDA, AIDA-JNI, JAS 3 July 2003

Miscellaneous Features Save/Restore configuration User Preferences Plugin Manager JAIDA, AIDA-JNI, JAS 3 July 2003

Miscellaneous Features Save/Restore configuration User Preferences Plugin Manager JAIDA, AIDA-JNI, JAS 3 July 2003

Status n Currently released JAS 3 version 0. 7. 1 l AIDA functionality is

Status n Currently released JAS 3 version 0. 7. 1 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 are used to 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 JAIDA, AIDA-JNI, JAS 3 July 2003

JAS 2 – GRID interface (Tech-X) JAIDA, AIDA-JNI, JAS 3 July 2003

JAS 2 – GRID interface (Tech-X) JAIDA, AIDA-JNI, JAS 3 July 2003

JAS and the GRID n We plan to add client-server/distributed capabilities to JAS 3

JAS and the GRID n We plan to add client-server/distributed capabilities to JAS 3 similar (but better) than those in JAS 2 l Will be based on (remote) AIDA l Want to use Grid standards where they exist t. Work with others (PPDG-CS 11, ? ? ? ) to define standards where they do not exist l Want to be compatible with C++ servers t. But don’t want to loose flexibility of dynamically loading analysis code into server l Tech-X have phase II SBIR approved and will work closely with us JAIDA, AIDA-JNI, JAS 3 July 2003

JAS 3 Links, More Info n JAS – Java Analysis Studio - http: //jas.

JAS 3 Links, More Info 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 JAIDA, AIDA-JNI, JAS 3 July 2003