This document is intended to become a proposal to the Geant4 architecture board, after discussion by the AIDA developers.
AIDA is a set of abstract classes which allow analysis code to be written independent of any particular analysis tool. A particular AIDA compliant analysis tool can be selected at link time with no changes to analysis code.
Currently AIDA is used by a number of examples and tutorials in the Geant4 distribution, but there are a number of problems:
This proposal aims to address these problems, and at the same time make it easier to use AIDA with Geant4.
The goals of this proposal are to:
These goals can be achieved without forcing users to use AIDA, it will be just as easy to use any other analysis tool as it is now.
In order to achieve these goals we propose the following:
The following minimal set of AIDA commands should be implemented initially. More commands could be added later.
|/aida/load <aida-implementation>||Dynamically load a real AIDA implementation. Must be used before any other AIDA commands.|
|/aida/ls||List all analysis objects in the current directory|
|/aida/cd <directory>||Change the current AIDA directory|
|/aida/plotter <n> <m>||Set the default plotter to an n x m grid|
|/aida/plotter/next||Set the default plotter to the next region|
|/aida/plotter/clear||Clears all regions of the default plotter|
|/aida/plot <path>||Plot the analysis object using the default plotter|