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.
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!
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.
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.
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.
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.
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!
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.
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 :
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.