Skip to content

JeffersonLab/ARIEL

Repository files navigation

ARIEL logo

A software environment providing a collection of APIs and services for processing nuclear and particle physics event data.

This is a modified version of Fermilab's art event processing framework and related tools. The main modifications are with the build system. All packages in this repository can be build from source without the use of Fermilab's UPS package manager, in the same way as other standard CMake-based software distributions.

This repository contains the source code of the art, gallery and critic suites with small patches, mainly to accommodate the modified build system and additional platforms and compilers. At present, the build system uses a heavily modified version of Fermilab's cetbuildtools. This is expected to change in the near future.

This release is based on art 3.06.03.

System Requirements

Minimum system requirements/dependencies (approximate, newer is better):

  • Recent Linux or macOS. Examples: CentOS 8, macOS 10.14
  • C++17 compiler (gcc 8, clang 10, Xcode 11)
  • CMake 3.12
  • ROOT 6.12.6
  • Boost 1.66
  • SQLite 3.20.1
  • cppunit 1.13.2
  • TBB 2018_U2
  • Python 3.6
  • Perl 5.18

Additional dependencies on macOS:

ROOT must have been compiled with the exact same compiler that will be used for building ARIEL.

Generally, dependencies can have any version at or above the minimum specified; an exact version match is not required. One can thus upgrade ARIEL without necessarily having to pull in upgrades of various large dependencies as well. (This is the typical behavior for Unix software distributions.) If ARIEL versions and dependency versions are to be locked, this should be handled with a suitable external package manager.

The following packages are included in this repository as submodules because they are often not readily available through the platform package manager:

There is no need to install these two components separately.

Building

  • Install dependencies listed above
  • Clone this repository and cd to the repository root directory:
   git clone  https://github.com/JeffersonLab/ARIEL.git
   cd ARIEL
   git submodule update --init
  • Pick an installation location. Currently, the build process requires installation of each subpackage immediately after building. For convenience, set an environment variable that points to the top of the installation tree. For example
   export ARIEL=~/Software/ARIEL
  • Run the build script. The script expects the installation location as its first argument:
   ./build-and-install.sh $ARIEL

This will take a while. Expect 10-20 minutes on a modern 8-core machine.

  • Run the tests to ensure a correct build:
   ./run-tests.sh
   module use $ARIEL/modulefiles
   module load ariel

Alternatively, there is a bash setup script:

   source $ARIEL/bin/setup-ariel.sh

Using the workbook

See the workbook README

Containers

A definition file for a Singularity container can be found in the container directory. See the README for details.

A pre-built Singularity container with the current version of ARIEL can be downloaded from https://solid.jlab.org/files/ARIEL.sif. You must have Singularity installed on your system to use it. See the container help text to get started:

singularity run-help ARIEL.sif

Repository Organization

The base branch contains selected point releases of the unmodified Fermilab sources. develop contains patches and additions to those sources. ARIEL releases correspond to tags on the develop branch.

About the name

ARIEL: ARt-based Integrated Event-processing Library.

License

Standard 3-clause BSD. See in the included LICENSE files.

Author: Ole Hansen (ole@jlab.org)