The Gaudi
v18r11 Full Release Notes
Gaudi Release Notes
Package: Gaudi
Package Coordinator: Pere Mato, Charles Leggett
Purpose: Gaudi common set of packages
- CORAL_1_6_2
- RELAX_1_1_5a
- castor 2.1.1-9
- dcache_client 1.7.0.16
- ROOT 5.13.04c
Packages Changes
- GaudiPolicy (v6r1):
- Patch #916. Add flags to compile in 32-bit mode even on 64-bit
machines, when slc4-ia32 tag is set (Marco Cattaneo).
- Commented out momentarily the SSE2 flags.
- GaudiPython (v8r12):
- Added __del__ to PyAlgorithm to remove it from
the list of known algorithms of Gaudi. This change allows to reload
modules containing new versions of algorithms. Problem reported by
Ulrich Kerzel (Pere Mato)
- fix a major problem with AppMgr::config
method: the lists of DLLs&ExtSvc must be APPENDED (and not
assigned) (Ivan Belyaev).
- some decoration (Ivan
Belyaev):
- add new class iJobOptSvc
for easy handling of properties (import from Bender)
- add new method ApMgr::optSvc
- accessor to iJobOptSvc
- GaudiPoolDb (v2r9):
- patch #921 (Markus
Frank):
- update PoolDbCnvSvc::createConverter to take into account
specialized converters.
- Update test to use specialized converter for MyTrack.
- Set default agelimit in PoolDbCacheSvc back to 2.
- GaudiExamples (v18r11 - branch v18r7b):
- fixed cmt.py to use "os.environ" instead of "os.putenv". This
is needed since we are using the variable GAUDIEXE inside the
runexamples.py script (and not in its subprocesses). GAUDIEXE is set by
GaudiKernel to $GAUDIKERNELROOT/$(tag)/Gaudi.exe (Hubert Degaudenzi).
- fixed valgrind options in runexamples.py. It has to use a tool
and memcheck has been chosen (Hubert
Degaudenzi).
- GaudiKernel (v20r12 - branch v20r9b):
- added environment variable GCCXML_CXXFLAGS=" -m32" for 32 bits
compilation on amd64 machines (with the slc4-ia32 tag) (Marco Cattaneo).
- added environment variable GAUDIEXE which points to the Gaudi
executable (Hubert Degaudenzi).
Externals version: LCGCMT_48
- COOL_1_3_3c
- CORAL_1_6_1
- POOL_2_4_8
- RELAX_1_1_5
- SEAL_1_9_0
- HepMC 1.26.02
- castor 2.1.1-4
- ROOT 5.13.04b
Packages Changes
- GaudiExamples (v18r10 - branch v18r7b):
- Modified the examples in order to use two libraries
(GaudiExamples and GaudiExamplesDict) and
$GAUDIKERNELROOT/$(tag)/Gaudi.exe (Hubert Degaudenzi)
- Patch #736. Modified the FastContainers example to be more
readable and to show the usage of the three ways of adding a new object
to the containers (Marco
Clemencic).
- Changed cdiff.py in order to use the difflib python module.
Allows to avoid the use of cygwin on windows to compute the diffs
between the output log file and the reference log file (Hubert Degaudenzi).
- GaudiKernel (v20r11 - branch v20r9b):
- Modified rootmapdump.py in order to match any file beginning with "rootmap" and not
only the "rootmap" filename. This is the same matching behavior as the
one in ROOT itself (Hubert
Degaudenzi).
- Patch #870. Added operator << for StatusCode (Ivan Belyaev)
- Patch #736. Improvemts to TransientFastContainer. Now it allows
to use for new objects the default constructor, the copy constructor
and a user specified constructor (via placement new) (Marco Clemencic).
- GaudiPython (v8r11):
- Corrected problem with properties having as value a Python
variable name. The error was that eval() was evaluating the value of
variables defined locally or globaly. Problem detected by Thomas with
variable ROOT (Pere Mato)
- Adapted config() to deal with new JobOptions that are always
strings. Detected by Thomas when running Panoramix from Python (Pere Mato)
- Add default initialize() method in PyAlgorithm. This fixes bug
#20957 (Pere Mato).
- GaudiSvc (v14r12 - branch v14r10b):
- Patch #882. The proposed patch fixes the problem with the
unique Parser Catalogue for reading of multiple *.opts files. The fix
does not affect at all the "regular" Gaudi job, but it is vital for
GaudiPython-based applications, e.g. Bender, where the reading of
several configuration *.opts-files is possible (Alexander Mazurov).
- Patch #895. Add new functionality for Particle Property
Service: (Ivan Belyaev)
- Modified to add possibility to redefine properties of
existing particles and to read additional files. New property
"OtherFiles" (default is empty vector) is introduced. Service parses
additional files after the main one
- Add possibility to modify only certain particles through the
new property "Particles"
- fixed the random engine declaration in the GaudiSvc_load.cpp
file (Hubert Degaudenzi).
This version is a rebuilt against POOL 2.4.7b. Please have a look at
the v18r8 release notes for more details.
This version is a branch from the v18r7 release version.
Packages Changes
- GaudiKernel (v20r10 - branch v20r9b):
- Patch #839: enhancements in the JobOptions/Property part.
Please have a look at the release notes of the package (Ivan Belyaev & Alexander Mazurov).
- Added the rootmapdump.py script in the new scripts directory.
Allows the dump of the rootmap files in the LD_LIBRARY_PATH. It is also
able to check for duplicate entries (Hubert Degaudenzi).
- Patch #863. Add the function System::setEnv to set an
environment variable. Setting the variable to "" results in removing it
from the environment (same behavior on windows and linux). The
parameter overwrite define the behavior in the case the variable is
alredy present (0=no change, 1=overwrite). (Marco Clemencic)
- GaudiSvc (v14r11 - branch v14r10b):
- The DataListenerSvc
doesn't compile on windows. So it has been temporarily commented out as
well as its example (Hubert
Degaudenzi).
- Patch #839: enhancements and bug fixes to the
JobOptions/Property part (Ivan
Belyaev)
- Patch #863. Add map property "Environment" to ApplicationMgr. Adding a pair
("VARNAME","VALUE") have the result of setting the environment variable
VARNAME to the value "VALUE" before starting any service (except the
message and job option ones) or algorithm. Setting the variable to ""
results in removing it from the environment (same behavior on windows
and linux, see System::setEnv).
If the variable is already present it prints a warning. (Marco Clemencic)
- Patch #881. Modifications for the DataOnDemand service (Ivan Belyaev)
- New properties are added
- "AlgMap" - the
map<string,string>
property for mapping of address in TES and the algorithm
- "NodeMap" -
the map<string,string>
property for mapping of adess in TES and soem predefined data type
- "Prefix" - the
defautl prefix for TES locations, which codul be omitted from TES
location.
- The treatment of "preceding paths" has been modified a bit.
Now for each data location also all upwards directories are
automatically added as "nodes" (if other behaviour for the
particular not is not defined explicitly) of defautl directory type
"DataObject". As a result a bit confusing coupling of some the
algorithms as "node creators" is removed.
- GaudiPolicy (v6r0 - merge
from the v5r25b branch):
- Added the -msse2 and -mfpmath=sse options flags for compilation.
- Use now LCG_Settings for the platform tags (Florence Ranjard)
- Introduced new patterns for future use of the InstallArea. Must be compiled with CMT v1r18p20061003 or
later (Florence Ranjard).
- GaudiAlg (v9r9):
- Patch #861. Add two new options 'RootOnTES' and
'GlobalTimeOffset' to work with Time Alignment events, propagated to
members of a Sequencer and to dependent tools of GAudiAlgorithms/Tools
like the 'Context' property. The value of Context, RootOnTES and
GlobalTimeOffset is printed at the end of the list of algorithms in
GaudiSequencer (Olivier Callot)
- GaudiPoolDb (v2r8):
- New scripts directory to contain the ROOT macro files (.C).
- Patch #855 (Markus
Frank)
- Allow to turn OFF the default usage of GFAL. Property: PoolDbCacheSvc.UseGFAL, default:
true.
- Enforce checking of file GUIDS when opening existing
files Default: GUID match is required. Switch off using e.g.: PoolRootTreeEvtCnvSvc.CheckFIDs =
false;
- Allow to fill and remember a map with bad files, which cannot
be accessed. Removes dramatically printout since the error trace is
only printed:
- once per unaccessible data file
- once per container
Externals version changes (LCGCMT_46e)
- POOL_2_4_6
- ROOT 5.12.00c
- COOL_1_3_2c
- CORAL_1_5_3
- CASTOR 2.1.0-7
Packages Changes
- GaudiKernel (v20r9):
- Patch #817: fixed unnatural behavior for map used in the
JobOptions with the "+=" statement (Ivan Belyaev)
- Correct wrong release of strings allocated by strerror and dlerror in System.cpp (Markus Frank)
- Changed interface IJobOptionsSvc
from pointer to reference to fix bug #18581 overview: Memory leak
due to changed behaviour of the JobOptionsSvc (Pere Mato)
- GaudiSvc (v14r10):
- Fix for the ToolSvc::create that didn't return a
StatusCode::FAILURE if the AlgTool::setProperties fails. Now the job
should stop cleanly (Ivan
Belyaev).
- Creation of the DataListenerSvc service. DataListenerSvc
implements the declareInfo methods from IMonitorSvc (without the
histogram and pair methods which have empty implementations) and the
handle method from IIncidentListener to provide monitoring of variables
within a GAUDI algorithm (Ben
King).
- Patch #816. Fix for "-=" to work nicely with new Job Options.
For details, please have a look at the package release notes (Alexander Mazurov)
- Patch #796: (Markus
Frank)
- Improve output stream:
- If intermediate leaves in the TES are not given in the
ItemList (or OptItemList) then they are automatically added: e.g.
"/Event/MC/Particles" will add: "/Event" (if not already present)
"/Event/MC"
(if not already present)
"/Event/MC/Particles"
This behaviour can be switched OFF by setting
the options OutputStream.VerifyItems
= false;
- Add optional stream specification SHARED='YES' to be
passed
directly to the conversion service for further
usage.
- Do not connect output device if the leaf list is empty
- Remove unnecessary call to setProperties in initialize().
- Create a new output stream PersistencySvc/TagCollectionStream.
See
the header file for further information.
- Implement service remapping in the ApplicationMgr
differing from the default <class-name>-<class-name>
mapping. Option SvcMapping
(vector<string>)
allows to change the default services (EventDataSvc etc.). Option SvcOptMapping allows to enter
additional mappings.
- NTuples and tag collections:
- Remove "endreq" entries and replace them by "endmsg"
- Fix bug in NTupleSvc::isConnected()
- Patch #763. The attached patch encases the library
loading in a try block, and makes it much easier to spot the throwing
of exeception(s) during that phase (Chris Jones).
- Fix bug #18581 overview: Memory leak due to changed behaviour
of JobOptionsSvc(Pere Mato)
- GaudiAlg (v9r8):
- patch #813. Currently in GaudiAlg there
is an option to split up the path used to save the tuple. This is
useful for HBOOK which hads a hard limit, but not for ROOT which does
not. Currently this option is turned on by default. This simple patch
changes the default behaviour to not applying this directory splitting.
It makes the default state better for ROOT, rather than HBOOK (Chris Jones).
- GaudiObjDesc has been removed from Gaudi.
- GaudiExamples (v18r7):
- Added DataListener example. Please have a
look at the service for the details (Ben King).
- GaudiPoolDb (v2r6): Markus Frank, patch #816
- Fix to N-tuple converter when writing
multi dimensional stuff
- Allow conversion service to open files in
shared mode (ie. Files do not
get closed on finalize).
- If file ids cannot be located in the file
catalog, then assume that the
guid is known to GFAL ie <FID>
-> gfal:guid:<FID>.
This release introduces the new options files compiler/parser. It also
uses the new version of ROOT (5.12.00) which is able to open GFAL file.
Externals version changes (LCGCMT_46)
- POOL_2_4_5
- ROOT 5.12.00
- COOL_1_3_2a
- CORAL_1_5_1
- RELAX_1_1_2
- GSL 1.8
- CASTOR 2.1.0-4
Packages Changes
- GaudiKernel (v20r8):
- Patch #748: fixed the recipient of the std::string::find method. It
should not be assigned to int but to std::string::size_type since it
has a different size on 64 bits plateforms (Marco Clemencic).
- Bug #17739. Changed the return value of GaudiMain. Before it
was always returning 0 and now it returns the StatusCode of the
ApplicationMgr in the UNIX command line way (Hubert Degaudenzi).
- GaudiSvc (v14r9):
- The 5-argument method ToolSvc::retrieve
is modified to allow "ToolType:PUBLIC"
( before it allowed "ToolType",
"ToolType/ToolName", "ToolType/ToolName:PUBLIC"). "ToolType:PUBLIC" was wrongly
resolved in type = "ToolType:PUBLIC"
(with correct name "ToolType") (Ivan
Belyaev).
- GaudiAlg(v9r7):
- Improvement of the counters output. Doesn't print the weight
any more if it is trivial (=1) (Ivan
Belyaev).
- Patch #731. This patch allows to set the initial storage of the
TransientFastContainer created via GaudiCommon::getFastContainer.
Incidentally, it also fixes the bug which was preventing
GaudiCommon::getFastContainer to work when the location of the object
does not have the initial root-path (equivalent of "/Event") (Marco Clemencic).
- GaudiKernel (v20r8), GaudiSvc (v14r9), GaudiHistory (v1r5),
GaudiPython (v8r7) and GaudiAlg (v9r7):
- New property parser
installed. It relies on the Boost::spirit
lexer/parser. For details, please consult the GaudiExamples package.
Misc. bug fixes (Alexander
Mazurov & Ivan
Belyaev).
- GaudiExamples (v18r7):
- Changed the backend for python examples from HBook to ROOT (Hubert Degaudenzi).
- Inserted example which demonstrated the possibilities of the
new
property parser/compiler (Ivan
Belyaev and Alexander
Mazurov).
This release is basically a
bug fix
release. It introduces almost no new feature but uses also the
new version of ROOT and the new version of POOL.
Externals version changes (LCGCMT_44)
- POOL_2_4_3
- COOL_1_3_2a
- CORAL_1_4_3
- RELAX_1_1_1
Packages Changes
- GaudiKernel (v20r7)
- Patch #727. Fixed a compilation problem on Win32 after using
std::map instead of hash_map in GaudiUtils::HashMap
(Marco Clemencic).
- Patch #725. Fixed a warning on Win32 (Marco Clemencic).
- Patch #723. Redefines the unit "pascal" to "Pa" to avoid a name clash that
causes a compiler warning on on Windows in SystemOfUnits.h (Marco Cattaneo)
- Added templated SmartRefVector constructor with first and last
iterator pointers as arguments (Vanya
Belyaev)
- GaudiExamples (v18r5)
- Added FastContainers example (Marco Clemencic)
- GaudiObjDesc (v9r6)
- Patch #726. Removed a work-around introduced with patch #716
that is not needed with ROOT 5.11 (the change of default allocator for
contained objects) (Marco
Clemencic).
- GaudiPoolDb (v2r4)
- Patch #724. Do not use anymore SEAL plugin manager for
IOHandler installation, since this causes malicious interference with
Cintex when used from the python prompt. The IOHandlers get directly
installed in PoolDbCacheSvc::initialize (Markus Frank).
- GaudiPython (v8r6) - Pere
Mato
- Added changes from Radu Stoica:
- More protections in iDataService
- Introduction of CallbackStreamBuf to be implemented from
Python to catch stream output.
Externals version changes (LCGCMT_43a)
- POOL_2_4_1
- COOL_1_3_1
- CORAL_1_4_2
- RELAX_1_1_0
Packages Changes
- GaudiSvc (v14r8)
- Patch #720 (beta test).
Added a specialized DataSvc
for TransientFastContiner:
FastContainersSvc.
Lifetime of
the objects in this store is the same of objects in DetDataSvc. Each BeginEvent incident triggers a clear() of all the instances of
TransientFastContinerBase
(Marco Clemencic).
- Removed legacy compiler code in the MsgSvc.
- Patch #707 (Markus
Frank)
- Suppress Application manager startup banner if
property: ApplicationMgr.AppName
= "";
- Allow to attach runables and event loop managers with
different type/name combinations. (as it always was for the
external services....)
- Inserted ATLAS feature INamedInterface.
- PropertyCompiler.cpp:
fixed to allow for a 'f', 'F', 'l', 'L', 'u', or 'U' at the end of a
numerical value. Reported by Wim Lavrijsen (Pere Mato).
- GaudiKernel (v20r6)
- Patch #720 (beta test).
Added TransientFastContiner<T>
(and related helper classes TransientFastContainerBase
and DefaultObjectCleaner<T>).
The new container does its own memory management, recycling the objects
not used and not deleting them when it is cleared (just reset an
internal counter) (Marco
Clemencic).
- Added PhysicalConstants.h
and SystemOfUnits.h (from
CLHEP) in GaudiKernel. The constants and units are in the Gaudi::Units namespace.
- Patch #715. Added boost allocator wrapper (Marco Clemencic).
- Patch #719. Added 2 functions to make the UpdateManagerSvc work safely in
multi-thread environment. They allow to block the activities of
the service while interacting with it (Marco Clemencic).
- Clean up of the legacy lines of code for obsolete compiler
version (before gcc 3).
- Patch #705. The default hash functions is extremely expensive
for integers. This causes extremely poor performaces for the standard KeyedContainer<>. The
patch introduces efficient specializations of Hash<> for int, long and
long long (and unsigned) (Marco
Clemencic).
- Inserted ATLAS feature INamedInterface.
- GaudiAlg (v9r6)
- Patch #720. Added to GaudiCommon
few commodity functions for FastContainersSvc.
fastContainersSvc()
returns a pointer to the FastContainers
Transient Store (creating it if needed). getFastContainer<T>(location)
returns a pointer to the TransientFastContainer<T>
located at "location". If it does not exist, it is created and
registered (Marco Clemencic).
- GaudiAud (v7r1)
- Inserted ATLAS feature INamedInterface.
- GaudiExamples (v18r4)
- Removed legacy lines of code for old compilers (before gcc 3)
- GaudiObjDesc (v9r5)
- Patch #716. Added support for custom allocators. The type ("NO"
or "BOOST") can be chosen via an attribute of the XML tag class
(allocator) or via a command line option to G.O.D. (that can be used to
override the XML selection) (Marco
Clemencic).
- Turning on doxygen documentation for generated typedefs (Stefan Roiser)
- GaudiPolicy (v5r24)
- Added slc4_ia32_gcc345 tags.
- GaudiPython (v8r5)
- Clean up of legacy lines of code.
- RootHistCnv (v9r10)
- Changed "Athena Trees" to "Gaudi Trees" titles.
Externals version changes (LCGCMT_42b)
- ROOT 5.10.00c
- POOL_2_4_0
- COOL_1_2_9
- CORAL_1_3_1
- RELAX_1_0_1
- SEAL_1_8_1
Packages Changes
- GaudiPolicy (v5r23)
- removed the obsolete Solaris platform tags.
- changed default optimization for fflags (Fortran) to "
-O2".
- added
slc3_amd64_gcc344 tags and slc3_ia32_gcc344.
- remove
$(use_linkopts) from pattern <library>_shlibflags
- remove
rh* and slc3_gcc323 tags
(not the slc3_ia32_gcc323 tags)
- GaudiKernel (v20r5)
- modified the returned values of the Auditors
beforeExecute/afterExecute (etc) to be "
void" instead of
"StatusCode::SUCCESS".
- patch #691. Add support for objects in N-tuples. Note: This
only works for
NTuple::Item. NTuple::Array
and NTuple::Matrix is
__NOT__ supported for objects. If you need this functionality store an std::vector<Object*>.
See
GaudiExamples/POOLIO/EvtCollectionWrite
for an example of the usage (Markus
Frank).
- Added GaudiMain.cpp in the library (Markus Frank).
- patch #668. Fix retrieval of error string in
System::getErrorString().
The routine caused a core
dump on linux when
dl_error() returned NULL (Markus
Frank).
- patch #678. It has been reported that MS implementation of
hash_map
is extremely slow. The idea is to use std::map
instead (which
is faster than hash_map on win), while we investigate to find a better
solution (Marco Clemencic).
- fixed windows compilation warning (bug #14852).
- GaudiSvc (v14r7)
- Fix memory leak in
EventSelector::releaseContext:
context
object was not always deleted (Markus
Frank).
- GaudiPoolDb (v2r3) - Markus
Frank
- Add property AgeLimit to the PoolDbCnvSvc. This allows to defer
the closing of databases.
- Tests: update + removal of CLHEP dependency. Change options to
use the precompiled dictionaries from Relax.
- Remove patches for ROOT 3.
- Modify printout when unable to load dictionary shared library
- Adapt tests in requirements to use Reflex from ROOT
- GaudiAud (v7r0)
- replaced the returned StatusCode with void for
before*/after*
public methods of auditors. Interface changed.
- GaudiObjDesc (v9r4) - Stefan
Roiser
- introducing two new typedefs
typedef KeyedContainer<T,Containers::HashMap>
Container;
typedef KeyedContainer<const
T,Containers::Hashmap> ConstContainer;
- These macros are generated in addition to the
typedef KeyedContainer<T,Containers::HashMap>
Ts;(Ts being the the plurial of the class name).
- These macros will be created if a class directly inherits from
KeyedObject
or if the keyedContTypeDef attribute of <class>
is set to "TRUE"
- fix for destructor implementation. An empty code element will
result in an empty inline implementation
- GaudiAlg (v9r5)
- changed the return value of the
{GaudiAlgorithm,GaudiTool}::put
from StatusCode::SUCCESS to void.
- patch #669: (Chris
Jones)
- Remove boost from public interface (includes in GaudiAlg
directory)
- Implement proper postfix and prefix
++
and -- operators to GaudiAlg::ID
- patch #665. Make the counter printing by default turned on in
GaudiCommon. make the counter number summary obey the same job option
(Chris Jones).
- fix -no_auto_import statements in the requirements file. Remove
extra semicolon producing warnings with GCC 3.4.4.
Global Changes
- First version released using ROOT::Reflex.
- A new interface package Reflex has been created
- It define a new cmt pattern reflex_dictionary
which replaces the old cmt pattern lcg_dictionary
- The "--split" and "--reflex" options are therefore now obsolete.
- The dictionary libraries for the common libraries are now
provided by a new package: RELAX (CLHEPRflx, HepMCRflx, MathRflx,
STLRflx, ReflexRflx). They replaced the old ones provided originally by
SEAL.
- Use of the macros defined in
GaudiKernel/DeclareFactoryEntries wherever possible in the Gaudi
packages.
Externals version changes (LCGCMT_41)
- ROOT 5.08.00b
- POOL_2_3_0
- SEAL_1_8_0
- COOL_1_2_7
- CORAL_1_2_1
- Reflex (from ROOT 5.08.00b)
- RELAX_0_1_0
Packages Changes
- GaudiKernel (v20r4)
- Added new program genconf to generate the python configuration
file for component libraries (Pere
Mato)
- Fix bug #14665 overview: IID_IAlgorithm and IID_IConversionSvc
Conflict (Pere Mato)
- Moved some class in the dictionary of GaudiPython to the
dictionary in GaudiKernel (Pere
Mato)
- Added class Gaudi::Time (based on seal::Time). Updated
interfaces IDetDataSvc, IValidity and IUpdateManager in order to use
the new class. Modified dictionary.h and dictionary.xml in order to
produce dictionaries for Gaudi::Time (Marco Clemencic).
- GaudiObjDesc (v9r3)
- Fix allowing tospecify additional flags to be passed to gccxml,
by defining the macro use_obj2dict_gccxmlflags (Marco Cattaneo)
- GaudiPI (v1r0)
- refactoring of the #include statements in order to conform to
the Gaudi way: #include "GaudiPI/..."
- Removed XML files and removed dependency to Expat (Pere Mato)
- GaudiPolicy (v5r22)
- added $(<library>_use_linkopts) into the macro
<library>_shlibflags for various patterns. This fixes the problem
with the -import option not taken into account when building libraries
(visible on windows only) (Pere
Mato)
- GaudiPython (v8r3) - Pere
Mato
- moved classes in dictionary to GaudiKernel dictionary
- gaudiconf.py: introduced the use of __new__ to avoid
duplication of configurables
- gaudimodule.py: added iteration catabilities to
ObjectContainedBase (all KeyedContainers)
- tests: updated to use KeyedContained instead of
ObjectVector
- inserted workaround to match the correct naming of dictionaries
on Linux
- GaudiSvc (v14r6) - Marco
Clemencic
- patch #659. Modified POOLIO and RootIO examples replacing
ITime+TimePoint with Gaudi::Time .
- patch #648. Currently, an incident listener cannot stop the
execution of a program even if it throws an exception. In some cases it
is important to exit if a problem occurs, to avoid hard to debug
problems. A simple way to allow an incident listener to stop the
program is to use the IEventProcessor::stopRun() method.
Externals version changes (LCGCMT_40a)
- Python 2.4.2
- ROOT 5.08.00
- POOL_2_2_7
- SEAL_1_7_9
- COOL_1_2_7
- CORAL_1_2_1
- PI removed (replace by GaudiPI)
Packages Changes
- GaudiPI (v0r6)
- GaudiKernel (v20r3)
- added the UpdateManager interface (Marco Clemencic)
- Fix problems of KeyedContainer when using keys with explicit
constructors (Markus Frank).
- GaudiAlg (v9r3)
- added registration of the current instance to the UpdateManager
as a consumer for a condition in GaudiCommon (Marco Clemencic).
- remove the member functions of class Tuples::TupleObj for
filling the N-Tuple with CLHEP objects (3D and 4D-vectors) (Vanya Belyaev).
- GaudiPython (v8r2) - (Pere
Mato)
- Changed requirements to be able to put temporary libraries
ahead in the LD_LIBRARY_PATH
- Added PyCintex.py as a temporary basis
- Changed the order when loading the dictionaries
- Minor changes to make python GaudiExamples to work
- HbookCnv (v14r6)
- Modification to allow creation of huge hbook ntuples.
100% backward compatible (Vanya
Belyaev)
- RootHistCnv (v9r7)
- replacement of the PI dependency with the GaudiPI dependency
- GaudiSiteSvc (v1r4) - (Hubert
Degaudenzi)
- added the flag STAGE_DEFERRED to the stagein command in order
to
allocate the disk space only when the tape is staged on the robot.
- added the flag STAGE_NORETRY to the stagein command in order to
cure the hang of the system when a medium error occurs.
- GaudiExamples (v18r1)
- added the examples from the python directory (Vanya). Added the
corresponding reference files (.pyref).
- added new (sub)example which illustrate how to define
effective custom columns for N-Tuple. In this example filling N-Tuple
with "dublets" and "triplets" are illustrated, where "dublet" is
std::pair<double,double> and "triplet" is
std::pair<std::pair<double,double>,double> (Vanya Belyaev)
First data format
incompatible
series. The
hacks which allowed to read back
the old format (RTTC) have been removed.
Packages Changes
- GaudiKernel (v20r1)
- Added 3 new classes to replace the HashTable and the hacks in
stl_hash.h: GaudiUtils::Map, GaudiUtils::Hash and GaudiUtils::HashMap (Marco Clemencic)
- Change output level data member in Algorithms and AlgTools
from int to IntegerProperty, and add a non-const access method for this
property. Allows uses to attach callback handle methods to this
property. (Chris Jones)
- Added new methods to IAlgorithm: isInitialized(),
isFinalized() and isExecuted()
- Fixed problems of KeyedContainer when using keys with
explicit constructors.
- Added new class GaudiUtils::VectorMap that implements an
associative vector (Vanya Belyaev)
- Converted the Gaudi class in Bootstrap.h into a namespace.
Needed as namespace.
- GaudiAlg(v9r2)
- Adapted to use the new classes (GaudiMap, GaudiHash,
GaudiHashMap) replacing HashTable and the hacks in stl_hash.h (Marco Clemencic)
- Added fix to GaudiCommon to allow the changes in the
messaging levels to be correctly picked up. Attaches a callback
function to the OutputLevel property of the Algorithm or AlgTool base
classes
- Added fix obscure crash when using profile histograms in
tools, with literal IDs and multiple sub-directories. Fixed by cleaning
up the finalisation counting of histograms.
- GaudiObjDesc (v9r1)
- Merged in some more changes from the branch
- MsgStream overloading for public enum types (by default)
- Namespace LHCb - all event classes and namespaces live in the
namespace LHCb
- Renamed container typedefs for classes inheriting from
ContainedObject
- Only one typedef (from vector), the name has changed from
<Class>Vector to <Class>es (plural)
- The typedef for lists has been removed
- Removed obsolete xml attributes
- GaudiSvc (v14r4)
- Eventloop calls resetExecuted() to all "known" algorithms
instead to only the topAlgs. This was needed to be able to call
sequences by the DataOnDemand service.
- GaudiPython (v8r1)
- Minor changes. Removed unneeded dictionary entries (not
needed with PyROOT).
Externals version changes (LCGCMT_38)
- ROOT 5.06.00
- POOL_2_2_4
- SEAL_1_7_6
- COOL_1_2_6
Minor Changes
- GaudiKernel (v20r1)
- added the transient state to the refCount and hasKey Methods of
KeyedObject in the dictionary_rflx.xml selection file (Markus Frank).
- removed obsolete files GaudiKernel/KeyedDictionary.h and
GaudiKernel/SealDictonary.h (Marco
Cattaneo).
- GaudiSvc (v14r2)
- bug #12556. fix behavior for the "-=" of the property compiler.
Now only issues a warning if the keyword to be removed is not in the
list. Before it was stopping the job (Patrick Koppenburg).
- modified requirements file for future use of the new package
GaudiPI.
- RootHistCnv (v9r6)
- modified requirements file for future use of the new package
GaudiPI.
- GaudiObjDesc (v8r2 branch v8r1b)
- Add "ioname" hack to lcgdict selection xml file, to be picked
by cintex. Needed to read event classes written with old GOD generated
dictionaries, where attribute names are not prefixed by "m_". This hack
must be removed before writing large amounts of new data and it is
sitting in a different branch (v8r1b) (Marco Cattaneo).
- GaudiPython (v8r0)
- Changed package to based it with the Reflex dictionaries
and PyROOT (part of ROOT). The new package uses the module
PyCintex that interfaces Reflex to CINT, which is what PyROOT uses to
provide the generic Python interface (Pere Mato).
Externals version changes (LCGCMT_37c)
Changes
- few fixes in GaudiObjDesc to accomodate new reflection system
(Reflex)
Externals version changes (LCGCMT_37b)
- COOL_1_2_4, MathLib_1_0_0
- PI_1_3_6, POOL_2_2_1, ROOT 4.04.02g
- SEAL_1_7_3
Changes
- GaudiAlg (v9r0)
- patch #493. Add a jobOption 'GlobalTiming' (bool) to the
SequencerTimerTool. If set 'true', this forces 'measureTime' for all
GaudiSequencer. Default is false. This is a way to get an indented list
of the algorithms used in a job (Olivier Callot).
- GaudiAlgorithm and GauidTool classes gets the new functionality
for generic statistical counters (Ivan Belyaev).
- Few technical changes to improve the overall flexibility
and the control for printout (Ivan
Belyaev).
- Few technical reshuffling in between public/protected and
private interfaces for simplicity of building dictionaries (Ivan Belyaev).
- GaudiAlg (v9r1)
- Introduction of support for profile histograms and also the
introduction of common code for the tools and algorithms (Chris Jones).
- GaudiExamples (v17r0)
- Patch #505. New examples for GaudiExample package to illustrate
new features in GaudiAlg and GaudiPython packages. The detailed
description of new features can be found in doc/release.notes file (Ivan Belyaev).
- Add algorithm GaudiHistoAlgorithm to the src/Histograms
example. Illustrates the use of the GaudiHistoAlg base class (Chris Jones).
- Update TupleAlg example algorithm to illustrate the use of both
numeric and literal IDs (Chris
Jones).
- Patch #518. New python example to access Event Tag Collections
form python. As input the "pseudo-DST", created by C++-example
EvtColsEx (see patch #517) is used (Ivan Belyaev).
- GaudiKernel (v20r0)
- patch #476. Overload for the MsgStream::operator <<
for StatusCode to cure failed compilation of some Reflex dictionaries (Stefan Roiser).
- patch #445. Move basic dictionaries from GaudiPoolDb to
GaudiKernel (Markus Frank).
- gccxml inputs in new subdirectory dict
- output id in a dictionary DLL called "GaudiKernelDict"
- Reflex dictionary produced in parallel: "GaudiKernelRflxDict"
- patch #502. Minor polishing of Stat and StatEntity classes to
improve their functionality (in absolutely backward compatible way) (Ivan Belyaev).
- added 'long long' format in the instantiation of SimpleProperty
and SimplePropertyRef templates.
- Changed CLID from "unsigned long" to "unsigned int" to satisfy
the new POOL 2_2_0 which uses reflex.
- GaudiPolicy (v5r21)
- added slc3_ia32_gcc323_cov tag for coverage test. To be used
along with gcov or lcov
- added slc3_ia32_gcc323_pro tag for profiling. To be used along
gprof or kcachegrind.
- added dependency of the component library on the linker library
(when it exists) (Pere Mato)
- HbookCnv (v14r4)
- fix for the problem of the overflow of the 2D histograms.
HbookCnv was producing wrong numbers for overflows in N/W/S/E summing
up the whole row/column (Stefan
Roiser).
- HbookCnv (v14r5)
- Update Histogram and NTuple converters to reassign IDs if a
non-numeric ID is found. Reassigned IDs start at 1001 and increment
each time. If subsequently, an ID is found (in the same directry)
that corresponds to one of the reassigned IDs, then that ID is also
reassigned (This only occurs if a mixture of numeric and non-numeric
IDs is used, which is probably rare). A warning is issued for all
reassignments (Chris Jones).
- RootHistCnv (v9r5)
- patch #506. Creating H2D and H3D histograms (function
createPersistent) was creating wrong values for weights in some cases.
This patch removes all the implementation code and calls the Aida Root
histogram converter (from pi) instead (Stephan Roiser).
- GaudiPoolDb (v2r0)
- Multiple changes. Remove dependency from POOL persistency
service. Adapt to ROOT 4 using reflex (Markus Frank).
- GaudiPython (v7r0)
- patch #504. It is mainly the extension of GaudiPython to
incorporate C++ classes from GaudiAlg package. These changes includes
the resuffling of existing lines to allow use them outside GaudiPython
New module python/GaudiAlgs.py provides 3 base classes (python versions
of GaudiAlgorithm, GaudiHistoiAlg and GaudiTupleAlg classes) For
detailes description of new features see doc/release.notes file (Ivan Belyaev).
- patch #512 and #516. Modifications for updated GaudiAlg to
incorporate very attractive feature: "universal" (numeric or
alphanumeric) histogram/ntuple identifier, introduced by Chris Jones
into GaudiAlg (Ivan Belyaev)
- GaudiObjDesc (v8r0)
- Move dictionary generation from Reflection to Reflex. GOD now
produces header files with proper includes and instantiations of
templated classes plus a selection.xml file which will be passed to the
SEAL lcgdict command to generate dictionary source code (Stefan Roiser).
No externals version changes (LCG_35)
Minor Changes
- GaudiPython (v6r13)
- gaudimodule.py: removed 'GaudiDb' from the list of DLLs (Pere Mato).
- getComponentProperties(): changed the order of initialization
of AppMgr (Pere Mato).
- GaudiSvc (v14r0)
- use TimePoint instead of ITime* (should be faster) and few
fixes (Marco Clemencic)
- Implementation of an output stream doing a shallow copy of the
main input file identified by it's dbase set in /Event. /Event may be
overwritten by ItemList[0]. Also sub-trees may be written for
interactive analysis, by specifying several sub-trees in ItemList.
Otherwise identical behavior to OutputStream (Markus Frank).
- Explicitly finalize each stream after usage. It turns out that
for several thousands of input files even the properties allocate
several MBytes of memory (found by Niko during LHCb-RTTC) (Markus Frank).
- The property compiler now supports the removal of an option
(-=) (Patrick Koppenburg)
- GaudiObjDesc (v7r4)
- adding template support for methods (attribute template). No
dictionaries for templated methods are created (if needed use lcgdict) (Stefan Roiser).
- new <bitfield> attribute "exclusive" triggers inclusive
or exclusive setting of the bitfield. Fix for bitfield check-methods,
bit to check shifted into right position (Stefan Roiser)
- GaudiAlg (v8r9)
- New data member 'm_context' and public accessor 'context()' for
GaudiAlgorithm and GaudiTool, a string which is passed from
GaudiSequencer to created GAudiAlgorithms, or to GaudiTools created by
a GaudiAlgorithm or GaudiTool. If the value is non empty, it is printed
in the base class constructor and available as early as in the class
constructor (Olivier Callot).
- New method to ISequencerTimerTool : int indexByName(
std::string ). This returns the index of the timer with that name.
Leading and trailing spaces are ignored. If not found, -1 is returned.
This can be used to get the time spent on the current event by another
algorithm, using 'lastTime( int )', for monitoring purpose (Olivier Callot).
- GaudiKernel (v19r3)
- modifications for the new service StagerSvc. Added IStagerSvc
and a new incident "EndStream" that will trigger the end of the
processing of one file (Hubert
Degaudenzi).
- GaudiExamples (v16r3)
- added example for the Stager Service (Hubert Degaudenzi)
- GaudiSiteSvc (v1r0)
- new package import. Added the StagerSvc. Will only be built if
CMTSITE is set to
CERN. The function of this service is to stage in advance a set of
CASTOR files (Hubert Degaudenzi).
Externals version changes (LCG_35)
- CERNLIB 2004, ROOT 4.04.02
- SEAL 1.6.3, POOL 2.0.7, PI 1.3.3
Minor Changes
- GaudiKernel (v19r2)
- Added const qualifiers to function members of the IValidity
class (Marco Clemencic)
- Added path access to SmartRef (Marco Clemencic)
- GaudiSvc (v13r4)
- Added fix to avoid an endless loop if an environment variable
doesn't exist in the options file (Pere Mato)
- Fixed bug #8498 overview: cannot use the same file twice as
input to EventSelector.EventSelector/EventSelector.cpp: Added a warning
when the input file is already in the list and continue. (Pere Mato)
- Fixed bug #5476 overview: Gaudi crashes when having 2 topalgs
with the same name. ApplicationMgr/MinimalEventLoopMgr.cpp added extra
addRef(). (Pere Mato)
- GaudiExamples (v16r2)
- Added example for Vanya's extensions of TupleAlg (Ivan Belyaev).
- GaudiAlg (v8r8)
- Extensions of the TupleAlg algorithm. Please have a look at the
release notes of the package. (Ivan Belyaev)
- Change the time normalisation in SequencerTimerTool: Default is
not to normalise, i.e. to print measured time, but we always print the
value of the normalisation factor, now compared to 2.8 GHz Xeon (Olivier Callot)
Externals version changes (LCG_34)
- CERNLIB 2004, ROOT 4.03.04a
- SEAL 1.6.2, POOL 2.0.1, PI 1.3.2
Minor Changes
- GaudiKernel (v19r1)
- Removed obsolete interface files
- GaudiSvc (v13r3)
- Added AIDATupleSvc (Manuel
Domenech)
- Add AppName and AppVersion properties to
ApplicationMgr to print a welcome message using their value
- GaudiExamples (v16r1)
- added CppUnit in the requirements file
- added "ApplMgr.appName=GSLTools" to test the renaming of
the application manager with GSLTools.exe.
- added AIDATuple examples:
- to write Tuples: AIDATupleWrite.exe
../options/AIDATupleWrite.opts
- to read Tuples: AIDATupleRead.exe
../options/AIDATupleRead.opts
- GaudiAlg (v8r7)
- removed memory leaks from GaudiTool and GaudiAlgorithm finalize
methods (Ivan Belyaev and Chris Jones)
Externals version changes (LCG_33)
- CERNLIB 2004, ROOT 4.03.02, CLHEP 1.9.1.2_spi1
- SEAL 1.6.0, POOL 2.0.0, PI 1.3.0
Minor Changes
- GaudiKernel (v19r0)
- Changed interfaces IAlgManager and ISvcManager: removed
obsolete methods and added getFactory(...)
- System.cpp: applied patch to overcome CXXABI problem (merge
from v17r1)
- Added the interface IAIDATupleSvc.h for the AIDA-based tuple
service.
- ClassID, Algorithm.h and lib/Algorithm.cpp: added
declarations for the AIDATupleSvc.
- GaudiSvc (v13r2)
- EventSelector: Use unmanaged service for sub-event selector.
Sub-event selector management is entirely done by the event selector
itself. This should solve the crashes when opening several files on
SLC3.
- JobOptionsSvc: Added the possibility to print the list of
jobOptions, sorted.
- The line "#printOptions" switches off completely the
printing of jobOptions during their processing, but afterwards print a
sorted list of options, truncated to about 100 characters. Truncation
can be suppressed by adding the keyword 'full' i.e. "#printOptions
full" prints all options.
- Make the "#pragma print on/off" nested, i.e. a counter is
used, incremented by "print off" and decremented by "print on", and
printing of options is done only when the counter is zero.
- The included files (open/return) are printed only if the
print level is zero.
- ToolSvc.cpp(.h): Added catch clauses in initialization and
finalization of tools
- Added AIDATupleSvc to work with tuples using the AIDA
interfaces. Currently suports ROOT and XML persistency.
- GaudiAlg (v8r6)
- TupleObj.h/.cpp: Overcome the problem that CLHEP::Hep3Vector
and HepGeom::BasicVector3D<double> are completely unrelated
classes in the new CLHEP.
Minor Changes
- GaudiKernel (v18r2)
- System.cpp(typeinfoName): removed extra spaces between types
and "*" and "&
- GaudiAlg (v8r5)
- Added #include "GaudiAlg/TupleObj.h"
- Changes in comments to fix Doxygen documentation
- GaudiObjDesc (v7r3)
- lowering getter names of bitfields (as for all other
getters) (e.g. HTL()->htl(), PDRow()->pdRow())
- fix for dictalias when generating info for dictionary fields
- generation of bitfield accessor methods fixed
- added support for transient attribute of <attribute>
element
- fix to not self include the header file after the class
definition
Minor Changes
- Change of CMT version to v1r18p20041201
- Changed to CLHEP 1.9.1.2
- Introduced CLHEP namespace. There is an implicit "using
namespace CLHEP" but does not work 100% of the cases.
Here are some examples where the change is affecting in a non
compatible way:
- Random number engines are called like
"HepRndm::Engine<CLHEP::RanluxEngine>"
- Changed GSL 1.5, ROOT 4.02.00
- GaudiKernel(v18r0):
- Interface IMonitorSvc and changes to base class Algorithm to
support online monitoring.
- Changed IEventProcessor. Added stopRun() to schedule a stop
of the event processing loop.
- System: dynamic libraries with RTLD_GLOBAL and removed
special implementation of type_info (tinfo.cc)
- GaudiSvc(v13r0)
- Implementation of IEventLoopMgr::stopRun() to schedule a stop
of the event loop.
- Added Profile histograms 1D and 2D (from ATLAS). Can only be
saved using ROOT.
- RootHistCnv(v9r4):
- Added profile histogram converters
- GaudiAlg(v8r4):
- GaudiSequencer: Added the option "ReturnOK" forcing the
sequencer to return a good status.
- Changed normalization of the SequencerTimerTool
- Updates to GaudHistoAlg and GaudiHistoTool to add 2D
and 3D histograms
- Various improvements to the doxygen comments
- Downgrade the warning messages about histogramming or
ntupling turned off to debug level
- GaudiObjDesc(v7r1)
- New redesigned package using python scripts to generate the
code.
- See release.notes for detailed information.
- New package LCGEnv to set the environment for LCGCMT
Minor changes
- GaudiKernel (v17r0)
- Algorithm.cpp: added setFinalized() at the end of of the
finalization to avoid doing it more than once.
- Service.cpp: added protection on accessor msgSvc() for the
MessageSvc itself.
- Changed IAlgManager interface.
- Added initializeAlgorithms() and finalizeAlgorithms()
- Removed declareAlgCreator()
- Added optional argument to createAlgorithm() to tell if the Algorithm
should be managed
- New class ServiceLocatorHelper used to implement service
methods in Algorithm.(h,cpp), Service.(h,cpp), AlgTool.(h,cpp),
Converter.(h,cpp)
- ISvcLocator.h: new method service<T>(type, name, T*,
bool) to
create/retrieve a non-default instance of a service
- Service.(h,cpp): callback for output level
- GaudiSvc(v12r5)
- Bug fix in CollectionCloneAlg.cpp: typo in float and double
types. It prevented stripping.
- Removed AlgorithmFactory.h(.cpp) and replaced by
AlgorithmManager.h(cpp). AlgorithmManager keeps a list of "managed
algorithms". These algorithms are added into the list when the flag
managed=true on ::createAlgorithm() method. They are initialized and
finalized by the AlgorithmManager. ApplicationMgr.cpp: added a call to
m_algManager->finalizeAlgorithms();
- DataOnDemandSvc.cpp: added managed=true when creating an
Algorithm
- GaudiAlg (v8r2)
- Use the 'filterPassed' result even if the algorithm was
already run and not run a second time, in GaudiSequencer.
- SequencerTimerTool normalizes all the measurement times to a
random number generation loop, which takes 100 ms on a 1 GHz P3. Can be
changed with the option 'shots' = 207500 by default.
Normalisation printed at the finalization of the tool, in the table.
This normalisation can be removed by the option 'normalised = false'
- GaudiExamples (v15r1)
- Added DataOnDemand example
- GaudiPython(v6r9)
- Implementation of AppMgr.config() following the ideas from
Vanya
- Documentation string for some more classes and methods
- Implementation of AppMgr.tool()
- Implementation of AppMgr.setAlgorithms()
- Implementation of iNTupleSvc class and AppMgr.ntuplesvc()
- Implementation of iNtupleSvc.defineOutput( {}, type='ROOT' )
- GaudiPoolDb(v1r10)
- Minor changes due to GaudiKernel change
Minor changes
- LCG configuration 26_2d
- GaudiPolicy (v5r19)
- Removed /D_DEBUG from cppdebugflags_s (for Windows)
- GaudiKernel (v16r2)
- ParticleProperty: Two methods for
particle<-->antiparticle relations
- GaudiSvc( v12r3)
- Added algorithm to merge event collections (
CollectionCloneAlg)
- Update to StoreExplorerAlg to force object access for
ContainedObject(s) in ObjectContainerBase(s)
- Updated description in DataOnDemandSvc header file
- Changes to options for the DataOnDemandSvc.Algorithms
property in the form: 'TYPE/NAME'. If the algorithm name is omitted the
class name will be the instance name.
- Two new methods from IChronoStatSvc are implemented to allow
public run-time inspection of Chrono & Stat counters.
- Modification to fill a proper particle <-->
antiparticle relations for ParticleProperty objects
- GaudiPoolDb (v1r9)
- Removed some false printout about memory leakage
- GaudiPython (v6r8)
- Reworked AppMgr.run() to avoid calling reinitialize(). This
is currently a problem because resets the event stream to the beginning
each run().
- Added protection when algorithm/service does not exists and
no properties are yet defined.
Patches
- GaudiSvc (v12r2p1)
- EventLoopMgr: Release event loop context on finalize
- EventSelector: Finalize properly input streams to release
sub-EventSelector instances
- MinimalEventLoopMgr: Moved resetExecuted() out of the loop of
top Algorithms. The reset executed flag of all Algorithms is done
before starting executing them.
- GaudiPoolDb (v1r8p1)
- PoolDbCnvSvc: Fix memory leaks of leaking tokens on
write/read. Added some printout if memory leaks are suspected.
- PoolDbCnvSvc/PoolDbCacheSvc: Fix error on
DatabaseConnectionPolicy when setting setWriteModeForExisting
- Avoided crash returning from main(). There are problems
unloading certain dictionary libraries. For the time being no fix was
found to cure this problem. In order to keep things running no
dictionaries are unloaded for the time being.
Minor changes
- GaudiSvc (v12r2)
- EvtSelector: Fixed bug that the option
EventSelector.FirstEvent was skipping twice the number of events.
Improved printout with the real event record number.
- ToolSvc: Added the option to switch between "private" and
"public" tools based on the name given to the tool. If the tool name
ends with ":PUBLIC", the tool will be public.
- RootHistCnv (v9r3)
- Added the option to prefix histograms id with "h" when they
are numerical (mandatory for HBOOK). This facilitates the interaction
with them from the ROOT application. (RootHistSvc.ForceAlphaIds = true;)
- GaudiPython (v6r7)
- Moved method AppMgr.loaddict() as module function
- GaudiPolicy()
- Changed pattern library_Softlinks to use macro_append instead
of macro
Major changes
- CMT interface packages taken from LCGCMT
- Interface packages are located under LCG_Interfaces (ex:
use CLHEP v* LCG_Interfaces)
- Some of the packages have been renamed: CERNLIB ->
cernlib, BOOST -> Boost, PYTHON -> Python
- New version of AIDA interfaces package (3.2.1)
- GaudiKernel (v16r0)
- Changed IEvtSelector interface (Carmine Cioffi). Replaced
Iterator by "Context". It is NOT backwards compatible
- Removed typedef IID to InterfaceID to eliminate the clash
with Windows.h IID. It is NOT backwards compatible. It
requires to change IID by InterfaceID.
- MsgStream.h. Added templated MsgStream& operator <<
(MsgStream&, const T&) to handle all cases for which the
standard std::ostream& operator << exists.
- New header file Environment.h extending the System
namespace to handle standard environment manipulations
- Allow for environment resolution in token values - if
requested. Default is backwards compatible
- Implementation of "data on demand". The DataSvc issues
"incidents" by using the IncidentSvc when accessing persistent
data or data faults (configurable by job options).
- ParticleProperty.h: added method pdgID() and setPdgID as
aliases to jetsetID.
- Interface and base classes for HistorySvc and HistoryObjects.
- GaudiSvc(v12r0)
- Updated EventSelector implementation to use new definition of
IEvtSelector interface
- Allow for logical names (environment variables) in file
specifications of OutputStream, EventSelector and
HistogramPersistencySvc
- Added new service DataOnDemandSvc. The DataOnDemandSvc
listens to incidents typically triggered by the data service.
- Added new Service MultiStoreSvc. Transient datastore with
several concurrent partitions all initialized with the same opaque
address, hence the same persistent data content. However when adding
data different algorithms could act on.
- Added new algorithm PartitionSwitchAlg & Tool to switch
e.g. above service in a sequence.
- Added new algorithm SToreExplorerAlg. Explore data stores to
see content. May or may not load objects. Very useful debugging tool.
- Modify SvcManager to accept standard type/name tuples for
Service creation: getService("svc/myinstance", IMyService, createIf)
- In JobOptionsSvc added path separator ':' (';' for Windows)
when processing JOBOPTSEARCHPATH such that it can be build with CMT
with path_append (path_prepend) directives.
- MessageSvc: use callbacks to set properties
- AlgContextSvc: moved from Athena. Determine which Algorithm
is currently executing.
- HistorySvc: Management of HistoryObjects
- GaudiTools
- This package has been removed. The contents ( only the
GaudiTool class) has been merged with GaudiAlg package. The User needs
to change any occurrence of use GaudiTools v*
in requirements files to use GaudiAlg v*
and any occurrence of #include
"GaudiTools/GaudiTool.h" to #include "GaudiAlg/GaudiTool.h".
- GaudiAlg (v7r4)
- GaudiAlgorithm:
- Added exist() to check existence of objects in Gaudi
Transient Store
- Added existDet() to check existence of objects in
Detector Transient Store
- Added getOrCreate() to get or create objects in the Event
Transient Store
- Added the message "The ERROR message is suppressed :
....." when a error is supressed
- GaudiTool:
- Added exist() method to check existence of objects in
Gaudi Transient Store
- Added getOrCreate() method to get or create objects in
the Event Transient Store
- Separated in two libraries: link and component library
- Added CheckForNaN.h header file
- New GaudiHistoTool: The base class for tools, equipped with
histogramming facilities
- New GaudiTupleTool: The base class for tools, equipped with
N-tuple facilities
- Added three new tools: ErrorTool, HistoTool, TupleTool
- GaudiHistory (v1r3)
- New package containing the definition of "History" objects :
JobHistory, ServiceHistory, AlgorithmHistory, AlgToolHistory,
DataHistory
Minor changes and Bug Fixes
- Fixed [bugs #3667] bytes to Mbytes conversion in ProcStats.cpp
- GaudiDb(v10r0)
- Fix in DbGenericConverter: identified links were never
written correctly.
- Upgrade to new EventSelector interface
- GaudiPoolDb (v1r7)
- Fix: [bugs #3247] Memory leak in gaudipooldb image
rundown. Properly unload libraries now on finalize()
- Updated to new event selector interface
- Allow for usage of environment variables
- GaudiExamples(v15r0)
- Added a bunch of examples for POOL I/O (Write, Read,
CollWrite, CollRead)
- GaudiKernel(v15r4)
- Added changes from Vanya to fix the problems reported by Matt
on output level for AlgTools
- GaudiSvc(v11r7)
- JobOptionsSvc: Fixed infinite loop reporting errors when
"unit" file is not present
- GaudiAlg(v7r3)
- Changed the length of Hbook names from 8 to 16
- Add new algorithm GaudiSequencer (.h, .cpp), to replace the
Sequencer. Uses a private auxiliary class AlgorithmEntry.h.
Auxiliary tool SequencerTimerTool(.h, .cpp), with private class
TimerForSequencer.h, to measure the time taken in the sequencer.
- Change default value of HistoSplitDir option to false. The
true option is useful only for HBOOK persistency, if algorithm name is
longer than 16 chars
- GaudiAud(v6r5)
- Fixed [bugs #3667] bytes to Mbytes conversion in ProcStats.cpp
- GaudiPython(v6r5)
- Small corrections in iProperty and completed the set of
different property types.
uses POOL_1_6_3 and SEAL_1_3_4
Minor changes and Bug Fixes
- GaudiKernel (v15r3)
- KeyedContainer: modified erase() method to use a
temporary vector to increase dramatically its performance. Tested
by VeloSim
- GaudiSvc (v11r6p1)
- Added debug printout in ServiceManager
uses POOL_1_6_2 and SEAL_1_3_4
Minor changes and Bug Fixes
- ExternalLibs (v4r5)
- uses Xerces from sw/packages because the win32_vc71 lcg
installation has a problem.
- GaudiSvc (v11r6)
- OutputStream: add an option PreloadOptItems (default
false) to preload also the objects defined in OptItemList. This is
needed when making a copy of a dataset containing OptItems.
- ToolSvc: Fixed a long standing problem on the finalize
Tools when they have cyclic dependencies. See release.notes for the
full explanation from Chris Jones
- ParticlePropertySvc: Adaptation to new interface
IParticlePropertySvc. New format for the input file is parsed and the
default is now read from $PARAMFILESROOT/data/ParticleTable.txt
- [bugs #2854] Print the abosule path of the XML detector
geometry/description file
- GaudiAlg (v7r2)
- Fix a trivial and stupid bug in the implementation of
Tuples::make_column and Tuples::Column partial specializations
- GaudiTools (v8r1)
- GaudiTool: add attribute "true" to create the
service, if it not done earlier for accessors to detSvc() ,
incSvc() , evtSvc() and incSvc()
- GaudiGSL (v6r0)
- Added NumericalDefiniteIntegral into namespace GaudiMath
with name DefIntegral
- Added interpolation. Available interpolation types:
- Linear
- Polynomial
- Cubic spline with natural boundary conditions
- Cubic spline with periodic boundary conditions
- Akima spline with natural boundary conditions
- Akima spline with periodic boundary conditions
- GaudiPython(v6r4)
- Changed the initialization of AppMgr. Initialize() is not
called at AppMgr.__init__() and it is done later at the AppMgr.run()
method
- Aliases for common AppMgr methods
Minor changes and Bug Fixes
- GaudiKernel (v15r2)
- Changes in IParticlePropertties and ParticleProperty to
add Pythia ID and remove obsolete assessors.
- GaudiSvc (v11r4)
- ParticlePropertySvc: Adaptation to new interface
IParticlePropertySvc. New format for the input file is parsed and the
default is now read from $PARAMFILESROOT/data/ParticleTable.txt.
- A new input file is also provided, that has a new name:
ParticleTable.txt. This new file should be put in $PARAMFILESROOT and
is used now instead of particle.cdf.
- GaudiPython (v6r3)
- Added a the function getComponentProperties(module) to
obtain the properties of all component classes available in a given
component library (module)
- GaudiAlg (v7r1)
- Modification is to provide the possibility to extend the
N-tuple "representation" of specific "complex" objects (e.g.
EventHeader, L0DUReport, or L1Report) through class template
specializations.
- GaudiGSL (v5r1)
- Fix a serious bug in code for numerical integration
Minor changes and Bug Fixes
- GaudiPoolDb (v1r5)
- Changes to fix the problem with spillover events (changed
relative path to absolute ones). The files created with previous
versions should be readable with this new one.
- Fix bug which occurs only on linux in optimized mode
(!!). For HepMatrices/vectors the data got scrambled on reading.
- GaudiDb (v9r2)
- Fix the problem with missing link manager entries for
ROOT files
- GaudiSvc(v11r3): Bug fix in EventSelector to avoid crash when
calling reinitialize()
- GaudiPython(v6r2):
- Added a number of new functions to AppMgr class to
simplify the end-user interaction
- The constructor AppMgr() configures and initializes the
Gaudi Application manager
- Added new class EventSelector to manage the opening of
input files
- GaudiAlg(v7r0), GaudiTools(v8r0):
- New base classes (GaudiAlgorithm,
GaudiHistoAlg,GaudiTupleAlg) for user algorithms with
- easy and safe access to tools, services, and data in TES
- error handling
- histogramming
- ntuples
- The detailed description if available in doc/GaudiAlg.tex
file
Minor changes and Bug Fixes
- GaudiKernel: New accessors in Algorithm and AlgTool base
classes ( evtSvc() , svcLoc() and OutputLevel() )
- GaudiKernel: Changes in SmartRef to optimize CPU for POOL
based persistency
- GaudiPython: Small changes from feedback given by Vanya.
- New version of POOL (1.5.0-zeta)
Major changes
- Using SEAL, POOL and PI as external packages.
- GaudiPoolDb: New package to support object persistency based
on POOL.
- HistogramSvc: Replaced HTL package used by HistogramSvc with
the ROOT based AIDA histograms
implementation from the LCG PI project (Grigori Rybkine)
- Mac OSX: A number of minor changes needed by the Mac OSX port
of the Gaudi software (Guy Barrand)
- GaudiGSL: Updated GaudiGSL with new solving nonlinear system
with n equations in n unknowns (Kirill Miklyaev)
- GaudiPython: New implementation using the LCG dictionaries
(SEAL)
Minor changes and Bug Fixes
- JobOptionsSvc: Added the possibility to read
additional option files.
- Added additional POOL storage types as known types to the
persistency service
- HbookCnv: deal with empty ntuples (Charles Leggett)
- RootHistCnv: deal with empty ntuples (Charles Leggett)
Known Problems and Issues
- Not known issues at this moment
Improvements and changes
New Functionality
- JobOptionsSvc supports a search path for job opt file
- RootHistCnv: Added ability to read in Matrices, and fixed
size Arrays
Bug Fixes
- RootHistCnv: in RCWNtupleCnv::book, where was setting range
for non integer TLeaf
- RootHistCnv: in analyzeItem (Bug #576 Matrices in CWN not
filled correctly)
- GaudiPython: in src/Test/Dictionary/Class_Dict.cpp use new
OffsetOf macro
Incompatible Changes
- BOOST does not add -lboost_python to the link opts anymore
(as this implies using PYTHON as well)
Known Problems and Issues
- Although a warning is printed out, there is no protection
against double inclusions of job option files
- service_i method implementation is replicated in multiple
classes
Bug Fixes
- Modified System::typeinfoName() to remove extra white spaces
for templated classes with two or more arguments. Prevented loading
LHCb associators.
- Bug
#927. In Algorithm::service_i pointer to an unaccessible
service is returned unchanged instead of being null
Improvements and changes
- Full support for gcc 3.2. This is one of the main new
changes and the one that has taken us more time and effort. The main
difficulties have been to handle dynamic_cast between libraries that
are loaded dynamically. See complete explanation in
GaudiKernel/doc/dynamic_cast.pb.
- Major re-write of GaudiPyhton. Changes introduced to
convert the package to new version of Boost.Python 2.0. Added the
capability of setting/getting properties of Algorithms and Services
before they are created by the ApplicationMgr.
- Major re-write of GaudiObjDesc. Adapted to new version of
Xerces 2.2.0
- Changed CLHEP Random Number distribution from RandGauss to
RandGaussQ.
- Added MessageSvcType property to ApplicationMgr to select
alternative MessageSvc implementations
- Changed connectOutput call of conversion service
interface to allow specify the opening mode (NEW, RECREATE,
UPDATE)
- Implement the ability to reinitialize for changing the event
file input specification
- Implement new option RandSvc.Engine.SetSingleton. If set to
true, set the default engine in HepRandom.
- Changed IAddressCreator interface to be able to convert
to and from address string.
- Support to enable/disable Algorithms.
Algorithm::sysExecute() returns immediately if isEnabled() is
false.
- Improved code in GaudiGSL minimization tool: all static
variables and static methods are removed.
- Implemented event file "aging" and and algorithm to close
files which are "old". This is to avoid having many files open with the
consequent waste of memory resources.
- Added ability to read H1D, H2D, H1DVar histograms from ROOT
files.
- Added ability to read CWNT from ROOT files.
- Added in GaudiExamples and script (runexamples.py) to run all
examples and compare the output with reference files.
New functionality
- Thread support. Added utilities to get and parse
thread instance names.
Changes in the Service and Algorithm base classes.
- service() method asks first for thread specific service instance, if
not available get generic service instance
- allow for setting of thread specific and generic properties
- create thread specific sub-Algorithms automatically
Changes in MinimalEventLoopMgr and ApplicationMgr to support to support
event-level multi-threading
- Colored Messages. Support colored messages on
x-terminals.
Bug Fixes
- Bug #348. Modified PropertyCompiler to to do a case
insensitive compare when appending string options into an option array.
- Fix memory leak in the event selector. The opaque object
address was not deleted when skipping initial event records (FirstEvent
property set).
- Corrected bug in finalizing ToolSvc when Tools are not
properly released by end-users.
- Fix a memory leak at finalization in RndmGenerators.
- Fixed bug in NTuples/Event collection: NT-tuple
description was limited to 4k on gcc 2.95.
- Bug #214. Fix problem with event selector that caused a crash
after last event.
Changes of version in external packages.
- ROOT v3.05.04
- Xerces 2.2.0
- Pyhton 2.2.2
- Boost 1.29
- GSL 1.3
Improvements and changes
- Improved reference counting. Quite a lot effort has
been put to handle correctly reference counting on services, tools and
algorithms. In general, the user should "release" services that has
been located and used during the execution at the finalize() method. If
the release is not done, the service will not be destroyed at the end
of the execution of the program, and thus showing as a possible memory
leak. If an excessive number of releases is done a premature
destruction may happen with unpredictable behavior.
- New way to handle projects with CMT. The Gaudi project
is being released in a different directory root with the project
version number in its name (/GAUDI_v11r0) and a single version of each
package. This implies to change the CMTPATH accordantly. For more
details look at Florence Ranjard presentation.
In practice:
- Version numbers have been removed from the "use"
statements in the requirements files of individual packages. The
versions are fix using the Gaudi
requirement file. Beware that "old" versions in user's private
areas may be used by mistake.
- The user will have to setup the CMTPATH to contain the
directory where this version is installed. This can be done by "source
$Gaudi_release_area/GaudiEnv/v11r0/cmt/setup.csh"
- This version compiles with gcc 3.2.
- Removed -Bsymbolic link flag for component libraries. This
flag is suspected of producing memory leaks.
- ApplicationMgr re-factoring. Removed direct implementation of
many interfaces by the ApplicationMgr, it delegates now to other
objects.
New functionality
- Controlling the output level of components without
properties. Introduced new properties to MessageSvc.
MessageSvc.setVerbose += {"name1", "name2"};
(or setDebug, setInfo, setWarning, setError,
setFatal, setAlways )
- Added a more complete algorithm "GaudiAlg/GaudiAlgorithm.h"
that can be used as base class for user algorithms. See documentation
for details.
- Added function format(string fmt, ...) that can be used to
format messages
within the MsgStream class.
- New minimization tool with GSL added in package GaudiGSL. The
abstract interface is available GaudiGSL/IFuncMinimum.h.
Changes of version in external packages.
- CLHEP 1.8.0.0, ROOT 3.03/09, CERNLIB 2002, HTL 1.3..2.1,
Boost 1.28
Incompatible Changes
Improvements and changes
- AIDA 2.2. Release v10r0 uses the
latest version of
AIDA interfaces.
- 3D histograms. Support for 3D histograms (fix and
variable binning). Saving them only possible with ROOT.
- Bug fixes collected since last release:
- If the initialization any sub-algorithms fails should fail
job initialization.
- Fixed problem in user defined random number generator.
- Small improvements:
- Added more accessors to AlgTool base class
- Support for long long in MsgStream and StreamBuff
- Replaced some interfaces forward reference in Algorithm
base class by includes.
- Moved ListItem.h from GaudiSvc to GaudiKernel.
- New property "OutStreamType" for selecting the default
output stream.
- Major cleanup and removing static storage in RooHistCnv
- Changes needed for Solaris (provided by Wim
Lavrijsen)
- Using CMT v1r11. New tags, primitive tags and new
patterns defined. Reduced compilation and link dependencies by
exploiting -no_auto_imports flag in use statements.
- Changes on External package versions: Python 2.2,
Boost 1.27.0, Xerces-C 1.6.0
Incompatible Changes
- Removed IHistogramXX.h files from GaudiKernel.
The user should
use AIDA/IHistogramXX.h instead. The dependency on AIDA in GaudiKernel
has been removed because is not needed any more.
- Due to the change in the AIDA version some methods have changed
(e.g. IHistogram::dimentions() is now IHistogram::dimension() ). Refer
to the Doxygen documentation for details.