| The Gaudi Framework v28r2p1 (f1a77ff4)

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

RootHistCnv

    Package: RootHistCnv
    Package manager : David Quarrie
    Commit Id: $Format:%H$

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

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

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

    ============================= RootHistCnv v12r4 ==============================

    ! 2016-03-11 - commit 4912fc9

     - Renamed MetaDataSvc to Gaudi::MetaDataSvc

       MetaDataSvc is moved into the Gaudi namespace to avoid conflicts
     with the
       existing MetaDataSvc in ATLAS.
        This also includes a minor fix to MetaDataSvc.
        Fixes GAUDI-1199
        See merge request !138

    ! 2016-03-10 - commit 2de9290

     - added metadata service

       The metadata service adds information about n-tuple production into the
       resulting n-tuple.
        Update and overrides !128
        See merge request !136
    ============================= RootHistCnv v12r3 ==============================

    ! 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

    ============================= RootHistCnv v12r2 ==============================

    ! 2015-09-30 - commit 70dd6a7

     - Merge branch 'GAUDI-1099' into 'master'

       GAUDI-1099: revert to old behaviour on bad input

       See merge request !32

    ! 2015-09-28 - commit c36ecec

     - Merge branch 'GAUDI-1099' into 'master'

       fix GAUDI-1099

       std::stol is more aggressive than ::strtol when given bad input. This results
       in Boole failing in the LHCb nightly builds. See GAUDI-1099.

       See merge request !31

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

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

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

    ! 2013-07-30 - Marco Clemencic
     - Use DECLARE_CONVERTER_FACTORY instead of DECLARE_CONVERTER (avoid clashes).

    ! 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
     - Replaced references to ROOT::Reflex::PluginService with Gaudi::PluginService.

    ============================= RootHistCnv v11r3 ==============================
    ! 2013-10-24 - Chris Jones
     - Add a property to RootHistCnv::RFileCnv that allows the ROOT compression
       settings to be defined. Configuration syntax takes the form :-
          from GaudiKernel.Configurable import ConfigurableGeneric as RFileCnv
          RFileCnv('RFileCnv').GlobalCompression = "LZMA:6"
       where the first part of the string is the compression algorithm, the second
       the compression level. Default string is "" which means the nothing
       explicitly set, and the defualt ROOT compression level (currently equivalent
       to "ZLIB:1") is used.

    ============================= RootHistCnv v11r2 ==============================
    ! 2012-11-14 - Marco Clemencic
     - Updated CMakeLists.txt.

    ============================= RootHistCnv v11r1 ==============================
    ! 2012-06-08 - Marco Clemencic
     - Added CMake configuration files.

    ! 2012-05-03 - Marco Clemencic
     - Fixed some "pedantic" warnings.

    ========================== RootHistCnv v11r0 ===========================
    ! 2011-12-01 - Chris Jones
     - Fixed bug #85377: GaudiTuple tuple does not understand ulonglong
       Add support for additional data types long long and unsigned long long

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

    ============================= RootHistCnv v10r6 ==============================
    ! 2011-01-11 - Marco Clemencic
     - Fixed some ICC remarks.

    ============================= RootHistCnv v10r5 ==============================
    ! 2010-09-22 - Marco Clemencic
     - Fixed bug #71216: Gaudi crashes when output nTuple file cannot be written

    ============================= RootHistCnv v10r4 ==============================
    ! 2010-01-29 - Marco Clemencic
     - Fixed icc remark #1599: declaration hides variable

    ! 2010-01-28 - Marco Clemencic
     - Fixed icc remark #424: extra ";" ignored
     - Fixed icc remark #111: statement is unreachable
     - Fixed icc remark #593: variable "X" was set but never used

    ============================= RootHistCnv v10r3 ==============================
    ! 2009-11-19 - Marco Clemencic
     - Removed run-time dependency on PCRE (which has been removed from LCGCMT).

    ================ RootHistCnv v10r2 ====================================
    ! 2009-07-30 - Marco Clemencic
     - Fixed some doxygen warnings.

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

    ================ RootHistCnv v10r1 ====================================
    ! 2009-06-26 - Marco Clemencic
     - Fixed bug #52316: Silence WARNINGS from RootHistSvc
       Added the boolean property OutputEnabled to be able to disable the output of
       histograms on ROOT files without 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).

    ================ RootHistCnv v10r0 ====================================
    ! 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-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-07 - Marco Clemencic
     - Fixed uninitialized variable (RootHistCnv::PersSvc::m_hfile).

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

    ! 2009-01-22 - Marco Clemencic
     - Adapted to the new IInterface functionalities (see GaudiKernel release.notes)

    ================ RootHistCnv v9r17 ====================================
    ! 2008-01-29 - Marco Clemencic
     - Modified the fix for libNet on OSX to be compatible with LCGCMT 53.

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

    ================= RootHistCnv v9r15 =====================================
    ! 2007-07-16 - Marco Clemencic
     - changed the syntax for specialization of templated function in namespace
       for gcc 4.1 future use

    ================= RootHistCnv v9r14 =====================================
    ! 2007-05-15 - Pere Mato
     - Added extra argument needed in constructor of TBranch.
       This is new in version 5.15.06 of ROOT.

    ================= RootHistCnv v9r13 =====================================
    ! 2007-03-15 - Hubert Degaudenzi
     - 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, ...)

    ================= RootHistCnv v9r11 =====================================
    ! 2007-01-08 Markus Frank
      - Fix histogram converters to automatically convert THxF to THxD
        when reading from file.

    ! 2006-11-30 - Pere Mato
      Adpated package to the new PluginSvc
      - Removed protected from constructor/destructors and fiendship of
        Factory class

    ! 2006-11-13 Markus Frank -- patch #908
     - Simplify histogram conversion. Take advantage of the fact that the
       underlying implementation is realized using ROOT.

    ================= RootHistCnv v9r10 =====================================
    ! 2006-03-13 - Hubert Degaudenzi
     - changed the default tile for trees form "Athena Trees" to "Gaudi
       Trees".

    ================= RootHistCnv v9r9 =====================================
    ! 2006-03-13 - Hubert Degaudenzi
     - fix for patches #691-694 by Markus Frank which allow support for
       objects in Evt collections

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

    ================= RootHistCnv v9r7 =====================================
    ! 2005-12-20 - Hubert Degaudenzi
     - PI has been replaced by GaudiPI.

    ================= RootHistCnv v9r6 =====================================
    ! 2005-10-27 - Hubert Degaudenzi
     - modified requirements file for future use of the new package GaudiPI.

    ================= RootHistCnv v9r5 =====================================
    ! 2005-08-15 - Hubert Degaudenzi
     - 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).
    	Remarks:
    	-> this fix adds a dependency on PI in RootHistConv
    	-> it also calls the conversion routine for H1D (to be consistent)

     - RFileCnv.cpp: Fixed small bug concerning checking output level
       before printing (Leggett)

    ================= RootHistCnv v9r4 =====================================
    ! 2005-01-11 - Pere Mato
     - Added profile histograms converters (Charles Leggett)

    ================= RootHistCnv v9r3 =====================================
    ! 2004-07-22 - Pere Mato
     - HxDCnv.cpp, PersSvc.cpp, RConverter.*: added the option to prefix
       histograms id with "h" when they are numerical (mandatoty for
       HBOOK). This faciliates the interaction with them from the ROOT
       application.
           RootHistSvc.ForceAlphaIds  = true;

    ================= RootHistCnv v9r2 =====================================
    ! 2004-07-05 - Pere Mato
     - requirements: changed to use the new LCGCMT interface packages

    ================= RootHistCnv v9r1p1 =====================================
    ! 2004-05-07 - Pere Mato
     - RConverter.cpp: Fixed a problem that affected reading histogram
       files from Windows. Probably due to ":" or "\" in file
       name. Replaced gDirectory->cd() by TFile::cd()

    ================= RootHistCnv v9r1 =====================================
    ! 2003-01-14 - Charles Leggett
     - RNTuple.cpp deal with empty ntuples

    ================= RootHistCnv v9r0 =====================================
    ! 2003-11-28 - Pere Mato
     - Fixed: [ Bug #1772 ] RootHistCnv produces too many INFO messages
       Changed from INFO to DEBUG messages related to conversion of histograms
       Changed names from YYY::XXXX to XXXX to allow easy control with job options

    ! 2003-10-28 - Grigori Rybkine
     - Adapted for use with the version of HistogramSvc using (instead of HTL)
       the ROOT based AIDA histograms implementation from the LCG PI project
       This includes:
       - change to the new AIDA version 3.0.0
       - the modified histogram converter classes H1DCnv, H2DCnv, H3DCnv,
         each responsible now for conversion of the corresponding fixed and
         variable bin size histograms (classes H1DVarCnv, H2DVarCnv,
         H3DVarCnv removed)
     - Added setting of statistics for 1D, 2D, 3D histograms being made persistent
     - Made changes (in particular, to RDirectoryCnv.cpp) so as to make
       reading of 1D variable bin size histograms and 2D fixed bin size
       histograms possible
     - Added ability to read in 2D variable bin size histograms

    ! 2003-11-26 - Pere Mato
     - Changes for Mac OSX (Guy Barrand)

    ! 2003-08-05 - Pere Mato
     - Removed warnings produced by VC7
     - Adapted to new version of GaudiKernel (POOL integration)

    ================= RootHistCnv v8r2p3 =====================================
    ! 2003-06-10 - Charles Leggett
     - Added ability to read in Matrices, and fixed size Arrays

    ================= RootHistCnv v8r2p2 =====================================
    ! 2003-06-04 - Charles Leggett
     - fixed bug in RCWNtupleCnv::book, where was setting range for
        non integer TLeaf
     - FIXME: when next version of ROOT appears, add TLeafI->SetMinimum() call

    ================= RootHistCnv v8r2p1 =====================================
    ! 2003-05-19 - Charles Leggett
     - fixed bug in analyzeItem (Bug #576 Matrices in CWN not filled correctly)

    ================= RootHistCnv v8r2 =======================================
    ! 2003-03-10 - Charles Leggett
     - Added ability to read H1D, H2D, H1DVar
     - added direct accessor to TObject* in RootObjAddress (ipar[2])
     - Added bool flag to PersSvc, so warning of "undefined output file name"
       only gets printed once.

    ! 2003-02-13 - Charles Leggett
     - Added ability to read in CWNT
     - Added RootObjAddress to keep track of TObject* ptr (m_ipar[2])
     - got rid of regNTuple as functionality is supplanted by RootObjAddress
     - block names are part of full variable names, as BLK::var[size]/Type
     - fix core dump on destruct of PersSvc if hist output file not set
     - fix Write() so only one copy of ntuples gets written

    ================= RootHistCnv v8r1p2 =======================================
    ! 2002-11-29 - Pere Mato
     - Corrections to support linking applications statically

    ================= v8r1p1 =======================================
    ! 2002-10-29 - Pere Mato

    ================= v8r0p2 =======================================
    ! 2002-10-10 - Pere Mato
     - Corrected bug reported by Thomas Ruf concerning the filling of
       underflow and overflow contents for 2D and 3D histograms.

    ================= v8r1 =========================================

    ================= v8r0p1 =======================================
    ! 2002-09-23 - Florence Ranjard
     - requirements - use v*

    ===================v8r0==========================================
    ! 20020717 - Pere Mato
     - Change of the ROOT version to v3.03 (3.03/06)

    ! 20020703 - Paolo Calafiura
     - PersSvc.cpp: disambiguate method overload for SmartDataPtr
     - RCWNtupleCnv.cpp: removed static parseName qualifier

    ===================v7r0==========================================
    ! 20020618 - Pere Mato
     - Change of the ROOT version to v3.02 (v3.02.07)

    ===================v6r0==========================================
    ! 20020405 - Markus Frank
     - Adapted to the new version of Gaudi
     - Removal of all global static storage
     - Major cleanup

    ! 20020327 - Pere Mato
     - Adapted to use the new AIDA interfaces (2.2)
     - Added converters for 3D histograms support

    ===================v5r0==========================================
    ! 20011122 - Pere Mato (v5)
     - Adapted to use the new GaudiKernel and the re-design of the
       data sore classes

    ! 20010626 - Pere Mato
     - Changed to use AIDA interfaces
     - Modified to not create a directory (/stat) if histograms are at top level

    ! 20010618 - v4 (Flr)
      requirements - use ROOT v3r01

    ! 20010508 - Pere Mato
     - Using GaudiKernel v10

    ! 20010315 - David Quarrie
      Fix problems when using ROOT for both event and histogram persistency.

    ! 20010223 - David Quarrie
      Tweaks to NTupleINfo.h for template handling on Solaris.

    ! 20010119 - Pere Mato
      Accomodate to the changes in GaudiKernel. Removed the extern declarations to access
      IIDs.

    !20001128 RootHistCnv v1 (P.Mato)
      Adapted to new version of CMT and NMake for NT

    !20001106 RootHistCnv v1 Marco Cattaneo
    - removed unneccessary dependence on CERNLIB, and explicit dependence on EXTLIB
      (implicit through dependence on Gaudi)

    !20001027 Pere Mato
    - Removed compilations problems for NT

    !20001020 Pere Mato
    - Few changes needed to be compatible with current head revision of Gaudi
      and fixes to compilation problems in Windows

    !20001013 David Quarrie
    - New package developed by Charles Leggett to support Histogram
      Persistency based on ROOTsupport. As far as the user is concerned,
      They need to add to their jobOptions.txt file the following lines:

    // Specify Share Library for ROOT persistency support
    ApplicationMgr.DLLs += "RootHistSvc";
    // Specify ROOT or HBOOK persistency (HBOOK is default)
    ApplicationMgr.HistogramPersistency = "ROOT";
    // Specify Histogram Persistency Output File
    HistogramPersistencySvc.OutputFile = "histo.rt"