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.


So far the following categories have been identified:

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

  1. Only interfaces, basic types, and types from foundation libraries are allowed (STL is currently the only one foundation library)
  2. Uses only long and double as basic types (no int and float)
  3. Internals (classes, enums, or others) of concrete packages do not appear in the interface
  4. Accessors - XXX() (no getXXX() functions) and setXXX(value) to set new value
  5. Only pure virtual methods are allowed


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

Design drawings

Last modified: Thu Sep 14 12:41:13 CEST