The "core" of Gaudi v9 has been
added to our CVS repository. The checkout package is GaudiSys
v9r0p1.
What's New in Gaudi v9?
Short Answer:
A bit.
Long Answer:
Here's a list:
A new external package is used by Gaudi, AIDA
1.0. It is a simple package, it just contains an interface for
histograms right now. This external library is now available from
SLAC ftp: ftp-glast.slac.stanford.edu/glast.u05/extlib/aida
The GaudiSys checkout package will retrieve a new interface package
called AIDA.
Upgrade to CLHEP 1.7.0.0. Also available via SLAC ftp:
ftp-glast.slac.stanford.edu/glast/u05/extlib/clhep
None of the "default" services are automatically loaded by
Gaudi - rather they are late created if needed. This may require
some modification of calls to access services:
serviceLocator( )->service("name", interface, true)
where true would force creation of the service if it doesn't
already exist.
The Transient Data Store (TDS) has gone through an overhaul.
The DataObject class has been modified - meaning that our classes (in
GlastEvent) derived from DataObject will require at least some minor
changes. i.e. the name parameter is no longer set through the DataObject
contructor.
CLID_Event is no longer defined within Gaudi itself - rather it is
left to be defined in the user's Event.h.
GaudiKernel's AddrFactory.h has been changed - it has been replaced
by an interface: IAddressCreator.h. This change will require
modification to our existing converters.
There is a nice document I am trying to absorb..details
of the Data Store redesign.
Windows
GaudiSys
v9r0p1 and GaudiExamples
v9r0p1
have been built on Windows NT and 2000. Three examples are
running: AlgSequencer, AlgTools, and Properties. See below for
more details about the example programs.
Here are some detailed notes of
what was done to get the source as obtained from the Gaudi
web site to compile - these changes have been applied as patches to
the original import into our repository.
Want your own copy of the new Gaudi to play with? See
this page.
Linux
Builds and runs just fine with gcc 2.91.
Testing now with gcc 3.0.2 and 2.95
Ran into some questions as to how to tell CMT to use a version of gcc
other than the default. Note - this will not work:
cmt broadcast 'gmake CC='/usr/local/bin/gcc-3.0.2' CXX=/usr/local/bin/g++-3.02''
rather one must use the requirements file in GlastPolicy:
macro cc "/usr/local/bin/gcc-2.95.2"
macro shlibbuilder "/usr/local/bin/g++-2.95.2"
macro cpp "/usr/local/bin/g++-2.95.2"
I think this is now working - I've been checking the resulting object
files (see GCC Tricks below) to see what compiler left its tag.
Update: Using the old HTL 1.3.0.1
fails
Tested with gcc 2.95.2 and new HTL 1.3.1.1. We can compile and run
GaudiSys v9r0p1 using 2.95.2.
Now trying gcc 3.0.2 - it fails in GaudiKernel stating:
PropertyMgr.h:72: explicit
specialization in non-namespace scope `class PropertyMgr'
Here is a start of some detailed notes.
GCC Tricks
I was wondering how to check the object files to see what version of
gcc was actually used in the build..So I did a search on www.google.com
and found the following page:
http://gcc.gnu.org/ml/gcc-help/2000-06/msg00016.html
It seems for recent versions of gcc we can do:
strings - objFileName | grep GCC
GaudiExamples
There are 3 functional (on Windows) examples in the GaudiExamples
v9r0p1 package. The rest have been disabled for now...
Please note that to run the examples, the jobOptions file must be passed
in as a parameter. i.e. AlgSequencer.exe home/AlgSequencer.txt
AlgSequencer
Gaudi's Hello World!
Here's the output. Here's
the jobOptions
file, note the included Common.txt.
AlgTools
An example Tool - a small utility that may be made available to the
whole framework - a "light" algorithm.
Here's the output. Here's
the jobOptions
file, note the included Common.txt
Properties
An example that shows how to setup all types of properties.
Simple properties as well as more complex ones, such as an array of
strings. Also shows how to setup bounds on a property. Show
how to access properties of some other routine such as the
ApplicationMgr or from another user defined algorithm.
Here's the output. Here's
the jobOptions
file, note the included Common.txt
There are other examples in this package that will interest us,
specifically, RandomNumber and RootIO. RootIO shows
an example user defined DataObject and Converter. |