LALSuite
logo_lal.gif

What is LALSuite

LALSuite is the name of the repository which consists of several different libraries. This collection of libraries has been specifically build and customized for LIGO Data Analysis collaboration to be used in analyzing gravitational waves data.

The structure od the lalsuite repository can be illustrated as the following:

lalsuite - - - -
| - - - - >lal
| - - - - >lalsimulation
| - - - - >lalframe
| - - - - >lalmetaio
| - - - - >lalinspiral
| - - - - >lalxml
| - - - - >lalburst
| - - - - >lalstochastic
| - - - - >lalpulsar
| - - - - >lalinference
| - - - - >lalapps
+ - - - - >pylal
+ - - - - >glue

Clone LALSuite Git Repository

git clone albert.einstein@ligo-vcs.phys.uwm.edu:/usr/local/git/lalsuite.git  #replace albert.einstein with your username

LALSuite Libraries: Building and Installing

Shortcut for Mac Users

LSCSoft in Macports

If you are a Mac user, to install the LAL dependencies it's very easy to install all of them by installing LSCSoft via Macports.

sudo port install lscsoft-deps

Top Level Install

After cloning the source of lalsuite and installing LSCSoft, you should be able to do a top-level build by following

cd lalsuite
git pull % to make sure you are installing from the last available version of the software
git clean -dxf  % If this is not your first time installing and youd like to clean the directory, run
make -j distclean  % do not forget to clean up before you start!
./00boot
./configure --prefix=${HOME}/opt/lalsuite --enable-swig-python 
make
make install

This will take a while to build. If you have a more than one core on your computer, you can add the -j<number-of-cores-plus-one> to the make command, so, for example, if you have 8 cores, you could type make -j9 and that part of the build will go much faster.
  • This top-level installation method also worked for NEMO. No need to install the libraries one by one!
  • Remember that in NEMO, if you want to use PyCBC, you may have to install PyLAL library. (for instance, to run this example you must install your own version of pylal in NEMO)

LAL: LSC Algorithm Library

A collection of routines for gravitational wave data analysis.

cd ${LSCSOFT_SRCDIR}/lalsuite/lal  #{LSCSOFT_SRCDIR} is the root source directory where you keep your source files (it could be simply your home directory)
./00boot
./configure --prefix=${LAL_PREFIX}  --enable-swig-python  #{LAL_PREFIX} is the address that you want lal library to be installed there
make && make install  #&& means and

LALSimulation

LALSimulation provides the various functions for generating gravitational wave waveforms for various different gravitational wave sources. It should be noted that LALSimulation has not seen an official release and is only available from the git repository.

cd ${LSCSOFT_SRCDIR}/lalsuite/lalsimulation
./00boot
./configure --prefix=${LALSIMULATION_PREFIX} --enable-swig-python
make && make install

LALFrame

LALFrame provides the input/output routines for accessing data in frame files. It provides a LAL like interface to the Virgo Frame Library.

Before you install lalframe it is required to have libframe installed on your machine. Installing and sourcing libframe is a bit different. Specially, you have to source it source it manually compared to lal-libraries. See the following commands

cd ${NON_LSCSOFT_SRCDIR}/libframe  
# there is no ./00boot in this case!
./configure --prefix=${LIBFRAME_PREFIX} # the option --enable-swig-python will be unrecognized in this case
make && make install

The important part is sourcing libframe which can be done directly by adding the appropriate path to PKG_CONFIG_PATH variable. The following command do this job for you.

export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}${PKG_CONFIG_PATH:+:}/home/smirshekari/opt/libframe/lib/pkgconfig

Now you are all set (hopefully) to install and build lalframe:

cd ${LSCSOFT_SRCDIR}/lalsuite/lalframe  
./00boot
./configure --prefix=${LALFRAME_PREFIX} --enable-swig-python
make && make install

LALMetaIO

LALMetaIO provides the input/output routines for accessing data in LIGO_LW XML files. It provides a LAL like interface to the metaIO Library.

Before you install lalmetaio it is required to have metaio-lib installed on your machine. Installing and sourcing libmetail is a bit different (similar to libframe). Specially, you have to source it source it manually compared to lal-libraries. See the following commands

cd ${NON_LSCSOFT_SRCDIR}/libmetaio 
# there is no ./00boot in this case!
./configure --prefix=${LIBMETAIO_PREFIX} # the option --enable-swig-python will be unrecognized in this case. Let say {LIBMETAIO_PREFIX}=/home/smirshekari/opt/libmetaio
make && make install

The important part is sourcing libmetaio which can be done directly by adding the appropriate path to PKG_CONFIG_PATH variable. The following command do this job for you.

export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}${PKG_CONFIG_PATH:+:}/home/smirshekari/opt/libmetaio/lib/pkgconfig

Now you are all set (hopefully) to install and build lalframe:

cd ${LSCSOFT_SRCDIR}/lalsuite/lalmetaio  
./00boot
./configure --prefix=${LALMETAIO_PREFIX} --enable-swig-python
make && make install

If you are installing new version of LALMetaIO and fail you may try the following before installation:

git clean -xdf

LALInspiral

LALInspiral includes the routines necessary for running an analysis for gravitational waves from CBC.

LALXML

LALXML provides a LAL like interface to the libxml2 library, it is currently unused and it should be noted that LALXML links against the libxml2 library which in turn links against the posix threads library, therefore if you are planning on condor compiling LALApps you should not install LALXML as threads are not allowed in condor compiled code therefore a condor compiled LALApps build will fail if it is linked against LALXML.

LALBurst

LALBurst includes the routines necessary for running an analysis for bursts of gravitational waves.

LALStochastic

LALStochastic includes the routines necessary for running a Stochastic Background analysis.

If you are installing new version of LALStochastic and fail you may try the following before installation:

git clean -xdf

LALPulsar

LALPulsar includes the routines necessary for running a Continuous Wave analysis.

LALInference

LALInference provides the various inference. It should be noted that LALInference has not seen an official release and is only available from the git repository.

LALApps: LIGO Scientific Collaboration Algorithm Library Applications

A collection of programs and other software for gravitational wave data analysis.

Other Requirements

PyLAL: Python LAL

PyLAL is a collection of utilities for plotting the output files from LSC analysis pipelines.
More details: https://www.lsc-group.phys.uwm.edu/daswg/projects/pylal.html

To install PyLAL the following libraries is required among others: LALBurst, LALInspiral, LALInference, LALStochastic.

cd lalsuite/pylal
python setup.py install --prefix=/path/to/pycbc/install/directory

GLUE: Grid LSC User Environment

Glue is a collection of utilities for running data analysis pipelines for online and offline analysis as well as accessing various grid utilities. It also provides the infrastructure for the segment database. The Glue web site: http://www.lsc-group.phys.uwm.edu/daswg/projects/glue.html

cd lalsuite/glue
python setup.py install --prefix=/path/to/pycbc/install/directory

Installation tricks

  • After installing every library don't forget to source it! Sourcing means telling the system how should it look for it. For example to source lal you should type
source /home/smirshekari/opt/lal/etc/lal-usr-env.sh
  • Some of the libraries are required for installing some others. You will be safe if you install the libraries in the order that have been shown above.
  • The parameter $PKG_CONFIG_PATH is a key variable. This includes all the paths that system will be look at! Make sure that what you want to use have been already added here by
echo $PKG_CONFIG_PATH
  • To add a new path to $PKG_CONFIG_PATH you can use the command export. Specifically, if you want to add /home/smirshekari/opt to the previous paths you can type the following
$ export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}${PKG_CONFIG_PATH:+:}/home/smirshekari/opt
  • If you source an environment such as lal by lal-usr-env.sh, this will automatically add the address of this file to the paths in PKG_CONFIG_PATH variable.
  • If your installation doesn't quite work because of conflict between libraries installations, specially if system complains about LALCallocLong, you have to check if you have multiple installation of the same library in different places. It might happen that you forget to give an address for installation by —prefix=/installation/address/that/you/source, for example, and it automatically gets installed in the source folder (by default). If you get this kind of error messages, first check your source folder for unwanted installed folders and remove them.

What is LAL good for?

text


Who use LAL?

text


What is LAL made of?

text


LalInspiral

text


Key Commands

To search for a function in lal do the following:

ipython
import lal
filter(lambda name: "TAPER" in str(name), dir(lal))

Grocery

IMR Inspiral Merger Ring-down
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License