Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • DC_2404
  • DC_Jan24
  • DC_Nov23
  • DC_Oct23
  • L1Algo-dev9
  • apr21_patches
  • cleanup_rich_v25a
  • dec21_patches
  • feb23_patches
  • jul24_patches
  • jul25_patches
  • master
  • nighly_master
  • nightly_master
  • nov23_patches
  • online_much_readconf_cleanup
  • online_mvd_readconf_cleanup
  • APR21
  • DEC21
  • FEB23
  • JUL24
  • JUL24p1
  • RC1_APR21
  • RC1_feb23
  • RC1_nov23
  • RC2_APR21
  • RC2_feb23
  • RC2_nov23
  • RC3_APR21
  • RC3_nov23
  • RC4_nov23
  • RC5_nov23
  • RC_jul25
  • dev_2021_06
  • dev_2021_07
  • dev_2021_08
  • dev_2021_09
  • dev_2021_10
  • dev_2021_11
  • dev_2021_12
  • dev_2021_13
  • dev_2021_14
  • dev_2021_15
  • dev_2021_16
  • dev_2021_17
  • dev_2021_18
  • dev_2021_19
  • dev_2021_20
  • dev_2021_21
  • dev_2021_22
  • dev_2021_23
  • dev_2021_24
  • dev_2021_25
  • dev_2021_26
  • dev_2021_27
  • dev_2021_28
  • dev_2021_29
  • dev_2021_30
  • dev_2021_31
  • dev_2021_32
  • dev_2021_33
  • dev_2021_34
  • dev_2021_35
  • dev_2021_36
  • dev_2021_37
  • dev_2021_38
  • dev_2021_39
  • dev_2021_40
  • dev_2021_41
  • dev_2021_42
  • dev_2021_43
  • dev_2021_44
  • dev_2021_45
  • dev_2021_46
  • dev_2021_47
  • dev_2021_48
  • dev_2021_49
  • dev_2021_50
  • dev_2021_51
  • dev_2021_52
  • dev_2022_01
  • dev_2022_02
  • dev_2022_03
  • dev_2022_04
  • dev_2022_06
  • dev_2022_07
  • dev_2022_08
  • dev_2022_09
  • dev_2022_10
  • dev_2022_11
  • dev_2022_12
  • dev_2022_13
  • dev_2022_14
  • dev_2022_15
  • dev_2022_16
  • dev_2022_17
  • dev_2022_18
  • dev_2022_19
  • dev_2022_20
  • dev_2022_21
  • dev_2022_22
  • dev_2022_23
  • dev_2022_24
  • dev_2022_25
  • dev_2022_26
  • dev_2022_27
  • dev_2022_28
  • dev_2022_29
  • dev_2022_30
  • dev_2022_31
  • dev_2022_32
  • dev_2022_33
  • dev_2022_34
  • dev_2022_35
  • dev_2022_37
  • dev_2022_38
  • dev_2022_39
117 results

Target

Select target project
  • le.koch/cbmroot
  • patrick.pfistner_AT_kit.edu/cbmroot
  • lena.rossel_AT_stud.uni-frankfurt.de/cbmroot
  • i.deppner/cbmroot
  • fweig/cbmroot
  • karpushkin_AT_inr.ru/cbmroot
  • v.akishina/cbmroot
  • rishat.sultanov_AT_cern.ch/cbmroot
  • l_fabe01_AT_uni-muenster.de/cbmroot
  • pwg-c2f/cbmroot
  • j.decuveland/cbmroot
  • a.toia/cbmroot
  • i.vassiliev/cbmroot
  • n.herrmann/cbmroot
  • o.lubynets/cbmroot
  • se.gorbunov/cbmroot
  • cornelius.riesen_AT_physik.uni-giessen.de/cbmroot
  • zhangqn17_AT_mails.tsinghua.edu.cn/cbmroot
  • bartosz.sobol/cbmroot
  • ajit.kumar/cbmroot
  • computing/cbmroot
  • a.agarwal_AT_vecc.gov.in/cbmroot
  • osingh/cbmroot
  • wielanek_AT_if.pw.edu.pl/cbmroot
  • malgorzata.karabowicz.stud_AT_pw.edu.pl/cbmroot
  • m.shiroya/cbmroot
  • s.roy/cbmroot
  • p.-a.loizeau/cbmroot
  • a.weber/cbmroot
  • ma.beyer/cbmroot
  • d.klein/cbmroot
  • d.smith/cbmroot
  • pchaloupka/cbmroot
  • mvdsoft/cbmroot
  • d.spicker/cbmroot
  • y.h.leung/cbmroot
  • dvorar10_AT_fjfi.cvut.cz/cbmroot
  • aksharma/cbmroot
  • m.deveaux/cbmroot
  • s.glaessel/cbmroot
  • mkunold/cbmroot
  • h.darwish/cbmroot
  • pk.sharma_AT_vecc.gov.in/cbmroot
  • z.yingjie/cbmroot
  • f_fido01_AT_uni-muenster.de/cbmroot
  • g.kozlov/cbmroot
  • d.emschermann/cbmroot
  • evgeny.lavrik/cbmroot
  • v.friese/cbmroot
  • f.uhlig/cbmroot
  • ebechtel_AT_ikf.uni-frankfurt.de/cbmroot
  • a.senger/cbmroot
  • praisig/cbmroot
  • s.lebedev/cbmroot
  • redelbach_AT_compeng.uni-frankfurt.de/cbmroot
  • p.subramani/cbmroot
  • a_meye37_AT_uni-muenster.de/cbmroot
  • om/cbmroot
  • o.golosov/cbmroot
  • l.chlad/cbmroot
  • a.bercuci/cbmroot
  • d.ramirez/cbmroot
  • v.singhal/cbmroot
  • h.schiller/cbmroot
  • apuntke/cbmroot
  • f.zorn/cbmroot
  • rubio_AT_physi.uni-heidelberg.de/cbmroot
  • p.chudoba/cbmroot
  • apuntke/mcbmroot
  • r.karabowicz/cbmroot
70 results
Select Git revision
  • L1Algo-dev9
  • apr21_patches
  • dec21_patches
  • fix/eloss-calc
  • master
  • nightly_master
  • trdReworkSpadicClass
  • APR21
  • DEC21
  • RC1_APR21
  • RC2_APR21
  • RC3_APR21
  • dev_2021_06
  • dev_2021_07
  • dev_2021_08
  • dev_2021_09
  • dev_2021_10
  • dev_2021_11
  • dev_2021_12
  • dev_2021_13
  • dev_2021_14
  • dev_2021_15
  • dev_2021_16
  • dev_2021_17
  • dev_2021_18
  • dev_2021_19
  • dev_2021_20
  • dev_2021_21
  • dev_2021_22
  • dev_2021_23
  • dev_2021_24
  • dev_2021_25
  • dev_2021_26
  • dev_2021_27
  • dev_2021_28
  • dev_2021_29
  • dev_2021_30
  • dev_2021_31
  • dev_2021_32
  • dev_2021_33
  • dev_2021_34
  • dev_2021_35
  • dev_2021_36
  • dev_2021_37
  • dev_2021_38
  • dev_2021_39
  • dev_2021_40
  • dev_2021_41
  • dev_2021_42
  • dev_2021_43
  • dev_2021_44
  • dev_2021_45
  • dev_2021_46
  • dev_2021_47
  • dev_2021_48
  • dev_2021_49
  • dev_2021_50
  • dev_2021_51
  • dev_2021_52
  • dev_2022_01
  • dev_2022_02
  • dev_2022_03
  • dev_2022_04
  • dev_2022_06
  • dev_2022_07
  • dev_2022_08
  • dev_2022_09
  • dev_2022_10
  • dev_2022_11
  • dev_2022_12
  • dev_2022_13
  • dev_2022_14
  • dev_2022_15
  • dev_2022_16
  • dev_2022_17
  • dev_2022_18
  • dev_2022_19
  • dev_2022_20
  • dev_2022_21
  • dev_2022_22
  • dev_2022_23
  • dev_2022_24
  • dev_2022_25
  • dev_2022_26
  • dev_2022_27
  • dev_2022_28
  • dev_2022_29
  • dev_2022_30
  • dev_2022_31
  • dev_2022_32
  • dev_2022_33
  • dev_2022_34
  • dev_2022_35
  • dev_2022_37
  • dev_2022_38
  • dev_2022_39
  • dev_2022_40
  • dev_2022_41
  • dev_2022_42
99 results
Show changes
Commits on Source (2120)
Showing
with 815 additions and 378 deletions
ARG TAG=12-fair202211.4-rocm5.4
ARG REGISTRY=hub.cbm.gsi.de/computing/images/online
FROM ${REGISTRY}/dev:${TAG} as build
ARG SOURCE_DIR=/opt/cbm/src
WORKDIR ${SOURCE_DIR}
# Kaniko doesn't support RUN --mount, so we have to copy the source code instead
COPY . .
RUN .ci/online/scripts/install.sh
FROM ${REGISTRY}/runtime:${TAG}
ARG CBMROOT_PATH=/opt/cbm/cbmroot
ARG FAIRSOFT_PATH=/opt/cbm/fairsoft
COPY --from=build ${CBMROOT_PATH}/bin ${CBMROOT_PATH}/bin
COPY --from=build ${CBMROOT_PATH}/lib/*.so ${CBMROOT_PATH}/lib/
# FIXME HACK FOR DC OCT 23
COPY --from=build ${FAIRSOFT_PATH}/lib/libGenVector.so ${FAIRSOFT_PATH}/lib/.
COPY --from=build ${FAIRSOFT_PATH}/lib/libGenVector.so.6.26 ${FAIRSOFT_PATH}/lib/.
COPY --from=build ${FAIRSOFT_PATH}/lib/libGenVector.so.6.26.10 ${FAIRSOFT_PATH}/lib/.
COPY --from=build ${FAIRSOFT_PATH}/lib/libCore.so ${FAIRSOFT_PATH}/lib/.
COPY --from=build ${FAIRSOFT_PATH}/lib/libCore.so.6.26 ${FAIRSOFT_PATH}/lib/.
COPY --from=build ${FAIRSOFT_PATH}/lib/libCore.so.6.26.10 ${FAIRSOFT_PATH}/lib/.
ENV LD_LIBRARY_PATH=${CBMROOT_PATH}/lib:${FAIRSOFT_PATH}/lib:/opt/rocm/lib:${LD_LIBRARY_PATH}
ENV PATH=${CBMROOT_PATH}/bin:${PATH}
CMD ["cbmreco"]
FROM gcr.io/kaniko-project/executor:v1.16.0-debug
ARG USERNAME="username"
ARG PASSWORD="your_password"
ARG REGISTRY="hub.cbm.gsi.de"
ARG IMAGE="${REGISTRY}/computing/cbmroot/cbm_online"
ARG TAG="${USER}-debug"
RUN mkdir -p /kaniko/.docker
RUN echo "{\"auths\":{\"${REGISTRY}\":{\"username\":\"${USERNAME}\",\"password\":\"${PASSWORD}\"}}}" > /kaniko/.docker/config.json
# TODO: Mount CbmRoot source instead of copying it into the container (-> same with authentification...)
COPY . /workspace
ENV IMAGE=${IMAGE}
ENV TAG=${TAG}
ENTRYPOINT ["/bin/sh" , "-xc", "/kaniko/executor --context dir:///workspace --dockerfile /workspace/algo/containers/cbm_online/Dockerfile --destination $IMAGE:$TAG"]
#!/bin/bash
set -e
user="$1"
password="$2"
script=$(readlink -f "$0")
function check_arg() {
if [ -z "$1" ]; then
echo "Error: No $2 specified."
echo "Usage: $script <user> <password>"
exit 1
fi
}
check_arg "$user" "user"
check_arg "$password" "password"
# Set tag as optional third argument
if [ -z "$3" ]; then
tag="$user-debug"
else
tag="$3"
fi
# This script must be run from the CbmRoot top level directory.
# Check for .git, .clang-format, and .gitlab-ci.yml
if [ ! -d .git ] || [ ! -f .clang-format ] || [ ! -f .gitlab-ci.yml ]; then
echo "Error: This script must be run from the CbmRoot top level directory."
exit 1
fi
registry="hub.cbm.gsi.de/computing/cbmroot"
image="cbm_online"
build_args=" \
--build-arg="USERNAME=$user" \
--build-arg="PASSWORD=$password" \
--build-arg="TAG=$tag" \
"
dockerfile="algo/containers/cbm_online/DockerfileBuild"
docker build --progress plain $build_args -f $dockerfile -t cbm_online_builder .
#!/bin/bash
set -e
srcdir=cbmroot
build_type=RelWithDebInfo
install_prefix=/opt/cbm/cbmroot
fairsoft_path=/opt/cbm/fairsoft
enable_hip=ON
rocm_root=/opt/rocm
hip_archs="gfx906;gfx908" # MI50;MI100
n_jobs=16
cmake_args="-DCMAKE_INSTALL_PREFIX=$install_prefix \
-DCMAKE_BUILD_TYPE=$build_type \
-DSIMPATH=$fairsoft_path \
-DXPU_ENABLE_HIP=$enable_hip \
-DXPU_ROCM_ROOT=$rocm_root \
-DXPU_HIP_ARCH=$hip_archs \
"
ln -s ../cmake algo/cmake
cmake -S algo -B build $cmake_args
cmake --build build -j$n_jobs --target install
#! /bin/bash
set -e
IMAGE=hub.cbm.gsi.de/fweig/containers/cbm_online:online-container
DOCKER_FLAGS=" \
--rm \
-it \
--mount type=bind,source=$HOME/cbm/params,target=/opt/cbm/params \
--mount type=bind,source=/home/cbmdata/mcbm22/2391,target=/opt/cbm/data \
"
CMD="cbmreco"
CMD_FLAGS=" \
-p /opt/cbm/params \
-i /opt/cbm/data/2391_node8_1_0000.tsa \
-n 1 \
--omp 1 \
"
docker run $DOCKER_FLAGS $IMAGE $CMD $CMD_FLAGS
# docker run $DOCKER_FLAGS $IMAGE ls -l /opt/cbm/data
#! /bin/bash
set -e
IMAGE=hub.cbm.gsi.de/fweig/containers/cbm_online:online-container
DOCKER_FLAGS=" \
--rm \
-it \
--mount type=bind,source=$HOME/cbm/params,target=/opt/cbm/params \
--mount type=bind,source=/home/cbmdata/mcbm22/2391,target=/opt/cbm/data \
--device=/dev/kfd \
--device=/dev/dri \
--security-opt seccomp=unconfined \
--group-add video
"
CMD="cbmreco"
CMD_FLAGS=" \
-p /opt/cbm/params \
-i /opt/cbm/data/2391_node8_1_0000.tsa \
-n 1 \
--omp 1\
-l info \
-d hip1 \
"
# CMD=xpuinfo
# CMD_FLAGS=
docker run $DOCKER_FLAGS $IMAGE $CMD $CMD_FLAGS
# docker run $DOCKER_FLAGS $IMAGE ls -l /opt/cbm/data
---
AccessModifierOffset: -2
AccessModifierOffset: -1
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: true
......@@ -14,11 +14,11 @@ AllowAllArgumentsOnNextLine: false
AllowAllConstructorInitializersOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: Always
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: true
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: Always
AllowShortIfStatementsOnASingleLine: WithoutElse
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: false
......@@ -80,8 +80,14 @@ IncludeCategories:
Priority: 1
- Regex: '^("|<).*/Cbm'
Priority: 1
- Regex: '".*"'
Priority: 1
- Regex: '^("|<).*slice'
Priority: 2
- Regex: '^("|<)Monitor.hpp'
Priority: 2
- Regex: '^("|<)System.hpp'
Priority: 2
- Regex: '^("|<)Fair'
Priority: 3
- Regex: '^("|<)Logger.h'
......@@ -92,6 +98,8 @@ IncludeCategories:
Priority: 4
- Regex: '^("|<)boost'
Priority: 5
- Regex: '^<.*[^\.]h>'
Priority: 6
- Regex: '^<.*[^\.h]>'
Priority: 6
- Regex: '^<.*>'
......@@ -126,7 +134,7 @@ SpaceAfterCStyleCast: true
#SpaceAfterLogicalNot: true
SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
......@@ -142,6 +150,9 @@ SpacesInContainerLiterals: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
WhitespaceSensitiveMacros: ['CBM_ENUM_DICT', 'CBM_YAML_PROPERTIES']
StatementMacros: ['CBM_PARALLEL_FOR']
Standard: c++11
TabWidth: 8
......
Checks: '-*,modernize-deprecated-headers'
WarningsAsErrors: ''
HeaderFilterRegex: '.*'
AnalyzeTemporaryDtors: false
FormatStyle: file
CheckOptions:
- key: modernize-deprecated-headers.CheckHeaderFile
value: 'true'
...
.git
.vscode
/geometry
/input
/parameters
/build
/algo/external
......@@ -5,7 +5,9 @@
/geometry
/input
/parameters
/qa_data
/build
/algo/external
# Comment some single files
Dart*.cfg
......@@ -13,5 +15,19 @@ Dart*.cfg
# gdb Crash dumps
**/core_dump_*
# Git rebase backoup files
**/*.orig
# IDEs
.vscode
.cache
# Housekeeping
*~
.*
!.gitignore
!.gitlab-ci.yml
!.dockerignore
!.clang-format
!.clang-tidy
!.ci/
This diff is collapsed.
......@@ -30,6 +30,18 @@ set(CBMROOT_MAJOR_VERSION 22)
set(CBMROOT_MINOR_VERSION 2)
set(CBMROOT_PATCH_VERSION 99)
execute_process(
COMMAND bash "-c" "cd ${CMAKE_SOURCE_DIR} && git log | head -n 1 | sed 's_commit \\(.[^ ]*\\)_\\1_' && cd ${OLDPWD}"
OUTPUT_VARIABLE CBMROOT_BUILD_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(
COMMAND bash "-c" "cd ${CMAKE_SOURCE_DIR} && git log | sed -n '3 s/Date:[ ]*//p' && cd ${OLDPWD}"
OUTPUT_VARIABLE CBMROOT_BUILD_HASH_DATE
OUTPUT_STRIP_TRAILING_WHITESPACE)
message("CBMROOT BUILD HASH is ${CBMROOT_BUILD_HASH} dated on ${CBMROOT_BUILD_HASH_DATE}.")
# Set name of our project to "CBMROOT"
# This also sets ${CBMROOT_VERSION} to the provided VERSION value, which would be empty if not set here explicitly
project(CBMROOT
......@@ -39,7 +51,9 @@ project(CBMROOT
# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/
# is checked
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
# Load some basic cmake functionality
include(ExternalProject)
......@@ -52,12 +66,13 @@ include(CbmGenerateConfig)
include(CbmMacros)
include(CbmTargets)
include(CbmCompilerSettings)
include(ROOTMacros)
include(FairMacros)
include(WriteConfigFile)
include(CheckCompiler)
include(ROOTMacros)
include(WriteGeant4Data_jupy)
include(WriteKernelFile)
# Do some basic checks
# out-of-source build, unix system and
......@@ -67,14 +82,15 @@ Check_Prerequisites()
#Fairsoft Modules Path
list(PREPEND CMAKE_PREFIX_PATH ${SIMPATH})
unset(packages)
find_package(Python3)
MESSAGE("Python3_EXECUTABLE=${Python3_EXECUTABLE}")
#Searches for ROOT Package
find_package(ROOT 6.22 CONFIG REQUIRED)
if(ROOT_FOUND)
Message("Root was found")
# The following CMake variables are needed until the modernization is done
set(ROOT_CINT_EXECUTABLE ${ROOT_BINDIR}/rootcling)
set(ROOT_CONFIG_EXECUTABLE ${ROOT_BINDIR}/root-config)
set(ROOT_INCLUDE_DIR ${ROOT_INCLUDE_DIRS})
list(APPEND packages ROOT)
endif()
find_package(FairCMakeModules REQUIRED)
......@@ -85,8 +101,7 @@ find_package2(PUBLIC FairLogger)
# at the end after all find_package[2] calls, call once
find_package2_implicit_dependencies()
if(FairLogger_FOUND)
Message("FairLogger was found")
set(FAIRLOGGER_FOUND TRUE)
list(APPEND packages FairLogger)
set(FAIRLOGGER_INCLUDE_DIR ${FairLogger_INCDIR}/fairlogger)
# CbmRoot expects that the Logger include statement does not need any
......@@ -102,78 +117,118 @@ endif()
#Searches for VMC Package
if(ROOT_vmc_FOUND)
set(VMCLIB ROOT::VMC)
Message("Root_VMC was found")
list(APPEND packages ROOT_vmc)
else()
find_package2(PUBLIC VMC REQUIRED)
set(VMCLIB VMCLibrary)
endif()
if(VMC_FOUND)
Message("VMC was found")
list(APPEND packages VMC)
endif()
#Searches for FairROOT Package
include(FairRootTargets)
find_package(FairRoot REQUIRED)
if(FAIRROOT_FOUND)
Message("FairRoot was found")
list(APPEND packages FairRoot)
set(FairRoot_FOUND TRUE)
endif()
#Searching for Boost Package
find_package(Boost COMPONENTS serialization regex filesystem log log_setup container program_options thread)
find_package(ZeroMQ)
if(ZeroMQ_FOUND)
list(APPEND packages ZeroMQ)
endif()
#Searching for Boost Package
find_package(Boost CONFIG
COMPONENTS serialization regex filesystem log log_setup container program_options thread iostreams system
)
if(Boost_FOUND)
Message("Boost was found")
list(APPEND packages Boost)
endif()
#Searching for Geant4 Package
find_package(Geant4 CONFIG REQUIRED)
if(Geant4_FOUND)
Message("Geant4 was found")
list(APPEND packages Geant4)
endif()
#Searching for Vc Package
find_package(Vc 1.4.1 CONFIG REQUIRED)
if(Vc_FOUND)
list(APPEND packages Vc)
endif()
#Searching for VGM Package
find_package(VGM CONFIG REQUIRED)
if(VGM_FOUND)
Message("VGM was found")
endif()
#Searching for Geant4VMC Package
find_package(Geant4VMC CONFIG REQUIRED)
if(Geant4VMC_FOUND)
Message("Geant4VMC was found")
list(APPEND packages Geant4VMC)
endif()
#Searching for Geant3 Package
find_package(Geant3 CONFIG REQUIRED)
if(Geant3_FOUND)
Message("Geant3 was found")
list(APPEND packages Geant3)
endif()
#Searching for SSE
find_package(SSE REQUIRED)
if(SSE_FOUND)
Message("SSE was found")
list(APPEND packages SSE)
endif()
#Searching for format package
find_package(fmt CONFIG REQUIRED)
if(fmt_FOUND)
list(APPEND packages fmt)
endif()
#Searching for ONNXRuntime
find_package(ONNXRuntime CONFIG)
if (ONNXRuntime_FOUND)
list(APPEND packages ONNXRuntime)
endif()
#Searching for FairMQ
find_package(FairMQ CONFIG REQUIRED)
if(FairMQ_FOUND)
Message("FairMQ was found")
set(FAIRMQ_INCLUDE_DIR ${FairMQ_INCDIR}/fairmq)
list(APPEND packages FairMQ)
get_target_property(_inDirMQ FairMQ::FairMQ INTERFACE_INCLUDE_DIRECTORIES)
set_property(TARGET FairMQ::FairMQ APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${_inDirMQ}/fairmq/options")
endif()
#Searching for GTest in the build directory
find_package(GTest HINTS ${CMAKE_BINARY_DIR})
# Check if the compiler supports the needed C++ standard
# Check for the minimum required versions of FairSoft and FairRoot
check_external_stack()
if(NOT CBM_TEST_MODEL)
set(CBM_TEST_MODEL Experimental)
endif()
# Special case for GCC 10.2.1 with Profiling enabled: optimization of L1 has to be disabled to avoid errors
If((${CBM_TEST_MODEL} MATCHES Weekly OR ${CBM_TEST_MODEL} MATCHES Profile)
AND ${CMAKE_CXX_COMPILER_ID} MATCHES GNU
AND ${CMAKE_CXX_COMPILER_VERSION} MATCHES 10.2.1)
Message(STATUS "Detected Profiling build with GCC 10.2.1")
Message(STATUS "=> Disabling L1 optimization to avoid compilation errors")
Set(L1_NO_OPT ON CACHE BOOL "Detected Profiling build with GCC 10.2.1 => Disabling L1 opti to avoid comp. errors")
EndIf()
# Set the compiler flags
set_compiler_flags()
# Define where the produced targets are placed in the binary directory
Set(LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR}/lib")
Set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
Set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin")
Set(INCLUDE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/include")
set(CMAKE_INSTALL_LIBDIR lib)
......@@ -188,45 +243,23 @@ set(FAIRROOT_LIBRARY_PROPERTIES ${FAIRROOT_LIBRARY_PROPERTIES}
SOVERSION "${CBMROOT_MAJOR_VERSION}"
)
# Searching for OpenMP + control variable prep. for config script (default behavior + override)
find_package(OpenMP)
set(OMP_NUM_THREADS 1)
If(DEFINED ENV{OMP_NUM_THREADS} )
set(OMP_NUM_THREADS $ENV{OMP_NUM_THREADS})
endif()
# set a variable which should be used in all CMakeLists.txt
# Defines all basic include directories from fairbase
SetBasicVariables()
# Add the Geant3 include directory such that ROOT can find TGeant3.h
# Has to be done after calling SetBasicVariables, otherwise the value
# is overwritten
SET(ROOT_INCLUDE_PATH ${ROOT_INCLUDE_PATH} "${Geant3_INCLUDE_DIRS}")
Set(BASE_INCLUDE_DIRECTORIES
${BASE_INCLUDE_DIRECTORIES}
${SYSTEM_INCLUDE_DIRECTORIES}
${FAIRLOGGER_INCLUDE_DIR}
${VMC_INCLUDE_DIRS}
)
SET(CBMLIBDIR ${CMAKE_BINARY_DIR}/lib)
SET(LD_LIBRARY_PATH ${CBMLIBDIR} ${Boost_LIBRARY_DIRS} ${LD_LIBRARY_PATH})
set(CBMLIBDIR ${CMAKE_BINARY_DIR}/lib)
set(LD_LIBRARY_PATH ${CBMLIBDIR} ${SIMPATH}/lib ${LD_LIBRARY_PATH} ${FAIRROOT_LIBRARY_DIR})
set(ROOT_INCLUDE_PATH ${FAIRROOT_INCLUDE_DIR})
# Recurse into the given subdirectories. This does not actually
# cause another cmake executable to run. The same process will walk through
# the project's entire directory structure.
Option(BUILD_UNITTESTS "Build all unit tests and add them as new tests" ON)
If(BUILD_UNITTESTS)
Message("Build the unit tests.")
Set(GTEST_ROOT ${SIMPATH})
find_package2(PRIVATE GTest VERSION 1.7.0)
if(NOT GTEST_FOUND)
Message(STATUS "No gtest installation found, build our internal one.")
Include(external/InstallGtest.cmake)
set(CBM_LOCAL_GTEST TRUE)
else()
set(CBM_LOCAL_GTEST FALSE)
endif()
endif()
### Subdirectories to be compiled #####
......@@ -235,17 +268,22 @@ endif()
# following targets
add_subdirectory (external)
set (BASE_INCLUDE_DIRECTORIES
${BASE_INCLUDE_DIRECTORIES}
${XPU_INCLUDE_DIRECTORY} # Required for XPU_D macro in base data types
)
set(BASE_INCLUDE_DIRECTORIES
${BASE_INCLUDE_DIRECTORIES}
${GSL_INCLUDE_DIRECTORY}
option(BUILD_FOR_TIDY "Create compile commands database needed by clang-tidy" OFF)
# Add the default compiler include paths needed for our static standalone clang-tidy
# binary. The paths are only added to the compilation units in the generated file
# compile_commands.json which is used as input for clang-tidy. Without the
# paths clang-tidy can't find the standard C and C++ header files.
# Also add special compile options to use the scalar version of VC.
# Otherwise hardware and compiler dependent header files may not be found.
# Since we want to check our code and not some system headers this is
# acceptable.
if(BUILD_FOR_TIDY)
ADD_DEFINITIONS(-DVc_IMPL=Scalar)
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES
${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}
)
endif()
### Base directories
add_subdirectory (core)
......@@ -253,17 +291,11 @@ add_subdirectory (algo)
add_subdirectory (sim)
add_subdirectory (reco)
add_subdirectory (analysis)
### Detector directories
add_subdirectory (mvd)
add_subdirectory (services)
### Others
Option(LARGE_TEST_STATISTIC "Run the test suite with large statistic (100 events)" OFF)
if(NOT CBM_TEST_MODEL)
set(CBM_TEST_MODEL Experimental)
endif()
add_subdirectory (macro)
add_subdirectory(fles)
......@@ -294,3 +326,5 @@ generate_config_files()
Install(DIRECTORY geometry input parameters
DESTINATION share/cbmroot
PATTERN ".git" EXCLUDE)
print_info()
......@@ -10,42 +10,45 @@
/fles/ @f.uhlig @p.-a.loizeau
/macro/ @f.uhlig @p.-a.loizeau
/macro/C2F/ @i.selyuzhenkov
/macro/analysis/ @i.selyuzhenkov
/macro/KF/ @se.gorbunov @v.akishina
/macro/C2F/ @a.andronic @k.piasecki
/macro/analysis/ @a.andronic @k.piasecki
/macro/KF/ @se.gorbunov
# Core
/core/ @f.uhlig @v.friese @p.-a.loizeau
/core/qa/ @se.gorbunov
/core/qa/ @se.gorbunov @s.zharko
/core/data/test/ @f.uhlig
/core/data/raw/ @p.-a.loizeau
/core/base/utils/ @f.uhlig @s.lebedev
/core/base/report/ @s.lebedev
/core/base/draw/ @s.lebedev
/core/base/utils/ @f.uhlig
/core/base/report/ @f.uhlig
/core/base/draw/ @f.uhlig
# Algo
/algo/ @d.smith @fweig
# Simulation
/sim/ @f.uhlig @v.friese @p.-a.loizeau
/sim/transport/geosetup/ @e.lavrik
#/sim/transport/geosetup/ @e.lavrik
# Reco
/reco/ @f.uhlig @v.friese @p.-a.loizeau
/reco/littrack/ @s.lebedev @andrey.lebedev
/reco/L1/ @se.gorbunov @v.akishina
/reco/littrack/ @se.gorbunov
/reco/L1/ @se.gorbunov @s.zharko
/reco/eventbuilder/ @d.smith
/reco/KF/ @se.gorbunov @v.akishina
/reco/KF/ @se.gorbunov @s.zharko
# Analysis
/analysis/ @i.selyuzhenkov
/analysis/ @a.andronic @k.piasecki
/analysis/PWGC2F/femtoscopy/ @wielanek_AT_if.pw.edu.pl
/analysis/common/ @i.selyuzhenkov
/analysis/PWGHAD/ @i.selyuzhenkov
/analysis/PWGCHA/ @i.selyuzhenkov
/analysis/PWGDIL/ @i.selyuzhenkov
/analysis/common/ @a.andronic @k.piasecki
/analysis/PWGHAD/ @a.andronic @k.piasecki
/analysis/PWGCHA/ @a.andronic @k.piasecki
/analysis/PWGDIL/ @a.andronic @k.piasecki
/analysis/PWGDIL/dielectron/pi0eta/ @c.pauly
/analysis/PWGDIL/dielectron/papaframework/ @a_meye37_AT_uni-muenster.de
/analysis/PWGDIL/dielectron/lmvm/ @i.selyuzhenkov
/analysis/PWGDIL/dielectron/lmvm/ @a.andronic @k.piasecki
/analysis/PWGDIL/dielectron/conversion/ @c.pauly
/analysis/PWGDIL/dimuon/ @i.selyuzhenkov
/analysis/PWGDIL/dimuon/ @a.andronic @k.piasecki
## Detectors
......@@ -56,15 +59,23 @@
/macro/trd/ @a.bercuci @p.kaehler
/sim/detectors/trd/ @a.bercuci @p.kaehler
/reco/detectors/trd/ @a.bercuci @p.kaehler
/algo/detectors/trd/ @a.bercuci @p.kaehler
# PSD
/analysis/detectors/psd/ @karpushkin_AT_inr.ru
/core/data/psd/ @karpushkin_AT_inr.ru
/core/data/test/psd/ @karpushkin_AT_inr.ru
/core/detectors/psd/ @karpushkin_AT_inr.ru
/macro/psd/ @karpushkin_AT_inr.ru
/sim/detectors/psd/ @karpushkin_AT_inr.ru
/reco/detectors/psd/ @karpushkin_AT_inr.ru
/analysis/detectors/psd/ @v.friese
/core/data/psd/ @v.friese
/core/data/test/psd/ @v.friese
/core/detectors/psd/ @v.friese
/macro/psd/ @v.friese
/sim/detectors/psd/ @v.friese
/reco/detectors/psd/ @v.friese
# FSD
/analysis/detectors/fsd/ @dvorar10_AT_fjfi.cvut.cz
/core/data/fsd/ @dvorar10_AT_fjfi.cvut.cz
/core/detectors/fsd/ @dvorar10_AT_fjfi.cvut.cz
/sim/detectors/fsd/ @dvorar10_AT_fjfi.cvut.cz
/reco/detectors/fsd/ @dvorar10_AT_fjfi.cvut.cz
# MUCH
/core/data/much/ @v.singhal
......@@ -73,6 +84,8 @@
/macro/much/ @v.singhal
/sim/detectors/much/ @v.singhal
/reco/detectors/much/ @v.singhal
/algo/detectors/much/ @v.singhal
/macro/analysis/much/ @v.singhal
# TOF
/analysis/detectors/tof/ @n.herrmann @i.deppner
......@@ -85,14 +98,16 @@
/reco/detectors/tof/ @n.herrmann @i.deppner
/MQ/eTOF/ @n.herrmann @i.deppner
/MQ/hitbuilder/ @n.herrmann @i.deppner
/algo/detectors/tof/ @n.herrmann @i.deppner
# RICH
/core/data/rich/ @s.lebedev
/core/data/test/rich/ @s.lebedev
/core/detectors/rich/ @s.lebedev
/macro/rich/ @s.lebedev
/sim/detectors/rich/ @s.lebedev
/reco/detectors/rich/ @s.lebedev
/core/data/rich/ @ma.beyer
/core/data/test/rich/ @ma.beyer
/core/detectors/rich/ @ma.beyer
/macro/rich/ @ma.beyer
/sim/detectors/rich/ @ma.beyer
/reco/detectors/rich/ @ma.beyer
/algo/detectors/rich/ @ma.beyer
# STS
/analysis/detectors/sts/ @v.friese
......@@ -103,8 +118,13 @@
/sim/detectors/sts/ @v.friese
/reco/detectors/sts/ @v.friese
/MQ/sts/ @v.friese
/algo/detectors/sts/ @v.friese
/algo/data/sts/ @v.friese
# MVD
/core/data/mvd/ @c.muentz @m.deveaux
/macro/mvd/ @c.muentz @m.deveaux
/mvd/ @c.muentz @m.deveaux
/reco/detectors/mvd/ @c.muentz @m.deveaux @j.stroth
/core/detectors/mvd/ @c.muentz @m.deveaux @j.stroth
/core/data/mvd/ @c.muentz @m.deveaux @j.stroth
/analysis/detectors/mvd/ @c.muentz @m.deveaux @j.stroth
/macro/mvd/ @c.muentz @m.deveaux @j.stroth
/sim/detectors/mvd/ @c.muentz @m.deveaux @j.stroth
......@@ -3,8 +3,13 @@
message(" -- Read CTestCustom.cmake --")
# Maximum size of uploaded test output of failed tests is 100kB
# or 10MB in case of weekly tests
# Larger output is cutted
if(${CBM_TEST_MODEL} MATCHES Weekly)
set(CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE "10240000")
else()
set(CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE "102400")
endif()
# Maximum size of uploaded test output of passed tests is 1kB
# Larger output is cutted
......
......@@ -11,6 +11,7 @@ Set(CTEST_BUILD_NAME $ENV{LABEL})
Set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
Set(CTEST_PROJECT_NAME "CBMROOT")
Set(EXTRA_FLAGS $ENV{EXTRA_FLAGS})
Set(INSTALL_PROJECT $ENV{INSTALL_PROJECT})
if(NOT CBM_TEST_MODEL)
set(CBM_TEST_MODEL NIGHTLY)
......@@ -32,6 +33,9 @@ Set(CTEST_BUILD_COMMAND "${BUILD_COMMAND} -i -k -j$ENV{number_of_processors}")
#Include(CbmMacros)
#FairRootVersion()
message("Compiling with $ENV{number_of_processors} jobs in parallel.")
message("Testing with $ENV{number_of_processors_for_test} jobs in parallel.")
Set(CTEST_USE_LAUNCHERS 1)
If(${CBM_TEST_MODEL} MATCHES MergeRequest OR ${CBM_TEST_MODEL} MATCHES Continuous)
......@@ -45,14 +49,16 @@ Else()
set(_CMakeModel ${CBM_TEST_MODEL})
EndIf()
If(EXTRA_FLAGS)
If(EXTRA_FLAGS AND INSTALL_PROJECT)
Set(CTEST_CONFIGURE_COMMAND " \"${CMAKE_EXECUTABLE_NAME}\" \"-G${CTEST_CMAKE_GENERATOR}\" \"-DCBM_TEST_MODEL=${CBM_TEST_MODEL}\" \"-DCMAKE_BUILD_TYPE=${_BuildType}\" \"-DCTEST_USE_LAUNCHERS=${CTEST_USE_LAUNCHERS}\" \"${EXTRA_FLAGS}\" \"-DCMAKE_INSTALL_PREFIX=${CTEST_SOURCE_DIRECTORY}/install\" \"${CTEST_SOURCE_DIRECTORY}\" ")
ElseIf(EXTRA_FLAGS)
Set(CTEST_CONFIGURE_COMMAND " \"${CMAKE_EXECUTABLE_NAME}\" \"-G${CTEST_CMAKE_GENERATOR}\" \"-DCBM_TEST_MODEL=${CBM_TEST_MODEL}\" \"-DCMAKE_BUILD_TYPE=${_BuildType}\" \"-DCTEST_USE_LAUNCHERS=${CTEST_USE_LAUNCHERS}\" \"${EXTRA_FLAGS}\" \"${CTEST_SOURCE_DIRECTORY}\" ")
Else()
Set(CTEST_CONFIGURE_COMMAND " \"${CMAKE_EXECUTABLE_NAME}\" \"-G${CTEST_CMAKE_GENERATOR}\" \"-DCBM_TEST_MODEL=${CBM_TEST_MODEL}\" \"-DCMAKE_BUILD_TYPE=${_BuildType}\" \"-DCTEST_USE_LAUNCHERS=${CTEST_USE_LAUNCHERS}\" \"${CTEST_SOURCE_DIRECTORY}\" ")
EndIf()
#If(${CBM_TEST_MODEL} MATCHES Nightly OR ${CBM_TEST_MODEL} MATCHES Weekly OR ${CBM_TEST_MODEL} MATCHES Profile)
If(NOT ${_BuildType} MATCHES Experimental)
If(NOT ${_BuildType} MATCHES EXPERIMENTAL)
Find_Program(GCOV_COMMAND gcov)
If(GCOV_COMMAND)
......@@ -73,8 +79,17 @@ if(${_CMakeModel} MATCHES Continuous)
endif()
EndIf()
# The stop time should be a date compatible string without day nor timezone
# Examples:
# => CTEST_END_TIME_LIMIT=`date -d "${END_TIME}CET -5minutes" +"%H:%M:%S"`
# => CTEST_END_TIME_LIMIT=`date -d "now +25minutes" +"%H:%M:%S"`
unset(stop_time)
If(DEFINED ENV{CTEST_END_TIME_LIMIT})
set(stop_time STOP_TIME "$ENV{CTEST_END_TIME_LIMIT}")
message(STATUS " End time for the ctest test runs set to ${stop_time}")
EndIf()
If(NOT ${_BuildType} MATCHES Experimental)
If(NOT ${_BuildType} MATCHES EXPERIMENTAL)
Ctest_Update(SOURCE "${CTEST_SOURCE_DIRECTORY}")
EndIf()
......@@ -107,9 +122,29 @@ If(NOT _RETVAL)
endif()
EndIf()
If(DEFINED ENV{CI_TEST_STAGE_TOTAL_TIME_LIMIT})
# Compute test stage timeout based on current time + limit from environment variable
If(DEFINED ENV{CTEST_END_TIME_LIMIT})
# If also full DASH run timeout defined, also compare the two and keep the earliest one
execute_process (
COMMAND scripts/find_citests_ctest_stop_time.sh $ENV{CTEST_END_TIME_LIMIT}
OUTPUT_VARIABLE CI_TESTS_TOTAL_END_TIME_DATE
)
Else()
# Else just get the CI jpb timeout
execute_process (
COMMAND scripts/find_citests_ctest_stop_time.sh
OUTPUT_VARIABLE CI_TESTS_TOTAL_END_TIME_DATE
)
EndIf()
set(stop_time STOP_TIME "${CI_TESTS_TOTAL_END_TIME_DATE}")
message(STATUS "Due to CI mode, Set end time for the ctest test runs to ${stop_time}")
EndIf()
Ctest_Test(BUILD "${CTEST_BINARY_DIRECTORY}"
PARALLEL_LEVEL $ENV{number_of_processors}
PARALLEL_LEVEL $ENV{number_of_processors_for_test}
${repeat}
${stop_time}
RETURN_VALUE _ctest_test_ret_val
)
......@@ -133,17 +168,22 @@ If(NOT _RETVAL)
Ctest_Submit(BUILD_ID cdash_build_id)
EndIf()
If(EXTRA_FLAGS MATCHES "INSTALL_PREFIX" AND EXTRA_FLAGS MATCHES "CBM_TEST_INSTALL" AND NOT _ctest_test_ret_val)
If(EXTRA_FLAGS MATCHES "CBM_TEST_INSTALL" AND NOT _ctest_test_ret_val)
# If(EXTRA_FLAGS MATCHES "INSTALL_PREFIX" AND EXTRA_FLAGS MATCHES "CBM_TEST_INSTALL" AND NOT _ctest_test_ret_val)
Message("Testing Installation")
execute_process(COMMAND ${BUILD_COMMAND} install -j$ENV{number_of_processors} WORKING_DIRECTORY ${CTEST_BINARY_DIRECTORY}
RESULTS_VARIABLE _install_ret_value
)
if (NOT _install_ret_value)
execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E rm -R MQ algo analysis core external fles mvd reco sim
message("executing test suite in ${CTEST_BINARY_DIRECTORY}/install with source folder available")
execute_process(COMMAND ${CTEST_SOURCE_DIRECTORY}/cmake/scripts/execute_installation_test.sh ${CTEST_SOURCE_DIRECTORY}/install
RESULTS_VARIABLE _install_ret_value
)
execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E rm -R build MQ algo analysis core external fles reco sim
WORKING_DIRECTORY ${CTEST_SOURCE_DIRECTORY}
)
message("executing test suite in ${CTEST_BINARY_DIRECTORY}/install")
execute_process(COMMAND ${CTEST_SOURCE_DIRECTORY}/cmake/scripts/execute_installation_test.sh ${CTEST_BINARY_DIRECTORY}/install
message("executing test suite in ${CTEST_BINARY_DIRECTORY}/install wihout source folder available")
execute_process(COMMAND ${CTEST_SOURCE_DIRECTORY}/cmake/scripts/execute_installation_test.sh ${CTEST_SOURCE_DIRECTORY}/install
RESULTS_VARIABLE _install_ret_value
)
endif()
......
......@@ -119,15 +119,22 @@ then
fi
fi
if [ -z $NCPU4TEST ]; then
export number_of_processors_for_test=$number_of_processors
else
export number_of_processors_for_test=$NCPU4TEST
fi
echo "************************"
date
echo "LABEL: " $LABEL
echo "SITE: " $SITE
echo "Model: " ${ctest_model}
echo "Nr. of processes: " $number_of_processors
echo "Nr. of processes for build: " $number_of_processors
echo "Nr. of processes for test: " $number_of_processors_for_test
echo "************************"
cd $SOURCEDIR
ctest -S $SOURCEDIR/CbmRoot_test.cmake -V --VV -DCBM_TEST_MODEL=${ctest_model}
ctest -S $SOURCEDIR/CbmRoot_test.cmake -V -DCBM_TEST_MODEL=${ctest_model}
#ctest -S $SOURCEDIR/CbmRoot_test.cmake -V --VV
set(INCLUDE_DIRECTORIES
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/MQ/base
)
Set(SYSTEM_INCLUDE_DIRECTORIES
${SYSTEM_INCLUDE_DIRECTORIES}
${FAIRMQ_INCLUDE_DIR}
)
include_directories(${INCLUDE_DIRECTORIES})
include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
set(LINK_DIRECTORIES
${FAIRMQ_LIBRARY_DIR}
)
link_directories(${LINK_DIRECTORIES})
set(FAIR_LIBS
FairMQ
)
If(FAIRLOGGER_FOUND)
set(FAIR_LIBS
${FAIR_LIBS}
FairLogger
)
EndIf()
set(SRCS
CbmMQChannels.cxx
)
Set(LIBRARY_NAME CbmMQBase)
Set(DEPENDENCIES
${FAIR_LIBS}
set(LIBRARY_NAME CbmMQBase)
set(PUBLIC_DEPENDENCIES
FairMQ::FairMQ
)
set(INTERFACE_DEPENDENCIES
ROOT::Net
)
GENERATE_LIBRARY()
generate_cbm_library()
......@@ -6,87 +6,49 @@
# copied verbatim in the file "LICENSE" #
################################################################################
Set(INCLUDE_DIRECTORIES
set(INCLUDE_DIRECTORIES
${CMAKE_CURRENT_SOURCE_DIR}
${CBMROOT_SOURCE_DIR}/fles/flestools
)
Set(SYSTEM_INCLUDE_DIRECTORIES
${SYSTEM_INCLUDE_DIRECTORIES}
${Boost_INCLUDE_DIR}
${FAIRROOT_INCLUDE_DIR}
${FAIRMQ_INCLUDE_DIR}
${FAIRMQ_INCLUDE_DIR}/options
${FAIRLOGGER_INCLUDE_DIR}
)
Include_Directories(${INCLUDE_DIRECTORIES})
Include_Directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
Set(LINK_DIRECTORIES
${Boost_LIBRARY_DIRS}
${FAIRROOT_LIBRARY_DIR}
${ROOT_LIBRARY_DIR}
)
Link_Directories(${LINK_DIRECTORIES})
set(FAIR_LIBS
FairMQ
)
If(FAIRLOGGER_FOUND)
set(FAIR_LIBS
${FAIR_LIBS}
FairLogger
)
EndIf()
Set(BOOST_LIBS
${Boost_SYSTEM_LIBRARY}
${Boost_SERIALIZATION_LIBRARY}
${Boost_PROGRAM_OPTIONS_LIBRARY}
)
If(UNIX AND NOT APPLE)
List(APPEND BOOST_LIBS pthread)
EndIf()
# Dependencies common to all executables
set(DEPENDENCIES_ALL
${DEPENDENCIES}
${FAIR_LIBS}
${BOOST_LIBS}
)
# Set the install path within the build directory
set(EXECUTABLE_OUTPUT_PATH "${EXECUTABLE_OUTPUT_PATH}/MQ/histogramServer")
# Set the install path within the installation directory
set(BIN_DESTINATION bin/MQ/histogramServer)
set(PUBLIC_DEPS
ROOT::Core
ROOT::RHTTP
)
set(PRIVATE_DEPS
CbmFlibFlesTools
FairRoot::Base
FairMQ::FairMQ
ROOT::Gpad
ROOT::Hist
ROOT::Net
ROOT::RIO
)
set(EXE_NAME HistoServer)
set(SRCS CbmHistoServer.cxx runCbmHistoServer.cxx)
set(DEPENDENCIES
${DEPENDENCIES_ALL}
external::fles_ipc
Core
RIO
Net
Hist
RHTTP
)
GENERATE_EXECUTABLE()
set(PUBLIC_DEPENDENCIES ${PUBLIC_DEPS})
set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPS})
set(INTERFACE_DEPENDENCIES ${INTERFACE_DEPS})
generate_cbm_executable()
set(EXE_NAME MqHistoServer)
set(SRCS CbmMqHistoServer.cxx runCbmMqHistoServer.cxx)
set(DEPENDENCIES
${DEPENDENCIES_ALL}
CbmFlibFlesTools
Core
RIO
Net
Hist
Gpad
RHTTP
)
GENERATE_EXECUTABLE()
set(PUBLIC_DEPENDENCIES ${PUBLIC_DEPS})
set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPS})
set(INTERFACE_DEPENDENCIES ${INTERFACE_DEPS})
generate_cbm_executable()
......@@ -3,94 +3,52 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/startMQ_Mcbm.sh.in ${CMAKE_BINARY_DIR
set(INCLUDE_DIRECTORIES
${CMAKE_CURRENT_SOURCE_DIR}
${CBMDATA_DIR}
${CBMDATA_DIR}/base
${CBMDATA_DIR}/tof
${CBMBASE_DIR}
${CBMDETECTORBASE_DIR}/tof
${CBMROOT_SOURCE_DIR}/MQ/base
)
Set(SYSTEM_INCLUDE_DIRECTORIES
${SYSTEM_INCLUDE_DIRECTORIES}
${ZeroMQ_INCLUDE_DIR}
${Boost_INCLUDE_DIR}
${FAIRROOT_INCLUDE_DIR}
${FAIRLOGGER_INCLUDE_DIR}
${FAIRMQ_INCLUDE_DIR}
${FAIRMQ_INCLUDE_DIR}/options
${VMC_INCLUDE_DIRS}
${FLES_IPC_INCLUDE_DIRECTORY}
${CBMROOT_SOURCE_DIR}/external/cppzmq
${CBMROOT_SOURCE_DIR}/reco/detectors/tof
)
include_directories(${INCLUDE_DIRECTORIES})
include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
set(LINK_DIRECTORIES
${ROOT_LIBRARY_DIR}
${FAIRROOT_LIBRARY_DIR}
${Boost_LIBRARY_DIRS}
)
link_directories(${LINK_DIRECTORIES})
# Set the install path within the build directory
set(EXECUTABLE_OUTPUT_PATH "${EXECUTABLE_OUTPUT_PATH}/MQ/hitbuilder")
# Set the install path within the installation directory
set(BIN_DESTINATION bin/MQ/hitbuilder)
Set(BOOST_LIBS
${Boost_SYSTEM_LIBRARY}
${Boost_SERIALIZATION_LIBRARY}
${Boost_PROGRAM_OPTIONS_LIBRARY}
${Boost_LOG_LIBRARY}
)
If(UNIX AND NOT APPLE)
List(APPEND BOOST_LIBS pthread)
EndIf()
set(FAIR_LIBS
Base
ParBase
${FAIRMQ_LIBS}
)
set(EXE_NAME HitBuilderTof)
set(SRCS CbmDeviceHitBuilderTof.cxx runHitBuilderTof.cxx)
set(PUBLIC_DEPENDENCIES
CbmData
CbmTofBase
CbmMQBase
FairRoot::Base
ROOT::Geom
If(FAIRLOGGER_FOUND)
set(FAIR_LIBS
${FAIR_LIBS}
FairLogger
)
EndIf()
# Dependencies common to all executables
set(DEPENDENCIES_ALL
${DEPENDENCIES}
${FAIR_LIBS}
${BOOST_LIBS}
set(PRIVATE_DEPENDENCIES
CbmBase
CbmTofReco
FairRoot::ParBase
FairRoot::Online
ROOT::Core
ROOT::Graf
ROOT::Hist
ROOT::MathCore
ROOT::Minuit
ROOT::Physics
)
set(EXE_NAME HitBuilderTof)
set(SRCS CbmDeviceHitBuilderTof.cxx runHitBuilderTof.cxx)
set(DEPENDENCIES
${DEPENDENCIES_ALL}
# external::fles_ipc
CbmBase
CbmData
CbmTofBase
Geom
Core
MathCore
Tree
Physics
RIO
Net
Hist
set(INTERFACE_DEPENDENCIES
FairMQ::FairMQ
external::fles_ipc
ROOT::Net
ROOT::RIO
ROOT::Tree
)
GENERATE_EXECUTABLE()
generate_cbm_executable()
# Set the correct variables for the installation
set(VMCWORKDIR ${CMAKE_INSTALL_PREFIX}/share/cbmroot)
......
......@@ -39,6 +39,7 @@
#include "FairRootManager.h"
#include "FairRunOnline.h"
#include "FairRuntimeDb.h"
#include "FairSource.h"
// ROOT Classes and includes
#include "TClonesArray.h"
......@@ -55,7 +56,6 @@
#include "TROOT.h"
#include "TRandom3.h"
#include "TVector3.h"
#include <thread> // this_thread::sleep_for
#include <boost/archive/binary_iarchive.hpp>
#include <boost/archive/binary_oarchive.hpp>
......@@ -65,6 +65,7 @@
#include <iomanip>
#include <stdexcept>
#include <string>
#include <thread> // this_thread::sleep_for
struct InitTaskError : std::runtime_error {
using std::runtime_error::runtime_error;
};
......@@ -370,7 +371,8 @@ Bool_t CbmDeviceHitBuilderTof::InitRootOutput()
fEvtHeader = new FairEventHeader();
fEvtHeader->SetRunId(iRunId);
rootMgr->Register("EventHeader.", "Event", fEvtHeader, kTRUE);
rootMgr->FillEventHeader(fEvtHeader);
auto source = rootMgr->GetSource();
if (source) { source->FillEventHeader(fEvtHeader); }
// rootMgr->Register("CbmTofDigi", "Tof raw Digi", fTofCalDigisColl, kTRUE);
// fOutRootFile->cd();
......@@ -694,7 +696,8 @@ bool CbmDeviceHitBuilderTof::HandleData(FairMQParts& parts, int /*index*/)
if (NULL != fOutRootFile) { // CbmEvent output to root file
fEvtHeader->SetEventTime((double) fEventHeader[4]);
rootMgr->FillEventHeader(fEvtHeader);
auto source = rootMgr->GetSource();
if (source) { source->FillEventHeader(fEvtHeader); }
//LOG(info) << "Fill WriteOutBuffer with rootMgr at " << rootMgr;
fOutRootFile->cd();
rootMgr->Fill();
......