<!--
.. title: ROOT wishlist
.. slug: root-wishlist
.. date: 2007-08-27 19:21:44
.. type: text
.. category: blog
-->

<p>  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, <a href="/howto/problems-with-
root">my article on problems with  ROOT</a> might do the trick.  </p>

<h4>The wishlist</h4>  <p>  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.  </p>

<ol>

<li>      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.  </li>  <li>      Provide pluggable
I/O to various formats, including FITS, HDF5, plain text      and, crucially, AIDA.  </li>  <li>      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.  </li>  <li>      Replace ROOT's existing crappy
ntuple and histogramming classes with those      from Hippodraw. Provide legacy wrappers on the new classes to   </li>

<li>      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.  </li>  <li>
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.  </li>  <li>      Fully implement STL usage through ROOT. It is
standard practice and works for      Hippodraw's interactive Python interface (existence is proof of possibility!)
</li>  <li>      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?  </li>  <li>

    Less politics, more physics!  </li>  </ol>

<p>    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.  </p>
