
AIDA -- Abstract Interfaces for Data Analysis

This project is part of the
Academic Software Organization.
This organisation has been founded by an international group of computing scientists,
engineers, physicists, in 1999 to help the development of software tools for academic
scientific research in an international and collaborative way.
The SLAC AIDA home page is now available.
Categories
So far the following categories have been identified:
- Histograms
- Vectors
- Ntuples
- Functions
- Fitter
- Plotter
- Analyzer
- EventDisplay
- Controller (UI)
- Messages
Most of the classes in each category have probably a very similar structure:
the baseClasses are controlled by a manager which uses
a factory for the creation. All classes in all categories will have a
common messaging system, which can be customized if required. Similarly, concrete
factories handling persistent classes can be customized.
Design principles
- Only interfaces, basic types, and types from foundation libraries are allowed
(STL is currently the only one foundation library)
- Uses only long and double as basic types (no int and float)
- Internals (classes, enums, or others) of concrete packages do not appear in the interface
- Accessors - XXX() (no getXXX() functions) and setXXX(value) to set new value
- Only pure virtual methods are allowed
Interfaces
These are the proposed abstract interfaces for the various categories. The list
here is not yet complete and is meant as a starting point for discussions.
Any comments are welcome and should be sent to
Andreas.Pfeiffer@cern.ch.
- Histograms
Histograms are used to collect statistical information at the time they are
filled. The manipulation of histograms for presentation puropose has been
put into the VectorOfPoints class. Other operations like fitting
and plotting are also based on the VectorOfPoints, thus keeping the
functionality of histograms to their original intent.
At present only the histograms are defined. The HistoManager still needs to be done.
New version (V0_0_1) (as of July 2000)
- the old versions (V0_0_0) are still available for reference:
Last update:
27 Jul 00 : Updated histo interfaces to new version (V0_0_1)
17 Jan 00 : Changes to the name of some methods as well as a few new methods have been
introduced in IHistogram1D see //NEW and //CHANGE in the file.
16 Dec 99 : The 1- and 2-d histograms have been restructured to no longer need the
IHistogramBase.h class. Work is going on to do the same thing for
the ProfileHisto.
05 Oct 99 : added IHistoProfile1D (ap)
27 Sep 99 : fixed overloading on return args in IHistogram2D.h,
included <string> in IHistogramBase.h (ap)
Remarks from round-1 on the histogram interface
- Vectors
Last update:
14 Oct 99 : modified version after review in last LHC++ meeting (ap)
05 Oct 99 : initial version for start, will probably change quite a bit (ap)
- Ntuples
nothing defined yet
- Functions
nothing defined yet
- Fitter
Last update:
05 Oct 99 : initial version for start, will probably change quite a bit (ap)
- Plotter
nothing defined yet
- Analyzer
nothing defined yet
- EventDisplay
nothing defined yet
- Controller (UI)
nothing defined yet
- Messages
nothing defined yet
Design drawings
Andreas PFEIFFER
Last modified: Thu Sep 14 12:41:13 CEST