xcoll 0.4.0__py3-none-any.whl → 0.5.0__py3-none-any.whl

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.

Potentially problematic release.


This version of xcoll might be problematic. Click here for more details.

Files changed (324) hide show
  1. xcoll/__init__.py +2 -1
  2. xcoll/beam_elements/__init__.py +7 -1
  3. xcoll/beam_elements/absorber.py +2 -2
  4. xcoll/beam_elements/base.py +105 -67
  5. xcoll/beam_elements/blowup.py +198 -0
  6. xcoll/beam_elements/{collimators_src → elements_src}/black_absorber.h +21 -3
  7. xcoll/beam_elements/{collimators_src → elements_src}/black_crystal.h +20 -2
  8. xcoll/beam_elements/elements_src/blowup.h +42 -0
  9. xcoll/beam_elements/elements_src/emittance_monitor.h +109 -0
  10. xcoll/beam_elements/{collimators_src → elements_src}/everest_block.h +19 -2
  11. xcoll/beam_elements/{collimators_src → elements_src}/everest_collimator.h +19 -3
  12. xcoll/beam_elements/{collimators_src → elements_src}/everest_crystal.h +30 -9
  13. xcoll/beam_elements/everest.py +5 -6
  14. xcoll/beam_elements/monitor.py +428 -0
  15. xcoll/colldb.py +103 -74
  16. xcoll/general.py +4 -4
  17. xcoll/initial_distribution.py +18 -6
  18. xcoll/install.py +3 -1
  19. xcoll/interaction_record/interaction_record.py +126 -80
  20. xcoll/interaction_record/interaction_record_src/interaction_record.h +43 -43
  21. xcoll/line_tools.py +8 -9
  22. xcoll/lossmap.py +48 -38
  23. xcoll/scattering_routines/everest/amorphous.h +4 -11
  24. xcoll/scattering_routines/everest/channeling.h +3 -8
  25. xcoll/scattering_routines/everest/everest.h +4 -1
  26. xcoll/scattering_routines/everest/jaw.h +4 -3
  27. xcoll/scattering_routines/everest/materials.py +35 -15
  28. xcoll/scattering_routines/everest/multiple_coulomb_scattering.h +2 -2
  29. xcoll/scattering_routines/everest/nuclear_interaction.h +1 -1
  30. xcoll/scattering_routines/everest/properties.h +6 -1
  31. xcoll/scattering_routines/fluka/flukaio/lib/libFlukaIO64.a +0 -0
  32. xcoll/scattering_routines/geant4/collimasim/.git +1 -0
  33. xcoll/scattering_routines/geant4/collimasim/.gitignore +12 -0
  34. xcoll/scattering_routines/geant4/collimasim/.gitmodules +3 -0
  35. xcoll/scattering_routines/geant4/collimasim/CMakeLists.txt +26 -0
  36. xcoll/scattering_routines/geant4/collimasim/README.md +21 -0
  37. xcoll/scattering_routines/geant4/collimasim/docs/Makefile +20 -0
  38. xcoll/scattering_routines/geant4/collimasim/docs/make.bat +35 -0
  39. xcoll/scattering_routines/geant4/collimasim/docs/source/collimasim.rst +10 -0
  40. xcoll/scattering_routines/geant4/collimasim/docs/source/conf.py +59 -0
  41. xcoll/scattering_routines/geant4/collimasim/docs/source/index.rst +26 -0
  42. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.appveyor.yml +37 -0
  43. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.clang-format +19 -0
  44. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.clang-tidy +65 -0
  45. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.cmake-format.yaml +73 -0
  46. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.git +1 -0
  47. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/CODEOWNERS +9 -0
  48. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/CONTRIBUTING.md +386 -0
  49. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/ISSUE_TEMPLATE/bug-report.yml +45 -0
  50. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/ISSUE_TEMPLATE/config.yml +8 -0
  51. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/dependabot.yml +16 -0
  52. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/labeler.yml +8 -0
  53. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/labeler_merged.yml +3 -0
  54. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/pull_request_template.md +19 -0
  55. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/ci.yml +969 -0
  56. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/configure.yml +84 -0
  57. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/format.yml +48 -0
  58. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/labeler.yml +16 -0
  59. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/pip.yml +103 -0
  60. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.gitignore +45 -0
  61. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.pre-commit-config.yaml +151 -0
  62. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.readthedocs.yml +3 -0
  63. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/CMakeLists.txt +297 -0
  64. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/LICENSE +29 -0
  65. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/MANIFEST.in +6 -0
  66. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/README.rst +180 -0
  67. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/Doxyfile +23 -0
  68. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/Makefile +192 -0
  69. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/_static/theme_overrides.css +11 -0
  70. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/chrono.rst +81 -0
  71. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/custom.rst +93 -0
  72. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/eigen.rst +310 -0
  73. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/functional.rst +109 -0
  74. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/index.rst +43 -0
  75. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/overview.rst +171 -0
  76. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/stl.rst +251 -0
  77. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/strings.rst +305 -0
  78. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/classes.rst +1297 -0
  79. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/embedding.rst +262 -0
  80. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/exceptions.rst +396 -0
  81. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/functions.rst +568 -0
  82. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/misc.rst +337 -0
  83. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/index.rst +13 -0
  84. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/numpy.rst +463 -0
  85. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/object.rst +286 -0
  86. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/utilities.rst +155 -0
  87. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/smart_ptrs.rst +174 -0
  88. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/basics.rst +308 -0
  89. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/benchmark.py +91 -0
  90. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/benchmark.rst +95 -0
  91. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/changelog.rst +2050 -0
  92. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/classes.rst +542 -0
  93. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/cmake/index.rst +8 -0
  94. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/compiling.rst +648 -0
  95. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/conf.py +381 -0
  96. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/faq.rst +343 -0
  97. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/index.rst +48 -0
  98. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/installing.rst +105 -0
  99. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/limitations.rst +72 -0
  100. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11-logo.png +0 -0
  101. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python1.png +0 -0
  102. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python1.svg +427 -0
  103. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python2.png +0 -0
  104. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python2.svg +427 -0
  105. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/reference.rst +130 -0
  106. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/release.rst +96 -0
  107. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/requirements.txt +8 -0
  108. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/upgrade.rst +548 -0
  109. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/attr.h +605 -0
  110. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/buffer_info.h +144 -0
  111. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/cast.h +1432 -0
  112. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/chrono.h +213 -0
  113. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/common.h +2 -0
  114. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/complex.h +65 -0
  115. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/class.h +709 -0
  116. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/common.h +1021 -0
  117. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/descr.h +104 -0
  118. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/init.h +346 -0
  119. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/internals.h +467 -0
  120. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/type_caster_base.h +978 -0
  121. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/typeid.h +55 -0
  122. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/eigen.h +606 -0
  123. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/embed.h +284 -0
  124. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/eval.h +163 -0
  125. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/functional.h +121 -0
  126. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/gil.h +193 -0
  127. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/iostream.h +275 -0
  128. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/numpy.h +1741 -0
  129. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/operators.h +163 -0
  130. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/options.h +65 -0
  131. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/pybind11.h +2497 -0
  132. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/pytypes.h +1879 -0
  133. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl/filesystem.h +103 -0
  134. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl.h +375 -0
  135. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl_bind.h +747 -0
  136. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/noxfile.py +88 -0
  137. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/__init__.py +11 -0
  138. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/__main__.py +52 -0
  139. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/_version.py +12 -0
  140. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/_version.pyi +6 -0
  141. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/commands.py +21 -0
  142. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/py.typed +0 -0
  143. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/setup_helpers.py +482 -0
  144. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/setup_helpers.pyi +63 -0
  145. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pyproject.toml +41 -0
  146. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/setup.cfg +56 -0
  147. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/setup.py +155 -0
  148. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/CMakeLists.txt +503 -0
  149. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/conftest.py +208 -0
  150. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/constructor_stats.h +275 -0
  151. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/cross_module_gil_utils.cpp +73 -0
  152. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/env.py +33 -0
  153. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_python_package/pytest.ini +0 -0
  154. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_python_package/test_files.py +279 -0
  155. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_setuptools/pytest.ini +0 -0
  156. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_setuptools/test_setuphelper.py +143 -0
  157. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/local_bindings.h +85 -0
  158. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/object.h +179 -0
  159. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_cross_module_tests.cpp +151 -0
  160. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_tests.cpp +91 -0
  161. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_tests.h +85 -0
  162. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pytest.ini +19 -0
  163. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/requirements.txt +12 -0
  164. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_async.cpp +26 -0
  165. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_async.py +25 -0
  166. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_buffers.cpp +216 -0
  167. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_buffers.py +163 -0
  168. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_builtin_casters.cpp +286 -0
  169. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_builtin_casters.py +536 -0
  170. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_call_policies.cpp +107 -0
  171. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_call_policies.py +248 -0
  172. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_callbacks.cpp +227 -0
  173. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_callbacks.py +202 -0
  174. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_chrono.cpp +84 -0
  175. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_chrono.py +210 -0
  176. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_class.cpp +550 -0
  177. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_class.py +473 -0
  178. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/CMakeLists.txt +84 -0
  179. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/embed.cpp +21 -0
  180. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_embed/CMakeLists.txt +28 -0
  181. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_function/CMakeLists.txt +39 -0
  182. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_target/CMakeLists.txt +46 -0
  183. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/main.cpp +6 -0
  184. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt +41 -0
  185. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_function/CMakeLists.txt +35 -0
  186. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt +41 -0
  187. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/test.py +10 -0
  188. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_constants_and_functions.cpp +165 -0
  189. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_constants_and_functions.py +53 -0
  190. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_copy_move.cpp +238 -0
  191. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_copy_move.py +126 -0
  192. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_casters.cpp +141 -0
  193. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_casters.py +117 -0
  194. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_setup.cpp +41 -0
  195. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_setup.py +50 -0
  196. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_docstring_options.cpp +69 -0
  197. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_docstring_options.py +42 -0
  198. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eigen.cpp +348 -0
  199. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eigen.py +771 -0
  200. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/CMakeLists.txt +47 -0
  201. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/catch.cpp +22 -0
  202. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/external_module.cpp +23 -0
  203. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/test_interpreter.cpp +326 -0
  204. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/test_interpreter.py +15 -0
  205. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_enum.cpp +148 -0
  206. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_enum.py +272 -0
  207. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval.cpp +119 -0
  208. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval.py +51 -0
  209. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval_call.py +5 -0
  210. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.cpp +285 -0
  211. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.h +12 -0
  212. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.py +265 -0
  213. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_factory_constructors.cpp +397 -0
  214. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_factory_constructors.py +520 -0
  215. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_gil_scoped.cpp +49 -0
  216. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_gil_scoped.py +94 -0
  217. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_iostream.cpp +125 -0
  218. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_iostream.py +331 -0
  219. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_kwargs_and_defaults.cpp +153 -0
  220. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_kwargs_and_defaults.py +284 -0
  221. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_local_bindings.cpp +107 -0
  222. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_local_bindings.py +257 -0
  223. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_methods_and_attributes.cpp +412 -0
  224. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_methods_and_attributes.py +517 -0
  225. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_modules.cpp +102 -0
  226. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_modules.py +92 -0
  227. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_multiple_inheritance.cpp +233 -0
  228. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_multiple_inheritance.py +360 -0
  229. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_array.cpp +472 -0
  230. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_array.py +593 -0
  231. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_dtypes.cpp +524 -0
  232. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_dtypes.py +441 -0
  233. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_vectorize.cpp +103 -0
  234. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_vectorize.py +267 -0
  235. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_opaque_types.cpp +73 -0
  236. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_opaque_types.py +59 -0
  237. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_operator_overloading.cpp +235 -0
  238. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_operator_overloading.py +146 -0
  239. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pickling.cpp +189 -0
  240. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pickling.py +82 -0
  241. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pytypes.cpp +560 -0
  242. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pytypes.py +651 -0
  243. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_sequences_and_iterators.cpp +500 -0
  244. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_sequences_and_iterators.py +253 -0
  245. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_smart_ptr.cpp +452 -0
  246. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_smart_ptr.py +318 -0
  247. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl.cpp +342 -0
  248. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl.py +291 -0
  249. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl_binders.cpp +131 -0
  250. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl_binders.py +318 -0
  251. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_tagbased_polymorphic.cpp +144 -0
  252. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_tagbased_polymorphic.py +29 -0
  253. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_thread.cpp +66 -0
  254. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_thread.py +44 -0
  255. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_union.cpp +22 -0
  256. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_union.py +9 -0
  257. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_virtual_functions.cpp +510 -0
  258. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_virtual_functions.py +408 -0
  259. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/valgrind-numpy-scipy.supp +140 -0
  260. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/valgrind-python.supp +117 -0
  261. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindCatch.cmake +70 -0
  262. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindEigen3.cmake +86 -0
  263. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindPythonLibsNew.cmake +257 -0
  264. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/check-style.sh +44 -0
  265. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/cmake_uninstall.cmake.in +23 -0
  266. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/libsize.py +39 -0
  267. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/make_changelog.py +64 -0
  268. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Common.cmake +402 -0
  269. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Config.cmake.in +233 -0
  270. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11NewTools.cmake +276 -0
  271. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Tools.cmake +214 -0
  272. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pyproject.toml +3 -0
  273. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/setup_global.py.in +65 -0
  274. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/setup_main.py.in +41 -0
  275. xcoll/scattering_routines/geant4/collimasim/pyproject.toml +8 -0
  276. xcoll/scattering_routines/geant4/collimasim/setup.py +144 -0
  277. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSPyATInterface.cpp +403 -0
  278. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSPyATInterface.hh +100 -0
  279. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSXtrackInterface.cpp +763 -0
  280. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSXtrackInterface.hh +118 -0
  281. xcoll/scattering_routines/geant4/collimasim/src/collimasim/__init__.py +8 -0
  282. xcoll/scattering_routines/geant4/collimasim/src/collimasim/bindings.cpp +63 -0
  283. xcoll/scattering_routines/geant4/collimasim/src/collimasim/pyCollimatorPass.py +142 -0
  284. xcoll/scattering_routines/geant4/collimasim/src/collimasim/xtrack_collimator.py +556 -0
  285. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/PKG-INFO +6 -0
  286. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/SOURCES.txt +24 -0
  287. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/dependency_links.txt +1 -0
  288. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/not-zip-safe +1 -0
  289. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/top_level.txt +1 -0
  290. xcoll/scattering_routines/geant4/collimasim/tests/README.md +25 -0
  291. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_forions.dat +25 -0
  292. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_new_example.dat +18 -0
  293. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_old_example.dat +68 -0
  294. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_testing.dat +15 -0
  295. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_yaml_example.yaml +110 -0
  296. xcoll/scattering_routines/geant4/collimasim/tests/resources/collgaps.dat +7 -0
  297. xcoll/scattering_routines/geant4/collimasim/tests/resources/collgaps_pyat_test.dat +3 -0
  298. xcoll/scattering_routines/geant4/collimasim/tests/resources/collonly_twiss_file_example.tfs +54 -0
  299. xcoll/scattering_routines/geant4/collimasim/tests/resources/settings.gmad +3 -0
  300. xcoll/scattering_routines/geant4/collimasim/tests/resources/settings_black_absorber.gmad +3 -0
  301. xcoll/scattering_routines/geant4/collimasim/tests/resources/settings_ions.gmad +5 -0
  302. xcoll/scattering_routines/geant4/collimasim/tests/resources/twiss_file_testing.tfs +51 -0
  303. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat.py +65 -0
  304. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat_passmethod.py +59 -0
  305. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat_tracking.py +102 -0
  306. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack.py +75 -0
  307. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_angle.py +74 -0
  308. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_colldb_load.py +84 -0
  309. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_interaction.py +159 -0
  310. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_interaction_ion.py +99 -0
  311. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_ions.py +78 -0
  312. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_lost_energy.py +88 -0
  313. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tilt.py +80 -0
  314. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tracking.py +97 -0
  315. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tracking_ions.py +96 -0
  316. xcoll/scattering_routines/geometry/collimator_geometry.h +9 -10
  317. xcoll/scattering_routines/geometry/crystal_geometry.h +9 -6
  318. {xcoll-0.4.0.dist-info → xcoll-0.5.0.dist-info}/METADATA +1 -1
  319. xcoll-0.5.0.dist-info/RECORD +413 -0
  320. xcoll/scattering_routines/fluka/build_fluka_input.py +0 -58
  321. xcoll-0.4.0.dist-info/RECORD +0 -126
  322. {xcoll-0.4.0.dist-info → xcoll-0.5.0.dist-info}/LICENSE +0 -0
  323. {xcoll-0.4.0.dist-info → xcoll-0.5.0.dist-info}/NOTICE +0 -0
  324. {xcoll-0.4.0.dist-info → xcoll-0.5.0.dist-info}/WHEEL +0 -0
@@ -16,7 +16,7 @@ void volume_reflection(EverestData restrict everest, LocalParticle* part, int8_t
16
16
  InteractionRecordData record = everest->coll->record;
17
17
  RecordIndex record_index = everest->coll->record_index;
18
18
  int8_t sc = everest->coll->record_scatterings;
19
- int64_t i_slot;
19
+ int64_t i_slot = -1;
20
20
 
21
21
 
22
22
  double Ang_avr = everest->Ang_avr;
@@ -47,7 +47,7 @@ void volume_reflection(EverestData restrict everest, LocalParticle* part, int8_t
47
47
 
48
48
  double t_VR = Ang_avr + Ang_rms;
49
49
  LocalParticle_add_to_xp(part, t_VR);
50
- if (sc) InteractionRecordData_log_child(record, i_slot, part, 0);
50
+ if (sc) InteractionRecordData_log_child(record, i_slot, part);
51
51
  }
52
52
 
53
53
 
@@ -58,7 +58,7 @@ double amorphous_transport(EverestData restrict everest, LocalParticle* part, do
58
58
  InteractionRecordData record = everest->coll->record;
59
59
  RecordIndex record_index = everest->coll->record_index;
60
60
  int8_t sc = everest->coll->record_scatterings;
61
- int64_t i_slot;
61
+ int64_t i_slot = -1;
62
62
 
63
63
  // Accumulated effect of mcs on the angles (with initial energy)
64
64
  // TODO: pc is energy
@@ -91,7 +91,7 @@ double amorphous_transport(EverestData restrict everest, LocalParticle* part, do
91
91
  LocalParticle_add_to_xp_yp(part, kxmcs, kymcs);
92
92
 
93
93
  // Finally log particle at end of mcs
94
- if (sc) InteractionRecordData_log_child(record, i_slot, part, length);
94
+ if (sc) InteractionRecordData_log_child(record, i_slot, part);
95
95
 
96
96
  return pc;
97
97
  }
@@ -216,7 +216,6 @@ double Amorphous(EverestData restrict everest, LocalParticle* part, CrystalGeome
216
216
  // Exit crystal
217
217
  // MCS to exit point
218
218
  pc = amorphous_transport(everest, part, pc, length_exit, 0);
219
- // Now drift the remaining
220
219
  // However, if we have exited at s3, and we encounter s4 before s2, we reenter:
221
220
  double s4 = dd*xp + sqrt( (R-d)*(R-d) / (1 + xp*xp) * dd*dd); // second solution for smaller bend
222
221
  if (s3 < fmin(s1, s2) && s4 < s2){
@@ -224,12 +223,6 @@ double Amorphous(EverestData restrict everest, LocalParticle* part, CrystalGeome
224
223
  Drift_single_particle_4d(part, s4 - exit_point);
225
224
  // We call the main Amorphous function for the leftover
226
225
  pc = Amorphous(everest, part, cg, pc, length - length_exit - s4 + exit_point);
227
- } else {
228
- // Drift leftover out of the crystal
229
- if (everest->coll->record_touches){
230
- InteractionRecordData_log(record, record_index, part, XC_EXIT_JAW);
231
- }
232
- Drift_single_particle_4d(part, length - length_exit);
233
226
  }
234
227
  }
235
228
 
@@ -89,7 +89,7 @@ double* channel_transport(EverestData restrict everest, LocalParticle* part, dou
89
89
  int8_t sc = everest->coll->record_scatterings;
90
90
 
91
91
  // First log particle at start of channeling
92
- int64_t i_slot;
92
+ int64_t i_slot = -1;
93
93
  if (sc) i_slot = InteractionRecordData_log(record, record_index, part, XC_CHANNELING);
94
94
 
95
95
  // Do channeling.
@@ -115,7 +115,7 @@ double* channel_transport(EverestData restrict everest, LocalParticle* part, dou
115
115
  pc = pc - energy_loss*L_chan; //energy loss to ionization [GeV]
116
116
 
117
117
  // Finally log particle at end of channeling
118
- if (sc) InteractionRecordData_log_child(record, i_slot, part, drift_length);
118
+ if (sc) InteractionRecordData_log_child(record, i_slot, part);
119
119
 
120
120
  result[0] = drift_length;
121
121
  result[1] = pc;
@@ -196,14 +196,9 @@ double Channel(EverestData restrict everest, LocalParticle* part, CrystalGeometr
196
196
  if (L_chan <= fmin(L_dechan, L_nucl)){
197
197
  // Channel full length
198
198
  double* result_chan = channel_transport(everest, part, pc, L_chan, t_I, t_P);
199
- double channeled_length = result_chan[0];
199
+ // double channeled_length = result_chan[0];
200
200
  pc = result_chan[1];
201
201
  free(result_chan);
202
- // Drift leftover outside of crystal
203
- if (everest->coll->record_touches){
204
- InteractionRecordData_log(record, record_index, part, XC_EXIT_JAW);
205
- }
206
- Drift_single_particle_4d(part, length - channeled_length);
207
202
 
208
203
  } else if (L_dechan < L_nucl) {
209
204
  // Channel up to L_dechan, then amorphous
@@ -14,7 +14,6 @@ typedef struct EverestCollData_ {
14
14
  InteractionRecordData record;
15
15
  RecordIndex record_index;
16
16
  int8_t record_scatterings;
17
- int8_t record_touches;
18
17
  // Material properties
19
18
  // TODO: can we use pointers for the MaterialData? It then gets a bit difficult to read them, ie *coll->exenergy
20
19
  double exenergy;
@@ -81,6 +80,10 @@ void Drift_single_particle_4d(LocalParticle* part, double length){
81
80
 
82
81
  /*gpukern*/
83
82
  void RandomRutherford_set_by_xcoll_material(RandomRutherfordData ran, GeneralMaterialData material){
83
+ if (GeneralMaterialData_get__only_mcs(material)){
84
+ RandomRutherford_set(ran, 1, 1, 0.0001, 0.01);
85
+ return;
86
+ }
84
87
  double const zatom = GeneralMaterialData_get_Z(material);
85
88
  double const emr = GeneralMaterialData_get_nuclear_radius(material);
86
89
  double const hcut = GeneralMaterialData_get_hcut(material);
@@ -54,10 +54,11 @@ double jaw(EverestData restrict everest, LocalParticle* part, double p, double l
54
54
  // Calculate the remaining interaction length and close the iteration loop.
55
55
  rlen = rlen - length_step;
56
56
  }
57
+ // TODO: ionisation loss should also be calculated when only_mcs
58
+ double m_dpodx = calcionloss(everest, part, rlen); // DM routine to include tail // TODO: should not be rlen but s after updating
59
+ double s = LocalParticle_get_s(part) - s0;
60
+ p = p-m_dpodx*s; // TODO: This is correct: ionisation loss is only calculated and applied at end of while (break)
57
61
  }
58
- double m_dpodx = calcionloss(everest, part, rlen); // DM routine to include tail // TODO: should not be rlen but s after updating
59
- double s = LocalParticle_get_s(part) - s0;
60
- p = p-m_dpodx*s; // TODO: This is correct: ionisation loss is only calculated and applied at end of while (break)
61
62
 
62
63
  return p*1e9; // Back to eV
63
64
  }
@@ -327,19 +327,39 @@ Inermet = Material(
327
327
  _context=_materials_context,
328
328
  )
329
329
 
330
- SixTrack_to_xcoll = {
331
- "be": [Beryllium],
332
- "al": [Aluminium],
333
- "cu": [Copper],
334
- "w": [Tungsten, TungstenCrystal],
335
- "pb": [Lead],
336
- "c": [Carbon, CarbonCrystal],
337
- "c2": [Carbon2],
338
- "si": [Silicon, SiliconCrystal],
339
- "ge": [Germanium, GermaniumCrystal],
340
- "mogr": [MolybdenumGraphite],
341
- "cucd": [CopperDiamond],
342
- "mo": [Molybdenum],
343
- "glid": [Glidcop],
344
- "iner": [Inermet]
330
+
331
+ _SixTrack_to_xcoll = {
332
+ "BE": [Beryllium],
333
+ "AL": [Aluminium],
334
+ "CU": [Copper],
335
+ "W": [Tungsten, TungstenCrystal],
336
+ "PB": [Lead],
337
+ "C": [Carbon, CarbonCrystal],
338
+ "C2": [Carbon2],
339
+ "Si": [Silicon, SiliconCrystal],
340
+ "Ge": [Germanium, GermaniumCrystal],
341
+ "MoGR": [MolybdenumGraphite],
342
+ "CuCD": [CopperDiamond],
343
+ "Mo": [Molybdenum],
344
+ "Glid": [Glidcop],
345
+ "Iner": [Inermet]
345
346
  }
347
+
348
+ def SixTrack_to_xcoll(mat):
349
+ materials = {kk.lower(): vv for kk, vv in _SixTrack_to_xcoll.items()}
350
+ return materials[mat.lower()]
351
+
352
+ def SixTrack_from_xcoll(material):
353
+ results = [kk for kk, vv in _SixTrack_to_xcoll.items()
354
+ if material.name == vv[0].name]
355
+ if len(results) == 0:
356
+ raise ValueError(f"Material {material.name} not found in SixTrack library!")
357
+ return results[0]
358
+
359
+ def SixTrack_from_xcoll_crystal(material):
360
+ results = [kk for kk, vv in _SixTrack_to_xcoll.items()
361
+ if len(vv) > 1 and material.name == vv[1].name]
362
+ if len(results) == 0:
363
+ raise ValueError(f"Material {material.name} not found in SixTrack library!")
364
+ return results[0]
365
+
@@ -113,7 +113,7 @@ void mcs(EverestData restrict everest, LocalParticle* part, double length, doubl
113
113
  int8_t sc = everest->coll->record_scatterings;
114
114
 
115
115
  // First log particle at start of multiple coulomb scattering
116
- int64_t i_slot;
116
+ int64_t i_slot = -1;
117
117
  if (sc) i_slot = InteractionRecordData_log(record, record_index, part, XC_MULTIPLE_COULOMB_SCATTERING);
118
118
 
119
119
  double const radl = everest->coll->radl;
@@ -195,7 +195,7 @@ void mcs(EverestData restrict everest, LocalParticle* part, double length, doubl
195
195
  LocalParticle_add_to_s(part, s*radl);
196
196
 
197
197
  // Finally log particle at end of multiple coulomb scattering
198
- if (sc) InteractionRecordData_log_child(record, i_slot, part, length);
198
+ if (sc) InteractionRecordData_log_child(record, i_slot, part);
199
199
  }
200
200
 
201
201
  #endif /* XCOLL_EVEREST_MCS_H */
@@ -77,7 +77,7 @@ double nuclear_interaction(EverestData restrict everest, LocalParticle* part, do
77
77
  LocalParticle_add_to_xp_yp(part, tx, tz);
78
78
  #endif
79
79
 
80
- if (sc) InteractionRecordData_log_child(record, i_slot, part, 0);
80
+ if (sc) InteractionRecordData_log_child(record, i_slot, part);
81
81
  }
82
82
 
83
83
  return pc;
@@ -12,7 +12,9 @@
12
12
 
13
13
  /*gpufun*/
14
14
  void calculate_scattering(EverestData restrict everest, double p) {
15
-
15
+ if (everest->coll->only_mcs){ // TODO: this should be done smarter
16
+ return;
17
+ }
16
18
  // Material properties
17
19
  double const anuc = everest->coll->anuc;
18
20
  double const rho = everest->coll->rho;
@@ -92,6 +94,9 @@ void calculate_scattering(EverestData restrict everest, double p) {
92
94
 
93
95
  /*gpufun*/
94
96
  void calculate_ionisation_properties(EverestData restrict everest, double pc) {
97
+ if (everest->coll->only_mcs){ // TODO: this should be done smarter
98
+ return;
99
+ }
95
100
 
96
101
  // Material properties
97
102
  double const exenergy = everest->coll->exenergy;
@@ -0,0 +1 @@
1
+ gitdir: ../../../../.git/modules/xcoll/scattering_routines/geant4/collimasim
@@ -0,0 +1,12 @@
1
+ *.pyc
2
+ *.egg-info/
3
+ *.so
4
+ *.o
5
+ *~
6
+ #*#
7
+ .#*
8
+ .DS_Store
9
+ .idea
10
+ .vscode
11
+ build
12
+ cmake-build*
@@ -0,0 +1,3 @@
1
+ [submodule "pybind11"]
2
+ path = lib/pybind11
3
+ url = https://github.com/pybind/pybind11.git
@@ -0,0 +1,26 @@
1
+ cmake_minimum_required(VERSION 3.17)
2
+ SET(CMAKE_BUILD_TYPE Debug)
3
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -g -O0")
4
+
5
+ project(g4interface)
6
+
7
+ add_subdirectory(lib/pybind11)
8
+
9
+ set(SOURCE_DIR "src/collimasim")
10
+
11
+ # The headers are in the source directory
12
+ include_directories(${SOURCE_DIR})
13
+
14
+ set(SOURCES ${SOURCE_DIR}/BDSPyATInterface.cpp
15
+ ${SOURCE_DIR}/BDSXtrackInterface.cpp
16
+ ${SOURCE_DIR}/BDSPyATInterface.hh
17
+ ${SOURCE_DIR}/BDSXtrackInterface.hh
18
+ ${SOURCE_DIR}/bindings.cpp)
19
+
20
+ find_package(BDSIM REQUIRED HINTS $ENV{BDSIM})
21
+
22
+ pybind11_add_module(g4interface ${SOURCES} "${SOURCE_DIR}/bindings.cpp")
23
+
24
+
25
+ target_link_libraries(g4interface PRIVATE ${BDSIM_LIBRARIES})
26
+ target_include_directories(g4interface PUBLIC ${BDSIM_INCLUDE_DIR})
@@ -0,0 +1,21 @@
1
+ # Collimasim
2
+
3
+ Collimasim provides Python bindings to BDSIM (Geant4) in order to enable collimation studies in pure tracking codes
4
+
5
+ ## Requiremends
6
+ - BDSIM installed on the system
7
+ - python3
8
+ - CMake >3.17
9
+
10
+ ## Installation
11
+
12
+ To isntall use:
13
+
14
+ ```bash
15
+ git clone --recurse-submodules https://gitlab.cern.ch/anabramo/collimasim.git
16
+ python -m pip install --user --editable ./
17
+ ```
18
+
19
+ ## Usage
20
+
21
+ See tests/test.py for an example of how to use
@@ -0,0 +1,20 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?=
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = source
9
+ BUILDDIR = build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -0,0 +1,35 @@
1
+ @ECHO OFF
2
+
3
+ pushd %~dp0
4
+
5
+ REM Command file for Sphinx documentation
6
+
7
+ if "%SPHINXBUILD%" == "" (
8
+ set SPHINXBUILD=sphinx-build
9
+ )
10
+ set SOURCEDIR=source
11
+ set BUILDDIR=build
12
+
13
+ if "%1" == "" goto help
14
+
15
+ %SPHINXBUILD% >NUL 2>NUL
16
+ if errorlevel 9009 (
17
+ echo.
18
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
19
+ echo.installed, then set the SPHINXBUILD environment variable to point
20
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
21
+ echo.may add the Sphinx directory to PATH.
22
+ echo.
23
+ echo.If you don't have Sphinx installed, grab it from
24
+ echo.http://sphinx-doc.org/
25
+ exit /b 1
26
+ )
27
+
28
+ %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
29
+ goto end
30
+
31
+ :help
32
+ %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
33
+
34
+ :end
35
+ popd
@@ -0,0 +1,10 @@
1
+ .. _collimasim:
2
+
3
+ ==============
4
+ Collimasim
5
+ ==============
6
+
7
+ .. automodule:: pyflusix
8
+ :members:
9
+ :undoc-members:
10
+ :show-inheritance:
@@ -0,0 +1,59 @@
1
+ # Configuration file for the Sphinx documentation builder.
2
+ #
3
+ # This file only contains a selection of the most common options. For a full
4
+ # list see the documentation:
5
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html
6
+
7
+ # -- Path setup --------------------------------------------------------------
8
+
9
+ # If extensions (or modules to document with autodoc) are in another directory,
10
+ # add these directories to sys.path here. If the directory is relative to the
11
+ # documentation root, use os.path.abspath to make it absolute, like shown here.
12
+ #
13
+ # import os
14
+ # import sys
15
+ # sys.path.insert(0, os.path.abspath('.'))
16
+
17
+
18
+ # -- Project information -----------------------------------------------------
19
+
20
+ project = 'collimasim'
21
+ copyright = '2021, Andrey Abramov, Laurie Nevay'
22
+ author = 'Andrey Abramov, Laurie Nevay'
23
+
24
+ # The full version, including alpha/beta/rc tags
25
+ release = '0.0.1'
26
+
27
+
28
+ # -- General configuration ---------------------------------------------------
29
+
30
+ # Add any Sphinx extension module names here, as strings. They can be
31
+ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
32
+ # ones.
33
+ extensions = [
34
+ 'sphinx.ext.todo',
35
+ 'sphinx.ext.viewcode',
36
+ 'sphinx.ext.autodoc',
37
+ "sphinx_rtd_theme",
38
+ ]
39
+
40
+ # Add any paths that contain templates here, relative to this directory.
41
+ templates_path = ['_templates']
42
+
43
+ # List of patterns, relative to source directory, that match files and
44
+ # directories to ignore when looking for source files.
45
+ # This pattern also affects html_static_path and html_extra_path.
46
+ exclude_patterns = []
47
+
48
+
49
+ # -- Options for HTML output -------------------------------------------------
50
+
51
+ # The theme to use for HTML and HTML Help pages. See the documentation for
52
+ # a list of builtin themes.
53
+ #
54
+ html_theme = 'sphinx_rtd_theme'
55
+
56
+ # Add any paths that contain custom static files (such as style sheets) here,
57
+ # relative to this directory. They are copied after the builtin static files,
58
+ # so a file named "default.css" will overwrite the builtin "default.css".
59
+ html_static_path = ['_static']
@@ -0,0 +1,26 @@
1
+ .. collimasim documentation master file, created by
2
+ sphinx-quickstart on Fri Jul 23 14:56:04 2021.
3
+ You can adapt this file completely to your liking, but it should at least
4
+ contain the root `toctree` directive.
5
+
6
+ Welcome to collimasim's documentation!
7
+ ======================================
8
+
9
+ Collimasim provides Python bindings to BDSIM (Geant4) in order to enable collimation studies in pure tracking codes.
10
+
11
+ Several magical fairies have been contacted about writing the documentation. It is expected to appear here shortly.
12
+
13
+ .. toctree::
14
+ :maxdepth: 2
15
+ :caption: Contents:
16
+
17
+ collimasim
18
+
19
+ ..
20
+ Indices and tables
21
+ ==================
22
+ ..
23
+ * :ref:`genindex`
24
+ * :ref:`modindex`
25
+ * :ref:`search`
26
+
@@ -0,0 +1,37 @@
1
+ version: 1.0.{build}
2
+ image:
3
+ - Visual Studio 2015
4
+ test: off
5
+ skip_branch_with_pr: true
6
+ build:
7
+ parallel: true
8
+ platform:
9
+ - x86
10
+ environment:
11
+ matrix:
12
+ - PYTHON: 36
13
+ CONFIG: Debug
14
+ - PYTHON: 27
15
+ CONFIG: Debug
16
+ install:
17
+ - ps: |
18
+ $env:CMAKE_GENERATOR = "Visual Studio 14 2015"
19
+ if ($env:PLATFORM -eq "x64") { $env:PYTHON = "$env:PYTHON-x64" }
20
+ $env:PATH = "C:\Python$env:PYTHON\;C:\Python$env:PYTHON\Scripts\;$env:PATH"
21
+ python -W ignore -m pip install --upgrade pip wheel
22
+ python -W ignore -m pip install pytest numpy --no-warn-script-location pytest-timeout
23
+ - ps: |
24
+ Start-FileDownload 'https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.zip'
25
+ 7z x eigen-3.3.7.zip -y > $null
26
+ $env:CMAKE_INCLUDE_PATH = "eigen-3.3.7;$env:CMAKE_INCLUDE_PATH"
27
+ build_script:
28
+ - cmake -G "%CMAKE_GENERATOR%" -A "%CMAKE_ARCH%"
29
+ -DCMAKE_CXX_STANDARD=14
30
+ -DPYBIND11_WERROR=ON
31
+ -DDOWNLOAD_CATCH=ON
32
+ -DCMAKE_SUPPRESS_REGENERATION=1
33
+ .
34
+ - set MSBuildLogger="C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
35
+ - cmake --build . --config %CONFIG% --target pytest -- /m /v:m /logger:%MSBuildLogger%
36
+ - cmake --build . --config %CONFIG% --target cpptest -- /m /v:m /logger:%MSBuildLogger%
37
+ on_failure: if exist "tests\test_cmake_build" type tests\test_cmake_build\*.log*
@@ -0,0 +1,19 @@
1
+ ---
2
+ # See all possible options and defaults with:
3
+ # clang-format --style=llvm --dump-config
4
+ BasedOnStyle: LLVM
5
+ AccessModifierOffset: -4
6
+ AlwaysBreakTemplateDeclarations: Yes
7
+ BinPackArguments: false
8
+ BinPackParameters: false
9
+ BreakBeforeBinaryOperators: All
10
+ BreakConstructorInitializers: BeforeColon
11
+ ColumnLimit: 99
12
+ IndentCaseLabels: true
13
+ IndentPPDirectives: AfterHash
14
+ IndentWidth: 4
15
+ Language: Cpp
16
+ SpaceAfterCStyleCast: true
17
+ Standard: Cpp11
18
+ TabWidth: 4
19
+ ...
@@ -0,0 +1,65 @@
1
+ FormatStyle: file
2
+
3
+ Checks: '
4
+ *bugprone*,
5
+ cppcoreguidelines-init-variables,
6
+ cppcoreguidelines-slicing,
7
+ clang-analyzer-optin.cplusplus.VirtualCall,
8
+ google-explicit-constructor,
9
+ llvm-namespace-comment,
10
+ misc-misplaced-const,
11
+ misc-non-copyable-objects,
12
+ misc-static-assert,
13
+ misc-throw-by-value-catch-by-reference,
14
+ misc-uniqueptr-reset-release,
15
+ misc-unused-parameters,
16
+ modernize-avoid-bind,
17
+ modernize-make-shared,
18
+ modernize-redundant-void-arg,
19
+ modernize-replace-auto-ptr,
20
+ modernize-replace-disallow-copy-and-assign-macro,
21
+ modernize-replace-random-shuffle,
22
+ modernize-shrink-to-fit,
23
+ modernize-use-auto,
24
+ modernize-use-bool-literals,
25
+ modernize-use-equals-default,
26
+ modernize-use-equals-delete,
27
+ modernize-use-default-member-init,
28
+ modernize-use-noexcept,
29
+ modernize-use-emplace,
30
+ modernize-use-override,
31
+ modernize-use-using,
32
+ *performance*,
33
+ readability-avoid-const-params-in-decls,
34
+ readability-const-return-type,
35
+ readability-container-size-empty,
36
+ readability-delete-null-pointer,
37
+ readability-else-after-return,
38
+ readability-implicit-bool-conversion,
39
+ readability-make-member-function-const,
40
+ readability-misplaced-array-index,
41
+ readability-non-const-parameter,
42
+ readability-redundant-function-ptr-dereference,
43
+ readability-redundant-smartptr-get,
44
+ readability-redundant-string-cstr,
45
+ readability-simplify-subscript-expr,
46
+ readability-static-accessed-through-instance,
47
+ readability-static-definition-in-anonymous-namespace,
48
+ readability-string-compare,
49
+ readability-uniqueptr-delete-release,
50
+ -bugprone-exception-escape,
51
+ -bugprone-reserved-identifier,
52
+ -bugprone-unused-raii,
53
+ '
54
+
55
+ CheckOptions:
56
+ - key: performance-for-range-copy.WarnOnAllAutoCopies
57
+ value: true
58
+ - key: performance-unnecessary-value-param.AllowedTypes
59
+ value: 'exception_ptr$;'
60
+ - key: readability-implicit-bool-conversion.AllowPointerConditions
61
+ value: true
62
+
63
+ HeaderFilterRegex: 'pybind11/.*h'
64
+
65
+ WarningsAsErrors: '*'
@@ -0,0 +1,73 @@
1
+ parse:
2
+ additional_commands:
3
+ pybind11_add_module:
4
+ flags:
5
+ - THIN_LTO
6
+ - MODULE
7
+ - SHARED
8
+ - NO_EXTRAS
9
+ - EXCLUDE_FROM_ALL
10
+ - SYSTEM
11
+
12
+ format:
13
+ line_width: 99
14
+ tab_size: 2
15
+
16
+ # If an argument group contains more than this many sub-groups
17
+ # (parg or kwarg groups) then force it to a vertical layout.
18
+ max_subgroups_hwrap: 2
19
+
20
+ # If a positional argument group contains more than this many
21
+ # arguments, then force it to a vertical layout.
22
+ max_pargs_hwrap: 6
23
+
24
+ # If a cmdline positional group consumes more than this many
25
+ # lines without nesting, then invalidate the layout (and nest)
26
+ max_rows_cmdline: 2
27
+ separate_ctrl_name_with_space: false
28
+ separate_fn_name_with_space: false
29
+ dangle_parens: false
30
+
31
+ # If the trailing parenthesis must be 'dangled' on its on
32
+ # 'line, then align it to this reference: `prefix`: the start'
33
+ # 'of the statement, `prefix-indent`: the start of the'
34
+ # 'statement, plus one indentation level, `child`: align to'
35
+ # the column of the arguments
36
+ dangle_align: prefix
37
+ # If the statement spelling length (including space and
38
+ # parenthesis) is smaller than this amount, then force reject
39
+ # nested layouts.
40
+ min_prefix_chars: 4
41
+
42
+ # If the statement spelling length (including space and
43
+ # parenthesis) is larger than the tab width by more than this
44
+ # amount, then force reject un-nested layouts.
45
+ max_prefix_chars: 10
46
+
47
+ # If a candidate layout is wrapped horizontally but it exceeds
48
+ # this many lines, then reject the layout.
49
+ max_lines_hwrap: 2
50
+
51
+ line_ending: unix
52
+
53
+ # Format command names consistently as 'lower' or 'upper' case
54
+ command_case: canonical
55
+
56
+ # Format keywords consistently as 'lower' or 'upper' case
57
+ # unchanged is valid too
58
+ keyword_case: 'upper'
59
+
60
+ # A list of command names which should always be wrapped
61
+ always_wrap: []
62
+
63
+ # If true, the argument lists which are known to be sortable
64
+ # will be sorted lexicographically
65
+ enable_sort: true
66
+
67
+ # If true, the parsers may infer whether or not an argument
68
+ # list is sortable (without annotation).
69
+ autosort: false
70
+
71
+ # Causes a few issues - can be solved later, possibly.
72
+ markup:
73
+ enable_markup: false
@@ -0,0 +1 @@
1
+ gitdir: ../../../../../../.git/modules/xcoll/scattering_routines/geant4/collimasim/modules/pybind11
@@ -0,0 +1,9 @@
1
+ *.cmake @henryiii
2
+ CMakeLists.txt @henryiii
3
+ *.yml @henryiii
4
+ *.yaml @henryiii
5
+ /tools/ @henryiii
6
+ /pybind11/ @henryiii
7
+ noxfile.py @henryiii
8
+ .clang-format @henryiii
9
+ .clang-tidy @henryiii