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.
- xcoll/__init__.py +2 -1
- xcoll/beam_elements/__init__.py +7 -1
- xcoll/beam_elements/absorber.py +2 -2
- xcoll/beam_elements/base.py +105 -67
- xcoll/beam_elements/blowup.py +198 -0
- xcoll/beam_elements/{collimators_src → elements_src}/black_absorber.h +21 -3
- xcoll/beam_elements/{collimators_src → elements_src}/black_crystal.h +20 -2
- xcoll/beam_elements/elements_src/blowup.h +42 -0
- xcoll/beam_elements/elements_src/emittance_monitor.h +109 -0
- xcoll/beam_elements/{collimators_src → elements_src}/everest_block.h +19 -2
- xcoll/beam_elements/{collimators_src → elements_src}/everest_collimator.h +19 -3
- xcoll/beam_elements/{collimators_src → elements_src}/everest_crystal.h +30 -9
- xcoll/beam_elements/everest.py +5 -6
- xcoll/beam_elements/monitor.py +428 -0
- xcoll/colldb.py +103 -74
- xcoll/general.py +4 -4
- xcoll/initial_distribution.py +18 -6
- xcoll/install.py +3 -1
- xcoll/interaction_record/interaction_record.py +126 -80
- xcoll/interaction_record/interaction_record_src/interaction_record.h +43 -43
- xcoll/line_tools.py +8 -9
- xcoll/lossmap.py +48 -38
- xcoll/scattering_routines/everest/amorphous.h +4 -11
- xcoll/scattering_routines/everest/channeling.h +3 -8
- xcoll/scattering_routines/everest/everest.h +4 -1
- xcoll/scattering_routines/everest/jaw.h +4 -3
- xcoll/scattering_routines/everest/materials.py +35 -15
- xcoll/scattering_routines/everest/multiple_coulomb_scattering.h +2 -2
- xcoll/scattering_routines/everest/nuclear_interaction.h +1 -1
- xcoll/scattering_routines/everest/properties.h +6 -1
- xcoll/scattering_routines/fluka/flukaio/lib/libFlukaIO64.a +0 -0
- xcoll/scattering_routines/geant4/collimasim/.git +1 -0
- xcoll/scattering_routines/geant4/collimasim/.gitignore +12 -0
- xcoll/scattering_routines/geant4/collimasim/.gitmodules +3 -0
- xcoll/scattering_routines/geant4/collimasim/CMakeLists.txt +26 -0
- xcoll/scattering_routines/geant4/collimasim/README.md +21 -0
- xcoll/scattering_routines/geant4/collimasim/docs/Makefile +20 -0
- xcoll/scattering_routines/geant4/collimasim/docs/make.bat +35 -0
- xcoll/scattering_routines/geant4/collimasim/docs/source/collimasim.rst +10 -0
- xcoll/scattering_routines/geant4/collimasim/docs/source/conf.py +59 -0
- xcoll/scattering_routines/geant4/collimasim/docs/source/index.rst +26 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.appveyor.yml +37 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.clang-format +19 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.clang-tidy +65 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.cmake-format.yaml +73 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.git +1 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/CODEOWNERS +9 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/CONTRIBUTING.md +386 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/ISSUE_TEMPLATE/bug-report.yml +45 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/ISSUE_TEMPLATE/config.yml +8 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/dependabot.yml +16 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/labeler.yml +8 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/labeler_merged.yml +3 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/pull_request_template.md +19 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/ci.yml +969 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/configure.yml +84 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/format.yml +48 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/labeler.yml +16 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/pip.yml +103 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.gitignore +45 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.pre-commit-config.yaml +151 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.readthedocs.yml +3 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/CMakeLists.txt +297 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/LICENSE +29 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/MANIFEST.in +6 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/README.rst +180 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/Doxyfile +23 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/Makefile +192 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/_static/theme_overrides.css +11 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/chrono.rst +81 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/custom.rst +93 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/eigen.rst +310 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/functional.rst +109 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/index.rst +43 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/overview.rst +171 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/stl.rst +251 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/strings.rst +305 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/classes.rst +1297 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/embedding.rst +262 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/exceptions.rst +396 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/functions.rst +568 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/misc.rst +337 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/index.rst +13 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/numpy.rst +463 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/object.rst +286 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/utilities.rst +155 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/smart_ptrs.rst +174 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/basics.rst +308 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/benchmark.py +91 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/benchmark.rst +95 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/changelog.rst +2050 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/classes.rst +542 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/cmake/index.rst +8 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/compiling.rst +648 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/conf.py +381 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/faq.rst +343 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/index.rst +48 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/installing.rst +105 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/limitations.rst +72 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11-logo.png +0 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python1.png +0 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python1.svg +427 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python2.png +0 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python2.svg +427 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/reference.rst +130 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/release.rst +96 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/requirements.txt +8 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/upgrade.rst +548 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/attr.h +605 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/buffer_info.h +144 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/cast.h +1432 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/chrono.h +213 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/common.h +2 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/complex.h +65 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/class.h +709 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/common.h +1021 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/descr.h +104 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/init.h +346 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/internals.h +467 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/type_caster_base.h +978 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/typeid.h +55 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/eigen.h +606 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/embed.h +284 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/eval.h +163 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/functional.h +121 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/gil.h +193 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/iostream.h +275 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/numpy.h +1741 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/operators.h +163 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/options.h +65 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/pybind11.h +2497 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/pytypes.h +1879 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl/filesystem.h +103 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl.h +375 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl_bind.h +747 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/noxfile.py +88 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/__init__.py +11 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/__main__.py +52 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/_version.py +12 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/_version.pyi +6 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/commands.py +21 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/py.typed +0 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/setup_helpers.py +482 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/setup_helpers.pyi +63 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pyproject.toml +41 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/setup.cfg +56 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/setup.py +155 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/CMakeLists.txt +503 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/conftest.py +208 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/constructor_stats.h +275 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/cross_module_gil_utils.cpp +73 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/env.py +33 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_python_package/pytest.ini +0 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_python_package/test_files.py +279 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_setuptools/pytest.ini +0 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_setuptools/test_setuphelper.py +143 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/local_bindings.h +85 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/object.h +179 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_cross_module_tests.cpp +151 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_tests.cpp +91 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_tests.h +85 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pytest.ini +19 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/requirements.txt +12 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_async.cpp +26 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_async.py +25 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_buffers.cpp +216 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_buffers.py +163 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_builtin_casters.cpp +286 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_builtin_casters.py +536 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_call_policies.cpp +107 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_call_policies.py +248 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_callbacks.cpp +227 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_callbacks.py +202 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_chrono.cpp +84 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_chrono.py +210 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_class.cpp +550 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_class.py +473 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/CMakeLists.txt +84 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/embed.cpp +21 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_embed/CMakeLists.txt +28 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_function/CMakeLists.txt +39 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_target/CMakeLists.txt +46 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/main.cpp +6 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt +41 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_function/CMakeLists.txt +35 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt +41 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/test.py +10 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_constants_and_functions.cpp +165 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_constants_and_functions.py +53 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_copy_move.cpp +238 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_copy_move.py +126 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_casters.cpp +141 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_casters.py +117 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_setup.cpp +41 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_setup.py +50 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_docstring_options.cpp +69 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_docstring_options.py +42 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eigen.cpp +348 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eigen.py +771 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/CMakeLists.txt +47 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/catch.cpp +22 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/external_module.cpp +23 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/test_interpreter.cpp +326 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/test_interpreter.py +15 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_enum.cpp +148 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_enum.py +272 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval.cpp +119 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval.py +51 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval_call.py +5 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.cpp +285 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.h +12 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.py +265 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_factory_constructors.cpp +397 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_factory_constructors.py +520 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_gil_scoped.cpp +49 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_gil_scoped.py +94 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_iostream.cpp +125 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_iostream.py +331 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_kwargs_and_defaults.cpp +153 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_kwargs_and_defaults.py +284 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_local_bindings.cpp +107 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_local_bindings.py +257 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_methods_and_attributes.cpp +412 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_methods_and_attributes.py +517 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_modules.cpp +102 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_modules.py +92 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_multiple_inheritance.cpp +233 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_multiple_inheritance.py +360 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_array.cpp +472 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_array.py +593 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_dtypes.cpp +524 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_dtypes.py +441 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_vectorize.cpp +103 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_vectorize.py +267 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_opaque_types.cpp +73 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_opaque_types.py +59 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_operator_overloading.cpp +235 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_operator_overloading.py +146 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pickling.cpp +189 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pickling.py +82 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pytypes.cpp +560 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pytypes.py +651 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_sequences_and_iterators.cpp +500 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_sequences_and_iterators.py +253 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_smart_ptr.cpp +452 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_smart_ptr.py +318 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl.cpp +342 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl.py +291 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl_binders.cpp +131 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl_binders.py +318 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_tagbased_polymorphic.cpp +144 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_tagbased_polymorphic.py +29 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_thread.cpp +66 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_thread.py +44 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_union.cpp +22 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_union.py +9 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_virtual_functions.cpp +510 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_virtual_functions.py +408 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/valgrind-numpy-scipy.supp +140 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/valgrind-python.supp +117 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindCatch.cmake +70 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindEigen3.cmake +86 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindPythonLibsNew.cmake +257 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/check-style.sh +44 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/cmake_uninstall.cmake.in +23 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/libsize.py +39 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/make_changelog.py +64 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Common.cmake +402 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Config.cmake.in +233 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11NewTools.cmake +276 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Tools.cmake +214 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pyproject.toml +3 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/setup_global.py.in +65 -0
- xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/setup_main.py.in +41 -0
- xcoll/scattering_routines/geant4/collimasim/pyproject.toml +8 -0
- xcoll/scattering_routines/geant4/collimasim/setup.py +144 -0
- xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSPyATInterface.cpp +403 -0
- xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSPyATInterface.hh +100 -0
- xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSXtrackInterface.cpp +763 -0
- xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSXtrackInterface.hh +118 -0
- xcoll/scattering_routines/geant4/collimasim/src/collimasim/__init__.py +8 -0
- xcoll/scattering_routines/geant4/collimasim/src/collimasim/bindings.cpp +63 -0
- xcoll/scattering_routines/geant4/collimasim/src/collimasim/pyCollimatorPass.py +142 -0
- xcoll/scattering_routines/geant4/collimasim/src/collimasim/xtrack_collimator.py +556 -0
- xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/PKG-INFO +6 -0
- xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/SOURCES.txt +24 -0
- xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/dependency_links.txt +1 -0
- xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/not-zip-safe +1 -0
- xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/top_level.txt +1 -0
- xcoll/scattering_routines/geant4/collimasim/tests/README.md +25 -0
- xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_forions.dat +25 -0
- xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_new_example.dat +18 -0
- xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_old_example.dat +68 -0
- xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_testing.dat +15 -0
- xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_yaml_example.yaml +110 -0
- xcoll/scattering_routines/geant4/collimasim/tests/resources/collgaps.dat +7 -0
- xcoll/scattering_routines/geant4/collimasim/tests/resources/collgaps_pyat_test.dat +3 -0
- xcoll/scattering_routines/geant4/collimasim/tests/resources/collonly_twiss_file_example.tfs +54 -0
- xcoll/scattering_routines/geant4/collimasim/tests/resources/settings.gmad +3 -0
- xcoll/scattering_routines/geant4/collimasim/tests/resources/settings_black_absorber.gmad +3 -0
- xcoll/scattering_routines/geant4/collimasim/tests/resources/settings_ions.gmad +5 -0
- xcoll/scattering_routines/geant4/collimasim/tests/resources/twiss_file_testing.tfs +51 -0
- xcoll/scattering_routines/geant4/collimasim/tests/test_pyat.py +65 -0
- xcoll/scattering_routines/geant4/collimasim/tests/test_pyat_passmethod.py +59 -0
- xcoll/scattering_routines/geant4/collimasim/tests/test_pyat_tracking.py +102 -0
- xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack.py +75 -0
- xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_angle.py +74 -0
- xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_colldb_load.py +84 -0
- xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_interaction.py +159 -0
- xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_interaction_ion.py +99 -0
- xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_ions.py +78 -0
- xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_lost_energy.py +88 -0
- xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tilt.py +80 -0
- xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tracking.py +97 -0
- xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tracking_ions.py +96 -0
- xcoll/scattering_routines/geometry/collimator_geometry.h +9 -10
- xcoll/scattering_routines/geometry/crystal_geometry.h +9 -6
- {xcoll-0.4.0.dist-info → xcoll-0.5.0.dist-info}/METADATA +1 -1
- xcoll-0.5.0.dist-info/RECORD +413 -0
- xcoll/scattering_routines/fluka/build_fluka_input.py +0 -58
- xcoll-0.4.0.dist-info/RECORD +0 -126
- {xcoll-0.4.0.dist-info → xcoll-0.5.0.dist-info}/LICENSE +0 -0
- {xcoll-0.4.0.dist-info → xcoll-0.5.0.dist-info}/NOTICE +0 -0
- {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
|
|
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
|
|
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
|
|
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
|
-
|
|
331
|
-
|
|
332
|
-
"
|
|
333
|
-
"
|
|
334
|
-
"
|
|
335
|
-
"
|
|
336
|
-
"
|
|
337
|
-
"
|
|
338
|
-
"
|
|
339
|
-
"
|
|
340
|
-
"
|
|
341
|
-
"
|
|
342
|
-
"
|
|
343
|
-
"
|
|
344
|
-
"
|
|
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
|
|
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
|
|
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;
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
gitdir: ../../../../.git/modules/xcoll/scattering_routines/geant4/collimasim
|
|
@@ -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,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
|