Installation of ROOT and VEGA


 The VEGA libraries may be used in conjunction with ROOT to do Gravitational Wave Data Analysis. In order to install VEGA, the user should have the ROOT package installed. If one wants to customize ROOT, it should be accessible and write enabled. Although the installation of the ROOT package is described on the root web site (see http://root.cern.ch/root/Availability.html), we should provide a summary of the installation procedure.

I - Installation of ROOT

You need first to download the file corresponding to your hardware/compiler configuration (again in http://root.cern.ch/root/Availability.html). If this is not available, you should try to download the sources and build the system. After having ungzipped and untarred the sources, building is done by doing

            ./configure --help

once in the root directory, and following the instructions.

Once done, you must set two environment variables in order to allow ROOT to run.
The first and most important one is
$ROOTSYS that should point to your root directory. Depending on your shell, the command to do that is for example
   export ROOTSYS=/home/user/root      (in bash or ksh)
   setenv ROOTSYS /home/user/root       (in csh or tcsh)
The second environment variable is the library path. It is called differently depending on the system you work on. This is
LD_LIBRARY_PATH on Linux, Solaris, Alpha OSF and SGI. It is called SHLIB_PATH on HP-UX and LIBPATH on AIX.
The ROOT libraries are put in
$ROOTSYS/lib. So for example, if you were on Solaris with tcsh, your command would be :
   setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${ROOTSYS}/lib
Other examples are given on the Availability page of the ROOT web site.One thing to mention is that if you just want to make some use of ROOT without having to compile anything, the root front-end program (the one that you actually launch) will set the library path if it has not been set. So setting
LD_LIBRARY_PATH is not mandatory. But if you want ROOT, to access the libraries you compile that are not put in $ROOTSYS/lib, you should set the library path to point also to your shared libs. Furthermore, the rootcint program, used when generating dictionaries for your own compiled libraries, doesn't set LD_LIBRARY_PATH but uses it. So, to avoid problems, set this variable and forget it. The last environment variable is just the PATH to the root binaries which are located in $ROOTSYS/bin. Your command is for example:
   setenv PATH ${PATH}:${ROOTSYS}/bin
That's it ! Now just type
root and you're in! 

II - Building VEGA

Precompiled binaries are not provided for VEGA for various reasons, among which if one is able to build it from source, it is sure to be adapted to the particular system, especially for compiling and building code. However building VEGA from source should not be too difficult.

II-1 Collecting necessary packages

The sources of VEGA are available on the VEGA software page. Untar and unizip it and set the VEGA environment variable to point to the newly created vega directory. You need also an access to the FrameLib software (v4 or later). You can find the sources at http://wwwlapp.in2p3.fr/virgo/FrameL . You don't need to build them, the VEGA Makefile will do it.
You may also download optionally packages such as FFTW, or Frv.

 

FFTW:

One particularly important external package to have is FFTW (http://www.fftw.org). This is not mandatory but you will not go far if you don't have it. It's build is very simple, but be sure to build the shared library version. This is done by adding the --enable-shared option to configure. Also, do not build the simple precision version, double is the default and you should let it like this.

Frv:

One external package that could be interfaced to VEGA is Frv, which is a signal processing library used in the Virgo experiment. If you do not have this library, a very standard version is provided in VEGA sources. It will not be installed if FFTW is not present.

II-2 Building

To build VEGA

- go to the mgr directory :             cd mgr

- type :                                      ./configure

then follow the instructions.

configure will try to guess the location of the additional required or recommended packages but if it doesn't succeed, you will have to give their path to it, through various --with- switches. Always check it's output !

Once compiled, do not forget to set

-        the VEGA environment variable to the path to the top VEGA directory,

-        LD_LIBRARY_PATH (called SHLIB_PATH on some systems) environment variable pointing to the newly created VEGA libraries

You do not have to do it only if you use the --enable-rpath switch. If you don’t know what that means, just forget it!.

-        and finally update the PATH environment variable to point to the vega executable.

That’s it. The building process was not tested on all the platforms on which ROOT runs. So if you try on something else than Linux, OSF1 and Linux/PPC, drop me a note when it fails. Also drop me a note if it works!

III – Updating some packages

VEGA uses some external packages that it doesn’t rely heavily on. It is possible to upgrade those packages individually. Currently, the only such package is Frv. If you want to upgrade or change the version of Frv you are using with VEGA, here are the steps to do it :

- go into the mgr directory

- use the command :        ./configure --update       followed by the --with- flags that are needed, for example --with-frvsrc= followed by the path to the sources of the new version of Frv. For example

            ./configure --update --with-frvsrc=/virgoApp/Frv/v3r05/src

- do a                gmake

That should build a new library making the link between VEGA and Frv. This procedure will also ensure that everything is consistant in your system.

The created library, called libVFrv.so in the case of Frv, will be dynamically loaded at startup. It is still possible to load a different library by changing the .vegarc file that is used by default. To do that, copy the file system.vegarc located in the mgr directory in your home directory, renaming it .vegarc. Then modify it to suit your needs.

IV – Some common problems and their solution

IV-1 Problems in ROOT install

ROOT cannot launch

Problem : "The version of libXpm.so is not the one expected"
ROOT uses libXpm.so. As this library is not installed on all machines, the ROOT package provides a version in $ROOTSYS/lib, against which the "root" and "root.exe" programs are linked. If libXpm.so exists already in the system, the root program will try to load this one and there is a chance that the version number is not the same as the one provided with the package.
Solution :You must tell the loader not to take care about the version number by setting the _RLD_ARGS environment variable to -ignore_version libXpm.so :

IV-2 Problems in VEGA install

Problem : vega is not found
Solution :
Check that the VEGA as well as the PATH environment variables are set, PATH should point to $VEGA/$UNAME where the vega executable resides.
Problem : vega cannot be launched because it misses some libraries
Solution :LD_LIBRARY_PATH should point to $VEGA/$UNAME, where the VEGA libraries are, as well as other libs (grasp, frame, etc...).
Problem : On launch, I have a bunch of “failed” messages saying that something cannot load. Still I have the vega prompt.
Solution :This simply indicates that some accessory libraries where not loaded (libgrasp.so typically). If you don't need them, don't worry. With time, these libraries will be available and automatically distributed for a growing number of platforms.