Installation


Dependencies

  • ROOT (required, with the GenVector component)

Installation

The CMake build system is used for compilation and installation. The install directory can be specified by adding -DCMAKE_INSTALL_PREFIX=<prefix> as argument to the CMake command below. Other configuration options are explained in the manual.

The dependencies need to be initialized for the build to succeed. Currently there are two methods to load these:

Prerequisites on CERN LXPLUS

In order to install Corryvreckan on the CERN LXPLUS batch cluster, an LXPLUS setup script is provided:

$ source etc/scripts/setup_lxplus.sh

Then, continue as described under the compilation section. If you encounter difficulties, check the Troubleshooting section below.

Prerequisites on a private machine

The dependencies listen above have to be satisfied. ROOT6 libraries and headers have to be in the path, this is usually achieved by sourcing the thisroot.sh script. After this, continue as described below.

Compilation

To compile and install a default installation of Corryvreckan, run the following commands

$ mkdir build && cd build/
$ cmake ..
$ make install -j <number_of_cores>

For more detailed installation instructions, please refer to the user manual.

Troubleshooting

Issue Tracker

If you encounter any issues, please ensure your ROOT6 environment is properly set up (with its environment file sourced) and functional. If the problem persists, please report it in our Issue Tracker to help fixing it.

Step-by-step Installation Guide for LXPLUS (including dependencies)

If you want to use Corryvreckan with the [EventLoaderEUDAQ2], you need to install some dependecies as well:

Setting up Corryvreckan on LXPLUS is a little bit more tricky in this case because you need to ensure using the correct compiler versions. Here’s a step-by-step solution that worked for Jens on 2021-04-07.

Install peary (only needed for EventLoaderEUDAQ2 with DUT on Caribou)

git clone https://gitlab.cern.ch/Caribou/peary.git
cd peary
source .gitlab-ci.d/init_x86_64.sh
mkdir build && cd build
cmake -DINTERFACE_EMULATION=ON ..
make install -j8

Tip:
If a compile error like fatal error: iio.h: No such file or directory occurs, try the following commit:

git checkout 995d455eae15124126f78590c3e9cf9869069b00

and then rerun cmake and make as described above.

Install SPIDR (only needed for “EventLoaderEUDAQ2” with Timepix3)

git clone https://gitlab.cern.ch/CLICdp/DAQs/SPIDR
cd SPIDR/software
qmake-qt4
make

If this fails: close terminal and reconnect to lxplus, then cd SPIDR/software && source pear.gitlab-ci.d/init_x86_64.sh and try again.

Install eudaq (only needed for “EventLoaderEUDAQ2”)

git clone https://github.com/eudaq/eudaq.git
git clone https://gitlab.cern.ch/corryvreckan/corryvreckan.git

Make sure to source this before installing eudaq corry:

source corryvreckan/etc/setup_lxplus.sh
mkdir build && cd build
cmake .. -DEUDAQ_BUILD_EXECUTABLE=OFF -DEUDAQ_BUILD_GUI=OFF -DUSER_CARIBOU_BUILD=ONDUSER_TLU_BUILD=ON -DUSER_TIMEPIX3_BUILD=ON

The above will require to set some paths:

export SPIDRPATH=/path/to/SPIDR
export Peary_DIR=path/to/your/peary/share/cmake/Modules

To avoid a compile error related to C++14 and C++17 (std::string_view), open the file cmake/Platform.cmake and change:

set(CMAKE_CXX_STANDARD 14)  --> set(CMAKE_CXX_STANDARD 17)

Then:

cmake ..
make install -j8

If this fails: close terminal and reconnect to lxplus, then source corryvreckan/etsetup_lxplus.sh and try again.

Install Corryvreckan (If only Corryvreckan is needed (i.e. for an SPS analysis), none of the above dependecies need to be installed.)

If you haven’t done it in a previous step:

git clone https://gitlab.cern.ch/corryvreckan/corryvreckan.git
source corryvreckan/etc/setup_lxplus.sh

Then:

mkdir build && cd build
cmake .. -DBUILD_EventLoaderEUDAQ2
export eudaq_DIR=path/to/eudaq
cmake ..
make install -j8

If this fails: close terminal and reconnect to lxplus, then source corryvreckan/etc/setup_lxplus.sh and try again.