From eebf54c7328aa97a56113b61c5e247f19a72fdf4 Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Sat, 9 Apr 2022 19:09:39 +0200 Subject: [PATCH 01/59] Add LHAPDF.cmake --- .github/workflows/fedora35/Dockerfile | 7 ++++ .github/workflows/fedora35/action.yaml | 15 +++++++ .github/workflows/fedora35/entrypoint.sh | 22 +++++++++++ .github/workflows/main.yml | 21 ++++++++++ cmake/Modules/FindLHAPDF.cmake | 29 ++++++++++++++ .../extended/eventgenerator/CMakeLists.txt | 3 +- .../HepMC/HepMCEx01/CMakeLists.txt | 39 ++++++++++++------- .../HepMC/HepMCEx01/external/upevnt.F | 28 +++++++++++++ .../HepMC/HepMCEx01/external/upinit.F | 26 +++++++++++++ .../HepMC/HepMCEx01/external/upveto.F | 28 +++++++++++++ .../HepMC/HepMCEx02/CMakeLists.txt | 37 +++++++++++------- .../HepMC/HepMCEx02/external/upevnt.F | 28 +++++++++++++ .../HepMC/HepMCEx02/external/upinit.F | 26 +++++++++++++ .../HepMC/HepMCEx02/external/upveto.F | 28 +++++++++++++ 14 files changed, 308 insertions(+), 29 deletions(-) create mode 100644 .github/workflows/fedora35/Dockerfile create mode 100644 .github/workflows/fedora35/action.yaml create mode 100755 .github/workflows/fedora35/entrypoint.sh create mode 100644 .github/workflows/main.yml create mode 100644 cmake/Modules/FindLHAPDF.cmake create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/external/upevnt.F create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/external/upinit.F create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/external/upveto.F create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/external/upevnt.F create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/external/upinit.F create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/external/upveto.F diff --git a/.github/workflows/fedora35/Dockerfile b/.github/workflows/fedora35/Dockerfile new file mode 100644 index 00000000000..d8e60fe5ed1 --- /dev/null +++ b/.github/workflows/fedora35/Dockerfile @@ -0,0 +1,7 @@ +FROM fedora:35 + +# Copies your code file from your action repository to the filesystem path `/` of the container +COPY entrypoint.sh /entrypoint.sh + +# Code file to execute when the docker container starts up (`entrypoint.sh`) +ENTRYPOINT ["/entrypoint.sh"] diff --git a/.github/workflows/fedora35/action.yaml b/.github/workflows/fedora35/action.yaml new file mode 100644 index 00000000000..08ca60ddc95 --- /dev/null +++ b/.github/workflows/fedora35/action.yaml @@ -0,0 +1,15 @@ +name: 'Compile GEANT4' +description: 'GEANT4' +inputs: + who-to-greet: # id of input + description: 'Set something' + required: true + default: 'Hi !' +outputs: + time: # id of output + description: 'Some result' +runs: + using: 'docker' + image: 'Dockerfile' + args: + - ${{ inputs.who-to-greet }} diff --git a/.github/workflows/fedora35/entrypoint.sh b/.github/workflows/fedora35/entrypoint.sh new file mode 100755 index 00000000000..f7a3f77dde5 --- /dev/null +++ b/.github/workflows/fedora35/entrypoint.sh @@ -0,0 +1,22 @@ +#!/bin/sh -l +set -x +uname -a +cat /etc/issue +yum -y install dnf-plugins-core +yum -y install gcc gcc-c++ gcc-gfortran make which cmake cmake-data cmake-filesystem +yum -y install HepMC3 HepMC3-devel HepMC HepMC-devel +yum -y install yum-plugin-copr +yum -y copr enable averbyts/HEPrpms +yum -y install geant4 geant4-devel clhep clhep-devel PTL-devel expat expat-devel zlib zlib-devel pythia6 lhapdf lhapdf-devel +#yum -y install pythia8-devel pythia8 pythia8-data + +export FC=gfortran +export FCFLAGS= +mkdir -p test +cd test +cmake -B. -S ../examples/extended/eventgenerator -DGeant4_DIR=/usr/lib64/Geant4-10.7.0 -DHepMC3_DIR=/usr/share/HepMC3/cmake -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC +make -j 2 + + +out=$? +echo ::set-output name=out::$out diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 00000000000..08f0cbf2833 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,21 @@ +name: build +on: + push: + pull_request: + schedule: +#Every 50 days at midnight + - cron: "0 0 1/600 * *" + +jobs: + compilejobFedora35: + if: "!contains(github.event.head_commit.message, 'skip ci')" + runs-on: ubuntu-latest + name: Geant4_on_Fedora35 + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Compile + id: compileindocker + uses: ./.github/workflows/fedora35 + - name: Get the output status + run: exit ${{ steps.compileindocker.outputs.out }} diff --git a/cmake/Modules/FindLHAPDF.cmake b/cmake/Modules/FindLHAPDF.cmake new file mode 100644 index 00000000000..bfce463ccca --- /dev/null +++ b/cmake/Modules/FindLHAPDF.cmake @@ -0,0 +1,29 @@ +# - Locate LHAPDF library +# in a directory defined via LHAPDF_ROOT_DIR or LHAPDF_DIR environment variable +# Defines: +# +# LHAPDF_FOUND +# LHAPDF_INCLUDE_DIR +# LHAPDF_INCLUDE_DIRS (not cached) +# LHAPDF_LIBRARIES + +find_path(LHAPDF_INCLUDE_DIR LHAPDF.h + HINTS $ENV{LHAPDF_ROOT_DIR}/include ${LHAPDF_ROOT_DIR}/include + $ENV{LHAPDF_DIR}/include ${LHAPDF_DIR}/include) + +find_library(LHAPDF_LIBRARIES NAMES LHAPDF + HINTS $ENV{LHAPDF_ROOT_DIR}/lib ${LHAPDF_ROOT_DIR}/lib + HINTS $ENV{LHAPDF_DIR}/lib ${LHAPDF_DIR}/lib + HINTS $ENV{LHAPDF_ROOT_DIR}/lib64 ${LHAPDF_ROOT_DIR}/lib64 + HINTS $ENV{LHAPDF_DIR}/lib64 ${LHAPDF_DIR}/lib64 + ) + + +set(LHAPDF_INCLUDE_DIRS ${LHAPDF_INCLUDE_DIR}) + +# handle the QUIETLY and REQUIRED arguments and set LHAPDF_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LHAPDF DEFAULT_MSG LHAPDF_INCLUDE_DIR LHAPDF_LIBRARIES) + +mark_as_advanced(LHAPDF_FOUND LHAPDF_INCLUDE_DIR LHAPDF_LIBRARIES) diff --git a/examples/extended/eventgenerator/CMakeLists.txt b/examples/extended/eventgenerator/CMakeLists.txt index 609a736605c..045640f3330 100644 --- a/examples/extended/eventgenerator/CMakeLists.txt +++ b/examples/extended/eventgenerator/CMakeLists.txt @@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.16...3.21) +set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules ${CMAKE_MODULE_PATH}) find_package(Geant4) include(${Geant4_USE_FILE}) @@ -24,7 +25,7 @@ endif() #---------------------------------------------------------------------------- # decayer6 example requires Pythia6 # -find_package(Pythia6 QUIET) +find_package(Pythia6) if(PYTHIA6_FOUND) add_subdirectory(pythia/decayer6) else() diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt b/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt index 3bd31fb3c6e..903beaacbda 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt @@ -24,42 +24,51 @@ include(${Geant4_USE_FILE}) # Find HepMC (required package) # find_package(HepMC REQUIRED) - +#---------------------------------------------------------------------------- +# Find LHAPDF (required package) +# +find_package(LHAPDF REQUIRED) #---------------------------------------------------------------------------- # Find Pythia6 (optional package) # find_package(Pythia6 QUIET) +SET(OLD_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE}) +SET(CMAKE_POSITION_INDEPENDENT_CODE ON) +message("Flags ${CMAKE_Fortran_FLAGS}" ) +include(CheckLanguage) +check_language(Fortran) +SET(CMAKE_POSITION_INDEPENDENT_CODE ${OLD_CMAKE_POSITION_INDEPENDENT_CODE}) if(PYTHIA6_FOUND) message(STATUS "G4 Examples: Pythia6 found. --> HepMCEx01 example with Pythia6 enabled.") - add_definitions(-DG4LIB_USE_PYTHIA) + add_definitions(-DG4LIB_USE_PYTHIA) + enable_language(Fortran) + set (generator_sources + ${PROJECT_SOURCE_DIR}/external/upevnt.F + ${PROJECT_SOURCE_DIR}/external/upinit.F + ${PROJECT_SOURCE_DIR}/external/upveto.F + ) else() set(PYTHIA6_LIBRARIES "") + set (generator_sources "") endif() #---------------------------------------------------------------------------- # Locate sources and headers for this project # -include_directories(${PROJECT_SOURCE_DIR}/include - ${Geant4_INCLUDE_DIR} - ${HEPMC_INCLUDE_DIR}) file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) #---------------------------------------------------------------------------- # Add the executable, and link it to the Geant4 libraries # -add_executable(HepMCEx01 HepMCEx01.cc ${sources} ${headers}) -#target_link_libraries(HepMCEx01 ${Geant4_LIBRARIES} -# ${HEPMC_LIBRARIES} ${HEPMC_FIO_LIBRARIES} -# ${PYTHIA6_LIBRARIES} gfortran) +add_executable(HepMCEx01 HepMCEx01.cc ${sources} ${headers} ${generator_sources}) target_link_libraries(HepMCEx01 ${Geant4_LIBRARIES} ${HEPMC_LIBRARIES} ${HEPMC_FIO_LIBRARIES} - ${PYTHIA6_LIBRARIES}) - -# if pythia is compiled with g77, link with -lg2c instead. -#target_link_libraries(HepMCEx01 ${Geant4_LIBRARIES} -# ${HEPMC_LIBRARIES} ${HEPMC_FIO_LIBRARIES} -# ${PYTHIA6_LIBRARIES} g2c) + ${PYTHIA6_LIBRARIES} ${LHAPDF_LIBRARIES}) +target_include_directories(HepMCEx01 PRIVATE ${PROJECT_SOURCE_DIR}/include + ${Geant4_INCLUDE_DIR} + ${HEPMC_INCLUDE_DIR}) +set_target_properties(HepMCEx01 PROPERTIES LINKER_LANGUAGE Fortran) #---------------------------------------------------------------------------- # Copy all scripts to the build directory, i.e. the directory in which we diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upevnt.F b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upevnt.F new file mode 100644 index 00000000000..15e72907f7b --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upevnt.F @@ -0,0 +1,28 @@ + +C********************************************************************* + +C...UPEVNT +C...Dummy routine, to be replaced by a user implementing external +C...processes. Depending on cross section model chosen, it either has +C...to generate a process of the type IDPRUP requested, or pick a type +C...itself and generate this event. The event is to be stored in the +C...HEPEUP commonblock, including (often) an event weight. + + SUBROUTINE UPEVNT + +C...Double precision and integer declarations. + IMPLICIT DOUBLE PRECISION(A-H, O-Z) + IMPLICIT INTEGER(I-N) + +C...User process event common block. + INTEGER MAXNUP + PARAMETER (MAXNUP=500) + INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP + DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP + COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP), + &ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP), + &VTIMUP(MAXNUP),SPINUP(MAXNUP) + SAVE /HEPEUP/ + + RETURN + END diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upinit.F b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upinit.F new file mode 100644 index 00000000000..6492b62b09c --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upinit.F @@ -0,0 +1,26 @@ + +C********************************************************************* + +C...UPINIT +C...Dummy routine, to be replaced by a user implementing external +C...processes. Is supposed to fill the HEPRUP commonblock with info +C...on incoming beams and allowed processes. + + SUBROUTINE UPINIT + +C...Double precision and integer declarations. + IMPLICIT DOUBLE PRECISION(A-H, O-Z) + IMPLICIT INTEGER(I-N) + +C...User process initialization commonblock. + INTEGER MAXPUP + PARAMETER (MAXPUP=100) + INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP + DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP + COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2), + &IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP), + &LPRUP(MAXPUP) + SAVE /HEPRUP/ + + RETURN + END diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upveto.F b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upveto.F new file mode 100644 index 00000000000..48af84ee02e --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upveto.F @@ -0,0 +1,28 @@ + +C********************************************************************* + +C...UPEVNT +C...Dummy routine, to be replaced by a user implementing external +C...processes. Depending on cross section model chosen, it either has +C...to generate a process of the type IDPRUP requested, or pick a type +C...itself and generate this event. The event is to be stored in the +C...HEPEUP commonblock, including (often) an event weight. + + SUBROUTINE UPVETO + +C...Double precision and integer declarations. + IMPLICIT DOUBLE PRECISION(A-H, O-Z) + IMPLICIT INTEGER(I-N) + +C...User process event common block. + INTEGER MAXNUP + PARAMETER (MAXNUP=500) + INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP + DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP + COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP), + &ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP), + &VTIMUP(MAXNUP),SPINUP(MAXNUP) + SAVE /HEPEUP/ + + RETURN + END diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt b/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt index d7f9128a5f7..afd5ce23695 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt @@ -24,42 +24,53 @@ include(${Geant4_USE_FILE}) # Find HepMC (required package) # find_package(HepMC REQUIRED) +#---------------------------------------------------------------------------- +# Find LHAPDF (required package) +# +find_package(LHAPDF REQUIRED) #---------------------------------------------------------------------------- # Find Pythia6 (optional package) # find_package(Pythia6 QUIET) +SET(OLD_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE}) +SET(CMAKE_POSITION_INDEPENDENT_CODE ON) +message("Flags ${CMAKE_Fortran_FLAGS}" ) +include(CheckLanguage) +check_language(Fortran) +SET(CMAKE_POSITION_INDEPENDENT_CODE ${OLD_CMAKE_POSITION_INDEPENDENT_CODE}) if(PYTHIA6_FOUND) message(STATUS "G4 Examples: Pythia6 found. --> HepMCEx02 example with Pythia6 enabled.") - add_definitions(-DG4LIB_USE_PYTHIA) + add_definitions(-DG4LIB_USE_PYTHIA) + enable_language(Fortran) + set (generator_sources + ${PROJECT_SOURCE_DIR}/external/upevnt.F + ${PROJECT_SOURCE_DIR}/external/upinit.F + ${PROJECT_SOURCE_DIR}/external/upveto.F + ) else() set(PYTHIA6_LIBRARIES "") + set (generator_sources "") endif() #---------------------------------------------------------------------------- # Locate sources and headers for this project # -include_directories(${PROJECT_SOURCE_DIR}/include - ${Geant4_INCLUDE_DIR} - ${HEPMC_INCLUDE_DIR}) file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) #---------------------------------------------------------------------------- # Add the executable, and link it to the Geant4 libraries # -add_executable(HepMCEx02 HepMCEx02.cc ${sources} ${headers}) -#target_link_libraries(HepMCEx02 ${Geant4_LIBRARIES} -# ${HEPMC_LIBRARIES} ${HEPMC_FIO_LIBRARIES} -# ${PYTHIA6_LIBRARIES} gfortran) +add_executable(HepMCEx02 HepMCEx02.cc ${sources} ${headers} ${generator_sources}) target_link_libraries(HepMCEx02 ${Geant4_LIBRARIES} ${HEPMC_LIBRARIES} ${HEPMC_FIO_LIBRARIES} - ${PYTHIA6_LIBRARIES}) + ${PYTHIA6_LIBRARIES} ${LHAPDF_LIBARIES}}) +target_include_directories(HepMCEx02 PRIVATE ${PROJECT_SOURCE_DIR}/include + ${Geant4_INCLUDE_DIR} + ${HEPMC_INCLUDE_DIR}) +set_target_properties(HepMCEx02 PROPERTIES LINKER_LANGUAGE Fortran) -# if pythia is compiled with g77, link with -lg2c instead. -#target_link_libraries(HepMCEx02 ${Geant4_LIBRARIES} -# ${HEPMC_LIBRARIES} ${HEPMC_FIO_LIBRARIES} -# ${PYTHIA6_LIBRARIES} g2c) #---------------------------------------------------------------------------- # Copy all scripts to the build directory, i.e. the directory in which we diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/external/upevnt.F b/examples/extended/eventgenerator/HepMC/HepMCEx02/external/upevnt.F new file mode 100644 index 00000000000..15e72907f7b --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/external/upevnt.F @@ -0,0 +1,28 @@ + +C********************************************************************* + +C...UPEVNT +C...Dummy routine, to be replaced by a user implementing external +C...processes. Depending on cross section model chosen, it either has +C...to generate a process of the type IDPRUP requested, or pick a type +C...itself and generate this event. The event is to be stored in the +C...HEPEUP commonblock, including (often) an event weight. + + SUBROUTINE UPEVNT + +C...Double precision and integer declarations. + IMPLICIT DOUBLE PRECISION(A-H, O-Z) + IMPLICIT INTEGER(I-N) + +C...User process event common block. + INTEGER MAXNUP + PARAMETER (MAXNUP=500) + INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP + DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP + COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP), + &ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP), + &VTIMUP(MAXNUP),SPINUP(MAXNUP) + SAVE /HEPEUP/ + + RETURN + END diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/external/upinit.F b/examples/extended/eventgenerator/HepMC/HepMCEx02/external/upinit.F new file mode 100644 index 00000000000..6492b62b09c --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/external/upinit.F @@ -0,0 +1,26 @@ + +C********************************************************************* + +C...UPINIT +C...Dummy routine, to be replaced by a user implementing external +C...processes. Is supposed to fill the HEPRUP commonblock with info +C...on incoming beams and allowed processes. + + SUBROUTINE UPINIT + +C...Double precision and integer declarations. + IMPLICIT DOUBLE PRECISION(A-H, O-Z) + IMPLICIT INTEGER(I-N) + +C...User process initialization commonblock. + INTEGER MAXPUP + PARAMETER (MAXPUP=100) + INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP + DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP + COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2), + &IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP), + &LPRUP(MAXPUP) + SAVE /HEPRUP/ + + RETURN + END diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/external/upveto.F b/examples/extended/eventgenerator/HepMC/HepMCEx02/external/upveto.F new file mode 100644 index 00000000000..48af84ee02e --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/external/upveto.F @@ -0,0 +1,28 @@ + +C********************************************************************* + +C...UPEVNT +C...Dummy routine, to be replaced by a user implementing external +C...processes. Depending on cross section model chosen, it either has +C...to generate a process of the type IDPRUP requested, or pick a type +C...itself and generate this event. The event is to be stored in the +C...HEPEUP commonblock, including (often) an event weight. + + SUBROUTINE UPVETO + +C...Double precision and integer declarations. + IMPLICIT DOUBLE PRECISION(A-H, O-Z) + IMPLICIT INTEGER(I-N) + +C...User process event common block. + INTEGER MAXNUP + PARAMETER (MAXNUP=500) + INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP + DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP + COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP), + &ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP), + &VTIMUP(MAXNUP),SPINUP(MAXNUP) + SAVE /HEPEUP/ + + RETURN + END From e5eda430f1db6eab31a4fa39ef8e2fd42e1c5c75 Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Sat, 9 Apr 2022 19:15:58 +0200 Subject: [PATCH 02/59] OK --- .github/workflows/fedora35/entrypoint.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/fedora35/entrypoint.sh b/.github/workflows/fedora35/entrypoint.sh index f7a3f77dde5..17e8f90a553 100755 --- a/.github/workflows/fedora35/entrypoint.sh +++ b/.github/workflows/fedora35/entrypoint.sh @@ -5,6 +5,7 @@ cat /etc/issue yum -y install dnf-plugins-core yum -y install gcc gcc-c++ gcc-gfortran make which cmake cmake-data cmake-filesystem yum -y install HepMC3 HepMC3-devel HepMC HepMC-devel +yum -y install expat-devel xerces-c-devel xerces-c yum -y install yum-plugin-copr yum -y copr enable averbyts/HEPrpms yum -y install geant4 geant4-devel clhep clhep-devel PTL-devel expat expat-devel zlib zlib-devel pythia6 lhapdf lhapdf-devel @@ -14,7 +15,7 @@ export FC=gfortran export FCFLAGS= mkdir -p test cd test -cmake -B. -S ../examples/extended/eventgenerator -DGeant4_DIR=/usr/lib64/Geant4-10.7.0 -DHepMC3_DIR=/usr/share/HepMC3/cmake -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC +cmake -B. -S ../examples/extended/eventgenerator -DGeant4_DIR=/usr/lib64/Geant4-11.0.0 -DHepMC3_DIR=/usr/share/HepMC3/cmake -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC make -j 2 From 12d29552aa3504e1de203ffaa96b6b4101d6209b Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Sat, 9 Apr 2022 19:28:41 +0200 Subject: [PATCH 03/59] OK --- examples/extended/eventgenerator/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/extended/eventgenerator/CMakeLists.txt b/examples/extended/eventgenerator/CMakeLists.txt index 045640f3330..c59e8f80a81 100644 --- a/examples/extended/eventgenerator/CMakeLists.txt +++ b/examples/extended/eventgenerator/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16...3.21) -set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules ${CMAKE_MODULE_PATH}) +set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules ${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules ${CMAKE_MODULE_PATH}) find_package(Geant4) include(${Geant4_USE_FILE}) From 5b99dcf31b22fc06ecf1c676147cc6fa03193a7d Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Sat, 9 Apr 2022 19:46:03 +0200 Subject: [PATCH 04/59] OK --- cmake/Modules/FindLHAPDF.cmake | 61 ++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 17 deletions(-) diff --git a/cmake/Modules/FindLHAPDF.cmake b/cmake/Modules/FindLHAPDF.cmake index bfce463ccca..cf0dbe2fdbd 100644 --- a/cmake/Modules/FindLHAPDF.cmake +++ b/cmake/Modules/FindLHAPDF.cmake @@ -1,29 +1,56 @@ -# - Locate LHAPDF library -# in a directory defined via LHAPDF_ROOT_DIR or LHAPDF_DIR environment variable +# - Try to find LHAPDF # Defines: # # LHAPDF_FOUND # LHAPDF_INCLUDE_DIR # LHAPDF_INCLUDE_DIRS (not cached) -# LHAPDF_LIBRARIES +# LHAPDF_LIBRARY +# LHAPDF_LIBRARIES (not cached) +# LHAPDF_LIBRARY_DIRS (not cached) -find_path(LHAPDF_INCLUDE_DIR LHAPDF.h - HINTS $ENV{LHAPDF_ROOT_DIR}/include ${LHAPDF_ROOT_DIR}/include - $ENV{LHAPDF_DIR}/include ${LHAPDF_DIR}/include) +if (LHAPDF_ROOT_DIR OR LHAPDF_DIR OR (DEFINED ENV{LHAPDF_ROOT_DIR}) OR (DEFINED ENV{LHAPDF_DIR}) ) + set(LHAPDF_SEARCH_DIRS "" CACHE STRING "" FORCE) + if (LHAPDF_ROOT_DIR) + list (APPEND LHAPDF_SEARCH_DIRS "${LHAPDF_ROOT_DIR}" ) + endif() + if (LHAPDF_DIR) + list (APPEND LHAPDF_SEARCH_DIRS "${LHAPDF_DIR}" ) + endif() + if (DEFINED EVN{LHAPDF_ROOT_DIR}) + list (APPEND LHAPDF_SEARCH_DIRS "$ENV{LHAPDF_ROOT_DIR}" ) + endif() + if (DEFINED ENV{LHAPDF_DIR}) + list (APPEND LHAPDF_SEARCH_DIRS "ENV{LHAPDF_DIR}" ) + endif() +endif() +if (LHAPDF_SEARCH_DIRS) + find_path(LHAPDF_INCLUDE_DIR LHAPDF/LHAPDF.h PATHS ${LHAPDF_SEARCH_DIRS} PATH_SUFFIXES include NO_DEFAULT_PATH) + find_library(LHAPDF_LIBRARY NAMES LHAPDF PATHS ${LHAPDF_SEARCH_DIRS} PATH_SUFFIXES lib lib64 NO_DEFAULT_PATH) +else() + find_path(LHAPDF_INCLUDE_DIR LHAPDF/LHAPDF.h PATH_SUFFIXES include) + find_library(LHAPDF_LIBRARY NAMES LHAPDF PATHS_SUFFIXES lib lib64) +endif() +set(LHAPDF_VERSION 0.0.0) +if (LHAPDF_INCLUDE_DIR) + if (EXISTS ${LHAPDF_INCLUDE_DIR}/LHAPDF/Version.h) + file(STRINGS ${LHAPDF_INCLUDE_DIR}/LHAPDF/Version.h LHAPDF_VERSION_STRING_CONTENT REGEX "^#define[ ]+LHAPDF_VERSION[ ]+\"" ) + if (LHAPDF_VERSION_STRING_CONTENT) + string(REGEX MATCH "[1234567890\.]+[a-zA-Z]*" LHAPDF_VERSION ${LHAPDF_VERSION_STRING_CONTENT}) + endif() + endif() +endif() -find_library(LHAPDF_LIBRARIES NAMES LHAPDF - HINTS $ENV{LHAPDF_ROOT_DIR}/lib ${LHAPDF_ROOT_DIR}/lib - HINTS $ENV{LHAPDF_DIR}/lib ${LHAPDF_DIR}/lib - HINTS $ENV{LHAPDF_ROOT_DIR}/lib64 ${LHAPDF_ROOT_DIR}/lib64 - HINTS $ENV{LHAPDF_DIR}/lib64 ${LHAPDF_DIR}/lib64 - ) - -set(LHAPDF_INCLUDE_DIRS ${LHAPDF_INCLUDE_DIR}) +mark_as_advanced(LHAPDF_INCLUDE_DIR LHAPDF_LIBRARY) # handle the QUIETLY and REQUIRED arguments and set LHAPDF_FOUND to TRUE if # all listed variables are TRUE -INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(LHAPDF DEFAULT_MSG LHAPDF_INCLUDE_DIR LHAPDF_LIBRARIES) +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LHAPDF DEFAULT_MSG LHAPDF_INCLUDE_DIR LHAPDF_LIBRARY) + +set(LHAPDF_LIBRARIES ${LHAPDF_LIBRARY}) +get_filename_component(LHAPDF_LIBRARY_DIRS ${LHAPDF_LIBRARY} PATH) + +set(LHAPDF_INCLUDE_DIRS ${LHAPDF_INCLUDE_DIR}) -mark_as_advanced(LHAPDF_FOUND LHAPDF_INCLUDE_DIR LHAPDF_LIBRARIES) +mark_as_advanced(LHAPDF_FOUND) From c8763a74a0bbf13d3ce007f4e7497a3415d90e73 Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Sat, 9 Apr 2022 21:03:44 +0200 Subject: [PATCH 05/59] OK --- .github/workflows/fedora35/entrypoint.sh | 6 +++--- cmake/Modules/FindPythia6.cmake | 2 +- .../extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt | 3 ++- .../extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt | 5 +++-- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/fedora35/entrypoint.sh b/.github/workflows/fedora35/entrypoint.sh index 17e8f90a553..b4ce782e232 100755 --- a/.github/workflows/fedora35/entrypoint.sh +++ b/.github/workflows/fedora35/entrypoint.sh @@ -5,17 +5,17 @@ cat /etc/issue yum -y install dnf-plugins-core yum -y install gcc gcc-c++ gcc-gfortran make which cmake cmake-data cmake-filesystem yum -y install HepMC3 HepMC3-devel HepMC HepMC-devel -yum -y install expat-devel xerces-c-devel xerces-c +yum -y install expat-devel xerces-c-devel xerces-c expat expat-devel zlib zlib-devel lhapdf lhapdf-devel yum -y install yum-plugin-copr yum -y copr enable averbyts/HEPrpms -yum -y install geant4 geant4-devel clhep clhep-devel PTL-devel expat expat-devel zlib zlib-devel pythia6 lhapdf lhapdf-devel +yum -y install geant4 geant4-devel clhep clhep-devel PTL-devel pythia6 #yum -y install pythia8-devel pythia8 pythia8-data export FC=gfortran export FCFLAGS= mkdir -p test cd test -cmake -B. -S ../examples/extended/eventgenerator -DGeant4_DIR=/usr/lib64/Geant4-11.0.0 -DHepMC3_DIR=/usr/share/HepMC3/cmake -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC +cmake -B. -S ../examples/extended/eventgenerator -DGeant4_DIR=/usr/lib64/Geant4-11.0.0 -DHepMC_DIR=/usr -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC make -j 2 diff --git a/cmake/Modules/FindPythia6.cmake b/cmake/Modules/FindPythia6.cmake index 110e934aa14..a71cae89377 100644 --- a/cmake/Modules/FindPythia6.cmake +++ b/cmake/Modules/FindPythia6.cmake @@ -6,7 +6,7 @@ # PYTHIA6_LIBRARIES find_library(PYTHIA6_LIBRARY NAMES Pythia6 pythia6-$ENV{PYTHIA6_VERSION} - HINTS $ENV{PYTHIA6} $ENV{PYTHIA6}/lib) + HINTS $ENV{PYTHIA6} $ENV{PYTHIA6}/lib $ENV{PYTHIA6}/lib64) set(PYTHIA6_LIBRARIES ${PYTHIA6_LIBRARY}) #message(STATUS PYTHIA6_LIBRARIES ${PYTHIA6_LIBRARIES} ) diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt b/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt index 903beaacbda..1fe6f853533 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt @@ -68,8 +68,9 @@ target_link_libraries(HepMCEx01 ${Geant4_LIBRARIES} target_include_directories(HepMCEx01 PRIVATE ${PROJECT_SOURCE_DIR}/include ${Geant4_INCLUDE_DIR} ${HEPMC_INCLUDE_DIR}) +if(PYTHIA6_FOUND) set_target_properties(HepMCEx01 PROPERTIES LINKER_LANGUAGE Fortran) - +endif() #---------------------------------------------------------------------------- # Copy all scripts to the build directory, i.e. the directory in which we # build HepMCEx01. This is so that we can run the executable directly because it diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt b/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt index afd5ce23695..901cc2e7b23 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt @@ -69,8 +69,9 @@ target_link_libraries(HepMCEx02 ${Geant4_LIBRARIES} target_include_directories(HepMCEx02 PRIVATE ${PROJECT_SOURCE_DIR}/include ${Geant4_INCLUDE_DIR} ${HEPMC_INCLUDE_DIR}) -set_target_properties(HepMCEx02 PROPERTIES LINKER_LANGUAGE Fortran) - +if(PYTHIA6_FOUND) + set_target_properties(HepMCEx02 PROPERTIES LINKER_LANGUAGE Fortran) +endif() #---------------------------------------------------------------------------- # Copy all scripts to the build directory, i.e. the directory in which we From 131681121601959242650a846adf160dc9c4e4cb Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Sat, 9 Apr 2022 21:08:13 +0200 Subject: [PATCH 06/59] OK --- .github/workflows/fedora35/entrypoint.sh | 2 +- cmake/Modules/FindPythia6.cmake | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/fedora35/entrypoint.sh b/.github/workflows/fedora35/entrypoint.sh index b4ce782e232..e9b1b094ac6 100755 --- a/.github/workflows/fedora35/entrypoint.sh +++ b/.github/workflows/fedora35/entrypoint.sh @@ -15,7 +15,7 @@ export FC=gfortran export FCFLAGS= mkdir -p test cd test -cmake -B. -S ../examples/extended/eventgenerator -DGeant4_DIR=/usr/lib64/Geant4-11.0.0 -DHepMC_DIR=/usr -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC +cmake -B. -S ../examples/extended/eventgenerator -DGeant4_DIR=/usr/lib64/Geant4-11.0.0 -DPYTHIA6_DIR=/usr -DHEPMC_DIR=/usr -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC make -j 2 diff --git a/cmake/Modules/FindPythia6.cmake b/cmake/Modules/FindPythia6.cmake index a71cae89377..a1c62fc440a 100644 --- a/cmake/Modules/FindPythia6.cmake +++ b/cmake/Modules/FindPythia6.cmake @@ -5,7 +5,7 @@ # PYTHIA6_FOUND # PYTHIA6_LIBRARIES -find_library(PYTHIA6_LIBRARY NAMES Pythia6 pythia6-$ENV{PYTHIA6_VERSION} +find_library(PYTHIA6_LIBRARY NAMES Pythia6 pythia6 pythia6-$ENV{PYTHIA6_VERSION} HINTS $ENV{PYTHIA6} $ENV{PYTHIA6}/lib $ENV{PYTHIA6}/lib64) set(PYTHIA6_LIBRARIES ${PYTHIA6_LIBRARY}) From 4ad10f01fc07ce62ba95fec7424baceb222d53ad Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Sat, 9 Apr 2022 21:15:14 +0200 Subject: [PATCH 07/59] OK --- .github/workflows/fedora35/entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/fedora35/entrypoint.sh b/.github/workflows/fedora35/entrypoint.sh index e9b1b094ac6..84c46fb7283 100755 --- a/.github/workflows/fedora35/entrypoint.sh +++ b/.github/workflows/fedora35/entrypoint.sh @@ -4,7 +4,7 @@ uname -a cat /etc/issue yum -y install dnf-plugins-core yum -y install gcc gcc-c++ gcc-gfortran make which cmake cmake-data cmake-filesystem -yum -y install HepMC3 HepMC3-devel HepMC HepMC-devel +yum -y install HepMC3 HepMC3-devel HepMC HepMC-devel redhat-rpm-config yum -y install expat-devel xerces-c-devel xerces-c expat expat-devel zlib zlib-devel lhapdf lhapdf-devel yum -y install yum-plugin-copr yum -y copr enable averbyts/HEPrpms From 2a191ae77a2b5608b06481f6f33a6fb14202d4ce Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Sat, 9 Apr 2022 21:30:03 +0200 Subject: [PATCH 08/59] OK --- .github/workflows/fedora35/entrypoint.sh | 2 +- .../extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt | 1 - .../extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt | 3 +-- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/fedora35/entrypoint.sh b/.github/workflows/fedora35/entrypoint.sh index 84c46fb7283..5f65880378b 100755 --- a/.github/workflows/fedora35/entrypoint.sh +++ b/.github/workflows/fedora35/entrypoint.sh @@ -15,7 +15,7 @@ export FC=gfortran export FCFLAGS= mkdir -p test cd test -cmake -B. -S ../examples/extended/eventgenerator -DGeant4_DIR=/usr/lib64/Geant4-11.0.0 -DPYTHIA6_DIR=/usr -DHEPMC_DIR=/usr -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC +cmake -B. -S ../examples/extended/eventgenerator -DGeant4_DIR=/usr/lib64/Geant4-11.0.0 -DPythia6_DIR=/usr -DHEPMC_DIR=/usr -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC make -j 2 diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt b/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt index 1fe6f853533..d0213d914fc 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt @@ -34,7 +34,6 @@ find_package(LHAPDF REQUIRED) find_package(Pythia6 QUIET) SET(OLD_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE}) SET(CMAKE_POSITION_INDEPENDENT_CODE ON) -message("Flags ${CMAKE_Fortran_FLAGS}" ) include(CheckLanguage) check_language(Fortran) SET(CMAKE_POSITION_INDEPENDENT_CODE ${OLD_CMAKE_POSITION_INDEPENDENT_CODE}) diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt b/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt index 901cc2e7b23..91c41e73961 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt @@ -35,7 +35,6 @@ find_package(LHAPDF REQUIRED) find_package(Pythia6 QUIET) SET(OLD_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE}) SET(CMAKE_POSITION_INDEPENDENT_CODE ON) -message("Flags ${CMAKE_Fortran_FLAGS}" ) include(CheckLanguage) check_language(Fortran) SET(CMAKE_POSITION_INDEPENDENT_CODE ${OLD_CMAKE_POSITION_INDEPENDENT_CODE}) @@ -65,7 +64,7 @@ file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) add_executable(HepMCEx02 HepMCEx02.cc ${sources} ${headers} ${generator_sources}) target_link_libraries(HepMCEx02 ${Geant4_LIBRARIES} ${HEPMC_LIBRARIES} ${HEPMC_FIO_LIBRARIES} - ${PYTHIA6_LIBRARIES} ${LHAPDF_LIBARIES}}) + ${PYTHIA6_LIBRARIES} ${LHAPDF_LIBARIES}) target_include_directories(HepMCEx02 PRIVATE ${PROJECT_SOURCE_DIR}/include ${Geant4_INCLUDE_DIR} ${HEPMC_INCLUDE_DIR}) From 924e0bceb8880252a4a771e04065aca173a2baae Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Sat, 9 Apr 2022 21:32:01 +0200 Subject: [PATCH 09/59] OK --- cmake/Modules/FindPythia8.cmake | 59 ++++++++++++++++++++++++--------- 1 file changed, 43 insertions(+), 16 deletions(-) diff --git a/cmake/Modules/FindPythia8.cmake b/cmake/Modules/FindPythia8.cmake index 6a5e9d2f7e1..3b709392f6c 100644 --- a/cmake/Modules/FindPythia8.cmake +++ b/cmake/Modules/FindPythia8.cmake @@ -1,24 +1,51 @@ -# Locate Pythia8 library -# in a directory defined via PYTHIA8 environment variable -# +# - Locate pythia8 library # Defines: -# PYTHIA8_FOUND -# PYTHIA8_LIBRARIES -# PYTHIA8_INCLUDES +# +# Pythia_FOUND +# PYTHIA8_VERSION +# PYTHIA8_INCLUDE_DIR +# PYTHIA8_XMLDOC_DIR +# PYTHIA8_INCLUDE_DIRS (not cached) +# PYTHIA8_LIBRARY +# PYTHIA8_hepmcinterface_LIBRARY +# PYTHIA8_lhapdfdummy_LIBRARY +# PYTHIA8_LIBRARIES (not cached) : includes 3 libraries above; not to be used if lhapdf is used +set(TEST_PYTHIA8_ROOT_DIR "" ${PYTHIA8_ROOT_DIR}) +IF(TEST_PYTHIA8_ROOT_DIR STREQUAL "") + IF(DEFINED ENV{PYTHIA8_ROOT_DIR}) + set(PYTHIA8_ROOT_DIR $ENV{PYTHIA8_ROOT_DIR}) + else() + set(PYTHIA8_ROOT_DIR "/usr") + endif() +endif() -find_library(PYTHIA8_LIBRARY NAMES pythia8 - HINTS $ENV{PYTHIA8} $ENV{PYTHIA8}/lib) +find_path(PYTHIA8_INCLUDE_DIR Pythia.h Pythia8/Pythia.h HINTS ${PYTHIA8_ROOT_DIR}/include) -set(PYTHIA8_LIBRARIES ${PYTHIA8_LIBRARY}) -#message(STATUS PYTHIA8_LIBRARIES ${PYTHIA8_LIBRARIES} ) +find_path(PYTHIA8_XMLDOC_DIR Version.xml HINTS ${PYTHIA8_ROOT_DIR}/xmldoc ${PYTHIA8_ROOT_DIR}/share/Pythia8/xmldoc ${PYTHIA8_ROOT_DIR}/share/pythia8-data/xmldoc ${PYTHIA8_ROOT_DIR}/share/doc/packages/pythia/xmldoc ) -find_path( PYTHIA8_INCLUDES Pythia8/Pythia.h - HINTS $ENV{PYTHIA8} $ENV{PYTHIA8}/include $ENV{PYTHIA8}/include/Pythia8 ) -set(PYTHIA8_INCLUDES ${PYTHIA8_INCLUDES}) +if(PYTHIA8_INCLUDE_DIR AND PYTHIA8_XMLDOC_DIR) + file(READ ${PYTHIA8_XMLDOC_DIR}/Version.xml versionstr) + string(REGEX REPLACE ".*Pythia:versionNumber.*default.*[0-9][.]([0-9]+).*" "\\1" PYTHIA8_VERSION "${versionstr}") + set(PYTHIA8_VERSION "8.${PYTHIA8_VERSION}") + find_library(PYTHIA8_LIBRARY NAMES pythia8 Pythia8 HINTS ${PYTHIA8_ROOT_DIR}/lib ${PYTHIA8_ROOT_DIR}/lib64) + find_library(PYTHIA8_lhapdfdummy_LIBRARY NAMES lhapdfdummy HINTS ${PYTHIA8_ROOT_DIR}/lib ${PYTHIA8_ROOT_DIR}/lib64) + set(PYTHIA8_INCLUDE_DIRS ${PYTHIA8_INCLUDE_DIR} ${PYTHIA8_INCLUDE_DIR}/Pythia8 ${PYTHIA8_INCLUDE_DIR}/Pythia8Plugins ) + set(PYTHIA8_LIBRARIES ${PYTHIA8_LIBRARY}) + if(PYTHIA8_VERSION VERSION_LESS 8.200) + #Is this library needed? + set(PYTHIA8_LIBRARIES ${PYTHIA8_LIBRARY} ${PYTHIA8_lhapdfdummy_LIBRARY}) + endif() + find_file(resHEPMC3 HepMC3.h PATHS ${PYTHIA8_INCLUDE_DIRS} NO_DEFAULT_PATH) + if (resHEPMC3) + set(Pythia8_HEPMC3_FOUND TRUE) + endif() +endif() -# handle the QUIETLY and REQUIRED arguments and set PYTHIA8_FOUND to TRUE if +# handle the QUIETLY and REQUIRED arguments and set Pythia8_FOUND to TRUE if # all listed variables are TRUE + INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(Pythia8 DEFAULT_MSG PYTHIA8_LIBRARIES) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Pythia8 REQUIRED_VARS PYTHIA8_INCLUDE_DIR PYTHIA8_LIBRARIES PYTHIA8_XMLDOC_DIR VERSION_VAR PYTHIA8_VERSION HANDLE_COMPONENTS) + +mark_as_advanced(Pythia8_FOUND PYTHIA8_INCLUDE_DIR PYTHIA8_LIBRARY PYTHIA8_LIBRARIES PYTHIA8_XMLDOC_DIR) -mark_as_advanced(PYTHIA8_FOUND PYTHIA8_LIBRARIES PYTHIA8_INCLUDES) From e0c921e4b3d646db713da3546fcf07ab2dc74183 Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Sat, 9 Apr 2022 21:40:15 +0200 Subject: [PATCH 10/59] OK --- examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt b/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt index 91c41e73961..05b3abada2a 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt @@ -64,7 +64,7 @@ file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) add_executable(HepMCEx02 HepMCEx02.cc ${sources} ${headers} ${generator_sources}) target_link_libraries(HepMCEx02 ${Geant4_LIBRARIES} ${HEPMC_LIBRARIES} ${HEPMC_FIO_LIBRARIES} - ${PYTHIA6_LIBRARIES} ${LHAPDF_LIBARIES}) + ${PYTHIA6_LIBRARIES} ${LHAPDF_LIBRARIES}) target_include_directories(HepMCEx02 PRIVATE ${PROJECT_SOURCE_DIR}/include ${Geant4_INCLUDE_DIR} ${HEPMC_INCLUDE_DIR}) From d434f046a9558fb5d40aed100564e4b551a2fe52 Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Sun, 10 Apr 2022 14:02:33 +0200 Subject: [PATCH 11/59] Substr --- .../eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingAction.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingAction.cc index fbf9fae20f0..a5c90e15a70 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingAction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingAction.cc @@ -70,11 +70,11 @@ void ExN04SteppingAction::UserSteppingAction(const G4Step * theStep) G4StepPoint * thePrePoint = theStep->GetPreStepPoint(); G4VPhysicalVolume * thePrePV = thePrePoint->GetPhysicalVolume(); G4String thePrePVname = thePrePV->GetName(); - if(thePrePVname(0,4)=="calo") { return; } + if(thePrePVname.substr(0,4)=="calo") { return; } G4StepPoint * thePostPoint = theStep->GetPostStepPoint(); G4VPhysicalVolume * thePostPV = thePostPoint->GetPhysicalVolume(); G4String thePostPVname = thePostPV->GetName(); - if(thePostPVname(0,4)!="calo") { return; } + if(thePostPVname.substr(0,4)!="calo") { return; } // then suspend the track theTrack->SetTrackStatus(fSuspend); From bb5678d1fb25662f395db4bd1be2aa93fe72a7ff Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Sun, 10 Apr 2022 14:17:26 +0200 Subject: [PATCH 12/59] More examples --- .../pythia/decayer6/CMakeLists.txt | 35 ++++++++++++++----- .../pythia/decayer6/src/upevnt.F | 28 +++++++++++++++ .../pythia/decayer6/src/upinit.F | 26 ++++++++++++++ .../pythia/decayer6/src/upveto.F | 28 +++++++++++++++ 4 files changed, 108 insertions(+), 9 deletions(-) create mode 100644 examples/extended/eventgenerator/pythia/decayer6/src/upevnt.F create mode 100644 examples/extended/eventgenerator/pythia/decayer6/src/upinit.F create mode 100644 examples/extended/eventgenerator/pythia/decayer6/src/upveto.F diff --git a/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt b/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt index 64c9619548b..29b675872f6 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt +++ b/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt @@ -24,17 +24,25 @@ include(${Geant4_USE_FILE}) # Find Pythia6 (required package) # find_package(Pythia6 REQUIRED) - +SET(OLD_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE}) +SET(CMAKE_POSITION_INDEPENDENT_CODE ON) +include(CheckLanguage) +check_language(Fortran) +SET(CMAKE_POSITION_INDEPENDENT_CODE ${OLD_CMAKE_POSITION_INDEPENDENT_CODE}) +#---------------------------------------------------------------------------- +# Find LHAPDF (required package) +# +find_package(LHAPDF REQUIRED) #---------------------------------------------------------------------------- # Locate sources and headers for this project # -include_directories(${PROJECT_SOURCE_DIR}/include - ${PROJECT_SOURCE_DIR}/common/include - ${Geant4_INCLUDE_DIR} - ${PYTHIA6_INCLUDE_DIR}) file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc ${PROJECT_SOURCE_DIR}/src/*.c) file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) - +set (generator_sources + ${PROJECT_SOURCE_DIR}/src/upevnt.F + ${PROJECT_SOURCE_DIR}/src/upinit.F + ${PROJECT_SOURCE_DIR}/src/upveto.F + ) #---------------------------------------------------------------------------- # Add common subdirectory # @@ -44,9 +52,18 @@ add_subdirectory(common) #---------------------------------------------------------------------------- # Add the executable, and link it to the Geant4 libraries # -add_executable(pythia6_decayer pythia6_decayer.cc ${sources} ${headers}) -target_link_libraries(pythia6_decayer ${common_prefix}common ${Geant4_LIBRARIES} ${PYTHIA6_LIBRARIES} ) - +add_executable(pythia6_decayer pythia6_decayer.cc ${sources} ${headers} ${generator_sources}) +target_link_libraries(pythia6_decayer ${common_prefix}common + ${Geant4_LIBRARIES} + ${PYTHIA6_LIBRARIES} + ${LHAPDF_LIBRARIES}) +target_include_directories(pythia6_decayer PRIVATE ${PROJECT_SOURCE_DIR}/include + ${PROJECT_SOURCE_DIR}/common/include + ${Geant4_INCLUDE_DIR} + ${PYTHIA6_INCLUDE_DIR} + ${LHAPDF_INCLUDE_DIR} + ) +set_target_properties(pythia6_decayer PROPERTIES LINKER_LANGUAGE Fortran) #---------------------------------------------------------------------------- # Copy all scripts to the build directory, i.e. the directory in which we # build decayer6. This is so that we can run the executable directly because it diff --git a/examples/extended/eventgenerator/pythia/decayer6/src/upevnt.F b/examples/extended/eventgenerator/pythia/decayer6/src/upevnt.F new file mode 100644 index 00000000000..15e72907f7b --- /dev/null +++ b/examples/extended/eventgenerator/pythia/decayer6/src/upevnt.F @@ -0,0 +1,28 @@ + +C********************************************************************* + +C...UPEVNT +C...Dummy routine, to be replaced by a user implementing external +C...processes. Depending on cross section model chosen, it either has +C...to generate a process of the type IDPRUP requested, or pick a type +C...itself and generate this event. The event is to be stored in the +C...HEPEUP commonblock, including (often) an event weight. + + SUBROUTINE UPEVNT + +C...Double precision and integer declarations. + IMPLICIT DOUBLE PRECISION(A-H, O-Z) + IMPLICIT INTEGER(I-N) + +C...User process event common block. + INTEGER MAXNUP + PARAMETER (MAXNUP=500) + INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP + DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP + COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP), + &ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP), + &VTIMUP(MAXNUP),SPINUP(MAXNUP) + SAVE /HEPEUP/ + + RETURN + END diff --git a/examples/extended/eventgenerator/pythia/decayer6/src/upinit.F b/examples/extended/eventgenerator/pythia/decayer6/src/upinit.F new file mode 100644 index 00000000000..6492b62b09c --- /dev/null +++ b/examples/extended/eventgenerator/pythia/decayer6/src/upinit.F @@ -0,0 +1,26 @@ + +C********************************************************************* + +C...UPINIT +C...Dummy routine, to be replaced by a user implementing external +C...processes. Is supposed to fill the HEPRUP commonblock with info +C...on incoming beams and allowed processes. + + SUBROUTINE UPINIT + +C...Double precision and integer declarations. + IMPLICIT DOUBLE PRECISION(A-H, O-Z) + IMPLICIT INTEGER(I-N) + +C...User process initialization commonblock. + INTEGER MAXPUP + PARAMETER (MAXPUP=100) + INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP + DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP + COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2), + &IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP), + &LPRUP(MAXPUP) + SAVE /HEPRUP/ + + RETURN + END diff --git a/examples/extended/eventgenerator/pythia/decayer6/src/upveto.F b/examples/extended/eventgenerator/pythia/decayer6/src/upveto.F new file mode 100644 index 00000000000..48af84ee02e --- /dev/null +++ b/examples/extended/eventgenerator/pythia/decayer6/src/upveto.F @@ -0,0 +1,28 @@ + +C********************************************************************* + +C...UPEVNT +C...Dummy routine, to be replaced by a user implementing external +C...processes. Depending on cross section model chosen, it either has +C...to generate a process of the type IDPRUP requested, or pick a type +C...itself and generate this event. The event is to be stored in the +C...HEPEUP commonblock, including (often) an event weight. + + SUBROUTINE UPVETO + +C...Double precision and integer declarations. + IMPLICIT DOUBLE PRECISION(A-H, O-Z) + IMPLICIT INTEGER(I-N) + +C...User process event common block. + INTEGER MAXNUP + PARAMETER (MAXNUP=500) + INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP + DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP + COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP), + &ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP), + &VTIMUP(MAXNUP),SPINUP(MAXNUP) + SAVE /HEPEUP/ + + RETURN + END From 83ab3e2d2c9c9edcf506798f1237a50996c910c6 Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Sun, 10 Apr 2022 14:23:53 +0200 Subject: [PATCH 13/59] More examples --- .github/workflows/fedora35/entrypoint.sh | 3 ++- cmake/Modules/FindPythia6.cmake | 10 +++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/fedora35/entrypoint.sh b/.github/workflows/fedora35/entrypoint.sh index 5f65880378b..046bf249b8e 100755 --- a/.github/workflows/fedora35/entrypoint.sh +++ b/.github/workflows/fedora35/entrypoint.sh @@ -6,6 +6,7 @@ yum -y install dnf-plugins-core yum -y install gcc gcc-c++ gcc-gfortran make which cmake cmake-data cmake-filesystem yum -y install HepMC3 HepMC3-devel HepMC HepMC-devel redhat-rpm-config yum -y install expat-devel xerces-c-devel xerces-c expat expat-devel zlib zlib-devel lhapdf lhapdf-devel +yum -y install pythia8-devel pythia8 pythia8-data yum -y install yum-plugin-copr yum -y copr enable averbyts/HEPrpms yum -y install geant4 geant4-devel clhep clhep-devel PTL-devel pythia6 @@ -15,7 +16,7 @@ export FC=gfortran export FCFLAGS= mkdir -p test cd test -cmake -B. -S ../examples/extended/eventgenerator -DGeant4_DIR=/usr/lib64/Geant4-11.0.0 -DPythia6_DIR=/usr -DHEPMC_DIR=/usr -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC +cmake -B. -S ../examples/extended/eventgenerator -DGeant4_DIR=/usr/lib64/Geant4-11.0.0 -DPYTHIA6_ROOT_DIR=/usr -DHEPMC_DIR=/usr -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC make -j 2 diff --git a/cmake/Modules/FindPythia6.cmake b/cmake/Modules/FindPythia6.cmake index a1c62fc440a..19cae710ce3 100644 --- a/cmake/Modules/FindPythia6.cmake +++ b/cmake/Modules/FindPythia6.cmake @@ -4,9 +4,17 @@ # Defines: # PYTHIA6_FOUND # PYTHIA6_LIBRARIES +set(TEST_PYTHIA6_ROOT_DIR "" ${PYTHIA6_ROOT_DIR}) +IF(TEST_PYTHIA6_ROOT_DIR STREQUAL "") + IF(DEFINED ENV{PYTHIA6_ROOT_DIR}) + set(PYTHIA6_ROOT_DIR $ENV{PYTHIA6_ROOT_DIR}) + else() + set(PYTHIA6_ROOT_DIR "/usr") + endif() +endif() find_library(PYTHIA6_LIBRARY NAMES Pythia6 pythia6 pythia6-$ENV{PYTHIA6_VERSION} - HINTS $ENV{PYTHIA6} $ENV{PYTHIA6}/lib $ENV{PYTHIA6}/lib64) + HINTS $ENV{PYTHIA6} $ENV{PYTHIA6}/lib $ENV{PYTHIA6}/lib64 ${PYTHIA8_ROOT_DIR}/lib ${PYTHIA8_ROOT_DIR}/lib64) set(PYTHIA6_LIBRARIES ${PYTHIA6_LIBRARY}) #message(STATUS PYTHIA6_LIBRARIES ${PYTHIA6_LIBRARIES} ) From d8d49f9a2cfa1e5e29d2d8779c07777f1222bb8f Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Sun, 10 Apr 2022 14:27:52 +0200 Subject: [PATCH 14/59] More examples --- .../eventgenerator/pythia/decayer6/CMakeLists.txt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt b/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt index 29b675872f6..e5751821a74 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt +++ b/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt @@ -24,11 +24,13 @@ include(${Geant4_USE_FILE}) # Find Pythia6 (required package) # find_package(Pythia6 REQUIRED) -SET(OLD_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE}) -SET(CMAKE_POSITION_INDEPENDENT_CODE ON) -include(CheckLanguage) -check_language(Fortran) -SET(CMAKE_POSITION_INDEPENDENT_CODE ${OLD_CMAKE_POSITION_INDEPENDENT_CODE}) +if (NOT CMAKE_Fortran_COMPILER) + SET(OLD_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE}) + SET(CMAKE_POSITION_INDEPENDENT_CODE ON) + include(CheckLanguage) + check_language(Fortran) + SET(CMAKE_POSITION_INDEPENDENT_CODE ${OLD_CMAKE_POSITION_INDEPENDENT_CODE}) +endif() #---------------------------------------------------------------------------- # Find LHAPDF (required package) # From 5e45145cf6de4bc2ceeb495ea5136a1fecee33f6 Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Sun, 10 Apr 2022 14:29:22 +0200 Subject: [PATCH 15/59] More examples --- .github/workflows/fedora35/entrypoint.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/fedora35/entrypoint.sh b/.github/workflows/fedora35/entrypoint.sh index 046bf249b8e..4df402d8375 100755 --- a/.github/workflows/fedora35/entrypoint.sh +++ b/.github/workflows/fedora35/entrypoint.sh @@ -14,11 +14,12 @@ yum -y install geant4 geant4-devel clhep clhep-devel PTL-devel pythia6 export FC=gfortran export FCFLAGS= +TOP=$(pwd) mkdir -p test cd test -cmake -B. -S ../examples/extended/eventgenerator -DGeant4_DIR=/usr/lib64/Geant4-11.0.0 -DPYTHIA6_ROOT_DIR=/usr -DHEPMC_DIR=/usr -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC +cmake -B. -S ../examples/extended/eventgenerator -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=/usr/lib64/Geant4-11.0.0 -DPYTHIA6_ROOT_DIR=/usr -DHEPMC_DIR=/usr -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC make -j 2 - +make install out=$? echo ::set-output name=out::$out From 18f71b34630d6bee026dc19195ad5e1ebb6bd846 Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Sun, 10 Apr 2022 14:41:08 +0200 Subject: [PATCH 16/59] More examples --- .../pythia/decayer6/CMakeLists.txt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt b/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt index e5751821a74..8580a57324a 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt +++ b/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt @@ -24,13 +24,13 @@ include(${Geant4_USE_FILE}) # Find Pythia6 (required package) # find_package(Pythia6 REQUIRED) -if (NOT CMAKE_Fortran_COMPILER) - SET(OLD_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE}) - SET(CMAKE_POSITION_INDEPENDENT_CODE ON) - include(CheckLanguage) - check_language(Fortran) - SET(CMAKE_POSITION_INDEPENDENT_CODE ${OLD_CMAKE_POSITION_INDEPENDENT_CODE}) -endif() +#if (NOT CMAKE_Fortran_COMPILER) +# SET(OLD_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE}) +# SET(CMAKE_POSITION_INDEPENDENT_CODE ON) +# include(CheckLanguage) +# check_language(Fortran) +# SET(CMAKE_POSITION_INDEPENDENT_CODE ${OLD_CMAKE_POSITION_INDEPENDENT_CODE}) +#endif() #---------------------------------------------------------------------------- # Find LHAPDF (required package) # @@ -65,7 +65,7 @@ target_include_directories(pythia6_decayer PRIVATE ${PROJECT_SOURCE_DIR}/include ${PYTHIA6_INCLUDE_DIR} ${LHAPDF_INCLUDE_DIR} ) -set_target_properties(pythia6_decayer PROPERTIES LINKER_LANGUAGE Fortran) +#set_target_properties(pythia6_decayer PROPERTIES LINKER_LANGUAGE Fortran) #---------------------------------------------------------------------------- # Copy all scripts to the build directory, i.e. the directory in which we # build decayer6. This is so that we can run the executable directly because it From 3944613639fdb64d46f77020fb016b3a42fff7fc Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Sun, 10 Apr 2022 14:59:04 +0200 Subject: [PATCH 17/59] More examples --- .../HepMC/HepMCEx01/CMakeLists.txt | 12 +++++++----- .../HepMC/HepMCEx02/CMakeLists.txt | 12 +++++++----- .../pythia/decayer6/CMakeLists.txt | 16 ++++++++-------- 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt b/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt index d0213d914fc..97ebb18aa27 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt @@ -32,11 +32,13 @@ find_package(LHAPDF REQUIRED) # Find Pythia6 (optional package) # find_package(Pythia6 QUIET) -SET(OLD_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE}) -SET(CMAKE_POSITION_INDEPENDENT_CODE ON) -include(CheckLanguage) -check_language(Fortran) -SET(CMAKE_POSITION_INDEPENDENT_CODE ${OLD_CMAKE_POSITION_INDEPENDENT_CODE}) +if (NOT CMAKE_Fortran_COMPILER) + SET(OLD_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE}) + SET(CMAKE_POSITION_INDEPENDENT_CODE ON) + include(CheckLanguage) + check_language(Fortran) + SET(CMAKE_POSITION_INDEPENDENT_CODE ${OLD_CMAKE_POSITION_INDEPENDENT_CODE}) +endif() if(PYTHIA6_FOUND) message(STATUS "G4 Examples: Pythia6 found. --> HepMCEx01 example with Pythia6 enabled.") add_definitions(-DG4LIB_USE_PYTHIA) diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt b/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt index 05b3abada2a..bf906e81e84 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt @@ -33,11 +33,13 @@ find_package(LHAPDF REQUIRED) # Find Pythia6 (optional package) # find_package(Pythia6 QUIET) -SET(OLD_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE}) -SET(CMAKE_POSITION_INDEPENDENT_CODE ON) -include(CheckLanguage) -check_language(Fortran) -SET(CMAKE_POSITION_INDEPENDENT_CODE ${OLD_CMAKE_POSITION_INDEPENDENT_CODE}) +if (NOT CMAKE_Fortran_COMPILER) + SET(OLD_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE}) + SET(CMAKE_POSITION_INDEPENDENT_CODE ON) + include(CheckLanguage) + check_language(Fortran) + SET(CMAKE_POSITION_INDEPENDENT_CODE ${OLD_CMAKE_POSITION_INDEPENDENT_CODE}) +endif() if(PYTHIA6_FOUND) message(STATUS "G4 Examples: Pythia6 found. --> HepMCEx02 example with Pythia6 enabled.") add_definitions(-DG4LIB_USE_PYTHIA) diff --git a/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt b/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt index 8580a57324a..e5751821a74 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt +++ b/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt @@ -24,13 +24,13 @@ include(${Geant4_USE_FILE}) # Find Pythia6 (required package) # find_package(Pythia6 REQUIRED) -#if (NOT CMAKE_Fortran_COMPILER) -# SET(OLD_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE}) -# SET(CMAKE_POSITION_INDEPENDENT_CODE ON) -# include(CheckLanguage) -# check_language(Fortran) -# SET(CMAKE_POSITION_INDEPENDENT_CODE ${OLD_CMAKE_POSITION_INDEPENDENT_CODE}) -#endif() +if (NOT CMAKE_Fortran_COMPILER) + SET(OLD_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE}) + SET(CMAKE_POSITION_INDEPENDENT_CODE ON) + include(CheckLanguage) + check_language(Fortran) + SET(CMAKE_POSITION_INDEPENDENT_CODE ${OLD_CMAKE_POSITION_INDEPENDENT_CODE}) +endif() #---------------------------------------------------------------------------- # Find LHAPDF (required package) # @@ -65,7 +65,7 @@ target_include_directories(pythia6_decayer PRIVATE ${PROJECT_SOURCE_DIR}/include ${PYTHIA6_INCLUDE_DIR} ${LHAPDF_INCLUDE_DIR} ) -#set_target_properties(pythia6_decayer PROPERTIES LINKER_LANGUAGE Fortran) +set_target_properties(pythia6_decayer PROPERTIES LINKER_LANGUAGE Fortran) #---------------------------------------------------------------------------- # Copy all scripts to the build directory, i.e. the directory in which we # build decayer6. This is so that we can run the executable directly because it From 52cfeb577da2f99d3ad719c866e6844ccb1ef019 Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Sun, 10 Apr 2022 15:09:58 +0200 Subject: [PATCH 18/59] More examples --- .../eventgenerator/HepMC/HepMCEx01/CMakeLists.txt | 9 +-------- .../eventgenerator/HepMC/HepMCEx02/CMakeLists.txt | 9 +-------- .../eventgenerator/pythia/decayer6/CMakeLists.txt | 9 +-------- 3 files changed, 3 insertions(+), 24 deletions(-) diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt b/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt index 97ebb18aa27..34a2cf6dae0 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt @@ -1,7 +1,7 @@ #---------------------------------------------------------------------------- # Setup the project cmake_minimum_required(VERSION 3.16...3.21) -project(HepMCEx01) +project(HepMCEx01 LANGUAGES C CXX Fortran ) #---------------------------------------------------------------------------- # Find Geant4 package, activating all available UI and Vis drivers by default @@ -32,13 +32,6 @@ find_package(LHAPDF REQUIRED) # Find Pythia6 (optional package) # find_package(Pythia6 QUIET) -if (NOT CMAKE_Fortran_COMPILER) - SET(OLD_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE}) - SET(CMAKE_POSITION_INDEPENDENT_CODE ON) - include(CheckLanguage) - check_language(Fortran) - SET(CMAKE_POSITION_INDEPENDENT_CODE ${OLD_CMAKE_POSITION_INDEPENDENT_CODE}) -endif() if(PYTHIA6_FOUND) message(STATUS "G4 Examples: Pythia6 found. --> HepMCEx01 example with Pythia6 enabled.") add_definitions(-DG4LIB_USE_PYTHIA) diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt b/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt index bf906e81e84..35b4629c425 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt @@ -1,7 +1,7 @@ #---------------------------------------------------------------------------- # Setup the project cmake_minimum_required(VERSION 3.16...3.21) -project(HepMCEx02) +project(HepMCEx02 LANGUAGES C CXX Fortran ) #---------------------------------------------------------------------------- # Find Geant4 package, activating all available UI and Vis drivers by default @@ -33,13 +33,6 @@ find_package(LHAPDF REQUIRED) # Find Pythia6 (optional package) # find_package(Pythia6 QUIET) -if (NOT CMAKE_Fortran_COMPILER) - SET(OLD_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE}) - SET(CMAKE_POSITION_INDEPENDENT_CODE ON) - include(CheckLanguage) - check_language(Fortran) - SET(CMAKE_POSITION_INDEPENDENT_CODE ${OLD_CMAKE_POSITION_INDEPENDENT_CODE}) -endif() if(PYTHIA6_FOUND) message(STATUS "G4 Examples: Pythia6 found. --> HepMCEx02 example with Pythia6 enabled.") add_definitions(-DG4LIB_USE_PYTHIA) diff --git a/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt b/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt index e5751821a74..576b133629d 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt +++ b/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt @@ -1,7 +1,7 @@ #---------------------------------------------------------------------------- # Setup the project cmake_minimum_required(VERSION 3.16...3.21) -project(decayer6) +project(decayer6 LANGUAGES C CXX Fortran ) #---------------------------------------------------------------------------- # Find Geant4 package, activating all available UI and Vis drivers by default @@ -24,13 +24,6 @@ include(${Geant4_USE_FILE}) # Find Pythia6 (required package) # find_package(Pythia6 REQUIRED) -if (NOT CMAKE_Fortran_COMPILER) - SET(OLD_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE}) - SET(CMAKE_POSITION_INDEPENDENT_CODE ON) - include(CheckLanguage) - check_language(Fortran) - SET(CMAKE_POSITION_INDEPENDENT_CODE ${OLD_CMAKE_POSITION_INDEPENDENT_CODE}) -endif() #---------------------------------------------------------------------------- # Find LHAPDF (required package) # From 0386efc5d6f3445b958bdf12363af977ff184ef2 Mon Sep 17 00:00:00 2001 From: andriish Date: Sat, 30 Apr 2022 12:32:10 +0200 Subject: [PATCH 19/59] Added tests explicitly --- .github/workflows/fedora35/entrypoint.sh | 29 ++++++++++++++++++------ 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/.github/workflows/fedora35/entrypoint.sh b/.github/workflows/fedora35/entrypoint.sh index 4df402d8375..f081228356d 100755 --- a/.github/workflows/fedora35/entrypoint.sh +++ b/.github/workflows/fedora35/entrypoint.sh @@ -3,14 +3,17 @@ set -x uname -a cat /etc/issue yum -y install dnf-plugins-core -yum -y install gcc gcc-c++ gcc-gfortran make which cmake cmake-data cmake-filesystem -yum -y install HepMC3 HepMC3-devel HepMC HepMC-devel redhat-rpm-config -yum -y install expat-devel xerces-c-devel xerces-c expat expat-devel zlib zlib-devel lhapdf lhapdf-devel -yum -y install pythia8-devel pythia8 pythia8-data +yum -y install gcc gcc-c++ gcc-gfortran make which cmake cmake-data cmake-filesystem +yum -y install HepMC3 HepMC3-devel HepMC HepMC-devel redhat-rpm-config +yum -y install expat-devel xerces-c-devel xerces-c expat expat-devel zlib zlib-devel lhapdf lhapdf-devel +yum -y install pythia8-devel pythia8 pythia8-data yum -y install yum-plugin-copr yum -y copr enable averbyts/HEPrpms yum -y install geant4 geant4-devel clhep clhep-devel PTL-devel pythia6 -#yum -y install pythia8-devel pythia8 pythia8-data +yum -y install clean all +#Needed for tests, large +yum -y install geant4-data +yum -y install clean all export FC=gfortran export FCFLAGS= @@ -18,8 +21,20 @@ TOP=$(pwd) mkdir -p test cd test cmake -B. -S ../examples/extended/eventgenerator -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=/usr/lib64/Geant4-11.0.0 -DPYTHIA6_ROOT_DIR=/usr -DHEPMC_DIR=/usr -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC -make -j 2 -make install +cmake --build . -j 2 +cmake --install . + +#Running tests +source /usr/bin/geant4.sh + +cd $TOP/test/HepMC/HepMCEx01 +$TOP/INSTALL/bin/HepMCEx01 hepmc_pygen.in +$TOP/INSTALL/bin/HepMCEx01 hepmc_ascii.in + +cd $TOP/test/HepMC/HepMCEx02 +$TOP/INSTALL/bin/HepMCEx02 hepmc_pygen.in +$TOP/INSTALL/bin/HepMCEx02 hepmc_ascii.in + out=$? echo ::set-output name=out::$out From c47cbc6a85f1beebbf2f28b16952c050740ed325 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Tue, 3 May 2022 16:55:53 +0200 Subject: [PATCH 20/59] First try --- .github/workflows/main.yml | 13 ++++++++++++ .github/workflows/osx/entrypoint.sh | 33 +++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100755 .github/workflows/osx/entrypoint.sh diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 08f0cbf2833..5a7a5bc0b12 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -19,3 +19,16 @@ jobs: uses: ./.github/workflows/fedora35 - name: Get the output status run: exit ${{ steps.compileindocker.outputs.out }} + + + compilejobOSX12: + runs-on: macos-12 + name: Geant4_on_OSX12 + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Compile + id: compile + run: ./.github/workflows/osx/entrypoint.sh + - name: Get the output status + run: exit ${{ steps.compile.outputs.out }} diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh new file mode 100755 index 00000000000..22f7568c7a6 --- /dev/null +++ b/.github/workflows/osx/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/sh -l +set -x +export TOP=$(pwd) +mkdir LOCAL +cd LOCAL +brew tap davidchall/hep +brew install hepmc lhapdf wget + +which gfortran-11 +if [ "$?" = "0" ]; then + export CXX=g++-11 + export CC=gcc-11 + export FC=gfortran-11 + export F77=gfortran-11 + export LD=gfortran-11 +else + export CXX=g++ + export CC=gcc + export FC=gfortran + export F77=gfortran + export LD=gfortran +fi +export CXX=clang++ +export CC=clang + +wget https://geant4-data.web.cern.ch/releases/lib_11.0.1/Darwin-clang13.0.0-Monterey.tar.gz + +TOP=$(pwd) +mkdir -p test +cd test +cmake -B. -S ../examples/extended/eventgenerator -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=/usr/lib64/Geant4-11.0.0 -DPYTHIA6_ROOT_DIR=/usr -DHEPMC_DIR=/usr -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC +cmake --build . -j 2 +cmake --install . From a05c2bb133702a67944df3fa2692fc9b5996d6d0 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Tue, 3 May 2022 17:02:50 +0200 Subject: [PATCH 21/59] Try 2 --- .github/workflows/osx/entrypoint.sh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index 22f7568c7a6..323cd967eea 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -1,10 +1,8 @@ #!/bin/sh -l set -x export TOP=$(pwd) -mkdir LOCAL -cd LOCAL brew tap davidchall/hep -brew install hepmc lhapdf wget +brew install hepmc lhapdf wget cmake coreutils which gfortran-11 if [ "$?" = "0" ]; then @@ -24,10 +22,11 @@ export CXX=clang++ export CC=clang wget https://geant4-data.web.cern.ch/releases/lib_11.0.1/Darwin-clang13.0.0-Monterey.tar.gz +tar -xzvf Darwin-clang13.0.0-Monterey.tar.gz +ls -lah -TOP=$(pwd) mkdir -p test cd test -cmake -B. -S ../examples/extended/eventgenerator -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=/usr/lib64/Geant4-11.0.0 -DPYTHIA6_ROOT_DIR=/usr -DHEPMC_DIR=/usr -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC +cmake -B. -S ../examples/extended/eventgenerator -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=$TOP/Darwin-clang13.0.0-Monterey/Geant4-11.0.1-Darwin/lib64/Geant4-11.0.1 -DPYTHIA6_ROOT_DIR=/usr/local -DHEPMC_DIR=/usr/local -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC cmake --build . -j 2 cmake --install . From b104575daacd0508dfed6dfa6c6e8b6aa958b24f Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Tue, 3 May 2022 17:14:39 +0200 Subject: [PATCH 22/59] Try 3 --- .github/workflows/osx/entrypoint.sh | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index 323cd967eea..eea03bf2689 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -21,12 +21,32 @@ fi export CXX=clang++ export CC=clang +wget https://pythia.org/download/pythia6/pythia6428-split.tgz +tar -xzvf pythia6428-split.tgz +cd pythia6428-split +gsed -i 's/pdfset.f//g' Makefile +make lib +mv libpythia.a /usr/local +cd $TOP + wget https://geant4-data.web.cern.ch/releases/lib_11.0.1/Darwin-clang13.0.0-Monterey.tar.gz tar -xzvf Darwin-clang13.0.0-Monterey.tar.gz ls -lah +source $TOP/Darwin-clang13.0.0-Monterey/Geant4-11.0.1-Darwin/bin/geant4.sh mkdir -p test cd test -cmake -B. -S ../examples/extended/eventgenerator -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=$TOP/Darwin-clang13.0.0-Monterey/Geant4-11.0.1-Darwin/lib64/Geant4-11.0.1 -DPYTHIA6_ROOT_DIR=/usr/local -DHEPMC_DIR=/usr/local -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC +cmake -B. -S ../examples/extended/eventgenerator -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=$TOP/Darwin-clang13.0.0-Monterey/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1 -DPYTHIA6_ROOT_DIR=/usr/local -DHEPMC_DIR=/usr/local -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC cmake --build . -j 2 cmake --install . + + +#Running tests + +cd $TOP/test/HepMC/HepMCEx01 +$TOP/INSTALL/bin/HepMCEx01 hepmc_pygen.in +$TOP/INSTALL/bin/HepMCEx01 hepmc_ascii.in + +cd $TOP/test/HepMC/HepMCEx02 +$TOP/INSTALL/bin/HepMCEx02 hepmc_pygen.in +$TOP/INSTALL/bin/HepMCEx02 hepmc_ascii.in From e5d4e51657eafe1f9148da6a135071ce9f9767ab Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Tue, 3 May 2022 17:24:57 +0200 Subject: [PATCH 23/59] Try 3 --- .github/workflows/osx/entrypoint.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index eea03bf2689..ef681c80872 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -3,6 +3,8 @@ set -x export TOP=$(pwd) brew tap davidchall/hep brew install hepmc lhapdf wget cmake coreutils +brew install gnu-sed +brew install gcc which gfortran-11 if [ "$?" = "0" ]; then @@ -29,6 +31,7 @@ make lib mv libpythia.a /usr/local cd $TOP +ls -lah wget https://geant4-data.web.cern.ch/releases/lib_11.0.1/Darwin-clang13.0.0-Monterey.tar.gz tar -xzvf Darwin-clang13.0.0-Monterey.tar.gz ls -lah From 71f7d75f4c0ab22c0c51e7348f4e865f4e9b2705 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Tue, 3 May 2022 17:35:17 +0200 Subject: [PATCH 24/59] Try 5 --- .github/workflows/osx/entrypoint.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index ef681c80872..532f4b12f31 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -35,11 +35,11 @@ ls -lah wget https://geant4-data.web.cern.ch/releases/lib_11.0.1/Darwin-clang13.0.0-Monterey.tar.gz tar -xzvf Darwin-clang13.0.0-Monterey.tar.gz ls -lah -source $TOP/Darwin-clang13.0.0-Monterey/Geant4-11.0.1-Darwin/bin/geant4.sh +source $TOP/Geant4-11.0.1-Darwin/bin/geant4.sh mkdir -p test cd test -cmake -B. -S ../examples/extended/eventgenerator -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=$TOP/Darwin-clang13.0.0-Monterey/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1 -DPYTHIA6_ROOT_DIR=/usr/local -DHEPMC_DIR=/usr/local -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC +cmake -B. -S ../examples/extended/eventgenerator -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=$TOP/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1 -DPYTHIA6_ROOT_DIR=/usr/local -DHEPMC_DIR=/usr/local -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC cmake --build . -j 2 cmake --install . From 0dbe950f5c61321f2bc7c2867907348a34f17f5a Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Tue, 3 May 2022 17:43:59 +0200 Subject: [PATCH 25/59] Try 6 --- .github/workflows/osx/entrypoint.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index 532f4b12f31..2ed3a6696c2 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -22,13 +22,14 @@ else fi export CXX=clang++ export CC=clang +cp /usr/local/bin/gfortran-11 /usr/local/bin/gfortran wget https://pythia.org/download/pythia6/pythia6428-split.tgz tar -xzvf pythia6428-split.tgz cd pythia6428-split gsed -i 's/pdfset.f//g' Makefile make lib -mv libpythia.a /usr/local +mv libpythia.a /usr/local/lib cd $TOP ls -lah @@ -36,6 +37,7 @@ wget https://geant4-data.web.cern.ch/releases/lib_11.0.1/Darwin-clang13.0.0-Mont tar -xzvf Darwin-clang13.0.0-Monterey.tar.gz ls -lah source $TOP/Geant4-11.0.1-Darwin/bin/geant4.sh +mkdir -p /opt/local/include mkdir -p test cd test From f448eab6f87e1e8727483d2557478849af30f058 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Tue, 3 May 2022 17:44:17 +0200 Subject: [PATCH 26/59] Try 6 --- .github/workflows/osx/entrypoint.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index 2ed3a6696c2..1b8600ea725 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -25,7 +25,7 @@ export CC=clang cp /usr/local/bin/gfortran-11 /usr/local/bin/gfortran wget https://pythia.org/download/pythia6/pythia6428-split.tgz -tar -xzvf pythia6428-split.tgz +tar -xzf pythia6428-split.tgz cd pythia6428-split gsed -i 's/pdfset.f//g' Makefile make lib @@ -34,7 +34,7 @@ cd $TOP ls -lah wget https://geant4-data.web.cern.ch/releases/lib_11.0.1/Darwin-clang13.0.0-Monterey.tar.gz -tar -xzvf Darwin-clang13.0.0-Monterey.tar.gz +tar -xzf Darwin-clang13.0.0-Monterey.tar.gz ls -lah source $TOP/Geant4-11.0.1-Darwin/bin/geant4.sh mkdir -p /opt/local/include From 5a76a8e3900515d375dbd10d8e7a35e521b1f91a Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Tue, 3 May 2022 17:56:06 +0200 Subject: [PATCH 27/59] Try 7 --- .github/workflows/osx/entrypoint.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index 1b8600ea725..85ff333a72c 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -5,6 +5,7 @@ brew tap davidchall/hep brew install hepmc lhapdf wget cmake coreutils brew install gnu-sed brew install gcc +brew install --cask xquartz which gfortran-11 if [ "$?" = "0" ]; then @@ -24,10 +25,12 @@ export CXX=clang++ export CC=clang cp /usr/local/bin/gfortran-11 /usr/local/bin/gfortran +mkdir -p pythia6428-split +cd pythia6428-split wget https://pythia.org/download/pythia6/pythia6428-split.tgz tar -xzf pythia6428-split.tgz -cd pythia6428-split gsed -i 's/pdfset.f//g' Makefile +gsed -i 's/gfortran/gfortran-11/g' Makefile make lib mv libpythia.a /usr/local/lib cd $TOP From cc334f080e31ed2754b8d69b18a696d7c61039a1 Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Tue, 3 May 2022 18:46:45 +0200 Subject: [PATCH 28/59] OK --- .github/workflows/osx/entrypoint.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index 85ff333a72c..612b773674f 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -5,6 +5,7 @@ brew tap davidchall/hep brew install hepmc lhapdf wget cmake coreutils brew install gnu-sed brew install gcc +brew install expat brew install --cask xquartz which gfortran-11 @@ -32,7 +33,7 @@ tar -xzf pythia6428-split.tgz gsed -i 's/pdfset.f//g' Makefile gsed -i 's/gfortran/gfortran-11/g' Makefile make lib -mv libpythia.a /usr/local/lib +mv libpythia.a /usr/local/lib/libpythia6.a cd $TOP ls -lah @@ -40,7 +41,8 @@ wget https://geant4-data.web.cern.ch/releases/lib_11.0.1/Darwin-clang13.0.0-Mont tar -xzf Darwin-clang13.0.0-Monterey.tar.gz ls -lah source $TOP/Geant4-11.0.1-Darwin/bin/geant4.sh -mkdir -p /opt/local/include +#mkdir -p /opt/local/include +gsed -i 's@/opt/local/@/usr/local/Cellar/expat/2.4.7/@g' Geant4-11.0.1-Darwin/lib/Geant4-11.0.1/Geant4PackageCache.cmake mkdir -p test cd test From 6d72c6cb595174437c134df4980456ae560564bc Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Tue, 3 May 2022 18:50:56 +0200 Subject: [PATCH 29/59] OK --- .github/workflows/osx/entrypoint.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index 612b773674f..84e1b1314a2 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -6,6 +6,7 @@ brew install hepmc lhapdf wget cmake coreutils brew install gnu-sed brew install gcc brew install expat +brew install libxmu brew install --cask xquartz which gfortran-11 From 4109a5a8b613d05d7d6bd128ae2fb2d4cefbea39 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Tue, 3 May 2022 19:02:15 +0200 Subject: [PATCH 30/59] Try 9 --- .github/workflows/osx/entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index 84e1b1314a2..0d44b68cc6a 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -47,7 +47,7 @@ gsed -i 's@/opt/local/@/usr/local/Cellar/expat/2.4.7/@g' Geant4-11.0.1-Darwin/l mkdir -p test cd test -cmake -B. -S ../examples/extended/eventgenerator -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=$TOP/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1 -DPYTHIA6_ROOT_DIR=/usr/local -DHEPMC_DIR=/usr/local -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC +cmake -B. -S ../examples/extended/eventgenerator -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=$TOP/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1 -DPYTHIA6_ROOT_DIR=/usr/local -DHEPMC_DIR=/usr/local -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC cmake --build . -j 2 cmake --install . From 413beff79ae8796567d75b810ab49710a9f11602 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Tue, 3 May 2022 19:17:20 +0200 Subject: [PATCH 31/59] Try 10 --- .github/workflows/osx/entrypoint.sh | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index 0d44b68cc6a..b360ac4c284 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -6,6 +6,7 @@ brew install hepmc lhapdf wget cmake coreutils brew install gnu-sed brew install gcc brew install expat +brew install pythia brew install libxmu brew install --cask xquartz @@ -41,8 +42,28 @@ ls -lah wget https://geant4-data.web.cern.ch/releases/lib_11.0.1/Darwin-clang13.0.0-Monterey.tar.gz tar -xzf Darwin-clang13.0.0-Monterey.tar.gz ls -lah + +mkdir -p Geant4-11.0.1-Darwin/share/Geant4-11.0.1/data/ +cd Geant4-11.0.1-Darwin/share/Geant4-11.0.1/data/ +wget https://geant4-data.web.cern.ch/datasets/G4NDL4.6.tar.gz +wget https://geant4-data.web.cern.ch/datasets/G4EMLOW8.0.tar.gz +wget https://geant4-data.web.cern.ch/datasets/PhotonEvaporation5.7.tar.gz +wget https://geant4-data.web.cern.ch/datasets/RadioactiveDecay5.6.tar.gz +wget https://geant4-data.web.cern.ch/datasets/G4PARTICLEXS4.0.tar.gz +wget https://geant4-data.web.cern.ch/datasets/G4PII1.3.tar.gz +wget https://geant4-data.web.cern.ch/datasets/RealSurface2.2.tar.gz +wget https://geant4-data.web.cern.ch/datasets/G4SAIDDATA2.0.tar.gz +wget https://geant4-data.web.cern.ch/datasets/data/G4ABLA3.1.tar.gz +wget https://geant4-data.web.cern.ch/datasets/data/G4INCL1.0.tar.gz +wget https://geant4-data.web.cern.ch/datasets/G4ENSDFSTATE2.3.tar.gz +tar -xzf *.tar.gz +ls -lah +cd $TOP + + +gsed -i 's@/Users/gcosmo/Software/release/install/@'$TOP'/Geant4-11.0.1-Darwin/@g' $TOP/Geant4-11.0.1-Darwin/bin/geant4.sh + source $TOP/Geant4-11.0.1-Darwin/bin/geant4.sh -#mkdir -p /opt/local/include gsed -i 's@/opt/local/@/usr/local/Cellar/expat/2.4.7/@g' Geant4-11.0.1-Darwin/lib/Geant4-11.0.1/Geant4PackageCache.cmake mkdir -p test From 79b574d38bc04bca225c5fb76b8e4486c684ad89 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Tue, 3 May 2022 19:18:26 +0200 Subject: [PATCH 32/59] Try 10 --- .github/workflows/osx/entrypoint.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index b360ac4c284..2ff1cdbea18 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -53,8 +53,8 @@ wget https://geant4-data.web.cern.ch/datasets/G4PARTICLEXS4.0.tar.gz wget https://geant4-data.web.cern.ch/datasets/G4PII1.3.tar.gz wget https://geant4-data.web.cern.ch/datasets/RealSurface2.2.tar.gz wget https://geant4-data.web.cern.ch/datasets/G4SAIDDATA2.0.tar.gz -wget https://geant4-data.web.cern.ch/datasets/data/G4ABLA3.1.tar.gz -wget https://geant4-data.web.cern.ch/datasets/data/G4INCL1.0.tar.gz +wget https://geant4-data.web.cern.ch/datasets/G4ABLA3.1.tar.gz +wget https://geant4-data.web.cern.ch/datasets/G4INCL1.0.tar.gz wget https://geant4-data.web.cern.ch/datasets/G4ENSDFSTATE2.3.tar.gz tar -xzf *.tar.gz ls -lah From a897d6a5f4ab448993c58abe99312d1740afe947 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Tue, 3 May 2022 19:30:21 +0200 Subject: [PATCH 33/59] Try 11 --- .github/workflows/osx/entrypoint.sh | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index 2ff1cdbea18..9bb13d3fee5 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -45,17 +45,17 @@ ls -lah mkdir -p Geant4-11.0.1-Darwin/share/Geant4-11.0.1/data/ cd Geant4-11.0.1-Darwin/share/Geant4-11.0.1/data/ -wget https://geant4-data.web.cern.ch/datasets/G4NDL4.6.tar.gz -wget https://geant4-data.web.cern.ch/datasets/G4EMLOW8.0.tar.gz -wget https://geant4-data.web.cern.ch/datasets/PhotonEvaporation5.7.tar.gz -wget https://geant4-data.web.cern.ch/datasets/RadioactiveDecay5.6.tar.gz -wget https://geant4-data.web.cern.ch/datasets/G4PARTICLEXS4.0.tar.gz -wget https://geant4-data.web.cern.ch/datasets/G4PII1.3.tar.gz -wget https://geant4-data.web.cern.ch/datasets/RealSurface2.2.tar.gz -wget https://geant4-data.web.cern.ch/datasets/G4SAIDDATA2.0.tar.gz -wget https://geant4-data.web.cern.ch/datasets/G4ABLA3.1.tar.gz -wget https://geant4-data.web.cern.ch/datasets/G4INCL1.0.tar.gz -wget https://geant4-data.web.cern.ch/datasets/G4ENSDFSTATE2.3.tar.gz +wget https://geant4-data.web.cern.ch/datasets/G4NDL.4.6.tar.gz +wget https://geant4-data.web.cern.ch/datasets/G4EMLOW.8.0.tar.gz +wget https://geant4-data.web.cern.ch/datasets/PhotonEvaporation.5.7.tar.gz +wget https://geant4-data.web.cern.ch/datasets/RadioactiveDecay.5.6.tar.gz +wget https://geant4-data.web.cern.ch/datasets/G4PARTICLEXS.4.0.tar.gz +wget https://geant4-data.web.cern.ch/datasets/G4PII.1.3.tar.gz +wget https://geant4-data.web.cern.ch/datasets/RealSurface.2.2.tar.gz +wget https://geant4-data.web.cern.ch/datasets/G4SAIDDATA.2.0.tar.gz +wget https://geant4-data.web.cern.ch/datasets/G4ABLA.3.1.tar.gz +wget https://geant4-data.web.cern.ch/datasets/G4INCL.1.0.tar.gz +wget https://geant4-data.web.cern.ch/datasets/G4ENSDFSTATE.2.3.tar.gz tar -xzf *.tar.gz ls -lah cd $TOP From c14c4621bda48be4d897fd8399095997430ed4f0 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Tue, 3 May 2022 19:37:56 +0200 Subject: [PATCH 34/59] Try 12 --- .github/workflows/osx/entrypoint.sh | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index 9bb13d3fee5..f2674d0e207 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -30,7 +30,7 @@ cp /usr/local/bin/gfortran-11 /usr/local/bin/gfortran mkdir -p pythia6428-split cd pythia6428-split -wget https://pythia.org/download/pythia6/pythia6428-split.tgz +wget -q https://pythia.org/download/pythia6/pythia6428-split.tgz tar -xzf pythia6428-split.tgz gsed -i 's/pdfset.f//g' Makefile gsed -i 's/gfortran/gfortran-11/g' Makefile @@ -39,23 +39,23 @@ mv libpythia.a /usr/local/lib/libpythia6.a cd $TOP ls -lah -wget https://geant4-data.web.cern.ch/releases/lib_11.0.1/Darwin-clang13.0.0-Monterey.tar.gz +wget -q https://geant4-data.web.cern.ch/releases/lib_11.0.1/Darwin-clang13.0.0-Monterey.tar.gz tar -xzf Darwin-clang13.0.0-Monterey.tar.gz ls -lah mkdir -p Geant4-11.0.1-Darwin/share/Geant4-11.0.1/data/ cd Geant4-11.0.1-Darwin/share/Geant4-11.0.1/data/ -wget https://geant4-data.web.cern.ch/datasets/G4NDL.4.6.tar.gz -wget https://geant4-data.web.cern.ch/datasets/G4EMLOW.8.0.tar.gz -wget https://geant4-data.web.cern.ch/datasets/PhotonEvaporation.5.7.tar.gz -wget https://geant4-data.web.cern.ch/datasets/RadioactiveDecay.5.6.tar.gz -wget https://geant4-data.web.cern.ch/datasets/G4PARTICLEXS.4.0.tar.gz -wget https://geant4-data.web.cern.ch/datasets/G4PII.1.3.tar.gz -wget https://geant4-data.web.cern.ch/datasets/RealSurface.2.2.tar.gz -wget https://geant4-data.web.cern.ch/datasets/G4SAIDDATA.2.0.tar.gz -wget https://geant4-data.web.cern.ch/datasets/G4ABLA.3.1.tar.gz -wget https://geant4-data.web.cern.ch/datasets/G4INCL.1.0.tar.gz -wget https://geant4-data.web.cern.ch/datasets/G4ENSDFSTATE.2.3.tar.gz +wget -q https://geant4-data.web.cern.ch/datasets/G4NDL.4.6.tar.gz +wget -q https://geant4-data.web.cern.ch/datasets/G4EMLOW.8.0.tar.gz +wget -q https://geant4-data.web.cern.ch/datasets/PhotonEvaporation.5.7.tar.gz +wget -q https://geant4-data.web.cern.ch/datasets/RadioactiveDecay.5.6.tar.gz +wget -q https://geant4-data.web.cern.ch/datasets/G4PARTICLEXS.4.0.tar.gz +wget -q https://geant4-data.web.cern.ch/datasets/G4PII.1.3.tar.gz +wget -q https://geant4-data.web.cern.ch/datasets/RealSurface.2.2.tar.gz +wget -q https://geant4-data.web.cern.ch/datasets/G4SAIDDATA.2.0.tar.gz +wget -q https://geant4-data.web.cern.ch/datasets/G4ABLA.3.1.tar.gz +wget -q https://geant4-data.web.cern.ch/datasets/G4INCL.1.0.tar.gz +wget -q https://geant4-data.web.cern.ch/datasets/G4ENSDFSTATE.2.3.tar.gz tar -xzf *.tar.gz ls -lah cd $TOP From 05b9553daf6d92c898bc770ffa053b0015cf43f0 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Tue, 3 May 2022 19:40:27 +0200 Subject: [PATCH 35/59] Try 13 --- .github/workflows/osx/entrypoint.sh | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index f2674d0e207..26b5e7f61fe 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -56,7 +56,19 @@ wget -q https://geant4-data.web.cern.ch/datasets/G4SAIDDATA.2.0.tar.gz wget -q https://geant4-data.web.cern.ch/datasets/G4ABLA.3.1.tar.gz wget -q https://geant4-data.web.cern.ch/datasets/G4INCL.1.0.tar.gz wget -q https://geant4-data.web.cern.ch/datasets/G4ENSDFSTATE.2.3.tar.gz -tar -xzf *.tar.gz + +tar -xzf G4NDL.4.6.tar.gz +tar -xzf G4EMLOW.8.0.tar.gz +tar -xzf PhotonEvaporation.5.7.tar.gz +tar -xzf RadioactiveDecay.5.6.tar.gz +tar -xzf G4PARTICLEXS.4.0.tar.gz +tar -xzf G4PII.1.3.tar.gz +tar -xzf RealSurface.2.2.tar.gz +tar -xzf G4SAIDDATA.2.0.tar.gz +tar -xzf G4ABLA.3.1.tar.gz +tar -xzf G4INCL.1.0.tar.gz +tar -xzf G4ENSDFSTATE.2.3.tar.gz + ls -lah cd $TOP From b677165c536b12d175a9189d8194439f08889d43 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Tue, 3 May 2022 19:54:37 +0200 Subject: [PATCH 36/59] Try 14 --- .github/workflows/osx/entrypoint.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index 26b5e7f61fe..6cda001d775 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -45,13 +45,13 @@ ls -lah mkdir -p Geant4-11.0.1-Darwin/share/Geant4-11.0.1/data/ cd Geant4-11.0.1-Darwin/share/Geant4-11.0.1/data/ -wget -q https://geant4-data.web.cern.ch/datasets/G4NDL.4.6.tar.gz +wget -q https://geant4-data.web.cern.ch/datasets/G4NDL.4.6.tar.gz wget -q https://geant4-data.web.cern.ch/datasets/G4EMLOW.8.0.tar.gz -wget -q https://geant4-data.web.cern.ch/datasets/PhotonEvaporation.5.7.tar.gz -wget -q https://geant4-data.web.cern.ch/datasets/RadioactiveDecay.5.6.tar.gz +wget -q https://geant4-data.web.cern.ch/datasets/G4PhotonEvaporation.5.7.tar.gz +wget -q https://geant4-data.web.cern.ch/datasets/G4RadioactiveDecay.5.6.tar.gz wget -q https://geant4-data.web.cern.ch/datasets/G4PARTICLEXS.4.0.tar.gz wget -q https://geant4-data.web.cern.ch/datasets/G4PII.1.3.tar.gz -wget -q https://geant4-data.web.cern.ch/datasets/RealSurface.2.2.tar.gz +wget -q https://geant4-data.web.cern.ch/datasets/G4RealSurface.2.2.tar.gz wget -q https://geant4-data.web.cern.ch/datasets/G4SAIDDATA.2.0.tar.gz wget -q https://geant4-data.web.cern.ch/datasets/G4ABLA.3.1.tar.gz wget -q https://geant4-data.web.cern.ch/datasets/G4INCL.1.0.tar.gz @@ -59,11 +59,11 @@ wget -q https://geant4-data.web.cern.ch/datasets/G4ENSDFSTATE.2.3.tar.gz tar -xzf G4NDL.4.6.tar.gz tar -xzf G4EMLOW.8.0.tar.gz -tar -xzf PhotonEvaporation.5.7.tar.gz -tar -xzf RadioactiveDecay.5.6.tar.gz +tar -xzf G4PhotonEvaporation.5.7.tar.gz +tar -xzf G4RadioactiveDecay.5.6.tar.gz tar -xzf G4PARTICLEXS.4.0.tar.gz tar -xzf G4PII.1.3.tar.gz -tar -xzf RealSurface.2.2.tar.gz +tar -xzf G4RealSurface.2.2.tar.gz tar -xzf G4SAIDDATA.2.0.tar.gz tar -xzf G4ABLA.3.1.tar.gz tar -xzf G4INCL.1.0.tar.gz From 60e11264bad96fcd78e1d2e70f5767c325d2afcd Mon Sep 17 00:00:00 2001 From: andriish Date: Wed, 4 May 2022 10:47:10 +0200 Subject: [PATCH 37/59] Download pythia6 --- .github/workflows/osx/entrypoint.sh | 12 +------ .../extended/eventgenerator/CMakeLists.txt | 21 +++++++++++- .../eventgenerator/CMakeLists.txt.pythia6 | 34 ++++++------------- .../pythia/decayer6/CMakeLists.txt | 1 - 4 files changed, 31 insertions(+), 37 deletions(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index 6cda001d775..2189e861589 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -28,16 +28,6 @@ export CXX=clang++ export CC=clang cp /usr/local/bin/gfortran-11 /usr/local/bin/gfortran -mkdir -p pythia6428-split -cd pythia6428-split -wget -q https://pythia.org/download/pythia6/pythia6428-split.tgz -tar -xzf pythia6428-split.tgz -gsed -i 's/pdfset.f//g' Makefile -gsed -i 's/gfortran/gfortran-11/g' Makefile -make lib -mv libpythia.a /usr/local/lib/libpythia6.a -cd $TOP - ls -lah wget -q https://geant4-data.web.cern.ch/releases/lib_11.0.1/Darwin-clang13.0.0-Monterey.tar.gz tar -xzf Darwin-clang13.0.0-Monterey.tar.gz @@ -80,7 +70,7 @@ gsed -i 's@/opt/local/@/usr/local/Cellar/expat/2.4.7/@g' Geant4-11.0.1-Darwin/l mkdir -p test cd test -cmake -B. -S ../examples/extended/eventgenerator -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=$TOP/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1 -DPYTHIA6_ROOT_DIR=/usr/local -DHEPMC_DIR=/usr/local -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC +cmake -B. -S ../examples/extended/eventgenerator -DPYTHIA6_INTERNAL=ON -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=$TOP/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1 -DHEPMC_DIR=/usr/local -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC cmake --build . -j 2 cmake --install . diff --git a/examples/extended/eventgenerator/CMakeLists.txt b/examples/extended/eventgenerator/CMakeLists.txt index c59e8f80a81..894241784a6 100644 --- a/examples/extended/eventgenerator/CMakeLists.txt +++ b/examples/extended/eventgenerator/CMakeLists.txt @@ -25,13 +25,32 @@ endif() #---------------------------------------------------------------------------- # decayer6 example requires Pythia6 # +option(PYTHIA6_INTERNAL "Download and compile Pythia6" OFF) find_package(Pythia6) -if(PYTHIA6_FOUND) +if(PYTHIA6_FOUND OR PYTHIA6_INTERNAL) + if (PYTHIA6_INTERNAL) + message(STATUS "Pythia6 will be downloaded and compiled") + include(FetchContent) + FetchContent_Declare( + p6 + URL https://pythia.org/download/pythia6/pythia6428-split.tgz + URL_HASH MD5=5391da11b95aa1d90600bc69da4f84cd + ) + FetchContent_GetProperties(p6) + if (NOT p6_POPULATED) + FetchContent_Populate(p6) + endif() + file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt.pythia6 DESTINATION ${p6_SOURCE_DIR}) + file(RENAME ${p6_SOURCE_DIR}/CMakeLists.txt.pythia6 ${p6_SOURCE_DIR}/CMakeLists.txt) + add_subdirectory(${p6_SOURCE_DIR} ${p6_BINARY_DIR}) + set(PYTHIA6_LIBRARIES G4Pythia6) + endif() add_subdirectory(pythia/decayer6) else() message(STATUS "G4 Examples: Pythia6 package not found. --> decayer6 example disabled.") endif() + #---------------------------------------------------------------------------- # py8decayer example requires Pythia8 # diff --git a/examples/extended/eventgenerator/CMakeLists.txt.pythia6 b/examples/extended/eventgenerator/CMakeLists.txt.pythia6 index 4242aacc612..ea73f96a686 100644 --- a/examples/extended/eventgenerator/CMakeLists.txt.pythia6 +++ b/examples/extended/eventgenerator/CMakeLists.txt.pythia6 @@ -1,35 +1,21 @@ -# CMake configuration file for building Pythia6 from the source -# downloaded from the PYTHIA6 download site: -# http://www.hepforge.org/downloads/pythia6 -# -# To build Pythia6 library: -# % cd mydir -# % mkdir pythia6_source -# % mkdir pythia6_build -# % mkdir pythia6 -# % cp CMakeLists.txt.pythia6 pythia6_source/CMakeLists.txt -# % cp pythia6-version.f pythia6_source -# % cd pythia6_build -# % cmake -DCMAKE_INSTALL_PREFIX=../pythia6 ../pythia6_source -# % make -# % make install - -#---------------------------------------------------------------------------- -# Setup the project -cmake_minimum_required(VERSION 3.16...3.21) -project(pythia6 Fortran) - #---------------------------------------------------------------------------- # Locate sources and headers for this project # -file(GLOB sources ${PROJECT_SOURCE_DIR}/*.f) +# file(GLOB sources ${CMAKE_CURRENT_SOURCE_DIR}/*.f) +#AV The original line from pythia6. We do not use pdfset.f as we link with LHAPDF +#SRCS := $(wildcard py*.f) $(wildcard struct*.f) $(wildcard up*.f) ssmssm.f sugra.f visaje.f $(wildcard fh*.f) pdfset.f +enable_language(Fortran) +file(GLOB py_sources ${CMAKE_CURRENT_SOURCE_DIR}/py*.f) +file(GLOB struct_sources ${CMAKE_CURRENT_SOURCE_DIR}/struct*.f) +file(GLOB up_sources ${CMAKE_CURRENT_SOURCE_DIR}/up*.f) +file(GLOB fh_sources ${CMAKE_CURRENT_SOURCE_DIR}/fh*.f) #---------------------------------------------------------------------------- # Add library # -add_library(Pythia6 SHARED ${sources}) +add_library(Pythia6 SHARED ${py_sources} ${struct_sources} ${up_sources} ${fh_sources} ${CMAKE_CURRENT_SOURCE_DIR}/ssmssm.f ${CMAKE_CURRENT_SOURCE_DIR}/sugra.f ${CMAKE_CURRENT_SOURCE_DIR}/visaje.f) #---------------------------------------------------------------------------- # Install library # -install(TARGETS Pythia6 DESTINATION lib) +install(TARGETS G4Pythia6 DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff --git a/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt b/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt index 576b133629d..7c7abbe3cf0 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt +++ b/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt @@ -55,7 +55,6 @@ target_link_libraries(pythia6_decayer ${common_prefix}common target_include_directories(pythia6_decayer PRIVATE ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/common/include ${Geant4_INCLUDE_DIR} - ${PYTHIA6_INCLUDE_DIR} ${LHAPDF_INCLUDE_DIR} ) set_target_properties(pythia6_decayer PROPERTIES LINKER_LANGUAGE Fortran) From 9ca115fbcb5d39a6d3270df678c8f1cbc59c165f Mon Sep 17 00:00:00 2001 From: andriish Date: Wed, 4 May 2022 12:09:28 +0200 Subject: [PATCH 38/59] Update CMakeLists.txt.pythia6 --- examples/extended/eventgenerator/CMakeLists.txt.pythia6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/extended/eventgenerator/CMakeLists.txt.pythia6 b/examples/extended/eventgenerator/CMakeLists.txt.pythia6 index ea73f96a686..2614afd4fec 100644 --- a/examples/extended/eventgenerator/CMakeLists.txt.pythia6 +++ b/examples/extended/eventgenerator/CMakeLists.txt.pythia6 @@ -13,7 +13,7 @@ file(GLOB fh_sources ${CMAKE_CURRENT_SOURCE_DIR}/fh*.f) #---------------------------------------------------------------------------- # Add library # -add_library(Pythia6 SHARED ${py_sources} ${struct_sources} ${up_sources} ${fh_sources} ${CMAKE_CURRENT_SOURCE_DIR}/ssmssm.f ${CMAKE_CURRENT_SOURCE_DIR}/sugra.f ${CMAKE_CURRENT_SOURCE_DIR}/visaje.f) +add_library(G4Pythia6 SHARED ${py_sources} ${struct_sources} ${up_sources} ${fh_sources} ${CMAKE_CURRENT_SOURCE_DIR}/ssmssm.f ${CMAKE_CURRENT_SOURCE_DIR}/sugra.f ${CMAKE_CURRENT_SOURCE_DIR}/visaje.f) #---------------------------------------------------------------------------- # Install library From 728a5b07c0cc67a2053ca7ffce2445b64f93a56d Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Wed, 4 May 2022 12:48:46 +0200 Subject: [PATCH 39/59] Conditions --- .../extended/eventgenerator/pythia/decayer6/CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt b/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt index 7c7abbe3cf0..cce3a21b9bc 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt +++ b/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt @@ -23,7 +23,9 @@ include(${Geant4_USE_FILE}) #---------------------------------------------------------------------------- # Find Pythia6 (required package) # -find_package(Pythia6 REQUIRED) +if (NOT PYTHIA6_INTERNAL) + find_package(Pythia6 REQUIRED) +endif() #---------------------------------------------------------------------------- # Find LHAPDF (required package) # From 64b5f3a1de4624d19db2680ddc8a519500856ab0 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Wed, 4 May 2022 13:07:45 +0200 Subject: [PATCH 40/59] Conditions --- .../extended/eventgenerator/CMakeLists.txt.pythia6 | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/examples/extended/eventgenerator/CMakeLists.txt.pythia6 b/examples/extended/eventgenerator/CMakeLists.txt.pythia6 index 2614afd4fec..ebefe9b872c 100644 --- a/examples/extended/eventgenerator/CMakeLists.txt.pythia6 +++ b/examples/extended/eventgenerator/CMakeLists.txt.pythia6 @@ -13,7 +13,15 @@ file(GLOB fh_sources ${CMAKE_CURRENT_SOURCE_DIR}/fh*.f) #---------------------------------------------------------------------------- # Add library # -add_library(G4Pythia6 SHARED ${py_sources} ${struct_sources} ${up_sources} ${fh_sources} ${CMAKE_CURRENT_SOURCE_DIR}/ssmssm.f ${CMAKE_CURRENT_SOURCE_DIR}/sugra.f ${CMAKE_CURRENT_SOURCE_DIR}/visaje.f) +add_library(G4Pythia6 SHARED ${py_sources} + ${struct_sources} + ${up_sources} + ${fh_sources} + ${CMAKE_CURRENT_SOURCE_DIR}/ssmssm.f + ${CMAKE_CURRENT_SOURCE_DIR}/sugra.f + ${CMAKE_CURRENT_SOURCE_DIR}/visaje.f + ${CMAKE_CURRENT_SOURCE_DIR}/pdfset.f + ) #---------------------------------------------------------------------------- # Install library From 071fc14f4dc700b22263fca0205c0adc0606066f Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Wed, 4 May 2022 13:28:45 +0200 Subject: [PATCH 41/59] OK --- .github/workflows/osx/entrypoint.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index 2189e861589..5b7c5689bad 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -66,17 +66,17 @@ cd $TOP gsed -i 's@/Users/gcosmo/Software/release/install/@'$TOP'/Geant4-11.0.1-Darwin/@g' $TOP/Geant4-11.0.1-Darwin/bin/geant4.sh source $TOP/Geant4-11.0.1-Darwin/bin/geant4.sh -gsed -i 's@/opt/local/@/usr/local/Cellar/expat/2.4.7/@g' Geant4-11.0.1-Darwin/lib/Geant4-11.0.1/Geant4PackageCache.cmake +gsed -i 's@/opt/local/@/usr/local/Cellar/expat/2.4.7/@g' $TOP/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1/Geant4PackageCache.cmake -mkdir -p test -cd test +mkdir -p $TOP/test +cd $TOP/test cmake -B. -S ../examples/extended/eventgenerator -DPYTHIA6_INTERNAL=ON -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=$TOP/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1 -DHEPMC_DIR=/usr/local -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC cmake --build . -j 2 cmake --install . #Running tests - +find $TOP | grep hepmc_pygen.in cd $TOP/test/HepMC/HepMCEx01 $TOP/INSTALL/bin/HepMCEx01 hepmc_pygen.in $TOP/INSTALL/bin/HepMCEx01 hepmc_ascii.in From 6435d3088dbc17c5d681051a5e6cedcdd9f31461 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Wed, 4 May 2022 13:44:47 +0200 Subject: [PATCH 42/59] OK --- .github/workflows/osx/entrypoint.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index 5b7c5689bad..83a4611e580 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -33,8 +33,8 @@ wget -q https://geant4-data.web.cern.ch/releases/lib_11.0.1/Darwin-clang13.0.0- tar -xzf Darwin-clang13.0.0-Monterey.tar.gz ls -lah -mkdir -p Geant4-11.0.1-Darwin/share/Geant4-11.0.1/data/ -cd Geant4-11.0.1-Darwin/share/Geant4-11.0.1/data/ +mkdir -p $TOP/Geant4-11.0.1-Darwin/share/Geant4-11.0.1/data/ +cd $TOP/Geant4-11.0.1-Darwin/share/Geant4-11.0.1/data/ wget -q https://geant4-data.web.cern.ch/datasets/G4NDL.4.6.tar.gz wget -q https://geant4-data.web.cern.ch/datasets/G4EMLOW.8.0.tar.gz wget -q https://geant4-data.web.cern.ch/datasets/G4PhotonEvaporation.5.7.tar.gz @@ -69,18 +69,18 @@ source $TOP/Geant4-11.0.1-Darwin/bin/geant4.sh gsed -i 's@/opt/local/@/usr/local/Cellar/expat/2.4.7/@g' $TOP/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1/Geant4PackageCache.cmake mkdir -p $TOP/test -cd $TOP/test -cmake -B. -S ../examples/extended/eventgenerator -DPYTHIA6_INTERNAL=ON -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=$TOP/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1 -DHEPMC_DIR=/usr/local -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC -cmake --build . -j 2 -cmake --install . +cmake -B $TOP/test -S $TOP/examples/extended/eventgenerator -DPYTHIA6_INTERNAL=ON -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=$TOP/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1 -DHEPMC_DIR=/usr/local -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC +cmake --build $TOP/test -j 2 +cmake --install $TOP/test #Running tests +pwd find $TOP | grep hepmc_pygen.in -cd $TOP/test/HepMC/HepMCEx01 +cd $TOP/examples/extended/eventgenerator/HepMC/HepMCEx01 $TOP/INSTALL/bin/HepMCEx01 hepmc_pygen.in $TOP/INSTALL/bin/HepMCEx01 hepmc_ascii.in -cd $TOP/test/HepMC/HepMCEx02 +cd $TOP/examples/extended/eventgenerator/HepMC/HepMCEx02 $TOP/INSTALL/bin/HepMCEx02 hepmc_pygen.in $TOP/INSTALL/bin/HepMCEx02 hepmc_ascii.in From 5dc38005574527e94def4c6f23868cbdd717d4af Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Wed, 4 May 2022 14:21:04 +0200 Subject: [PATCH 43/59] OK --- .github/workflows/osx/entrypoint.sh | 34 +++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index 83a4611e580..396b5b9961f 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -2,13 +2,43 @@ set -x export TOP=$(pwd) brew tap davidchall/hep -brew install hepmc lhapdf wget cmake coreutils +brew install lhapdf wget cmake coreutils brew install gnu-sed brew install gcc brew install expat brew install pythia brew install libxmu -brew install --cask xquartz +#brew install --cask xquartz + +cat < hepmc2.rb +class Hepmc2 < Formula + desc "C++ event record for Monte Carlo generators" + homepage "https://hepmc.web.cern.ch/" + url "https://gitlab.cern.ch/hepmc/HepMC/-/archive/2.06.11/HepMC-2.06.11.tar.gz" + sha256 "ceaced62d39e4e2a1469fa2f20662d4d370279b3209930250766db02f44ae8de" + + option "with-test", "Test during installation" + + depends_on "cmake" => :build + + def install + mkdir "../build" do + system "cmake", buildpath, "-Dmomentum:STRING=GEV", "-Dlength:STRING=MM", *std_cmake_args + system "make" + system "make", "test" if build.with? "test" + system "make", "install" + end + end + + test do + cp_r share/"HepMC/examples/.", testpath + system "make", "example_BuildEventFromScratch.exe" + system "./example_BuildEventFromScratch.exe" + end +end +EOF + +brew install --build-from-source hepmc2.rb which gfortran-11 if [ "$?" = "0" ]; then From 2699cf234bebcb3ae61e040de4b657e520884320 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Wed, 4 May 2022 14:27:18 +0200 Subject: [PATCH 44/59] OK --- .github/workflows/osx/entrypoint.sh | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index 396b5b9961f..459208cf093 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -8,7 +8,6 @@ brew install gcc brew install expat brew install pythia brew install libxmu -#brew install --cask xquartz cat < hepmc2.rb class Hepmc2 < Formula @@ -38,7 +37,7 @@ class Hepmc2 < Formula end EOF -brew install --build-from-source hepmc2.rb +brew install --build-from-source ./hepmc2.rb which gfortran-11 if [ "$?" = "0" ]; then @@ -63,8 +62,8 @@ wget -q https://geant4-data.web.cern.ch/releases/lib_11.0.1/Darwin-clang13.0.0- tar -xzf Darwin-clang13.0.0-Monterey.tar.gz ls -lah -mkdir -p $TOP/Geant4-11.0.1-Darwin/share/Geant4-11.0.1/data/ -cd $TOP/Geant4-11.0.1-Darwin/share/Geant4-11.0.1/data/ +mkdir -p Geant4-11.0.1-Darwin/share/Geant4-11.0.1/data/ +cd Geant4-11.0.1-Darwin/share/Geant4-11.0.1/data/ wget -q https://geant4-data.web.cern.ch/datasets/G4NDL.4.6.tar.gz wget -q https://geant4-data.web.cern.ch/datasets/G4EMLOW.8.0.tar.gz wget -q https://geant4-data.web.cern.ch/datasets/G4PhotonEvaporation.5.7.tar.gz @@ -96,21 +95,21 @@ cd $TOP gsed -i 's@/Users/gcosmo/Software/release/install/@'$TOP'/Geant4-11.0.1-Darwin/@g' $TOP/Geant4-11.0.1-Darwin/bin/geant4.sh source $TOP/Geant4-11.0.1-Darwin/bin/geant4.sh -gsed -i 's@/opt/local/@/usr/local/Cellar/expat/2.4.7/@g' $TOP/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1/Geant4PackageCache.cmake +gsed -i 's@/opt/local/@/usr/local/Cellar/expat/2.4.7/@g' Geant4-11.0.1-Darwin/lib/Geant4-11.0.1/Geant4PackageCache.cmake -mkdir -p $TOP/test -cmake -B $TOP/test -S $TOP/examples/extended/eventgenerator -DPYTHIA6_INTERNAL=ON -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=$TOP/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1 -DHEPMC_DIR=/usr/local -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC -cmake --build $TOP/test -j 2 -cmake --install $TOP/test +mkdir -p test +cd test +cmake -B. -S ../examples/extended/eventgenerator -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=$TOP/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1 -DPYTHIA6_ROOT_DIR=/usr/local -DHEPMC_DIR=/usr/local -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC +cmake --build . -j 2 +cmake --install . #Running tests -pwd -find $TOP | grep hepmc_pygen.in -cd $TOP/examples/extended/eventgenerator/HepMC/HepMCEx01 + +cd $TOP/test/HepMC/HepMCEx01 $TOP/INSTALL/bin/HepMCEx01 hepmc_pygen.in $TOP/INSTALL/bin/HepMCEx01 hepmc_ascii.in -cd $TOP/examples/extended/eventgenerator/HepMC/HepMCEx02 +cd $TOP/test/HepMC/HepMCEx02 $TOP/INSTALL/bin/HepMCEx02 hepmc_pygen.in $TOP/INSTALL/bin/HepMCEx02 hepmc_ascii.in From a9020125ea71dcacabfe2d0a0234642c4442b753 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Wed, 4 May 2022 14:35:13 +0200 Subject: [PATCH 45/59] OK --- .github/workflows/osx/entrypoint.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index 459208cf093..bbb8e469dea 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -9,7 +9,8 @@ brew install expat brew install pythia brew install libxmu -cat < hepmc2.rb +mkdir Formula +cat < Formula/hepmc2.rb class Hepmc2 < Formula desc "C++ event record for Monte Carlo generators" homepage "https://hepmc.web.cern.ch/" @@ -37,7 +38,7 @@ class Hepmc2 < Formula end EOF -brew install --build-from-source ./hepmc2.rb +brew install --build-from-source ./Formula/hepmc2.rb which gfortran-11 if [ "$?" = "0" ]; then From 3a59798cffb8dc95cdeceb75345a39b65e741489 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Wed, 4 May 2022 14:57:39 +0200 Subject: [PATCH 46/59] Add --- .github/workflows/osx/entrypoint.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index bbb8e469dea..e001e817eed 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -8,6 +8,7 @@ brew install gcc brew install expat brew install pythia brew install libxmu +brew install --cask xquartz mkdir Formula cat < Formula/hepmc2.rb From 52358e1e36837133935a19228217b63c3020769a Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Wed, 4 May 2022 15:21:26 +0200 Subject: [PATCH 47/59] Assure HepMC2 --- .github/workflows/osx/entrypoint.sh | 33 ++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index 6cda001d775..c6cbb50444c 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -2,7 +2,7 @@ set -x export TOP=$(pwd) brew tap davidchall/hep -brew install hepmc lhapdf wget cmake coreutils +brew install lhapdf wget cmake coreutils brew install gnu-sed brew install gcc brew install expat @@ -10,6 +10,37 @@ brew install pythia brew install libxmu brew install --cask xquartz +mkdir Formula +cat < Formula/hepmc2.rb +class Hepmc2 < Formula + desc "C++ event record for Monte Carlo generators" + homepage "https://hepmc.web.cern.ch/" + url "https://gitlab.cern.ch/hepmc/HepMC/-/archive/2.06.11/HepMC-2.06.11.tar.gz" + sha256 "ceaced62d39e4e2a1469fa2f20662d4d370279b3209930250766db02f44ae8de" + + option "with-test", "Test during installation" + + depends_on "cmake" => :build + + def install + mkdir "../build" do + system "cmake", buildpath, "-Dmomentum:STRING=GEV", "-Dlength:STRING=MM", *std_cmake_args + system "make" + system "make", "test" if build.with? "test" + system "make", "install" + end + end + + test do + cp_r share/"HepMC/examples/.", testpath + system "make", "example_BuildEventFromScratch.exe" + system "./example_BuildEventFromScratch.exe" + end +end +EOF + +brew install --build-from-source ./Formula/hepmc2.rb + which gfortran-11 if [ "$?" = "0" ]; then export CXX=g++-11 From 118de2873e9af881000d72edf394a49ae011ae94 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Wed, 4 May 2022 15:47:05 +0200 Subject: [PATCH 48/59] OK --- .github/workflows/osx/entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index e001e817eed..e6227e2120f 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -101,7 +101,7 @@ gsed -i 's@/opt/local/@/usr/local/Cellar/expat/2.4.7/@g' Geant4-11.0.1-Darwin/l mkdir -p test cd test -cmake -B. -S ../examples/extended/eventgenerator -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=$TOP/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1 -DPYTHIA6_ROOT_DIR=/usr/local -DHEPMC_DIR=/usr/local -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC +cmake -B. -S ../examples/extended/eventgenerator -DPYTHIA6_INTERNAL=ON -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=$TOP/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1 -DPYTHIA6_ROOT_DIR=/usr/local -DHEPMC_DIR=/usr/local -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC cmake --build . -j 2 cmake --install . From 87246d0deb324d115595b77bcc7de193733acc78 Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Fri, 6 May 2022 10:48:01 +0200 Subject: [PATCH 49/59] OK --- .github/workflows/osx/entrypoint.sh | 32 +---------------------------- 1 file changed, 1 insertion(+), 31 deletions(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index e6227e2120f..a92ee1f0ec3 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -8,39 +8,9 @@ brew install gcc brew install expat brew install pythia brew install libxmu +brew install hepmc2 brew install --cask xquartz -mkdir Formula -cat < Formula/hepmc2.rb -class Hepmc2 < Formula - desc "C++ event record for Monte Carlo generators" - homepage "https://hepmc.web.cern.ch/" - url "https://gitlab.cern.ch/hepmc/HepMC/-/archive/2.06.11/HepMC-2.06.11.tar.gz" - sha256 "ceaced62d39e4e2a1469fa2f20662d4d370279b3209930250766db02f44ae8de" - - option "with-test", "Test during installation" - - depends_on "cmake" => :build - - def install - mkdir "../build" do - system "cmake", buildpath, "-Dmomentum:STRING=GEV", "-Dlength:STRING=MM", *std_cmake_args - system "make" - system "make", "test" if build.with? "test" - system "make", "install" - end - end - - test do - cp_r share/"HepMC/examples/.", testpath - system "make", "example_BuildEventFromScratch.exe" - system "./example_BuildEventFromScratch.exe" - end -end -EOF - -brew install --build-from-source ./Formula/hepmc2.rb - which gfortran-11 if [ "$?" = "0" ]; then export CXX=g++-11 From f04ba439817b02fe9ccdaec4ba1c15b58aee8f63 Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Fri, 6 May 2022 11:14:32 +0200 Subject: [PATCH 50/59] Added LHAPDF --- .github/workflows/osx/entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index a92ee1f0ec3..26650e761de 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -71,7 +71,7 @@ gsed -i 's@/opt/local/@/usr/local/Cellar/expat/2.4.7/@g' Geant4-11.0.1-Darwin/l mkdir -p test cd test -cmake -B. -S ../examples/extended/eventgenerator -DPYTHIA6_INTERNAL=ON -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=$TOP/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1 -DPYTHIA6_ROOT_DIR=/usr/local -DHEPMC_DIR=/usr/local -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC +cmake -B. -S ../examples/extended/eventgenerator -DPYTHIA6_INTERNAL=ON -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=$TOP/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1 -DPYTHIA6_ROOT_DIR=/usr/local -DHEPMC_DIR=/usr/local -DLHAPDF_DIR=/usr/local -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC cmake --build . -j 2 cmake --install . From 9c98a8421efeac93f1ec93ef4eaac58608e2f714 Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Fri, 6 May 2022 14:48:37 +0200 Subject: [PATCH 51/59] OK --- .../extended/eventgenerator/CMakeLists.txt | 24 ++++++++++--------- .../eventgenerator/CMakeLists.txt.pythia6 | 2 +- .../HepMC/HepMCEx01/CMakeLists.txt | 7 ++++-- .../HepMC/HepMCEx01/HepMCEx01.cc | 1 + .../HepMC/HepMCEx01/external/initpydata.f | 1 + .../HepMC/HepMCEx01/external/upevnt.F | 2 +- .../HepMC/HepMCEx01/external/upinit.F | 2 +- .../HepMCEx01/src/HepMCG4PythiaInterface.cc | 19 ++++++++++++--- .../HepMC/HepMCEx02/CMakeLists.txt | 6 +++-- 9 files changed, 43 insertions(+), 21 deletions(-) diff --git a/examples/extended/eventgenerator/CMakeLists.txt b/examples/extended/eventgenerator/CMakeLists.txt index 894241784a6..ee812a31052 100644 --- a/examples/extended/eventgenerator/CMakeLists.txt +++ b/examples/extended/eventgenerator/CMakeLists.txt @@ -12,21 +12,15 @@ add_subdirectory(particleGun) add_subdirectory(exgps) add_subdirectory(userPrimaryGenerator) -#---------------------------------------------------------------------------- -# HepMC examples require HepMC -# -find_package(HepMC QUIET) -if(HEPMC_FOUND) - add_subdirectory(HepMC) -else() - message(STATUS "G4 Examples: HepMC package not found. --> HepMC examples disabled.") -endif() + #---------------------------------------------------------------------------- # decayer6 example requires Pythia6 # option(PYTHIA6_INTERNAL "Download and compile Pythia6" OFF) -find_package(Pythia6) +if (NOT PYTHIA6_INTERNAL) + find_package(Pythia6) +endif() if(PYTHIA6_FOUND OR PYTHIA6_INTERNAL) if (PYTHIA6_INTERNAL) message(STATUS "Pythia6 will be downloaded and compiled") @@ -50,7 +44,15 @@ else() message(STATUS "G4 Examples: Pythia6 package not found. --> decayer6 example disabled.") endif() - +#---------------------------------------------------------------------------- +# HepMC examples require HepMC +# +find_package(HepMC QUIET) +if(HEPMC_FOUND) + add_subdirectory(HepMC) +else() + message(STATUS "G4 Examples: HepMC package not found. --> HepMC examples disabled.") +endif() #---------------------------------------------------------------------------- # py8decayer example requires Pythia8 # diff --git a/examples/extended/eventgenerator/CMakeLists.txt.pythia6 b/examples/extended/eventgenerator/CMakeLists.txt.pythia6 index ebefe9b872c..1646a3dd9b7 100644 --- a/examples/extended/eventgenerator/CMakeLists.txt.pythia6 +++ b/examples/extended/eventgenerator/CMakeLists.txt.pythia6 @@ -22,7 +22,7 @@ add_library(G4Pythia6 SHARED ${py_sources} ${CMAKE_CURRENT_SOURCE_DIR}/visaje.f ${CMAKE_CURRENT_SOURCE_DIR}/pdfset.f ) - +target_compile_options(G4Pythia6 PRIVATE -fdefault-real-8 -fdefault-double-8) #---------------------------------------------------------------------------- # Install library # diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt b/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt index 34a2cf6dae0..411e9fd9483 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/CMakeLists.txt @@ -31,12 +31,15 @@ find_package(LHAPDF REQUIRED) #---------------------------------------------------------------------------- # Find Pythia6 (optional package) # -find_package(Pythia6 QUIET) -if(PYTHIA6_FOUND) +if (NOT PYTHIA6_INTERNAL) + find_package(Pythia6) +endif() +if(PYTHIA6_FOUND OR PYTHIA6_INTERNAL) message(STATUS "G4 Examples: Pythia6 found. --> HepMCEx01 example with Pythia6 enabled.") add_definitions(-DG4LIB_USE_PYTHIA) enable_language(Fortran) set (generator_sources + ${PROJECT_SOURCE_DIR}/external/initpydata.f ${PROJECT_SOURCE_DIR}/external/upevnt.F ${PROJECT_SOURCE_DIR}/external/upinit.F ${PROJECT_SOURCE_DIR}/external/upveto.F diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/HepMCEx01.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/HepMCEx01.cc index f12a2730ff5..8bc45dd3b02 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/HepMCEx01.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/HepMCEx01.cc @@ -107,6 +107,7 @@ int main(int argc,char** argv) visManager->SetVerboseLevel("quiet"); G4String command = "/control/execute "; G4String fileName = argv[1]; + printf("IIIIIIIII\n"); UImanager->ApplyCommand(command+fileName); } else diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/initpydata.f b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/initpydata.f index 41fe1692036..06b7c14530a 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/initpydata.f +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/initpydata.f @@ -30,6 +30,7 @@ c subroutine initpydata EXTERNAL PYDATA + write(*,*)"OK0" return end diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upevnt.F b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upevnt.F index 15e72907f7b..93477d77db9 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upevnt.F +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upevnt.F @@ -23,6 +23,6 @@ SUBROUTINE UPEVNT &ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP), &VTIMUP(MAXNUP),SPINUP(MAXNUP) SAVE /HEPEUP/ - + write(*,*)"OK2" RETURN END diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upinit.F b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upinit.F index 6492b62b09c..2ae1561246e 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upinit.F +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upinit.F @@ -21,6 +21,6 @@ SUBROUTINE UPINIT &IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP), &LPRUP(MAXPUP) SAVE /HEPRUP/ - + write(*,*)"OK1" RETURN END diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc index 5562d4cd903..c7053a567f6 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc @@ -41,11 +41,15 @@ #define pygive pygive_ #define pyrget pyrget_ #define pyrset pyrset_ +#define pyinit pyinit_ +//#define initpydata initpydata_ extern "C" { void pygive(const char*, int); void pyrget(int*, int*); void pyrset(int*, int*); + void initpydata(); + //void pyinit(const char*,const char*,const char*,float &); } void call_pygive(G4String s) { pygive(s.c_str(), s.length()); } @@ -56,14 +60,16 @@ void call_pyrset(int a, int b) { pyrset(&a, &b); } HepMCG4PythiaInterface::HepMCG4PythiaInterface() : verbose(0), mpylist(0) { + #define NEED_INITPYDATA #ifdef NEED_INITPYDATA initpydata(); // Some platforms may require the initialization of pythia PYDATA block // data as external - if you get pythia initialization errors try // commenting in/out the below call to initpydata(). #endif - +printf("OKaaaa\n"); messenger= new HepMCG4PythiaMessenger(this); +printf("OKaaaa3333\n"); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -75,6 +81,7 @@ HepMCG4PythiaInterface::~HepMCG4PythiaInterface() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void HepMCG4PythiaInterface::CallPygive(G4String par) { + printf("OKaarrrrrr\n"); call_pygive(par); } @@ -82,7 +89,12 @@ void HepMCG4PythiaInterface::CallPygive(G4String par) void HepMCG4PythiaInterface::CallPyinit(G4String frame, G4String beam, G4String target, G4double win) { + printf("OKammm \n"); + std::cout<< frame<=1 && mpylist<= 3) call_pylist(mpylist); - +printf("OKcccc\n"); call_pyhepc(1); - +printf("OKdddd\n"); HepMC::GenEvent* evt= hepevtio.read_next_event(); evt-> set_event_number(nevent++); if(verbose>0) evt-> print(); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt b/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt index 35b4629c425..4658e0da1b9 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/CMakeLists.txt @@ -32,8 +32,10 @@ find_package(LHAPDF REQUIRED) #---------------------------------------------------------------------------- # Find Pythia6 (optional package) # -find_package(Pythia6 QUIET) -if(PYTHIA6_FOUND) +if (NOT PYTHIA6_INTERNAL) + find_package(Pythia6) +endif() +if(PYTHIA6_FOUND OR PYTHIA6_INTERNAL) message(STATUS "G4 Examples: Pythia6 found. --> HepMCEx02 example with Pythia6 enabled.") add_definitions(-DG4LIB_USE_PYTHIA) enable_language(Fortran) From 7ff0f17df3c34c042cae5edad20d063627cb74f2 Mon Sep 17 00:00:00 2001 From: andriish Date: Fri, 6 May 2022 15:00:09 +0200 Subject: [PATCH 52/59] OK --- .../extended/eventgenerator/CMakeLists.txt | 1 - .../HepMC/HepMCEx01/HepMCEx01.cc | 1 - .../HepMC/HepMCEx01/external/initpydata.f | 1 - .../HepMC/HepMCEx01/external/upevnt.F | 2 +- .../HepMC/HepMCEx01/external/upinit.F | 2 +- .../HepMCEx01/src/HepMCG4PythiaInterface.cc | 20 ++++++------------- 6 files changed, 8 insertions(+), 19 deletions(-) diff --git a/examples/extended/eventgenerator/CMakeLists.txt b/examples/extended/eventgenerator/CMakeLists.txt index ee812a31052..2d38d215b40 100644 --- a/examples/extended/eventgenerator/CMakeLists.txt +++ b/examples/extended/eventgenerator/CMakeLists.txt @@ -12,7 +12,6 @@ add_subdirectory(particleGun) add_subdirectory(exgps) add_subdirectory(userPrimaryGenerator) - #---------------------------------------------------------------------------- # decayer6 example requires Pythia6 diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/HepMCEx01.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/HepMCEx01.cc index 8bc45dd3b02..f12a2730ff5 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/HepMCEx01.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/HepMCEx01.cc @@ -107,7 +107,6 @@ int main(int argc,char** argv) visManager->SetVerboseLevel("quiet"); G4String command = "/control/execute "; G4String fileName = argv[1]; - printf("IIIIIIIII\n"); UImanager->ApplyCommand(command+fileName); } else diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/initpydata.f b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/initpydata.f index 06b7c14530a..41fe1692036 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/initpydata.f +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/initpydata.f @@ -30,7 +30,6 @@ c subroutine initpydata EXTERNAL PYDATA - write(*,*)"OK0" return end diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upevnt.F b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upevnt.F index 93477d77db9..15e72907f7b 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upevnt.F +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upevnt.F @@ -23,6 +23,6 @@ SUBROUTINE UPEVNT &ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP), &VTIMUP(MAXNUP),SPINUP(MAXNUP) SAVE /HEPEUP/ - write(*,*)"OK2" + RETURN END diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upinit.F b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upinit.F index 2ae1561246e..6492b62b09c 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upinit.F +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/upinit.F @@ -21,6 +21,6 @@ SUBROUTINE UPINIT &IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP), &LPRUP(MAXPUP) SAVE /HEPRUP/ - write(*,*)"OK1" + RETURN END diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc index c7053a567f6..8f4e5f45506 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc @@ -41,15 +41,12 @@ #define pygive pygive_ #define pyrget pyrget_ #define pyrset pyrset_ -#define pyinit pyinit_ -//#define initpydata initpydata_ extern "C" { void pygive(const char*, int); void pyrget(int*, int*); void pyrset(int*, int*); - void initpydata(); - //void pyinit(const char*,const char*,const char*,float &); +// void initpydata(); } void call_pygive(G4String s) { pygive(s.c_str(), s.length()); } @@ -60,16 +57,15 @@ void call_pyrset(int a, int b) { pyrset(&a, &b); } HepMCG4PythiaInterface::HepMCG4PythiaInterface() : verbose(0), mpylist(0) { - #define NEED_INITPYDATA +// #define NEED_INITPYDATA #ifdef NEED_INITPYDATA initpydata(); // Some platforms may require the initialization of pythia PYDATA block // data as external - if you get pythia initialization errors try // commenting in/out the below call to initpydata(). #endif -printf("OKaaaa\n"); + messenger= new HepMCG4PythiaMessenger(this); -printf("OKaaaa3333\n"); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -81,7 +77,6 @@ HepMCG4PythiaInterface::~HepMCG4PythiaInterface() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void HepMCG4PythiaInterface::CallPygive(G4String par) { - printf("OKaarrrrrr\n"); call_pygive(par); } @@ -91,10 +86,8 @@ void HepMCG4PythiaInterface::CallPyinit(G4String frame, G4String beam, { printf("OKammm \n"); std::cout<< frame<=1 && mpylist<= 3) call_pylist(mpylist); -printf("OKcccc\n"); + call_pyhepc(1); -printf("OKdddd\n"); + HepMC::GenEvent* evt= hepevtio.read_next_event(); evt-> set_event_number(nevent++); if(verbose>0) evt-> print(); From a328a71fee082700947efecbaff97847efd575bd Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Fri, 6 May 2022 15:38:08 +0200 Subject: [PATCH 53/59] Added modified pythia6 --- .github/workflows/osx/entrypoint.sh | 2 + .../extended/eventgenerator/CMakeLists.txt | 1 + examples/extended/eventgenerator/pyinit.f | 315 ++++++++++++++++++ 3 files changed, 318 insertions(+) create mode 100644 examples/extended/eventgenerator/pyinit.f diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index 26650e761de..97e52b05d24 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -74,6 +74,8 @@ cd test cmake -B. -S ../examples/extended/eventgenerator -DPYTHIA6_INTERNAL=ON -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=$TOP/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1 -DPYTHIA6_ROOT_DIR=/usr/local -DHEPMC_DIR=/usr/local -DLHAPDF_DIR=/usr/local -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC cmake --build . -j 2 cmake --install . +#Temporarly! +cp $TOP/INSTALL/lib/libG4Pythia6.dylib $TOP/Geant4-11.0.1-Darwin/lib #Running tests diff --git a/examples/extended/eventgenerator/CMakeLists.txt b/examples/extended/eventgenerator/CMakeLists.txt index 2d38d215b40..2722b110e54 100644 --- a/examples/extended/eventgenerator/CMakeLists.txt +++ b/examples/extended/eventgenerator/CMakeLists.txt @@ -34,6 +34,7 @@ if(PYTHIA6_FOUND OR PYTHIA6_INTERNAL) FetchContent_Populate(p6) endif() file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt.pythia6 DESTINATION ${p6_SOURCE_DIR}) + file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/pyinit.f DESTINATION ${p6_SOURCE_DIR}) file(RENAME ${p6_SOURCE_DIR}/CMakeLists.txt.pythia6 ${p6_SOURCE_DIR}/CMakeLists.txt) add_subdirectory(${p6_SOURCE_DIR} ${p6_BINARY_DIR}) set(PYTHIA6_LIBRARIES G4Pythia6) diff --git a/examples/extended/eventgenerator/pyinit.f b/examples/extended/eventgenerator/pyinit.f new file mode 100644 index 00000000000..7b8c2b57a4c --- /dev/null +++ b/examples/extended/eventgenerator/pyinit.f @@ -0,0 +1,315 @@ + +C********************************************************************* + +C...PYINIT +C...Initializes the generation procedure; finds maxima of the +C...differential cross-sections to be used for weighting. + SUBROUTINE PYINIT(FRAME,BEAM,TARGET,WIN) +C...Double precision and integer declarations. + IMPLICIT DOUBLE PRECISION(A-H, O-Z) + IMPLICIT INTEGER(I-N) + INTEGER PYK,PYCHGE,PYCOMP +C...Commonblocks. + COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4) + COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5) + COMMON/PYDAT4/CHAF(500,2) + CHARACTER CHAF*16 + COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200) + COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200) + COMMON/PYINT1/MINT(400),VINT(400) + COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2) + COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3) + COMMON/PYPUED/IUED(0:99),RUED(0:99) + SAVE /PYDAT1/,/PYDAT2/,/PYDAT3/,/PYDAT4/,/PYSUBS/,/PYPARS/, + &/PYINT1/,/PYINT2/,/PYINT5/,/PYPUED/ +C...Local arrays and character variables. + DIMENSION ALAMIN(20),NFIN(20) + CHARACTER*(*) FRAME,BEAM,TARGET + CHARACTER CHFRAM*12,CHBEAM*12,CHTARG*12,CHLH(2)*6 + +C...Interface to PDFLIB. + COMMON/W50511/NPTYPE,NGROUP,NSET,MODE,NFL,LO,TMAS + COMMON/W50512/QCDL4,QCDL5 + SAVE /W50511/,/W50512/ + DOUBLE PRECISION VALUE(20),TMAS,QCDL4,QCDL5 + CHARACTER*20 PARM(20) + DATA VALUE/20*0D0/,PARM/20*' '/ + +C...Data:Lambda and n_f values for parton distributions.. + DATA ALAMIN/0.177D0,0.239D0,0.247D0,0.2322D0,0.248D0,0.248D0, + &0.192D0,0.326D0,2*0.2D0,0.2D0,0.2D0,0.29D0,0.2D0,0.4D0,5*0.2D0/, + &NFIN/20*4/ + DATA CHLH/'lepton','hadron'/ +C...Check that BLOCK DATA PYDATA has been loaded. + CALL PYCKBD + +C...Reset MINT and VINT arrays. Write headers. + MSTI(53)=0 + DO 100 J=1,400 + MINT(J)=0 + VINT(J)=0D0 + 100 CONTINUE + IF(MSTU(12).NE.12345) CALL PYLIST(0) + IF(MSTP(122).GE.1) WRITE(MSTU(11),5100) + + +C...Reset error counters. + MSTU(23)=0 + MSTU(27)=0 + MSTU(30)=0 + + +C...Reset processes that should not be on. + MSUB(96)=0 + MSUB(97)=0 +C...Select global FSR/ISR/UE parameter set = 'tune' +C...See routine PYTUNE for details + IF (MSTP(5).NE.0) THEN + MSTP5=MSTP(5) + CALL PYTUNE(MSTP5) + ENDIF + +C...Call user process initialization routine. + IF(FRAME(1:1).EQ.'u'.OR.FRAME(1:1).EQ.'U') THEN + MSEL=0 + CALL UPINIT + MSEL=0 + ENDIF + +C...Maximum 4 generations; set maximum number of allowed flavours. + MSTP(1)=MIN(4,MSTP(1)) + MSTU(114)=MIN(MSTU(114),2*MSTP(1)) + MSTP(58)=MIN(MSTP(58),2*MSTP(1)) + +C...Sum up Cabibbo-Kobayashi-Maskawa factors for each quark/lepton. + DO 120 I=-20,20 + VINT(180+I)=0D0 + IA=IABS(I) + IF(IA.GE.1.AND.IA.LE.2*MSTP(1)) THEN + DO 110 J=1,MSTP(1) + IB=2*J-1+MOD(IA,2) + IF(IB.GE.6.AND.MSTP(9).EQ.0) GOTO 110 + IPM=(5-ISIGN(1,I))/2 + IDC=J+MDCY(IA,2)+2 + IF(MDME(IDC,1).EQ.1.OR.MDME(IDC,1).EQ.IPM) VINT(180+I)= + & VINT(180+I)+VCKM((IA+1)/2,(IB+1)/2) + 110 CONTINUE + ELSEIF(IA.GE.11.AND.IA.LE.10+2*MSTP(1)) THEN + VINT(180+I)=1D0 + ENDIF + 120 CONTINUE +C...Initialize parton distributions: PDFLIB. + IF(MSTP(52).EQ.2) THEN + PARM(1)='NPTYPE' + VALUE(1)=1 + PARM(2)='NGROUP' + VALUE(2)=MSTP(51)/1000 + PARM(3)='NSET' + VALUE(3)=MOD(MSTP(51),1000) + PARM(4)='TMAS' + VALUE(4)=PMAS(6,1) + CALL PDFSET(PARM,VALUE) + MINT(93)=1000000+MSTP(51) + ENDIF +C...Choose Lambda value to use in alpha-strong. + MSTU(111)=MSTP(2) + IF(MSTP(3).GE.2) THEN + ALAM=0.2D0 + NF=4 + IF(MSTP(52).EQ.1.AND.MSTP(51).GE.1.AND.MSTP(51).LE.20) THEN + ALAM=ALAMIN(MSTP(51)) + NF=NFIN(MSTP(51)) + ELSEIF(MSTP(52).EQ.2.AND.NFL.EQ.5) THEN + ALAM=QCDL5 + NF=5 + ELSEIF(MSTP(52).EQ.2) THEN + ALAM=QCDL4 + NF=4 + ENDIF + PARP(1)=ALAM + PARP(61)=ALAM + PARP(72)=ALAM + PARU(112)=ALAM + MSTU(112)=NF + IF(MSTP(3).EQ.3) PARJ(81)=ALAM + ENDIF + +C...Initialize the UED masses and widths + IF (IUED(1).EQ.1) CALL PYXDIN +C...Initialize the SUSY generation: couplings, masses, +C...decay modes, branching ratios, and so on. + CALL PYMSIN +C...Initialize widths and partial widths for resonances. + CALL PYINRE +C...Set Z0 mass and width for e+e- routines. + PARJ(123)=PMAS(23,1) + PARJ(124)=PMAS(23,2) +C...Identify beam and target particles and frame of process. + CHFRAM=FRAME(1:len(FRAME))//' ' + CHBEAM=BEAM(1:len(BEAM))//' ' + CHTARG=TARGET(1:len(TARGET))//' ' + CALL PYINBM(CHFRAM,CHBEAM,CHTARG,WIN) + IF(MINT(65).EQ.1) GOTO 170 +C...For gamma-p or gamma-gamma allow many (3 or 6) alternatives. +C...For e-gamma allow 2 alternatives. + MINT(121)=1 + IF(MSTP(14).EQ.10.AND.(MSEL.EQ.1.OR.MSEL.EQ.2)) THEN + IF((MINT(11).EQ.22.OR.MINT(12).EQ.22).AND. + & (IABS(MINT(11)).GT.100.OR.IABS(MINT(12)).GT.100)) MINT(121)=3 + IF(MINT(11).EQ.22.AND.MINT(12).EQ.22) MINT(121)=6 + IF((MINT(11).EQ.22.OR.MINT(12).EQ.22).AND. + & (IABS(MINT(11)).EQ.11.OR.IABS(MINT(12)).EQ.11)) MINT(121)=2 + ELSEIF(MSTP(14).EQ.20.AND.(MSEL.EQ.1.OR.MSEL.EQ.2)) THEN + IF((MINT(11).EQ.22.OR.MINT(12).EQ.22).AND. + & (IABS(MINT(11)).GT.100.OR.IABS(MINT(12)).GT.100)) MINT(121)=3 + IF(MINT(11).EQ.22.AND.MINT(12).EQ.22) MINT(121)=9 + ELSEIF(MSTP(14).EQ.25.AND.(MSEL.EQ.1.OR.MSEL.EQ.2)) THEN + IF((MINT(11).EQ.22.OR.MINT(12).EQ.22).AND. + & (IABS(MINT(11)).GT.100.OR.IABS(MINT(12)).GT.100)) MINT(121)=2 + IF(MINT(11).EQ.22.AND.MINT(12).EQ.22) MINT(121)=4 + ELSEIF(MSTP(14).EQ.30.AND.(MSEL.EQ.1.OR.MSEL.EQ.2)) THEN + IF((MINT(11).EQ.22.OR.MINT(12).EQ.22).AND. + & (IABS(MINT(11)).GT.100.OR.IABS(MINT(12)).GT.100)) MINT(121)=4 + IF(MINT(11).EQ.22.AND.MINT(12).EQ.22) MINT(121)=13 + ENDIF + MINT(123)=MSTP(14) + IF((MSTP(14).EQ.10.OR.MSTP(14).EQ.20.OR.MSTP(14).EQ.25.OR. + &MSTP(14).EQ.30).AND.MSEL.NE.1.AND.MSEL.NE.2) MINT(123)=0 + IF(MSTP(14).GE.11.AND.MSTP(14).LE.19) THEN + IF(MSTP(14).EQ.11) MINT(123)=0 + IF(MSTP(14).EQ.12.OR.MSTP(14).EQ.14) MINT(123)=5 + IF(MSTP(14).EQ.13.OR.MSTP(14).EQ.17) MINT(123)=6 + IF(MSTP(14).EQ.15) MINT(123)=2 + IF(MSTP(14).EQ.16.OR.MSTP(14).EQ.18) MINT(123)=7 + IF(MSTP(14).EQ.19) MINT(123)=3 + ELSEIF(MSTP(14).GE.21.AND.MSTP(14).LE.24) THEN + IF(MSTP(14).EQ.21) MINT(123)=0 + IF(MSTP(14).EQ.22.OR.MSTP(14).EQ.23) MINT(123)=4 + IF(MSTP(14).EQ.24) MINT(123)=1 + ELSEIF(MSTP(14).GE.26.AND.MSTP(14).LE.29) THEN + IF(MSTP(14).EQ.26.OR.MSTP(14).EQ.28) MINT(123)=8 + IF(MSTP(14).EQ.27.OR.MSTP(14).EQ.29) MINT(123)=9 + ENDIF +C...Set up kinematics of process. + CALL PYINKI(0) + +C...Set up kinematics for photons inside leptons. + IF(MINT(141).NE.0.OR.MINT(142).NE.0) CALL PYGAGA(1,WTGAGA) + +C...Precalculate flavour selection weights. + CALL PYKFIN +C...Loop over gamma-p or gamma-gamma alternatives. + CKIN3=CKIN(3) + MSAV48=0 + DO 160 IGA=1,MINT(121) + CKIN(3)=CKIN3 + MINT(122)=IGA + +C...Select partonic subprocesses to be included in the simulation. + CALL PYINPR + MINT(101)=1 + MINT(102)=1 + MINT(103)=MINT(11) + MINT(104)=MINT(12) + +C...Count number of subprocesses on. + MINT(48)=0 + DO 130 ISUB=1,500 + IF(MINT(50).EQ.0.AND.ISUB.GE.91.AND.ISUB.LE.96.AND. + & MSUB(ISUB).EQ.1.AND.MINT(121).GT.1) THEN + MSUB(ISUB)=0 + ELSEIF(MINT(50).EQ.0.AND.ISUB.GE.91.AND.ISUB.LE.96.AND. + & MSUB(ISUB).EQ.1) THEN + WRITE(MSTU(11),5200) ISUB,CHLH(MINT(41)),CHLH(MINT(42)) + CALL PYSTOP(1) + ELSEIF(MSUB(ISUB).EQ.1.AND.ISET(ISUB).EQ.-1) THEN + WRITE(MSTU(11),5300) ISUB + CALL PYSTOP(1) + ELSEIF(MSUB(ISUB).EQ.1.AND.ISET(ISUB).LE.-2) THEN + WRITE(MSTU(11),5400) ISUB + CALL PYSTOP(1) + ELSEIF(MSUB(ISUB).EQ.1) THEN + MINT(48)=MINT(48)+1 + ENDIF + 130 CONTINUE + +C...Stop or raise warning flag if no subprocesses on. + IF(MINT(121).EQ.1.AND.MINT(48).EQ.0) THEN + IF(MSTP(127).NE.1) THEN + WRITE(MSTU(11),5500) + CALL PYSTOP(1) + ELSE + WRITE(MSTU(11),5700) + MSTI(53)=1 + ENDIF + ENDIF + MINT(49)=MINT(48)-MSUB(91)-MSUB(92)-MSUB(93)-MSUB(94) + MSAV48=MSAV48+MINT(48) + +C...Reset variables for cross-section calculation. + DO 150 I=0,500 + DO 140 J=1,3 + NGEN(I,J)=0 + XSEC(I,J)=0D0 + 140 CONTINUE + 150 CONTINUE + +C...Find parametrized total cross-sections. + CALL PYXTOT + VINT(318)=VINT(317) + +C...Maxima of differential cross-sections. + IF(MSTP(121).LE.1) CALL PYMAXI + +C...Initialize possibility of pileup events. + IF(MINT(121).GT.1) MSTP(131)=0 + IF(MSTP(131).NE.0) CALL PYPILE(1) + +C...Initialize multiple interactions with variable impact parameter. + IF(MINT(50).EQ.1) THEN + PTMN=PARP(82)*(VINT(1)/PARP(89))**PARP(90) + IF(MOD(MSTP(81),10).EQ.0.AND.(CKIN(3).GT.PTMN.OR. + & ((MSEL.NE.1.AND.MSEL.NE.2)))) MSTP(82)=MIN(1,MSTP(82)) + IF((MINT(49).NE.0.OR.MSTP(131).NE.0).AND.MSTP(82).GE.2) THEN + MINT(35)=1 + CALL PYMULT(1) + MINT(35)=3 + CALL PYMIGN(1) + ENDIF + ENDIF + +C...Save results for gamma-p and gamma-gamma alternatives. + IF(MINT(121).GT.1) CALL PYSAVE(1,IGA) + 160 CONTINUE + +C...Initialization finished. + IF(MSAV48.EQ.0) THEN + IF(MSTP(127).NE.1) THEN + WRITE(MSTU(11),5500) + CALL PYSTOP(1) + ELSE + WRITE(MSTU(11),5700) + MSTI(53)=1 + ENDIF + ENDIF + 170 IF(MSTP(122).GE.1) WRITE(MSTU(11),5600) + +C...Formats for initialization information. + 5100 FORMAT('1',18('*'),1X,'PYINIT: initialization of PYTHIA ', + &'routines',1X,17('*')) + 5200 FORMAT(1X,'Error: process number ',I3,' not meaningful for ',A6, + &'-',A6,' interactions.'/1X,'Execution stopped!') + 5300 FORMAT(1X,'Error: requested subprocess',I4,' not implemented.'/ + &1X,'Execution stopped!') + 5400 FORMAT(1X,'Error: requested subprocess',I4,' not existing.'/ + &1X,'Execution stopped!') + 5500 FORMAT(1X,'Error: no subprocess switched on.'/ + &1X,'Execution stopped.') + 5600 FORMAT(/1X,22('*'),1X,'PYINIT: initialization completed',1X, + &22('*')) + 5700 FORMAT(1X,'Error: no subprocess switched on.'/ + &1X,'Execution will stop if you try to generate events.') + + RETURN + END From c9fa1eefd06568a339e6b80a03211b77992d6a98 Mon Sep 17 00:00:00 2001 From: Alois Kabelschacht Date: Fri, 6 May 2022 15:39:10 +0200 Subject: [PATCH 54/59] OK --- examples/extended/eventgenerator/CMakeLists.txt.pythia6 | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/extended/eventgenerator/CMakeLists.txt.pythia6 b/examples/extended/eventgenerator/CMakeLists.txt.pythia6 index 1646a3dd9b7..3a74c7eb7f3 100644 --- a/examples/extended/eventgenerator/CMakeLists.txt.pythia6 +++ b/examples/extended/eventgenerator/CMakeLists.txt.pythia6 @@ -22,7 +22,6 @@ add_library(G4Pythia6 SHARED ${py_sources} ${CMAKE_CURRENT_SOURCE_DIR}/visaje.f ${CMAKE_CURRENT_SOURCE_DIR}/pdfset.f ) -target_compile_options(G4Pythia6 PRIVATE -fdefault-real-8 -fdefault-double-8) #---------------------------------------------------------------------------- # Install library # From ad7e6c39950bb03d9bb5acc08a2ac61954922c2b Mon Sep 17 00:00:00 2001 From: andriish Date: Fri, 6 May 2022 15:54:09 +0200 Subject: [PATCH 55/59] Simplify --- .github/workflows/osx/entrypoint.sh | 30 ----------------------------- 1 file changed, 30 deletions(-) diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh index bbeb2ac0c3f..e3570fef584 100755 --- a/.github/workflows/osx/entrypoint.sh +++ b/.github/workflows/osx/entrypoint.sh @@ -11,36 +11,6 @@ brew install libxmu brew install hepmc2 brew install --cask xquartz -mkdir Formula -cat < Formula/hepmc2.rb -class Hepmc2 < Formula - desc "C++ event record for Monte Carlo generators" - homepage "https://hepmc.web.cern.ch/" - url "https://gitlab.cern.ch/hepmc/HepMC/-/archive/2.06.11/HepMC-2.06.11.tar.gz" - sha256 "ceaced62d39e4e2a1469fa2f20662d4d370279b3209930250766db02f44ae8de" - - option "with-test", "Test during installation" - - depends_on "cmake" => :build - - def install - mkdir "../build" do - system "cmake", buildpath, "-Dmomentum:STRING=GEV", "-Dlength:STRING=MM", *std_cmake_args - system "make" - system "make", "test" if build.with? "test" - system "make", "install" - end - end - - test do - cp_r share/"HepMC/examples/.", testpath - system "make", "example_BuildEventFromScratch.exe" - system "./example_BuildEventFromScratch.exe" - end -end -EOF - -brew install --build-from-source ./Formula/hepmc2.rb which gfortran-11 if [ "$?" = "0" ]; then From 536bf46bdc27f0289f43cbe50e8e6f1da5afe8e8 Mon Sep 17 00:00:00 2001 From: andriish Date: Wed, 29 Nov 2023 16:53:37 +0100 Subject: [PATCH 56/59] Update HepMCG4PythiaInterface.cc --- .../HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc | 2 -- 1 file changed, 2 deletions(-) diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc index 8f4e5f45506..2082eacb092 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc @@ -46,7 +46,6 @@ extern "C" { void pygive(const char*, int); void pyrget(int*, int*); void pyrset(int*, int*); -// void initpydata(); } void call_pygive(G4String s) { pygive(s.c_str(), s.length()); } @@ -57,7 +56,6 @@ void call_pyrset(int a, int b) { pyrset(&a, &b); } HepMCG4PythiaInterface::HepMCG4PythiaInterface() : verbose(0), mpylist(0) { -// #define NEED_INITPYDATA #ifdef NEED_INITPYDATA initpydata(); // Some platforms may require the initialization of pythia PYDATA block From 1f51f59342b8159157923a0cf39f87a5a50ffc69 Mon Sep 17 00:00:00 2001 From: andriish Date: Wed, 29 Nov 2023 16:55:00 +0100 Subject: [PATCH 57/59] Update HepMCG4PythiaInterface.cc --- .../HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc | 3 --- 1 file changed, 3 deletions(-) diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc index 2082eacb092..5562d4cd903 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc @@ -82,10 +82,7 @@ void HepMCG4PythiaInterface::CallPygive(G4String par) void HepMCG4PythiaInterface::CallPyinit(G4String frame, G4String beam, G4String target, G4double win) { - printf("OKammm \n"); - std::cout<< frame< Date: Wed, 13 Mar 2024 13:45:27 +0100 Subject: [PATCH 58/59] Remove CI as there is a separate MR --- .github/workflows/fedora35/Dockerfile | 7 -- .github/workflows/fedora35/action.yaml | 15 ---- .github/workflows/fedora35/entrypoint.sh | 40 ----------- .github/workflows/main.yml | 34 --------- .github/workflows/osx/entrypoint.sh | 90 ------------------------ 5 files changed, 186 deletions(-) delete mode 100644 .github/workflows/fedora35/Dockerfile delete mode 100644 .github/workflows/fedora35/action.yaml delete mode 100755 .github/workflows/fedora35/entrypoint.sh delete mode 100644 .github/workflows/main.yml delete mode 100755 .github/workflows/osx/entrypoint.sh diff --git a/.github/workflows/fedora35/Dockerfile b/.github/workflows/fedora35/Dockerfile deleted file mode 100644 index d8e60fe5ed1..00000000000 --- a/.github/workflows/fedora35/Dockerfile +++ /dev/null @@ -1,7 +0,0 @@ -FROM fedora:35 - -# Copies your code file from your action repository to the filesystem path `/` of the container -COPY entrypoint.sh /entrypoint.sh - -# Code file to execute when the docker container starts up (`entrypoint.sh`) -ENTRYPOINT ["/entrypoint.sh"] diff --git a/.github/workflows/fedora35/action.yaml b/.github/workflows/fedora35/action.yaml deleted file mode 100644 index 08ca60ddc95..00000000000 --- a/.github/workflows/fedora35/action.yaml +++ /dev/null @@ -1,15 +0,0 @@ -name: 'Compile GEANT4' -description: 'GEANT4' -inputs: - who-to-greet: # id of input - description: 'Set something' - required: true - default: 'Hi !' -outputs: - time: # id of output - description: 'Some result' -runs: - using: 'docker' - image: 'Dockerfile' - args: - - ${{ inputs.who-to-greet }} diff --git a/.github/workflows/fedora35/entrypoint.sh b/.github/workflows/fedora35/entrypoint.sh deleted file mode 100755 index f081228356d..00000000000 --- a/.github/workflows/fedora35/entrypoint.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh -l -set -x -uname -a -cat /etc/issue -yum -y install dnf-plugins-core -yum -y install gcc gcc-c++ gcc-gfortran make which cmake cmake-data cmake-filesystem -yum -y install HepMC3 HepMC3-devel HepMC HepMC-devel redhat-rpm-config -yum -y install expat-devel xerces-c-devel xerces-c expat expat-devel zlib zlib-devel lhapdf lhapdf-devel -yum -y install pythia8-devel pythia8 pythia8-data -yum -y install yum-plugin-copr -yum -y copr enable averbyts/HEPrpms -yum -y install geant4 geant4-devel clhep clhep-devel PTL-devel pythia6 -yum -y install clean all -#Needed for tests, large -yum -y install geant4-data -yum -y install clean all - -export FC=gfortran -export FCFLAGS= -TOP=$(pwd) -mkdir -p test -cd test -cmake -B. -S ../examples/extended/eventgenerator -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=/usr/lib64/Geant4-11.0.0 -DPYTHIA6_ROOT_DIR=/usr -DHEPMC_DIR=/usr -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC -cmake --build . -j 2 -cmake --install . - -#Running tests -source /usr/bin/geant4.sh - -cd $TOP/test/HepMC/HepMCEx01 -$TOP/INSTALL/bin/HepMCEx01 hepmc_pygen.in -$TOP/INSTALL/bin/HepMCEx01 hepmc_ascii.in - -cd $TOP/test/HepMC/HepMCEx02 -$TOP/INSTALL/bin/HepMCEx02 hepmc_pygen.in -$TOP/INSTALL/bin/HepMCEx02 hepmc_ascii.in - - -out=$? -echo ::set-output name=out::$out diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 5a7a5bc0b12..00000000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: build -on: - push: - pull_request: - schedule: -#Every 50 days at midnight - - cron: "0 0 1/600 * *" - -jobs: - compilejobFedora35: - if: "!contains(github.event.head_commit.message, 'skip ci')" - runs-on: ubuntu-latest - name: Geant4_on_Fedora35 - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Compile - id: compileindocker - uses: ./.github/workflows/fedora35 - - name: Get the output status - run: exit ${{ steps.compileindocker.outputs.out }} - - - compilejobOSX12: - runs-on: macos-12 - name: Geant4_on_OSX12 - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Compile - id: compile - run: ./.github/workflows/osx/entrypoint.sh - - name: Get the output status - run: exit ${{ steps.compile.outputs.out }} diff --git a/.github/workflows/osx/entrypoint.sh b/.github/workflows/osx/entrypoint.sh deleted file mode 100755 index e3570fef584..00000000000 --- a/.github/workflows/osx/entrypoint.sh +++ /dev/null @@ -1,90 +0,0 @@ -#!/bin/sh -l -set -x -export TOP=$(pwd) -brew tap davidchall/hep -brew install lhapdf wget cmake coreutils -brew install gnu-sed -brew install gcc -brew install expat -brew install pythia -brew install libxmu -brew install hepmc2 -brew install --cask xquartz - - -which gfortran-11 -if [ "$?" = "0" ]; then - export CXX=g++-11 - export CC=gcc-11 - export FC=gfortran-11 - export F77=gfortran-11 - export LD=gfortran-11 -else - export CXX=g++ - export CC=gcc - export FC=gfortran - export F77=gfortran - export LD=gfortran -fi -export CXX=clang++ -export CC=clang -cp /usr/local/bin/gfortran-11 /usr/local/bin/gfortran - -ls -lah -wget -q https://geant4-data.web.cern.ch/releases/lib_11.0.1/Darwin-clang13.0.0-Monterey.tar.gz -tar -xzf Darwin-clang13.0.0-Monterey.tar.gz -ls -lah - -mkdir -p Geant4-11.0.1-Darwin/share/Geant4-11.0.1/data/ -cd Geant4-11.0.1-Darwin/share/Geant4-11.0.1/data/ -wget -q https://geant4-data.web.cern.ch/datasets/G4NDL.4.6.tar.gz -wget -q https://geant4-data.web.cern.ch/datasets/G4EMLOW.8.0.tar.gz -wget -q https://geant4-data.web.cern.ch/datasets/G4PhotonEvaporation.5.7.tar.gz -wget -q https://geant4-data.web.cern.ch/datasets/G4RadioactiveDecay.5.6.tar.gz -wget -q https://geant4-data.web.cern.ch/datasets/G4PARTICLEXS.4.0.tar.gz -wget -q https://geant4-data.web.cern.ch/datasets/G4PII.1.3.tar.gz -wget -q https://geant4-data.web.cern.ch/datasets/G4RealSurface.2.2.tar.gz -wget -q https://geant4-data.web.cern.ch/datasets/G4SAIDDATA.2.0.tar.gz -wget -q https://geant4-data.web.cern.ch/datasets/G4ABLA.3.1.tar.gz -wget -q https://geant4-data.web.cern.ch/datasets/G4INCL.1.0.tar.gz -wget -q https://geant4-data.web.cern.ch/datasets/G4ENSDFSTATE.2.3.tar.gz - -tar -xzf G4NDL.4.6.tar.gz -tar -xzf G4EMLOW.8.0.tar.gz -tar -xzf G4PhotonEvaporation.5.7.tar.gz -tar -xzf G4RadioactiveDecay.5.6.tar.gz -tar -xzf G4PARTICLEXS.4.0.tar.gz -tar -xzf G4PII.1.3.tar.gz -tar -xzf G4RealSurface.2.2.tar.gz -tar -xzf G4SAIDDATA.2.0.tar.gz -tar -xzf G4ABLA.3.1.tar.gz -tar -xzf G4INCL.1.0.tar.gz -tar -xzf G4ENSDFSTATE.2.3.tar.gz - -ls -lah -cd $TOP - - -gsed -i 's@/Users/gcosmo/Software/release/install/@'$TOP'/Geant4-11.0.1-Darwin/@g' $TOP/Geant4-11.0.1-Darwin/bin/geant4.sh - -source $TOP/Geant4-11.0.1-Darwin/bin/geant4.sh -gsed -i 's@/opt/local/@/usr/local/Cellar/expat/2.4.7/@g' Geant4-11.0.1-Darwin/lib/Geant4-11.0.1/Geant4PackageCache.cmake - -mkdir -p test -cd test -cmake -B. -S ../examples/extended/eventgenerator -DPYTHIA6_INTERNAL=ON -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON -DCMAKE_INSTALL_PREFIX=$TOP/INSTALL -DGeant4_DIR=$TOP/Geant4-11.0.1-Darwin/lib/Geant4-11.0.1 -DPYTHIA6_ROOT_DIR=/usr/local -DHEPMC_DIR=/usr/local -DLHAPDF_DIR=/usr/local -DCMAKE_Fortran_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC -cmake --build . -j 2 -cmake --install . -#Temporarly! -cp $TOP/INSTALL/lib/libG4Pythia6.dylib $TOP/Geant4-11.0.1-Darwin/lib - - -#Running tests - -cd $TOP/test/HepMC/HepMCEx01 -$TOP/INSTALL/bin/HepMCEx01 hepmc_pygen.in -$TOP/INSTALL/bin/HepMCEx01 hepmc_ascii.in - -cd $TOP/test/HepMC/HepMCEx02 -$TOP/INSTALL/bin/HepMCEx02 hepmc_pygen.in -$TOP/INSTALL/bin/HepMCEx02 hepmc_ascii.in From 193aa05d38e21c15a534a3cd14397b6f90c09f32 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi Date: Wed, 13 Mar 2024 13:47:45 +0100 Subject: [PATCH 59/59] Fix a typo in FindPythia6 --- cmake/Modules/FindPythia6.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/Modules/FindPythia6.cmake b/cmake/Modules/FindPythia6.cmake index 19cae710ce3..b4f115bfaf0 100644 --- a/cmake/Modules/FindPythia6.cmake +++ b/cmake/Modules/FindPythia6.cmake @@ -14,7 +14,7 @@ IF(TEST_PYTHIA6_ROOT_DIR STREQUAL "") endif() find_library(PYTHIA6_LIBRARY NAMES Pythia6 pythia6 pythia6-$ENV{PYTHIA6_VERSION} - HINTS $ENV{PYTHIA6} $ENV{PYTHIA6}/lib $ENV{PYTHIA6}/lib64 ${PYTHIA8_ROOT_DIR}/lib ${PYTHIA8_ROOT_DIR}/lib64) + HINTS $ENV{PYTHIA6} $ENV{PYTHIA6}/lib $ENV{PYTHIA6}/lib64 ${PYTHIA6_ROOT_DIR}/lib ${PYTHIA6_ROOT_DIR}/lib64) set(PYTHIA6_LIBRARIES ${PYTHIA6_LIBRARY}) #message(STATUS PYTHIA6_LIBRARIES ${PYTHIA6_LIBRARIES} )