Page tree

The ROOT system provides a set of OO frameworks with all the functionality needed to handle and analyze large amounts of data in a very efficient way. Having the data defined as a set of objects, specialized storage methods are used to get direct access to the separate attributes of the selected objects, without having to touch the bulk of the data. Included are histograming methods in an arbitrary number of dimensions, curve fitting, function evaluation, minimization, graphics and visualization classes to allow the easy setup of an analysis system that can query and process the data interactively or in batch mode, as well as a general parallel processing framework, PROOF, that can considerably speed up an analysis.

 

Information

Using RooT (RedHat  EL7)

Currently only RooT v6 is available as a system installation. No configurations required. 

[el7]% /usr/bin/root-config          # to show the configuration options. 
[elx]% /usr/bin/root                 # to actually run root. 

 

Using RooT (RedHat  EL6)

RooT v5 is installed as system installation, without any further configuration. RooT v5 and v6 are available as AFS-installations. To setup the environment use the module command: 

[sl6]% module avail
[sl6]% module load root6             # set environment for RooT v6.xx
/afs/desy.de/products/root/amd64_rhel60/6.02.00/bin/root
 
[sl6]% module load root              # set environment for RooT. most recent version 5.xx
[sl6]% module load root/5.32         # set environment for RooT v5.32.xx

Setting up RooT via CVMFS (the CERN Virtual Machine File System)

CVMFS is a global, read-only file-system, that is often used to distribute software. RooT is offered this way by the CERN IT Software Team in sft.cern.ch (other, experiment specific locations might also exist, please refer to experiment specific documentation on how to set up). An example walk-trough of the setup for one specific version is shown below: 

[el7]% ls -l /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/	#list current ROOT versions in sft.cern.ch 
...
drwxr-xr-x 13 cvmfs cvmfs 4096 Jan 20 15:57 6.19.02 	#an example of a recent RooT version
...
[el7]% ls -l /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.19.02	#which platforms is this version compiled for? 
drwxr-xr-x 18 cvmfs cvmfs 4096 Jan 20 08:34 x86_64-centos7-gcc48-opt	#best matching platform for EL7
...
#centos7-gcc48 tells you this is a version for CentOS 7 (=EL7), compiled with gcc48
[el7]% gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
#fine, the gcc version installed matches the required gcc version
[el7]% source /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.19.02/x86_64-centos7-gcc48-opt/bin/thisroot.sh  #or …thisroot.csh if you are in TCSH
[el7]% root 	#to actually run root . The first start might take some seconds since files might need to be fetched from CERN.


#The last RooT v6 version for SL6: RooT setup with additional gcc setup
[sl6]% ls -l /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.06.08/
...
drwxr-xr-x 3 cvmfs cvmfs 4 Nov 28  2016 x86_64-slc6-gcc49-opt	#last RooT v6 version compiled for SL6, needs gcc49
…
[sl6]% gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
…
#the system gcc is 4.4.7, which does not match the required gcc49
[sl6]% ls -l /cvmfs/sft.cern.ch/lcg/contrib/gcc/4.9/
...
lrwxrwxrwx 1 cvmfs cvmfs   11 Nov 26  2015 x86_64-slc6-gcc49-opt -> x86_64-slc6
…
# there is a matching gcc version in SFT CVMFS, set it up:
[sl6]% source /cvmfs/sft.cern.ch/lcg/contrib/gcc/4.9/x86_64-slc6/setup.sh		#gcc version set to gcc 4.9
[sl6]% source /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.06.08/x86_64-slc6-gcc49-opt/root/bin/thisroot.sh	#or …thisroot.csh, if you are in TCSH
[sl6]% root 	#to actually run root . The first start might take some seconds since files might need to be fetched from CERN.

Compiling  RooT v6 (RedHat  EL6)

RooT v6 requires a c++11 capable compiler, for example gcc > v4.8. The default gcc under SL6 has v4.4x, which is way too old for this kind of jobs. You need to use RedHats developer toolset:

[sl6]% gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)


[sl6]% scl enable devtoolset-3 bash                         # start a bash shell with the devtoolset-3 environment. The environment is not persistent!
bash-4.1$ gcc --version
gcc (GCC) 4.9.1 20140922 (Red Hat 4.9.1-10)

bash-4.1$ ./configure [options] && make && make install 
bash-4.1$ exit
[sl6]% gcc --version                                        # the devtoolset env won't be needed at runtime.
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)






  • No labels