LIGOtools is a package management system (written in perl) used to distribute software commonly used for LIGO data analyses. It is similar, at least in spirit, to Linux tools like rpm or dpkg. While commonly used to distribute binaries, LIGOtools can also be used to distribute source packages. We are interested in LIGOtools because it includes the dmtroot package used by Bluestone, and it also could provide an easy way to distribute supporting LIGO software to the Grid nodes which will be used for remote execution of a LIGO analysis for I2U2.

LIGOtools for ELabs Grid execution

Installation of LIGOtools is straightforward. It all goes into one directory, which you point to by setting the LIGOTOOLS environment variable. Common places for a system installation are /opt/ligotools or just /ligotools, but you can also install it in a private user account (eg. $HOME/opt/ligotools).

Initial setup

To get started you need the file ligotools_init_2.4.tar. Unpack it in some working directory, run the script ligotools_init, and tell it where the LIGOTOOLS directory will be. Here is an example:
www13:tmp> tar xf ligotools_init_2.4.tar
www13:tmp> ./ligotools_init

This script creates a LIGOtools directory structure
into which you can install LIGOtools packages.

Enter the name of the base LIGOTOOLS directory to create,
e.g. '/home/myers/ligotools' or '/usr/local/share/ligotools'.
(The parent directory must exist and be writable by you.)
You cannot, alas, use $HOME or other variables or the ~/ notation when entering the directory name. You will then be asked where to put a number of different subdirectories. The easiest thing to do is to accept the defaults by pressing Return for each choice. Finally you will see:
Created directory /home/myers/opt/ligotools
Created directory /home/myers/opt/ligotools/packages
Created directory /home/myers/opt/ligotools/config
Created directory /home/myers/opt/ligotools/bin
Created directory /home/myers/opt/ligotools/lib
Created directory /home/myers/opt/ligotools/include
Created directory /home/myers/opt/ligotools/matlab
Created directory /home/myers/opt/ligotools/root
Created directory /home/myers/opt/ligotools/java
Installed and activated 'ltadmin' package, version 2.4
Deleted ligotools_init_2.4.tar, ligotools_init, and ltadmin_INITBIN.tar.gz

Done setting up LIGOtools directory

You should now execute the following line in your shell:

   eval `/home/myers/opt/ligotools/bin/use_ligotools`

This will set the environment variable LIGOTOOLS, and update your PATH, etc.

You can add this to your .login or .cshrc to be executed each time you log in.

Once you have set up the environment with this eval command shown above (be sure to include the backtick quotes) you can test it with echo $LIGOTOOLS and/or ligotools_list.

Note that when ligotools_init finishes it deletes the files it unpacked, including itself (not unlike the Cheshire cat). I found this annoying, but I can see how some might find it convenient.

Session Setup

As the output above shows, you can easily initialize your shell session to use LIGOtools by eval'ing the output from use_ligotools. This is a perl script which can sense the shell it's being run under, so it works for both Bourne or C shells. We will not necessarily need to do this for a LIGO analysis, so long as we can set LIGOTOOLS to the proper top directory so that the analysis scripts can find the macros and libraries then need.

To run an analysis on a remote Grid node which uses this set of packages it might prove to be easiest to just install these on one local machine, then tar up the LIGOTOOLS directory and send that whole thing out to the Grid as a part of the analysis. One argument against this approach is that the ROOT package by itself is over 24MB (the others are all much smaller).

Adding packages

To add a package to the LIGOtools installation on a machine simply use the ligotools_install command with the name of the package to install (the tar file) on the command line. So for the packages we will need for I2U2:
ligotools_install  root_5.20.00_Linux.tar.gz
ligotools_install  basegdsroot_5.20.00_Linux.tar.gz
ligotools_install  dmtroot_5.20.00_Linux.tar.gz
ligotools_install  eventtool_5.20.00_Linux.tar.gz
You can verify the installation with the command
which will list all the installed packages. As the printout suggests, you can have multiple versions of LIGOtools packages installed, with only one of these made the "active" package.

The version "5.20.00" for these packages is the version of ROOT which they are all built against. This particular version is not a part of the official LIGO distribution. These are packages Eric has packed up for I2U2. They were built against GDS version 2.13.1.

Copies of the packages needed for ELabs are at

The eventtool package is currently optional for I2U2, but we will likely need it in the future when we want to use LIGO_LW files for intermediate result files. The metaio package will also be needed for that, either in addition to or instead of eventtool (I don't yet know which). You can also, if you wish, install the time package, which includes the nifty tool gpsclock, which shows the current GPS time and provides a tool for converting GPS times to GMT and Local time (requires X11 and tk/tcl).


The command ligotools_update will update all LIGOtools packages to the latest available version. But we don't know if/how it will work with the unofficial packages Eric has created, so it's best to not use this until we know what it will do.


Removing LIGOtools is straightforward: simply delete the LIGOTOOLS directory and all subdirectories.


Topic revision: r10 - 2019-05-22, AdminUser
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback