patch #3134: Replace for patch #3007 and patch #2873

2009-07-11 15:34, original submission:

This patch is an improved combination of #patch 3007 and #patch 2873.

It allows flexibility for interactive inspection&manipulation&mointoring of algoritms and tools.
From the given component one can extract the counters, tools & histograms.

These methods are applicable both to proxy-classes iAlgorithm and iAlgTool from GaudiPython.Bindings module, as well as for the actual Python algorithms from GaudiPython.GaudiAlgs module, e.g.

The following modules are cleaned :

  1. GaudiPython.GaudiAlgs
  2. GaudiPython.TupleUtils
  3. GaudiPython.HistoUtils

To be useful as key for python dictionary, the class GaudiAlg::ID has got the hash-function and all non-const methods have been removed [preincrement has been used only in two files, fixed properly, other (pre/post/in/de)crement operators have not been user at all].

The usage of "fictive" gaudimodule module has been removed.

AIDA-histograms are decorated with usage of Gaudi::Utils::Histos::Path and Gaudi::Utils::HistoStats functions

GaudiPython.HistoUtils module has been updated taking into account the feedback from June analysis hands-on workshop. One needs in addition to add class HistoFile by Juan into this updated module.. (see #patch 3091)

GaudiPython.TupleUtils module now warns at "atexit", if helper tuple-tools are not released explicitly.

The real python algorithms form GaudiPython.GaudiAlgs moduel have got keywords arguments for constructors, thus making possible to set the properties and attributes at construction time:

The non-nesessary public-virtual bases have been removed from GaudiPython::PyAlg template class.

The (python) documentation has been drastically improved for all cases, listed above..

All this functionality& decorations is not applied automatically! To access new functionality one needs to import GaudiPython.GaudiAlgs, GaudiPython.HistoUtils and/or GaudiPython.TupleUtils modules correspondingly

New example HistoUtilsEx.py for illustration of GaudiPython.HistoUtils module is attached..

Affected packages:

  1. GaudiAlg
  2. GaudiPython

The modified files for GaudiAlg package:

  1. src/lib/GaudiCommon.icpp
  2. src/lib/GaudiHistoID.cpp
  3. GaudiAlg/GaudiTuples.icpp
  4. GaudiAlg/GaudiCommonImp.h
  5. GaudiAlg/GaudiHistos.h
  6. GaudiAlg/GaudiCommon.h
  7. GaudiAlg/GaudiHistoID.h
  8. GaudiAlg/GaudiTuples.h
  9. GaudiAlg/GaudiHistos.icpp

The modified files for GaudiPython package:

  1. python/GaudiPython/TupleUtils.py
  2. python/GaudiPython/GaudiAlgs.py
  3. python/GaudiPython/HistoUtils.py
  4. dict/selection_kernel.xml
  5. dict/kernel.h
  6. src/Lib/AlgDecorators.cpp
  7. src/Lib/HistoDecorator.cpp
  8. GaudiPython/AlgDecorators.h
  9. GaudiPython/HistoDecorator.h
  10. GaudiPython/Algorithm.h

Vanya Belyaev <ibelyaev>