art series 2.00¶gallery -- that can read
art/ROOTfiles without executing the full
artframework. Two changes are worth noting upfront:
artheaders and libraries that correspond to product reading have been moved to a new package called canvas.
- The use of ROOT6 has been improved considerably such that any memory increase in moving from ROOT5 to ROOT6 is kept at a minimum.
- Improved use of ROOT6: In order to facilitate more robust dictionary-lookup, ROOT6 enables "auto-parsing" by default. For classes whose dictionaries are not present, ROOT6 parses the associated header files automatically. Such parsing can significantly expand the memory profile of the process, perhaps inducing grid-submitted jobs to exceed their allotted memory quota. To avoid this scenario,
art2.00.01 implements customized ROOT I/O behavior for some subtle situations where auto-parsing might be performed. In addition, ROOT6 auto-parsing has been explicitly disabled for user-defined dictionaries.
art/ROOTinput files, fast cloning has been deactivated due to differences in the splitting policies of ROOT5 vs. ROOT6. (Resolves issue #12572.)
- Improved C++ usage and portability: Various adjustments have been made to refine the C++ usage within the art suite. In addition, the
fhiclcpplibraries have been updated to be more portable for different implementations such as clang and GCC5. (Resolves issues #11647, #11844, #11860, #11976, #11982, and #12385.)
- One-parameter service constructors: In circumstances where services do not need to register callbacks, a one-parameter service constructor is available, accepting a
constreference to a
ParameterSetobject. (Resolves issue #10886.)
- Additional "under-the-covers" improvements.
The locations of product-reading libraries and headers have migrated to canvas. In order to update your source code and (if using
cetbuildtools) the link lines in your CMakeLists.txt files, please use the following scripts:
#includepaths in source code.
canvas/tools/canvas_refactor/fix_cmake_art.pl- updates link lines in
canvas/tools/canvas_refactor/update_for_art.sh- performs both steps above.