geant4-python-application 0.1.0__tar.gz → 0.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/.github/workflows/build-test.yaml +32 -45
  2. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/PKG-INFO +44 -22
  3. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/README.md +36 -20
  4. geant4_python_application-0.1.1/binder/requirements.txt +2 -0
  5. geant4_python_application-0.1.1/binder/runtime.txt +1 -0
  6. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/pyproject.toml +13 -1
  7. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_python_application/_version.py +3 -3
  8. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/.clang-format +0 -0
  9. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/.cmake-format.yaml +0 -0
  10. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/.dockerignore +0 -0
  11. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/.github/CODEOWNERS +0 -0
  12. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/.github/dependabot.yaml +0 -0
  13. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/.github/workflows/wheels.yaml +0 -0
  14. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/.gitignore +0 -0
  15. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/.pre-commit-config.yaml +0 -0
  16. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/CMakeLists.txt +0 -0
  17. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/Dockerfile +0 -0
  18. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/INSTALLATION.md +0 -0
  19. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/LICENSE +0 -0
  20. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/NOTICE +0 -0
  21. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/PYTHON_DEVELOPER_GUIDE.md +0 -0
  22. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/docs/FEATURE_SUPPORT.md +0 -0
  23. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/attenuation.ipynb +0 -0
  24. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/00_qt_viewer_smoke.py +0 -0
  25. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/01_reference_physics_lists.py +0 -0
  26. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/02_gps_sources.py +0 -0
  27. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/03_scoring_meshes_hits.py +0 -0
  28. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/04_magnetic_electric_fields.py +0 -0
  29. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/05_optical_scintillation.py +0 -0
  30. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/06_callbacks.py +0 -0
  31. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/07_custom_physics.py +0 -0
  32. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/08_dna_medical.py +0 -0
  33. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/09_cad_vtk_root_generators.py +0 -0
  34. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/10_mpi_distributed.py +0 -0
  35. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/11_native_scoring_mesh.py +0 -0
  36. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/AUDIT.md +0 -0
  37. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/COMPATIBILITY.md +0 -0
  38. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/README.md +0 -0
  39. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/advanced/GoldFoilExperiment/gold_foil.py +0 -0
  40. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/advanced/NanoparticleTherapy/brain_tumor.py +0 -0
  41. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/advanced/NanoparticleTherapy/nano_therapy.py +0 -0
  42. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/basic/B1/b1.py +0 -0
  43. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/basic/B2/b2.py +0 -0
  44. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/basic/B3/b3.py +0 -0
  45. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/basic/B4/b4.py +0 -0
  46. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/basic/B5/b5.py +0 -0
  47. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/extended/analysis/AnaEx01/ana_ex01.py +0 -0
  48. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/extended/analysis/AnaEx02/ana_ex02.py +0 -0
  49. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/extended/analysis/AnaEx03/ana_ex03.py +0 -0
  50. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/extended/electromagnetic/TestEm1/test_em1.py +0 -0
  51. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/extended/eventgenerator/HepMC/hepmc.py +0 -0
  52. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/extended/eventgenerator/exgps/exgps.py +0 -0
  53. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/extended/eventgenerator/particleGun/particle_gun.py +0 -0
  54. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/extended/field/field01/field01.py +0 -0
  55. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/extended/field/field02/field02.py +0 -0
  56. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/extended/hadronic/Hadr00/hadr00.py +0 -0
  57. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/extended/medical/GammaTherapy/gamma_therapy.py +0 -0
  58. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/extended/medical/electronScattering/electron_scattering.py +0 -0
  59. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/extended/optical/LXe/lxe.py +0 -0
  60. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/extended/optical/OpNovice/op_novice.py +0 -0
  61. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/extended/optical/wls/wls.py +0 -0
  62. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/extended/parameterisations/Par01/par01.py +0 -0
  63. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/extended/physicslists/factory/factory.py +0 -0
  64. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/extended/radioactivedecay/rdecay01/rdecay01.py +0 -0
  65. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/extended/runAndEvent/RE01/re01.py +0 -0
  66. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/geant4-examples/Geant4-11.4.2-examples-python/run_gdml.py +0 -0
  67. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/examples/qt_viewer.py +0 -0
  68. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/licenses/CLHEP-COPYING +0 -0
  69. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/licenses/CLHEP-COPYING.LESSER +0 -0
  70. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/licenses/Expat-COPYING +0 -0
  71. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/licenses/Geant4-LICENSE +0 -0
  72. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/licenses/PTL-LICENSE +0 -0
  73. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/licenses/Xerces-C-LICENSE +0 -0
  74. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/licenses/Xerces-C-NOTICE +0 -0
  75. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/licenses/zlib-LICENSE +0 -0
  76. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/include/geant4_application/ActionInitialization.h +0 -0
  77. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/include/geant4_application/Application.h +0 -0
  78. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/include/geant4_application/DataModel.h +0 -0
  79. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/include/geant4_application/DetectorConstruction.h +0 -0
  80. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/include/geant4_application/EventAction.h +0 -0
  81. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/include/geant4_application/PhysicsList.h +0 -0
  82. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/include/geant4_application/PrimaryGeneratorAction.h +0 -0
  83. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/include/geant4_application/RunAction.h +0 -0
  84. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/include/geant4_application/SensitiveDetector.h +0 -0
  85. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/include/geant4_application/StackingAction.h +0 -0
  86. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/include/geant4_application/SteppingAction.h +0 -0
  87. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/include/geant4_application/SteppingVerbose.h +0 -0
  88. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/include/geant4_application/TrackingAction.h +0 -0
  89. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/src/ActionInitialization.cpp +0 -0
  90. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/src/Application.cpp +0 -0
  91. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/src/DataModel.cpp +0 -0
  92. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/src/DetectorConstruction.cpp +0 -0
  93. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/src/EventAction.cpp +0 -0
  94. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/src/PhysicsList.cpp +0 -0
  95. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/src/PrimaryGeneratorAction.cpp +0 -0
  96. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/src/RunAction.cpp +0 -0
  97. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/src/SensitiveDetector.cpp +0 -0
  98. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/src/StackingAction.cpp +0 -0
  99. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/src/SteppingAction.cpp +0 -0
  100. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/src/SteppingVerbose.cpp +0 -0
  101. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_application/src/TrackingAction.cpp +0 -0
  102. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_python_application/__init__.py +0 -0
  103. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_python_application/application.py +0 -0
  104. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_python_application/cad.py +0 -0
  105. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_python_application/detector.py +0 -0
  106. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_python_application/distributed.py +0 -0
  107. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_python_application/events.py +0 -0
  108. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_python_application/files/__init__.py +0 -0
  109. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_python_application/files/datasets.py +0 -0
  110. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_python_application/files/directories.py +0 -0
  111. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_python_application/gdml.py +0 -0
  112. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_python_application/generator.py +0 -0
  113. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_python_application/geometry.py +0 -0
  114. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_python_application/io.py +0 -0
  115. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_python_application/optical.py +0 -0
  116. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/geant4_python_application/scoring.py +0 -0
  117. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/python/module.cpp +0 -0
  118. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/src/vis/module.cpp +0 -0
  119. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/tests/__init__.py +0 -0
  120. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/tests/conftest.py +0 -0
  121. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/tests/test_analysis.py +0 -0
  122. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/tests/test_application.py +0 -0
  123. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/tests/test_capabilities.py +0 -0
  124. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/tests/test_module.py +0 -0
  125. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/tests/test_run.py +0 -0
  126. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/tools/audit_examples.py +0 -0
  127. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/tools/build_macos_self_contained.sh +0 -0
  128. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/tools/relink_qt_wheel.py +0 -0
  129. {geant4_python_application-0.1.0 → geant4_python_application-0.1.1}/tools/smoke_viewer.py +0 -0
@@ -26,7 +26,7 @@ jobs:
26
26
  strategy:
27
27
  fail-fast: false
28
28
  matrix:
29
- os: [ubuntu-latest, macos-latest] # Geant4 is not available on conda for windows TODO: update this when it is
29
+ os: [ubuntu-latest, macos-latest] # Geant4 is not available on conda for Windows
30
30
  defaults:
31
31
  run:
32
32
  shell: bash -l {0}
@@ -49,7 +49,9 @@ jobs:
49
49
  - name: Install additional dependencies (MacOS)
50
50
  if: matrix.os == 'macos-latest'
51
51
  run: |
52
- conda install -c conda-forge clang_osx-64
52
+ # macos-latest is Apple Silicon; clang_osx-64 would build an x86_64
53
+ # module that the arm64 Python cannot load.
54
+ conda install -c conda-forge clang_osx-arm64
53
55
 
54
56
  - name: Print versions
55
57
  run: |
@@ -89,7 +91,7 @@ jobs:
89
91
  strategy:
90
92
  fail-fast: false
91
93
  matrix:
92
- os: [ubuntu-latest, macos-latest, windows-latest]
94
+ os: [ubuntu-latest, macos-latest]
93
95
 
94
96
  steps:
95
97
  - name: Setup CMake
@@ -100,14 +102,16 @@ jobs:
100
102
  uses: actions/cache@v4
101
103
  with:
102
104
  path: ${{ github.workspace }}/xerces
103
- key: xerces-v${{ env.XERCES_VERSION }}-cpp${{ env.CPP_STANDARD }}
105
+ key:
106
+ xerces-v${{ env.XERCES_VERSION }}-cpp${{ env.CPP_STANDARD }}-${{
107
+ runner.os }}-${{ runner.arch }}
104
108
 
105
109
  - name: Build and Install Xerces-C
106
110
  if: steps.cache-xerces.outputs.cache-hit != 'true'
107
111
  run: |
108
112
  git clone https://github.com/apache/xerces-c.git xerces-source
109
113
  git -C xerces-source checkout tags/v${{ env.XERCES_VERSION }}
110
- cmake -B xerces-build -S xerces-source -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/xerces -DCMAKE_CXX_STANDARD=${{ env.CPP_STANDARD }} -DBUILD_SHARED_LIBS=OFF ${{ matrix.os == 'windows-latest' && '-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DCMAKE_CXX_FLAGS_RELEASE="/MT"' || '-G Ninja -DCMAKE_CXX_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -Dnetwork-accessor=socket -Dtranscoder=iconv' }}
114
+ cmake -G Ninja -B xerces-build -S xerces-source -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/xerces -DCMAKE_CXX_STANDARD=${{ env.CPP_STANDARD }} -DBUILD_SHARED_LIBS=OFF -DCMAKE_CXX_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -Dnetwork-accessor=socket -Dtranscoder=iconv
111
115
  cmake --build xerces-build --parallel $(nproc) --config Release --target install
112
116
 
113
117
  - name: Cache Geant4 Installation
@@ -115,13 +119,18 @@ jobs:
115
119
  uses: actions/cache@v4
116
120
  with:
117
121
  path: ${{ env.Geant4_DIR }}
118
- key: geant4-v${{ env.GEANT4_VERSION }}-cpp${{ env.CPP_STANDARD }}
122
+ key:
123
+ geant4-v${{ env.GEANT4_VERSION }}-cpp${{ env.CPP_STANDARD }}-${{
124
+ runner.os }}-${{ runner.arch }}
119
125
 
120
126
  - name: Build and Install Geant4 (without datasets)
121
127
  if: steps.cache-geant4.outputs.cache-hit != 'true'
122
128
  run: |
123
129
  git clone https://github.com/Geant4/geant4.git ${{ github.workspace }}/geant4-source --depth 1 --branch v${{ env.GEANT4_VERSION }}
124
- cmake -B geant4-build -S geant4-source -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ env.Geant4_DIR }} -DXERCESC_ROOT_DIR=${{ github.workspace }}/xerces -DCMAKE_CXX_STANDARD=${{ env.CPP_STANDARD }} -DGEANT4_USE_GDML=ON -DGEANT4_INSTALL_EXAMPLES=OFF -DGEANT4_INSTALL_DATA=OFF -DGEANT4_BUILD_TLS_MODEL=global-dynamic -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF ${{ matrix.os == 'windows-latest' && '-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DCMAKE_CXX_FLAGS_RELEASE="/MT"' || '-G Ninja -DCMAKE_CXX_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DGEANT4_USE_SYSTEM_EXPAT=OFF' }}
130
+ # Typo in Geant4 11.2.2's g4tools (fixed in later releases) that Xcode 16.3+ clang rejects.
131
+ sed -i.bak 's/a_from\.m_barnch/a_from.m_branch/' geant4-source/source/externals/g4tools/include/tools/wroot/columns.icc
132
+ # Geant4's bundled zlib does not compile against recent macOS SDKs; use the system one there.
133
+ cmake -G Ninja -B geant4-build -S geant4-source -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ env.Geant4_DIR }} -DXERCESC_ROOT_DIR=${{ github.workspace }}/xerces -DCMAKE_CXX_STANDARD=${{ env.CPP_STANDARD }} -DGEANT4_USE_GDML=ON -DGEANT4_INSTALL_EXAMPLES=OFF -DGEANT4_INSTALL_DATA=OFF -DGEANT4_BUILD_TLS_MODEL=global-dynamic -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_CXX_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DGEANT4_USE_SYSTEM_EXPAT=OFF ${{ runner.os == 'macOS' && '-DGEANT4_USE_SYSTEM_ZLIB=ON' || '' }}
125
134
  cmake --build geant4-build --parallel $(nproc) --config Release --target install
126
135
 
127
136
  install-geant4-datasets:
@@ -132,7 +141,7 @@ jobs:
132
141
  strategy:
133
142
  fail-fast: false
134
143
  matrix:
135
- os: [ubuntu-latest, macos-latest, windows-latest]
144
+ os: [ubuntu-latest, macos-latest]
136
145
 
137
146
  steps:
138
147
  - name: Cache Geant4 Installation
@@ -140,7 +149,9 @@ jobs:
140
149
  uses: actions/cache@v4
141
150
  with:
142
151
  path: ${{ env.Geant4_DIR }}
143
- key: geant4-v${{ env.GEANT4_VERSION }}-cpp${{ env.CPP_STANDARD }}
152
+ key:
153
+ geant4-v${{ env.GEANT4_VERSION }}-cpp${{ env.CPP_STANDARD }}-${{
154
+ runner.os }}-${{ runner.arch }}
144
155
  fail-on-cache-miss: true
145
156
 
146
157
  - name: Cache Geant4 Datasets
@@ -152,27 +163,14 @@ jobs:
152
163
  enableCrossOsArchive: true
153
164
  lookup-only: true
154
165
 
155
- - name: Move Geant4 datasets (Ubuntu/MacOS)
156
- if:
157
- steps.cache-geant4-data.outputs.cache-hit != 'true' && matrix.os !=
158
- 'windows-latest'
166
+ - name: Move Geant4 datasets
167
+ if: steps.cache-geant4-data.outputs.cache-hit != 'true'
159
168
  shell: bash
160
169
  run: |
161
170
  bash ${{ env.Geant4_DIR }}/bin/geant4-config --install-datasets
162
171
  bash ${{ env.Geant4_DIR }}/bin/geant4-config --check-datasets
163
172
  mv ${{ env.Geant4_DIR }}/share/Geant4/data ${{ github.workspace }}/geant4-data
164
173
 
165
- - name: Move Geant4 datasets (Windows)
166
- if:
167
- steps.cache-geant4-data.outputs.cache-hit != 'true' && matrix.os ==
168
- 'windows-latest'
169
- shell: powershell
170
- run: |
171
- Get-ChildItem -Path ${{ env.Geant4_DIR }}\bin
172
- cmd /c ${{ env.Geant4_DIR }}\bin\geant4-config.cmd --install-datasets
173
- cmd /c ${{ env.Geant4_DIR }}\bin\geant4-config.cmd --check-datasets
174
- Move-Item ${{ env.Geant4_DIR }}\share\Geant4\data ${{ github.workspace }}\geant4-data
175
-
176
174
  build-test:
177
175
  name:
178
176
  Build and Test for ${{ matrix.os }} (Python ${{ matrix.python-version }})
@@ -182,13 +180,14 @@ jobs:
182
180
  strategy:
183
181
  fail-fast: false
184
182
  matrix:
185
- os: [ubuntu-latest, macos-latest, windows-latest]
183
+ os: [ubuntu-latest, macos-latest]
186
184
  python-version:
187
185
  - "3.8"
188
186
  - "3.9"
189
187
  - "3.10"
190
188
  - "3.11"
191
189
  - "3.12"
190
+ - "3.13"
192
191
 
193
192
  steps:
194
193
  - name: Checkout
@@ -202,18 +201,14 @@ jobs:
202
201
  - name: Setup CMake
203
202
  uses: lukka/get-cmake@v3.30.3
204
203
 
205
- - name: Setup Windows environment variables
206
- if: matrix.os == 'windows-latest'
207
- shell: bash
208
- run: |
209
- echo "CMAKE_ARGS=-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded" >> $GITHUB_ENV
210
-
211
204
  - name: Cache Xerces-C Installation
212
205
  id: cache-xerces
213
206
  uses: actions/cache@v4
214
207
  with:
215
208
  path: ${{ github.workspace }}/xerces
216
- key: xerces-v${{ env.XERCES_VERSION }}-cpp${{ env.CPP_STANDARD }}
209
+ key:
210
+ xerces-v${{ env.XERCES_VERSION }}-cpp${{ env.CPP_STANDARD }}-${{
211
+ runner.os }}-${{ runner.arch }}
217
212
  fail-on-cache-miss: true
218
213
 
219
214
  - name: Cache Geant4 Installation
@@ -221,7 +216,9 @@ jobs:
221
216
  uses: actions/cache@v4
222
217
  with:
223
218
  path: ${{ env.Geant4_DIR }}
224
- key: geant4-v${{ env.GEANT4_VERSION }}-cpp${{ env.CPP_STANDARD }}
219
+ key:
220
+ geant4-v${{ env.GEANT4_VERSION }}-cpp${{ env.CPP_STANDARD }}-${{
221
+ runner.os }}-${{ runner.arch }}
225
222
  fail-on-cache-miss: true
226
223
 
227
224
  - name: pip install the package
@@ -242,23 +239,13 @@ jobs:
242
239
  fail-on-cache-miss: true
243
240
  enableCrossOsArchive: true
244
241
 
245
- - name: Move Geant4 datasets (Ubuntu/MacOS)
246
- if: matrix.python-version != '3.11' && matrix.os != 'windows-latest'
242
+ - name: Move Geant4 datasets
243
+ if: matrix.python-version != '3.11'
247
244
  run: |
248
245
  GEANT4_DATA_DIR=$(python -c "import geant4_python_application; print(geant4_python_application.data_directory())")
249
246
  mkdir -p ${{ github.workspace }}/geant4-data "$GEANT4_DATA_DIR"
250
247
  mv ${{ github.workspace }}/geant4-data/* "$GEANT4_DATA_DIR"
251
248
 
252
- # TODO: unify this with the above
253
- - name: Move Geant4 datasets (Windows)
254
- if: matrix.python-version != '3.11' && matrix.os == 'windows-latest'
255
- shell: powershell
256
- run: |
257
- $env:GEANT4_DATA_DIR = python -c "import geant4_python_application; print(geant4_python_application.data_directory())"
258
- New-Item -ItemType Directory -Path "${{ github.workspace }}\geant4-data" -Force
259
- New-Item -ItemType Directory -Path $env:GEANT4_DATA_DIR -Force
260
- Move-Item "${{ github.workspace }}\geant4-data\*" $env:GEANT4_DATA_DIR -Force
261
-
262
249
  - name: Install datasets
263
250
  uses: nick-fields/retry@v3
264
251
  with:
@@ -1,8 +1,9 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: geant4_python_application
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: Geant4 Python Application
5
- Author-Email: Luis Antonio Obis Aparicio <luis.antonio.obis@gmail.com>
5
+ Author-Email: Luis Antonio Obis Aparicio <luis.antonio.obis@gmail.com>, Kavya Wadhwa <kavyavadhwa@gmail.com>
6
+ Maintainer-Email: Luis Antonio Obis Aparicio <luis.antonio.obis@gmail.com>, Kavya Wadhwa <kavyavadhwa@gmail.com>
6
7
  Classifier: Intended Audience :: Developers
7
8
  Classifier: Intended Audience :: Information Technology
8
9
  Classifier: Intended Audience :: Science/Research
@@ -24,6 +25,11 @@ Classifier: Topic :: Scientific/Engineering :: Mathematics
24
25
  Classifier: Topic :: Scientific/Engineering :: Physics
25
26
  Classifier: Topic :: Software Development
26
27
  Classifier: Topic :: Utilities
28
+ Project-URL: Homepage, https://github.com/lobis/geant4-python-application
29
+ Project-URL: Source, https://github.com/lobis/geant4-python-application
30
+ Project-URL: Issues, https://github.com/lobis/geant4-python-application/issues
31
+ Project-URL: Documentation, https://github.com/lobis/geant4-python-application/blob/main/INSTALLATION.md
32
+ Project-URL: Changelog, https://github.com/lobis/geant4-python-application/releases
27
33
  Requires-Python: >=3.8
28
34
  Requires-Dist: awkward
29
35
  Requires-Dist: vector
@@ -49,11 +55,13 @@ Description-Content-Type: text/markdown
49
55
 
50
56
  # Geant4 Python Application
51
57
 
52
- [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/lobis/geant4-python-application/HEAD?labpath=attenuation.ipynb)
53
- [![Binder](https://binderhub.ssl-hep.org/badge_logo.svg)](https://binderhub.ssl-hep.org/v2/gh/lobis/geant4-python-application/HEAD?labpath=attenuation.ipynb)
58
+ [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/lobis/geant4-python-application/HEAD?labpath=examples%2Fattenuation.ipynb)
59
+ [![Binder](https://binderhub.ssl-hep.org/badge_logo.svg)](https://binderhub.ssl-hep.org/v2/gh/lobis/geant4-python-application/HEAD?labpath=examples%2Fattenuation.ipynb)
54
60
 
61
+ [![PyPI](https://img.shields.io/pypi/v/geant4-python-application)](https://pypi.org/project/geant4-python-application/)
62
+ [![Python](https://img.shields.io/pypi/pyversions/geant4-python-application)](https://pypi.org/project/geant4-python-application/)
55
63
  [![Wheels](https://github.com/lobis/geant4-python-application/actions/workflows/wheels.yaml/badge.svg)](https://github.com/lobis/geant4-python-application/actions/workflows/wheels.yaml)
56
- [![Build and Test](https://github.com/lobis/geant4-python-application/actions/workflows/build-test.yaml/badge.svg)](https://github.com/lobis/geant4-python-application/actions/workflows/test.yaml)
64
+ [![Build and Test](https://github.com/lobis/geant4-python-application/actions/workflows/build-test.yaml/badge.svg)](https://github.com/lobis/geant4-python-application/actions/workflows/build-test.yaml)
57
65
 
58
66
  This is an experiment at providing a pythonic interface to Geant4.
59
67
 
@@ -73,7 +81,7 @@ looking at [geant4_pybind](https://github.com/HaarigerHarald/geant4_pybind).
73
81
  [awkward array](https://github.com/scikit-hep/awkward)
74
82
 
75
83
  New to Geant4 or this package? See the
76
- [Python developer guide](PYTHON_DEVELOPER_GUIDE.md).
84
+ [Python developer guide](https://github.com/lobis/geant4-python-application/blob/main/PYTHON_DEVELOPER_GUIDE.md).
77
85
 
78
86
  ## Platform support
79
87
 
@@ -84,36 +92,49 @@ reach out to kavyavadhwa@gmail.com.
84
92
 
85
93
  ## Installation
86
94
 
87
- Prebuilt wheels for macOS (Apple Silicon and Intel) and Linux x86_64, Python 3.8
88
- – 3.13, bundle Geant4 — no separate Geant4 (C++) installation is needed:
95
+ The package is published on
96
+ [PyPI](https://pypi.org/project/geant4-python-application/):
89
97
 
90
98
  ```bash
91
99
  pip install "geant4-python-application[gui]"
92
100
  ```
93
101
 
94
- The `gui` extra adds the interactive Qt viewer; leave it out for a physics-only
95
- install.
96
-
97
- Geant4's physics data files download automatically on first use, so you can run
98
- an example straight away:
102
+ - Prebuilt wheels for macOS (Apple Silicon and Intel) and Linux x86_64, Python
103
+ 3.8–3.13. Geant4 is bundled, so no separate Geant4 (C++) installation is
104
+ needed.
105
+ - `[gui]` adds the interactive Qt viewer (`app.visualize()`); leave it out for a
106
+ physics-only install.
107
+ - Check the installation:
108
+
109
+ ```bash
110
+ python -c "import geant4_python_application as g4; print(g4.__version__)"
111
+ ```
112
+
113
+ - The first simulation downloads Geant4's data files (~2 GB) once per user, to
114
+ `~/Library/Application Support/geant4_python_application` (macOS) or
115
+ `~/.local/share/geant4_python_application` (Linux). Set
116
+ `GEANT4_PYTHON_APPLICATION_DIR` to use another location.
117
+ - Windows, Linux aarch64, building from source and data file management are
118
+ covered in
119
+ [INSTALLATION.md](https://github.com/lobis/geant4-python-application/blob/main/INSTALLATION.md).
120
+ On Windows, WSL works with the Linux wheels.
121
+
122
+ The examples are not part of the package; run them from a clone of the
123
+ repository:
99
124
 
100
125
  ```bash
126
+ git clone https://github.com/lobis/geant4-python-application
127
+ cd geant4-python-application
101
128
  python examples/geant4-examples/Geant4-11.4.2-examples-python/basic/B1/b1.py --batch -n 10
102
129
  ```
103
130
 
104
131
  `--batch` runs headless; drop it to open the Qt viewer.
105
132
 
106
- Building from source (other platforms, development), the Qt viewer, and data
107
- file management are covered in [INSTALLATION.md](INSTALLATION.md).
108
-
109
133
  ## Usage
110
134
 
111
135
  ```python
112
136
  import geant4_python_application as g4
113
137
 
114
- # Use a temporary directory for the Geant4 data files (remove this line to use the default location)
115
- g4.application_directory(temp=True)
116
-
117
138
  with g4.Application(gdml=g4.basic_gdml, seed=137) as app:
118
139
  events = app.run(100)
119
140
 
@@ -206,9 +227,10 @@ start, count = dist.split_count(1000, rank, size) # mpiexec -n 2 python run.py
206
227
  ### Interactive Qt visualization
207
228
 
208
229
  Install with the `gui` extra (`pip install "geant4-python-application[gui]"`),
209
- or for source builds see [INSTALLATION.md](INSTALLATION.md). Then open Geant4's
210
- interactive Qt viewer. The call returns when the window is closed, and commands
211
- can be entered in the viewer's command panel:
230
+ or for source builds see
231
+ [INSTALLATION.md](https://github.com/lobis/geant4-python-application/blob/main/INSTALLATION.md).
232
+ Then open Geant4's interactive Qt viewer. The call returns when the window is
233
+ closed, and commands can be entered in the viewer's command panel:
212
234
 
213
235
  ```python
214
236
  import geant4_python_application as g4
@@ -1,10 +1,12 @@
1
1
  # Geant4 Python Application
2
2
 
3
- [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/lobis/geant4-python-application/HEAD?labpath=attenuation.ipynb)
4
- [![Binder](https://binderhub.ssl-hep.org/badge_logo.svg)](https://binderhub.ssl-hep.org/v2/gh/lobis/geant4-python-application/HEAD?labpath=attenuation.ipynb)
3
+ [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/lobis/geant4-python-application/HEAD?labpath=examples%2Fattenuation.ipynb)
4
+ [![Binder](https://binderhub.ssl-hep.org/badge_logo.svg)](https://binderhub.ssl-hep.org/v2/gh/lobis/geant4-python-application/HEAD?labpath=examples%2Fattenuation.ipynb)
5
5
 
6
+ [![PyPI](https://img.shields.io/pypi/v/geant4-python-application)](https://pypi.org/project/geant4-python-application/)
7
+ [![Python](https://img.shields.io/pypi/pyversions/geant4-python-application)](https://pypi.org/project/geant4-python-application/)
6
8
  [![Wheels](https://github.com/lobis/geant4-python-application/actions/workflows/wheels.yaml/badge.svg)](https://github.com/lobis/geant4-python-application/actions/workflows/wheels.yaml)
7
- [![Build and Test](https://github.com/lobis/geant4-python-application/actions/workflows/build-test.yaml/badge.svg)](https://github.com/lobis/geant4-python-application/actions/workflows/test.yaml)
9
+ [![Build and Test](https://github.com/lobis/geant4-python-application/actions/workflows/build-test.yaml/badge.svg)](https://github.com/lobis/geant4-python-application/actions/workflows/build-test.yaml)
8
10
 
9
11
  This is an experiment at providing a pythonic interface to Geant4.
10
12
 
@@ -24,7 +26,7 @@ looking at [geant4_pybind](https://github.com/HaarigerHarald/geant4_pybind).
24
26
  [awkward array](https://github.com/scikit-hep/awkward)
25
27
 
26
28
  New to Geant4 or this package? See the
27
- [Python developer guide](PYTHON_DEVELOPER_GUIDE.md).
29
+ [Python developer guide](https://github.com/lobis/geant4-python-application/blob/main/PYTHON_DEVELOPER_GUIDE.md).
28
30
 
29
31
  ## Platform support
30
32
 
@@ -35,36 +37,49 @@ reach out to kavyavadhwa@gmail.com.
35
37
 
36
38
  ## Installation
37
39
 
38
- Prebuilt wheels for macOS (Apple Silicon and Intel) and Linux x86_64, Python 3.8
39
- – 3.13, bundle Geant4 — no separate Geant4 (C++) installation is needed:
40
+ The package is published on
41
+ [PyPI](https://pypi.org/project/geant4-python-application/):
40
42
 
41
43
  ```bash
42
44
  pip install "geant4-python-application[gui]"
43
45
  ```
44
46
 
45
- The `gui` extra adds the interactive Qt viewer; leave it out for a physics-only
46
- install.
47
-
48
- Geant4's physics data files download automatically on first use, so you can run
49
- an example straight away:
47
+ - Prebuilt wheels for macOS (Apple Silicon and Intel) and Linux x86_64, Python
48
+ 3.8–3.13. Geant4 is bundled, so no separate Geant4 (C++) installation is
49
+ needed.
50
+ - `[gui]` adds the interactive Qt viewer (`app.visualize()`); leave it out for a
51
+ physics-only install.
52
+ - Check the installation:
53
+
54
+ ```bash
55
+ python -c "import geant4_python_application as g4; print(g4.__version__)"
56
+ ```
57
+
58
+ - The first simulation downloads Geant4's data files (~2 GB) once per user, to
59
+ `~/Library/Application Support/geant4_python_application` (macOS) or
60
+ `~/.local/share/geant4_python_application` (Linux). Set
61
+ `GEANT4_PYTHON_APPLICATION_DIR` to use another location.
62
+ - Windows, Linux aarch64, building from source and data file management are
63
+ covered in
64
+ [INSTALLATION.md](https://github.com/lobis/geant4-python-application/blob/main/INSTALLATION.md).
65
+ On Windows, WSL works with the Linux wheels.
66
+
67
+ The examples are not part of the package; run them from a clone of the
68
+ repository:
50
69
 
51
70
  ```bash
71
+ git clone https://github.com/lobis/geant4-python-application
72
+ cd geant4-python-application
52
73
  python examples/geant4-examples/Geant4-11.4.2-examples-python/basic/B1/b1.py --batch -n 10
53
74
  ```
54
75
 
55
76
  `--batch` runs headless; drop it to open the Qt viewer.
56
77
 
57
- Building from source (other platforms, development), the Qt viewer, and data
58
- file management are covered in [INSTALLATION.md](INSTALLATION.md).
59
-
60
78
  ## Usage
61
79
 
62
80
  ```python
63
81
  import geant4_python_application as g4
64
82
 
65
- # Use a temporary directory for the Geant4 data files (remove this line to use the default location)
66
- g4.application_directory(temp=True)
67
-
68
83
  with g4.Application(gdml=g4.basic_gdml, seed=137) as app:
69
84
  events = app.run(100)
70
85
 
@@ -157,9 +172,10 @@ start, count = dist.split_count(1000, rank, size) # mpiexec -n 2 python run.py
157
172
  ### Interactive Qt visualization
158
173
 
159
174
  Install with the `gui` extra (`pip install "geant4-python-application[gui]"`),
160
- or for source builds see [INSTALLATION.md](INSTALLATION.md). Then open Geant4's
161
- interactive Qt viewer. The call returns when the window is closed, and commands
162
- can be entered in the viewer's command panel:
175
+ or for source builds see
176
+ [INSTALLATION.md](https://github.com/lobis/geant4-python-application/blob/main/INSTALLATION.md).
177
+ Then open Geant4's interactive Qt viewer. The call returns when the window is
178
+ closed, and commands can be entered in the viewer's command panel:
163
179
 
164
180
  ```python
165
181
  import geant4_python_application as g4
@@ -0,0 +1,2 @@
1
+ geant4-python-application
2
+ matplotlib
@@ -0,0 +1 @@
1
+ python-3.12
@@ -4,7 +4,12 @@ requires = ["scikit-build-core>=0.3.3", "pybind11"]
4
4
 
5
5
  [project]
6
6
  authors = [
7
- { name = "Luis Antonio Obis Aparicio", email = "luis.antonio.obis@gmail.com" }
7
+ { name = "Luis Antonio Obis Aparicio", email = "luis.antonio.obis@gmail.com" },
8
+ { name = "Kavya Wadhwa", email = "kavyavadhwa@gmail.com" },
9
+ ]
10
+ maintainers = [
11
+ { name = "Luis Antonio Obis Aparicio", email = "luis.antonio.obis@gmail.com" },
12
+ { name = "Kavya Wadhwa", email = "kavyavadhwa@gmail.com" },
8
13
  ]
9
14
  classifiers = [
10
15
  "Intended Audience :: Developers",
@@ -46,6 +51,13 @@ readme = "README.md"
46
51
  requires-python = ">=3.8"
47
52
  dynamic = ["version"]
48
53
 
54
+ [project.urls]
55
+ Homepage = "https://github.com/lobis/geant4-python-application"
56
+ Source = "https://github.com/lobis/geant4-python-application"
57
+ Issues = "https://github.com/lobis/geant4-python-application/issues"
58
+ Documentation = "https://github.com/lobis/geant4-python-application/blob/main/INSTALLATION.md"
59
+ Changelog = "https://github.com/lobis/geant4-python-application/releases"
60
+
49
61
  [tool.scikit-build]
50
62
  metadata.version.provider = "scikit_build_core.metadata.setuptools_scm"
51
63
  sdist.include = ["src/geant4_python_application/_version.py"]
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.1.0'
22
- __version_tuple__ = version_tuple = (0, 1, 0)
21
+ __version__ = version = '0.1.1'
22
+ __version_tuple__ = version_tuple = (0, 1, 1)
23
23
 
24
- __commit_id__ = commit_id = 'ga2353b5b4'
24
+ __commit_id__ = commit_id = 'g77bb2e60a'