ROOT Documentation
Description of project idea
The ROOT system [1] [2] is the main data analysis and data presentation tool used in high energy physics world-wide. More than 1 exabyte of data are stored in the ROOT format.
ROOT is being made available under the LGPL 2.1+, which allows ROOT to be used in a wide range of open and closed environments.
ROOT it is written in C++ with dynamic Python bindings. Thanks to its capabilities and performance it is also used in industry.
ROOT’s documentation and web site are a key parts of the ROOT project [6]. They are evolving in parallel and complement each other. The basis is the reference Guide [4] documenting all the ROOT C++ components. A large set of tutorials [5], helping to enter the ROOT world, is also provided. And finally a “Manual” guides users through the ROOT tools and concepts [7].
ROOT’s documentation needs to be improved in various areas:
- It is difficult for non-physicists.
- Some important parts like the Python bindings are weakly documented.
- We are missing tutorials illustrating the functionalities provided by ROOT 7.
- New key data format need detailed Technical specifications.
Tasks
Possible tasks might include:
- Because ROOT’s documentation is mainly physics-oriented, it is more difficult for non-physicists to pick up ROOT. The Manual should address this.
- The ROOT Python bindings suffers from a lack of documentation. It should be extended in the reference guide.
- Series of new “tutorials for modern analysis” is needed to illustrate the functionalities provided by ROOT 7.
- RNTuple is the new data format ROOT will provide in the future. It will be the successor of the TTree object which is used to stored the 1 exabyte of data previously mentioned. Therefore, detailed Technical specifications of this new object is crucial.
Project duration
This is expected to be a long (6 months) project which will possibly continue after this period.
Related material
- ROOT web site
- ROOT GiHub repository
- ROOT User’s Guide
- ROOT Reference Guide
- ROOT tutorials
- ROOT web site GitHub repository
- ROOT manual in the web site
Expected results
The deliverables of the projects will be directly visible online in the various area mentioned in the “Tasks” paragraph. The writers will directly commit his work as pull requests to the web site repository.
The minimum results for each task to consider the project successful are:
- Make sure the manual, at least in the introductory part of each section, does not require physics knowledges.
- With the help of the ROOT Python experts implement the structure of a guide for ROOT python bindings.
- Start to implement new “tutorials for modern analysis” to illustrate the functionalities provided by ROOT 7.
- At least a skeleton of the RNTuple Technical specifications should be implemented.
Experience required
Besides good technical writer skills, the following additional technical skills are mandatory:
- Programming Knowledges (python and C++)
- Web coding (html, markdown, jekyll, etc ..)
- Tools : git/github