Sep 06, 2016 learning ROOT phys-492/592
The best way to learn ROOT for a regular Windows user is probably to install ROOT in Windows, which is available from the ROOT web page for ROOT versions before 6. However, sooner or later, you will be asked to log into a much more powerful server running Linux so that you can use ROOT there to analyze data saved in that machine. In that case, you need to use PuTTY to log into the Linux server from your Windows PC.
It is very common that multiple versions of ROOT are installed in a server so that analyses done with older versions can be repeated if necessary. They are likely to be not installed in the standard location and you will have to do some setup before you can call root
:
export ROOTSYS=/path/to/a/specific/root/version/
export PATH=$ROOTSYS/bin:$PATH
export LD_LIBRARY_PATH=$ROOTSYS/lib:$LD_LIBRARY_PATH
Save these settings to your .bashrc
so that you don’t have to type it again
next time you log in. The first line declares an environment variable
$ROOTSYS
, which can be used latter. You can give it another name since it is
not used directly by ROOT. However, it was used by ROOT traditionally, so use
the same name can be backward compatible. The second line tells SHELL where the
root executable can be found. The last line is useful when you try to run a
ROOT program, which needs to use many shared library files provided by ROOT in
a special location $ROOTSYS/lib
. In our example, the library files are in
$ROOTSYS/lib
. I found in quite some places they are in $ROOTSYS/lib/root
.
So please go to that directory and check if you can find ROOT library files in
it. One example would be libCore.so
. You should be able to find it in the
library directory.
Now you should be able to call root
after your command prompt:
$ root -h # print options you can give to root
$ root -b # run root in command line mode, no graphic is needed
$ root # this gives a complain if you don't have an X-window running
If you have not heard about X11 or X Window System, you will have to
run root
with the -b
option, which is used to tell ROOT not to used the
graphic interface provided by X11. Now you should be able to see the ROOT
command prompt instead of the SHELL command prompt:
$ root -b # we are still in SHELL
ROOT [0] 1+1 // now we are in ROOT
(const int)2
ROOT [1] .q
Type .q
to quit ROOT. NOTE: it is .q
not just q
! You can type C++ code
after a ROOT prompt:
ROOT [0] int a=1
ROOT [1] float b=log(a);
ROOT [2] cout<<b<<endl
You can ignore the semicolon sign ;
after each line. This is not acceptable
in standard C/C++, but is OK after a ROOT prompt to save some typing. You can
also write everything in a text file with a suffix of .C
, for example,
test.C
. It is called a ROOT macro or a ROOT script. Write the following code
into test.C
:
void test(float input)
{
float output = log(input);
cout<<output<<endl;
}
Save and quit and then you can run it this way:
$ root -b -q 'test.C(1)'
The -q
option tells ROOT to quit after executing the function. The single
quote sign '
is to prevent bash
to interpret the parentheses You can also
run the script inside ROOT:
$ root -b
ROOT [0] .x test.C(10)
ROOT [1] .q
Notice that you don’t need to use the single quotes anymore once you are in ROOT.
Activities mentions in this site have been supported by the following grants: