Table of Contents
|
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 you’d 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 |