xcoll 0.5.11__py3-none-any.whl → 0.6.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 (333) hide show
  1. xcoll/__init__.py +5 -18
  2. xcoll/beam_elements/__init__.py +1 -0
  3. xcoll/beam_elements/absorber.py +12 -2
  4. xcoll/beam_elements/base.py +162 -62
  5. xcoll/beam_elements/blowup.py +1 -0
  6. xcoll/beam_elements/elements_src/black_absorber.h +57 -58
  7. xcoll/beam_elements/elements_src/black_crystal.h +49 -50
  8. xcoll/beam_elements/elements_src/everest_block.h +21 -11
  9. xcoll/beam_elements/elements_src/everest_collimator.h +100 -91
  10. xcoll/beam_elements/elements_src/everest_crystal.h +145 -140
  11. xcoll/beam_elements/elements_src/transparent_collimator.h +126 -0
  12. xcoll/beam_elements/elements_src/transparent_crystal.h +118 -0
  13. xcoll/beam_elements/everest.py +16 -5
  14. xcoll/beam_elements/monitor.py +1 -0
  15. xcoll/beam_elements/transparent.py +83 -0
  16. xcoll/colldb.py +15 -6
  17. xcoll/general.py +1 -1
  18. xcoll/headers/particle_states.py +51 -0
  19. xcoll/initial_distribution.py +129 -103
  20. xcoll/interaction_record/interaction_record.py +2 -1
  21. xcoll/interaction_record/interaction_types.py +2 -2
  22. xcoll/line_tools.py +163 -74
  23. xcoll/lossmap.py +519 -127
  24. xcoll/plot.py +109 -0
  25. xcoll/rf_sweep.py +6 -0
  26. xcoll/scattering_routines/engine.py +600 -0
  27. xcoll/scattering_routines/environment.py +297 -0
  28. xcoll/scattering_routines/everest/amorphous.h +95 -71
  29. xcoll/scattering_routines/everest/{channeling.h → channelling.h} +121 -112
  30. xcoll/scattering_routines/everest/constants.h +1 -1
  31. xcoll/scattering_routines/everest/crystal_parameters.h +9 -9
  32. xcoll/scattering_routines/everest/everest.h +8 -3
  33. xcoll/scattering_routines/everest/everest.py +2 -1
  34. xcoll/scattering_routines/everest/ionisation_loss.h +141 -0
  35. xcoll/scattering_routines/everest/jaw.h +19 -24
  36. xcoll/scattering_routines/everest/materials.py +2 -0
  37. xcoll/scattering_routines/everest/multiple_coulomb_scattering.h +2 -2
  38. xcoll/scattering_routines/everest/nuclear_interaction.h +35 -19
  39. xcoll/scattering_routines/everest/properties.h +4 -73
  40. xcoll/xaux.py +73 -0
  41. {xcoll-0.5.11.dist-info → xcoll-0.6.0.dist-info}/METADATA +5 -5
  42. xcoll-0.6.0.dist-info/RECORD +135 -0
  43. xcoll/_manager.py +0 -22
  44. xcoll/headers/particle_states.h +0 -25
  45. xcoll/install.py +0 -35
  46. xcoll/scattering_routines/geant4/collimasim/.git +0 -1
  47. xcoll/scattering_routines/geant4/collimasim/.gitignore +0 -12
  48. xcoll/scattering_routines/geant4/collimasim/.gitmodules +0 -3
  49. xcoll/scattering_routines/geant4/collimasim/CMakeLists.txt +0 -26
  50. xcoll/scattering_routines/geant4/collimasim/README.md +0 -21
  51. xcoll/scattering_routines/geant4/collimasim/docs/Makefile +0 -20
  52. xcoll/scattering_routines/geant4/collimasim/docs/make.bat +0 -35
  53. xcoll/scattering_routines/geant4/collimasim/docs/source/collimasim.rst +0 -10
  54. xcoll/scattering_routines/geant4/collimasim/docs/source/conf.py +0 -59
  55. xcoll/scattering_routines/geant4/collimasim/docs/source/index.rst +0 -26
  56. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.appveyor.yml +0 -37
  57. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.clang-format +0 -19
  58. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.clang-tidy +0 -65
  59. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.cmake-format.yaml +0 -73
  60. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.git +0 -1
  61. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/CODEOWNERS +0 -9
  62. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/CONTRIBUTING.md +0 -386
  63. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/ISSUE_TEMPLATE/bug-report.yml +0 -45
  64. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/ISSUE_TEMPLATE/config.yml +0 -8
  65. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/dependabot.yml +0 -16
  66. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/labeler.yml +0 -8
  67. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/labeler_merged.yml +0 -3
  68. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/pull_request_template.md +0 -19
  69. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/ci.yml +0 -969
  70. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/configure.yml +0 -84
  71. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/format.yml +0 -48
  72. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/labeler.yml +0 -16
  73. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/pip.yml +0 -103
  74. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.gitignore +0 -45
  75. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.pre-commit-config.yaml +0 -151
  76. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.readthedocs.yml +0 -3
  77. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/CMakeLists.txt +0 -297
  78. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/LICENSE +0 -29
  79. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/MANIFEST.in +0 -6
  80. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/README.rst +0 -180
  81. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/Doxyfile +0 -23
  82. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/Makefile +0 -192
  83. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/_static/theme_overrides.css +0 -11
  84. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/chrono.rst +0 -81
  85. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/custom.rst +0 -93
  86. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/eigen.rst +0 -310
  87. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/functional.rst +0 -109
  88. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/index.rst +0 -43
  89. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/overview.rst +0 -171
  90. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/stl.rst +0 -251
  91. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/strings.rst +0 -305
  92. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/classes.rst +0 -1297
  93. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/embedding.rst +0 -262
  94. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/exceptions.rst +0 -396
  95. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/functions.rst +0 -568
  96. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/misc.rst +0 -337
  97. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/index.rst +0 -13
  98. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/numpy.rst +0 -463
  99. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/object.rst +0 -286
  100. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/utilities.rst +0 -155
  101. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/smart_ptrs.rst +0 -174
  102. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/basics.rst +0 -308
  103. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/benchmark.py +0 -91
  104. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/benchmark.rst +0 -95
  105. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/changelog.rst +0 -2050
  106. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/classes.rst +0 -542
  107. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/cmake/index.rst +0 -8
  108. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/compiling.rst +0 -648
  109. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/conf.py +0 -381
  110. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/faq.rst +0 -343
  111. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/index.rst +0 -48
  112. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/installing.rst +0 -105
  113. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/limitations.rst +0 -72
  114. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11-logo.png +0 -0
  115. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python1.png +0 -0
  116. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python1.svg +0 -427
  117. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python2.png +0 -0
  118. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python2.svg +0 -427
  119. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/reference.rst +0 -130
  120. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/release.rst +0 -96
  121. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/requirements.txt +0 -8
  122. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/upgrade.rst +0 -548
  123. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/attr.h +0 -605
  124. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/buffer_info.h +0 -144
  125. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/cast.h +0 -1432
  126. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/chrono.h +0 -213
  127. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/common.h +0 -2
  128. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/complex.h +0 -65
  129. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/class.h +0 -709
  130. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/common.h +0 -1021
  131. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/descr.h +0 -104
  132. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/init.h +0 -346
  133. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/internals.h +0 -467
  134. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/type_caster_base.h +0 -978
  135. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/typeid.h +0 -55
  136. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/eigen.h +0 -606
  137. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/embed.h +0 -284
  138. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/eval.h +0 -163
  139. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/functional.h +0 -121
  140. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/gil.h +0 -193
  141. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/iostream.h +0 -275
  142. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/numpy.h +0 -1741
  143. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/operators.h +0 -163
  144. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/options.h +0 -65
  145. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/pybind11.h +0 -2497
  146. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/pytypes.h +0 -1879
  147. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl/filesystem.h +0 -103
  148. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl.h +0 -375
  149. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl_bind.h +0 -747
  150. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/noxfile.py +0 -88
  151. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/__init__.py +0 -11
  152. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/__main__.py +0 -52
  153. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/_version.py +0 -12
  154. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/_version.pyi +0 -6
  155. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/commands.py +0 -21
  156. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/py.typed +0 -0
  157. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/setup_helpers.py +0 -482
  158. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/setup_helpers.pyi +0 -63
  159. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pyproject.toml +0 -41
  160. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/setup.cfg +0 -56
  161. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/setup.py +0 -155
  162. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/CMakeLists.txt +0 -503
  163. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/conftest.py +0 -208
  164. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/constructor_stats.h +0 -275
  165. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/cross_module_gil_utils.cpp +0 -73
  166. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/env.py +0 -33
  167. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_python_package/pytest.ini +0 -0
  168. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_python_package/test_files.py +0 -279
  169. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_setuptools/pytest.ini +0 -0
  170. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_setuptools/test_setuphelper.py +0 -143
  171. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/local_bindings.h +0 -85
  172. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/object.h +0 -179
  173. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_cross_module_tests.cpp +0 -151
  174. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_tests.cpp +0 -91
  175. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_tests.h +0 -85
  176. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pytest.ini +0 -19
  177. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/requirements.txt +0 -12
  178. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_async.cpp +0 -26
  179. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_async.py +0 -25
  180. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_buffers.cpp +0 -216
  181. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_buffers.py +0 -163
  182. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_builtin_casters.cpp +0 -286
  183. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_builtin_casters.py +0 -536
  184. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_call_policies.cpp +0 -107
  185. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_call_policies.py +0 -248
  186. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_callbacks.cpp +0 -227
  187. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_callbacks.py +0 -202
  188. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_chrono.cpp +0 -84
  189. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_chrono.py +0 -210
  190. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_class.cpp +0 -550
  191. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_class.py +0 -473
  192. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/CMakeLists.txt +0 -84
  193. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/embed.cpp +0 -21
  194. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_embed/CMakeLists.txt +0 -28
  195. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_function/CMakeLists.txt +0 -39
  196. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_target/CMakeLists.txt +0 -46
  197. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/main.cpp +0 -6
  198. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt +0 -41
  199. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_function/CMakeLists.txt +0 -35
  200. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt +0 -41
  201. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/test.py +0 -10
  202. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_constants_and_functions.cpp +0 -165
  203. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_constants_and_functions.py +0 -53
  204. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_copy_move.cpp +0 -238
  205. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_copy_move.py +0 -126
  206. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_casters.cpp +0 -141
  207. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_casters.py +0 -117
  208. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_setup.cpp +0 -41
  209. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_setup.py +0 -50
  210. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_docstring_options.cpp +0 -69
  211. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_docstring_options.py +0 -42
  212. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eigen.cpp +0 -348
  213. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eigen.py +0 -771
  214. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/CMakeLists.txt +0 -47
  215. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/catch.cpp +0 -22
  216. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/external_module.cpp +0 -23
  217. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/test_interpreter.cpp +0 -326
  218. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/test_interpreter.py +0 -15
  219. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_enum.cpp +0 -148
  220. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_enum.py +0 -272
  221. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval.cpp +0 -119
  222. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval.py +0 -51
  223. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval_call.py +0 -5
  224. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.cpp +0 -285
  225. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.h +0 -12
  226. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.py +0 -265
  227. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_factory_constructors.cpp +0 -397
  228. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_factory_constructors.py +0 -520
  229. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_gil_scoped.cpp +0 -49
  230. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_gil_scoped.py +0 -94
  231. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_iostream.cpp +0 -125
  232. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_iostream.py +0 -331
  233. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_kwargs_and_defaults.cpp +0 -153
  234. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_kwargs_and_defaults.py +0 -284
  235. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_local_bindings.cpp +0 -107
  236. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_local_bindings.py +0 -257
  237. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_methods_and_attributes.cpp +0 -412
  238. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_methods_and_attributes.py +0 -517
  239. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_modules.cpp +0 -102
  240. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_modules.py +0 -92
  241. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_multiple_inheritance.cpp +0 -233
  242. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_multiple_inheritance.py +0 -360
  243. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_array.cpp +0 -472
  244. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_array.py +0 -593
  245. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_dtypes.cpp +0 -524
  246. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_dtypes.py +0 -441
  247. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_vectorize.cpp +0 -103
  248. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_vectorize.py +0 -267
  249. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_opaque_types.cpp +0 -73
  250. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_opaque_types.py +0 -59
  251. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_operator_overloading.cpp +0 -235
  252. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_operator_overloading.py +0 -146
  253. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pickling.cpp +0 -189
  254. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pickling.py +0 -82
  255. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pytypes.cpp +0 -560
  256. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pytypes.py +0 -651
  257. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_sequences_and_iterators.cpp +0 -500
  258. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_sequences_and_iterators.py +0 -253
  259. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_smart_ptr.cpp +0 -452
  260. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_smart_ptr.py +0 -318
  261. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl.cpp +0 -342
  262. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl.py +0 -291
  263. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl_binders.cpp +0 -131
  264. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl_binders.py +0 -318
  265. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_tagbased_polymorphic.cpp +0 -144
  266. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_tagbased_polymorphic.py +0 -29
  267. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_thread.cpp +0 -66
  268. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_thread.py +0 -44
  269. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_union.cpp +0 -22
  270. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_union.py +0 -9
  271. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_virtual_functions.cpp +0 -510
  272. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_virtual_functions.py +0 -408
  273. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/valgrind-numpy-scipy.supp +0 -140
  274. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/valgrind-python.supp +0 -117
  275. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindCatch.cmake +0 -70
  276. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindEigen3.cmake +0 -86
  277. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindPythonLibsNew.cmake +0 -257
  278. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/check-style.sh +0 -44
  279. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/cmake_uninstall.cmake.in +0 -23
  280. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/libsize.py +0 -39
  281. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/make_changelog.py +0 -64
  282. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Common.cmake +0 -402
  283. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Config.cmake.in +0 -233
  284. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11NewTools.cmake +0 -276
  285. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Tools.cmake +0 -214
  286. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pyproject.toml +0 -3
  287. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/setup_global.py.in +0 -65
  288. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/setup_main.py.in +0 -41
  289. xcoll/scattering_routines/geant4/collimasim/pyproject.toml +0 -8
  290. xcoll/scattering_routines/geant4/collimasim/setup.py +0 -144
  291. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSPyATInterface.cpp +0 -403
  292. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSPyATInterface.hh +0 -100
  293. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSXtrackInterface.cpp +0 -763
  294. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSXtrackInterface.hh +0 -118
  295. xcoll/scattering_routines/geant4/collimasim/src/collimasim/__init__.py +0 -8
  296. xcoll/scattering_routines/geant4/collimasim/src/collimasim/bindings.cpp +0 -63
  297. xcoll/scattering_routines/geant4/collimasim/src/collimasim/pyCollimatorPass.py +0 -142
  298. xcoll/scattering_routines/geant4/collimasim/src/collimasim/xtrack_collimator.py +0 -556
  299. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/PKG-INFO +0 -6
  300. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/SOURCES.txt +0 -24
  301. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/dependency_links.txt +0 -1
  302. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/not-zip-safe +0 -1
  303. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/top_level.txt +0 -1
  304. xcoll/scattering_routines/geant4/collimasim/tests/README.md +0 -25
  305. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_forions.dat +0 -25
  306. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_new_example.dat +0 -18
  307. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_old_example.dat +0 -68
  308. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_testing.dat +0 -15
  309. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_yaml_example.yaml +0 -110
  310. xcoll/scattering_routines/geant4/collimasim/tests/resources/collgaps.dat +0 -7
  311. xcoll/scattering_routines/geant4/collimasim/tests/resources/collgaps_pyat_test.dat +0 -3
  312. xcoll/scattering_routines/geant4/collimasim/tests/resources/collonly_twiss_file_example.tfs +0 -54
  313. xcoll/scattering_routines/geant4/collimasim/tests/resources/settings.gmad +0 -3
  314. xcoll/scattering_routines/geant4/collimasim/tests/resources/settings_black_absorber.gmad +0 -3
  315. xcoll/scattering_routines/geant4/collimasim/tests/resources/settings_ions.gmad +0 -5
  316. xcoll/scattering_routines/geant4/collimasim/tests/resources/twiss_file_testing.tfs +0 -51
  317. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat.py +0 -65
  318. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat_passmethod.py +0 -59
  319. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat_tracking.py +0 -102
  320. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack.py +0 -75
  321. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_angle.py +0 -74
  322. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_colldb_load.py +0 -84
  323. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_interaction.py +0 -159
  324. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_interaction_ion.py +0 -99
  325. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_ions.py +0 -78
  326. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_lost_energy.py +0 -88
  327. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tilt.py +0 -80
  328. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tracking.py +0 -97
  329. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tracking_ions.py +0 -96
  330. xcoll-0.5.11.dist-info/RECORD +0 -413
  331. {xcoll-0.5.11.dist-info → xcoll-0.6.0.dist-info}/LICENSE +0 -0
  332. {xcoll-0.5.11.dist-info → xcoll-0.6.0.dist-info}/NOTICE +0 -0
  333. {xcoll-0.5.11.dist-info → xcoll-0.6.0.dist-info}/WHEEL +0 -0
@@ -107,7 +107,7 @@ double* scamcs(LocalParticle* part, double x0, double xp0, double s) {
107
107
 
108
108
 
109
109
  /*gpufun*/
110
- void mcs(EverestData restrict everest, LocalParticle* part, double length, double p, int edge_check){
110
+ void mcs(EverestData restrict everest, LocalParticle* part, double length, double pc, int edge_check){
111
111
  InteractionRecordData record = everest->coll->record;
112
112
  RecordIndex record_index = everest->coll->record_index;
113
113
  int8_t sc = everest->coll->record_scatterings;
@@ -118,7 +118,7 @@ void mcs(EverestData restrict everest, LocalParticle* part, double length, doubl
118
118
 
119
119
  double const radl = everest->coll->radl;
120
120
  double s;
121
- double theta = 13.6e-3/p;
121
+ double theta = 13.6e-3/pc;
122
122
  double h = 0.001;
123
123
  double dh = 0.0001;
124
124
  double bn0 = 0.4330127019;
@@ -27,23 +27,29 @@ double nuclear_interaction(EverestData restrict everest, LocalParticle* part, do
27
27
  ichoix += 1;
28
28
  }
29
29
 
30
- //Do the interaction
30
+ // Do the interaction
31
+ // Scattered angle is cos theta = 1 + t / (2p^2) for elastic scattering
32
+ // from Mandelstam t = (p1-p3)^2) = 2m^2 - 2E1E3 + 2p1.p3
33
+ // if elastic, p1 = p3, and hence t = 2m^2 - 2(m^2 + p^2) + 2p^2 cos(theta)
31
34
  int64_t i_slot = -1;
32
35
  if (ichoix==1) {
33
36
  if (sc) i_slot = InteractionRecordData_log(record, record_index, part, XC_ABSORBED);
34
37
  LocalParticle_set_state(part, XC_LOST_ON_EVEREST_COLL);
35
38
 
36
39
  } else {
37
- double teta;
38
- if (ichoix==2) { // p-n elastic
40
+ double sqrt_t_p;
41
+ if (ichoix==2) {
42
+ // p-n elastic
39
43
  if (sc) i_slot = InteractionRecordData_log(record, record_index, part, XC_PN_ELASTIC);
40
- teta = sqrt(RandomExponential_generate(part)/everest->bn)/pc;
44
+ sqrt_t_p = sqrt(RandomExponential_generate(part)/everest->bn)/pc;
41
45
 
42
- } else if (ichoix==3) { // p-p elastic
46
+ } else if (ichoix==3) {
47
+ // p-p elastic
43
48
  if (sc) i_slot = InteractionRecordData_log(record, record_index, part, XC_PP_ELASTIC);
44
- teta = sqrt(RandomExponential_generate(part)/everest->bpp)/pc;
49
+ sqrt_t_p = sqrt(RandomExponential_generate(part)/everest->bpp)/pc;
45
50
 
46
- } else if (ichoix==4) { // Single diffractive
51
+ } else if (ichoix==4) {
52
+ // Single diffractive
47
53
  if (sc) i_slot = InteractionRecordData_log(record, record_index, part, XC_SINGLE_DIFFRACTIVE);
48
54
  double xm2 = exp(RandomUniform_generate(part)*everest->xln15s);
49
55
  double bsd;
@@ -56,25 +62,35 @@ double nuclear_interaction(EverestData restrict everest, LocalParticle* part, do
56
62
  }
57
63
  double pc_in = pc;
58
64
  pc = pc*(1 - xm2/everest->ecmsq);
59
- // Corrected 1/p into 1/sqrt(pp')
60
- teta = sqrt(RandomExponential_generate(part)/bsd)/sqrt(pc_in*pc);
65
+ if (pc <= 1.e-9 || pc != pc) {
66
+ // Very small (<1eV) or NaN
67
+ if (sc) InteractionRecordData_log(record, record_index, part, XC_ABSORBED);
68
+ LocalParticle_set_state(part, XC_LOST_ON_EVEREST_COLL);
69
+ pc = 1.e-9;
70
+ sqrt_t_p = 0;
71
+ } else {
72
+ // Corrected 1/p into 1/sqrt(pp')
73
+ sqrt_t_p = sqrt(RandomExponential_generate(part)/bsd)/sqrt(pc_in*pc);
74
+ }
61
75
 
62
- } else { // Coulomb
76
+ } else {
77
+ // Coulomb
63
78
  if (sc) i_slot = InteractionRecordData_log(record, record_index, part, XC_COULOMB);
64
- teta = sqrt(RandomRutherford_generate(everest->coll->rng, part))/pc;
79
+ sqrt_t_p = sqrt(RandomRutherford_generate(everest->coll->rng, part))/pc;
65
80
  }
66
81
 
67
- // TODO: I am not convinced that we can just sample two independent random numbers
68
- // I believe it should be tan(tx) = cos(phi) * tan(teta) and tan(ty) = sin(phi) * tan(teta)
69
- // with phi uniformly sampled between 0 and 2 pi
70
- double tx = teta*RandomNormal_generate(part);
71
- double tz = teta*RandomNormal_generate(part);
82
+ // theta = arccos(1 + t/(2p^2)) => tan(theta) = sqrt( -t/p^2 * (1 + t/(4p^2)) ) / (1 + t/(2p^2))
83
+ // Note that in elastic scattering, t < 0, but we sampled t > 0 so we need to flip the sign
84
+ double tan_theta = sqrt_t_p * sqrt(1 - sqrt_t_p*sqrt_t_p/4)/(1 - sqrt_t_p*sqrt_t_p/2);
85
+ double alpha = 2*M_PI*RandomUniform_generate(part);
86
+ double tan_theta_x = tan_theta*cos(alpha);
87
+ double tan_theta_y = tan_theta*sin(alpha);
72
88
 
73
- //Change the angles
89
+ // Change the angles
74
90
  #ifdef XCOLL_USE_EXACT
75
- LocalParticle_add_to_exact_xp_yp(part, tx, tz);
91
+ LocalParticle_add_to_exact_xp_yp(part, tan_theta_x, tan_theta_y);
76
92
  #else
77
- LocalParticle_add_to_xp_yp(part, tx, tz);
93
+ LocalParticle_add_to_xp_yp(part, tan_theta_x, tan_theta_y);
78
94
  #endif
79
95
 
80
96
  if (sc) InteractionRecordData_log_child(record, i_slot, part);
@@ -11,7 +11,7 @@
11
11
 
12
12
 
13
13
  /*gpufun*/
14
- void calculate_scattering(EverestData restrict everest, double p) {
14
+ void calculate_scattering(EverestData restrict everest, double pc) {
15
15
  if (everest->coll->only_mcs){ // TODO: this should be done smarter
16
16
  return;
17
17
  }
@@ -26,7 +26,7 @@ void calculate_scattering(EverestData restrict everest, double p) {
26
26
 
27
27
  double csect[6];
28
28
 
29
- everest->ecmsq = 2*XC_PROTON_MASS*1.0e-3*p;
29
+ everest->ecmsq = 2*XC_PROTON_MASS*1.0e-3*pc;
30
30
  double ecmsq = everest->ecmsq;
31
31
  everest->xln15s = log(0.15*ecmsq);
32
32
 
@@ -93,76 +93,7 @@ void calculate_scattering(EverestData restrict everest, double p) {
93
93
 
94
94
 
95
95
  /*gpufun*/
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
- }
100
-
101
- // Material properties
102
- double const exenergy = everest->coll->exenergy;
103
- double const rho = everest->coll->rho;
104
- double const anuc = everest->coll->anuc;
105
- double const zatom = everest->coll->zatom;
106
-
107
- // Energy variables
108
- double momentum = pc*1.0e3; // [MeV]
109
- double energy = sqrt(pow(momentum, 2.) + pow(XC_PROTON_MASS, 2.)); // [MeV]
110
- double gammar = energy/XC_PROTON_MASS;
111
- double betar = momentum/energy;
112
- double bgr = betar*gammar;
113
- double mep = XC_ELECTRON_MASS/XC_PROTON_MASS; // Electron/proton
114
-
115
- // tmax is max energy loss from kinematics
116
- double tmax = 2.*XC_ELECTRON_MASS*pow(bgr, 2.)/ (1. + 2.*gammar*mep + pow(mep, 2.)); // [MeV]
117
- double plen = sqrt(rho*zatom/anuc)*28.816e-6; // [MeV]
118
-
119
- everest->energy_loss = 0.5*log(2.*XC_ELECTRON_MASS*bgr*bgr*tmax/pow(exenergy, 2.)) + 0.5;
120
- everest->energy_loss -= pow(betar, 2.);
121
- everest->energy_loss -= log(plen/exenergy);
122
- everest->energy_loss -= log(bgr);
123
- everest->energy_loss *= XC_BETHE_BLOCH*zatom/(anuc* pow(betar, 2.))*rho*1.0e-1; // [GeV/m]
124
-
125
- everest->energy_loss_tail = 0.5*log(2*XC_ELECTRON_MASS*bgr*bgr*tmax/pow(exenergy, 2.)) + 0.5;
126
- everest->energy_loss_tail -= pow(betar, 2.);
127
- everest->energy_loss_tail -= log(plen/exenergy);
128
- everest->energy_loss_tail -= log(bgr);
129
- everest->energy_loss_tail += pow(tmax, 2.)/(8.*pow(energy, 2.));
130
- everest->energy_loss_tail *= XC_BETHE_BLOCH*zatom/(anuc*pow(betar, 2.))*rho*1.0e-1; // [GeV/m]
131
-
132
- double Tt = everest->energy_loss*1.0e3 + XC_BETHE_BLOCH*zatom*4.0e2*rho/(anuc*pow(betar, 2.)); // [MeV/m]
133
-
134
- // Calculate different coefficients for terms in dz (length) to get the tail probability
135
- double const prob_factor = rho*1.e2*XC_BETHE_BLOCH*zatom/(anuc*pow(betar, 2.));
136
- everest->prob_tail_c1 = prob_factor * 0.5 / Tt;
137
- everest->prob_tail_c2 = prob_factor * (
138
- tmax/(4.*pow(energy, 2.)) - 0.5/tmax
139
- - log(tmax/Tt)*pow(betar,2.)/(2.*tmax)
140
- ); // * dz
141
- everest->prob_tail_c3 = prob_factor * pow(betar,2.)/(2.*tmax); // * dz * log(dz)
142
- everest->prob_tail_c4 = -prob_factor * Tt/(4.*pow(energy, 2.)); // * dz * dz
143
- }
144
-
145
-
146
- /*gpufun*/
147
- double calcionloss(EverestData restrict everest, LocalParticle* part, double length) {
148
-
149
- #ifdef XCOLL_REFINE_ENERGY
150
- calculate_ionisation_properties(everest, pc);
151
- #endif
152
-
153
- double prob_tail = everest->prob_tail_c1 + everest->prob_tail_c2 * length
154
- + everest->prob_tail_c3 * length * log(length) + everest->prob_tail_c4 * length * length;
155
-
156
- if (RandomUniform_generate(part) < prob_tail) {
157
- return everest->energy_loss_tail;
158
- } else {
159
- return everest->energy_loss;
160
- }
161
- }
162
-
163
-
164
- /*gpufun*/
165
- double calculate_dechanneling_length(EverestData restrict everest, double pc) {
96
+ double calculate_dechannelling_length(EverestData restrict everest, double pc) {
166
97
  // Material properties
167
98
  double const exenergy = everest->coll->exenergy;
168
99
 
@@ -171,7 +102,7 @@ double calculate_dechanneling_length(EverestData restrict everest, double pc) {
171
102
  double energy = sqrt(pow(momentum, 2.) + pow(XC_PROTON_MASS, 2.)); // [MeV]
172
103
  double gammar = energy/XC_PROTON_MASS;
173
104
 
174
- double const_dech = 256.0/(9.*pow(M_PI, 2.)) / (log(2.*XC_ELECTRON_MASS*gammar/exenergy) - 1.);
105
+ double const_dech = 256.0/(9.*pow(M_PI, 2.)) / (log(2.*XC_ELECTRON_MASS*gammar/exenergy/1000) - 1.);
175
106
  const_dech *= (XC_SCREENING*XC_PLANE_DISTANCE)/(XC_CRADE*XC_ELECTRON_MASS)*1.0e3; // [m/GeV]
176
107
  return const_dech;
177
108
  }
xcoll/xaux.py ADDED
@@ -0,0 +1,73 @@
1
+ # copyright ############################### #
2
+ # This file is part of the Xcoll Package. #
3
+ # Copyright (c) CERN, 2025. #
4
+ # ######################################### #
5
+
6
+ # Tenporary file that defines xaux tools - to be used until xaux is in main Xsuite release cycle
7
+
8
+ import os
9
+ import base64
10
+ import shutil
11
+ import inspect
12
+ import functools
13
+ import numpy as np
14
+ from pathlib import PosixPath
15
+
16
+
17
+ class FsPath(PosixPath):
18
+ def copy_to(self, other, **kwargs):
19
+ if self.is_dir():
20
+ shutil.copytree(self, other / self.name, dirs_exist_ok=True)
21
+ else:
22
+ shutil.copy(self, other)
23
+ def move_to(self, other, **kwargs):
24
+ shutil.move(self, other)
25
+ def rmtree(self, *args, **kwargs):
26
+ shutil.rmtree(self, *args, **kwargs)
27
+
28
+
29
+
30
+ def ranID(*, length=12, size=1, only_alphanumeric=False):
31
+ """Base64 encoded random ID.
32
+ Args:
33
+ length (int): Length of the ID string, rounded up to
34
+ the closest multiple of 4. Default 12.
35
+ size (int): Number of random IDs to generate.
36
+ Default 1.
37
+ only_alphanumeric (bool): If True, only alphanumeric
38
+ characters are used. Default False.
39
+ Returns:
40
+ str: Random ID string.
41
+ """
42
+ if length < 1:
43
+ raise ValueError("Length must be greater than 0!")
44
+ if size < 1:
45
+ raise ValueError("Size must be greater than 0!")
46
+ if size > 1:
47
+ return [ranID(length=length, only_alphanumeric=only_alphanumeric)
48
+ for _ in range(size)]
49
+ length = int(np.ceil(length/4))
50
+ if only_alphanumeric:
51
+ ran = ''
52
+ for _ in range(length):
53
+ while True:
54
+ this_ran = ranID(length=4, only_alphanumeric=False)
55
+ if this_ran.isalnum():
56
+ break
57
+ ran += this_ran
58
+ return ran
59
+ else:
60
+ random_bytes = os.urandom(3*length)
61
+ return base64.urlsafe_b64encode(random_bytes).decode('utf-8')
62
+
63
+
64
+
65
+ def count_required_arguments(func):
66
+ i = 0
67
+ sig = inspect.signature(func)
68
+ for param in sig.parameters.values():
69
+ if (param.kind == inspect.Parameter.POSITIONAL_ONLY \
70
+ or param.kind == inspect.Parameter.POSITIONAL_OR_KEYWORD) \
71
+ and param.default == inspect.Parameter.empty:
72
+ i += 1
73
+ return i
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xcoll
3
- Version: 0.5.11
3
+ Version: 0.6.0
4
4
  Summary: Xsuite collimation package
5
5
  Home-page: https://github.com/xsuite/xcoll
6
6
  License: Apache 2.0
@@ -18,10 +18,10 @@ Provides-Extra: tests
18
18
  Requires-Dist: numpy (>=1.0)
19
19
  Requires-Dist: pandas (>=1.4)
20
20
  Requires-Dist: ruamel-yaml (>=0.17.31,<0.18.0) ; extra == "tests"
21
- Requires-Dist: xdeps (>=0.8.1)
22
- Requires-Dist: xobjects (>=0.4.5)
23
- Requires-Dist: xpart (>=0.19.3)
24
- Requires-Dist: xtrack (>=0.70.3)
21
+ Requires-Dist: xdeps (>=0.10.5)
22
+ Requires-Dist: xobjects (>=0.5.0)
23
+ Requires-Dist: xpart (>=0.23.0)
24
+ Requires-Dist: xtrack (>=0.84.5)
25
25
  Project-URL: Repository, https://github.com/xsuite/xcoll
26
26
  Description-Content-Type: text/markdown
27
27
 
@@ -0,0 +1,135 @@
1
+ LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
2
+ NOTICE,sha256=6DO_E7WCdRKc42vUoVVBPGttvQi4mRt9fAcxj9u8zy8,74
3
+ xcoll/__init__.py,sha256=wEk3szUGeeN2Bg7_nx2D2pCgzRR0zcbEcWCP33p-e3I,854
4
+ xcoll/beam_elements/__init__.py,sha256=qu2-LefWfEKZHfALGqZo97DTrwdZVh7Sp97V-3XokJU,1189
5
+ xcoll/beam_elements/absorber.py,sha256=Gw1l1ng1MqF0dRTk7YhkiPAoinS5xsTASMxMDWGsmTw,2842
6
+ xcoll/beam_elements/base.py,sha256=mjnzLbZ-GC56N56Eq5r5oQB8cLmeaqR5oEH1-FnS_H4,57816
7
+ xcoll/beam_elements/blowup.py,sha256=0jfuxaIwXsEY4e6DlzGmv29OY7DGRKhbb2L-qKJwImQ,8079
8
+ xcoll/beam_elements/elements_src/black_absorber.h,sha256=AXs_bNLaK8xBl8IeLJvGz7AfFaasruPMtYz8lbRtqG4,4705
9
+ xcoll/beam_elements/elements_src/black_crystal.h,sha256=ZlLkJec4_naeoS3jEx-vQVAKBI0dInzMZq06pzKQOn0,4355
10
+ xcoll/beam_elements/elements_src/blowup.h,sha256=YlTt7YxswLM0ZjPuEjuE7xzjQ3hMt6FX9V3MbqVYmN4,1564
11
+ xcoll/beam_elements/elements_src/emittance_monitor.h,sha256=vlHzQFoUjKQHWBmzpaSzRbILtxSWqEasMtxHC-FFoAc,7078
12
+ xcoll/beam_elements/elements_src/everest_block.h,sha256=ITSzfiqwm8ZNIkAj_odQkAjKhPcdT8b0AUlq_uxtsqI,6562
13
+ xcoll/beam_elements/elements_src/everest_collimator.h,sha256=fkD5GazVv2zlmqyb6s9zVNMq6baXeFb_pf7gg9TKjNc,9787
14
+ xcoll/beam_elements/elements_src/everest_crystal.h,sha256=LISp_9NEWMIi5GvZ3LwPfeSbmsbXvHWcTqxW6eCCsiE,11951
15
+ xcoll/beam_elements/elements_src/transparent_collimator.h,sha256=pA_Fxx85N87iSbpHSjR2OSOx6JN9e38T1pOUKrC7zxs,4610
16
+ xcoll/beam_elements/elements_src/transparent_crystal.h,sha256=DGX4uL0hpm4njOypoPuEWtMzYxnL9jQkf2ZrGaS0alI,4128
17
+ xcoll/beam_elements/everest.py,sha256=iJva_S0OQnmG-qj7rIAiUCssu5WL_Qs5P_n6Qx-IWzo,9080
18
+ xcoll/beam_elements/monitor.py,sha256=baMYT_PNya8KX35ReeMwk5Cm04ePUqiDF_s69L5GTX0,16968
19
+ xcoll/beam_elements/transparent.py,sha256=AZOWfH3dvsetL6DjQGejUgX7T18e_3omIIffG_1gwc0,2894
20
+ xcoll/colldb.py,sha256=WaJC6gkDNVvxo65OhucTM6Fwo6pgRFHNnBnHSkiX7AQ,31054
21
+ xcoll/general.py,sha256=kSLikai9J-AWrL9oj9LXhvIKN6bMW7-RpWd4LZCH5A0,534
22
+ xcoll/headers/checks.h,sha256=qdXsOTBOK1MwW6bdFF93j4yE648mcDtEv5rGN1w9sfk,1582
23
+ xcoll/headers/particle_states.py,sha256=N8ehLtg99358I4RGCJ3sjuKCk2LVdGqgVx2xGoHrRdM,1959
24
+ xcoll/initial_distribution.py,sha256=CHhqeCVjVOyaBWhfy2sDgLwIgtXZoqcTW-su-M2YByE,10989
25
+ xcoll/interaction_record/__init__.py,sha256=UFoLiKa-z2oX7YoszP-7Vgdt1nM6kT382v1CaIu8_u0,50
26
+ xcoll/interaction_record/interaction_record.py,sha256=cCjfVCYUJaV0Y-pCljA2_u8GLyhHt7zNjbSXkE7cRO4,13299
27
+ xcoll/interaction_record/interaction_record_src/interaction_record.h,sha256=0rNagnfSGc2i1jauOMIcDbj9QFic9dV_MOyqVx1kw5Q,6067
28
+ xcoll/interaction_record/interaction_types.py,sha256=XTeg2dcImMpqhTqzkJKh6JYam2v9gUMhED-dDKLsilk,2894
29
+ xcoll/line_tools.py,sha256=JBySkKKZ-RGumqAZF_8PSQ3OV0M87P78NeQgbXAdFc4,16699
30
+ xcoll/lossmap.py,sha256=HLdhej9tUjk36T5BulVWurJtfiNa61L_1X7-8kT6JoQ,28407
31
+ xcoll/plot.py,sha256=uy19w0aLufYKpk6RuL265Y8Skl4NgzEuJFF8ur0ezYw,4067
32
+ xcoll/rf_sweep.py,sha256=hMgW15uTp7qPprdlHCZBjOOe8Emdm-R0TfxPDoRXnJU,9021
33
+ xcoll/scattering_routines/engine.py,sha256=1VCBEZLMd5orFo3sZqK51NrqbqELBVrbsz6bB2SXsFQ,22962
34
+ xcoll/scattering_routines/environment.py,sha256=xZ8A7XfvSfpe8vYbM5oD5qbcp8Tuag5qWAI6VqgGUlA,12033
35
+ xcoll/scattering_routines/everest/__init__.py,sha256=7lkkeZ1liBjXVHCuRpgzZI6ohzHVMj5uJBO792147XY,286
36
+ xcoll/scattering_routines/everest/amorphous.h,sha256=8v_5P94LDxeLp1xI2nvwdbEPJNDY6LTB1CwXv4AwjZs,11806
37
+ xcoll/scattering_routines/everest/channelling.h,sha256=WrYBcvGWP2Da47__AGbbKsT8yvZmHhVZd5F1gku--GU,10941
38
+ xcoll/scattering_routines/everest/constants.h,sha256=_y9QqKAUSwPOkk8A4BF8ILNdDDJf66eINJwda8skwZM,1380
39
+ xcoll/scattering_routines/everest/crystal_parameters.h,sha256=QtmSQM4qzVXfjdkxs0ns8utqtqZ_u-Ej_y6m7UOKITo,6001
40
+ xcoll/scattering_routines/everest/everest.h,sha256=T9mESIy_oC86WJSsU7LY_A0iqHT2PKl5MmhnKQaGVSg,3200
41
+ xcoll/scattering_routines/everest/everest.py,sha256=aKy5d7HGiqEphFZDZE4RnYbxh0j10Boc04EZ0By9WdM,1542
42
+ xcoll/scattering_routines/everest/ionisation_loss.h,sha256=QIujj_qrKOY7L7CVFNSyexjlDJ94sfilvakhfWVfe44,6108
43
+ xcoll/scattering_routines/everest/jaw.h,sha256=4Ml9FofWPkGlvw6oWNdbZQIYV4K1xhfbEkNwwfDcITc,2069
44
+ xcoll/scattering_routines/everest/materials.py,sha256=pKQfrMNrqU3sitICTRjqfvwsvHrBDSUf3jfmOEE5Kls,10292
45
+ xcoll/scattering_routines/everest/multiple_coulomb_scattering.h,sha256=oX_ZN32eLcZX3VdYn4kAnT5wMKVTe4fLudPgbX9w37Y,5434
46
+ xcoll/scattering_routines/everest/nuclear_interaction.h,sha256=07yg9AD3jAfPetFVSY6cXT0iN5tBCrXXmYWvGMTaUDI,3892
47
+ xcoll/scattering_routines/everest/properties.h,sha256=AJf7Q_iPsiXTavnguzsNozdoH4NYGdDvyqP3iXychKU,3845
48
+ xcoll/scattering_routines/fluka/flukaio/.git,sha256=5ZxurpwP1waJk2Zu2AstENGOp4rXU8-C-oU4CypmIVI,73
49
+ xcoll/scattering_routines/fluka/flukaio/.gitignore,sha256=bhrpWiAnKChkcwIaIPX_zKxyG2nCtNzNgQAHnIJa8Fw,12
50
+ xcoll/scattering_routines/fluka/flukaio/CMakeLists.txt,sha256=iWWqTC26UqcuQWQj_JCKtX6iiOb7arnhQ9kOo1fDVkE,591
51
+ xcoll/scattering_routines/fluka/flukaio/ComponentMakefile,sha256=JgZVBFGEe1NtNWoCFBQQQuqUU63CuUsJ01y7C8yoR8c,5951
52
+ xcoll/scattering_routines/fluka/flukaio/Makefile,sha256=2RMI62VExb2Wx7J031hHIVhhv6p8mfUc7_vynGcskrw,3404
53
+ xcoll/scattering_routines/fluka/flukaio/README,sha256=jn-0UQ7MOjy9xXbw5VTkOjgq2j1W7B2zE35DRspHhRA,611
54
+ xcoll/scattering_routines/fluka/flukaio/doc/Doxyfile,sha256=jo47N7f4AR-KPiL36Jj9Za5F1Frp8eRL845F6siC3jc,65455
55
+ xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO.asciidoc,sha256=vvEaZ7SI3wit3OjNPEDDqjOWD8u3SzFzJrPrG_eQhzg,45517
56
+ xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO.epub,sha256=msmaZhUq_iaUvfT4wMiKXwzcJwleeFb77qD_ioX7cqE,138089
57
+ xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO.html,sha256=lxRW82DbktTH3wCm8DACwyeSD7pb3VIW6QnTdS75hsc,74567
58
+ xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO.pdf,sha256=xsOPD4gFpe7PnQyEQIfxk0PekjK4YJtxTvrF_aX-Xag,233955
59
+ xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__1.png,sha256=RjuZmNCDHSryVvqGaVTHBGOnxocNgIGMnkwjTT2kPmA,36021
60
+ xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__2.png,sha256=YXtIj92Obu-Tml4ScibCJbfNo3egjIGoe7mSP7FXMdY,2904
61
+ xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__3.png,sha256=jsRi-MYzLU8TCcMrilp20dDZ8cZYWRL3AebGts0D-UU,23826
62
+ xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__4.png,sha256=v1_945h1-oEps38VyOdfIJLKcJEledckzFB_JXfagso,3956
63
+ xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__5.png,sha256=dD0qouz9OBy8LNAeNrc_SyBJdNlEw9Y9S7GGftMZoXk,7017
64
+ xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__6.png,sha256=_w_PLC7SbmfFC-yXuuw-wJdBPlZOsyCbA84Q9yHY0Mg,33614
65
+ xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__7.png,sha256=sOPu0rKPsKtb9-zJmP0APMl1Swf6DQzvOwa2Wd3balU,51182
66
+ xcoll/scattering_routines/fluka/flukaio/doc/Makefile,sha256=HzLTLkzE4v-fkZH_q139T9KGm5jqDlDUanm4T-NrAh8,146
67
+ xcoll/scattering_routines/fluka/flukaio/doc/docbook.xsl,sha256=C5fAdTixTP0Y1AgxEGuhXfBMHRKQUfu4_8HkGUaDT08,74068
68
+ xcoll/scattering_routines/fluka/flukaio/include/Connection.h,sha256=gAlJAJoi0DV7OrRDlnc2yxf9EE1m1TNY1Tx3UC7UVDk,2793
69
+ xcoll/scattering_routines/fluka/flukaio/include/FlukaIO.h,sha256=ROly1bNu8vAMRSSHCA1w3Ffe8EUttu5g_WusKyVbKVY,1976
70
+ xcoll/scattering_routines/fluka/flukaio/include/FlukaIOServer.h,sha256=81_z_od7Iu-kZIy3uKa4Qaoiz7HXzF8mBdAgEZN7CNE,757
71
+ xcoll/scattering_routines/fluka/flukaio/include/FortranFlukaIO.h,sha256=7e18HlHpPzcfbuVtw5YcvGCmCWcZ6PIZw1j8Ao-u32s,5954
72
+ xcoll/scattering_routines/fluka/flukaio/include/Message.h,sha256=7UWWjCGwNEcVjee2c32CYDXPKAGvds-JFv7P-Penmqc,1731
73
+ xcoll/scattering_routines/fluka/flukaio/include/ParticleInfo.h,sha256=9-LEorFn0_uTxH7cnN8VS_B1m4C0Jokj1S--5I9mJ24,1328
74
+ xcoll/scattering_routines/fluka/flukaio/lib/libFlukaIO64.a,sha256=EyPMYXw-gGyro22gbMzHVQ2x2otddQhlqadP_b45XNA,82884
75
+ xcoll/scattering_routines/fluka/flukaio/lib/libFlukaIO64.so,sha256=RhlyKPX_KqxlOlxd0mllVtxCCFXwHgzhHVAnDIugdaE,66688
76
+ xcoll/scattering_routines/fluka/flukaio/samples/ClientTest.c,sha256=tm-xzz169gsbAC6OWIYcngZeNpc3RhxHlvPYNCoiA6Y,2907
77
+ xcoll/scattering_routines/fluka/flukaio/samples/ServerTest.c,sha256=s-x2KbssquSUda4yLAb0pRLqUOfdsS3US_enedCpiVA,2330
78
+ xcoll/scattering_routines/fluka/flukaio/samples/fclient.f,sha256=lF7G0xgpdteRSNtNWiZVG4kkeiKduwrk-WufFb8EtXc,3629
79
+ xcoll/scattering_routines/fluka/flukaio/samples/fserver.f,sha256=SO1bkHvlw52GC1mw17G0k05XfhosdHiXkq4qYaNAPp0,2995
80
+ xcoll/scattering_routines/fluka/flukaio/src/Connection.c,sha256=WlQpBki9bIausYuZyZqXNnyDfTyVFTO4iSFVutn7gFU,5769
81
+ xcoll/scattering_routines/fluka/flukaio/src/Connection.d,sha256=w1ijLCfHpVGm7UNvORrezmjgVyBQPn4GifiOWXaYb4s,5882
82
+ xcoll/scattering_routines/fluka/flukaio/src/Connection.o,sha256=qyEuE5B-L2awz6KWdU1ER4mptA1n-qpYh72-4k6js5o,13008
83
+ xcoll/scattering_routines/fluka/flukaio/src/FlukaIO.c,sha256=yRKw5BizRyS_G2dnD61HH2ManwYqoAEfMEkZhEPV7MI,4804
84
+ xcoll/scattering_routines/fluka/flukaio/src/FlukaIO.d,sha256=CUaHIRw5C7_SptwLSJBOML33XvE7lZWhJzfuBXKirw8,3829
85
+ xcoll/scattering_routines/fluka/flukaio/src/FlukaIO.o,sha256=SZuNUlyt0fVb0k7_ypbTRlSX7bsbtyEN14VsBFb93vg,12440
86
+ xcoll/scattering_routines/fluka/flukaio/src/FlukaIOHandshake.c,sha256=GMsE2lk32f5K-8bbYC7fJYZU5C_sMxTa6zkqNR215XM,1541
87
+ xcoll/scattering_routines/fluka/flukaio/src/FlukaIOHandshake.d,sha256=fSxhMLdzngyIK6WgIySYL4dZzWQRDAlb4FEHMwIZmA0,2445
88
+ xcoll/scattering_routines/fluka/flukaio/src/FlukaIOHandshake.h,sha256=S6ksRwhjGPJ2CxRagP43pXsXnJV90tGVVt7lEREXoFE,288
89
+ xcoll/scattering_routines/fluka/flukaio/src/FlukaIOHandshake.o,sha256=uKzcFMpTnR-6ZQt77vkNGS9HhMIIQWL12VjvCEA-YNE,7664
90
+ xcoll/scattering_routines/fluka/flukaio/src/FlukaIOServer.c,sha256=EQV_XaZ6iqCBkguX-3ojtyBw3zKjAqksIqr9djd6hnU,1925
91
+ xcoll/scattering_routines/fluka/flukaio/src/FlukaIOServer.d,sha256=QXDFEiuImczHPlhBm1CceKLKRjqCnH7514L2t-1Vh-0,5905
92
+ xcoll/scattering_routines/fluka/flukaio/src/FlukaIOServer.o,sha256=q89-SL6XaZx76XSZ6Vq8yvJqY_YQtOeXlb5fFuwjctE,7536
93
+ xcoll/scattering_routines/fluka/flukaio/src/FlukaIOServer_private.h,sha256=VZpGHBS5bLuN7j_WRxCye1cNgxK6LPfo6gW7X47T-QE,396
94
+ xcoll/scattering_routines/fluka/flukaio/src/FlukaIO_private.h,sha256=t459fyfh8KTW2y2kVAjzBKUDzppnypkBE0IjLKxkEzs,421
95
+ xcoll/scattering_routines/fluka/flukaio/src/FortranFlukaIO.c,sha256=2lHLmtFYvITsuFbJ9_OU11ry3IPkOmmKQIorZQ4XyR0,11512
96
+ xcoll/scattering_routines/fluka/flukaio/src/FortranFlukaIO.d,sha256=fdq8pRR-0ulVlvanaiTCLQPBKLNTxj9hOkqNADcqjcI,3240
97
+ xcoll/scattering_routines/fluka/flukaio/src/FortranFlukaIO.o,sha256=1HwWdEr_g2E3Fc6p8DZuiBWJOAA52PDwP5TpzZOENB8,23400
98
+ xcoll/scattering_routines/fluka/flukaio/src/NetIO.c,sha256=tZwvJEA1fuoOC54i6E0GISEaiRMJt3HgqXKTqtxFeuc,6361
99
+ xcoll/scattering_routines/fluka/flukaio/src/NetIO.d,sha256=p9yB2w56mNwi9-XgF69YXF9pJyEiQQYo6D99Y9aFbv8,5716
100
+ xcoll/scattering_routines/fluka/flukaio/src/NetIO.h,sha256=hv0-sQ9aMcOyBh6QfKgR3ibIe37k8szm8dc1-45UG_U,902
101
+ xcoll/scattering_routines/fluka/flukaio/src/NetIO.o,sha256=eZUZ5JzAXijE4IhRnWU5BUnHJhA97XNRhL70-mX452I,16816
102
+ xcoll/scattering_routines/fluka/flukaio/src/tags,sha256=nXICMFzoWSyZKssmB6uviGaI3cLd_u4gBku2NNTNWNU,14484
103
+ xcoll/scattering_routines/fluka/flukaio/tests/AllTests.cpp,sha256=4ChxFO2TpNmwNiMEI-UHMYLg62y6K5iEBGcoKZiCDpI,166
104
+ xcoll/scattering_routines/fluka/flukaio/tests/CommonTest.h,sha256=CZtIENoRY_D_BVRuS3eIiii1G-EPKpxHUh4E4cwfqmg,152
105
+ xcoll/scattering_routines/fluka/flukaio/tests/ConnectionTest.cpp,sha256=Z9MQu0R7xRQEBnAA9rG7b-EqJnyiawBlGkhz-pATvEM,2464
106
+ xcoll/scattering_routines/fluka/flukaio/tests/FlukaIOServerTest.cpp,sha256=GJMyEcJ2E9XtvbQx3Huxr7h_bsEqfqSMaoSU0Mw-MV8,1851
107
+ xcoll/scattering_routines/fluka/flukaio/tests/FlukaIOTest.cpp,sha256=9iOsTJlR8BmDeOn16bb4Zk_Pwxyem6hhi6jdKS7TGPo,11293
108
+ xcoll/scattering_routines/fluka/flukaio/tests/FortranFlukaIOTest.cpp,sha256=28aX0J-63kzuwDsB5KrrQ9-m_KE4FE9cVMJk6GKQGyg,14331
109
+ xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeConnection.c,sha256=w1ggaUuolcg_5IwP_iY2ZV7FMHjrdOTfhj_k-ReRpCQ,526
110
+ xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeConnection.h,sha256=fXR8m7OhG4QwYyyb0vFrXyXVg6F37ooSED8LkIj2Ieo,226
111
+ xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFlukaIO.c,sha256=o6Nh82ILb4qY_g3hdoM2_J8saffeBnOLzCeQrugwcxg,2244
112
+ xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFlukaIO.h,sha256=_cKsqrwvMstieLWdxsUfStsXhm_TcnwtoGUxp2AE-As,1660
113
+ xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFlukaIOHandshake.c,sha256=Kv89mqdpYJabbjbDNESpsCZgWhb-D7NB1ktoNxVMmrw,549
114
+ xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFlukaIOHandshake.h,sha256=GWX3oySTSnd_K84hmT1WqAKBmViaohmd_18Ii7uhlX4,395
115
+ xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFlukaIOServer.c,sha256=dfZVteG9cKqtvEefROUWWcdXnhYDqEyNoc4OyisrUzA,360
116
+ xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFlukaIOServer.h,sha256=0yKRoJmJwoFpjLWatgi_WaWgPwKb0UHNdA7AQzv9PMY,280
117
+ xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFortranFlukaIO.h,sha256=WxAjG2SPlWqMG38iHBM8GQwh5yp031jAGeyPi4y9G4c,330
118
+ xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeNetIO.c,sha256=JcgCWxbT-ZOeG0c9mz1kk3PfXjaazaUk2P_ROtoBKaY,1452
119
+ xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeNetIO.h,sha256=JTMU9FtCBJkitsnHp7kWKUbPSN4rviRfJgVHK26AuPY,906
120
+ xcoll/scattering_routines/geometry/__init__.py,sha256=a2DFji3U6Msj-aJE2Dt5Il8FgesfICJHeK9yQj4zHa4,221
121
+ xcoll/scattering_routines/geometry/collimator_geometry.h,sha256=0gHiSEALJtQdW0mUav7GmES4JCAvq-xmch_ZRPkCfUI,7819
122
+ xcoll/scattering_routines/geometry/crystal_geometry.h,sha256=DHuQPMKq_Q0uK0WW2YRd7oxxhMwRPWtNUUn5fBW4Cxc,4968
123
+ xcoll/scattering_routines/geometry/geometry.py,sha256=bF8v7aEP09E4_EMkN0KEJFU-PQrBSOB0Xv699VBUzRY,1102
124
+ xcoll/scattering_routines/geometry/get_s.h,sha256=TWxZ-GjCcLrOV1wota7ltE53Nit0LQASoXmsqn-N0LQ,2947
125
+ xcoll/scattering_routines/geometry/methods.h,sha256=I8ik46SgkCHHtZ99anbdb3ZC7A_5Q809fgpeWMajdkY,3747
126
+ xcoll/scattering_routines/geometry/objects.h,sha256=A5ktGvVlSkC4hUsI_PQFsE80CuDwYbcioxKGRmEf2I0,5499
127
+ xcoll/scattering_routines/geometry/rotation.h,sha256=lO3RaQBys9r0ROMjR8T8Rr7UsIEm-H9_C_70Nwz4MXY,701
128
+ xcoll/scattering_routines/geometry/segments.h,sha256=7nKnnin2ByxkKyaYwGvFaqgLQg5uBba4CdLHL7L3iQs,7667
129
+ xcoll/scattering_routines/geometry/sort.h,sha256=b1MkFO2ddzv1fWGeQzsLuz46qo2pKyRSXHjoAEVU7Ts,5763
130
+ xcoll/xaux.py,sha256=mh4E_jhaUFm2LOKawJ0b6X4zuz8JiJhx6w7GcnRgIXQ,2291
131
+ xcoll-0.6.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
132
+ xcoll-0.6.0.dist-info/METADATA,sha256=pvIhoCK7JIHzHWv-Alykk78jooTeySkRYg0cAofiHtk,2676
133
+ xcoll-0.6.0.dist-info/NOTICE,sha256=6DO_E7WCdRKc42vUoVVBPGttvQi4mRt9fAcxj9u8zy8,74
134
+ xcoll-0.6.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
135
+ xcoll-0.6.0.dist-info/RECORD,,
xcoll/_manager.py DELETED
@@ -1,22 +0,0 @@
1
- # copyright ############################### #
2
- # This file is part of the Xcoll package. #
3
- # Copyright (c) CERN, 2024. #
4
- # ######################################### #
5
-
6
-
7
- class CollimatorManager:
8
-
9
- def __init__(self, **kwargs):
10
- raise ValueError("`CollimatorManager` is deprecated. Use `CollimatorDatabase` instead.")
11
-
12
- @classmethod
13
- def from_yaml(cls, file, **kwargs):
14
- raise ValueError("`CollimatorManager` is deprecated. Use `CollimatorDatabase` instead.")
15
-
16
- @classmethod
17
- def from_json(cls, file, **kwargs):
18
- raise ValueError("`CollimatorManager` is deprecated. Use `CollimatorDatabase` instead.")
19
-
20
- @classmethod
21
- def from_dict(cls, file, **kwargs):
22
- raise ValueError("`CollimatorManager` is deprecated. Use `CollimatorDatabase` instead.")
@@ -1,25 +0,0 @@
1
- // copyright ############################### #
2
- // This file is part of the Xcoll package. #
3
- // Copyright (c) CERN, 2024. #
4
- // ######################################### #
5
-
6
- #ifndef XCOLL_STATES_H
7
- #define XCOLL_STATES_H
8
-
9
- #define XC_LOST_ON_EVEREST_BLOCK -330
10
- #define XC_LOST_ON_EVEREST_COLL -331
11
- #define XC_LOST_ON_EVEREST_CRYSTAL -332
12
- #define XC_LOST_ON_FLUKA_BLOCK -333
13
- #define XC_LOST_ON_FLUKA -334
14
- #define XC_LOST_ON_FLUKA_CRYSTAL -335
15
- #define XC_LOST_ON_GEANT4_BLOCK -336
16
- #define XC_LOST_ON_GEANT4 -337
17
- #define XC_LOST_ON_GEANT4_CRYSTAL -338
18
- #define XC_LOST_ON_ABSORBER -340
19
-
20
- #define XC_ERR_INVALID_TRACK -390
21
- #define XC_ERR_NOT_IMPLEMENTED -391
22
- #define XC_ERR_INVALID_XOFIELD -392
23
- #define XC_ERR -399
24
-
25
- #endif /* XCOLL_STATES_H */
xcoll/install.py DELETED
@@ -1,35 +0,0 @@
1
- # copyright ############################### #
2
- # This file is part of the Xcoll package. #
3
- # Copyright (c) CERN, 2024. #
4
- # ######################################### #
5
-
6
- from warnings import warn
7
-
8
- # This file is deprecated and will be removed in the future.
9
-
10
-
11
- def install_elements(line, names, elements, *, at_s=None, apertures=None, need_apertures=False, s_tol=1.e-6):
12
- warn("The function xcoll.install_elements() is deprecated and will be removed in the future. "
13
- + "Please use line.collimators.install() instead.", FutureWarning)
14
- line.collimators.install(names=names, elements=elements, at_s=at_s, apertures=apertures,
15
- need_apertures=need_apertures, s_tol=s_tol)
16
-
17
- def check_element_position(line, name, s_start, s_end, at_s, length=None, s_tol=1.e-6):
18
- warn("The function xcoll.check_element_position() is deprecated and will be removed "
19
- + "in the future. Please use line.collimators.check_position() instead.", FutureWarning)
20
- return line.collimators.check_position(name, s_start, s_end, at_s, length=length, s_tol=s_tol)
21
-
22
- def get_apertures_at_s(tab, s, s_tol=1.e-6):
23
- warn("The function xcoll.get_apertures_at_s() is deprecated and will be removed in the future. "
24
- + "Please use line.collimators.get_apertures_at_s() instead.", FutureWarning)
25
- return get_apertures_at_s(s, s_tol=s_tol)
26
-
27
- def get_aperture_for_element(line, name, s_start, s_end, aperture=None, tab=None, s_tol=1.e-6):
28
- warn("The function xcoll.get_aperture_for_element() is deprecated and will be removed in the future. "
29
- + "Please use line.collimators.get_aperture() instead.", FutureWarning)
30
- return line.get_aperture(name, s_start, s_end, aperture=aperture, tab=tab, s_tol=s_tol)
31
-
32
- def prepare_space_for_element(line, name, s_start, s_end, tab=None, s_tol=1.e-6):
33
- warn("The function xcoll.prepare_space_for_element() is deprecated and will be removed in the future. "
34
- + "Please use line.collimators.prepare_space() instead.", FutureWarning)
35
- return line.collimators.prepare_space(name, s_start, s_end, tab=tab, s_tol=s_tol)
@@ -1 +0,0 @@
1
- gitdir: ../../../../.git/modules/xcoll/scattering_routines/geant4/collimasim
@@ -1,12 +0,0 @@
1
- *.pyc
2
- *.egg-info/
3
- *.so
4
- *.o
5
- *~
6
- #*#
7
- .#*
8
- .DS_Store
9
- .idea
10
- .vscode
11
- build
12
- cmake-build*
@@ -1,3 +0,0 @@
1
- [submodule "pybind11"]
2
- path = lib/pybind11
3
- url = https://github.com/pybind/pybind11.git
@@ -1,26 +0,0 @@
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})
@@ -1,21 +0,0 @@
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
@@ -1,20 +0,0 @@
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)