Andy's ROOT wishlist
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.
-
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?
-
Stop playing petty politics and engaging in turf wars!
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.