Transcript JAS3 CHEP

JAS3 - A general purpose
data analysis framework
for HENP and beyond
Tony Johnson , Victor Serbo, Max Turri,
Mark Dönszelmann, Joseph Perl
SLAC
Contents
 JAS History
 JAS3 Overview
 JAS3 Plugins
 JAS3 & AIDA
 JAIDA and AIDA-JNI
 JAS3 & Scripting
 JAS3 Tuple Explorer
 JAS3 Spreadsheet
 JAS3 Status
 Future Plans
JAS3
March 2003
JAS History
 First version of JAS2 released in 2000.
 Incremental improvements released over time.
 Most recent change, addition of PDF, EPS, SVG, EMF vector graphics
 Offline Analysis
JAS3
March 2003
JAS3 History – Use Cases
 With WIRED event display
JAS3
 Online Monitoring
March 2003
JAS3 History – Use Cases
 Custom Applications
JAS3
 Web Servlets
March 2003
JAS 3 History – Use Cases
 JAS and the GRID
JAS3
March 2003
JAS History
 JAS2 Limitations
 Imposed an (HEP specific) event-analysis model
 Often used for online monitoring, often used outside HEP
 Not really designed for this use
 Hard to integrate with C++ code
 No scripting
 Opportunities
 Realized a lot of overlap with WIRED project
 Created FreeHEP Java library to
– Pull out (refactor) common parts of JAS, WIRED
– Implement new common requirements for JAS and WIRED
• Vector Graphics, Application Framework, Utilities (see M.Dönzselmann talk)
 Formed collaboration with other similar tool developers to create AIDA
package.
JAS3
March 2003
JAS3 Overview
 A completely new version of JAS
 Design based on Application Shell, into which many (optional)
modules can be plugged
 Highly 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 languages
 Scripting: Python, Pnuts, Dynamic Java, ….
– Command prompt
 Java (compiled)
 Analysis (histograms, tuples, fitting) based on AIDA standard
 Not technically backwards compatible with JAS2
 But migration is straightforward.
JAS3
March 2003
JAS3 Plugins
 JAS3 based on FreeHEP Application Framework
 Functionality provided by “Plugin” modules
 Modules may provide services, or use services provided by other plugins
– Loose coupling between modules allows for adding/removing/extending modules without
breaking other modules
 Modules are hierarchical, range from coarse to fine grained
 Examples of Plugins
 AIDA (provides core analysis interfaces, histograms, tuples, fitting)
 Fitters: Minuit, uncmin, ...
 IO: XML, Paw, Root, …
 Tuple Browser
 Event Processing
 Scripting:
 Pnuts, Jython,
 Compilers: Java
 Editor
 WIRED
 Spreadsheet
JAS3
March 2003
JAS3 and AIDA
 JAS3 has adopted AIDA for analysis
See talk by Max Turri in this session
 AIDA allows us to leverage experience and skill of other developers
 AIDA is functionally more complete than JAS2 analysis package
 AIDA allows JAS to exchange data with other AIDA tools
 AIDA provides bridge to C++ programs (e.g. Geant4)
 AIDA encourages creativity and innovation
 JAS3 HEP Analysis tools based on JAIDA
 JAIDA = Java implementation of AIDA
 JAIDA is part of FreeHEP library
 Usable as standalone library for any Java Application
 AIDAJNI = Interface between C++ and Java AIDA
 Allows C++ programs to use JAIDA, JAS3
JAS3
March 2003
JAS3, AIDA and C++
C++ AIDA
Implementation
AIDA- JNI
AIDA
AIDA
C++ program
.aida file
(XML)
JAIDA
JAS3
AIDA
Java program
JAS3
March 2003
JAS3 and AIDA
 JAS3 supports all AIDA functionality, including





Histograms (includes arithmetic, projections, etc.)
Clouds (unbinned histograms, scatterplots)
Plotter
Tuples
Fitting – AIDA interfaces allow for multiple fitters
 Uncmin -- pure java minimizer
 Minuit -- Fortran called by Java Native Interface (JNI)
 IO
 AIDA XML, PAW, Root
 JAS3 supports user interaction with AIDA in three ways
 Scripting (Pnuts, Python etc)
 Compiled (Java) code
 GUI – Plotting, Fitting, Cuts etc.
JAS3
March 2003
JAS3 Scripting
 JAS3 has multi-language OO scripting support
 Command line, Console, Editor
 Major components (e.g. AIDA) have scripting interfaces
 Currently have plugins to support
 Pnuts – syntax almost identical to Java, fast, well documented
and feature complete
 Python (using Jython)
 More scripting languages can be added
 not restricted to Java implementations (e.g. could use C-Python, JPE)
JAS3
March 2003
JAS 3 -- Simple Example
JAS3
March 2003
JAS3 – Histogram Arithmetic
JAS3
March 2003
JAS3 -- Fitting
JAS3
March 2003
JAS3 Tuple Explorer
 GUI for tuple manipluation
 Supports int, float, double,
String, Date, Objects
 Expression evaluator for
defining new columns
 Expressions compiled on fly
 Cuts can be defined
 Using expression evaluator
 Numeric expressions
– Sliders for varying cuts
 Works with “nested” tuples
 E.g. Event, Tracks, Hits
 Interfaced to AIDA tuples
 Can be generated on fly
 Read from file (PAW, XML, etc)
JAS3
March 2003
JAS3 Spreadsheet
 Simple spreadsheet plugin
 for
 Displaying results
 Calculations
 Simple Plots
 Plugins for reading/writing
 .csv files
 Excel files (pure Java)
 Cut/Paste with Excel etc
 Working on
 Scripting interface
 GUI for building plots
 User defined functions
– Java, scripting
JAS3
March 2003
JAS3 Status
 JAS3 0.5 is available for download
 Supports full AIDA functionality, scripting, tuple explorer, spreadsheet.
 Exceeds JAS2 is some areas, but does not yet support full JAS2 functionality
in all areas (hence 0.5)
 Having frequent 0.x releases as we move towards 1.0
 Plugins under development for JAS3 1.0
 WIRED event display
 Record/Event loop (in collaboration with IceCube experiment)
 More IO plugins, Root, StdHEP, SQL database etc.
 Publication quality plots – using FreeHEP vector graphics
 Longer term plans
 Log book, web publishing/collaboration plugin
 Distributed computing support (using SOAP or Corba in addition to RMI)
 Grid interface (in collaboration with PPDG – CS11 and Tech-X)
 Geant4 interface for small experiments/beam tests/medical users
 Combine JAS3, Wired, HepRep, AIDA, GAG and MOMO (with Hajime Yoshida)
JAS3
March 2003
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
 Come and see the other JAS3/FreeHEP related talks at
CHEP – http://www.freehep.org/CHEP03.html
JAS3
March 2003