CERN Accelerating science

This website is no longer maintained. Its content may be obsolete. Please visit http://home.cern/ for current CERN information.

User feedback from LHCb

Grigori Rybkine gave us the following feedback:

LHCb is using the AIDA interfaces for histograms through Gaudi since already quite some time. End users are generally satisfied with the current interface. AIDA Histograms are used as transient objects in both writing and reading mode. In the first case, they are booked and filled and then converted to persistent objects, which can be Root or HBook. In the second case they are created converting from Root or HBook histograms read from a file.

Histograms with 1,2, and 3 dimensions are used. Profile histograms are not yet used, but there is the plan to do it. Grigori seems interested in using the AIDA Clouds, as unbinned histograms, which can be converted easily to binned ones; he would like to have this conversion based on "strategy" chosen by the user.

AIDA Tuples are not used in LHCb, they have in Gaudi their own interface, which is implemented with HBook tuples or Root trees. Maybe the AIDA and Gaudi interfaces could be combined. Another possibility could be that PI would provide an interface based on POOL collections which can then be used in Gaudi.

Grigori showed some interest for having an XML format for writing histograms. It should be easy to integrate that in Gaudi, since a converter to XML can be directly provided by PI.

Grigori in addition made some specific request for the Root wrapper implementation of AIDA in PI:

The setter methods are not in the AIDA interfaces, but can be added in the developer interface and the AIDA_Root histogram can implement those interfaces. The Gaudi converter can then use the developer interfaces.

The annotation will be implemented in AIDA_ROOT in the next PI release. It will contain for the moment only the name. Further information, that can be passed to a Root histograms (for examples axis labels), can be easly added.

It was also discussed on the possibility of using directly the pi_aida::Histogram in Gaudi (the proxy layer from PI). In that case there is no direct dependency to the AIDA implementation. The implementation can be chosen at run time using the plugin manager from SEAL. The pi_aida Histogram would satisfy the requirement of Gaudi to be unmanaged objects. They have also the advantage, that additional methods requested by users can be easly added extending the AIDA interfaces, without having to wait for a new release of AIDA. For the moment Grigori will use AIDA_ROOT from PI to replace HTL as AIDA implementation. If the need arises to use another AIDA implementation or other services from PI, it will be reconsidered to move to use the pi_aida Histograms directly.


Feeback from Gloria Corti (LHCb) on AIDA interfaces

AIDA interfaces for histograms and profiles are used in batch mode to interface transient histograms. All the needed functionality is there, no particular comments was made. Concerning the other sets of AIDA interfaces, there is no urgent need for LHCb to use them in batch jobs. Tuples, for examples, are used in LHCb in two different ways (through a common interface), as event tag collections and to contain primitive types related to event object data. Presently there is no need now for a change to use the AIDA interface.

There is instead interest in LHCb to use AIDA interfaces in interactive analysis. It is thought useful to have a Python layer of the AIDA interfaces for histograms, including clouds, and data point sets. Although they have not yet tried to use the AIDA clouds so far but from the discussion on their features during our meeting they seem rather attractive, especially when coupled with their visualization possibility in HippoDraw. It is desired to have a connection from the data object to the plotter (e.g., as the PI team has prototyped with the PyRoot and PyHippo plotters).

LHCb has not yet decided on a graphics tool for displaying statistical quantities. Prototype work on integration based on Python between the AIDA interfaces and existing plotting tools, such as Root (using PyRoot) or HippoDraw is found very interesting. In that context it is found useful to have a notification mechanism between the canvas and the AIDA objects. For example when the histogram is updated the plotter could updated automatically or following a particular strategy (for example every n events). Clouds are found particular attractive to use in an interactive session. Having the possibility to visualize them as a dynamic histogram using hippodraw is found to be rather useful.

Having an AIDA interface for fitting is considered to be of a lower priority at present, as this can be done now using interface provided by the graphics tools (Root, HippoDraw). For more complex fitting requirements at a later stage an independent fitting component working with all data types and the plotting facilities would probably be useful.


andreas pfeiffer
Last modified: Sun Oct 12 16:35:22 CEST 2003