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, 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.
- 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.
- Provide pluggable
I/O to various formats, including FITS, HDF5, plain text and, crucially, AIDA.
- 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.
- Replace ROOT's existing crappy
ntuple and histogramming classes with those from Hippodraw. Provide legacy wrappers on the new classes to
- 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.
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.
- Fully implement STL usage through ROOT. It is
standard practice and works for Hippodraw's interactive Python interface (existence is proof of possibility!)
- 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?
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.