This is a wishlist of things that in my opinion need to be changed in the ROOT analysis framework to give particle physics analysis software a respectable name and a fertile future. The current state of affairs is unsustainable and something needs to give. Let's hope it isn't integrity. If you need some background, my article on problems with ROOT might do the trick.

The wishlist

The wishlist, roughly ordered by priority, is below. Note that here I'm arguing for fixes to ROOT, rather than moves of the community to a different system. This isn't necessarily the best approach, but it's probably more feasible to change software than to move people with entrenched working methods! These things need institutional high-level support, which has so far not been forthcoming. Until the people on experiments in charge of analysis and related topics make demands to the ROOT developers and CERN PH/IT divisions that things be changed, nothing will happen.

  1. Split ROOT into a modular design, with a core system including (probably) the stats and plotting code and the user interface. Other facilities should be grouped into external modules.
  2. Provide pluggable I/O to various formats, including FITS, HDF5, plain text and, crucially, AIDA.
  3. Throw away the CINT interpreter and make PyROOT the default interface. CINT is unstable, ill conceived and dangerous. Python has a well-defined and widely used syntax, CINT merely has "sort of like C++, except when it doesn't work. Ideally, an even simpler, e.g. gnuplot syntax, interface should be provided.
  4. Replace ROOT's existing crappy ntuple and histogramming classes with those from Hippodraw. Provide legacy wrappers on the new classes to
  5. Improve the statistical error handling etc. on histograms e.g. adding two histograms sampled from the same dbn have correlated stats. It should definitely be possible to handle this using the core system.
  6. Improve the default plot styles to make them suitable for publication. There is a publication mode but it is obscure. As ever, experiments will end up producing complex standard style plots, 90% of whose content is common, simply because the defaults are so unsuitable.
  7. Fully implement STL usage through ROOT. It is standard practice and works for Hippodraw's interactive Python interface (existence is proof of possibility!)
  8. Replace the custom ROOT documentation system with Doxygen and ditch the current meta-parsing system. Oh, can we also have the manual produced with Docbook so there's a useful HTML copy?
  9. Less politics, more physics!

Thanks for reading and please feed back your thoughts to me. Hopefully someone will listen and ROOT can be made into a well-designed, robust data analysis system for the LHC.