The Gaudi Framework  v30r3 (a5ef0a68)
Package: GaudiPython
Package manager : Marco Clemencic
Commit Id: $Format:%H$

================================ Gaudi v28r3 =================================

! 2017-07-18 - Sebastien Ponce (commit f96f51c0)

 - Merge branch 'ignoreBoostWarnings' into 'master'

   Ignore some warnings coming from the Boost library

   See merge request !354

! 2017-06-02 - Paul Seyfert (commit acb3ca5e)

 - Merge branch 'pseyfert_IWYU' into 'master'

   make exported headers self contained
    See merge request !348

================================ Gaudi v28r2 =================================


================================ Gaudi v28r1 =================================

! 2016-12-14 - Attila Krasznahorkay (commit a42ff2a)

 - CMake configuration changes to build Gaudi with optional externals missing

   In the last days I experimented a bit with teaching Gaudi how to build when
   only ROOT, Boost and TBB are available to it. This is the result. As far as I
   can tell the code builds in the same way as the current master branch when
   all possible externals are available. (All the ones available in a full ATLAS
   offline build at least.) And I'm also able to build the project in these
   modes:
     * On Ubuntu 16.04 with the system provided Boost and TBB versions, against
   a privately built ROOT 6 version.
     * On macOS Sierra against privately built Boost, ROOT and TBB versions.
   Both when building the project completely on its own, and when building it
   against an ATLAS externals project.
    Some notes:
     * The code uses C++14 expressions in quite a few places by now. So I raised
   the default C++ standard to C++14. This is the default in ATLAS builds since
   a while, I only saw this as an issue when building Gaudi "on its own" with a
   very minimal configuration command.
     * While the code advertises that it still has support for ROOT 5, it's not
   able to build against it since a wile. Since the updates I put in for TLS
   variables on macOS. (The macros used there are ROOT 6 only.) And this update
   makes things even worse. As the code now relies on not providing the
   definition of some classes to the dictionary generator in GaudiPython that
   are not available. (Because AIDA or XercesC is missing.) While ROOT 6 handles
   this with just a build warning, ROOT 5's genreflex treats this with an ERROR
   message. That I was unable to get rid of.
    So, extended testing is clearly necessary, the configuration code could
   definitely be fine tuned as I probably turned off the build of more source
   files than absolutely necessary, but I think we should move ahead with such a
   configuration organisation.
    See merge request !241

! 2016-12-07 - many contributors (commit dc1b505)

 - port LHCb MT developments to Gaudi master

   among others we have
   - `Gaudi::Functional`: base classes to write algorithms as pure functions
   - `AnyDataWrapper`/`AnyDataHandle`: helper to store any type in the Transient
   Store (DataSvc)
   - fixes to `DataObjectHandle`
   - fixes to `GaudiHive`
   - new tests and examples
   - modernization (removed empty destructors, ...)
    See merge request !245

================================ Gaudi v28r0 =================================

! 2016-10-28 - Marco Clemencic (commit f2881a2)

 - minor fixes for new Property

   - removed deprecation warning in `Gaudi::Details::PropertyBase::clone`
   - removed Property from GaudiPython dictionary
    See merge request !224

! 2016-10-28 - Marco Clemencic (commit 7a372bb)

 - fixed a few compilation warnings

   See merge request !221

! 2016-10-27 - Gerhard Raven, Marco Clemencic (commit b111898)

 - modernization of Property

   This is a major rewrite of the system of `Property` classes. Started as  the
   implementation of GAUDI-1214, it continued as a review of
   `IProperty` and `PropertyMgr`, to end up in a complete rewrite
   (and optimization) of `PropertyWithValue`.

   * Fixes GAUDI-1214
    - added missing `declareProperty` signature
    - added `PropertyHolder` (an updated `PropertyMgr`)
    - adapted all properties in Gaudi
   * improved use of `PropertyHolder`
    - use inheritance instead of composition
    - removed ~200 (duplicated) lines of code in GaudiKernel
   * optimization of Property (fixes GAUDI-1229)
    - use templates and automatic code generation to handle efficiently
      both value and reference properties
      - avoid creation of values on the heap (see GAUDI-1229)
      - removed the *owned* boolean flag
      - improved usability of properties (e.g. begin/end wrappers for
        C++11 loops, increment/decrement operators...)
      - deprecated use of C arrays as properties
    - merged features of `PropertyWithVerifier`, `SimpleProperty` and
      `SimplePropertyRef` into `PropertyWithValue`
    - deduplication of name and doc strings via

   [`boost::string_ref`](http://www.boost.org/doc/libs/1_61_0/libs/utility/doc/html/string_ref.html)

      and a static storage  (see GAUDI-1229)
   * Fixes GAUDI-1205
   * add deprecation warnings in service accessors of `Algorithm` (@graven)
   * renamed `Property` base class to `Gaudi::Details::PropertyBase` and
   `PropertyWithValue` to `Gaudi::Property`
    - added backward compatibility type aliases (but not compatible with
      forward declarations of `class Property`, which should be replaced
      by `#include "GaudiKernel/PropertyFwd.h"`)
   * added macro `GAUDI_PROPERTY_v2` to allow easy implementation of
    backward compatible changes in derived projects (e.g. when user code
    relied on `DoubleProperty` having a verifier)
   * Fixes GAUDI-1268
    The changes are as backward compatible as much as possible (except if you
   explicitly inherit from `SimpleProperty`, or you forward declared
   `class Property`, which now are typedefs), but must be validated in the
   experiment frameworks.
    See merge request !182

! 2016-10-24 - Attila Krasznahorkay (commit ac4dbc7)

 - Changes to build on MacOS X 10.11

   See merge request !200


! 2016-10-24 - Marco Clemencic (commit a8d6605)

 - hidden/fixed "missing override" warnings exposed after !192

   - warnings from external headers are hidden declaring the include directories
   as `-system`
   - warnings from a couple of new files have been fixed
   - warnings in `HistogramSvc` are hidden because unavoidable (see f83c3d8e)
   - warnings related to CLHEP-136 have been hidden with a special trick (see
   0a238135)
    See merge request !205

! 2016-10-19 - Marco Clemencic (commit 9d0e74a)

 - removed obsolete/unused files from GaudiPython

   - removed GPyTest related files (see GAUDI-982, fixes GAUDI-1248)
   - removed unused directories `home` and `examples`
   - removed `src/Embedded/main.cpp`
    See merge request !208

! 2016-10-12 - Marco Clemencic (commit b5e05a1)

 - improved handling of package version in CMake configuration

   use project version if a package version is not provided
    See GAUDI-1215.
    See merge request !175

! 2016-10-01 - Marco Clemencic (commit 99b1001)

 - enable missing override warnings (gcc >= 5.1)

   Fixes GAUDI-1241
    See merge request !192

! 2016-08-19 - Marco Clemencic (commit f3050c3)

 - Fix compile time warnings

   fixed/hidden all warnings in GCC builds
    See merge request !189

! 2016-07-25 - Marco Clemencic (commit e3d4b07)

 - remove CMT configuration and related files

   * removed CMT configuration files
   * adapted scripts not to use CMT
    Fixes GAUDI-1216 Fixes GAUDI-979
    See merge request !186

! 2016-05-18 - Sami Kama (commit 9eeef96)

 - allow build of Gaudi without LCG and fix ThreadPoolSvc

   Allow building of Gaudi with local externals.
    It also contains a fix to an issue introduced with merge request !160
   (GAUDI-1212).
    Fixes GAUDI-1211, GAUDI-1212.
    See merge request !166

! 2016-04-13 - Charles Leggett (commit d86d094)

 - fix unchecked StatusCode in GaudiPython

   (from Scott Snyder)
    See merge request !156

============================= GaudiPython v14r2 ==============================

! 2016-03-10 - commit 4a18175

 - removed uses of templates implements[1-4], extends[1-4] and
   extend_interfaces[1-4]

   Since merge request !22 they are unnecessary.
    See merge request !133

! 2016-03-01 - commit 12c3a15

 - Merge branch 'GAUDI-1189' into 'master'

   exclude classes referring to `__int128` from GaudiPythonDict
    Fixes GAUDI-1189
    See merge request !121

! 2016-02-12 - commit 416a1ec

 - remove unnecessary printouts in GaudiPython.TupleUtils

   Fixes GAUDI-1171
    See merge request !109

! 2016-02-11 - commit b0618f7

 - Improve CommonMessaging

   Implementation of GAUDI-1146: Improve CommonMessaging and use it in more
   places.

   See merge request !76

   Conflicts:
   GaudiExamples/tests/qmtest/refs/AlgTools2.ref
   GaudiExamples/tests/qmtest/refs/MultiInput/Read.ref
   GaudiExamples/tests/qmtest/refs/conditional_output/write.ref
   GaudiKernel/GaudiKernel/AlgTool.h
   GaudiKernel/GaudiKernel/Algorithm.h
   GaudiKernel/GaudiKernel/Service.h
   GaudiKernel/src/Lib/AlgTool.cpp
   GaudiKernel/src/Lib/Algorithm.cpp

============================= GaudiPython v14r1 ==============================

! 2016-01-07 - commit fabc739

 - fixed compilation with clang 3.7 (after hive merge)

   * fixed compilation problems related to `operator<<` (gcc is more
    permissive than clang).
   * fixed also some clang warnings.
    Fixes GAUDI-1157.
    See merge request !84

! 2015-10-21 - commit fecec81

 - removed duplicated dictionary selections

   Fixes GAUDI-1115.

   See merge request !56

============================= GaudiPython v14r0 ==============================

! 2015-09-25 - commit 35dd00c

 - Merge branch 'dev-smartif-use' into 'master'

   Provide (and use) C++11 smart pointer 'look and feel' for SmartIF

   The aim of this branch is to confine, for everything that inherits from
   IInterface, the calls to addRef(), release() and queryInterface() to the
   SmartIF implementation. Exceptions are a few places where interfaces
   (currently) return bare pointers (instead of SmartIF...) and where one thus
   has to addRef() explicitly to avoid returning a dangling pointer. This can be
   avoided by changing the relevant interface to return a SmartIF instead of a
   bare pointer.

   In addition, make SmartIF 'look and feel' like a smart pointer.

   - use explict bool conversion instead of .isValid()
   - add SmartIF::as<IFace>(), to return a SmartIF<IFace> to an alternate
      interface -- which (together with move) encourages the use of auto
   - add ISvcLocator::as<IFace>(), to return a SmartIF<IFace> to the current
   ISvcLocator.
   - add ServiceManager::service<IFace>() which return SmartIF<IFace> which
   encourages
      the use of auto

   And add a few other C++11 modernizations (eg. prefer STL over raw loop)

   Fixes GAUDI-1094

   See merge request !24


! 2015-09-21 - commit 850d801

 - Merge branch 'master' into 'master'

   Functions added to GaudiUtils that allow generation of random numbers from
   integer and string input

   Add hash functions with good avalanche characteristiscs to GaudiUtils.

   - Header and implementation are QuasiRandom.{h,cpp} in GaudiUtils
   - Relevant functions have been added to GaudiPython dictionary for
    interactive use
   - Update RandomNumber test to include these functions
   - Update RandomNumber test reference

   See merge request !20


! 2015-09-11 - commit c062cbe

 - C++11 modernization changes

   Some trivial - and some not so trivial! - changes which take advantage of
   C++11...

   See merge request !7

============================= GaudiPython v13r5 ==============================
! 2015-04-13 - Marco Clemencic
 - Refactored printing of alg sequences and moved it after the initialize,
   to allow an implemetation in C++ (to avoid GaudiPython in gaudirun.py).

! 2015-04-10 - Marco Clemencic
 - Added missing 'terminate' method to AppMgr.

! 2015-03-23 - Marco Clemencic
 - Removed workaround for ROOT-6032 and added workaround for ROOT-7201
   (it's practically the same bug)

! 2015-03-23 - Rosen Matev
 - Faster version of the workaround for ROOT-6697.

! 2015-02-19 - Marco Clemencic
 - GAUDI-1009: remove GaudiPython.Bindings.makeClass

============================= GaudiPython v13r4 ==============================
! 2015-01-13 - Marco Clemencic
 - Fixed a problem building with the latest ROOT 6.02.

! 2015-01-08 - Marco Clemencic
 - Adapted GaudiPython.Bindings to the changes introduced with GAUDI-995
   (backward incompatible change in IAlgManager).

============================= GaudiPython v13r3 ==============================
! 2014-10-02 - Marco Clemencic
 - Introduced work-around for ROOT-6697 (wrong overloaded method called).

! 2014-09-18 - Marco Clemencic
 - Fixed Eclipse Code Analysis warning.

! 2014-07-11 - Marco Clemencic
 - Removed references to the obsolete IFactory.

============================= GaudiPython v13r2 ==============================
! 2014-05-27 - Marco Clemencic
 - Minor fix to CMake configuration (CMT equivalence).

! 2014-05-24 - Marco Clemencic
 - Address the problem described in ROOT-6315 by making the enum overriding
   optional.

! 2014-05-21 - Marco Clemencic
 - Moved dictionary for InterfaceID from GaudiPython to GaudiKernel.

! 2014-05-21 - Marco Clemencic
 - Moved dictionary for GaudiHandle*Property from GaudiPython to GaudiKernel.

============================= GaudiPython v13r1 ==============================
! 2014-03-18 - Ben Couturier
 - Fixed bug #104127: remove hwaf configuration.

============================= GaudiPython v13r0 ==============================
! 2014-02-13 - Marco Clemencic
 - Added workaround for ROOT-6028...
   or ROOT-6054 or ROOT-6073.. depending on the point of view.
   https://sft.its.cern.ch/jira/browse/ROOT-6028
   https://sft.its.cern.ch/jira/browse/ROOT-6054
   https://sft.its.cern.ch/jira/browse/ROOT-6073

! 2014-02-07 - Marco Clemencic
 - Added workaround for ROOT-6032.
   https://sft.its.cern.ch/jira/browse/ROOT-6032

! 2014-02-06 - Marco Clemencic
 - Added missing (?) header to the dictionary (needed for ROOT 6).

! 2014-01-06 - Marco Clemencic
 - Removed workarounds for ROOT-5850 and ROOT-5847.
   https://sft.its.cern.ch/jira/browse/ROOT-5850
   https://sft.its.cern.ch/jira/browse/ROOT-5847

! 2013-12-16 - Marco Clemencic
 - Added workaround for ROOT-5850.
   https://sft.its.cern.ch/jira/browse/ROOT-5850

! 2013-12-16 - Marco Clemencic
 - Added workaround for ROOT-5847.
   https://sft.its.cern.ch/jira/browse/ROOT-5847

! 2013-12-11 - Sebastien Binet
 - Added hwaf configuration files.

! 2013-11-05 - Marco Clemencic
 - Restore the old order of load of Pythonizations because the new order was
   causing a failure in ROOT 5.
 - Reenabled the work-around for bug ROOT-5581, renamed ROOT-5478 because it
   fixes that problem too and it works in both ROOT 5 and ROOT 6.

! 2013-10-31 - Marco Clemencic
 - Moved the import of Pythonizations (in Bindings) after the auto-loading of
   the main dictionaries, to avoid the warnings about the order of inclusion of
   Python.h (see <https://sft.its.cern.ch/jira/browse/ROOT-5478>, point 2).

! 2013-10-29 - Marco Clemencic
 - Removed work-around for bug ROOT-5581.
   https://sft.its.cern.ch/jira/browse/ROOT-5581

! 2013-10-29 - Marco Clemencic
 - Removed work-around for bug ROOT-5623.
   https://sft.its.cern.ch/jira/browse/ROOT-5623

! 2013-10-29 - Marco Clemencic
 - Modified __str__ implementation in Pythonizations.py to return a Python
   string and not an std::string.

! 2013-10-24 - Marco Clemencic
 - Added work-around for bug ROOT-5623.
   https://sft.its.cern.ch/jira/browse/ROOT-5623

! 2013-10-24 - Marco Clemencic
 - Use ROOT6WorkAroundEnabled for bug ROOT-5581.
   https://sft.its.cern.ch/jira/browse/ROOT-5581

! 2013-09-30 - Marco Clemencic
 - Switched from ROOT.py to cppyy.
   See https://sft.its.cern.ch/jira/browse/ROOT-154

! 2013-07-19 - Marco Clemencic
 - Clean up in the use of the new PluginService.

! 2013-07-18 - Marco Clemencic
 - Removed use of obsolete AlgFactory.h, SvcFactory.h, ToolFactory.h,
   AudFactory.h and CnvFactory.h.

! 2013-07-03 - Marco Clemencic
 - Removed explicit link against Reflex from cmt/requirements.
 - Removed references to Reflex from comments.

! 2013-06-13 - Marco Clemencic
 - Replaced PyCintex with ROOT.
   We still try to import PyCintex because it's the only way to enable Cintex
   (see <https://sft.its.cern.ch/jira/browse/ROOT-3623>, but it does not work
   in Python).

============================= GaudiPython v12r7 ==============================
! 2013-09-25 - Marco Clemencic
 - Enforce LC_ALL=C in the GaudiPython module.

! 2013-07-19 - Marco Clemencic
 - Replaced "#ifdef linux" with "#ifdef __linux" (more reliable: Rolf Seuster
   reported that "linux" is not defined when using C++11).

============================= GaudiPython v12r6 ==============================
! 2013-04-22 - Marco Clemencic
 - Fixed Clang warnings.

============================= GaudiPython v12r5 ==============================
! 2013-01-24 - Marco Clemencic
 - Added dictionaries for HistoStrings (GaudiUtils).

============================= GaudiPython v12r4 ==============================
! 2012-10-26 - Marco Clemencic
 - Stop execution (in AppMgr.run()) if the return code of the application is not
   0 (success) after configure or initialize.

============================= GaudiPython v12r3 ==============================
! 2012-09-13 - Marco Clemencic
 - Fixed compilation warnings.

! 2012-07-25 - Nathalie Rauschmayr
 - Patch #5471: fixes to be able to run LHCb applications via GaudiParallel.
   Bindings.py: runSelectedEvents(): first parameter in gbl.GenericAddress must
   be 0x02 instead of 0x202 (POOL-->ROOT)

============================= GaudiPython v12r2 ==============================
! 2012-06-08 - Marco Clemencic
 - Added CMake configuration files.

! 2012-05-30 - Vanya Belyaev
 - Patch #5379: Improvements for GaudiAlgs.py
   - equip python-algorithms with  "get" and "exist" that are
     coherent with C++ (respect RootInTES flag)
      - AlgDecorator: add get_ and exist_ methods
      - GaudiAlgs.py: add get_ and exist_ methods
   - TupleDecorator
     add long long and unsigned long long fields

============================= GaudiPython v12r1 ==============================
! 2012-02-24 - Vanya Belyaev
 - Patch #5235: ntuples in (Gaudi)Python
   - TupleDecorators:
       remove some extra classes
       add Gaudi::Time

============================= GaudiPython v12r0 ==============================
! 2011-12-14 - Marco Clemencic
 - Fixed bug #88448: HistoFile does not know TFile
   Fixed as suggested in the bug report.

! 2011-12-12 - Marco Clemencic
 - First prototype of generic/extensible persistency configuration.
   - GaudiPython.Persistency: (new) module hosting the persistency helpers
   - GaudiPython.Bindings: modified iNTuleSvc and iEventSelector to use the new
     helpers

! 2011-11-01 - Marco Clemencic
 - Moved core services out of GaudiSvc and into the new packages GaudiCoreSvc
   and GaudiCommonSvc. (patch #1816)
   Replace GaudiSvc with GaudiCoreSvc in GaudiPython.Bindings.

============================= GaudiPython v11r1 ==============================
! 2011-06-23 - Hubert Degaudenzi
 - fixed warnings from the eclipse code analysis engine.

! 2011-04-27 - Charles Leggett
 - add explicit import=Reflex statements to requirements for new CMT
 M       cmt/requirements

============================= GaudiPython v11r0 ==============================
! 2011-01-19 - Markus Frank
 - Fixes for bug #77109.  Remove calls to DataObject::serialize.
   (patch #4613)

! 2011-01-17 - Brett Viren, Marco Clemencic
 - Fixed bug #75996: Support for CLHEP 2.0
   Added a "using namespace CLHEP".

! 2010-12-16 - Sebastien Binet
 - Patch #4074: migrate GaudiPython.Parallel to multiprocessing
   Modified GaudiPython.Parallel to use 'multiprocessing' instead of
   'processing'.

! 2010-12-01 - Charles Leggett
 - Added a reference to the Gaudi C++ namespace in AppMgr, so that it is still
   available during "atexit".
   (included in the attachment of bug #75834)

============================= GaudiPython v10r11 =============================
! 2010-08-24 - Marco Clemencic
 - Fixed a compilation problem on mac106.

! 2010-07-29 - Marco Clemencic
 - Fixed a compilation warning with Python 2.6.5 and gcc 4.3.

============================= GaudiPython v10r10 =============================
! 2010-06-21 - Vanya Belyaev
 - Patch #4207: Allow creation of new C++ algorithms from GaudiPython

! 2010-06-17 - Marco Clemencic
 - Fixed a bug in patch #3311 (wild import of GaudiPython.HistoUtils broken).

! 2010-05-27 - Vanya Belyaev
 - Patch #4044: Fix for bug #66397 and task #13911
   Now all python algorithms of "GaudiAlgo"-type are protected from deletion in
   python by copy them into local storage of application manager...
   As a result, one resurrect the possibility for very flexible manipulations
   with GaudiPython algorithms.

! 2010-05-20 - Vanya Belyaev
 - Patch #3677: Iteration over map-like containers in python
   Proper pythonization of the class Gaudi::Utils::MapBase.

! 2010-05-11 - Marco Clemencic
 - Fixed bug #64571: Python 2.6 warnings
   Removed extra arguments in the call to "object.__new__".

! 2010-04-26 - Marco Clemencic
 - Re-introduce the usage of the exit handler to finalize the application when
   exiting from Python.
   A special hack has been introduced to ensure that the ROOT exit handler is
   called after the Gaudi one.

============================= GaudiPython v10r9 ==============================
! 2010-04-20 - Marco Clemencic
 - Removed ICC warnings and remarks.

! 2010-04-16 - Vanya Belyaev
 - Patch #3989: Tiny (but very important) fix for Gaudi::RangeBase_
   Added dictionary for Gaudi::RangeBase_.

============================= GaudiPython v10r8 ==============================
! 2010-01-29 - Marco Clemencic
 - Fixed icc remark #1599: declaration hides variable
 - Fixed icc warning #191: type qualifier is meaningless on cast type

! 2010-01-28 - Marco Clemencic
 - Fixed icc remark #424: extra ";" ignored
 - Fixed icc remark #522: function "X" redeclared "inline" after being called
 - Fixed icc remark #177: X declared but never referenced

============================= GaudiPython v10r7 ==============================
! 2010-01-14 - Juan Palacios
 - Patch #3652: Bug fixes for GaudiPython HistoUtils.py and TupleUtils.py
   - Fix order of services initialization and release.

! 2010-01-11 - Vanya Belyaev
 - Patch #3588: Fix a typo (&logic) in GaudiPython.GaudiAlgs module for "Histo()" method
   - python/GaudiPython/GaudiAlgs.py
     fix the typo (and invalid logic) for "Histos()" method

! 2009-12-15 - Charles Leggett
 - Fixed bug #60502: typo in GaudiPython/Bindings.py

============================= GaudiPython v10r6 ==============================
! 2009-10-26 - Marco Clemencic
 - Removed some dictionaries of basic types that conflict with the CINT ones.

================ GaudiPython v10r5 ====================================
! 2009-10-15 - Marco Clemencic
 - Fixed a compilation (visibility) problem on gcc43 with GAUDI_V21 tag enabled
   introduced by patch #3328.

! 2009-10-13 - Marco Clemencic
 - Fixed a compilation problem on gcc34 platforms caused by patch #3328.

! 2009-10-12 - Marco Clemencic
 - Normalization of white-spaces in Python files.
   (using http://svn.python.org/projects/python/tags/r254/Tools/scripts/reindent.py)

! 2009-10-12 - Vanya Belyaev
 - Patch #3328: iDataSvc.findObject
   - GauidPython::Helper
     1. add method findobject (wrapper for IDataProviderSvc::findObject)
     to get object from Transient store without trying to load or
     use on-demand actions
     2. add method getobject with allows total control over access
     object in Transient Store : retrieve versus find, and allows
     temporarily disable on-demand actions. Thus one can allow loading
     the object from tape, but switch off on-demand actions
   - GaudiPyton/Bindings.py
     1. iDataSvc      : add methods findObject and getObject
     2. PropertyEntry : for properties with missing dictionaries
        (essentially,  missing "value" attribute) use the
        "toString"-result as self._value.
 - Patch #2978: GaudiKernel/StringKey.h
   Added dictionary and support in Pythonizations.py and Bindings.py

! 2009-10-09 - Eoin Smith
 - Patch #3297: Support for GaudiPython Parallel in gaudirun.py
   Added scatter-gather parallel model to python/GaudiPython/Parallel.py
   Consists of 1reader-Nworkers-1writer, for event-parallel execution using
   Python processing package, forking and unix queues/pipes.
   Execute gaudirun.py with flag --parallel=N (N>=1)

   Two new methods in python/GaudiPython/Bindings.py
   iDataSvc().getList() returns a list of all paths present on a local
   file.  For example, all local TES paths for one event.  Links to external
   files are ignored (by checking the address() property)
   iDataSvc().getHistoNames() returns a list of all paths in a Transient Store
   without checking File ID

   Modified src/Lib/TESSerializer.cpp : method dumpBuffer now takes a
   TBufferFile pointer as an argument.  Previously, dumpBuffer was creating
   its own new TBufferFiles for each call, which led to an error where new
   calls reset the buffer of previous calls. loadBuffer also modified to
   use data directly from TBufferFile to rebuild Transient Event Store
   (instead of intermediate buffer)

   Modified GaudiPython/TESSerializer.h to reflect these changes.

! 2009-10-09 - Marco Clemencic
 - Disabled the dictionary for GaudiAlg::HistoBinEdges (a typedef to vector<double>)
   because it triggers the presence of vector<double> in the rootmap file, which
   produces a warning in ROOT > 5.24.00a.

! 2009-10-08 - Vanya Belyaev
 - Patch #3311: Add ASCII dump for 1D-profile histograms
   Extension of patch #3261 to 1D-profile histograms
 - Patch #3223: Add some more "Extended" property types to Gaudi
   Fix to use the new properties.

! 2009-10-07 - Vanya Belyaev
 - Patch #3261: Utility for ASCII dump of 1D-histograms
   Added the bindings for function Gaudi::Utils::Histo::histoDump.

! 2009-10-02 - Vanya Belyaev
 - Patch #3157: Remove redundant duplicated  maps from GaudiHistos/GaudiTuples
   Adapted HistoDecorator to the changes in GaudiHistos.

! 2009-10-02 - Marco Clemencic
 - Fixed bug #56358: Algorithms crashing in finalize are finalized a second time
   - Added a protection to avoid that AppMgr.exit() can be called twice.
   - Removed the "atexit" handler and replaced it with a specialized destructor
     for AppMgr. Note that it may not be called in case of circular dependencies
     between Python objects, in which case AppMgr.exit() have to be called
     explicitely.

================ GaudiPython v10r4 ====================================
! 2009-07-30 - Marco Clemencic
 - Fixed some doxygen warnings.

! 2009-07-23 - Pere Mato
 - Patch #3152: Adapting GaudiPython to new null pointer semantic of ROOT 5.22.00c
   The new patched version of ROOT 5.22.00c returns 'typed null pointers' instead
   of None. Form the point of view of python this is different than None and
   therefore tries to call _repr_ when ever the object is evaluated interactively.
   For this reason we need to protect the generic implementation of __repr__ for
   DataObject and ContainedObject.
   At the same time tried to load the necessary ostream and stringstream from
   the beginning avoiding some spurious problems (fixes bug #28426).

! 2009-07-22 - Vanya Belyaev
 - Fixed bug #53514: The local symbol "HID" is not defined.

! 2009-07-20 - Marco Clemencic
 - Added '-no_static' to the declaration of the libraries (implemented since CMT
   v1r20p20081118).

! 2009-07-17 - Juan Palacios
 - Patch #3091: Class for easy saving of GaudiPython histograms
   Add HistoFile, a class for easy writing of ROOT and AIDA histograms
   to a file.

! 2009-07-16 - Vanya Belyaev
 - Patch #3134:
   - Some polishing of GaudiPython.GaudiAlgs module and related modules
   - More handles for interactive algorithm inspection (GaudiPython)
   Detailed description in GaudiAlg/doc/patch_3134.html

================ GaudiPython v10r3 ====================================
! 2009-07-03 - Marco Clemencic
 - Removed explicit manipulation of the PYTHONPATH (obsolete).

================ GaudiPython v10r2 ====================================
! 2009-06-29 - Marco Clemencic
 - Removed the special compile time flag for the dictionary (problem fixed in
   ROOT 5.22.00c)

! 2009-06-26 - Marco Clemencic
 - Fixed bug #51026: Typo in GaudiPython/HistoUtils

! 2009-06-22 - Marco Clemencic
 - Added a compile time flag for the dictionary to hide warnings.

! 2009-06-15 - Hubert Degaudenzi
 - use the new LCG tag convention.

! 2009-06-10 - Marco Clemencic
 - Removed _dll.cpp and _load.cpp files (not needed anymore).

================ GaudiPython v10r1 ====================================
! 2009-05-06 - Charles Leggett
 - Patch #2977: catch exception in GaudiPython Bindings.py
   Added a try-catch block around the call to queryInterface in
   InterfaceCast.__call__ to print a meaningful error message.

================ GaudiPython v10r0 ====================================
! 2009-04-08 - Pere Mato
 - Patch #2958: New runSelectedEvents() method in GaudiPython.AppMgr
   Added new method runSelectedEvents(self, pfn, events) on AppMgr class
   This method allows to execute the event loop on a specific event(s) for a given input (POOL)
   file (physical file name).
   It requires new version of GaudiUtils including the dictionary for IFileCatalog interface

! 2009-04-07 - Marco Clemencic
 - Moved back the namespace MSG to the global namespace.

! 2009-04-06 - Marco Clemencic
 - Renamed back the namespace Msg to MSG and moved it into the namespace Gaudi.

! 2009-04-06 - Marco Clemencic, Vanya Belyaev
 - Patch #2931: Added few classes/function to GaudiPython dictionaries
   for interactive histogram manipulation.

! 2009-03-13 - Marco Clemencic
 - Task #9061: Introduction of component managers
   - Adapted to use the changes in the ISvcLocator, ISvcManager and IAlgManager
     interfaces.

! 2009-02-19 - Marco Clemencic
 - Patch #2790: Rename the namespace MSG to Msg

! 2009-01-30 - Marco Clemencic
 - Replaced all the occurrences of endreq with endmsg.

! 2009-01-29 - Marco Clemencic
 - Symbol visibility
   - Decorated all the classes and functions that needs to be exported (see
     GaudiKernel release.notes).
   - Added a hack to force the export of the symbols of AIDA interfaces to allow
     the dynamic_cast (see GaudiSvc release.notes).

! 2009-01-22 - Marco Clemencic
 - Adapted to the new IInterface functionalities (see GaudiKernel release.notes)
 - Replaced the usage of TimePoint with Gaudi::Time.

================ GaudiPython v9r4 ====================================
! 2008-12-16 - Marco Clemencic
 - Fixed bug #45392: gaudrun.py returns status code 0 even if the application
                     manager fails
   Made GaudiPython.AppMgr correctly return the status after calls to run, exit,
   etc.

================ GaudiPython v9r3 ====================================
! 2008-11-13 - Pere Mato
 - Fixed the dependency for the serialization functions.

! 2008-10-31 - Vanya Belyaev
 - Fixed a typo in Bindings.iDataSvc (it was "self.dict" instead of
   "self.__dict__").

! 2008-10-30 - Marco Clemencic
 - Modified AppMgr to ensure that GaudiKernel.Configurable.applyConfigurableUsers()
   is called before configuring the application (needed for GaudiPython scripts).

! 2008-10-29 - Charles Leggett
 - Fixed bug #38442. Support for alternative ApplicationMgr in GaudiPython

! 2008-10-27 - Marco Clemencic
 - Fixed warnings reported by gcc 4.3:
   - type qualifiers ignored on function return type
   - deprecated conversion from string constant to `char*'
   - declaration ‘class AIDA::...’ does not declare anything

! 2008-10-16 - Pere Mato
 - Added support for serialization/deserialization of TES

! 2008-10-16 - Marco Clemencic
 - Excluded a few problematic mothods from the dictionaries (generated only with
   ROOT >= 5.21 and gccxml >= 0.9.0).
 - Minor changes in dict/kernel.h to avoid errors with gccxml 0.9.0.

! 2008-10-09 - Vanya Belyaev
 - Patch #2058. Extensions for AIDA::TProfile1D
    * GaudiPython/HistoDecorator.h
    * src/Lib/HistoDecorator.cpp
   add the default parameters to 1D-profile "decorators".

! 2008-10-01 - Vanya Belyaev
 - Patch #1938: Draw the native AIDA histograms through their internal ROOT
                representation
   "Draw" and "plot" member functions are added to the AIDA histogram interfaces
   at import time. They are implemented forwarding the call to the internal
   ROOT instances.

! 2008-09-22 - Marco Clemencic
 - Removed a couple of warnings in PyROOTPickle.cpp when using ROOT >= 5.19
 - Fixed a typo in selection_kernel.xml.

================ GaudiPython v9r2 ====================================
! 2008-07-17 - Marco Clemencic
 - Fixed a mistake in the spelling of a function (thanks to Vanya for reporting
   it).
 - Added sys* methods to GaudiPython.Bindings.iAlgorithm.
 - Added dictionary for IGenericTool.

! 2008-07-15 - Marco Clemencic
 - Fixed bug #38885: no execute method for algorithms in GaudiPython
   Added the method iAlgorithm.execute, which disappeared by mistake.
 - Fixed bug #38882: AppMgr.addAlgorithm does not work correctly after
                     initialization
   Made addAlgorithm and setAlgorithms call sysInitialize and sysStart instead
   of initialize and start.
 - Added start and stop methods to Python algorithms.

! 2008-07-11 - Charles Leggett
 - requirements: tweak test_GPyTest_rootmap macro to work with GAUDI_ATLAS tag

! 2008-06-25 - Marco Clemencic
 - Fixed GaudiPython/Bindings.py to work with the HEAD version of ROOT too.

================ GaudiPython v9r1 ====================================
! 2008-06-25 - Marco Clemencic
 - 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).

================ GaudiPython v9r0 ====================================
! 2008-06-02 - Pere Mato
 - Patch #1866. Enable pickle support in GaudiPython.
   Added support for pickling objects from Wim Lavrijsen. Code already added to
   ROOT SVN trunk but not used by this version of Gaudi.

! 2008-06-02 - Marco Clemencic
 - Task #5809. Extension to Gaudi Application state machine.
   - Adapted GaudiPython.Bindings according to the changes in the state machine.

! 2008-04-24 - Stefan Roiser
 - Fixed compilation problem on MacOS Leopard.

================ GaudiPython v8r19 ====================================
! 2008-02-27 - Marco Clemencic
 - Hack to avoid a conflict in the way Configurables are used in Athena and
   Gaudi.  In GaudiPython they are used in the AppMgr constructor, while in
   Athena they are used in a different moment (and not even all of them are
   needed).
   The conflict is resolved by using a function to return the needed
   configurables, implemented to return the keys of allConfigurables for Gaudi
   and and empty list for Athena.

! 2008-01-29 - Marco Clemencic
 - Fixed Bug #32854. (MessageSvc options ignored in Python)
   Modified the constructor of GaudiPython.AppMgr to set explicitly the
   properties of MessageSvc just after the ApplicationMgr configuration.
   (It does not work for MessageSvc.loggedStreams because the update handler is
   missing)
 - Lock the configurables setting Configurable.__configurationLocked (if it
   exists) after the configuration of AppMgr, to avoid that users try to change
   the configuration when it is too late.

================ GaudiPython v8r18 ====================================
! 2008-01-18 - Marco Clemencic
 - Fixed a problem with python options: the ApplicationMgr output level was not
   set.

! 2008-01-17 - Pere Mato
 - Fixed macro for  test_GPyTestDict needed after change in the reflex test dictionary pattern

! 2008-01-16 - Wim Lavrijsen
 - Fixed a bug in Pythonization._loadDict. Missing "import sys".

! 2008-01-15 - Wim Lavrijsen
 - AthenaCommon does not have Configurable.PropertyReference and this must be
   considered in GaudiPython.Bindings.

! 2008-01-11 - Marco Clemencic
 - Implemented correct handling of late-bound options.

! 2007-12-18 - Marco Clemencic
 - Fixed a compilation bug with Python 2.5 (backward compatible).

! 2007-11-30 - Marco Clemencic
 - Fix for bug #31677.
   Move GaudiHandles.py from GaudiPython to GaudiKernel. Added a fake module for
   backward compatibility.

! 2007-11-30 - Pere Mato
 - Fix for bug #31819: Reduce GaudiPython dictionaries to strict minimum.
   Removed common STL classes (9 in total) from the rootmap file using
   the attribute rootmap="false" in the selection file.

! 2007-11-28 - Paolo Calafiura & Sebastien Binet
 - patch #1550.
   Fix to compile with Python 2.5 (backward compatible).

================ GaudiPython v8r17 ====================================
! 2007-11-13 - Marco Clemencic
 - Remove the dependency of GaudiPython/__init__.py from Gaudi.Configuration.
 - Use GaudiKernel.Proxy to get the correct version of Configurable.

! 2007-10-29 - Pere Mato
 - Changed the structure of the package.
   decribed at:  https://twiki.cern.ch/twiki/bin/viewfile/LHCb/GaudiPython?rev=1;filename=GaudiPython_20071017.pdf

! 2007-10-24 - Marco Clemencic
 - Fixed a problem in the generation of rootmap files for GaudiPython test
   dictionaries (target "tests").

=================== v8r16 ==================================
! 2007-10-04 - Wim Lavrijsen
 - patch #1404.
   - Adding a couple of functions to GaudiHandles and GaudiHandleArrays to
     support pickling.

! 2007-09-27 - Sebastien Binet
 - patch #1158. (slightly modified by Marco Clemencic)
   - Minor changes to GaudiHandles.py to improve memory footprint

! 2007-08-07 - Vanya Belyaev
 - patch 1265.
   - 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.
   - Improve doxygen comments.
   - Add dictionaries for ITupleTool and IHistoTool.
   - New module TupleUtils.py: allow manipulation of tuples from
     outside algorithms or tools.
 - patch 1263.
   - Allow "smart and friendly" manipulation of AIDA::IProfile[1D,2D]
     objects from Python.
   - Added few dictionaries and few new helpers.
   - Improvements in iProperty: raise AttributeError in __getattr__
     and __setattr__ if the property does not exist (instead of the
     internal C++ exception).
   - Improved the documentation strings of few functions.
   - Improvements to GaudiAlgo, HistoAlgo and TupleAlgo as for
     iProperty.
   - Added module HistoUtils containing "script-friendly" functions
     to manipulate histograms.

! 2007-07-16 - Hubert Degaudenzi
 - remove the explicit Dlls options from gaudimodule.py (not needed
   any more)

=================== v8r15 ==================================
! 2007-05-10 - Ivan Belyaev
 - Patch #1126. 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::>"

! 2007-04-27 - Mattias Ellert
 - patch #24974. fixed test building.

! 2007-04-05 - Martin Woudstra
 - Patch #1103. 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

! 2007-04-04 - Pere Mato
 - added setOwnership() calls in addAlg() and removeAlg() to avoid
   segfault at the end of the execution due to double deletion of
   algorithms

! 2007-03-29 - Vanya BELYAEV
  Patch #1106. possible solution for Savannah bug #25109 and patch
  #1024 (wrongly closed)
 - dict/selection_kernel.xml
    add the dictionary for GaudiHandleProperty class
 - python/gaudimodule.xml
    a) PropertyEntry
      1) 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
      2) 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)
    b) 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 "..


=================== v8r14 ==================================
! 2007-02-15 - Marco Clemencic
 Patch #1032:
 - Extended the python interface of IUpdateManagerSvc using the helper class
   IUpdateManagerSvc.PythonHelper

! 2007-02-13 - Pere Mato
 - cmt/requirements: moved apply_patter linker_library to the public section to allow packages to linker with
                     GaudiPythonLib linker library. Request from Vanya.

! 2007-01-26 - Vanya BELYAEV
 Patch #989:
 - GaudiPython/TupleDecorator.h, src/Lib/TupleDecorator.cpp
     use new typedefs from GaudiKernel instead of local types
 - dict/kernel.h, dict/selection_kernel.h
     add 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

       # get histogram data service iself
       svc = self.histoSvc()
       # get the data
       histo = self.histoSvc('/stat/Calo/1')
 - python/gaudimodule.py
    add 2 methods for HistogramService:

       # return the native ROOT representation of the
       # underlying histogram
       hsvc.getAsROOT('/stat/Calo/1')
       # return the histogram (the same as hsvc['/stat/Calo/1']
       hsvc.getAsAIDA('/stat/Calo/1')


! 2007-01-27 - Pere Mato
 - Applied patch #987, new GaudiPython module...

! 2007-01-26 - Pere Mato
 - Applied patch #988: new class PropertyEntry in gaudimodule

=================== v8r13 ==================================
! 2006-12-18 - Pere Maro
 - Added default functions for endRun() and beginRun() in
   gaudimodule.py and GaudiAlg.py

! 2006-11-26 - Vanya BELYAEV - patch #923
 - 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

=================== v8r12 ==================================
! 2006-11-09 - Pere Mato
 - python/gaudimodule.py
     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

! 2006-11-08 - Vanya BELYAEV ibelyaev@physics.syr.edu
 - python/gaudimodule.py
      fix a major problem with AppMgr::config method:
       - the lists of DLLs&ExtSvc must be APPENDED (and not assigned)

     In addition some decoration:
      1) add new class iJobOptSvc for easy handling of properties
                                              (import from Bender)
      2) add new method ApMgr::optSvc - accessor to iJobOptSvc

=================== v8r11 ==================================
! 2006-11-03 - Pere Mato
 - 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

! 2006-11-02 - Pere Mato
 - Adapted config() to deal with new JobOptions that are always
   strings. Detected by Thomas when running Panoramix from Pyhton

! 2006-10-24 - Pere Mato
 - Add default initialize() method in PyAlgorithm.
   This fixes bug #20957, GaudiPython segfaults if an Python...

=================== v8r10 ==================================
! 2006-10-12 - Vanya Belyaev
 - Patch #878. python/GaudiAlg.py: restructurize some internal
   function to be available for external usage (e.g. from Bender)

! 2006-10-06 - Pere Mato
 - make visible some of the functions available in ROOT.py from
   gaudimodule

=================== v8r9 ===================================
! 2006-09-13 - Charles Leggett & Hubert Degaudenzi
 -fixed StatusCode Check.

=================== v8r8 ===================================

! 2006-09-01 - Ivan Belyaev
 - Add protector accessor to the GaudiPyhton::PyAlg in order to be
   able to inherit from the class.

=================== v8r7 ===================================
! 2006-06-06 - Ivan Belyaev & Alexander Mazurov
 - inserted modification for the new property parser/compiler.

=================== v8r6 ===================================
! 2006-05-24 - Pere Mato
 - Added changes from Radu Stoica:
 - More protections in iDataService
 - Introduction of CallbackStreamBuf to be implemented from Python to
    catch stream output.

=================== v8r5 ===================================
! 2006-05-04 - Hubert Degaudenzi
 - Clean up legacy lines of codes.

=================== v8r4 ===================================
! 2006-03-28 - Hubert Degaudenzi
 - commented out the generation of the dictionary for vector<double>
   which is already present in ROOT

! 2006-03-17 - Pere Mato
 - Changed TootSvc.create() to input requested interface
 - Dictionaries do not need to be loaded. Done with ROOT autoload

=================== v8r3 ===================================
! 2006-01-26 - 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

! 2006-01-23 - Hubert Degaudenzi
 - added IUpdateManagerSvc in the dictionary generation.

! 2006-01-23 - Hubert Degaudenzi
 - inserted workaround to match the correct naming of dictionaries on Linux

! 2006-01-19 - Pere Mato
 - adapted to use genreflex (Reflex from ROOT)

! 2006-01-10 - Hubert Degaudenzi
 - use of the DECLARE_XXX_FACTORY macros. replacement of the
   corresponding code.

=================== v8r2 ===================================
! 2006-01-06 - Pere Mato
 - Added GaudiPython in the PATH. Needed to load the initial dictionary

! 2005-12-01 - Hubert Degaudenzi
 - Commented out the AIDATupleSvc.

! 2005-12-01 - Pere Mato
 - Changed requirements to be able to put temporary libraries
   ahead in the LD_LIBRARY_PATH

! 2005-11-25 - Pere Mato
 - Added PyCintex.py as a temporary basis
 - Changed the order when loading the dictionaries
 - Minor changes to make python GaudiExamples to work

=================== v8r1 ===================================
! 2005-11-16 - Pere Mato
 - Removed GaudiPython.Interface classes from the generated dictionary. They are not
   needed with PyROOT implementation (smalled dictionaries)

=================== v8r0 ===================================
! 2005-10-27 - Pere Mato
 - Adapted to generate Reflex dictionaries and use PyROOT instead of PyLCGDict
 - Improved unit test test_basics.py
 - Added support for long types (long long, long double) as properties

=================== v7r0 ===================================
! 2005-08-17 - Vanya BELYAEV
 - modifications for updated GaudiAlg to incorporate
  very attractive feature: "universal" (numeric or
  alphanumeric) histogram/ntuple identifier, introduced
  by Chris into GaudiAlg

  Now major methods of Python's HistoAlgo and Tuple Algo
  from now could accept both numerical identifier,
  string identifier or "universal identifier:

  e.g. for N-Tuples :

    t1 = self.nTuple( 1             , 'My first  NTuple'     )
    t1 = self.nTuple( 'BLAH'        , 'My second NTuple'     )
    t1 = self.nTuple( TID ( 16 )    , 'My third NTuple # 16' )
    t1 = self.nTuple( TID ( 'XXX' ) , 'My fourth NTuple '    )
    t1 = self.nTuple( 'SUBDIR/AA'   , 'My fifth NTuple in subdirectory')

  similar for (1D,2D,3D)-histograms:

    self.plot1D( mass ,          ' This is 1st histogram ' , 1 , 10 )
    self.plot1D( mass , 2      , ' This is 2nd histogram ' , 1 , 10 )
    self.plot1D( mass , 'MASS' , ' This is 3rd histogram ' , 1 , 10 )
    self.plot1D( mass , 'subdir/MASS' , ' This is 4th histogram ' , 1 , 10 )
    self.plot1D( mass , HID( 44)  , ' This is 5th histogram ' , 1 , 10 )
    self.plot1D( mass , HID('M')  , ' This is 6th histogram ' , 1 , 10 )

  for profiles, one need to use HID explicitly:

     self.profile1D ( x , y ,                  ' title1 ' , 0 , 10 )
     self.profile1D ( x , y , HID(25)        , ' title2 ' , 0 , 10 )
     self.profile1D ( x , y , HID('x%y')     , ' title3 ' , 0 , 10 )
     self.profile1D ( x , y , HID('dir/x%y') , ' title4 ' , 0 , 10 )


! 2005-08-07 - Vanya BELYAEV
 - few major (*BACKWARD COMPATIBLE*) modifications to simplify
   the interactive analysis. Namely the useful base classes from
   GaudiAlg package are imported into the Python.
   Also major reshuffling of existing codes is performed to allow
   the reuse of code outside the GaudiPython package (e.g.
   in the context of Bender or Panoramix projects) without
   multiple explicit code duplicated (as it is now... :-((( )

   From now package builds also linker library GaudiPythonLib
   The dictionary is renamed to GaudiPythonDict (to avoid the
   masking of GaudiKernelDict built by GaudiKernel package)
   As a result the package now builds 3 library:
     1) component library  GaudiPython
     2) linker library     GaudiPythonLib
     3) dictionary library GaudiPythonDict

   New module GaudiAlgs.py is added into $GAUDIPYTHONROOT/python
   directory. This module contains essentially the base classes
   GaudiAlgo, HistoAlgo and TupleAlgo and the extensive documentations

   GaudiPython/kernel.h and GaudiPython/selection_kernel.xml
   now contains *ALL* abstract interfaces from GaudiKernel and
   GaudiAlgs packages

   $GAUDIPYTHON/python/gaudimodule.py file gets "atexit" function,
   making the exit statement optional (it is VERY convenient
   for scripts which is supposed to work both interactively and
   "as batch")

     New files:
     ==========
     $GAUDIPYTHONROOT/python/GaudiAlgs.py
     $GAUDIPYTHONROOT/GaudiPython/GaudiPython.h
     $GAUDIPYTHONROOT/GaudiPython/HistoDecorator.h
     $GAUDIPYTHONROOT/GaudiPython/Interface.h
     $GAUDIPYTHONROOT/GaudiPython/Printer.h
     $GAUDIPYTHONROOT/GaudiPython/TupleDecorator.h
     $GAUDIPYTHONROOT/GaudiPython/Vector.h
     $GAUDIPYTHONROOT/src/Lib/Algorithm.cpp
     $GAUIDIPYTHOROOT/src/Lib/AlgDecorators.cpp
     $GAUDIPYTHONROOT/src/Lib/HistoDecorator.cpp
     $GAUDIPYTHONROOT/src/Lib/TupleDecorator.cpp


! 20050804 - Pere Mato
 - gaudiconf.py: added new module to support configuration using Python
 - Gaudi.py: main top level gaudi script (still quite primitive)
 - genconf.py: the script to generate the "shadow-classes" from the C++ libraries
 - gaudimodule.py: added optional argument in AppMgr.__init__ to set ApplicationMgr
   own properties "before" configuration
   Added conversion to string of property values of non Python primitives
   Modified getComponentProperties() to handle the GaudiSvc case


=================== v6r13 ===================================
 - gaudimodule.py: removed 'GaudiDb' from the list of DLLs
 - getComponentProperties(): changed the order of initialization of AppMgr.

=================== v6r12 ===================================
 - GaudiPython/Algorithm.h: changed the inheritance of PyAlgorithm to inherit directly from Algorithm.
   This should solve [bug #7713] overview: Reassigned item: Problems with Gaudi\\\\\\\\\\\\\\\'s PyAlgorithm

=================== v6r11 ===================================
 - getClass(): added new method to get a C++ class and eventually load the needed
               dictionary
 - AppMgr.ntuplesvc(): added a line to ntuplesvc into the list of ExtSvc if not already there

=================== v6r10 ===================================
 - AppMgr.config(): make sure that the first property set is "Dlls" (problem reported by Vanya)
 - iDataSvc: added 'name' in __init__ for the case that the real object is not yet instantiated
 - Tool support: Appmgr.toolsvc() and improved Appmgr.tool()
   It is now possible to do access existing tools, or create new instances.
     gaudi.toolsvc().create('MyTool')
     gaudi.tool('Alg.Tool.SubTool').MyProperty = value
 - Added extra Helper functions toArray() to convert pointers (int*, float*,...) to sequenceable
   Python objects (needed for LHCb DAQBuffer)
 - Added also toXXXArray() functions for unknown pointer types (void*) like "raw_int", "l1_int"
     For example in the case of RawBuffer:
       rb  = evt['DAQ/RawBuffer']
       raw = gaudimodule.toIntArray( rb.buffer(), rb.currentSize() )
       for i in raw :  print i

=================== v6r9 ===================================
 - Implementation of AppMgr.config() following the ideas from Vanya
 - Documentation string for most of the classes and methods
 - Implementation of AppMgr.tool()
 - Implementation of AppMgr.setAlgorithms()
 - Implementation of iNTupleSvc class and AppMgr.ntuplesvc()
 - Implementation of iNtupleSvc.defineOutput( {}, type='ROOT' )

Not Done yet....
 - Check that EvtSel.open() does not work without "stream=..."

! 20041004 - Pere Mato
 - gaudimodule.py: changed AppMgr.__init__() to avoid changing OutputLevel back to default (3)

=================== v6r8 ===================================
! 20040910 - Pere Mato
 - gaudimodule.py: reworked AppMgr.run() to avoid calling reinitialize(). This is currently a problem because
   resets the event stream to the beginning each time. Problem reported by Vanya.

! 20040908 - Wim Lavrijsen
 - gaudimodule.py: added protection when algorithm/service does not exists and no properties are
                   yet defined.

=================== v6r7 ===================================
! 20040726 - Pere Mato
 - Moved method AppMgr.loaddict() as module function
 - Added iHistogramSvc.__getitem__() to return any type of histogram (suggested by Vanya)

=================== v6r6 ===================================
! 20040706 - Pere Mato
 - requirements: adapted to use new LCGCMT interface packages
 - renamed type IID to InterfaceID

! 20040622 - Wim Lavrijsen
 - Small correction on String properties to add " " to take into account blanks

=================== v6r5 ===================================
! 20040610 - Wim Lavrijsen
 - Added more instances of SimpleProperty<T> to cover all cases

! 20040524 - Wim Lavrijsen
 - Small corrections in in iProperty

=================== v6r4 ===================================
! 20040315 - Pere Mato
 - Change the initialization of AppMgr. Initialize() is not called at AppMgr.__init__() and
   it done later at the AppMgr.run() method
 - Alias for common AppMgr methods
   evtSvc  = evtsvc
   histSvc = histsvc
   evtSel  = evtsel
   detSvc  = detsvc
   partSvc = partsvc

=================== v6r3 ===================================
! 20040227 - Pere Mato
 - Added a the function getComponentProperties(module) to obtain the properties of all
   component classes available in a given component library (module)

=================== v6r2 ===================================
! 20040216 - Pere Mato
 - 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

! 20040202 - Pere Mato
 - Added histogram service functionality. retrieve1D(), 2D(), 3D()
 - Updated test_basics to test this functionality

=================== v6r1 ===================================
! 20040126 - Pere Mato
 - A number of small corrections mainly coming from feedback of Vanya


=================== v6r0 ===================================
! 20040116 - Pere Mato
 - New dictionaries for IRegister, IDataManagerSvc
 - DataSvc: Added new methods: clearStore, leaves, dump, setRoot
 - Extended the test test_basics.py

! 200401208 - Pere Mato
 - This is a complete new version of GaudiPython using LCG dictionaries to provide
   python bindings and it does not use boost.python.
 - The high-level interface has been kept as close as possible to the old version
 - The file gaudimodule.py is the main file to document the existing functionality

=================== v5r1 ===================================
! 20031127 - Pere Mato
 - Changes due to AIDA namespace (3.0)
 - Replaced macro WIN32 by _WIN32
 - Minor changes in requirement file for vc++ 7.1

! 20031029 - Paolo Calafiura (for wlav)
 -bug fixes in HistosFunctionality.cpp and HistoSvc.cpp
! 20030805 - Pere Mato
 - PythonScriptinfSvc.cpp
   avoid using FILE* since there are problems when libraries are compiled with different versions
   of the Visual C++. (currently Python 2.2.3 the binaries are produced by VC6 and
   does not compile out-of-the box with VC7)

=================== v5r0p1 ===================================
! 20030523 - Paolo Calafiura
 - cmt/requirements add boost_python explicitly to linkopts
! 20030520 - Paolo Calafiura
 - src/Test/Dictionary/Class_Dict.cpp use new OffsetOf macro

=================== v5r0======================================
! 20030408 - Pere Mato
 - Added new method execute(n) to AppMgr to overcome the problem that
   run(n) does always a reinitialize() in addition to execute events. The
   re-initialize is not well handled by DetDataSvc and Algorithms.

! 20030313 - Pere Mato
 - Correctly load the python dynamic library with GLOBAL flag to resolve
   symbols that may appear on other python extension modules.

! 20030130 - Wim Lavrijsen, Pere Mato
 - Changes introduced to convert the package Boost.Python 2.0
 - Added the capability of setting/getting properties of Algorithms
   and Services BEFORE they are created by the ApplicationMgr.

=================== v4r3======================================
! 20020930 - Pere Mato
 - Added Auditor support (Wim Lavrijsen)

=================== v4r2p1======================================
! 20020910 - Flr
 - requirements - use v*

===================v4r2==============================================
! 20020517 - Pere Mato
 - PyhtonScriptingSvc.cpp: load the python dynamic library with the
   global flag turned on to avoid problems when importing python modules
	 later that require resolving symbols from the python library
	 but they do not depend explicitly from it.

! 20020515 - Paolo Calafiura
 - AppMgr.cpp: replaced temp d-cast with queryInterface //Wim

===================v4r1==========================================
! 20020503 - Pere Mato
 - Adapted to new LHCb event model (KeyedContainers in addition to
   ObjectVectors).
 - Re-structured a bit: the IntrosObj and IntrosFunc share a single
   function to handle conversion of single and complex types to python.
 - Better handling argument conversions for methods and functions

===================v4r0==========================================
! 20020321 - Pere Mato
 - Adapted to the new GaudiIntrospection, which adds method support

! 20020319 - Markus Frank
 - Added the possibility to obtain any interface implemented by
   a component (service)

===================v2r0==========================================
! 20011130 - Pere Mato (v2)
 - Added initialize() and finalize() for algorithms and services

! 20011109 - Pere Mato (v1)
 - First version with somehow limited functionality but useful for testing

! 20011015 - Pere Mato
 - New package for interfacing Python using boost/python libraries