Upload
joshua-richard
View
213
Download
1
Embed Size (px)
Citation preview
JAIDA, AIDA-JNI, JAS3Status 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
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)
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
July 2003JAIDA, AIDA-JNI, JAS3
Using JAIDA with Java
July 2003JAIDA, AIDA-JNI, JAS3
Using JAIDA with Python
July 2003JAIDA, AIDA-JNI, JAS3
Using JAIDA with C++
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
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
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.
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.
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)
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
July 2003JAIDA, AIDA-JNI, JAS3
Opening Files
Use file menu
Drag from explorer
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
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.
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
July 2003JAIDA, AIDA-JNI, JAS3
Scripting
Can also write and run
scripts
Console allows direct interaction
with scripting language
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
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)
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
July 2003JAIDA, AIDA-JNI, JAS3
Tuple Explorer – Define Columns
July 2003JAIDA, AIDA-JNI, JAS3
Tuple Explorer - Cuts
July 2003JAIDA, AIDA-JNI, JAS3
Tuple Explorer - Tabulate
July 2003JAIDA, AIDA-JNI, JAS3
To be used with record loop
Tuple Explorer – Record Source
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
July 2003JAIDA, AIDA-JNI, JAS3
Miscellaneous Features
Save/Restore configuration
User Preferences
Plugin Manager
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
July 2003JAIDA, AIDA-JNI, JAS3
JAS 2 – GRID interface (Tech-X)
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
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