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