Click here to see the transparencies of his talk. (Note: This is a PDF file. If you do not have the correct plug-in for Netscape, save it and read it with acroread ).
The main problem he encountered was that he couldn't use STL (to build containers and iterators for the AlephObjects). This is because the HP compiler CC does not support STL, and the new aCC compiler would, but will only be supported by Objectivity/Db version 5, which is still not out, but should come soon. So for the moment he sticks to simple variable length arrays (just pointers), looping over it with a for-loop. Dirk suggest to write some simple iterator class which could do the job for the moment. He could help there.
The advantage of copying everything is that Objectivity is decoupled from the rest (in fact, BABAR is doing something similar), and it could be faster if a lot of data are accessed very often (per event). In this case, the cache handling is not done by Objty. Another advantage is flexibility, in the sense that one can easily change the definition of transient classes and even change the content of objects without altering the content of the database.
Guenther proposes to do some simple performance tests on the database now, since we still have few objects, so changing the code is fast and simple. One should compare copying the data with accessing the data via ooHandles from the transient object. Giuseppe will try to do that.
Another problem which has to be studied is the implementation of links from the EFOL bank to the original Track, ECAL, HCAL banks etc.
Dieter reminds that it should be possible to run over RECO and MCTRUTH. The interface should stay the same. So one could introduce derived classes such as AlephRECOTrack and AlephTRUETrack, and do the correct looping according to some switch.
Dirk mentions that he has written some code for compression of VArrays.
Generally it is agreed on that it is better to do the analysis with transient objects, not write AlephObjects to the database. The only thing which should go there in addition are tags.
The next thing which should be written asap is some AlephSession class!! Dirk promises to give some talk on the classes available in the LHC++ libraries. There are many goodies, such as automatic container handling.
The stuff written by Giuseppe might appear as a new release.