Quick software overview

The sources of all the applications / libraries used by mbta are are available in git:

https://git.ligo.org/virgo/virgoapp

The main packages are:

and his doc: https://git.ligo.org/virgo/virgoapp/mbta/-/blob/master/doc/MBTA.pdf

and his doc: https://git.ligo.org/virgo/virgoapp/Fd/-/blob/master/doc/Fd.pdf

The main purpose of the Fd library is to provide data in the frame format from and to files, shared memory and network connection. Basic data conditioning tools like channel filtering, resampling are included in Fd as well as frame manipulation like channels selection, frame resizing, trend frame building and frame merging between different streams. The frames handled by the Fd package could contain any frame structures, from time series to events.

and his doc: https://git.ligo.org/virgo/virgoapp/Fr/-/blob/master/doc/FrDoc.pdf

The frame is the data structure used by the whole LVK collaboration to store interferometer data. Typical frame durations are 1s (for online pipelines) to O(100s) - O(1000s) (in offline applications).

A frame is a unit of information containing all the information necessary for the understanding of the interferometer behavior over a finite time interval which integrates several samplings. It contains thus not only the sampling performed during the integrated time interval, but also those performed at a frequency smaller than the frame frequency.

A frame is composed of a header followed by an arbitrary number of additional structures (time series, reconstructed events, simulated events). The frame library defines the different formats (FrVect, FrEvent, FrSimEvent, FrProcData, …) and provide methods to manipulate them.

Centrally installed virgo software

mbta and its dependencies are already installed at CCIN2P3. The packages can be found in:

/pbs/throng/virgo/virgoApp

Packages installation and compilation is controlled by PackageManagement based on the Configuration Management Tool (CMT).

https://git.ligo.org/virgo/virgoapp/PackageManagement

To configure cmt (for obscure and historical reason, you have to force a wrong architecture):

export UNAME=amd64_sl7
export CMTPATH=/pbs/throng/virgo/virgoApp
source $CMTPATH/CMT/v1r24/mgr/setup.sh

You now have access to the cmt utility. For instance, to display the dependencies of a package:

cd /pbs/throng/virgo/virgoApp/mbta/v5r36/cmt
cmt show uses

cmt just looks in the requirements file to find the dependencies. For this version of mbta, the requirement file starts with:

package mbta

use Fd v8r59

So mbta v5r36 depends on Fd v8r59. Then cmt looks at the Fd dependencies in

/pbs/throng/virgo/virgoApp/Fd/v8r59/cmt/requirements

And finds:

package Fd

use Frv   v4r38p3
use Cfg   v10r05p5

Then looks at Frv and Cfg requirements and so on.

Configure CMT environment

To configure your environment, before using a package, just source the setup.sh file in the package cmt directory. First, if not already done, configure cmt

export UNAME=amd64_sl7
export CMTPATH=/pbs/throng/virgo/virgoApp
source $CMTPATH/CMT/v1r24/mgr/setup.sh

then source the desired setup.sh script. For instance to use mbta version v5r36

source /pbs/throng/virgo/virgoApp/mbta/v5r36/cmt/setup.sh

Tip

A more practical way is to use setmbta.sh as explained here