Skip to content

Commit

Permalink
Merge branch 'HEP-FCC:master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
bistapf authored Sep 4, 2024
2 parents 30da3fb + fa672d4 commit 49ea82e
Show file tree
Hide file tree
Showing 124 changed files with 9,404 additions and 5,512 deletions.
4 changes: 2 additions & 2 deletions .github/scripts/man2html.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
mkdir -p ./man/html
cd ./man/man1
for MANFILE in *; do
mandoc -Thtml -Ostyle=/css/mandoc.css "${MANFILE}" > "../html/${MANFILE::-1}html"
mandoc -Thtml -Ostyle=../../css/mandoc.css "${MANFILE}" > "../html/${MANFILE::-1}html"
done
cd ../man7
for MANFILE in *; do
mandoc -Thtml -Ostyle=/css/mandoc.css "${MANFILE}" > "../html/${MANFILE::-1}html"
mandoc -Thtml -Ostyle=../../css/mandoc.css "${MANFILE}" > "../html/${MANFILE::-1}html"
done
31 changes: 19 additions & 12 deletions .github/workflows/bench.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
name: benchmark
name: Benchmark

on: [push]
on:
push:
branches:
- master

jobs:
bench:
Expand All @@ -9,39 +12,43 @@ jobs:
fail-fast: false
matrix:
include:
- SETUP: '/cvmfs/sw.hsf.org/key4hep/setup.sh'
- STACK: '/cvmfs/sw.hsf.org/key4hep/setup.sh'
NAME: prod
- SETUP: '/cvmfs/sw-nightlies.hsf.org/key4hep/setup.sh'
- STACK: '/cvmfs/sw-nightlies.hsf.org/key4hep/setup.sh'
NAME: nightly
steps:
- uses: actions/checkout@v3
- uses: cvmfs-contrib/github-action-cvmfs@v3
- uses: actions/checkout@v4
- uses: cvmfs-contrib/github-action-cvmfs@v4
- name: Start container
run: |
docker run -it --name CI_container -v ${GITHUB_WORKSPACE}:/Package -v /cvmfs:/cvmfs:shared -d ghcr.io/aidasoft/centos7:latest /bin/bash
docker run -it --name CI_container \
-v ${GITHUB_WORKSPACE}:/Package \
-v /cvmfs:/cvmfs:shared \
-d ghcr.io/key4hep/key4hep-images/alma9:latest \
/bin/bash
- name: CMake Configure
run: |
docker exec CI_container /bin/bash -c 'cd Package;\
mkdir -p build install;\
source ${{ matrix.SETUP }};\
source ${{ matrix.STACK }};\
cd build;\
cmake -DCMAKE_INSTALL_PREFIX=../install -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_FLAGS=" -fdiagnostics-color=always " -G Ninja ..;'
cmake -DCMAKE_INSTALL_PREFIX=../install -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_FLAGS=" -fdiagnostics-color=always " -G Ninja ..;'
- name: Compile
run: |
docker exec CI_container /bin/bash -c 'cd ./Package;\
source ${{ matrix.SETUP }};\
source ${{ matrix.STACK }};\
cd build;\
ninja -k0;'
- name: Install
run: |
docker exec CI_container /bin/bash -c 'cd ./Package;\
source ${{ matrix.SETUP }};\
source ${{ matrix.STACK }};\
cd build;\
ninja -k0 install;'
- name: Test
run: |
docker exec CI_container /bin/bash -c 'cd ./Package;\
source ${{ matrix.SETUP }};\
source ${{ matrix.STACK }};\
cd build;\
ninja -k0 && ctest --output-on-failure;'
- name: Prepare benchmark outputs
Expand Down
21 changes: 14 additions & 7 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
name: documentation
name: Documentation

on: [push]
on:
push:
branches:
- master

jobs:
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: cvmfs-contrib/github-action-cvmfs@v3
- uses: actions/checkout@v4
- uses: cvmfs-contrib/github-action-cvmfs@v4
- name: Start container
run: |
docker run -it --name CI_container -v ${GITHUB_WORKSPACE}:/Package -v /cvmfs:/cvmfs:shared -d ghcr.io/aidasoft/centos7:latest /bin/bash
docker run -it \
--name CI_container \
-v ${GITHUB_WORKSPACE}:/Package \
-v /cvmfs:/cvmfs:shared \
-d ghcr.io/key4hep/key4hep-images/alma9:latest /bin/bash
- name: Compile Documentation
run: |
docker exec CI_container /bin/bash -c 'cd Package
Expand All @@ -21,7 +28,7 @@ jobs:
cmake ..
make doc'
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./build/doxygen/html
Expand All @@ -37,7 +44,7 @@ jobs:
run: |
.github/scripts/man2html.sh
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./man/html
Expand Down
21 changes: 13 additions & 8 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,29 @@ jobs:
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: cvmfs-contrib/github-action-cvmfs@v3
- uses: cvmfs-contrib/github-action-cvmfs@v4
- name: Start container
run: |
docker run -it --name CI_container -v ${GITHUB_WORKSPACE}:/Package -v /cvmfs:/cvmfs:shared -d ghcr.io/aidasoft/centos7:latest /bin/bash
docker run -it --name CI_container \
-v ${GITHUB_WORKSPACE}:/Package \
-v /cvmfs:/cvmfs:shared \
-d ghcr.io/key4hep/key4hep-images/alma9:latest \
/bin/bash
- name: Add upstream
run: |
docker exec CI_container /bin/bash -c 'cd ./Package
git remote add upstream https://github.com/HEP-FCC/FCCAnalyses.git
docker exec CI_container /bin/bash -c 'cd Package; \
git config --global --add safe.directory /Package; \
git remote add upstream https://github.com/HEP-FCC/FCCAnalyses.git; \
git fetch upstream'
- name: Run formatter
run: |
docker exec CI_container /bin/bash -c 'cd ./Package
source /cvmfs/sft.cern.ch/lcg/contrib/clang/14.0.6/x86_64-centos7/setup.sh
docker exec CI_container /bin/bash -c 'cd ./Package; \
source /cvmfs/sw.hsf.org/key4hep/setup.sh;\
git clang-format --style=file $(git merge-base upstream/master HEAD)'
- name: Check cleanliness
run: |
docker exec CI_container /bin/bash -c 'cd ./Package
docker exec CI_container /bin/bash -c 'cd ./Package; \
git diff'
58 changes: 32 additions & 26 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: linux
name: 'Build and Test'

on: [push, pull_request]

Expand All @@ -8,42 +8,48 @@ jobs:
strategy:
fail-fast: false
matrix:
SETUP: ['/cvmfs/sw.hsf.org/key4hep/setup.sh', '/cvmfs/sw-nightlies.hsf.org/key4hep/setup.sh']
STACK: ['/cvmfs/sw.hsf.org/key4hep/setup.sh',
'/cvmfs/sw-nightlies.hsf.org/key4hep/setup.sh']
OS: ['alma9',
'ubuntu22']
steps:
- uses: actions/checkout@v3
- uses: cvmfs-contrib/github-action-cvmfs@v3
- uses: actions/checkout@v4
- uses: cvmfs-contrib/github-action-cvmfs@v4
- name: Start container
run: |
docker run -it --name CI_container -v ${GITHUB_WORKSPACE}:/Package -v /cvmfs:/cvmfs:shared -d ghcr.io/aidasoft/centos7:latest /bin/bash
docker run -it --name CI_container \
-v ${GITHUB_WORKSPACE}:/Package \
-v /cvmfs:/cvmfs:shared \
-d ghcr.io/key4hep/key4hep-images/${{ matrix.OS }}:latest \
/bin/bash
- name: CMake Configure
run: |
docker exec CI_container /bin/bash -c 'cd Package;\
mkdir -p build install;\
source ${{ matrix.SETUP }};\
cd build;\
cmake -DCMAKE_INSTALL_PREFIX=../install -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_FLAGS=" -fdiagnostics-color=always " -DWITH_DD4HEP=ON -DWITH_ACTS=ON -DWITH_ONNX=ON -G Ninja ..;'
docker exec CI_container /bin/bash -c 'cd Package; \
mkdir -p build install; \
source ${{ matrix.STACK }}; \
cd build; \
cmake -DCMAKE_INSTALL_PREFIX=../install -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_FLAGS=" -fdiagnostics-color=always " -DWITH_DD4HEP=ON -DWITH_ACTS=OFF -DWITH_ONNX=ON -G Ninja ..;'
- name: Compile
run: |
docker exec CI_container /bin/bash -c 'cd ./Package;\
source ${{ matrix.SETUP }};\
cd build;\
ninja -k0;'
docker exec CI_container /bin/bash -c 'cd ./Package; \
source ${{ matrix.STACK }}; \
cd build; \
ninja -k0;'
- name: Install
run: |
docker exec CI_container /bin/bash -c 'cd ./Package;\
source ${{ matrix.SETUP }};\
cd build;\
docker exec CI_container /bin/bash -c 'cd ./Package; \
source ${{ matrix.STACK }}; \
cd build; \
ninja -k0 install;'
- name: Test
run: |
docker exec CI_container /bin/bash -c 'cd ./Package;\
source ${{ matrix.SETUP }};\
cd build;\
ninja -k0 && ctest --output-on-failure;'
docker exec CI_container /bin/bash -c 'cd ./Package; \
source ${{ matrix.STACK }}; \
cd build; \
ninja -k0 && ctest --output-on-failure'
- name: Test using local Setup.sh
run: |
docker exec CI_container /bin/bash -c 'cd ./Package
source ${{ matrix.SETUP }}
source ./setup.sh
fccanalysis run examples/FCCee/higgs/mH-recoil/mumu/analysis_stage1.py --output myoutput.root --files-list root://eospublic.cern.ch//eos/experiment/fcc/ee/generation/DelphesEvents/spring2021/IDEA/p8_ee_Zbb_ecm91_EvtGen_Bc2TauNuTAUHADNU/events_131527278.root
'
docker exec CI_container /bin/bash -c 'cd ./Package; \
source ${{ matrix.STACK }}; \
source ./setup.sh; \
fccanalysis run examples/FCCee/higgs/mH-recoil/mumu/analysis_stage1.py --output myoutput.root --files-list root://eospublic.cern.ch//eos/experiment/fcc/ee/generation/DelphesEvents/spring2021/IDEA/p8_ee_Zbb_ecm91_EvtGen_Bc2TauNuTAUHADNU/events_131527278.root'
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ __pycache__/
# ROOT files
*.root

# HTCondor
# ignores <lxplus-username>.cc file in the top FCCAnalyses directory
/*.cc

# Editors
*~
.vimlocal
Expand Down Expand Up @@ -100,3 +104,7 @@ benchmark*json

# Local configuration
.fccana/*

# Graphviz graphs
*.dot
*.png
30 changes: 22 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
cmake_minimum_required(VERSION 3.16.9)


project(FCCAnalyses CXX)
project(FCCAnalyses VERSION 0.9.0
LANGUAGES CXX
)

#--- RPATH settings -----------------------------------------------------------

Expand Down Expand Up @@ -29,6 +31,9 @@ option(USE_EXTERNAL_CATCH2 "Link against an external Catch2 v3 static library, o

option(FCCANALYSES_DOCUMENTATION "Whether or not to create doxygen doc target." ON)

#--- Export compile commands --------------------------------------------------
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

#--- Set a better default for installation directory---------------------------
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_DIR}/install" CACHE PATH "default install path" FORCE)
Expand All @@ -46,17 +51,17 @@ set(INSTALL_INCLUDE_DIR include CACHE PATH

#--- Declare C++ Standard -----------------------------------------------------

set(CMAKE_CXX_STANDARD 17 CACHE STRING "")
if(NOT CMAKE_CXX_STANDARD MATCHES "17")
set(CMAKE_CXX_STANDARD 20 CACHE STRING "")
if(NOT CMAKE_CXX_STANDARD MATCHES "17|20")
message(FATAL_ERROR "Unsupported C++ standard: ${CMAKE_CXX_STANDARD}")
endif()
message (STATUS "C++ standard: ${CMAKE_CXX_STANDARD}")

#--- Dependencies -------------------------------------------------------------

find_package(ROOT COMPONENTS ROOTVecOps ROOTDataFrame REQUIRED)
find_package(EDM4HEP REQUIRED)
find_package(podio)
find_package(ROOT REQUIRED COMPONENTS ROOTVecOps ROOTDataFrame TMVA TMVAUtils)
find_package(EDM4HEP REQUIRED) # will find also podio
find_package(TBB REQUIRED COMPONENTS tbb)

# need to use our own FindFastJet.cmake
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
Expand Down Expand Up @@ -91,9 +96,15 @@ if(WITH_DD4HEP)
endif()

if(WITH_ONNX)
find_package(ONNXRuntime)
if(ONNXRuntime_FOUND)
# New onnxruntime (at least 1.17.1 and above) provide a onnxruntimeConfig.cmake
# and use the name onnxruntime
find_package(onnxruntime)
if (NOT onnxruntime_FOUND)
message(STATUS "Could not find onnxruntime (> 1.17.1). Looking for an older version")
find_package(ONNXRuntime)
endif()

if(onnxruntime_FOUND OR ONNXRuntime_FOUND)
elseif(WITH_ONNX STREQUAL AUTO)
message(WARNING "ONNXRuntime not found. Skipping ONNX-dependent analyzers.")
set(WITH_ONNX OFF)
Expand Down Expand Up @@ -140,6 +151,9 @@ install(FILES ${_man_files_1} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1
file(GLOB _man_files_7 man/man7/*.7)
install(FILES ${_man_files_7} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man7)


install(DIRECTORY examples DESTINATION ${CMAKE_INSTALL_PREFIX}/share/examples)

#--- Descend into subdirectories ----------------------------------------------

set(ADDONS_LIBRARIES CACHE STRING "List of external libraries the RDF utilities will be linked against")
Expand Down
Loading

0 comments on commit 49ea82e

Please sign in to comment.