GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, AIDA Abstract Interfaces for Data Analysis Andreas Pfeiffer CERN IT/API

Slides:



Advertisements
Similar presentations
Physicist Interfaces Project an overview Physicist Interfaces Project an overview Jakub T. Moscicki CERN June 2003.
Advertisements

Maria Grazia Pia, INFN Genova 1 Data analysis with R in an experimental physics environment Andreas Pfeiffer (CERN) and Maria Grazia Pia (INFN Genova)
Why ROOT?. ROOT ROOT: is an object_oriented frame work aimed at solving the data analysis challenges of high energy physics Object _oriented: by encapsulation,
June 4-8, 2007 G4ParisAnalysis 2 P. Gueye1 Analysis 2 Histograms and ntuples Paul Guèye Hampton University Hampton VA
JAS in SDA. My Experience My assignment was to use JAS to read SDA data and make plots. –I used OSDA and OSDAphysics to read SDA data. OSDA and OSDAphysics.
Victor Serbo, SLACACAT’2002, Moscow, June 24-28, Status of AIDA and JAS 3 by Victor Serbo What is AIDA History/Collaboration/Documentation Some Details.
G.Barrand / LAL / IN2P3 / CNRS AIDA analysis tools and Geant4 A user roadmap.
ILDG File Format Chip Watson, for Middleware & MetaData Working Groups.
Victor Serbo, CHEP071 JAIDA, JAS3, WIRED4 and the AIDA tag library - experience and new developments DONSZELMANN, Mark (SLAC)DONSZELMANN, Mark JOHNSON,
4 November 2009 Geant4 Data Analysis J. Perl 1 Trivial Data Analysis for Geant4 Joseph Perl, SLAC Geant4 v9.2p02.
13 January 2011 Geant4 Data Analysis J. Perl 1 Trivial Data Analysis for Geant4 Joseph Perl, SLAC Geant4 v9.4.
JAS – Distributed Data Analysis Grid Enabled Analysis Workshop Caltech - June 23-25, 2003.
Analysis with Geant4 and AIDA Tony Johnson SLAC-Geant4 Workshop February 2002 Tony Johnson.
Victor Serbo, SLAC30 September 2004, Interlaken, Switzerland JASSimApp plugin for JAS3: Interactive Geant4 GUI Serbo, Victor (SLAC) - presenter Donszelmann,
JAS3 – Current Status and Prospects by Victor Serbo, SLAC.
M1G Introduction to Programming 2 4. Enhancing a class:Room.
LCIO A persistency framework for LC detector simulation studies Frank Gaede, DESY, IT 4 th ECFA/DESY LC Workshop Amsterdam April 1 st -4 th 2003.
Java Analysis Studio Status Update 12 May 2000 Altas Software Week Tony Johnson
JAS3 + AIDA LC Simulations Workshop SLAC 19 th May 2003.
JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003.
IX International Workshop on Advanced Computing and Analysis Techniques in Physics Research KEK, Tsukuba, December 2003
Java Root IO Part of the FreeHEP Java Library Tony Johnson Mark Dönszelmann
G.Barrand, LAL-Orsay OpenScientist Status (v11) Relationship with AIDA
N ATIONAL E NERGY R ESEARCH S CIENTIFIC C OMPUTING C ENTER Charles Leggett A Lightweight Histogram Interface Layer CHEP 2000 Session F (F320) Thursday.
HERA/LHC Workshop, MC Tools working group, HzTool, JetWeb and CEDAR Tools for validating and tuning MC models Ben Waugh, UCL Workshop on.
The LCG SPI project in LCG Phase II CHEP’06, Mumbai, India Feb. 14, 2006 Andreas Pfeiffer -- for the SPI team
Writing Extension Modules (Plugins) for JAS 3 Mark Donszelmann Tony Johnson Victor Serbo Max Turri CHEP2004, 27 september-1 october 2004, Interlaken, Switzerland.
V. Serbo, SLAC ACAT03, 1-5 December 2003 Interactive GUI for Geant4 by Victor Serbo, SLAC.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
CHEP Feb 7-11, 2000 Andreas Pfeiffer, CERN/IT, 1 AIDA - Abstract Interfaces for Data Analysis Andreas Pfeiffer CERN IT
07 Apr, 2000 GAUDI Histograms Pavel Binko, LHCb / CERN 1 LHCb Software Week GAUDI Histograms Pavel Binko LHCb / CERN.
Using JAS3 for LCD Analysis Tony Johnson 20 th May 2003.
Operating System What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware. An operating.
Design Analysis builds a logical model that delivers the functionality. Design fully specifies how this functionality will be delivered. Design looks from.
K.Furukawa, Nov Database and Simulation Codes 1 Simple thoughts Around Information Repository and Around Simulation Codes K. Furukawa, KEK Nov.
_______________________________________________________________CMAQ Libraries and Utilities ___________________________________________________Community.
JAS3 - A general purpose data analysis framework for HENP and beyond Tony Johnson, Victor Serbo, Max Turri, Mark Dönszelmann, Joseph Perl SLAC.
SiD Workshop October 2013, SLACDmitry Onoprienko SiD Workshop SLAC, October 2013 Dmitry Onoprienko SLAC, SCA FreeHEP based software status: Jas 3, WIRED,
AIDA Web Interface Tony Johnson, Victor Serbo, Max Turri AIDA Workshop, CERN, July 2003.
CLAS12 software paradigm My two cents… Vardan Gyurjyan Friday, August 26, 2005.
Fitting in AIDA General Concepts Requirements JAIDA Examples Interfaces Overview Conclusions.
GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, AIDA Abstract Interfaces for Data Analysis Andreas Pfeiffer CERN IT/API
Java Analysis Studio - Status CHEP 98 - September 1998 Tony Johnson - SLAC Jonas Gifford + Kevin Garwood - University of Victoria.
JACO JACO - Java Access to C++ Objects Mark Dönszelmann and Tony Johnson 25 May 2000.
G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter.
Status Report of  Analysis Services Lorenzo Moneta CERN/EP-SFT Application Area Meeting, 9 July 2003.
Visualization of Geant4 Data: Exploiting Component Architecture through AIDA, HepRep, JAS and WIRED Geant4 Workshop, CERN - 2 October 2002 Joseph Perl.
NOVA A Networked Object-Based EnVironment for Analysis “Framework Components for Distributed Computing” Pavel Nevski, Sasha Vanyashin, Torre Wenaus US.
25th May, 1999 HTL - Histogram Template Library Pavel Binko, LHCb / CERN 1 LHCb Computing Meeting HTL - Histogram Template Library Pavel Binko LHCb / CERN.
INFSO-RI Enabling Grids for E-sciencE ARDA Experiment Dashboard Ricardo Rocha (ARDA – CERN) on behalf of the Dashboard Team.
23/2/2000Status of GAUDI 1 P. Mato / CERN Computing meeting, LHCb Week 23 February 2000.
Analysis Software Strategy Jürgen Knobloch HTASC, DESY 9 October 2001 AIDA ANAPHE LIZARD.
JAS and JACO – Status Report Atlas Graphics Group August 2000 Tony Johnson.
D. Duellmann - IT/DB LCG - POOL Project1 The LCG Dictionary and POOL Dirk Duellmann.
Summary of the AIDA workshop AIDA Workshop, July What is AIDA  AIDA defines today interfaces for some common analysis data objects  IHistogram,
AIDA Abstract Interfaces for Data Analysis Massimiliano Turri, SLACCHEP, La Jolla, March “The goal of the AIDA project is to define abstract.
AIDA Proxy Unit Tests Hurng-Chun Lee Academia Sinica Computing Centre, Taiwan.
Validation db status and plans (what happened since the Collaboration meeting) Hans Wenzel 10th Physics Lists and Validation Tools working group meeting.
Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, AIDA Abstract Interfaces for Data Analysis Andreas Pfeiffer CERN IT/API
Discussion with Blueprint RTAG August 2002 Tony Johnson SLAC.
Chapter 7 Computer-Aided Design and Drafting in Architecture.
(on behalf of the POOL team)
POOL persistency framework for LHC
Dirk Düllmann CERN Openlab storage workshop 17th March 2003
Potential use of JAS/JAIDA etc. SAS J2EE Review
Project Status and Plan
Introduction to Data Structure
Java Analysis Studio - Status
PyWBEM Python WBEM Client: Overview #2
Presentation transcript:

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, AIDA Abstract Interfaces for Data Analysis Andreas Pfeiffer CERN IT/API

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 2 Outline What is AIDA History/Collaboration/Documentation Some Details Examples Ongoing work Summary

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 3 What is AIDA Abstract Interfaces for Data Analysis (AIDA) “The goals of the AIDA project are to define abstract interfaces for common physics analysis objects, such as histograms, ntuples, fitters, IO etc.The adoption of these interfaces should make it easier for developers and users to select to use different tools without having to learn new interfaces or change their code. In addition it should be possible to exchange data (objects) between AIDA compliant applications.”

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 4 Motivation Advantages The user needs to learn only one set of interfaces Same user code can be used with different AIDA-compliant analysis applications Pool experience of different developer teams LHC++, OpenScientist, JAS Different analysis tools can exchange analysis objects same storage format, use functionality from other tools Two versions of AIDA interfaces One for C++ One for Java As identical as possible

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 5 Abstract Interfaces only pure virtual methods, inheritance only from other A.I. components use other components only through their A.I. defines a kind of a “protocol” for a component Maximize flexibility and re-use of packages allow each component to develop independently re-use of existing packages to implement components reduces start-up time significantly De-couple implementation of a package from its use

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 6 AIDA Example Use same code with any AIDA-compliant analysis tool. AIDAAIDA User code (e.g. GEANT4) Analysis tool 1 Analysis tool 2

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 7 Architectural issue: Components (I) Identify components by functionality Define “protocol” using Abstract Interfaces Emphasize separation of different aspects for each component Example: Histogram statistical entity (density distribution of a physics quantity) view of a “collection of data points” (which can be a density distribution but also a detector efficiency curve) command to manipulate/store/plot/fit/... “User’s view” is different from “implementor’s (developer’s) view” separate Abstract Interfaces for both aspects

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 8 Use of Components with Abstract Interfaces User Code uses only Interface classes IHistogram1D * hist = histoFactory-> create1D(‘track quality’, 100, 0., 10.) Actual implementations are selected at run-time loading of shared libraries No change at all to user code but keep freedom to choose implementation Histo- Impl. 2 Histo-IFFitter-IF User Code Fitter- Impl. Y Histo- Impl. 1 Fitter- Impl. X

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 9 Across the languages JAida : C++ access to Java libs using C++ proxies implementing the C++ Abstract Interfaces to the Java interfaces C++UserCode AIDA-IF C++AIDA-IF Java Java Lib JAida

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 10 XML standards Started with 1D and 2D Histograms aim: easy transfer between applications Will extend to other data types other histos, fits, ntuples, … Comments/contributions welcome !

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 11 History Initial idea formed during discussion at HepVis-99 workshop at Orsay Informal AIDA discussions at CERN in 2000 AIDA workshops: January Paris/Orsay April Boston (preceding HepVis 2001) Informal meetings (e.g during Geant4 meetings and video conferences) June 2002 – CERN Interfaces have been designed by discussion and (eventual) consensus Takes some time, but result is well though out and robust

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 12 Organization - Developers No formal collaboration/author list. Some people who have contributed (ideas, code, etc). Guy Barrand, Pavel Binko, Mark Donszelmann, Wolfgang Hoschek, Tony Johnson, Emmanuel Medernach, Dino Ferrero Merlino, Lorenzo Moneta, Jakub Moscicki, Ioannis Papadopoulos, Andreas Pfeiffer, Max Sang, Victor Serbo, Max Turri Apologies to people accidentally missed

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 13 Organization – Code, Documentation AIDA – open source project CVS repository: cvs.freehep.org “anonymous” download available Web page: General information, relevant links Tutorial, users’ guide, examples Downloads and web-browsable source code Test cases (coming soon)

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 14 Current Status AIDA Version 2.2 released (December 2001) First “End User” release Three implementations of AIDA exist Anaphe/Lizard (C++) Open Scientist (C++) JAIDA/JAS (Java) + AIDA-JNI 1.0 (C++) GEANT4 adopted AIDA for analysis AIDA 3 Currently under discussion Release foreseen for Sep 2002

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 15 AIDA Interfaces Summary AIDA Factories ITuple IHistogram ICloud ITree

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 16 AIDA Design

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 17 Aida design (details) File: /data/pfeiffer/Rose/AIDA-2.2.mdl Sun Jun 30 17:18: Class Diagram: Logical View / Main Page 1

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 18 Example Program (Java) Create, fill, and view 1D and 2D histograms:

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 19 ITuple ITuple - interface to the Data “get/set” methods for double, float, int, … Information about columns: min, max, mean, rms Navigating: start(), next(), skip(int nRows) Project ITuple into 1D, 2D, 3D histogram New features for AIDA 2.3: Support for complex internal structures (subfolders) Merging and chaining of ITuples under discussion

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 20 Details - ITuple Interface to the Data:

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 21 IHistogram (1D-3D) Binned histogram: IHistogram1D, 2D, 3D “fill” methods (with/without weight) Histogram info: entries, mean, rms, axis Bin info: centre, entries, height, error Histogram arithmetic: add, multiply, divide Convenience methods, like coordinate-to-index conversion

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 22 Details – IHistogram (1D-3D) IHistogram: Common functionality for all histograms (like entries, label, dimension,) IHistogram1D IHistogram2D IHistogram3D

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 23 ICloud Unbinned collection of points: ICloud1D, 2D, 3D Can represent scatter plot, dynamically rebinnable histogram Can be converted to a binned histogram Standard “get/set” methods for entries Collection info: lower, upper, mean, rms

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 24 Details - ICloud ICloud: Common functionality for all histograms (like entries, label, dimension,) ICloud1D ICloud2D ICloud3D

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 25 IFunction and Fitting Fitting: IFunction, IFitFunction IFunction – simple interface, allows to set parameters and get function value IFitFunction – fit function to a histogram Extends IFunction Various fit control methods: step size, bounds, etc. Allows to perform fit and get results AIDA 2.2 fitting functionality fairly limited AIDA 2.3 (Under discussion) extended functionality

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 26 ITree directory-like structure (Unix directory convention) Methods like: cd, ls, mkdir, etc. AIDA analysis objects (tuples, histograms, clouds, ets.) exist within ITree directories “save/restore” functionality, hides storage details from the user Compatible with database or file storage Can support multiple file formats Mount/Unmount functionality (like unix) allows multiple stores to be seamlessly merged AIDA XML format is defined for data interchange

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 27 Details - ITree Directory-like structures: ITree

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 28 June 2002 Developers Workshop 2 Day “Users Workshop” 3 Day “Developer Workshop” Items under discussion Fitting (two proposals, from SLAC, CERN) Similar but different, differences need to be resolved Improved plotting (IPlotter) Graph (XYData) Tuple chaining, merging Small updates/extensions to API Input/Participation from people always welcome !

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 29 Ongoing work Refining Fitter and Plotter components IFitter, IOptimizer, IFitResult Iplotter, I*Styles for plotting Developer-level interfaces Code sharing More robust operation Put AIDA-based utilities in CVS Utility to test AIDA implementations User contributions Common binary storage format

GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, 30 Summary Abstract Interfaces de-couple components of frameworks Weakly coupled components and frameworks have large advantages User code needs no change if changing implementation Even across “language boundaries” (JAIDA) Ease of re-use of a component Flexibility through independence of implementation Maintainability through independent evolution of components Example using Geant-4 and AIDA compliant analysis tools (see tutorial)