07 Apr, 2000 GAUDI Histograms Pavel Binko, LHCb / CERN 1 LHCb Software Week GAUDI Histograms Pavel Binko LHCb / CERN.

Slides:



Advertisements
Similar presentations
Chapter 18 Building the user interface. This chapter discusses n Javas graphical user interface. n Swing: an enhancement of a library called the Abstract.
Advertisements

Physicist Interfaces Project an overview Physicist Interfaces Project an overview Jakub T. Moscicki CERN June 2003.
Maria Grazia Pia, INFN Genova 1 Data analysis with R in an experimental physics environment Andreas Pfeiffer (CERN) and Maria Grazia Pia (INFN Genova)
The C ++ Language BY Shery khan. The C++ Language Bjarne Stroupstrup, the language’s creator C++ was designed to provide Simula’s facilities for program.
Department of Computer Engineering Faculty of Engineering, Prince of Songkla University 1 5 – Abstract Data Types.
Chapter 14 Graph class design John Keyser’s Modifications of Slides by Bjarne Stroustrup
C++ Programming Languages
COSC 1P03 Data Structures and Abstraction 2.1 Software Development The leadership instinct you are born with is the backbone. You develop the funny bone.
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.
Status of PI Analysis Services Lorenzo Moneta CERN AIDA Workshop 1/7/2003.
GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.
Ideas on the LCG Application Architecture Application Architecture Blueprint RTAG 12 th June 2002 P. Mato / CERN.
Chapter 6 Graphical User Interface (GUI) and Object-Oriented Design (OOD)
03 Data types1June Data types CE : Fundamental Programming Techniques.
Aalborg Media Lab 23-Jun-15 Inheritance Lecture 10 Chapter 8.
Analysis with Geant4 and AIDA Tony Johnson SLAC-Geant4 Workshop February 2002 Tony Johnson.
Templates. Objectives At the conclusion of this lesson, students should be able to Explain how function templates are used Correctly create a function.
Pythia 8 Event Production Electron positron distribution A basic analysis.
Susanna GuatelliGeant4 Workshop 2004 Use of Analysis Tools Geant4 Workshop 2004, Catania Susanna Guatelli, INFN Genova.
Abstraction: Polymorphism, pt. 1 Abstracting Objects.
LECTURE LECTURE 17 More on Templates 20 An abstract recipe for producing concrete code.
Lecture 3 Casting Abstract Classes and Methods Interfaces.
SESSION 11 & 12 Last Update 3 rd March 2011 Introduction to Statistics.
Gaudi Framework Tutorial, April Introduction.
LHCb Software week November, 1999 M.Frank LHCb/CERN N-Tuples within Gaudi ã Definition ã Usage ä Run through simplified example ã The persistent.
JAS3 + AIDA LC Simulations Workshop SLAC 19 th May 2003.
IX International Workshop on Advanced Computing and Analysis Techniques in Physics Research KEK, Tsukuba, December 2003
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.
Graphic User Interface. Graphic User Interface (GUI) Most of us interact with computers using GUIs. GUIs are visual representations of the actions you.
Introduction to Gaudi LHCb software tutorial - September
Java course. Assignment #2, due: Feb. 27, (20) (a) Tell the difference between the abstract class and the interface. (b) Tell the difference between.
AIDA Web Interface Tony Johnson, Victor Serbo, Max Turri AIDA Workshop, CERN, July 2003.
Jose A. Hernando Trigger Gaudies Reconstruction Tools & Algorithms Inspectors MC & Data Algorithms Template preserved container Jose A. Hernando.
CLAS12 software paradigm My two cents… Vardan Gyurjyan Friday, August 26, 2005.
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, AIDA Abstract Interfaces for Data Analysis Andreas Pfeiffer CERN IT/API
Chapter 6 Introduction to Defining Classes. Objectives: Design and implement a simple class from user requirements. Organize a program in terms of a view.
G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter.
Java Beans. Definitions A reusable software component that can be manipulated visually in a ‘builder tool’. (from JavaBean Specification) The JavaBeans.
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.
25th May, 1999 HTL - Histogram Template Library Pavel Binko, LHCb / CERN 1 LHCb Computing Meeting HTL - Histogram Template Library Pavel Binko LHCb / CERN.
Chapter 14 Graph class design Bjarne Stroustrup
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.
Postgraduate Computing Lectures PAW 1 PAW: Physicist Analysis Workstation What is PAW? –A tool to display and manipulate data. Learning PAW –See ref. in.
Tutorial: Examples (09may00 - ATLAS Software LBNL) May 2000 Prototype Framework Tutorial: Examples Paolo Calafiura, Charles Leggett HCG/NERSC/LBNL.
JAS and JACO – Status Report Atlas Graphics Group August 2000 Tony Johnson.
CERN Tutorial, February Introduction to Gaudi.
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.
Object Oriented Programming Object and Classes Lecture 3 MBY.
AIDA Proxy Unit Tests Hurng-Chun Lee Academia Sinica Computing Centre, Taiwan.
Proposal for extension of GaudiAlgorithm and GaudiTool classes Vanya Belyaev CERN & ITEP/Moscow.
C# Fundamentals An Introduction. Before we begin How to get started writing C# – Quick tour of the dev. Environment – The current C# version is 5.0 –
Level 3 Tracking Tutorial R. Beuselinck 7 February 2001 Current status of level 3 tracking interface User access methods and parameter definitions Simple.
Basic Graphics 03/03/16 & 03/07/16 Imagine! Java: Programming Concepts in Context by Frank M. Carrano, (c) Pearson Education - Prentice Hall, 2010.
9.1 CLASS (STATIC) VARIABLES AND METHODS Defining classes is only one aspect of object-oriented programming. The real power of object-oriented programming.
Chapter 5 Introduction to Defining Classes Fundamentals of Java.
David Adams ATLAS DIAL Distributed Interactive Analysis of Large datasets David Adams BNL May 19, 2003 BNL Technology Meeting.
How to be generic Lecture 10
Templates.
Section 11.1 Class Variables and Methods
Project Status and Plan
Object-Oriented Programming
Planning next release of GAUDI
Programming to Interfaces
Corresponds with Chapter 5
Zhangxy Zhangxm Huangxt Dec 17 ,2003
Presentation transcript:

07 Apr, 2000 GAUDI Histograms Pavel Binko, LHCb / CERN 1 LHCb Software Week GAUDI Histograms Pavel Binko LHCb / CERN

07 Apr, 2000 GAUDI Histograms Pavel Binko, LHCb / CERN 2 LHCb Software Week AIDA and LIZARD AIDA -- Abstract Interfaces for Data Analysis –Defines categories or packages (like in PAW) Histograms, Vectors, Ntuples, Functions, Fitter, Plotter, Analyzer, Event display –There will be three sub-packages per category Class definitions (e.g. all different histogram types, as 1D, 2D, etc.) Factory - to allow creation of objects (of all classes defined above) Manager - manipulates the objects above, steers a persistency –All classes in all categories will have a common messaging system All categories will have an abstract interface(s) LIZARD -- an AIDA compliant Interactive Analysis Environment –Should provide all the basic features of PAW (and more) –Based on AIDA specifications

07 Apr, 2000 GAUDI Histograms Pavel Binko, LHCb / CERN 3 LHCb Software Week Basic principles Only interfaces, basic types, and types from foundation libraries are allowed –STL is currently the only one foundation library –Uses only int and double as basic types Most functions accept index as a parameter –The pre-defined values IHistogram::UNDERFLOW and IHistogram::OVERFLOW are also accepted –Conversion function from coordinate into index provided HTL internal classes or others do not appear in the interface

07 Apr, 2000 GAUDI Histograms Pavel Binko, LHCb / CERN 4 LHCb Software Week Class hierarchy IHistogram –Contains functions identical for both 1D and 2D histograms –User for histogram management (not visible to the users) IHistogram1D and IHistogram2D - “the” interfaces –Inherit from IHistogram –Contain 1D and 2D specific functions IAxis –Contains information about axis and its bins Not the bin contents

07 Apr, 2000 GAUDI Histograms Pavel Binko, LHCb / CERN 5 LHCb Software Week IHistogram /// Constant specifying the underflow and overflow bin enum { UNDERFLOW_BIN = -2, OVERFLOW_BIN = -1 }; /// Title of the histogram (will be set only in the constructor) virtual std::string title() const = 0; /// Number of dimensions (1 for 1D histogram, 2 for 2D histogram, etc.) virtual int dimensions() const = 0; /// Reset contents virtual void reset() = 0; /// Number of entries virtual int entries() const = 0; virtual int allEntries() const = 0; virtual int extraEntries() const = 0; virtual double equivalentBinEntries() const = 0; /// Sum of bin heights virtual double sumBinHeights() const = 0; virtual double sumAllBinHeights() const = 0; virtual double sumExtraBinHeights() const = 0;

07 Apr, 2000 GAUDI Histograms Pavel Binko, LHCb / CERN 6 LHCb Software Week IHistogram1D /// Fill histogram virtual void fill( double x, double weight = 1 ) = 0; /// Number of entries, bin height and bin error virtual int binEntries( int index ) const = 0; virtual double binHeight( int index ) const = 0; virtual double binError( int index ) const = 0; /// mean and rms (calculated on filling-time) virtual double mean() const = 0; virtual double rms() const = 0; /// Min height of in-range bins and index of the bin containing the minBinHeight() virtual double minBinHeight() const = 0; virtual int minBin() const = 0; /// Max height of in-range bins and index of the bin containing the maxBinHeight() virtual double maxBinHeight() const = 0; virtual int maxBin() const = 0; /// Get the X axis virtual IAxis* xAxis() const = 0; /// Conversion from coordinate to index virtual int coordToIndex( double coord ) const = 0;

07 Apr, 2000 GAUDI Histograms Pavel Binko, LHCb / CERN 7 LHCb Software Week IHistogram2D (1) /// Fill histogram virtual void fill( double x, double y, double weight = 1 ) = 0; /// Number of entries in a bin and projections on the axis X/Y virtual int binEntries( int indexX, int indexY ) const = 0; virtual int binEntriesX( int indexX ) const = 0; virtual int binEntriesY( int indexY ) const = 0; /// Height of a bin and projections on the axis X/Y virtual double binHeight( int indexX, int indexY ) const = 0; virtual double binHeightX( int indexX ) const = 0; virtual double binHeightY( int indexY ) const = 0; /// Bin contents error virtual double binError( int indexX, int indexY ) const = 0; /// mean and rms (calculated on filling-time) projected on the axis X/Y virtual double meanX() const = 0; virtual double meanY() const = 0; virtual double rmsX() const = 0; virtual double rmsY() const = 0;

07 Apr, 2000 GAUDI Histograms Pavel Binko, LHCb / CERN 8 LHCb Software Week IHistogram2D (2) /// Min height of in-range bins and index of the bin containing the minBinHeight() virtual double minBinHeight() const = 0; virtual int minBinX() const = 0; virtual int minBinY() const = 0; /// Max height of in-range bins and index of the bin containing the maxBinHeight() virtual double maxBinHeight() const = 0; virtual int maxBinX() const = 0; virtual int maxBinY() const = 0; /// Get the X/Y axis virtual IAxis* xAxis() const = 0; virtual IAxis* yAxis() const = 0; /// Conversions between coordinates and bin indices virtual int coordToIndexX( double coordX ) const = 0; virtual int coordToIndexY( double coordY ) const = 0;

07 Apr, 2000 GAUDI Histograms Pavel Binko, LHCb / CERN 9 LHCb Software Week IHistogram2D (3) /// Projection on axis X/Y virtual IHistogram1D* projectionX() const = 0; virtual IHistogram1D* projectionY() const = 0; /// Slice parallel with the axis X, identified by bin indexY virtual IHistogram1D* sliceX( int indexY ) const = 0; /// Slice parallel with the axis Y, identified by bin indexX virtual IHistogram1D* sliceY( int indexX ) const = 0; /// Slice parallel with the axis X, between indexY1 and indexY2 virtual IHistogram1D* sliceX( int indexY1, int indexY2 ) const = 0; /// Slice parallel with the axis Y, between indexX1 and indexX2 virtual IHistogram1D* sliceY( int indexX1, int indexX2 ) const = 0;

07 Apr, 2000 GAUDI Histograms Pavel Binko, LHCb / CERN 10 LHCb Software Week IAxis /// Lower and upper axis edge virtual double lowerEdge() const = 0; virtual double upperEdge() const = 0; /// Number of in-range bins in the axis virtual int bins() const = 0; /// Lower and upper edge of the in-range bin identified by index virtual double binLowerEdge( int index ) const = 0; virtual double binUpperEdge( int index ) const = 0; /// Width of the in-range bin identified by index virtual double binWidth( int index ) const = 0; /// Centre of the bin located by index virtual double binCentre( int index ) const = 0; /// Conversions between coordinates and bin indices virtual int coordToIndex( double coord ) const = 0;

07 Apr, 2000 GAUDI Histograms Pavel Binko, LHCb / CERN 11 LHCb Software Week Conclusions Designed AIDA histogram interfaces in C++ and Java –“Agreed” by large community of developers via the HepVis and LHC++ mailing lists –LHC++, LIZARD, OpenScientist, JAS, etc. –LHC experiments interested in it: ATLAS, CMS, LHCb All AIDA histogram interfaces implemented in GAUDI together with the HistogramSvc –Using the Histogram Template Library (HTL) by LHC++ –Switch to an other histogram package rather simple Implemented HBOOK convertors –Create HBOOK histograms, fill them and propagate statistics