Package: GaudiRelease
Package Coordinator: Marco Clemencic, Charles Leggett
Purpose: Gaudi common set of packages
More recent versions
Main Changes
- Patch #2699: First version of run records service (Marcus Frank).
- Fixed to compile with any of gcc 4.3, ROOT 5.21/06 and SLC5
(Marco Clemencic).
Packages Changes
- GaudiKernel (v26r1):
- Patch #2699: First version of run records service
(Marcus Frank)
- Fixed bug #44504. Inconsistent default for createIf flag for services
(Marco Clemencic)
- Fixed bug #44279. Ambiguous signature in setProperty functions
(Marco Clemencic)
- Fixed compilation problems with gcc 4.3 and ROOT 5.21/06
(Marco Clemencic)
- Improvements and fixes in ConfigurableUser
(Marco Clemencic)
- GaudiPython (v9r4):
- Fixed bug #45392: gaudrun.py returns status code 0 even if the application manager fails
(Marco Clemencic)
- GaudiPolicy (v8r7):
- Fixed compilation problems with SLC5
(Marco Clemencic)
- Fixes and improvements in GaudiTest.py
(Marco Clemencic)
- Patch #2664: Proper handling of shared libraries on Mac OSX platform.
(Charles Leggett)
- GaudiAud (v8r8):
- Patch #2710: NameAuditor support of new FSM
(Frank Winklmeier)
- GaudiPoolDb (v4r2):
- Patch #2699: First version of run records service
(Marcus Frank)
- GaudiGridSvc (v1r8):
- Disabled on SLC5.
(Marco Clemencic)
- HbookCnv (v14r14):
- Disable the build of the package on SLC5 (both i686 and x86_64) and with gcc-4.3
(Marco Clemencic)
- Fixed bug #44992: CHAR_BIT not defined in HbookCnv with gcc4.3
(Charles Leggett)
- Gaudi (v20r4):
- Fixed bug #45392: gaudrun.py returns status code 0 even if the application manager fails
(Marco Clemencic)
- GaudiUtils (v2r2):
- Fixed compilation problems with ROOT 5.21/06
(Marco Clemencic)
- GaudiSvc (v17r3):
- Fixed bug #45180: AuditorSvc creates duplicate auditors.
(Charles Leggett)
- Patch #2699: First version of run records service
(Marcus Frank)
- Patch #2698: StatusCodeSvc checks filter list too early
(Charles Leggett)
- Fixed compilation warning with gcc 4.3.
(Marco Clemencic)
- GaudiExamples (v20r4):
- Patch #2699: First version of run records service
(Marcus Frank)
- Improvements and updates in tests
(Marco Clemencic)
- GaudiAlg (v11r3):
- Fixed bug #44504. Inconsistent default for createIf flag for services.
(Marco Clemencic)
Packages Changes
- GaudiKernel (v26r0):
- Major improvements in the usability of ConfigurableUser specializations.
Mainly the automatic call of the method ConfigurableUser.__apply_configuration__
(or applyConf) and the addition of ConfigurableUser specialization to the
database of configurables (see release notes)
(Marco Clemencic)
- Various fixed for Python job options ()
(Marco Clemencic)
- Fixed compilation errors and warnings on gcc 4.3
(Marco Clemencic)
- Fixed bug #43420. IPartPropSvc not accessible from Python
(Marco Clemencic)
- Fixed bug #43314. Memory leak in StatusCode
(Marco Clemencic)
- Fixed bug #42428. Properties of clones are not cloned.
(Marco Clemencic)
- Fixed bug #43065. Error when unpickling GaudiHandles.
(Marco Clemencic)
- Reverted old implementation (pre-FSM) of the reinitialize method of
Algorithm, Service and AlgTool, i.e. do nothing. Fixes bug #39706
(Marco Clemencic)
- Fixed bug #42005. System::typeinfoName is missing 'signed char'
(Sebastien Binet)
- Fixed the cast of errno from "int" to "unsigned long". Fixes bug #25460.
(Marco Clemencic)
- Patch #2303. Improve/extend IAlgorithm interface
(Marco Clemencic)
- Fixed bug #39846. gaudirun.py creates invalid entries in flattened options
(Marco Clemencic)
- Patch #2073. SharedObjectsContainer and 'blind' access to TYPE::Container &
TYPE::Selection
(Vanya Belyaev)
- Patch #2261. Introducing name alias for Algorithms and Services
(Pere Mato)
- Patch #2058. Extensions for AIDA::TProfile1D
(Vanya Belyaev)
- Patch #1797: Backtrace utility for System
(Frank Winklmeier)
- Patch #1796: Performance improvement for message reporting
(Frank Winklmeier)
- Fixed bug #39809 (wrong configuration of public tools).
(Marco Clemencic)
- Fixed bug #39250. Cannot use configurable instances as values for properties
of type map<str,str>.
(Marco Clemencic)
- Fixed bug #39117. gaudirun.py export to old options does not handle correctly
GaudiHandles.
(Marco Clemencic)
- Fixed bug #39116. gaudirun.py export to old options prints '#' instead of '//'
(Marco Clemencic)
- Added PrintOn and PrintOff functions to GaudiKernel.ProcessJobOptions to
mimic the old "#pragma print"
(Marco Clemencic)
- GaudiPython (v9r3):
- Improvements in usability of ConfigurableUser specializations.
(Marco Clemencic)
- Fixed compilation errors and warnings on gcc 4.3
(Marco Clemencic)
- Fixed bug #38442. Support for alternative ApplicationMgr in GaudiPython
(Charles Leggett)
- Added support for serialization/deserialization of TES
(Pere Mato)
- Patch #2058. Extensions for AIDA::TProfile1D
(Vanya Belyaev)
- Patch #1938: Draw the native AIDA histograms through their internal ROOT
representation
(Vanya Belyaev)
- GaudiGSL (v6r10):
- Fixed compilation errors and warnings on gcc 4.3
(Marco Clemencic)
- GaudiPolicy (v8r6):
- Added automatic registration of ConfigurableUser specializations to the
database of configurables.
(Marco Clemencic)
- Fixed compilation errors and warnings on gcc 4.3
(Marco Clemencic)
- Improvements in the QMTest test class GaudiTest.py. (see release notes)
(Marco Clemencic)
- Added cmt action to create .pyc file in the InstallArea. To be called explicitly.
(Hubert Degaudenzi)
- Fixed bug #43114. Python clean make target not removing .pyc files
(Marco Clemencic)
- Fixed bug #35792: merge_genconfDb fragment does not need -dependencies
(Marco Clemencic)
- Fixed bug #39272. Cannot use cmt TestPackage before cmt make
(Marco Clemencic)
- Fixed bug #39273. Need separate qmtest reference files for slc4_ia32 and
slc4_amd64 platforms
(Marco Clemencic)
- Added the ccache support and fixed gcov for gcc >= 3.4
(Hubert Degaudenzi)
- GaudiAud (v8r7):
- Patch #2183. Link to Atlas error policy in AlgErrorAuditor
(Charles Leggett)
- Patch #1939. Allow auditors to catch CustomEventTypes
(Charles Leggett)
- GaudiPoolDb (v4r1):
- Fixed compilation errors and warnings on gcc 4.3
(Marco Clemencic)
- Gaudi (v20r3):
- Improvements in gaudirun.py and Configurables (see release notes)
(Marco Clemencic)
- Added tests for various bugs (bug #42428, bug #43065, bug #39846,
bug #39809, bug #39116)
(Marco Clemencic)
- Fixed bug #39846. gaudirun.py creates invalid entries in flattened options
(Marco Clemencic)
- Fixed bug #39116. gaudirun.py export to old options prints '#' instead of '//'
(Marco Clemencic)
- GaudiUtils (v2r1):
- Patch #2073: SharedObjectsContainer and 'blind' access to TYPE::Container &
TYPE::Selection
(Vanya Belyaev)
- Patch #1943. Added update handler to MultiFileCatalog.Catalogs
(Vanya Belyaev)
- GaudiSvc (v17r2):
- Fixed compilation errors and warnings on gcc 4.3
(Marco Clemencic)
- Patch #2608. Thread-safe IncidentSvc
(Frank Winklmeier)
- Added an option to ApplicationMgr to enable/disable the initialization loop
check. (Patch #2199)
(Marco Clemencic)
- Patch #2601. Introduce support for file summary records.
(Marco Cattaneo)
- Fixed bug #38572. THistSvc initialize/finalize cycles
(Marco Clemencic)
- Fixed bug #42509. Allow THistSvc to write multiple streams to the same file
(Charles Leggett)
- Fixed bug #41136. ToolSvc keeps tools even if initialize fails
(Marco Clemencic)
- Fixed bug #37049. Use recursive mutexes in MessageSvc
(Marco Clemencic, Frank Winklmeier)
- Fixed bug #41058. Better warning messages when a factory can't be loaded
(Marco Clemencic)
- Fixed bug #36917. Listen to all incidents
(Marco Clemencic)
- Patch #2261. Introducing name alias for Algorithms and Services
(Pere Mato)
- Patch #2400. Allow to suppress warnings in the EventLoopMgr
(Markus Frank)
- Patch #2058. Extensions for AIDA::TProfile1D
(Vanya Belyaev)
- Patch #1963. Add getGraphs() method to THistSvc
(Charles Leggett)
- Reimplemented IssueLogger::getTraceBack() in terms of the version of
System::backTrace() introduced with patch #1797.
(Marco Clemencic, Frank Winklmeier)
- Patch #1796: Performance improvement for message reporting
(Frank Winklmeier)
- Patch #1750. Improved printout of Data-On-Demand Service
(Vanya Belyaev)
- GaudiExamples (v20r3):
- Fixed compilation errors and warnings on gcc 4.3
(Marco Clemencic)
- Patch #1964. GaudiExample to demonstrate Service initialization loops
(Charles Leggett, Marco Clemencic)
- Patch #2601. Introduce support for file summary records.
(Marco Cattaneo)
- Added an example (options/ConfigurableUser.py) of usage of ConfigurableUser.
(Marco Clemencic)
- Added test for few bug #41136.
(Marco Clemencic)
- Updated few reference files.
(Marco Clemencic)
- Patch #2509. Suppress messages in GaudiAlg when tools are loaded multiple times
(Chris Jones)
- Patch #2073: SharedObjectsContainer and 'blind' access to TYPE::Container &
TYPE::Selection
(Vanya Belyaev)
- Patch #2261. Introducing name alias for Algorithms and Services
(Pere Mato)
- Patch #2058. Extensions for AIDA::TProfile1D
(Vanya Belyaev)
- Temporarily disabled the DataListener test, until the configuration problem
is fixed (Ganga).
(Marco Clemencic)
- GaudiMonitor (v1r5):
- Fixed compilation errors and warnings on gcc 4.3
(Marco Clemencic)
- GaudiAlg (v11r2):
- Fixed compilation errors and warnings on gcc 4.3
(Marco Clemencic)
- Patch #2601. Introduce support for file summary records.
(Marco Cattaneo)
- Patch #2509. Suppress messages in GaudiAlg when tools are loaded multiple times
(Chris Jones)
- Patch #2506. GaudiSequencer: bug in setFilterPassed logic in case
ModeOR=true, IgnoreFilterPassed=true
(Gerhard Raven)
- Patch #2483. Return pointer to 'put' object in GaudiCommon::put
(Gerhard Raven)
- Patch #2073: SharedObjectsContainer and 'blind' access to TYPE::Container &
TYPE::Selection
(Vanya Belyaev)
- Patch #2058. Extensions for AIDA::TProfile1D
(Vanya Belyaev)
- Temporarily disabled the DataListener test, until the configuration problem
is fixed (Ganga).
(Marco Clemencic)
Packages Changes
- GaudiKernel (v25r2):
- Added the interface IEventTimeDecoder (from LHCb).
(Marco Clemencic)
- Fixed bug #38868. MinimalEventLoopMgr does not restart algorithms
Implemented restart so that it calls the restart of all the algorithms.
Fixed the implementation of reinitialize too.
(Marco Clemencic)
- Fixed bug #38855. Inconsistent check in Service::sysRestart.
Fixed a the result of a bad cut & paste.
(Gerhard Raven)
- Patch #1756. Decrease the probability for FPE in StatEntity::addFlag
Added a check in StatEntity::addFlag to avoid floating point exceptions.
(Vanya Belyaev)
- GaudiAlg (v11r1):
- Added the interface IGenericTool (from LHCb).
(Marco Clemencic)
- GaudiPython (v9r2):
- Added dictionary for IGenericTool.
(Marco Clemencic)
- Fixed:
- bug #38885: no execute method for algorithms in GaudiPython
- bug #38882: AppMgr.addAlgorithm does not work correctly after
initialization
(Marco Clemencic)
- GaudiExamples (v20r2):
- Added test for bug #38882.
(Marco Clemencic)
Externals version: LCGCMT_55
Packages Changes
- GaudiPolicy (v8r4):
- Fixed bug #38208: The pattern GaudiApp does not work if inherited.
Modified the pattern to use <package> and <version> instead of
$(package) and $(version).
(Marco Clemencic)
- GaudiKernel (v25r1):
- Fixed:
- bug #38206: gaudirun.py fails to set a list property from a property
reference.
- bug #38194: gaudirun.py expands too many environment variables
Avoid to expand the environment variables in the
strings.
(Marco Clemencic)
- GaudiPython (v9r1):
- Fixed bug #38194: gaudirun.py expands too many environment variables
Expand the environment variables in the strings before passing them to the
C++ services (ApplicationMgr, MessageSvc and JobOptionsSvc).
(Marco Clemencic)
- Gaudi (v20r1):
- Added tests for bug #38206 and bug #38194.
(Marco Clemencic)
Externals version: LCGCMT_55
Packages Changes
- GaudiPolicy (v8r3):
- Added a pattern to generate a header file containing macros to identify
the version of the project.
(Marco Clemencic)
- Changed the name of the extension for libraries on OSX from ".dylib" to
".so".
(Charles Leggett)
- Added a path cleaner to the global Gaudi setup. This is removing invalid or
empty components in the PATH, LD_LIBRARY_PATH, JOBOPTSEARCHPATH, PYTHONPATH.
(Hubert Degaudenzi)
- Added the pattern pyd_module in order to be able to create python binary
modules (.pyd files).
(Hubert Degaudenzi)
- GaudiKernel (v25r0):
- Fixed bug #37690: message svc release() in Auditor destructor.
(Charles Leggett, Marco Clemencic)
- Fixed few bugs:
- bug #36742: Cannot pickle options using "PropertyReference"
- bug #37479: gaudirun.py fails parsing old option lines with comments
and quotes
- bug #37488: importOptions does not expand environment variables
- bug #35347: Cannot import 2 Python option files with the same name
- bug #35913: Configurables type checking fails on Gaudi::Histo1DDef
- bug #34769: Assigning a configurable to a list property does not fail
(Marco Clemencic)
- Patch #1865. Better printouts for HistorySvc.
(Charles Leggett)
- Task #5809. Extension to Gaudi Application state machine (see release notes
of the package).
(Marco Clemencic)
- Patch #1865. Improvements for Chrono/ChronoStat&IChronoSvc.
(Vanya Belyaev)
- Added small interface (IFileAccess) for services/tools that allow read-only
file access agnostic of the storage backend (filesystem, web, CondDB, ...).
(Marco Clemencic)
- GaudiSvc (v17r0):
- Modified the way the EndEvent incident is fired by the EventLoopMgr. Instead
of after the top algorithms, it is now fired before BeginEvent (if
appropriate) and at the beginning of EventLoopMgr::stop.
(Marco Clemencic)
- Fixed bug #26327. JobOptionsSvc::finalize is never invoked.
(Marco Clemencic)
- Patch #1865. Better printouts for HistorySvc.
(Charles Leggett)
- Patch #1819. Fix printout in THistSvc.
(Charles Leggett)
- Task #5809. Extension to Gaudi Application state machine (see release notes
of the package).
(Marco Clemencic)
- Patch #1806. Reduced default print-out of DataOnDemandSvc.
(Patrick Koppenburg)
- Patch #1801. Allow exclusion in HistogramPersistencySvc.
(Vanya Belyaev)
- Patch #1761. Fixed print-out in ToolSvc.
(Vanya Belyaev)
- Patch #1756. Improvements for Chrono/ChronoStat&IChronoSvc.
(Vanya Belyaev)
- Minimal implementation of IFileAccess interface:
- Added small service (VFSSvc, Virtual File System Service) implementing the
interface IFileAccess, to dispatch the call to tools implementing the actual
protocols.
- Added a tool to provide the basic implementation of IFileAccess to access
files on the filesystem.
- Modified the ParticlePropertySvc to use VFSSvc to open the file containing
particle properties.
(Marco Clemencic)
- GaudiUtils (v2r0):
- Patch #1861. Prevent division-by-zero results in skewness and kurtosis.
(Chris Rob Jones)
- Task #5809. Extension to Gaudi Application state machine (see release notes
of the package).
(Marco Clemencic)
- GaudiPoolDb (v4r0):
- Patch #1794.
- Adapt GaudiPoolDb to SEAL-free implementation of POOL.
- Fixed bug #34176: Remove link dependencies on POOL component libraries.
(Markus Frank)
- GaudiAlg (v11r0):
- Fixed bug #36021. Unchecked StatusCodes in GaudiCommon<T>::releaseTool.
(Chris Rob Jones)
- Patch #1862. Extend space for 'counter' name in GaudiAlg summary.
(Chris Rob Jones)
- Task #5809. Extension to Gaudi Application state machine (see release notes
of the package).
(Marco Clemencic)
- Patch #1807. Reduced default print-out of GaudiHistos and GaudiTuples.
(Patrick Koppenburg)
- GaudiPython (v9r0):
- Patch #1866. Enable pickle support in GaudiPython.
(Pere Mato)
- Task #5809. Extension to Gaudi Application state machine (see release notes
of the package).
(Marco Clemencic)
- Gaudi (v20r0):
- GaudiExamples (v20r0):
- Updated reference files and tests (see release notes of the package).
(Marco Clemencic)
Packages Changes
- GaudiPolicy (v8r2):
- Added patterns to produce and use helper libraries for genconf. The helper
libraries are useful if the constructors of the compenents need special
actions to be taken before the instantiation.
(Hubert Degaudenzi)
- Patch #1724. Do not create stamp files in the InstallArea for merged files.
The stamp files created by merge_files.py for rootmap files are read by ROOT
because it thinks they are real rootmap files, slowing down the application
startup. The script and the related fragments have been modified to create
the stamp files in the same directories of the files to be merged.
(Sebastien Binet)
- Added a pattern to define the environment variables GAUDIAPPNAME and
GAUDIAPPVERSION, used by gaudirun.py to set the default values for the
corresponding ApplicationMgr properties.
(Marco Clemencic)
- Added a generic fragment/document to call a script.
(Marco Clemencic)
- GaudiKernel (v24r0):
- Patch #1751. Fixed a typo in Stat::operator-=.
(Vanya Belyaev)
- Fixed Bug #35201. Python options parser '//' interpreted as comment in strings.
(Marco Clemencic)
- Fixed Bug #34680. Some obsolete methods were not forwarding the call to
the relevant new methods.
(Marco Clemencic)
- Patch #1757. Detect creation/initialization loops for services.
Modified the way the state of the service is set:
- the base class initialize sets the state to CONFIGURED
- the service becomes INITIALIZED in the sysInitialized, after the
specialized service completed (successfully) the initialization
(Charles Leggett)
- Modified DataStreamTool to call sysInitialize instead of initialize for
conversion services. (related to Patch #1757)
(Marco Clemencic)
- Bug #34752/Patch #1747. Fixed a problem with GaudiHandleArray.__getstate__ preventing pickling.
(Sebastien Binet / Martin Woudstra)
- Patch #1751. Changed the signature of declareProperty/declareRemoteProperty
methods to get Property* instead of void or a StatusCode that is
always success.
(Vanya Belyaev)
- Patch #1725. New IAuditor interface.
- The Auditor member functions are now only 8, for all the combinations of:
- before or after
- standard event or custom event
- INamedInterface* or string
- All the after methods accept a StatusCode (if not specified, a SUCCESS with
the checked flag set is used).
- The obsolete member functions are kept for backward compatibility.
- The default implementations of "before" and "after" are using the obsolete
methods to make legacy Auditors to work.
- IAuditorSvc is now an extension of IAuditor.
- AuditorGuard has been adapted to the new interface and the audit with a
status code check is simpler.
- The standard event types defined in the enum IAuditor::StandardEventType
can be printed and converted to strings with operator<<.
(Marco Clemencic)
- Python job options:
- Removed the possibility of assigning a tool to an attribute of a
configurable if that attribute/property does not exists. It was intended to
allow simple declaration of private tools, but it is dangerous because it
avoids the checking of the spelling of properties.
- Modified Configurable.addTool() to accept a subclass of ConfigurableAlgTool
as first argument (as well as an instance) to avoid the instantiation of an
unneeded instance of the public tool configurable.
(Marco Clemencic)
- Added a work around for ROOT bug #34282 in dict/dictionary.xml (excluded few
data members of Gaudi::Time).
(Marco Clemencic)
- Fixed Bug #34046. False warning when mixing Python options and old options.
The check on the case of old options have been improved.
(Marco Clemencic)
- Modified genconf to take an extra argument "--load-library" to which
the full path of a helper library is passed.
(Hubert Degaudenzi)
- GaudiSvc (v16r5):
- Patch #1765. Allow THistSvc to write to the same file storegate is writing
to. This functionality is needed for the UserDataSvc in ATLAS.
(Yushu Yao)
- Hack to change the order of finalization such that HistorgamDataSvc is
finalized after ToolSvc (avoids segmentation faults).
(Marco Clemencic)
- Patch #1757. Detect creation/initialization loops for services.
Modified the way the state of the service is set:
- the base class initialize sets the state to CONFIGURED
- the service becomes INITIALIZED in the sysInitialized, after the
specialized service completed (successfully) the initialization
(Charles Leggett)
- Fixed problems introduced with patch #1757.
- Modified ApplicationMgr to call sysInitialize instead of initialize for
JobOptionSvc and MessageSvc (see also bug #26327).
- Modified also NTupleSvc, TagCollectionSvc and RndmGenSvc to use sysInitialize
instead of initialize for their sub-services.
(Marco Clemencic)
- Patch #1763. Demote some ERROR messages to WARNINGs in HistorySvc.
(Charles Leggett)
- Patch #1744. Speed up HistorySvc by caching a MsgStream.
(Charles Leggett)
- Fixed Bug #34121. Solved a problem in the check on the emptiness of
tool type/name in ToolSvc::retrieve.
(Marco Clemencic)
- GaudiUtils (v1r6):
- Patch #1749. Improve some printout of the histogram.
(Vanya Belyaev)
- Fixed Bug #33372 (Patch #1746). Fixed memory leak in XmlFileCatalog.
(Markus Frank)
- GaudiAlg (v10r5):
- Bug #35199: GaudiSequencer segfaults if an algorithm cannot be loaded.
Implemented the suggested check even if the bug is not reproducible with a
simple test.
(Marco Clemencic)
- Fixed Bug #34565: Unchecked StatusCode in GaudiTuples<>::initialize().
(Marco Clemencic)
- Patch #1749. Improvements of print-outs.
(Vanya Belyaev)
- Patch #1725.
Modified TimingAuditor to implement the new IAuditor interface for both
standard events and user events.
(Marco Clemencic)
- GaudiAud (v8r5):
- Patch #1717. Audit memory at initialize time.
Uncommented the function to get the memory utilization after initialize (in
MemStatAuditor).
(Charles Leggett)
- Gaudi (v19r9):
- Added a test for bug #35201.
(Marco Clemencic)
- Fixed Bug #34046. False warning when mixing Python options and old options.
(Marco Clemencic)
- Modified Gaudi.Main.gaudimain to use the environment variables GAUDIAPPNAME
and GAUDIAPPVERSION to set the default values for the ApplicationMgr
properties AppName and AppVersion.
(Marco Clemencic)
- GaudiExamples (v19r9):
- Added an example/test to show how to audit some pieces of user code
(AuditorTestAlg), and how to write a minimal auditor (LoggingAuditor).
(Marco Clemencic)
- Updated the reference files for the changes introduced with Patch #1749.
(Marco Clemencic)
- Added a test for bug #34121.
(Marco Clemencic)
Packages Changes
- GaudiPolicy (v8r1):
- Minor improvements.
(Marco Clemencic,
Hubert Degaudenzi)
- GaudiKernel (v23r4):
- Modified IInterface::hash32 to use and return unsigned int
instead of unsigned long for portability.
(Vanya Belyaev)
- Patch #1666, Patch #1687. Interface changes to allow the implementation of
special tools in Athena.
(Yushu Yao)
- Patch #1668. Hack to avoid a problem with ServiceHandles in Python 2.5
(__str__ called instead of toStringProperty).
(Charles Leggett)
- Improvements to Python options: Fixed bug #33209 and added a (limited) lock
on configurables to try to avoid that people use them after the
ApplicationMgr has been instantiated.
(Marco Clemencic)
- Patch #1710. Convenience method for removing entries from GaudiHandleArray
by name.
(Wim Lavrijsen)
- Patch #1711. Get all instances of a tool type, function used in the Atlas
event display.
(Charles Leggett)
- Hack to avoid a conflict in the way Configurables are used in Athena and
Gaudi.
(Marco Clemencic)
- GaudiSvc (v16r4):
- Patch #1652, fixed reference counting in HistorySvc.
(Charles Leggett)
- Patch #1656, improved debugging messages for IncidentSvc.
(Frank Winklmeier)
- Fixed Bug #33036, unchecked StatusCode in HistorySvc::initialize.
(Marco Clemencic)
- Patch #1711. Get all instances of a tool type, function used in the Atlas
event display.
(Charles Leggett)
- GaudiUtils (v1r5):
- Patch #1700, fixed the filter mechanism to reduce the number of messages
for inaccessible objects.
(Markus Frank)
- Fixed Bug #33372, tiny memory leak in XmlFileCatalog.
(Markus Frank)
- Patch #1722, fixed dataset access by LFN. Was simply not working.
(Markus Frank)
- GaudiPoolDb (v3r1):
- Patch #1700, fixed the filter mechanism to reduce the number of messages
for inaccessible objects.
(Markus Frank)
- GaudiAlg (v10r4):
- Fixed Bug #30209, added support for namespaced algorithms in Sequencer.
(Marco Clemencic)
- GaudiGSL (v6r9):
- Fixed a linkage problem with libgsl.so and libgslcblas.so.
(Hubert Degaudenzi,
Marco Clemencic)
- GaudiPython (v8r19):
- Fixed Bug #32854, MessageSvc options ignored in Python.
(Marco Clemencic)
- Hack to avoid a conflict in the way Configurables are used in Athena and
Gaudi.
(Marco Clemencic)
- Gaudi (v19r8):
- Added aliases for the configurables FileCatalog
(Gaudi::MultiFileCatalog) and IODataManager
(Gaudi::IODataManager).
(Marco Clemencic)
- Modified python/Gaudi/CommonGaudiConfigurables.py to ignore missing packages,
essentially to allow the import of Gaudi.Configuration when GaudiPoolDb is
missing.
(Marco Clemencic)
- GaudiExamples (v19r8):
- Added test for bug #30209 (support of namespaced algorithms in
Sequencer).
(Marco Clemencic)
Externals version: LCGCMT_54
Packages Changes
- GaudiPolicy (v8r0):
- Improvements in the QMTest infrastructure and the tests. Simplified actions to run the test:
TestPackage and TestProject.
(Marco Clemencic)
- Removed the genmap related macros and fragments, now available in LCG_Interfaces/ROOT (needs
LCGCMT >= 54)
- Fixes for Python 2.5.
(Marco Clemencic)
- Fixed bug #32341. install.py uses absolute path if the source and
the destination files are on different windows drives.
(Hubert Degaudenzi)
- GaudiKernel (v23r3):
- Fixed bug #32549.
Changed the level of the message about the AbortEvent incident from ERROR to
DEBUG.
(Marco Clemencic)
- Patch #1581. Added support to std::map<int,std::string> and std::map<unsigned int,std::string>
in the parser.
(Vanya Belyaev)
- Patch #1621 (bug #32466).
Add to IToolSvc/ToolSvc the possibility of using observers to monitor the
creation of and retrieval of tools.
(Gerhard Raven)
- Many fixes and improvements in Python job options.
(Marco Clemencic)
- Improved the message of DataSvc when re-throwing a std::exception. Now the
message contains the type of the exception.
(Marco Clemencic)
- Patch #1585.
- Added the templated function pp_cast<DEST>(SRC**) to replace the common casts
(void**)&pointer
and
(IInterface *&)m_mySvc
to avoid the warning "dereferencing type-punned pointer will break strict-aliasing rules".
- Fixed warnings about breaking of strict-aliasing rules (gcc 4.1 optimized).
(Marco Clemencic)
- Improvements in DsoUtils.h (support for Win32 and OSX).
(Markus Frank & Marco Clemencic)
- Fix for bug #31677.
Move GaudiHandles.py from GaudiPython to GaudiKernel.
(Marco Clemencic)
- Fixed various compilation warnings.
(Marco Clemencic)
- GaudiSvc (v16r3):
- Fixed bug #31950. Missing call to Service::finalize in
- ChronoStatSvc
- IssueLogger
- THistSvc
(Marco Clemencic)
- Fixed bug #32476. Missing checks of few status codes.
(Marco Clemencic)
- Patch #1610.
If StatusCodeSvc.AbortOnError was set to true, the filter list was ignored.
(Charles Leggett)
- Patch #1607.
Fixed a memory leak in HistorySvc, occurring when an algorithm or a tool
was registered twice.
(Charles Leggett)
- Patch #1584.
Fixed a crash (WIN32) or an infinite loop (Linux) when the DataOnDemandSvc
is configured but not initialized.
(Chris Rob Jones)
- Patch #1621 (bug #32466).
Add to IToolSvc/ToolSvc the possibility of using observers to monitor the
creation of and retrieval of tools.
(Gerhard Raven)
- Modified ToolSvc to allow to specify the name of a tool in the type argument
(Type/Name), which takes precedence over the provided name.
(Marco Clemencic)
- Patch #1585.
Fixed warnings about breaking of strict-aliasing rules (gcc 4.1 optimized).
(Marco Clemencic)
- Simplified the implementation of MultiStoreSvc fixing a segmentation fault
occurring on gcc 4.1 optimized.
(Marco Clemencic & Markus Frank)
- Fixed a problem preventing the parsing of option files with Boost 1.34.1.
(Sascha Mazurov)
- GaudiMonitor (v1r4):
- Fixed bug #31950. Missing call to Service::finalize in
(Marco Clemencic)
- Fixed compilation warnings.
(Marco Clemencic)
- GaudiGridSvc (v1r5):
- Patch #1611. Build disabled for ATLAS.
(Marco Clemencic)
- RootHistCnv (v9r16):
- Patch #1585.
Fixed warnings about breaking of strict-aliasing rules (gcc 4.1 optimized).
(Marco Clemencic)
- HbookCnv (v14r13):
- Disable the build of the package on AMD64 because it doesn't work on that
platform.
(Marco Clemencic)
- GaudiUtils (v1r4):
- Patch #1622. Reduce printout level on unsuccessful catalog lookup.
(MultiFileCatalog)
An unsuccessful catalog lookup is not an error, but rather a normal operation
if e.g. the existence of a file should be checked.
(Markus Frank)
- Patch #1585.
Fixed warnings about breaking of strict-aliasing rules (gcc 4.1 optimized).
(Marco Clemencic)
- GaudiPoolDb (v3r0):
- Removed the (obsolete) namespace "poolDb"
(needs LCGCMT >= 54).
(Marco Clemencic)
- Patch #1603. Use file catalog implementation in GaudiUtils.
(Markus Frank)
- Patch #1585.
Fixed warnings about breaking of strict-aliasing rules (gcc 4.1 optimized).
(Marco Clemencic)
- GaudiAlg (v10r3):
- Fixed bug #32541.
Modified the logic of GaudiCommon<PBASE>::fullTESLocation to return RootInTES
when the user asks for "" or "/Event" (and the rootInTES flag is true).
(Marco Clemencic)
- Patch #1625.
Introduce fix for the problem of non-deterministic automatically
assigned numerical IDs in the GaudiTuples and GaudiHistos base
classes.
(Chris Rob Jones)
- Patch #1620 (bug #32030).
- Modified GaudiSequencer to use createSubAlgorithm instead of creating them
via the ApplicationManager. This allow also some clean up.
- Added the property ShortCircuit (true by default) to allow to run all the
sub-algorithms regardless the accumulated result.
(Gerhard Raven)
- Patch #1585.
Fixed warnings about breaking of strict-aliasing rules (gcc 4.1 optimized).
(Marco Clemencic)
- GaudiGSL (v6r8):
- Fixed compilation warnings.
(Marco Clemencic)
- GaudiPython (v8r18):
- Fixed macro for test_GPyTestDict needed after change in the reflex test dictionary pattern.
(Pere Mato)
- Fixed a bug in Pythonization._loadDict. Missing "import sys".
(Wim Lavrijsen)
- Improvements and fixes to Python job options.
(Marco Clemencic, Wim Lavrijsen)
- Fixed compilation problem with Python 2.5.
(Marco Clemencic)
- Fixed bug #31677.
Move GaudiHandles.py from GaudiPython to GaudiKernel. Added a fake module for
backward compatibility.
(Marco Clemencic)
- Fixed bug #31819: Reduce GaudiPython dictionaries to strict minimum.
(Pere Mato)
- Patch #1550. Fix to compile with Python 2.5 (backward compatible).
(Paolo Calafiura, Sebastien Binet & Marco Clemencic)
- Gaudi (v19r7):
- Added few tests for Python job options.
(Marco Clemencic)
- GaudiExamples (v19r7):
- Modified GaudiCommonTests to expose bug #32541 (cannot retrieve RootOnTES
node).
(Marco Clemencic)
- Improvements and updates of the tests and updates the reference files.
(Marco Clemencic, Vanya Belyaev)
Packages Changes
- GaudiPolicy (v7r2):
- Added patterns and actions to automatically run tests based on QMTest. See
relese notes in GaudiPolicy for details.
(Marco Clemencic)
- Many fixes and improvements to install.py and replaced the
cmt_installarea_command.
(Marco Clemencic, Hubert Degaudenzi & David Quarrie)
- Added a pattern to disable the build of a package on specific platforms
from the package itself, to avoid conditional uses in GaudiRelease.
(Marco Clemencic)
- GaudiKernel (v23r2):
- Added a new incident type (AbortEvent) that force the (Minimal)EventLoopMgr
to skips all the top algorithms still to be executed for the current event.
(Marco Clemencic)
- Many improvements to python job options and configurables. See release
notes of GaudiKernel for details.
(Sebastien Binet, Marco Clemencic & Pere Mato)
- Patch #1523 (Vanya Belyaev)
Add possibility to have properties of the types std::map<int,int> and
std::vector<std::pair<int,int> >.
- Task #5807 (Marco Clemencic)
Added the header GaudiKernel/SerializeSTL.h to provide implementations of
operator<< for some common STL containers and GaudiUtils::*Map.
(Marco Clemencic)
- Minor change to the IUpdateManagerSvc interface.
(Marco Clemencic)
- Patch #1416 (Paolo Calafiura)
Improvements to DirSearchPath.
- GaudiSvc (v16r2):
- Patch #1533 (Charles Leggett)
Modified THistSvc to check if the file associated with a TTree has changed
and update the relevant structures. This happens when a ROOT file grows above
the maximum allowed size (a parameter in ROOT).
- Removed the message "ApplicationMgr INFO Successfully loaded modules :"
if the list of loaded modules is empty. (Hubert Degaudenzi)
- Patch #1469 (Markus Frank)
improve method PersistencySvc::getService(const std::string& service_type, IConversionSvc*& refpSvc)
to also check attached services and services known by name.
- GaudiGridSvc (v1r4):
- Disabled the build of the package on the unsupported platforms.
(Marco Clemencic)
- GaudiPoolDb (v2r15):
- Disabled the build of the tests (re-enable it with the tag GaudiPoolDbTests).
(Marco Clemencic)
- HbookCnv (v14r12):
- Disabled the build of the package on the unsupported platforms.
(Marco Clemencic)
- GaudiUtils (v1r3):
- Patch #1492, Patch #1493, Patch #1494
(Markus Frank)
Add components library containing file catalog and I/O data manager.
Used by DAQ/MDF and GaudiPoolDb.
- GaudiAlg (v10r2):
- Patch #1418 (Chris Jones)
Minor fix to GaudiHistos<PBASE>::monitorHisto to use the full TES path
instead of just the base histogram ID when registering the histogram to
the monitoring service. I.e. When an algorithm called 'MyAlg' creates a
histogram with ID 'MyID' register this as 'MyAlg/MyID' instead of just
'MyID', in order to prevent conflicts in the case some another algorithm
also creates a histogram with base ID MyID.
- GaudiGSL (v6r7):
- Comments clean-up. (Hubert Degaudenzi)
- GaudiPython (v8r17):
- Changed the structure of the package.
(description)
(Pere Mato)
- Removed dependency on Gaudi.Configuration. (Marco Clemencic)
- GaudiAud (v8r4):
- Bug #28570 (Charles Leggett)
Modified AlgContextAuditor to avoid that it passes a null pointer to
AlgContextSvc. It happens if the AuditorSvc is auditing objects that inherit
from INamedInterface, but not from IAlgorithm (e.g. services).
- GaudiSys (v19r6):
- Added dependency on GaudiPython, which is needed for gaudirun.py.
(Marco Clemencic)
- Gaudi (v19r6):
- Added the function Gaudi.Configuration.configurationDict to produce the
dictionary of configurations.
(Marco Clemencic)
- Many improvements to gaudirun.py.
(Marco Clemencic & Pere Mato)
- GaudiExamples (v19r6):
- Various minor improvements and fixes.
(Marco Clemencic & Pere Mato)
Packages Changes
- Gaudi (v19r5):
- new package that contains only the application part of the
framework (Gaudi.exe)
- GaudiAlg (v10r1):
- Added a few wrapper functions to remove unwanted explicit
dependency on AIDA (was breaking LHCb compilation) (Vanya Belyaev).
- patch #1345 (TupleObj) (Vanya
Belyaev):
- change the default type for "integer" data-fields from "long"
to "int".
- issue the warning messages for truncated fields:
- long
- unsigned
long
- unsigned int
- double
- add a shortcut for column ( IOpaqueAddress* )
- Changed names from "Long" to "Int" (Marco Clemencic).
- patch #1375 (Vanya
Belyaev). Allow configuration of Histogram1D
from job options. Extended "plot" and "book" methods to use "histogram
properties" without unpacking them into title/low/high/bins.
- patch #1356 (Vanya
Belyaev) GaudiAlgorithm.
- provide the accessors to IAlgContextSvc service
- provide new property "RegisterForContextService"
to enforce
the algorithm registration in Algorithm Context Service independently
on the external configuration of Auditor Service and AlgContextAuditor
(the default value is true)
- provide the functionality to select "interesting" algorithms
from the algorithm context queues (algorithm selectors)
- implement few simple specializations of selectors for
accessors
- patch #1273 (Vanya
Belyaev):
- Added automatic conversion of GaudiAlg::ID to std:string.
- Added properties to define histograms print out format in
GaudiHistos.
- patch #1231 (Vanya
Belyaev):
- Remove duplicated lines for printout of counters.
- Added new properties to format the counters to
GaudiCommon<TYPE>:
- "StatTableHeader"
: (string) the header line for printout
of the table
- "RegularRowFormat"
: (string) the format of the row for the
regular counters
- "EfficiencyRowFormat"
: (string) the format of the row for
the "binomial efficiency counters"
- "UseEfficiencyRowFormat":
(bool) the flag to allow the
special formatting of "binomial efficiency" counters
- GaudiExamples (v19r5):
- patch #1375 (Vanya
Belyaev). Allow configuration of Histogram1D
from job options (src/Histograms/HistoProps.cpp,
options/Histograms.opts)
- patch #1273 (Vanya
Belyaev): Added print out of "skewness" and
"kurtosis" to Aida2Root example.
- patch #1265 (Vanya
Belyaev). TupleEx4.py: new example to
illustrate the usage of TupleUtils module.
- patch #1263 (Vany
Belyaev): New python example which
illustrates the usage of various 1D&2D profile histograms in python
(HistoEx2.py).
- patch #1231 (Vanya
Belyaev): New example to illustrate the
usage of "Stat"-part of IChronoStatSvc.
- patch #1178 (Vanya
Belyaev). added example CounterSvcAlg.
- GaudiKernel (v23r1):
- Patch #1345 (Vanya
Belyaev). Minor modifications to improve
Tuples::TupleObj (GaudiAlg package) in GaudiKernel/NTuple.h
- substitute the explicit specialization for NTuple::Range with
the regular calls of std::numeric_limits<T>::min()/max()
- disable "#ifndef
ALLOW_ALL_TYPES"
- patch #1375 (Vanya
Belyaev). Allow configuration of Histogram1D
from job options.
- New class Gaudi::Histo1DDef for histogram
description/definition.
- Implementation of parsing for new histogram properties.
(Sascha Mazurov)
- Patch #1357 (Vany
Belyaev). Minor improvements to
Gaudi::Utils::setProperty():
- allow to set the documentation of a property
- allow to set a property from a PopertyType
- patch #1247. (partial) Sebastien Binet (& Marco
Clemencic) avoid duplication of symbols in files generated by
genconf.
(Warning: Win32 implementation missing)
- Fixed bug #29806 (Markus
Frank). Wrong call to setDataProvider.
- Hubert Degaudenzi &
Marco Clemencic
- factored out the main application part to the Gaudi package.
- added an option to genconf that adds a fallback module
for the location of Configurables and ConfigurableDb
- Modified the genconfig CMT pattern for the previous change to
have AthenaCommon by default and if it doesn't exist fall back to
GaudiKernel. This is a temporary fix until both approaches are merged.
- Patch #1260 (Hubert
Degaudenzi & Paolo Calafiura) .moved
the MinimalEventLoopMgr from GaudiSvc to GaudiKernel. The factory for
this service is still in GaudiSvc
- patch #1231 (Vanya
Belyaev):
- Splitted IChronoStatSvc.h into IChronoSvc and IStatSvc.
- Remove ICounterSvc::CountObject and replaced it with Stat.
- Added few free functions to format StatEntity objects as
table rows.
- Added the file cbrt.h, which provides an implementation of cbrt
(cubic root) to all the platforms (it is a built-in function of gcc)
(Marco Clemencic).
- patch #1246 (Vanya
Belyaev). Introduced 2 new classes:
- Gaudi::Guards::ExceptionGuard.
executes a functor in a
"standard" try-catch block.
- Gaudi::Guards::AuditorGuard.
executes a function of an object
when the instance is created and a second one when destroyed, allowing
automatic "clean-up" (in case of early exit).
- patch #1253 (Charles
Leggett). This patch fixes Algorithm.cpp,
AlgTool.cpp and Service.cpp such that there is a consistent use of the
auditorSvc-after[whatever] in the catch loops when an exception is
thrown.
- patch #1250 (Pere Mato):
Removed the default constructor of
Service because it is causing a memory leak in Reflex.
- patch #1227 (Vanya
Belyaev). Added the functions
"Gaudi::Utils::setProperty(IInterface*,...)",
simpler counterparts of
"Gaudi::Utils::setProperty(IProperty*,...)".
- patch #1226 (Vanya
Belyaev):
- SmartIFBase<TYPE>:
- explicitely disable copy constructor and assignement
- add "checking operator", operator!()
- SmartIF<TYPE>
and SmartIF<IInterface>:
- add "const" into copy constructor
- add the constructor from underlying pointer
- add "const" into standard assignment
- add "const" into template assignment remove line duplicates
between standard assignement and assignment from the regular pointer
- fix typo in return type of assignment from the base
- add "checking operator", operator!()
- patch #1182 (Sebastien
Binet): Improved precision for timing
measurements in ProcessDescriptor
(on linux). The patch allow to use the function
getrusage when possible to get a microsecond precision instead of
millisecond. When getrusage cannot be used, the timing is measured in
the old way.
- added the possibility to use the universal time for the
messages. There is a new "%u"
format for this. It replaces the usual
"%t" in the
MessageSvc.Format (Hubert
Degaudenzi).
- patch #1178 (Vany
Belyaev). The patch substitute the internal
counters, used for (I)CounterSvc by generic counters of type StatEntity:
- This allow to reuse the useful functionality of StatEntity
class.
- In addition it will allow an easy publishing and integration
of counters with monitoring tasks.
- Also it adds more functionality for grouping of counters, in
particular the extraction of the whole group of counters (required by
Matt Needham)
- The printout of counters is now coherent with printout of
generic counters through GaudiCommon<T>.
- GaudiPolicy (v7r1):
- added global macro <project>_home
(Hubert Degaudenzi).
- Introduced 2 new make fragments (install_python and
install_scripts) based on the install.py script for the python modules
and script installation (Hubert
Degaudenzi).
- fixed the merge_rootmap and merge_genConf fragments to avoid
the double building of the target in case of parallel build (Hubert
Degaudenzi).
- patch #1249 (Sebastien Binet). Fix to avoid "use" cycle with
GaudiSvc.
- added "use Python *
LCG_Interfaces -no_auto_imports" for
compilation on win32. the "win32con" module is needed with the
locker.py script (which is used for rootmap building) (Hubert
Degaudenzi).
- Added a python script to handle the installation of files in a
platform-independent way and to keep track of the installed files so
that if many packages add files to the same directory, a "make clean"
in a package removes only the files that the package installed (use
cases: python modules, LHCb event model classes) (Macro Clemencic).
- added an option to install.py to be able to select a
destination name different for the source one (Marco Clemencic).
- GaudiPython (v8r16):
- patch #1158 (Sebastien
Binet). (slightly modified by Marco
Clemencic): Minor changes to GaudiHandles.py to improve memory
footprint
- patch #1265 (Vanya
Belyaev):
- Add new class GaudiPython::TupleToolDecorator for
"decorations" of ITupleTool interface.
- Change the default CLID for event tag collections from
RowWiseTuple to ColumnWiseTuple. This change has been done in C++ long
time ago, but have not been propagated to python.
- Add dictionaries for ITupleTool and IHistoTool.
- New module TupleUtils.py: allow manipulation of tuples from
outside algorithms or tools.
- patch 1263 (Vanya
Belyaev).
- Allow "smart and friendly" manipulation of
AIDA::IProfile[1D,2D]
objects from Python.
- Improvements in iProperty: raise AttributeError in
__getattr__ and __setattr__ if the property
does not exist (instead of
the internal C++ exception).
- Added module HistoUtils containing "script-friendly"
functions to manipulate histograms.
- GaudiSiteSvc (removed): should be supersided by GaudiGridSvc and
the DataStreamTool.
- GaudiSvc (v16r1):
- Fix to allow any of the following commands in the job options
(Sascha Mazurov):
#printOptions
full
#printOptions
FULL
#printOptions
- patch #1213 (Charles
Leggett). Finalize HistorySvc before any
other service.
- patch #1392 (Vanya
Belyaev & Sascha Mazurov). Allow "::" in
algorithm and tool names to configure them, e.g.:
MyNamespace::MyAlg.MyProperty = 123;
- patch #1375 (Vanya
Belyaev). Allow configuration of Histogram1D
from job options.
- Allow tuple-like quantities to appear as
right-hand-expressions in job options. (Sascha Mazurov)
- Allow the "on-the-fly" redefinition of the histogram
properties via options of the HistogramSvc.
- Patch #1358 (Charles
Leggett). Fixed a bug in THistSvc. In the
initialization clause of a "for" loop, the iterator was set using "==" instead of "=".
- Patch #1359. (fixes bug #28603) (Vanya Belyaev): Added 2
warnings in case an option file is included twice (one at the parser
level and one at the JobOptionSvc level). Note: The included file is
processed only the first time it is included.
- Patch #1346 (Vanya
Belyaev): Add the possibility to print all
properties of application manager. The properties are printed in
ApplicationMgr::configure()
if the (new) property "PropertiesPrint" is set
to true (default is false).
- patch #1273 (Vanya
Belyaev): Avoid print out of the table
header for empty stats (ChronoStatSvc).
- patch #1252 (Charles
Leggett):
- Do not dereference the TFile pointer in finalize if it is a
temporary file (== NULL).
- Add a job option to turn on/off printing of all TObjects in
finalize. (off by default)
- Convert all double slashes ("//") to single slashes (so that
the path "A/B/C" matches "A//B/C") to avoid problems in
case of typos
in job options.
- patch #1234 (Charles
Leggett). Modified the way the ToolSvc
uses the HistorySvc. ToolSvc will try to get the HistorySvc when
creating a tool and cache the pointer if it is available.
- Patch #1243 (Chris
Jones): Equipe ApplicationMgr with a new job
option ReflexPluginDebugLevel which is used to set the debug level of
ROOT::Reflex::PluginService::SetDebug(level).
Useful to aid in the
debugging of library loading problems.
- task #5157 (Make MessageSvc thread-safe) (Marco Clemencic):
Added 3 boost mutexes to MessageSvc to protect few internal data
members from possible concurrent access.
- patch #1178 (Vanya
Belyaev).
- The proposed patch substitute the internal counters, used for
(I)CounterSvc by generic counters of type StatEntity.
- This allow to reuse the useful functionality of StatEntity
class.i n addition it will allow an easy publishing and integration of
counters with monitoring tasks.
- Also it adds more functionality for grouping of counters, in
particular the extraction of the whole group of counters (required by
Matt Needham)
- The printout of counters is now coherent with printout of
generic counters through GaudiCommon<T>.
- GaudiUtils (v1r2):
- Patch #1266 (Vanya
Belyaev) GaudiUtils/HistoStats.h,
src/Lib/HistoStats.cpp: new files with simple class
Gaudi::Utils::HistoStats
for evaluation of few basic statistical
quantities for AIDA::histograms.
The moments (and therefore all other
quantities) are calculated on
bin-by-bin"-basis, since the corresponding cumulants needed for
"event-by-event"-calculations are not available:
- moments
- central moments
- skewness
- kurtosis
- patch #1273 (Vanya
Belyaev). added new functions to
GaudiUtils/HistoStats.h:
Packages Changes
- GaudiAlg (v10r0):
- patch #1161 (Vanya
Belyaev). Improvements and clean-up in StatEntity:
- Removed "weight"-related functions and methods (unused)
- Added binomial error calculation for efficiency-like counters
- Improved print-out format
- Added methods to make StatEntity mode DIM friendly
- patch #1160 (Marco
Clemencic). Changed from StatusCode to void the returned value of
- Algorithm::setExecuted()
- Algorithm::resetExecuted()
- Algorithm::setFilterPassed()
- Patch #1134 (Chris
Jones). Update the way GaudiCommon handles get and put methods
to respect the settings of the RootOnTES
(now renamed RootInTES, see
below)
- Trivially rename the RootOnTES option RootInTES, to force
code
using this to no longer compile. Fixes will be trival, but this is done
to make sure all cases where this is used are found and properly
assessed to make sure they are updated appropriately, to caught a few
special cases.
- All get and put methods now interally prepend the rootInTES() to their data
locations as appropriate. A new argument is added to the get and put
methods to optional disable this new behaviour.
- Patch #1136 (Chris
Jones):
- Update to GaudiHistos to automatically register histograms to
the monitoring service via calls declareInfo(...) when they are
booked via the plotXD(...)
or bookXD(...) methods.
- New job option 'MonitorHistograms' to turn on/off the
histogram registration as required (default is true)
- Patch #1127 (Vanya
Belyaev):
- Event tag collections (aka "N-tuples with POOL persistency")
allows to write as N-tuples items almost all objects, known for
POOL/Reflex. However this nice fucntionality was not available from
"friendly" N-tuples interface, used in GaudiTupleAlg and
GaudiTupleTool. The proposed patch solved this problem. Now for tuples
with POOL persistency one can store ANY objects, known for
POOL/Reflex. It is done through new (templated) method Tuples::TupleObj::put.
- IMPORTANT: Previously the method Tuples::TupleObj::write have
been disabled form event tag collections. (The actual writing have been
postponed for OutputStream phase). From now mehtod is reenabled again.
One CAN use it.. The old way (with OutputStream) is still possible but,
of course, deprecated.
- The end-of-the-job printout of all known Event Tag Collection
is extended with the printout of the full map of the field names and
their actual types.
- The return codes from various methods of class
Tuples::TupleObj are modified a bit to use the predefined enums instead
of the generic StatusCode::FAILURE
- The default CLID for event tag colelctions is set to be
CLID_ColumnWiseTuple
- patch #1135 (Chris
Jones). A minor little fix for GaudiAlg, to correctly define the
< operator for
the GaudiAlg::ID class
(was actually doing > !!)
- GaudiAud (v8r2):
- patch #1171 (Vanya
Belyaev). The enhancement of existing Algorithm Context Service
is the primary goal of the proposed patch. The existing AlgContextSvc
is not safe with respect to e.g. Data-On-Demand service or to
operations with subalgorithms. The patched service essentially
implements the queue of executing algorithms, thus the problems are
eliminiated. In addition the enriched interface provides the access to
the whole queue of executing algorithms.
- patch #1150 (Charles
Leggett). If the AlgErrAuditor detects that an
illegal
StatusCode/MessageStream combination has been issued by an Algorithm,
an exception or an abort()
can be thrown, configured by a jobOpt. Also prints out summaries at the
end of the job of illegal combination.
- GaudiPolicy (v7r0):
- Fixed a problem with merge_files.py when the directory of the
destination file does not exist (Marco Clemencic).
- Applied an committed a slightly modified version of the latest
version of patch #1159 (file #4075), to allow the concurrent merging of
files on NFS (Marco Clemencic
& Sebastien Binet).
- patch 1159 (Pere Mato):
merging files during build procedure with some additional changes:
- Reverted the dependency to GaudiSvc. This is needed for
genconf to work specially when building the Gaudi project itself. The
only possibility to remove this dependency is by providing a minimal
application manager to support the instantiation of the components for
which you need to dump the properties and they default values.
- Moved the stampfiles to the destination area (i.e. the
InstallArea). In this way if the install area gets deleted the merged
file is reconstructed again.
- Renamed the fragment merge_genmap to merge_rootmap to
generalize it and use it also for merging the rootmaps from reflex
dictionaries.
- Improved the rules in the makefile fragments and corrected
some error messages.
- Fixed a problem with the pattern "install_more_includes" which
did not add the correct include dirs if the project was not using the
install area (Marco Clemencic).
- fix to bug #24973 (Mattias
Ellert) : Two pattern in GaudiPolicy uses private ...
public
instead of private ... end_private. This causes some private
definitions the leak into public. Many
client package could be affected.
- GaudiKernel (v23r0):
- Extended the IIncidentSvc interface to make it possible to
register a listener for only one occurrence of the requested event (see
bug #25552) (Marco Clemencic).
- patch #1171 (Vanya
Belyaev). The enhancement of existing Algorithm Context Service
is the primary goal of the proposed patch. The existing AlgContextSvc
is not safe with respect to e.g. Data-On-Demand service or to
operations with subalgorithms. The patched service essentially
implements the queue of executing algorithms, thus the problems are
eliminiated. In addition the enriched interface provides the access to
the whole queue of executing algorithms.
- patch #1163 (Vanay
Belyaev). Patch to allow the following syntax (The setting of
properties through strings is still possible):
setProperty (
"OutputLevel" , "4" ) ;
setProperty ( "OutputLevel" , 4 ) ; //new
setProperty ( "Enable" , "False" ) ;
setProperty ( "Enable" , false ) ; //new
setProperty ( "ErrorMax" , "10" ) ;
setProperty ( "ErrorMax" , 10 ) ; //new
std::vector<double> data = ... ; //new
setProperty( "Data" , data ) ; //new
std::map<std::string,double> cuts = ... ; //new
setProperty( "Cuts" , cuts ) ; //new
std::map<std::string,std::string> dict = ... ; //new
setProperty( "Dictionary" , dict ) ; //new
- patch #1161 (Vanya
Belyaev). Improvements and clean-up in StatEntity:
- Removed "weight"-related functions and methods (unused)
- Added binomial error calculation for efficiency-like counters
- Improved print-out format
- Added methods to make StatEntity mode DIM friendly
- patch #1160 (Marco
Clemencic). Changed the returned value from StatusCode to void of
- Algorithm::setExecuted()
- Algorithm::resetExecuted()
- Algorithm::setFilterPassed()
- patch #1157 (Sebastien
Binet). Here is a simple patch to harmonize the interaction with
the underlying m_outputLevel data member of each of these main Gaudi
components. It makes sure that the 3 of them have:
int
outputLevel () const;
void
initOutputLevel(Property&); //update handler
also added this method to MsgStream:
void
setMsgSvc( IMessageSvc* svc ) {
m_service = svc;
}
- patch #1136 (Chris
Jones): Updates to Algorithm and AlgTool required
for changes in GaudiAlg for automatic registration of data
to the monitoring service
- Addition of the same declareInfo(...) methods in AlgTool as
in
Algorithm
- Replace hardcoded monitor service name with new job option
- New method to provide 'easy' direct access to monitor service
via pointer
- patch #1129 (Sebastien
Binet): Add the method outputLevel() to Auditor.
- fix to bug #25852 bis (Marco
Clemencic): Fixed compilation problem on windows by adding the
definitions for the missing functions localtime_r and gmtime_r (header
GaudiKernel/time_r.h).
- Patch #1126 (Vanya
Belyaev):
- GaudiKernel/StatEntity.h, src/Lib/StatEntity.cpp
- Add the assignment operator from the scalar value according
to the request by Ulrich Kerzel (LHCb/RICH)
- Add two new methods "efficiency" and "efficiencyErr"
for evaluation of binomial estimate of the efficiency, associated
with the counter. If the counter could be interpreted as efficiency,
these methods produce right results.
Method "efficiency" returns either
"flagMean" or -1, if the interpretation of counter as efficiency is not
possible. In a similar way "efficiencyErr" returns the binomial
estimate of the uncertainty or -1, if the interpretation of counter as
efficiency is not possible. Note that there could be sizable difference
between RMS estimate "flagMeanRMS" and the binomial estimate
"efficiencyErr", however for large statistics and for non-extremal
(close to ~0 or, especially ~100%) efficiencies, these estimates should
be very similar.
- GaudiKernel/ToStream.h
- Add the printout for std::list
- Add the template parameters for std::vector, std::set,
std:map, GaudiUtils::Map, GaudiUtils::VectorMap, GaudiUtils::HashMap.
It
allows to use all these function for containers with non-default
optional template arguments, e.g. allocators, comparison criteria, hash
functions or underlying containers.
- fix to bug #25852 (Andy
Salnikov). Message and MessageSvc. Messages now have one more
format flag which is
replaced with the formatted timestamp on output. Default format string
has not changed so default output will look identical to what it was
before. The format of the timestamp can be changed through the
additional format string similarly to the message format string. Time
format can contain anything that is accepted by strftime plus
additional '%f' code for
milliseconds.
- patch #1125 (Marco
Clemencic). Fixed INamedInterface in order to provide the right
IInterfaceID. An empty virtual destructor has been added.
- Patch #1103 (Martin
Woudstra). The attached 2 patches (one for GaudiPython and one
for GaudiKernel) contain the changes needed to support
ToolHandleArray's (a 'vector' of ToolHandles). This is a new feature,
and is already in use in ATLAS. In addition to the ToolHandleArray and
its associated base classes, there is the GaudiHandleArrayProperty, and
an update to genconf to support it
- Patch #1099 (Chris
Jones). Add Specialization stream operator for std::vector<T,A> to
MsgStream.h Allows print out of vector created with custom allocators
e.g. std::vector<
RichSmartID,
boost::pool_allocator< RichSmartID > >
- Patch #1092 (Chris
Jones). There is a bug in the current implementation of the format(..) method in
MsgStream.(cpp,h) which means if a user uses the format method twice in
one message request, wrong information is printed. The attached patch
fixes this by returning instead a std::string.
However, if somewere a user is explicitly using the returned char * pointer (They really
shouldn't be...) a small change to their code would be required. i.e.
char * c = format("XXX,x)
to
std::string s = format("XXX,x);
c = s.c_str();
- GaudiPoolDb (v2r13):
- fixed load<TYPE>
function in PoolDbNTupleCnv.cpp. The "len" argument which is passed
to the swapFromBuffer method is now an int instead of a long. This
ensures backward readability for the already written data. This fixes
the problem of the framework with the amd64 platform (Marco Clemencic).
- enlarge the limit for the output file size to 500 GBytes (Markus Frank).
- removed explicit loading of component libraries through ApplicationMgr.Dlls. It is not
needed any more. Only the PoolDbCacheSvc needs explicit loading of POOL
component and GaudiKernelDict (Hubert Degaudenzi).
- GaudiPython (v8r15):
- Patch #1126 (Vanya
Belyaev). dict/selection_kernel.xml update the exclusion list
and remove unnesessaryclasses, picked up by internal typedefs, in
particular:
"std::unary_function<std::pair<,Tuples::>"
"std::unary_function<std::pair<,NTuple::>"
"std::unary_function<std::pair<,AIDA::>"
- Patch #1103 (Martin
Woudstra). The attached 2 patches (one for GaudiPython and one
for GaudiKernel) contain the changes needed to support
ToolHandleArray's (a 'vector' of ToolHandles). This is a new feature,
and is already in use in ATLAS. In addition to the ToolHandleArray and
its associated base classes, there is the GaudiHandleArrayProperty, and
an update to genconf to support it.
- added setOwnership()
calls in addAlg() and removeAlg() to avoid segfault
at the end of the execution due to double deletion of algorithms (Pere Mato)
- Patch #1106 (Vanya
Belyaev). possible solution for Savannah bug #25109 and patch
#1024
- dict/selection_kernel.xml. add the dictionary for
GaudiHandleProperty class
- python/gaudimodule.xml
- PropertyEntry
- reimplement constructor in a way to set the data member
_value to be valid python type for LHCbproperties and to keep the
previousl behaviour for ATLAS GaudiHandleProperty
- add local data mamber PropertyEntry._property and
function PropertyEntry.property()
to access to the original property. (Useful to perform the second try,
if the failure occurs in constructor)
- minor modification of iProperty.__getattr__
to avoid the sad printout of numerous warning messages: "Warning in <TClass::TClass>: no
dictionary for class
vector<pair<double,double> > is available ".
- GaudiSvc (v16r0):
- Patch #1146. HistorySvc is now capturing the state of
algorithms and service during the BeginEvent incident. It uses the new
feature of the incident service to be called only once (Charles Leggett & Marco
Clemencic).
- Extended IncidentSvc to make it possible to register a listener
for only one occurrence of the requested event (see bug #25552) (Marco Clemencic).
- Fixed bug #25552 (Marco Clemencic). If a listener is removed in
the middle of an incident, there will not be a segmentation fault. If a
listener unregister itself, it will not be called again. If the
listener is removed from outside, the listener will be called once more.
- patch #1171 (Vanya
Belyaev). See above.
- patch #1172 (Sasha
Mazurov & Vanya Belyaev). Consider the first line of an
option file as a comment if it starts with "#!" .
- patch #1161 (Vanya
Belyaev). See above.
- patch #1160 (Marco
Clemencic). See above
- patch #1162 (Vanya
Belyaev):
- Fix a bug with vectors-properties in "python"-format.
- New features for "#printOptions" directive:
- "#printOptions FULL"
directives now switches off ("#pragma
print OFF") the printout of properties during the processiong
phase and blocks the subsequent actions of "#pragma print OFF"
directives. The feature has been requested by Gloria Corti for Gauss.
- The printout of parser catalogue (activated by "#printOptions FULL" directive)
is modified to include the trailing semicolumn symbol ";". It allows
the save of this printout through cut-n-paste as configuration file for
other jobs.
- One can now dump the content of parser catalogue into a
file. It is controlled by the property of JobOptionsSvc "DumpFile". The
value of the property is a name of the output file for dumping of
parser/property catalogue. The default value of this property is empty.
It also check the environment variable "JOBOPTSDUMPFILE", where one
can specify the name of output file:
bash>
JOBOPTSDUMPFILE=dump.opts Gaudi.exe ExtendedProperties.opts
[t]csh> setenv JOBOPTSDUMPFILE dump.opts
[t]csh> Gaudi.exe ExtendedProperties.opts
use it later:
>
Gaudi.exe dump.opts
- patch #1130 (Sebastien
Binet). Here is a patch to allow doing this (in pseudo-code)
from the C++ side:
StatusCode Alg::initialize()
{
//
blah-blah IProperty * svc = 0;
service(
"THistSvc", svc, createIf=false ).ignore();
StringArrayProperty outputProperty( svc->getProperty(pName) );
//
update/modify the property and send it back to the service
return
svc->setProperty( outputProperty );
}
i.e: even if the THistSvc has already
gone through its initialize method, the configuration of in-/output
(ROOT) streams will be reconfigured. This patch replaces std::vector<std::string>
properties by StringArrayProperty and attaches to each of them a
callback method.
- Patch #1104 (Charles
Leggett):
- Currently, one can have the MessageSvc summarize all message
counts at the end of the job using the showStats boolean prop. However,
this only works if the enableSuppression prop is set to True. This
patch to MsgSvc.cpp separates the two functions to make them
independantly configurable. If you're not using these flags, it won't
affect you (by default, these flags are set to False).
- extension to only print stats above a certain level if
desired, controlled using a new property "statLevel".
- patch #1060 (Sebastien
Binet). Added multiple log feature to the MessageSvc. One can
define a log file per algorithm.
MessageSvc.loggedStreams = {
'MyAlg1' :
'some_file.log',
'MyAlg2' :
'some_other_file.log',
'MyAlg3' :
'some_file.log'
};
- fix to bug #25852 (Andy
Salnikov). See above.
- RootHistCnv (v9r14):
- Added extra argument needed in constructor of TBranch. This is
new in version 5.15.06 of ROOT (Pere
Mato).
- PartPropSvc (v2r6):
- Patch #1186 (Paolo
Calafiura). added missing charged geantino.
- GaudiExamples (v19r4):
- Added example to show the usage of "single-shot" incident
listeners (see bug #25552) (Marco
Clemencic).
- patch #1134 (Chris Jones). Patch to demonstrate the patch.
Please have a look at the release notes of the GaudiAlg package.
- patch #1127 (Vanya
Belyaev). Added examples POOLIOExtCollWrite and POOIOExtCollRead
to demonstrates the patch. Please have a look at the GaudiAlg package
release notes.
- patch #1126 (Vanya
Belyaev). Modification of examples to illustrate the patch
- patch #1060 (Sebastien
Binet). Added QotdAlg which demonstrates this new multiple log
stream feature.
- removed explicit loading of component libraries through
ApplicationMgr.Dlls. It is not needed any more (Hubert Degaudenzi).
- patch #1106 (Vanya
Belyaev). python/Properties.py python/ExtenderProperties.py an
attempt to deal with new semantics of iProperty.properties() method
(see the series of patched to GaudiPython package)
Packages Changes
- GaudiPolicy (v6r5):
- added the local package root directory for the compilation of
the package. It is needed for the parallel build . No need for
dependency on the install_more_include pattern any more (Hubert Degaudenzi).
- patch #1080: fix in the
GaudiPolicy/cmt/fragments/genconfig_header to address make's slc3
limited features (and prevents CMT from looping or stopping build in
PEDANTIC mode) (Sebastien Binet).
- removed the genconfig_cmd macro. Rely on the one in the
GaudiKernel requirements file (Hubert
Degaudenzi).
- reenabled the -Wl,--no-undefined option by default (not under
the LHCb tag any more)
- GaudiKernel (v22r2):
- Patch #1081 (fix to bug #24704): fix the crash that happens
when the destinatin file of genconf has a "+" in its path (Sebastien Binet).
- Patch #1080: fixes to GaudiKernel/src/Util/genconf.cpp (Sebastien Binet):
- fix handling of templated components
- fix handling of (default value of) BooleanProperties
- fix handling of NaN DoubleProperties (follows the good old
Garbage In, Garbage Out pattern, even though a warning is issued during
genconf processing...)
- Patch #1073. Simple modification of IExceptionSvc interface
(and the implementation ExceptionSvc) to avoid the explicit appearence
of class Algorithm in the interface. The interface is modified to
substitute Algorithms with INamedInterface. It allows to use the
service in much wider context, in particular with tools, services and
auditors (Vanya Belyaev).
- Patch #1058 (partially). Makes sure a DoubleProperty is
understood as a double on the python side (and not
converted into an int as it the cast) (Sebastien Binet)
- added merge_genconfDb.py scripts to merge configurables (Sebastien Binet).
- patch #1070. The python configurables generated with the
current genconf.cpp return the python (mangled) class name from the
function getType(). This should be the C++ class name, otherwise the
ToolSvc will not find tools from classes in namespaces and/or templated
classes. This is critical as many classes in ATLAS as of these
categories and all those are broken now (Martin Woudstra).
- patch #1071. The GaudiHandle version used in ATLAS has since
some time an 'empty()' member function to indicate that no component is
supposed to be retrieved nor used. For some reason this member function
did not make it into Gaudi 19, so now the ATLAS code is broken. patch
adds this member function to the GaudiHandleBase class, and allows the
users to specify an 'empty' handle in the constructor (i.e. "" is kept
is-as and does not trigger the setting to the default type) (Martin Woudstra).
- patch #1049: do a full include of SmartDataPtr.h instead
of a forward declaration (Paolo
Calafiura).
- GaudiSvc (v15r3):
- fixed bug #24769. use of the TFile::Open method instead of the
TFile constructor to open a file. This enable the use of the ROOT
plugins (castor, rfio, gfal, ...) (Hubert Degaudenzi)
- reverted to ranlux instead of ranlux64 for the random engine.
(please see bug #24689) (Hubert
Degaudenzi)
- Patch #1073. Simple modification of IExceptionSvc interface
(and the implementation ExceptionSvc) to avoid the explicit appearence
of class Algorithm in the interface. The interface is modified to
substitute Algorithms with INamedInterface. It allows to use the
service in much wider context, in particular with tools, services and
auditors (Vanya Belyaev).
- Patch #1060. patch to MessageSvc to be able to log individual
message sources ("Alg1", "Foo") to individual ofstreams ("Alg1.log",
"Foo.log") (Sebastien Binet).
- Patch #1035 (Vanya
Belyaev)
- changed the storage of the seeds of HepRdm::Engine to
vector<long>
instead of vector<int>
- removed the C-cast (long *) to initialize the CLHEP seeds
- RootHistCnv (v9r13):
- fixed bug #24769. use of the TFile::Open method instead of the
TFile constructor to open a file. This enable the use of the ROOT
plugins (castor, rfio, gfal, ...) (Hubert Degaudenzi)
- GaudiMonitor (v1r2):
- fixed compilation problems on windows (Hubert Degaudenzi)
- PartPropSvc (v2r5):
- Fixed default for PDGTABLE (Charles Leggett)
Packages Changes
- GaudiAlg (v9r12):
- patch #1002: New auditor for enhanced timing/profiling of the
code. Essentially it apply ISequencerTimerTool (used inside
GauduSequencer) for much wider context. It perform the autition for ALL
algorithms (including top level algororithms, algorithms not embedded
into GaudiSequencers and algorithms invoked by Data-On-Demand service) (Ivan Belyaev).
- GaudiAud (v8r1):
- patch #972 (Charles
Leggett).
- add messageCount to IMessageSvc
- extend Auditor::(sys)afterExecute to pass a const
StatusCode&, which is the return code of the algorithm
- new auditor to monitor algorithms, issue message if algorithm
writes out an ERROR or FATAL, but returns SUCCESS
- GaudiExamples (v19r2):
- patch #1019: refactor of the library into a component library.
Added example for the PartPropSvc (Charles Leggett).
- patch #1024 (Vanya
Belyaev)
- added python/Properties.py
python/ExtendedProperties.py. Two python examples (full analogues for
C++ examples options/Property.opts and options/ExtendedProperties.opts)
which illustrates the usage of simple and extended properties through
python
- options/DataOnDemandSvc.opts
- replace the (old) properties DataOnDemand.Nodes and
DataOnDemand. Algorithms with new map-like properties
DataOnDemand.NodeMap and DataOnDemand.AlgMap
- make use of shorter TES paths (omit the leading '/Event')
- patch #990 (Vanya
Belyaev):
- src/Histograms/Aida2Root.cpp, options/Aida2Root.opts: new
example which illustrated the usage of Aida2ROOT utility
- python/Aida2RootEx.py: the same in Python
- python/TupleEx3.py: new example which illustrates more
possibilities to fill N-tuples with arrays&matrices
- patch #972: Added AlgErrAud example (Charles Leggett)
- GaudiKernel (v22r1):
- Patch #1033. patch to genconf which prevents it to segfault
when no property could be dyn-casted (Sebastien Binet).
- Patch 1032: Added a helper class to allow the usage of
IUpdateManagerSvc from python. The helper class is
IUpdateManagerSvc::PythonHelper, declared as friend of
IUpdateManagerSvc. The implementation consists of 2 static functions
implemented in dictionary.h (Marco
Clemencic).
- Fixed bug #23811: patch #1001 is breaking Configurables
generation (Pere Mato).
- Patch #1001 (Vanya
Belyaev):
- fixes which allow to retrieve the private tools not only from
Algorithm, Services and AlgTools, but also from Auditors.
- Update the queryInteface method for AlgTool, Algorithm,
Auditor and Servicebase classes to allow query for INamedInterface, in
addition "C-cast" is substituted with "static_cast"
- genconf.cpp: applied "patch #1016: configurable genconf" fixed
"bug #23649: ICounterSvc inheritance tree and Reflex::PluginSvc" (Pere Mato)
- fix to patch #1009. Avoid infinite recursion (Martin Woudstra).
- Applied patch #1009: patches to fix XyzHandle parsing from
python jobOptions (Sebastien
Binet)
- Patch #1007 (Paolo
Calafiura):
- turned the templated member functions operator <<
(T&) and its partial spec operator <<
(vector<T>&) into open functions. This appears to
remove ambiguities a user defined MsgStream operator << template
(typically in a data object header file). The compiler sees the
user defined template as a better specialization and matches that with
no ambiguity.
- removed the MsgStream& operator(std::ostream&)
recently proposed as a patch since it does not serve any useful purpose
- Applied patch #1000: improvement in ConfigurableDb output for
genconf (Pere Mato)
- Applied [partially] patch #997: genconf.cpp patch (Pere Mato). It adds to
genconf.cpp:
- a "double loading" libraries to shield against dual_use
libraries (which could bring lots of external libraries into the
generated Configurable)
- the generation of an ASCII file (a-la-rootmap) to describe
Configurables for the benefit of the (athena) PropertyProxy.py.
- Variation of the templated streamer that should provide the
same
functionality and address the ambiguous overload problems ATLAS saw
with the template (Paolo
Calafiura)
- patch #977 on MsgStream (Charles Leggett).
- patch #972 (Charles
Leggett):
- add messageCount to IMessageSvc
- extend Auditor::(sys)afterExecute to pass a const
StatusCode&, which is the return code of the algorithm
- new auditor to monitor algorithms, issue message if algorithm
writes out an ERROR or FATAL, but returns SUCCESS
- removed GCCXML_CXXFLAGS definition following fix in reflex (Marco Cattaneo).
- patch #971: added ServiceHandle and GaudiHandle (Charles Leggett).
- GaudiPolicy (v6r4):
- Modified GaudiPolicy so that it supports distcc at CERN. The
value of the macro "cpp" has been changed (David Quarrie).
- Applied patch #1016: configurable genconf. Added genconfig
fragments and modified requirements to make use of it (default is not
to do it) (Pere Mato)
- linking option modification (Marco Clemencic):
- added the "--no-undefined" link flag for the building of
librairies and applications on Linux. This enforces the symbols
resolution.
- added the "--as-needed" link flag for the building of
librairies and applications on the slc4 platform. This
instructs the runtime linker to avoid looking for uneeded librairies.
- These flags are only enabled with the LHCb CMTEXTRATAGS.
- added a global cmtpath_pattern in the GaudiPolicy requirements
file in order to at least prepend to the PYTHONPATH env variable the
InstallArea/python directory (Hubert
Degaudenzi).
- GaudiPoolDb (v2r11):
- Patch #999 (Markus
Frank): Properly implement (previously existing, but not
working...) option to set database domain options. To
increase e.g. max. file size to ~3.5 GB for ROOT set:
PoolDbCacheSvc.DomainOpts = {
"Domain[ROOT_All].TREE_MAX_SIZE=3500000000 TYP=longlong" };
- fixed compilation flags for the generation of the dictionary in
32 bits mode (Hubert Degaudenzi).
- GaudiPython (v18r14):
- Patch #1032:Extended the python interface of IUpdateManagerSvc
using the helper class IUpdateManagerSvc.PythonHelper (Marco Clemencic)
- cmt/requirements: moved apply_patter linker_library to the
public section to allow packages to linker with GaudiPythonLib linker
library. Request from Vanya (Pere
Mato).
- Patch #989 (Vanya
Belyaev):
- GaudiPython/TupleDecorator.h, src/Lib/TupleDecorator.cpp use
new typedefs from GaudiKernel instead of local types.
- dict/kernel.h, dict/selection_kernel.h added the new class
Gaudi::Aida2ROOT
- python/GaudiAlgs.py add the default None argument for method
"histoSvc" to be coherent with documentation and "evtSvc"/"detSvc"
methods
- python/gaudimodule.py add 2 methods for HistogramService:
getAsROOT ans getAsAIDA for returning either the native representation
or the usual one.
- Patch #988: new class PropertyEntry in gaudimodule (Pere Mato)
- GaudiSvc (v15r2):
- Patch #1017: Here is a patch to ChronoStatSvc to optionally
dumps its stats into an ASCII file (a .INI-like format) to ease the
offline processing of these stats (usefull for, eg, a performance
monitoring framework) (Sebastien
Binet).
- patch #1001 (Vanya
Belyaev)
- src/ToolSvc/ToolSvc.cpp Couple of fixes with allows to use
the private tools from Auditors.
- src/AuditorSvc/AuditorSvc.cpp Allow to have an auditor
with name not equal to the type.
- src/ApplicationMgr/ApplicationMgr.cpp add
INamedInterface into ApplicationMgr::queryInterface method
- patch #1018. Fix memory leak in the IncidentSvc class (Scott Snyder).
- fix (to bug #23471) in the MinimalEvtLoopMgr to catch
exception. (Charles Leggett)
- patch #1008: in the last version of Gaudi, it is not possible
anymore to create a service using the name format
"ServiceType/ServiceName". This patch fixes that (Marco Clemencic).
- patch #1006. The various finalize methods in the ToolSvc don't
propagate errors that occur during the finalization of tools back
up the chain. Exceptions are caught, and error messages are printed,
but a StatusCode::SUCCESS is always returned. This patch causes a
FAILURE to be returned if an error is encountered (Charles Leggett).
- patch #981. MinimalEventLoopMgr doesn't remove algs from the
algmanager during finalize (Charles
Leggett).
- patch #994. If the finalization of a service fails, a warning
message is printed, but the return code is always a success. This makes
it difficult for the applicationManager to figure out if something went
wrong. ServiceManager::finalize() should return a failure if any of the
services it's trying to finalize failed (Charles Leggett).
- ToolSvc.cpp: Fixed problem reported by David Quarrie.
Return
StatusCode::FAILURE if tool can not be instantiated (Pere Mato).
- patch #973 (Charles
Leggett):
- sets up limits on numbers of messages issued by any source.
suppresses messages if count is exceeded. prints out summary at end of
job. controlled by jobopts, for each MSG::LEVEL individually, or a
global limit. default is not to do anything.
- also prints out stats on all messages if requested.
- patch #972 (Charles
Leggett):
- add messageCount to IMessageSvc
- extend Auditor::(sys)afterExecute to pass a const
StatusCode&, which is the return code of the algorithm
- new auditor to monitor algorithms, issue message if algorithm
writes out an ERROR or FATAL, but returns SUCCESS
- Removed the DataListenerSvc. It is now located in the
GaudiGridSvc package (Hubert
Degaudenzi).
- fix to patch #954. Modification of the interface of
IDataStreamTool to avoid explicit reference to std::vector. Added the
method addStream, in parallel to addStreams (Marco Clemencic).
- Patch #966. Don't force the creation of the HistorySvc in
the
ToolSvc - if it's not available, it's because it hasn't been created in
the ApplicationMgr, and that's because ActivateHistory == false (Charles Leggett).
- fixed DataListenerSvc in order to respect the new IMonitorSvc
interface introduced by the patch #943 (Hubert Degaudenzi).
- PartPropSvc (v2r4):
- patch #1019: refactor of the library into a component library (Charles Leggett).
This release is the first stable one from the v19 series. It
encompass number of bug fixes and improvements to the v19r0 version. 2
new packages are also available:
-
GaudiGridSvc (v1r0): This one is meant to replace the
GaudiSiteSvc package
for the prestaging of files. It is using the GFAL library and thus is
more general than the prestaging of the CASTOR files only. It supports
now the GFAL backends.
-
GaudiMonitor (v1r0): The DataListenerSvc has been moved from the
GaudiSvc package to this new package.
Since these new features depends on external software (GFAL and
MonaLisa), they have not been included in the GaudiSvc package but
deserve their own packages.
To be noted that the steering package for the framework is not the
"Gaudi" package anymore. It is now called "GaudiRelease". This version
also incorporates the merge with th v18r7b branch.
Externals version: LCGCMT_49
Packages Changes
- GaudiAlg (v9r10):
- patch #967. Changed the incomprehensible message "This machine
is 0.93 times faster than a 2.8 GHz Xeon" to "This machine has a speed
about 0.93 times the speed of a 2.8 GHz Xeon" (Patrick Koppenburg)
- Charles Leggett:
- added reinitialize to Sequencer
- removed extra GaudiAlgorithm:
from GaudiAlgorithm::evtColSvc
- statuscode fixes in SequencerTimerTool.cpp, Sequencer.cpp
- Adapted package to the new PluginSvc. Removed protected from
constructor/destructors and fiendship of Factory class (Pere Mato)
- Patch #923 (Ivan
Belyaev): Fixes in reply to Savannah bug-reports #20265 and
#20198. GaudiAlg/TupleObj.h add the method for filling N-Tuples with
few basic ROOT::Math
objects:
- 3D/4D vectors and points using "TupleObj::columns"
- SVectors & SMatrices using "TupleObj::array" and "TupleObj::matrix"
- "ExtraInfo" objects using "TupleObj::fmatrix"
- fixed memory leak in GaudiCommon
(Hubert Degaudenzi).
- GaudiAud (v8r0):
- bug #22799. changed the return value of chronoStart, chronoStop, chronoPrint, stat and statPrint method of the IChronoStatSvc from StatusCode to void.
- instrumented auditors for reinitialize, beginRun, endRun (Charles Leggett)
- Adpated package to the new PluginSvc: removed protected from
constructor/destructors and fiendship of Factory class (Pere Mato)
- RootHistCnv (v9r11):
- Fix histogram converters to automatically convert THxF to THxD
when reading from file (Markus
Frank).
- Adpated package to the new PluginSvc: removed protected from
constructor/destructors and fiendship of Factory class (Pere Mato).
- patch #908: simplify histogram conversion. Take advantage of
the fact that the underlying implementation is realized using ROOT (Markus Frank).
- GaudiPolicy (v6r3):
- because of the install area and to maintain the dependencies to
the include files, CMT v1r19
or above has to be used for the building.
- use cmtpath_pattern_reverse to set macro
<project>_include_dir and then set include_dirs with it remove
setting of cppcomp and pp_cppflags introduced previously (Florence Ranjard).
- add "-m32" flag in ${for), ${libraryShr} and ${componentShr}
when tag slc4-ia32 (Florence Ranjard)
- remove setting of <library>Shr for
<project>_with_installarea (Florence Ranjard)
- added $(cmt_installarea_linkopts) in the
<library>_shlibflags for the component library pattern. Was
failing on Windows because the script to build the shared library does
not add it as it is on Linux (Pere
Mato).
- set a macro copyInclude depending on the platform to be used in
install_more_includes pattern (Florence
Ranjard).
- added the -p flag to the copyInclude macro to preserve the time
stamp of the source header files (Florence Ranjard).
- prepend pp_cppflags with InstallArea/include if
with_installArea (Florence
Ranjard)
- Adpated package to the new PluginSvc. The following changes
have been done (Pere Mato):
- Using a local copy of cmt_make_shlib.bat to make libraries on
windows from *.objs instead of using the archive library. It avoids to
have the _entries.cpp and _load.cpp files.
- prepend PATH for linker libraries on windows
- added new pattern and fragments to generate rootmap files
from component libraries
- added generate_rootmap in the component_library pattern
- added tags for MacOS 10.4 (David Quarrie)
- GaudiPoolDb (v2r10):
- PoolDbCnvSvc.cpp: implemented the posibility to retry when a
converter could not be initialized because missing dictionary by call
gInterpreter->AutoLoad(class) (Pere Mato)
- GaudiPython (v8r13):
- Added default functions for endRun() and beginRun() in
gaudimodule.py and GaudiAlg.py (Pere
Mato)
- patch #923 (Ivan
Belyaev)
- GaudiPython/TupleDecorator.h src/Lib/TupleDecorator.cpp: add
few method for easy filing of N-tupel with few basic objects, like
3D/4D vectors, points, SVector and SMatrix
- python/GaudiAlgs.py: improve the both the on-line (Python)
and off-line (Doxygen) documentation strings
- GaudiSvc (v15r1):
- Merge with the v14rb branch (Hubert Degaudenzi)
- patch #954 (Andres
Osorio):
- Moved EventSelectorDataStream from GaudiSvc to GaudiKernel
- EventSelector uses an IDataStreamTool to loop over the files
(by default the implementation DataStreamTool, overridable with the
option EventSelector.StreamManager)
- patch #951. fix memory leak in HistorySvc (Charles Leggett).
- Adpated package to the new PluginSvc. The following changes
have been done (Pere Mato):
- Removed protected from constructor/destructors and fiendship
of Factory class
- Removed files: ConverterFactory.cpp(h), ObjectFactory.cpp(h)
- All the references to factories removed.
- GaudiKernel (v22r0):
- Merge with the v10r9 branch (Hubert Degaudenzi)
- fix to patch #954 (Marco
Clemencic):
- Modification of the interface of IDataStreamTool to avoid
explicit reference to std::vector.
- added the method addStream, in parallel to addStreams.
- bug #22799. changed the return value of chronoStart,
chronoStop, chronoPrint, stat and statPrint method of the
IChronoStatSvc from StatusCode to void (Hubert Degaudenzi).
- Patch #943 & #946. Update of the IMonitorSvc interface. To
be compatible with the DIM format. Added declareInfo for the special
case of general structure monitoring to Algorithm.h (Eric van Herwijnen).
- Patch #954 (Andres
Osorio & Marco Clemencic)
- Moved EventSelectorDataStream from GaudiSvc to GaudiKernel
- Added IDataStreamTool and the basic implementation
DataStreamTool (to be used by EventSelector to loop over the files)
- ConversionSvc.cpp(.h): added method
ConversionSvc::loadConverter(DataObject*) to load anything necessary
(typically a dictionary) for finding/initializing a converter. Dummy at
the base class level (Pere Mato).
- ServiceLocatorHelper.cpp: added the code that declares the
service pair type/name. It was removed by mistake (Pere Mato).
- VectorMap.h: removed protected find() method to avoid
compilation error in Event/HtlEvent package (Pere Mato).
- fixed the SimpleProperty constructors for ATLAS usage (with Ivan Belyaev's help) (Charles Leggett & Hubert
Degaudenzi).
- removed unused static function PR_indent in PathResolver.cpp (Hubert Degaudenzi)
- added Transform3DTypes.h, Transform4DTypes.h, Vector3DTypes.h,
Vector4DTypes.h, Plane3DTypes.h, Point3DTypes.h, Point4DTypes.h,
SymmetricMatrixTypes.h, Coord3DTypes.h, GenericMatrixTypes.h,
GenericVectorTypes.h. These are typdefs to ROOT types (Pere Mato).
- Adpated package to the new PluginSvc (Pere Mato)
- Removed protected from constructor/destructors and fiendship
of Factory class
- Removed files: FactoryTable.h, IAlgFactory.h,
IAuditorFactory.h, ICnvFactory.h, IObjManager.h, IObjectFactory.h,
IRndmGenFactory.h, ISvcFactory.h, IToolFactory.h, FactoryTable.h,
ICnvManager.h
- Deep changes in the XXXFactory.h files to take into account
the new plugin service
New major version that begins the inclusion of the specific ATLAS Gaudi
features.
Packages Changes
- GaudiKernel (v21r0):
- Imported new services interfaces from ATLAS: IExceptionSvc, IIssueLogger, IStatusCodeSvc, ITHistSvc (Charles Leggett & Hubert
Degaudenzi).
- patch #839: enhancements in the JobOptions/Property part.
Please have a look at the release notes of the package (Ivan Belyaev & Alexander Mazurov).
- GaudiSvc (v15r0):
- The DataListenerSvc
doesn't compile on windows. So it has been temporarily commented out as
well as its example (Hubert
Degaudenzi).
- added new services: ExceptionSvc,
StatusCodeSvc, IssuLogger and THistSvc (Charles Leggett & Hubert
Degaudenzi).
- patch #839: enhancements and bug fixes to the
JobOptions/Property part (Ivan
Belyaev)
- removed AlgContextAuditor (moved to GaudiAud)
- fixed many StatusCode Check.
- dynamic switch of the StatusCode checking in the Application
manager (ApplicationMgr.StatusCodeCheck
= true/false;). By default the checking is on. It is disabled
anyway at the ApplicationMgr::finalize method to avoid problems with
GaudiPython
- GaudiAud (v7r2):
- added AlgContextAuditor
(remove from GaudiSvc)
- GaudiPolicy (v5r26):
- added the -msse2 and -mfpmath=sse options flags for compilation.
- 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.