-
-
Notifications
You must be signed in to change notification settings - Fork 6k
Adding GSI Online Offline Object Oriented (Go4) analysis framework #30301
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 10 commits
d2011b2
b2d1965
78053da
16026b1
c5a0cee
2125d9a
1d3d45a
45a8a4b
6278357
8f32b0e
5994ab4
ff07f5d
9a6fd10
1bbc01e
9f7aa7c
4a29c35
0cde1c5
f1e91a4
c1f351b
747b00f
09a8700
83cd7f3
3c76357
cc49fa7
72d701e
0f14530
eabc565
c0b33b9
3dc0f59
6446e96
4587bf0
67f50d5
ab29662
dd37f65
fa5bd61
876b711
02732c6
46527b0
938a7b5
5973ffd
f73abb3
6314eb4
eda6e81
4ec7158
a5c362e
7a814a8
ce0e756
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| #!/usr/bin/env bash | ||
|
|
||
| # preserve the user's existing setting | ||
| if [ ! -z "${GO4SYS+x}" ]; then | ||
| export CONDA_BACKUP_GO4SYS="${GO4SYS}" | ||
| fi | ||
| if [ ! -z "${ROOT_INCLUDE_PATH+x}" ]; then | ||
| export CONDA_BACKUP_ROOT_INCLUDE_PATH="${ROOT_INCLUDE_PATH}" | ||
| fi | ||
|
|
||
| export GO4SYS="${CONDA_PREFIX}" | ||
| export PYTHONPATH=$GO4SYS/python:$PYTHONPATH | ||
| export ROOT_INCLUDE_PATH="${CONDA_PREFIX}/include":$ROOT_INCLUDE_PATH |
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,29 @@ | ||||||||||
| #!/bin/bash | ||||||||||
| set -eumx -o pipefail | ||||||||||
| shopt -s failglob | ||||||||||
| shopt -s globstar | ||||||||||
|
|
||||||||||
| echo $PREFIX | ||||||||||
| echo $PKG_NAME | ||||||||||
| echo $SRC_DIR | ||||||||||
| echo $PWD | ||||||||||
| echo $BUILD_PREFIX | ||||||||||
| ls -lah $SRC_DIR | ||||||||||
|
|
||||||||||
| mkdir -p $PREFIX | ||||||||||
|
|
||||||||||
| cmake $SRC_DIR -Dexamples=OFF -DCMAKE_INSTALL_PREFIX=${PREFIX} | ||||||||||
| make -j$(nproc) | ||||||||||
| make install | ||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
This is our preferred way to invoke
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. cmake -B build -S "${SRC_DIR}" -Dexamples=OFF -DCMAKE_INSTALL_PREFIX=${PREFIX} "${CMAKE_ARGS}"
cmake --build build -j"${CPU_COUNT}"
cmake --install buildI have it now like this. Or should the
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It seems that I actually didn't apply │ │ [ 79%] Linking CXX shared library lib/libGo4AnalBase.so
│ │ $BUILD_PREFIX/bin/../libexec/gcc/x86_64-conda-linux-gnu/14.3.0/ld: cannot find /usr/lib64/libpthread_nonshared.a: No such file or directory
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I tried merging the conda-forge/staged-recipes/main branch into this one, but on my local machine it is still the same problem. |
||||||||||
|
|
||||||||||
| cd $PREFIX | ||||||||||
| CHANGES="activate deactivate" | ||||||||||
| for CHANGE in $CHANGES; do | ||||||||||
| mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" | ||||||||||
| cp "${RECIPE_DIR}/${CHANGE}-go4.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${CHANGE}-${PKG_NAME}.sh" | ||||||||||
| done | ||||||||||
|
|
||||||||||
| export PYTHONPATH="" | ||||||||||
| export ROOT_INCLUDE_PATH="" | ||||||||||
| now_change="activate" | ||||||||||
| source "${PREFIX}/etc/conda/${now_change}.d/${now_change}-${PKG_NAME}.sh" | ||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| #!/bin/bash | ||
| set -eumx -o pipefail | ||
| shopt -s globstar | ||
|
|
||
| echo $PREFIX | ||
| echo $PKG_NAME | ||
| echo $SRC_DIR | ||
| echo $PWD | ||
| echo $BUILD_PREFIX | ||
|
|
||
| pushd $PREFIX | ||
| tmp_prefixes="${BUILD_PREFIX} ${SRC_DIR}" | ||
| for replace_prefix in $tmp_prefixes; do | ||
| echo "${replace_prefix}" | ||
| sed -i "s|${replace_prefix}|${PREFIX}|g" **/*.h | ||
| sed -i "s|${replace_prefix}|${PREFIX}|g" **/*.cmake | ||
| sed -i "s|${replace_prefix}|${PREFIX}|g" **/*.txt | ||
| sed -i "s|${replace_prefix}|${PREFIX}|g" **/*Makefile* | ||
| sed -i "s|${replace_prefix}|${PREFIX}|g" go4login | ||
| done | ||
| popd |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| #!/usr/bin/env bash | ||
|
|
||
| # reinstate the backup from outside the environment | ||
| if [ ! -z "${CONDA_BACKUP_GO4SYS}" ]; then | ||
| export GO4SYS="${CONDA_BACKUP_GO4SYS}" | ||
| unset CONDA_BACKUP_GO4SYS | ||
| # no backup, just unset | ||
| else | ||
| unset GO4SYS | ||
| fi | ||
| if [ ! -z "${CONDA_BACKUP_ROOT_INCLUDE_PATH}" ]; then | ||
| export ROOT_INCLUDE_PATH="${CONDA_BACKUP_ROOT_INCLUDE_PATH}" | ||
| unset CONDA_BACKUP_ROOT_INCLUDE_PATH | ||
| # no backup, just unset | ||
| else | ||
| unset ROOT_INCLUDE_PATH | ||
| fi |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,94 @@ | ||
| context: | ||
| name: Go4 | ||
|
HLinde marked this conversation as resolved.
Outdated
|
||
| version: '6.4.1' | ||
|
|
||
| package: | ||
| name: ${{ name|lower }} | ||
|
HLinde marked this conversation as resolved.
Outdated
|
||
| version: ${{ version }} | ||
|
|
||
| source: | ||
| url: https://github.com/gsi-ee/go4//releases/download/${{ version }}/go4-${{ version }}.tar.gz | ||
| sha256: d4c4409b4a86e8686ac19a040824fc37f8ad9bdeef27545cb405b777025e12ee | ||
|
|
||
| build: | ||
| number: 0 | ||
| skip: | ||
| - win | ||
| - osx | ||
|
HLinde marked this conversation as resolved.
Outdated
|
||
| script: | ||
| - if: unix | ||
| then: | ||
| - "${RECIPE_DIR}/build.sh" | ||
| - "${RECIPE_DIR}/clean_up.sh" | ||
| dynamic_linking: | ||
| overdepending_behavior: "error" # (defaults to "ignore") | ||
| overlinking_behavior: "error" # (defaults to "ignore") | ||
|
|
||
| requirements: | ||
| build: | ||
| - cmake | ||
| - make | ||
| - ${{ compiler('c') }} | ||
| - ${{ stdlib('c') }} | ||
| - ${{ compiler('cxx') }} | ||
| - libgl-devel | ||
|
HLinde marked this conversation as resolved.
Outdated
|
||
| host: | ||
| # conda-forge pins root_base 6.32 and 6.34 as variants | ||
| # however root_base 6.32 is pinned to gcc version 13, but gcc is pinned to 14 | ||
| - root_base 6.34.* | ||
|
HLinde marked this conversation as resolved.
Outdated
|
||
| - qt | ||
| - hdf5 | ||
| - python | ||
| run: | ||
| - python | ||
|
|
||
| tests: | ||
| - package_contents: | ||
| bin: | ||
| - go4 | ||
| - go4analysis | ||
| - script: | ||
| - ./run_go4_examples.sh | ||
| files: | ||
| source: | ||
| - Go4ExampleSimple/ | ||
| - Go4ExampleUserSource/ | ||
| recipe: | ||
| - run_go4_examples.sh | ||
| requirements: | ||
| run: | ||
| - cmake | ||
| - make | ||
| # works: | ||
| - gxx | ||
| # But: | ||
| # - ${{ compiler('cxx') }} | ||
| # Doesn't work: | ||
| # │ make: g++: No such file or directory | ||
| # │ make: *** [$PREFIX/Makefile.rules:50: TXXXProc.o] Error 127 | ||
|
HLinde marked this conversation as resolved.
Outdated
|
||
|
|
||
| about: | ||
| homepage: https://www.gsi.de/en/work/research/experiment_electronics/data_processing/data_analysis/the_go4_home_page | ||
| summary: | | ||
| The object-oriented system Go4 (GSI Object Oriented On-line Off-line system) | ||
| is based on ROOT (R. Brun et al.) with the specific requirements of the low | ||
| and medium energy nuclear and atomic physics experiments implemented as extensions. | ||
| description: | | ||
| Go4 separates analysis and GUI in two tasks which could run on different nodes. | ||
| Communication is done through threads and sockets. The GUI is built with the | ||
| Qt widget library using the Qt designer. Qt and ROOT are interfaced by QtROOT. | ||
| Full ROOT functionality including menus and graphics is available without modifications. | ||
| The Go4 analysis framework provides the syntax to organize the analysis in steps | ||
| which can be controlled from the GUI. Each step has its own IO and processing classes. | ||
| The Go4 event classes can be used to construct at runtime complex (composite) events which | ||
| are stored by Go4 in trees and branches without explicit programming. The Go4 GUI includes | ||
| a browser and tree viewer which can be used without analysis to process standard ROOT files. | ||
| The tree viewer resolves arbitrary hierarchy levels of composite event trees. | ||
| license: GPL-3.0-or-later | ||
| license_file: LICENSE | ||
|
HLinde marked this conversation as resolved.
Outdated
|
||
| documentation: https://www.gsi.de/en/work/research/experiment_electronics/data_processing/data_analysis/the_go4_home_page/documentation | ||
| repository: https://github.com/gsi-ee/go4 | ||
|
|
||
| extra: | ||
| recipe-maintainers: | ||
| - HLinde | ||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,19 @@ | ||||||||||||||||||||||||||||||||||||||
| #!/bin/bash | ||||||||||||||||||||||||||||||||||||||
| set -eumx -o pipefail | ||||||||||||||||||||||||||||||||||||||
| shopt -s failglob | ||||||||||||||||||||||||||||||||||||||
| shopt -s globstar | ||||||||||||||||||||||||||||||||||||||
| echo $GO4SYS | ||||||||||||||||||||||||||||||||||||||
| echo $PREFIX | ||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||
| pushd Go4ExampleSimple | ||||||||||||||||||||||||||||||||||||||
| make clean | ||||||||||||||||||||||||||||||||||||||
| make all -j$(nproc) | ||||||||||||||||||||||||||||||||||||||
| go4analysis -random -number 100000 | ||||||||||||||||||||||||||||||||||||||
| popd | ||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||
| pushd Go4ExampleUserSource | ||||||||||||||||||||||||||||||||||||||
| make clean | ||||||||||||||||||||||||||||||||||||||
| make all -j$(nproc) | ||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Can you check if this allows you to remove
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks for the hint! It turned out, go4 doesn't read the CXX variable at all and hard-codes I patched it here in the recipe and now the tests run without any further dependencies. |
||||||||||||||||||||||||||||||||||||||
| go4analysis -user tafoil50.scf | ||||||||||||||||||||||||||||||||||||||
| go4analysis -user befoil50.scf | ||||||||||||||||||||||||||||||||||||||
| popd | ||||||||||||||||||||||||||||||||||||||
Uh oh!
There was an error while loading. Please reload this page.