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.
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:
- GNU getopt (any version)
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.
- 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
- Set up the runtime environment in your shell (assuming you use environment modules):
module use $ARIEL/modulefiles
module load ariel
Alternatively, there is a bash setup script:
source $ARIEL/bin/setup-ariel.sh
See the workbook README
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
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.
ARIEL: ARt-based Integrated Event-processing Library.
Standard 3-clause BSD. See in the included LICENSE files.
Author: Ole Hansen ([email protected])