This page discribes the reconstruction of the tracks recorded by the Alpide telescope at DESY using the Corryvreckan reconstruction framework for the purpose of track extrapolation to AHCAL layer, which sits typically 1 m downstream from the telescope.
Installation
EUDAQ (AHCAL, Alpide, main)
EUDAQ needs to be installed in order to be able to read the EUDAQ RAW files, especially the StdEvent coverters. Since the Alpide telescope has external dependecies, it is not in the main branch of EUDAQ, but rather an independent package, that is built against the EUDAQ. This requires a slightly different approach to the build, where a common installation directory for all modules are given.
TLU requres the IPBUS to be installed. Moreover, the library needs to be added to the LD_LIBRARY_PATH both to the EUDAQ and corrywreckan installations:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cactus/lib
This following script will install all the necessary EUDAQ binaries (eudaq core) and libraries (AHCAL + Alpide):
Click here to expand...
#! /usr/bin/env bash
#source ~/opt/root/6.22.00_src/root_install/bin/thisroot.sh
source ~/opt/root/6.22.08_src/install/bin/thisroot.sh
# temporary folder to store source code from git
EUDAQ_SOURCE=eudaq_official
ALTEL_SOURCE=eudaq_altel
AHCAL_SOURCE=eudaq_ahcal
ROOT_DIR=`pwd`
# temporary folder for building
BUILD_DIR=`pwd`/build
# final installation
INSTALL_DIR=`pwd`/install
if [ ! -d ${EUDAQ_SOURCE} ]; then
git clone https://www.github.com/eudaq/eudaq $EUDAQ_SOURCE
pushd $EUDAQ_SOURCE
git checkout master #v2.4.4
popd
fi
if [ ! -d ${ALTEL_SOURCE} ] ; then
git clone https://github.com/eyiliu/altel_eudaq $ALTEL_SOURCE
pushd $ALTEL_SOURCE
git checkout build_gcc48 #or master?
popd
fi
if [ ! -d ${AHCAL_SOURCE} ] ; then
git clone https://github.com/jkvas/eudaq_ahcal $AHCAL_SOURCE
pushd $AHCAL_SOURCE
git checkout master
popd
fi
mkdir -pv ${BUILD_DIR}/${EUDAQ_SOURCE}
pushd ${BUILD_DIR}/${EUDAQ_SOURCE}
cmake -DBUILD_GUI=ON \
-DEUDAQ_BUILD_STDEVENT_MONITOR=ON \
-DEUDAQ_BUILD_ONLINE_ROOT_MONITOR=ON \
-DEUDAQ_LIBRARY_BUILD_LCIO=ON \
-DUSER_EUDET_BUILD=ON \
-DUSER_TLU_BUILD=ON \
-DUSER_EAMPLE_BUILD=ON \
-DUSER_TIMEPIX3_BUILD=ON \
-DUSER_CARIBOU_BUILD=ON \
-DEUDAQ_INSTALL_PREFIX=${INSTALL_DIR} \
-DPeary_DIR=/home/kvas/git/peary/share/cmake/Modules \
-L ${ROOT_DIR}/${EUDAQ_SOURCE}
make install
popd
mkdir -pv ${BUILD_DIR}/${ALTEL_SOURCE}
pushd ${BUILD_DIR}/${ALTEL_SOURCE}
cmake -L \
-Deudaq_DIR=${INSTALL_DIR}/cmake \
-DALTEL_BUILD_EUDAQ_MODULE=ON \
-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
${ROOT_DIR}/${ALTEL_SOURCE}
make install
popd
mkdir -pv ${BUILD_DIR}/${AHCAL_SOURCE}
pushd ${BUILD_DIR}/${AHCAL_SOURCE}
cmake -L -Deudaq_DIR=${INSTALL_DIR}/cmake \
-DDESYTABLE_BUILD_EUDAQ_MODULE=ON \
-DUSER_CALICE_BUILD_AHCAL=ON \
-DUSER_CALICE_BUILD=ON \
-DUSER_CALICE_BUILD_BIF=ON \
-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
${ROOT_DIR}/${AHCAL_SOURCE}
make install
popd
Corryvreckan
installation is described here. for the testbeam there is explicitely needed to install module.
In case of problem with compilation of labview, following patch helped to make the corryvreckan compiled:
-------------------------------- CMakeLists.txt --------------------------------
index 9f4fa2cc..f11e401a 100644
@@ -120,6 +120,10 @@ ENDIF()
###################################
# Prerequisistes for Corryvreckan #
###################################
+#set (THREADS_PREFER_PTHREAD_FLAG ON)
+FIND_PACKAGE(Threads REQUIRED)
+FIND_PACKAGE(OpenMP REQUIRED)
+FIND_PACKAGE(MPI REQUIRED )
# Define the libraries
SET(CORRYVRECKAN_LIBRARIES "")
@@ -176,9 +180,9 @@ ADD_RUNTIME_DEP(thisroot.sh)
###################################
# Set the clang-format version required by the CI for correct formatting:
-SET(CLANG_FORMAT_VERSION "10")
+SET(CLANG_FORMAT_VERSION "11")
# Set the clang-tidy version of the linter required by the CI:
-SET(CLANG_TIDY_VERSION "10")
+SET(CLANG_TIDY_VERSION "11")
# Set the source files to clang-format (FIXME: determine this better)
FILE(GLOB_RECURSE
------------------- src/modules/OnlineMonitor/CMakeLists.txt -------------------
index 46d97097..8ae1f40e 100644
@@ -11,7 +11,8 @@ IF(NOT ROOT_MACROS_FILE)
MESSAGE(WARNING "Cannot find ROOT macros, including generic file as fallback.")
INCLUDE(${ROOT_USE_FILE})
ELSE()
- INCLUDE(${ROOT_MACROS_FILE})
+ INCLUDE(${ROOT_USE_FILE})
+# INCLUDE(${ROOT_MACROS_FILE})
ENDIF()
# Generate the ROOT dictionary
-------------------------- src/objects/CMakeLists.txt --------------------------
index 246b7b6d..f2430f74 100644
@@ -12,7 +12,7 @@ IF(NOT ROOT_MACROS_FILE)
MESSAGE(WARNING "Cannot find ROOT macros, including generic file as fallback.")
INCLUDE("${ROOT_USE_FILE}")
ELSE()
- INCLUDE(${ROOT_MACROS_FILE})
+ INCLUDE("${ROOT_USE_FILE}")# INCLUDE(${ROOT_MACROS_FILE})
ENDIF()
# Generate the ROOT dictionary
mkdir build
cd build
cmake -DBUILD_EventLoaderEUDAQ2=ON -Deudaq_DIR=$PATH_TO_EUDAQ/install/cmake ../
make install
Alignment
TODO Aligment has not been successfully tested. The partially working alignment is described in DESY August 2020 testbeam
Reconstruction
TODO