jas3 – current status and prospects

41
JAS3 – Current Status and Prospects by Victor Serbo, SLAC

Upload: ilya

Post on 07-Jan-2016

50 views

Category:

Documents


5 download

DESCRIPTION

JAS3 – Current Status and Prospects. by Victor Serbo, SLAC. Contents. Introduction to JAS3 (Java Analysis Studio) Basic: Opening Files, Plots, Printing, etc. Web Browser, Editor, Java Compiler, Scripting Miscellaneous: Spreadsheet, Configuration Save/Restore, Preferences, etc. Analysis - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: JAS3 – Current Status and Prospects

JAS3 – Current Status and Prospects

by Victor Serbo, SLAC

Page 2: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

Contents

Introduction to JAS3 (Java Analysis Studio)Basic: Opening Files, Plots, Printing, etc.Web Browser, Editor, Java Compiler, ScriptingMiscellaneous: Spreadsheet, Configuration Save/Restore,

Preferences, etc.

AnalysisAIDA – Abstract Interfaces for Data AnalysisJAIDA – Java Implementation of AIDAAIDA JNI – using JAIDA from C++Analysis with JAIDA and JAS3

JAS3 Plugins What is Plugin, examplesDemo: AmbientPlugin and Geant4 PluginDemo: JAIDA Web Interface

Page 3: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

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– Data 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: Pnuts, Python, ….

– Command promptJava (compiled)

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

Not technically backwards compatible with JAS2But migration is straightforward.

Page 4: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

JAS3 Lightning Tour

Tour designed to

give you an

overview of the

capabilities of JAS3,

you can try them

out for yourself:

http://jas.freehep.org/jas3

Welcome Page, gives initial info and links to example

scripts and programs

Memory monitor

Page 5: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

Opening Files

Use file menu

Drag from explorer

Page 6: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

Plot Manipulation and 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 7: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

Java Editor, Compiler and Loader

Built-in Java compiler

Tree shows loaded

programsBuilt-in

editor for writing

analysis code

JAS3 allows any Java program to be loaded. This example “main routine” is taken directly from the AIDA manual

Page 8: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

Miscellaneous Features

Save/Restore configuration

User Preferences

Plugin Manager

Page 9: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

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 10: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

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

Use Jython (the Java implementation of Python)Limitation: can not call Python libraries written in C

More scripting languages can be addednot restricted to Java implementations (e.g. could use C-Python,

JPE)

Page 11: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

Pnuts Language

Currently support 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 Java; can compile script into Java

bytecode or convert it to Java codeCan easily call compiled Java classes from scripts – best of

both worlds

Page 12: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

JAS3 Scripting II

Can also write and run

scripts

Console allows direct interaction

with scripting language

Page 13: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

AIDA - Abstract Interfaces for Data Analysis

AIDA is a standard set of interfaces for creating and manipulating

histograms, n-tuples and related data analysis objects, like Plotter,

Fitter, etc.

AIDA defines storage XML format.

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.

Only define “protocol” for analysis objects, no internal detailsAIDA defines behavior, analysis tool provides implementationC++ and Java versions of interfaces are generated from the AID

files.

Page 14: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

AIDA Examples

IHistogram1D- IAxis axis()

- void fill(double x)

- void fill(double x, double w)

- double mean()

- double rms()

- double binEntries(int index)

- double binError(int index)

- ….

For more details on AIDA,

see: http://aida.freehep.org

IAxis- int bins()

- double lowerEdge()

- double upperEdge()

- double binLowerEdge(int index)

- double binUpperEdge(int index)

- double binWidth(int index)

- int coordinateToIndex(double x)

- ….

Page 15: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

JAIDA

JAIDA = Java implementation of AIDAComplete implementation of AIDA interfaces

With a few exceptions– Support for plot styles is somewhat limited– Some missing features in ITree, like 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 16: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

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, 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, binary store format, text file support …

Plotting Two implementations of IAnalysisFactory

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

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 17: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

AIDA-JNI

C++ interface uses AIDA-JNI

C++ program

AID

A AIDA- JNI

AID

A JAIDA (Java)

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

Page 18: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

Using JAIDA with Java

Page 19: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

Using JAIDA with Python

Page 20: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

Using JAIDA with C++

Page 21: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

Future Plans for JAIDA

Complete implementation of missing featuresContinue to track improvements to AIDA standard

Add support for function arithmetic

Web Interface

Support for “Remote AIDA”

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

Future AIDA developers’ meetings

Page 22: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

JAS3 and AIDA

JAS3 uses JAIDA - 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 23: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

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 24: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

Histogram Profile

ScatterPlot

XY Data(More appropriate forsmaller data sets)

Tuple Explorer - Plots

Works with any tuple, read from file or

dynamically created

Page 25: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

Tuple Explorer – Define Columns

Page 26: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

Tuple Explorer - Cuts

Page 27: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

Tuple Explorer - Tabulate

Page 28: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

To be used with record loop

Tuple Explorer – Record Source

Page 29: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

Record Sources

Opening record (or event) based files

causes the run control toolbar

to appear

Supports random access and “tagged” data sets

(mainly for event displays)

Page 30: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

JAS3 Plugins JAS3 is based on the Freehep Application Framework, which provides a

basic application framework into which extension modules, or "plugins" can be loaded.

The application framework provides general purpose functionality, such as top level GUI (windows, menus etc.), help system, storing and retrieving user preferences etc.

All of the data analysis specific functionality of JAS3 is provided by a set of extension modules.

Modules communicate with each other via service interfaces and notification events. JAS3 comes with a standard set of service interfaces and notification events, but new plugins can also define their own interfaces and events.

Page 31: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

JAS3 Plugin II Plugin functionality:

Do some plugin-specific taskUse services provided by other pluginsProvide services to other pluginsModify JAS3 menus and pop-up menus

“Core” Plugins – provide basic servicesSimple: File Opener, Memory Status, Status Bar, …More Complex: Web Browser, Plotter, Console, XMLIO, …

“Extensions” – separate packagesIncluded with JAS3 distribution

AIDA, TupleExplorer, JAVA Compiler and Editor, Spreadsheet, …Specific to particular Experiment

BaBar Ambient DB Browser: AmbientPlugin, Geant4 Plugin, etc.

Partial Tutorial on writing a plugin: http://jas.freehep.org/jas3/developers/tutorial.jsp

Page 32: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

JAS3

(Java)

JAS3

(Java)

JAS3 Plugin Demo I

AmbientPlugin: Access BaBar Ambient DB via CORBAPresent Time History as an AIDA object (DataPointSet)

BaBar

Ambient DB

BaBar

Ambient DB

CORBA Server (C++)

CORBA Server (C++)

AmbientPlugin

(Java CORBA Client)

AmbientPlugin

(Java CORBA Client)

Page 33: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

JAS3

(Java)

JAS3

(Java)

JAS3 Plugin Demo II

Gean4 Plugin Gean4 Plugin

Geant4 Application (C++)

Geant4 Application (C++)

JNI LayerJNI Layer Java RMI Server

Java RMI Server

Geant4 Plugin

(Java RMI Client)

Geant4 Plugin

(Java RMI Client)

Page 34: JAS3 – Current Status and Prospects

AIDA Web Interface

Page 35: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

Goals

Provide access to Histogram plots without requiring any

software installationPutting results on to the web for collaborators etc.

For example for viewing results of “quality control” plots

Viewing “live” histograms on the web forOnline monitoringMonitoring progress of batch jobs

Add as much functionality as possible in a “generic” way

so that it can be used by others (with minimal work)Complete “out-of-the-box” web application

Packaged as a .war file for use with any J2EE app server – (e.g. Tomcat)

Configurable via a simple .ini file (or better via a web interface)

Page 36: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

Architecture

.root

.paw

.aida

Application Server (Tomcat)

Web Application

JAIDAAIDA

Servlet

SQL

RemoteAIDA

C++ App

Java App

Page 37: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

Features

Current Feature setDisplay of “AIDA Tree” for selection of histogramsDisplays plots as .png or .gif images in browser

Allows (limited) control of image propertiesAllows (limited) control over plot propertiesAllows comparison to reference plots (including Kolmagorov test)Allows export of plots to PDF, EPS, SVG, SWF, GIF, PNG, etc.

Planned featuresExtend to support n-tuples as well as histograms

Dynamic definition of new columns and cuts (evaluators, filters)Web based fitting (including function definition)Support multiple plots per page

Thumbnail browserExtend which plot options can be configured through webAllow users to retain settings via cookies

Page 38: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

Current Interface

Can try from the web:http://glast02.slac.stanford.edu:8080/aida/welcome.html

Page 39: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

Status

Currently released JAS3 version 0.7.3 (0.7.4 next week)AIDA 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 used JAS2 you will find some functionality not yet

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

Page 40: JAS3 – Current Status and Prospects

ACAT03 1-5 December 2003 JAS3 – Current Status and Prospects, V. Serbo

JAS3 Conclusion

JAS3 is a powerful and flexible Analysis Tool

JAS3 uses Plugin ArchitectureEasy to add new functionalityEasy to fix problems with existing modules – do not have to wait

for new release of all libraries

JAS3 release 0.7.3 is out – try it!It is still a beta version, so bugs happenWe need your input to make JAS3 better!

Report bugs, problems, suggestions at http://bugs.freehep.orgDo not have to be on JAS team to be JAS developer – ideas/code for

general-purpose plugins are always welcome

Try writing JAS3 plugins for your own needs: for Experiment and Home