| The Gaudi Framework v27r1

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

GaudiUtils

    Package: GaudiUtils
    Package manager : Marco Clemencic
    Commit Id: 42dec2462c6bee3f5c65240baea2ec6b387d7ac1

    ============================== GaudiUtils v6r2 ===============================

    ! 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-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

    ============================== GaudiUtils v6r1 ===============================

    ! 2016-01-12 - commit 4dbdc8e

     - fixed clang 3.7 compilation warnings

       Fixes GAUDI-1083.
     See merge request !89

    ! 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-11-02 - commit 57f356c

     - Merge branch 'hive' into 'master'

       Fixes GAUDI-978.

       See merge request !65

    ! 2015-10-26 - commit de80db5

     - More modernization changes

       Fix (almost) all warnings from clang 3.7, and use clang-modernize to further
       modernize the code.

       Fixes GAUDI-1118.

       See merge request !49

    ============================== GaudiUtils v6r0 ===============================

    ! 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

    ============================== GaudiUtils v5r3 ===============================
    ! 2014-10-10 - Marco Clemencic
     - Added optional 'se' attribute the the XML file catalog DTD.

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

    ============================== GaudiUtils v5r2 ===============================
    ! 2014-06-19 - Marco Clemencic
     - Fixed unchecked StatusCode.

    ! 2014-06-17 - Marco Clemencic
     - Fixed bug GAUDI-971 (successful failover to a replica in IODataManager leads
       to non-zero exit code).
       The application exit code set before the loop on the replicas is restored
       if the access to any of the replicas succeeds.

    ! 2014-06-17 - Marco Clemencic
     - Build test functions in XMLCatalogTest.cpp as proper tests (CMake only).

    ! 2014-05-07 - Sebastien Binet
     - use new PluginService API (with C++11 variadic templates for the factories.)
     - hide the C++11 constructs from Reflex as GCC-XML parser predates C++11

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

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

    ! 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-17 - Marco Clemencic
     - Use the new ROOT-free Plugin Service.

    ! 2013-07-17 - Marco Clemencic
     - Removed factories forward declarations.

    ! 2013-07-03 - Marco Clemencic
     - Minor changes in a comment.
     - Removed explicit link against Reflex from cmt/requirements.
     - Replaced references to ROOT::Reflex::PluginService with Gaudi::PluginService.

    ============================== GaudiUtils v4r7 ===============================
    ! 2013-11-01 - Markus Frank
     - Add support for data federations. The IODataManager will try out
       all PFNs in the file catalog until one entry is found, which can be opened.

    ============================== GaudiUtils v4r6 ===============================
    ! 2013-07-09 - Marco Clemencic
     - Fixed bug #101513: Raw->Raw processing should not print an error
       Added the property DisablePFNWarning to silence the ERROR message about files
       opened by their physical name.

    ============================== GaudiUtils v4r5 ===============================
    ! 2013-05-28 - Marco Clemencic
     - Modified StalledEventMonitor to be able to print a stack trace of the stalled
       process and abort the execution.

    ! 2013-04-16 - Marco Clemencic
     - Fixed Clang warnings.

    ============================== GaudiUtils v4r4 ===============================
    ! 2013-01-22 - Vanya Belyaev
     - Patch #5594: fix for parsing of 1D histograms with non-equidistant binnings

    ============================== GaudiUtils v4r3 ===============================
    ! 2012-11-14 - Marco Clemencic
     - Updated CMakeLists.txt.

    ============================== GaudiUtils v4r2 ===============================
    ! 2012-07-13 - Marco Clemencic
     - Fixed configuration for Boost 1.50.
     - Fixed a problem with symbols visibility.

    ============================== GaudiUtils v4r1 ===============================
    ! 2012-06-08 - Marco Clemencic
     - Added CMake configuration files.

    ! 2012-06-07 - Marco Clemencic
     - Fixed Clang warnings.

    ============================== GaudiUtils v4r0 ===============================
    ! 2012-01-20 - Marco Clemencic
     - Imported HistoStrings functions from (LHCb) Kernel/HistoStrings
       (required to build DetDesc).

    ! 2011-12-02 - Marco Clemencic
     - Moved VFSSvc from GaudiSvc to GaudiUtils.

    ============================== GaudiUtils v3r14 ==============================
    ! 2011-10-28 - Marco Clemencic
     - Changed the usage of make_pair to support C++0x.

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

    ============================== GaudiUtils v3r12 ==============================
    ! 2011-03-23 - Marco Clemencic
     - Fixed VC9 warnings.
       - Replaced C-style string manipulation and formatting with C++ (and Boost)
         implementations.
       - Disabled some warnings.

    ============================== GaudiUtils v3r11 ==============================
    ! 2011-01-11 - Marco Clemencic
     - Fixed some ICC remarks.

    ============================== GaudiUtils v3r10 ==============================
    ! 2010-09-20 - Marco Clemencic
     - Fixed bug #70956: Add method to find the reason for termination of the
                         event loop
       - Use the new return code constants in case of signal
         (Gaudi::Utils::StopSignalHandler).

    ============================== GaudiUtils v3r9 ===============================
    ! 2010-07-14 - Marco Clemencic
     - Another small fix for Xerces-C 3.1.

    ! 2010-05-27 - Chris Jones
     - Patch #4045: Utilities to set histogram axis and bin labels for GaudiUtils

    ! 2010-05-17 - Marco Clemencic
     - Adepted to work with Xerces-C 3.1.0 (as well as 2.8.0).

    ============================== GaudiUtils v3r8 ===============================
    ! 2010-04-23 - Marco Clemencic
     - Minor fix to compile with gcc 4.5.0

    ! 2010-04-22 - Marco Clemencic
     - Set the return code of the application to (128 + signal number) when a signal
       is trapped by the StopSignalHandler.

    ! 2010-04-21 - Marco Clemencic
     - Changed the messages in StalledEventMonitor to report about memory usage and
       not stop printing after 3 calls.

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

    ! 2010-04-19 - Marco Clemencic
     - Moved the EventTimeoutWatchdog thread from the EventLoopMgr to a dedicated
       service in GaudiUtils (StalledEventMonitor).

    ! 2010-04-16 - Marco Clemencic
     - Modified the implementation of the fix to bug #62374 (Handling of signal
       SIGXCPU).
       The new implementation is based on a couple of extra services instead of
       being integrated in EventLoopMgr (less intrusive).
       - Gaudi::Utils::SignalMonitorSvc (implementing the interface ISignalMonitor)
         is a service that just keep track of the occurrences of the requested
         signals and, optionally, propagates them to the previously registered
         handlers (if any).
       - Gaudi::Utils::StopSignalHandler uses SignalMonitorSvc to check if any of
         the signals in the list (property) "Signals" has been received and trigger
         a stop of the event loop in that case (during the BeginEvent incident).

    ============================== GaudiUtils v3r7 ===============================
    ! 2010-03-16 - Vanya Belyaev
     - Patch #3840: Fix for bug #59009
       - HistoDump:
         Rename the functions with return value of std::ostream&, they produce
         messages to std::err in python.
         Since "std::ostream&" variants are useless to python, just rename them,
         thus avoiding the dictionaries.

    ! 2010-01-28 - Marco Clemencic
     - Fixed icc remark #177: X declared but never referenced

    ============================== GaudiUtils v3r6 ===============================
    ! 2009-12-15 - Marco Clemencic
     - Fixed bug #59659: Untested StatusCodes in IODataManager.cpp

    ================ GaudiUtils v3r5 ====================================
    ! 2009-10-08 - Vanya Belyaev
     - Patch #3311: Add ASCII dump for 1D-profile histograms
       Extension of patch #3261 to 1D-profile histograms

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

    ! 2009-09-08 - Rob Lambert
     - Patch #3222: Patch to Issue incidents for Input Files
       - Details required for the documentation of output
         files in the Summary services
       - Added functionality to IODataManager
         will now fire a FailedInputFile incident when there is a problem

    ================ GaudiUtils v3r4 ====================================
    ! 2009-08-01 - Rob Lambert
     - Patch #3174: Added GaudiUtils/RegEx.h
       It containes templated functions to deal with Regular Expressions.
       Uses boost/regex.hpp, and std::string.

    ! 2009-07-21 - Hubert Degaudenzi
     - Fixed typo in the -no_static usage.

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

    ================ GaudiUtils v3r3 ====================================
    ! 2009-07-08 - Marco Clemencic
     - Removed the usage of extend_interfaces1.

    ================ GaudiUtils v3r2 ====================================
    ! 2009-06-23 - Marco Clemencic, Vanya Belyaev
     - Patch #2980: Moved Range.h and NamedRange.h from GaudiUtils to GaudiKernel.

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

    ================ GaudiUtils v3r1 ====================================
    ! 2009-05-15 - Marco Clemencic
     - Fixed bug #50389: AppMgr.algorithm/tool/algorithms does not work for
                         GaudiPython::PyAlg<TYPE>
       Changed the inheritance from "implements#": replaced "virtual public" with
       "public" (more correct and does not confuse PyROOT).

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

    ! 2009-04-06 - Vanya Belyaev
     - Patch #2930: improve the manipulations with AIDA histograms
       - GaudiUtils/HistoStats.h, src/Lib/HistoStats.cpp
         1) fix the bug in evaluation of error in kurotsis (thanks to Dmitry Golubkov!)
         2) fix the bug in evaluation of error in moment
         3) add new methods for class Gaudi::Utils::HistoStats
            sumBinHeightErr          : the error for AIDA::IHistogram1D::sumBinHeights
            sumAllBinHeightErr       : the error for AIDA::IHistogram1D::sumAllBinHeights
            overflowEntriesFrac      : the fraction of overflow entries
            underflowEntriesFrac     : the fraction of underflow entries
            overflowEntriesFracErr   : the (binomial) error on fraction of overflow entries
            underflowEntriesFracErr  : the (binomial) error on fraction of underflow entries
            overflowIntegralFrac     : the fraction of overflow integral
            underflowIntegralFrac    : the fraction of underflow integral
            overflowIntergalFracErr  : the error on fraction of overflow integral
            underflowIntegralFracErr : the error on fraction of underflow integral
            nEntries                 : number of entries for certain ranges
            nEntriesFrac             : fraction entries for certain ranges
            nEntriesFracErr          : the (binomial) error for the fraction entries for certain ranges
       - GaudiUtils/HistoTableFormat.h, src/Lib/HistoTableFormat.cpp
         1) Add the possibility to print new estimators from class HistoStats.
            The overall number of the predefined fields in table printout
            now is 26.. see GaudiUtils/HistoTableFormat.h for the list
         2) add few new reference formats:
              StatOnly  : #entries, mean, rms, skewness & kurtosis
              Stat1     : similar to StatOnly but with errors
              ShapeOnly : mean.rms, skewness,kurtosis, overflow&underflow fractions
              Shape     : similar for ShapeOnly but with errors
           "Shape"-format are very useful for comparison of histograms by shapes,
           ignoring the normalization

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

    ! 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-02-06 - Marco Clemencic
     - Moved the implementation of the methods addRef and release to the templated
       base class implements<> (avoids duplication).

    ! 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)
     - Removed the IID_* constants.

    ================ GaudiUtils v2r2 ====================================
    ! 2008-11-27 - Marco Clemencic
     - Fixed compilation problems with ROOT 5.21/06.

    ================ GaudiUtils v2r1 ====================================
    ! 2008-10-10 - Vanya Belyaev
     - Patch #2073: SharedObjectsContainer and 'blind' access to TYPE::Container &
                    TYPE::Selection
        * GaudiUtils/Range.h
        * GaudiUtils/NamedRange.h
        * src/Lib/Range.cpp
       The light representation of containers through the par of iterators.
       The files are copied (and renamed) from LoKi project.

    ! 2008-10-03 - Vanya Belyaev
     - Patch #1943. Added update handler to MultiFileCatalog.Catalogs

    ================ GaudiUtils v2r0 ====================================
    ! 2008-06-04 - Chris Jones
     - Patch #1861. Prevent division-by-zero results in skewness and kurtosis.
       Protection against NaN/Inf in Gaudi::Utils::HistoStats::skewness and
       Gaudi::Utils::HistoStats::kurtosis (return 0 instead).

    ! 2008-06-02 - Marco Clemencic
     - Task #5809. Extension to Gaudi Application state machine.
       - Renamed the method IFileCatalog::start to IFileCatalog::init, to avoid
         clashes with IService::start.

    ================ GaudiUtils v1r6 ====================================
    ! 2008-04-03 - Vanya BELYAEV
     - Patch #1749. Improve some printout of the histogram.
       The default width of "ID" and the "title" fields are incremented to improve
       the printout.
       Also more coherent treatment of HistoStats is performed to minimize the
       cross references.

    ! 2008-04-03 - Markus Frank
     - Bug #33372 (Patch #1746). Memory leak in XmlFileCatalog.
       - Fix memory leak on transcoding XML strings during Xerces exception handling.

    ================ GaudiUtils v1r5 ====================================
    ! 2008-03-04 - Markus Frank
     - Patch #1722.
       - Fix dataset access by LFN. Was simply not working.

    ! 2008-02-21 - Markus Frank
     - patch #1700. Fix the filter mechanism to reduce the number of messages
       for inaccessible objects.

    ! 2008-02-11 - Markus Frank
     - Fixed Bug #33372. Tiny memory leak in XmlFileCatalog.

    ================ GaudiUtils v1r4 ====================================
    ! 2008-01-30 - Markus Frank
     - Fix bug in XMLCatalog (protect if element is not a DOMElement)
     - Fix bug in IODataManager catalog lookup

    ! 2008-01-19 - Markus Frank
     - Fix bug in file aging: only age files when new read-only connections appear
       (like in POOL)

    ! 2008-01-19 - Markus Frank
     - Fix printout level of messages from the IODataManager.

    ! 2008-01-15 - Markus Frank
     - 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.

    ! 2007-12-12 - Marco Clemencic
     - patch #1585.
       Fixed warnings about breaking of strict-aliasing rules (gcc 4.1 optimized).

    ================ GaudiUtils v1r3 ====================================
    ! 2007-10-21 - Markus Frank
     - Patch #1534. Fixed compilation warning which didn't appear on
       windows.

    ! 2007-10-19 - Markus Frank
     - Patch #149[234]. Add components library containing file catalog and I/O data manager.
       Used by DAQ/MDF and GaudiPoolDb

    ================ GaudiUtils v1r2 ======================================
    ! 2007-09-19 - Vanya Belyaev
     - Fixed bug #29969 (Error compiling GaudiUtils/HistoTableFormat with gcc4.1)

    ! 2007-09-19 - Vanya Belyaev
     - patch #1273.
       - GaudiUtils/HistoStats.h
          add new functions
          - meanErr
          - rmsErr
          - kurtosisErr
          - skewnessErr
          - momentErr
          - centralMomenErr
          rmsErr is more precise that ROOT, since ROOT neglects kurtosis.
          Please note that ROOT has a completely wrong calculations
          of errors in skewness and kurtosis

       - GaudiUtils/HistoTableFormat.h
         new utilities for highly customizable printout of histograms

    ! 2007-08-07 - Vanya BELYAEV
     Patch #1266:
     - GaudiUtils/HistoStats.h, src/Lib/HistoStats.cpp
         new files with simple class Gaudi::Utils::HistoStats for evaluation
         of few basic statistical quantities for AIDA::historgams:
           - moments
           - central moments
           - skewness
           - kurtosis
        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.
     - GaudiUtils/Aida2ROOT.h, src/Lib/Aida2ROOT.cpp
       fix doxygen comments

    ================ GaudiUtils v1r1 ======================================
    ! 2007-04-27 - Hubert Degaudenzi
     - fixed compilation problem with ROOT libHist which requires
       libMatrix on mac osx.

    ================ GaudiUtils v1r0 ======================================
    ! 2007-02-07 - Ivan Belyaev
     - patch #989. GaudiUtils/Aida2ROOT.h, src/Lib/Aida2ROOT.cpp, new
       class Gaudi::Aida2ROOT for access for internal ROOT implementation
       of transient histograms in Gaudi [Useful functions, heavily used in
       the context of Bender/Panoramix&Online]