Java Analysis Studio Status Update 12 May 2000 Altas Software Week Tony Johnson
Introduction to JAS JAS starts from experience with SLD interactive data analysis – IDA (Toby Burnett) + SLD extensions – Integrates ideas from Reason, Hippodraw, LHC++, Histoscope, … – Exploit advantages of Java Cross platform, dynamic loading, GUI, many standard API’s – networking, HTML, etc. AIM is to solve real life physicist problems – Want to get input from as many people as possible. – System is flexible enough to change.
JAS Overview Modular Java Toolkit for Analysis of HEP data – Data Format Independent – Experiment Independent – Supports arbitrarily complex analysis modules written in Java – Rich Graphical User Interface (GUI) with: Data Explorer Flexible Histogram + Scatterplot display Histogram manipulation+fitting Built-in Editor/Compiler (for writing analysis modules) Extensible via plugins – User extensible via Object Orientated API's Written entirely in Java so will run on any platform with a Java VM Support: Windows 95/98/NT/ Linux + Solaris Works on: DEC + SGI + Mac
JAS Components JASHist (Plot Bean) Fitting Framework FunctionsFitters Analysis Framework GUI Framework Plugin Histogram Accumulation 3-4 Vector Utilities Data Interface Histo/Plot Adaptor Network Adaptor Particle Properties Jet Finder PAWSQLstdHEP
JAS GUI
JAS GUI – Histogram Viewer
JAS GUI – Editor/Compiler
Current Status JAS 2.0 – Currently “Alpha 4” release (in CVS) – Binary Beta Release – End of May – Binary Final Release – End of June Many bug fixes New tutorial – Extensively Updated Help Extended plug-in support – Full Wired Integration – Scripting
Wired Integration (as plugin)
Ongoing Work for 2.1 release Extend Range of Plots Supported – In collaboration with Joy Kyriakopulos and Glenn Goderre (Fermilab) – XY plots – Lego plot, Surface plot, 3D Scatter Plot – Extend plot framework to support unlimited set of plot type’s Existing plot types/date types will be special cases of more generic types – EPS and SVG graphics generation With Charles Loomis and Mark Donszelmann (CERN)
Java Access to C++ Object (JACO) In collaboration with Mark Donzelmann (CERN) – Automatic generation of “glue-code” to glue Java code to C++ code. Particularly targeted at “Event” data Can read.h files, or IDL files, or Java files – Ongoing – see for access to source.
Scripting Current Plug-in architecture supports plug-in of scripting engine Many scripting languages for Java available – BeanShell – jPython – Many others All give access to java object model Develop object model correctly and users should be able to use any scripting language – Will probably still choose 1 to be default
Goals for Scripting Functionality – Create/fill/manipulate histograms – Create pages and place histograms on page – Dynamically create analysis routines – Dynamically create functions and perform fits – What else? How to handle client/server mode (remote jobs)? – Where does script run, locally or remotely?
Scripting Example myHist = new Histogram(“xyz”); for (int i=0; i<1000; i++) – myHist.fill(Math.random()); def myFunction(x,y,z) { return x+2*y+3*z; } fit(myHist,myFunction); page = new Page(“MyPage”); plot = new plot(myHist); plot.setBounds(50,50,50,50); page.add(plot);
Scripting Example 2 processEvent(AtlasEvent e) { – histogram(“energy”).fill(e.getTotalEnergy()); } go(100);
AIDA (Abstract Interface to Data Analysis) AIDA being developed by Andrea Pfeiffer and other at CERN Java implementation of AIDA Histogram interface done Plan to implement Ntuple/Vector/Function/Fitter interface as soon as it is ready – If works well will either replace JAS histogram classes with Java implementation of AIDA classes, or make JAS histogram classes a superset of AIDA.