ROOT
一、ROOT简介
ROOT是欧洲核子中心开发的,用于高能物理数据分析的开源软件。ROOT拥有独特的数据存储格式,可以迅速处理海量数据,并将其可视化。
简单地理解,ROOT可以被认为是C++的解释器,关于数据的处理指令可以通过类似C++的语法写入脚本,ROOT根据脚本处理数据、绘制图形。
20世纪90年代中期,欧洲核子中心(CERN)升级之后的对撞机产生的数据量激增,急需能胜任的数据处理软件;另一方面,CERN的一些软件开发人员已经有丰富的面向对象的软件开发经验。在这种背景下,ROOT应运而生。
目前,ROOT正被全世界所有主要的高能物理和核物理实验室用于监测、存储和分析数据。在其他科学、医疗和金融行业,许多人也都在使用ROOT。
不管怎样,ROOT都值得你去尝试!
二、ROOT安装
如果你只需要学习ROOT,那么ROOT的安装过程算是比较简单的了,不信你可以看看genie、Geant4和NuWro吧。
1.安装ROOT依赖
目前(2020-4-22)ROOT官网提供的依赖软件包仍然是基于Ubuntu16和CentOS 7,但是目前Ubuntu18.04都发布两年了,20.04也即将发布稳定版,CentOS也发布了8版本。
很多软件包名字有所更改,本文的软件包基于Ubuntu18.04,如果有些包有问题,建议根据出错提示修改
- 必须的软件包:
- git
- dpkg-dev
- cmake
- g++、gcc、binutils
- libx11-dev、libxpm-dev、libxft-dev、libxext-dev、libpng-dev、libjpeg-dev
- python
- 建议选择的软件包:
- gfortran
- libssl-dev、libpcre3-dev、libglew1.5-dev、libftgl-dev、libmysqlclient-dev、libfftw3-dev、libcfitsio-dev
- libavahi-compat-libdnssd-dev、libldap2-dev、libxml2-dev、libkrb5-dev、libgsl-dev、
- xlibmesa-glu-dev
- graphviz-dev
- python-dev、python-numpy-dev
- r-base
- libqt4-dev:不建议安装,防止和Qt5冲突
为了便于复制粘贴,下面给出整行的包名称:
sudo apt install git dpkg-dev cmake g++ gcc binutils libx11-dev libxpm-dev libxft-dev libxext-dev libpng-dev libjpeg-dev python
sudo apt install gfortran libssl-dev libpcre3-dev libglew1.5-dev libftgl-dev libmysqlclient-dev libfftw3-dev libcfitsio-dev libavahi-compat-libdnssd-dev libldap2-dev libxml2-dev libkrb5-dev libgsl-dev libmesa-glu-dev graphviz-dev python-dev python-numpy-dev r-base
2.编译安装ROOT
(1)首先说明目录结构:
Linux的/opt是提供给用户安装本地软件的目录,我们假设配置、编译、安装在此位置

此处root_v6.20.04.source.tar.gz是ROOT的源代码压缩包, root-6.20.04-src是ROOT解压后的源代码, root-6.20.04是想要安装ROOT的目录。
(2)配置ROOT
首先解压源代码,默认解压后的源代码名字为 root-6.20.04,手动改成上面所示的目录结构:
tar -xvf root_v6.20.04.source.tar.gz
mv root_v6.20.04 root-6.20.04-src
mkdir root-6.20.04
进入 root-6.20.04:
cd root-6.20.04
cmake配置ROOT:
cmake ../root-6.20.04-src -DCMAKE_INSTALL_PREFIX=/opt/root-6.20.04
上述命令中 -DCMAKE_INSTALL_PREFIX=/opt/root-6.20.04 表示ROOT安装到 /opt/root-6.20.04 里
更一般的,如果不指定安装目录,不需要其他配置,直接:
cmake ../root-6.20.04-src
就可以
(3)编译ROOT
执行完cmake就可以直接:
cmake --build . -- -j4
或者简单一点:
make -j4
这里-j4 表示用4个核同时编译,具体选取几个核取决于你的电脑
编译时间会相当漫长、CPU长期满载,只有不出现error,你就可以慢慢等,准备一部你喜爱的电影看吧!
(4)安装ROOT
漫长的make之后,你就可以安装了,安装就是把编译好的文件--复制--到预先设定的安装目录:
make install
这一步一般很快,而且基本不会有error出现。
至此,ROOT编译安装完全结束!
附录:二进制安装ROOT
很多初学者,特别是刚刚接触Linux的同学,看到上面编译就很晕菜。但是做物理的人,不必拘泥于软件安装过程,能正常运行,满足学习需求就足够了,学有余力而又学编译。
怀着这一想法,这里提供一种更简单的安装方法:
下载二进制包
到cern root官网下载编译好的二进制包,这是6.20.04的下载页。
你可以轻易看到“Binary distributions”字样,这就是预先编译好的二进制包,根据你的操作系统把它下载下来。
解压
假设我们下载到了 /opt 文件夹
tar -xvf root_v6.20.04.Linux-ubuntu18-x86_64-gcc7.5.tar.gz得到:root-6.20.04文件夹
设置环境
source /opt/root-6.20.04/bin/thisroot.sh
这里source什么路径下的 bin/thisroot.sh 文件,取决于你的root解压后的文件夹名称、解压到哪里。
三、ROOT使用
ROOT的使用是个远比安装庞杂的事情,等我有时间再补充。同时非常欢迎志同道合的同学一起完善这一部分。
感兴趣的请到我的github项目主页 一起commit
四、ROOT参考网站
- ROOT-6.20.04下载地址:https://root.cern.ch/content/release-62004
- ROOT依赖包列表:https://root.cern.ch/build-prerequisites
- ROOT的cmake配置选项:https://root.cern.ch/building-root
- ROOT使用手册:https://root.cern.ch/root/htmldoc/guides/users-guide/ROOTUsersGuide.html
五、联系我们
邮箱:root@iyu.icu