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

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

Embed Size (px)

Citation preview

Page 1: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

JAIDA, AIDA-JNI, JAS3Status and Plans

Mark Dönszelmann, Tony Johnson, Joseph Perl,

Victor Serbo, Max Turri

AIDA Workshop

CERN July 2003

Page 2: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

Contents

JAIDA – Java Implementation of AIDAPart of FreeHEP Java library

AIDA-JNI – C++ interface to JAIDA

JAS3 – Experiment, Data Format independent graphical

data analysis tool based on JAIDA

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

July 2003JAIDA, AIDA-JNI, JAS3

JAIDA

JAIDA = Java implementation of AIDAComplete implementation of AIDA interfaces

With a few exceptions– limited support for plot styles currently– Some missing features in ITree, cp, mv

Uses Java “service provider mechanism” for dynamic loading of services at RuntimeCan be used to add support for new fitters, stores etc.Have defined “developer level” interfaces for IOptimizer, IStore etc

Uses Java Expression Library (JEL) for runtime compilation of expressions (for tuple evaluators and functions)

Page 4: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

JAIDA – Features continued… Fitting

support for multiple fitting engines (optimizers) UNCMIN (pure Java) Minuit (needs minuitAdapter native library)

Support for multiple fitting methods LeastSquares, Chi2, CleverChi2, BinnedMaximumLikelihood and UnbinnedMaximumLikelihood

Stores Read/Write support for AIDA XML format (with built-in gzip) Read support for HBOOK/PAW files (needs hbookAdapter native library) Read support for Root files (write support hopefully coming soon) Future plans to add:

SQL interface, JDO interface, text file support …

Plotting Two implementations of IAnalysisFactory

BatchAnalysisFactory – dummy plotter, ignore calls to IPlotter AnalysisFactory – Full plotter functionality

– limited user input, for full GUI use JAS3

Multi-Threaded – plots update in real-time as they are filled No need to call interact() or refresh()

Support for embedding plotter In other Java GUI’s In Java servlets for web based applications.

Graphics export in many formats including: PDF, EPS, SVG, SWF, PNG, GIF, JPG

Page 5: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

Using JAIDA with Java

Page 6: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

Using JAIDA with Python

Page 7: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

Using JAIDA with C++

Page 8: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

AIDA-JNI

C++ interface uses AIDA-JNI

C++ program

AID

A AIDA- JNI

AID

A JAIDA

AIDA-JNI partially generated by AID, partly by handDoes not currently support full AIDA functionality

AID improvements (v 0.9.5) coming soonJNI Adapters generated to interface with JACE generated code

JACE (JNI made easy) version 1.1 code generates connector to allow access from C++ to Java

AID generates code to implement the AID interfaces using the JACE generated code

Page 9: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

Future Plans for JAIDA

Complete implementation of missing featuresContinue to track improvements to AIDA standard

Add support for function arithmetic

Web Interface (see later talk)

Support for “Remote AIDA” (see later talk)

Support for more storage formatsNeed good binary IO format .. either AIDA standard or roll our own

Page 10: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

JAS3 Overview

A completely new version of JASDesign based on Application Shell, into which many (optional)

modules can be pluggedHighly customizable for different application domains

– HEP/Astrophysics/Other– DST analysis/Online Monitoring/GRID analysis– Experiment/User specific modules

Modules can be updated independently of shell– Possible to release bug fixes fast

Includes support for programming in many languagesScripting: Python, Pnuts, Dynamic Java, ….

– Command promptJava (compiled)

Analysis (histograms, tuples, fitting) based on AIDA standard

Not technically backwards compatible with JAS2But migration is straightforward.

Page 11: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

JAS3 and AIDA

JAS3 supports all AIDA functionality, includingHistograms (includes arithmetic, projections, etc.)Clouds (unbinned histograms, scatterplots)PlotterTuplesFitting – AIDA interfaces allow for multiple fitters

Uncmin -- pure java minimizerMinuit -- Fortran called by Java Native Interface (JNI)

IOAIDA XML, PAW, Root

JAS3 supports user interaction with AIDA in three waysScripting (Pnuts, Python etc)Compiled (Java) codeGUI – Plotting, Fitting, Cuts etc.

Page 12: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

JAS3 Scripting

JAS3 has multi-language OO scripting supportCommand line, Console, EditorMajor components (e.g. AIDA) have scripting interfaces

Currently have plugins to supportPnutsPnuts – syntax almost identical to Java, fast, well documented

and feature completePythonPython (using Jython)More scripting languages can be added

not restricted to Java implementations (e.g. could use C-Python, JPE)

Page 13: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

JAS3 Lightning Tour

Tour designed to

give you an

overview of the

capabilities of JAS3,

you can try them

out for yourself this

afternoon.

Welcome Page, gives initial info and links to example

scripts and programs

Memory monitor

Page 14: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

Opening Files

Use file menu

Drag from explorer

Page 15: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

Graphical Interface to AIDA

Histograms, Clouds, Tuples all presented in

AIDA tree

.aida files, .hbook

files, .root files all presented

as AIDA objects

Drag items onto page, or use

(popup) menus

Page 16: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

Printing

Can send individual

plots or full page

direct to printer

Or save as PS, EPS, PDF, SWF, SVG, PNG, GIF…

Or copy/paste into Word, PowerPoint

etc.

Page 17: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

Java Editor, Compiler and Loader

Built-in Java compiler

Tree shows loaded

programsBuilt-in

editor for writing

analysis code

Unlike JAS2 which only supported “event analyzers” JAS3 allows any Java program

to be loaded. This example “main routine” is taken directly from the AIDA manual

Page 18: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

Scripting

Can also write and run

scripts

Console allows direct interaction

with scripting language

Page 19: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

Pnuts Language

Currently favour Pnuts scripting languageComplete and well documented

http://javacenter.sun.co.jp/pnuts/doc/guide.html

Fast (although not as fast as compiled Java)Syntax very similar to JavaCan easily call compiled Java classes from scripts – best of

both worlds

Page 20: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

Record Sources

Opening record (or event) based files

causes the run control toolbar

to appear

Works similarly to JAS2 Job control, but now also supports random access and “tagged” data sets

(mainly for event displays)

Page 21: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

Histogram Profile

ScatterPlot

XY Data(More appropriate forsmaller data sets)

Tuple Explorer - Plots

Works with any tuple, read from file or

dynamically created

Page 22: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

Tuple Explorer – Define Columns

Page 23: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

Tuple Explorer - Cuts

Page 24: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

Tuple Explorer - Tabulate

Page 25: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

To be used with record loop

Tuple Explorer – Record Source

Page 26: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

JAS3 Spreadsheet

Simple spreadsheet pluginfor

Displaying resultsCalculationsSimple Plots

Supports reading/writing.csv filesExcel files

Cut/Paste with Excel etcComing Soon…

Scripting interfaceGUI for building plotsUser defined functions

– Java, scripting

Page 27: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

Miscellaneous Features

Save/Restore configuration

User Preferences

Plugin Manager

Page 28: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

Status

Currently released JAS3 version 0.7.1AIDA functionality is quite solidCompiler, Loader, Record Loop all quite recently added,

Certainly still some rough edges

Documentation limited but availableBuilt-in example scripts and programsTutorial on web

If you are used to JAS2 you will find some functionality

not yet ported to JAS3Remote (client/server) access to data.3D Lego/Surface plots

Page 29: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

JAS 2 – GRID interface (Tech-X)

Page 30: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

JAS and the GRID

We plan to add client-server/distributed capabilities to

JAS3 similar (but better) than those in JAS2Will be based on (remote) AIDAWant to use Grid standards where they exist

Work with others (PPDG-CS11,???) to define standards where they do not exist

Want to be compatible with C++ serversBut don’t want to loose flexibility of dynamically loading analysis code

into server

Tech-X have phase II SBIR approved and will work closely with us

Page 31: JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003

July 2003JAIDA, AIDA-JNI, JAS3

JAS3 Links, More Info

JAS – Java Analysis Studio - http://jas.freehep.org

JAS3 – http://jas.freehep.org/jas3

JAIDA – http://java.freehep.org/jaida/

AIDA – http://aida.freehep.org

FreeHEP - http://www.freehep.org

FreeHEP Java Libraries - http://java.freehep.org

WIRED – http://wired.freehep.org