xcoll 0.5.12__tar.gz → 0.6.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of xcoll might be problematic. Click here for more details.
- {xcoll-0.5.12 → xcoll-0.6.1}/PKG-INFO +5 -5
- {xcoll-0.5.12 → xcoll-0.6.1}/pyproject.toml +7 -7
- xcoll-0.6.1/xcoll/__init__.py +20 -0
- xcoll-0.6.1/xcoll/__init__.py.orig +26 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/beam_elements/__init__.py +1 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/beam_elements/absorber.py +12 -2
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/beam_elements/base.py +162 -62
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/beam_elements/blowup.py +1 -0
- xcoll-0.6.1/xcoll/beam_elements/elements_src/black_absorber.h +135 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/beam_elements/elements_src/black_crystal.h +49 -50
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/beam_elements/elements_src/everest_block.h +21 -11
- xcoll-0.6.1/xcoll/beam_elements/elements_src/everest_collimator.h +235 -0
- xcoll-0.6.1/xcoll/beam_elements/elements_src/everest_crystal.h +280 -0
- xcoll-0.6.1/xcoll/beam_elements/elements_src/transparent_collimator.h +126 -0
- xcoll-0.6.1/xcoll/beam_elements/elements_src/transparent_crystal.h +118 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/beam_elements/everest.py +16 -5
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/beam_elements/monitor.py +1 -0
- xcoll-0.6.1/xcoll/beam_elements/transparent.py +83 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/colldb.py +15 -6
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/general.py +1 -1
- xcoll-0.6.1/xcoll/general.py.orig +20 -0
- xcoll-0.6.1/xcoll/headers/particle_states.py +51 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/initial_distribution.py +121 -91
- xcoll-0.6.1/xcoll/initial_distribution.py.orig +256 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/interaction_record/interaction_record.py +2 -1
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/interaction_record/interaction_types.py +2 -2
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/line_tools.py +163 -73
- xcoll-0.6.1/xcoll/lossmap.py +611 -0
- xcoll-0.6.1/xcoll/plot.py +109 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/rf_sweep.py +6 -0
- xcoll-0.6.1/xcoll/scattering_routines/engine.py +600 -0
- xcoll-0.6.1/xcoll/scattering_routines/environment.py +297 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/everest/amorphous.h +95 -71
- xcoll-0.5.12/xcoll/scattering_routines/everest/channeling.h → xcoll-0.6.1/xcoll/scattering_routines/everest/channelling.h +121 -112
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/everest/constants.h +1 -1
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/everest/crystal_parameters.h +9 -9
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/everest/everest.h +8 -3
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/everest/everest.py +2 -1
- xcoll-0.6.1/xcoll/scattering_routines/everest/ionisation_loss.h +141 -0
- xcoll-0.6.1/xcoll/scattering_routines/everest/jaw.h +60 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/everest/materials.py +2 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/everest/multiple_coulomb_scattering.h +2 -2
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/everest/nuclear_interaction.h +35 -19
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/everest/properties.h +3 -72
- xcoll-0.6.1/xcoll/xaux.py +73 -0
- xcoll-0.5.12/xcoll/__init__.py +0 -33
- xcoll-0.5.12/xcoll/_manager.py +0 -22
- xcoll-0.5.12/xcoll/beam_elements/elements_src/black_absorber.h +0 -136
- xcoll-0.5.12/xcoll/beam_elements/elements_src/everest_collimator.h +0 -226
- xcoll-0.5.12/xcoll/beam_elements/elements_src/everest_crystal.h +0 -275
- xcoll-0.5.12/xcoll/headers/particle_states.h +0 -25
- xcoll-0.5.12/xcoll/install.py +0 -35
- xcoll-0.5.12/xcoll/lossmap.py +0 -219
- xcoll-0.5.12/xcoll/scattering_routines/engine.py +0 -403
- xcoll-0.5.12/xcoll/scattering_routines/everest/jaw.h +0 -65
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/.git +0 -1
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/.gitignore +0 -12
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/.gitmodules +0 -3
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/CMakeLists.txt +0 -26
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/README.md +0 -21
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/docs/Makefile +0 -20
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/docs/make.bat +0 -35
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/docs/source/collimasim.rst +0 -10
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/docs/source/conf.py +0 -59
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/docs/source/index.rst +0 -26
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.appveyor.yml +0 -37
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.clang-format +0 -19
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.clang-tidy +0 -65
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.cmake-format.yaml +0 -73
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.git +0 -1
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/CODEOWNERS +0 -9
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/CONTRIBUTING.md +0 -386
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/ISSUE_TEMPLATE/bug-report.yml +0 -45
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/ISSUE_TEMPLATE/config.yml +0 -8
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/dependabot.yml +0 -16
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/labeler.yml +0 -8
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/labeler_merged.yml +0 -3
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/pull_request_template.md +0 -19
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/ci.yml +0 -969
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/configure.yml +0 -84
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/format.yml +0 -48
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/labeler.yml +0 -16
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/pip.yml +0 -103
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.gitignore +0 -45
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.pre-commit-config.yaml +0 -151
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.readthedocs.yml +0 -3
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/CMakeLists.txt +0 -297
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/LICENSE +0 -29
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/MANIFEST.in +0 -6
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/README.rst +0 -180
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/Doxyfile +0 -23
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/Makefile +0 -192
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/_static/theme_overrides.css +0 -11
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/chrono.rst +0 -81
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/custom.rst +0 -93
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/eigen.rst +0 -310
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/functional.rst +0 -109
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/index.rst +0 -43
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/overview.rst +0 -171
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/stl.rst +0 -251
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/strings.rst +0 -305
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/classes.rst +0 -1297
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/embedding.rst +0 -262
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/exceptions.rst +0 -396
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/functions.rst +0 -568
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/misc.rst +0 -337
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/index.rst +0 -13
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/numpy.rst +0 -463
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/object.rst +0 -286
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/utilities.rst +0 -155
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/smart_ptrs.rst +0 -174
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/basics.rst +0 -308
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/benchmark.py +0 -91
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/benchmark.rst +0 -95
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/changelog.rst +0 -2050
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/classes.rst +0 -542
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/cmake/index.rst +0 -8
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/compiling.rst +0 -648
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/conf.py +0 -381
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/faq.rst +0 -343
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/index.rst +0 -48
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/installing.rst +0 -105
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/limitations.rst +0 -72
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11-logo.png +0 -0
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python1.png +0 -0
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python1.svg +0 -427
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python2.png +0 -0
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python2.svg +0 -427
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/reference.rst +0 -130
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/release.rst +0 -96
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/requirements.txt +0 -8
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/upgrade.rst +0 -548
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/attr.h +0 -605
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/buffer_info.h +0 -144
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/cast.h +0 -1432
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/chrono.h +0 -213
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/common.h +0 -2
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/complex.h +0 -65
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/class.h +0 -709
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/common.h +0 -1021
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/descr.h +0 -104
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/init.h +0 -346
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/internals.h +0 -467
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/type_caster_base.h +0 -978
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/typeid.h +0 -55
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/eigen.h +0 -606
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/embed.h +0 -284
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/eval.h +0 -163
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/functional.h +0 -121
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/gil.h +0 -193
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/iostream.h +0 -275
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/numpy.h +0 -1741
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/operators.h +0 -163
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/options.h +0 -65
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/pybind11.h +0 -2497
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/pytypes.h +0 -1879
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl/filesystem.h +0 -103
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl.h +0 -375
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl_bind.h +0 -747
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/noxfile.py +0 -88
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/__init__.py +0 -11
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/__main__.py +0 -52
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/_version.py +0 -12
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/_version.pyi +0 -6
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/commands.py +0 -21
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/py.typed +0 -0
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/setup_helpers.py +0 -482
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/setup_helpers.pyi +0 -63
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pyproject.toml +0 -41
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/setup.cfg +0 -56
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/setup.py +0 -155
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/CMakeLists.txt +0 -503
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/conftest.py +0 -208
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/constructor_stats.h +0 -275
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/cross_module_gil_utils.cpp +0 -73
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/env.py +0 -33
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_python_package/pytest.ini +0 -0
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_python_package/test_files.py +0 -279
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_setuptools/pytest.ini +0 -0
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_setuptools/test_setuphelper.py +0 -143
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/local_bindings.h +0 -85
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/object.h +0 -179
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_cross_module_tests.cpp +0 -151
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_tests.cpp +0 -91
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_tests.h +0 -85
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pytest.ini +0 -19
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/requirements.txt +0 -12
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_async.cpp +0 -26
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_async.py +0 -25
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_buffers.cpp +0 -216
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_buffers.py +0 -163
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_builtin_casters.cpp +0 -286
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_builtin_casters.py +0 -536
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_call_policies.cpp +0 -107
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_call_policies.py +0 -248
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_callbacks.cpp +0 -227
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_callbacks.py +0 -202
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_chrono.cpp +0 -84
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_chrono.py +0 -210
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_class.cpp +0 -550
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_class.py +0 -473
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/CMakeLists.txt +0 -84
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/embed.cpp +0 -21
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_embed/CMakeLists.txt +0 -28
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_function/CMakeLists.txt +0 -39
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_target/CMakeLists.txt +0 -46
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/main.cpp +0 -6
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt +0 -41
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_function/CMakeLists.txt +0 -35
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt +0 -41
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/test.py +0 -10
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_constants_and_functions.cpp +0 -165
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_constants_and_functions.py +0 -53
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_copy_move.cpp +0 -238
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_copy_move.py +0 -126
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_casters.cpp +0 -141
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_casters.py +0 -117
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_setup.cpp +0 -41
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_setup.py +0 -50
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_docstring_options.cpp +0 -69
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_docstring_options.py +0 -42
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eigen.cpp +0 -348
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eigen.py +0 -771
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/CMakeLists.txt +0 -47
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/catch.cpp +0 -22
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/external_module.cpp +0 -23
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/test_interpreter.cpp +0 -326
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/test_interpreter.py +0 -15
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_enum.cpp +0 -148
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_enum.py +0 -272
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval.cpp +0 -119
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval.py +0 -51
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval_call.py +0 -5
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.cpp +0 -285
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.h +0 -12
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.py +0 -265
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_factory_constructors.cpp +0 -397
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_factory_constructors.py +0 -520
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_gil_scoped.cpp +0 -49
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_gil_scoped.py +0 -94
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_iostream.cpp +0 -125
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_iostream.py +0 -331
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_kwargs_and_defaults.cpp +0 -153
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_kwargs_and_defaults.py +0 -284
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_local_bindings.cpp +0 -107
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_local_bindings.py +0 -257
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_methods_and_attributes.cpp +0 -412
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_methods_and_attributes.py +0 -517
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_modules.cpp +0 -102
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_modules.py +0 -92
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_multiple_inheritance.cpp +0 -233
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_multiple_inheritance.py +0 -360
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_array.cpp +0 -472
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_array.py +0 -593
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_dtypes.cpp +0 -524
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_dtypes.py +0 -441
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_vectorize.cpp +0 -103
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_vectorize.py +0 -267
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_opaque_types.cpp +0 -73
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_opaque_types.py +0 -59
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_operator_overloading.cpp +0 -235
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_operator_overloading.py +0 -146
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pickling.cpp +0 -189
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pickling.py +0 -82
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pytypes.cpp +0 -560
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pytypes.py +0 -651
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_sequences_and_iterators.cpp +0 -500
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_sequences_and_iterators.py +0 -253
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_smart_ptr.cpp +0 -452
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_smart_ptr.py +0 -318
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl.cpp +0 -342
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl.py +0 -291
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl_binders.cpp +0 -131
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl_binders.py +0 -318
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_tagbased_polymorphic.cpp +0 -144
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_tagbased_polymorphic.py +0 -29
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_thread.cpp +0 -66
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_thread.py +0 -44
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_union.cpp +0 -22
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_union.py +0 -9
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_virtual_functions.cpp +0 -510
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_virtual_functions.py +0 -408
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/valgrind-numpy-scipy.supp +0 -140
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/valgrind-python.supp +0 -117
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindCatch.cmake +0 -70
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindEigen3.cmake +0 -86
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindPythonLibsNew.cmake +0 -257
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/check-style.sh +0 -44
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/cmake_uninstall.cmake.in +0 -23
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/libsize.py +0 -39
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/make_changelog.py +0 -64
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Common.cmake +0 -402
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Config.cmake.in +0 -233
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11NewTools.cmake +0 -276
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Tools.cmake +0 -214
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pyproject.toml +0 -3
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/setup_global.py.in +0 -65
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/setup_main.py.in +0 -41
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/pyproject.toml +0 -8
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/setup.py +0 -144
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSPyATInterface.cpp +0 -403
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSPyATInterface.hh +0 -100
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSXtrackInterface.cpp +0 -763
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSXtrackInterface.hh +0 -118
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/src/collimasim/__init__.py +0 -8
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/src/collimasim/bindings.cpp +0 -63
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/src/collimasim/pyCollimatorPass.py +0 -142
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/src/collimasim/xtrack_collimator.py +0 -556
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/PKG-INFO +0 -6
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/SOURCES.txt +0 -24
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/dependency_links.txt +0 -1
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/not-zip-safe +0 -1
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/top_level.txt +0 -1
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/README.md +0 -25
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_forions.dat +0 -25
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_new_example.dat +0 -18
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_old_example.dat +0 -68
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_testing.dat +0 -15
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_yaml_example.yaml +0 -110
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/resources/collgaps.dat +0 -7
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/resources/collgaps_pyat_test.dat +0 -3
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/resources/collonly_twiss_file_example.tfs +0 -54
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/resources/settings.gmad +0 -3
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/resources/settings_black_absorber.gmad +0 -3
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/resources/settings_ions.gmad +0 -5
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/resources/twiss_file_testing.tfs +0 -51
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/test_pyat.py +0 -65
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/test_pyat_passmethod.py +0 -59
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/test_pyat_tracking.py +0 -102
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack.py +0 -75
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_angle.py +0 -74
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_colldb_load.py +0 -84
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_interaction.py +0 -159
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_interaction_ion.py +0 -99
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_ions.py +0 -78
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_lost_energy.py +0 -88
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tilt.py +0 -80
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tracking.py +0 -97
- xcoll-0.5.12/xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tracking_ions.py +0 -96
- xcoll-0.5.12/xcoll/xaux.py +0 -117
- {xcoll-0.5.12 → xcoll-0.6.1}/LICENSE +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/NOTICE +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/README.md +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/beam_elements/elements_src/blowup.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/beam_elements/elements_src/emittance_monitor.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/headers/checks.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/interaction_record/__init__.py +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/interaction_record/interaction_record_src/interaction_record.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/everest/__init__.py +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/.git +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/.gitignore +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/CMakeLists.txt +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/ComponentMakefile +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/Makefile +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/README +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/doc/Doxyfile +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO.asciidoc +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO.epub +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO.html +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO.pdf +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__1.png +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__2.png +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__3.png +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__4.png +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__5.png +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__6.png +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__7.png +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/doc/Makefile +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/doc/docbook.xsl +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/include/Connection.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/include/FlukaIO.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/include/FlukaIOServer.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/include/FortranFlukaIO.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/include/Message.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/include/ParticleInfo.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/lib/libFlukaIO64.a +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/lib/libFlukaIO64.so +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/samples/ClientTest.c +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/samples/ServerTest.c +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/samples/fclient.f +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/samples/fserver.f +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/Connection.c +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/Connection.d +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/Connection.o +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIO.c +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIO.d +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIO.o +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIOHandshake.c +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIOHandshake.d +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIOHandshake.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIOHandshake.o +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIOServer.c +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIOServer.d +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIOServer.o +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIOServer_private.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIO_private.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/FortranFlukaIO.c +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/FortranFlukaIO.d +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/FortranFlukaIO.o +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/NetIO.c +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/NetIO.d +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/NetIO.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/NetIO.o +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/src/tags +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/tests/AllTests.cpp +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/tests/CommonTest.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/tests/ConnectionTest.cpp +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/tests/FlukaIOServerTest.cpp +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/tests/FlukaIOTest.cpp +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/tests/FortranFlukaIOTest.cpp +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeConnection.c +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeConnection.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFlukaIO.c +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFlukaIO.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFlukaIOHandshake.c +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFlukaIOHandshake.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFlukaIOServer.c +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFlukaIOServer.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFortranFlukaIO.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeNetIO.c +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeNetIO.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/geometry/__init__.py +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/geometry/collimator_geometry.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/geometry/crystal_geometry.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/geometry/geometry.py +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/geometry/get_s.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/geometry/methods.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/geometry/objects.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/geometry/rotation.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/geometry/segments.h +0 -0
- {xcoll-0.5.12 → xcoll-0.6.1}/xcoll/scattering_routines/geometry/sort.h +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: xcoll
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.1
|
|
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.6)
|
|
25
25
|
Project-URL: Repository, https://github.com/xsuite/xcoll
|
|
26
26
|
Description-Content-Type: text/markdown
|
|
27
27
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "xcoll"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.6.1"
|
|
4
4
|
description = "Xsuite collimation package"
|
|
5
5
|
homepage = "https://github.com/xsuite/xcoll"
|
|
6
6
|
repository = "https://github.com/xsuite/xcoll"
|
|
@@ -25,14 +25,14 @@ python = ">=3.8"
|
|
|
25
25
|
ruamel-yaml = { version = "^0.17.31", optional = true }
|
|
26
26
|
numpy = ">=1.0"
|
|
27
27
|
pandas = ">=1.4"
|
|
28
|
-
xobjects = ">=0.
|
|
29
|
-
xdeps = ">=0.
|
|
30
|
-
xpart = ">=0.
|
|
31
|
-
xtrack = ">=0.
|
|
28
|
+
xobjects = ">=0.5.0"
|
|
29
|
+
xdeps = ">=0.10.5"
|
|
30
|
+
xpart = ">=0.23.0"
|
|
31
|
+
xtrack = ">=0.84.6"
|
|
32
32
|
|
|
33
|
-
[
|
|
33
|
+
[poetry.group.dev.dependencies]
|
|
34
34
|
pytest = ">=7.3"
|
|
35
|
-
xaux = ">=0.
|
|
35
|
+
xaux = ">=0.3.5"
|
|
36
36
|
|
|
37
37
|
[tool.poetry.extras]
|
|
38
38
|
tests = ["pytest", "ruamel-yaml", "pytest-html", "pytest-xdist"]
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# copyright ############################### #
|
|
2
|
+
# This file is part of the Xcoll package. #
|
|
3
|
+
# Copyright (c) CERN, 2025. #
|
|
4
|
+
# ######################################### #
|
|
5
|
+
|
|
6
|
+
from .general import _pkg_root, __version__, citation
|
|
7
|
+
|
|
8
|
+
from .beam_elements import BlackAbsorber, BlackCrystal, TransparentCollimator, TransparentCrystal, \
|
|
9
|
+
EverestBlock, EverestCollimator, EverestCrystal, BlowUp, EmittanceMonitor, \
|
|
10
|
+
collimator_classes, crystal_classes, element_classes
|
|
11
|
+
from .scattering_routines.everest import materials, Material, CrystalMaterial
|
|
12
|
+
from .colldb import CollimatorDatabase
|
|
13
|
+
from .interaction_record import InteractionRecord
|
|
14
|
+
from .rf_sweep import RFSweep
|
|
15
|
+
from .lossmap import LossMap, MultiLossMap
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# print("If you use Xcoll in your simulations, please cite us :-)")
|
|
19
|
+
# print(citation)
|
|
20
|
+
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# copyright ############################### #
|
|
2
|
+
# This file is part of the Xcoll package. #
|
|
3
|
+
# Copyright (c) CERN, 2025. #
|
|
4
|
+
# ######################################### #
|
|
5
|
+
|
|
6
|
+
from .general import _pkg_root, __version__, citation
|
|
7
|
+
|
|
8
|
+
<<<<<<< HEAD
|
|
9
|
+
from .beam_elements import BlackAbsorber, BlackCrystal, EverestBlock, EverestCollimator, EverestCrystal, \
|
|
10
|
+
Geant4Collimator, BlowUp, EmittanceMonitor, collimator_classes, crystal_classes, element_classes
|
|
11
|
+
=======
|
|
12
|
+
from .beam_elements import BlackAbsorber, BlackCrystal, TransparentCollimator, TransparentCrystal, \
|
|
13
|
+
EverestBlock, EverestCollimator, EverestCrystal, BlowUp, EmittanceMonitor, \
|
|
14
|
+
collimator_classes, crystal_classes, element_classes
|
|
15
|
+
>>>>>>> main
|
|
16
|
+
from .scattering_routines.everest import materials, Material, CrystalMaterial
|
|
17
|
+
from .scattering_routines.geant4 import Geant4Engine
|
|
18
|
+
from .colldb import CollimatorDatabase
|
|
19
|
+
from .interaction_record import InteractionRecord
|
|
20
|
+
from .rf_sweep import RFSweep
|
|
21
|
+
from .lossmap import LossMap, MultiLossMap
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# print("If you use Xcoll in your simulations, please cite us :-)")
|
|
25
|
+
# print(citation)
|
|
26
|
+
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
from .base import BaseBlock, BaseCollimator, BaseCrystal
|
|
7
7
|
from .absorber import BlackAbsorber, BlackCrystal
|
|
8
|
+
from .transparent import TransparentCollimator, TransparentCrystal
|
|
8
9
|
from .everest import EverestBlock, EverestCollimator, EverestCrystal
|
|
9
10
|
from .blowup import BlowUp
|
|
10
11
|
from .monitor import EmittanceMonitor
|
|
@@ -16,11 +16,16 @@ class BlackAbsorber(BaseCollimator):
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
isthick = True
|
|
19
|
+
needs_rng = False
|
|
19
20
|
allow_track = True
|
|
21
|
+
allow_double_sided = True
|
|
20
22
|
behaves_like_drift = True
|
|
23
|
+
allow_rot_and_shift = False
|
|
24
|
+
allow_loss_refinement = True
|
|
21
25
|
skip_in_loss_location_refinement = True
|
|
22
26
|
|
|
23
|
-
|
|
27
|
+
_noexpr_fields = BaseCollimator._noexpr_fields
|
|
28
|
+
_depends_on = [BaseCollimator, XcollGeometry]
|
|
24
29
|
|
|
25
30
|
_extra_c_sources = [
|
|
26
31
|
_pkg_root.joinpath('beam_elements','elements_src','black_absorber.h')
|
|
@@ -47,11 +52,16 @@ class BlackCrystal(BaseCrystal):
|
|
|
47
52
|
}
|
|
48
53
|
|
|
49
54
|
isthick = True
|
|
55
|
+
needs_rng = False
|
|
50
56
|
allow_track = True
|
|
57
|
+
allow_double_sided = False
|
|
51
58
|
behaves_like_drift = True
|
|
59
|
+
allow_rot_and_shift = False
|
|
60
|
+
allow_loss_refinement = True
|
|
52
61
|
skip_in_loss_location_refinement = True
|
|
53
62
|
|
|
54
|
-
|
|
63
|
+
_noexpr_fields = BaseCrystal._noexpr_fields
|
|
64
|
+
_depends_on = [BaseCrystal, XcollGeometry]
|
|
55
65
|
|
|
56
66
|
_extra_c_sources = [
|
|
57
67
|
_pkg_root.joinpath('beam_elements','elements_src','black_crystal.h')
|
|
@@ -10,6 +10,7 @@ import xtrack as xt
|
|
|
10
10
|
|
|
11
11
|
from ..interaction_record import InteractionRecord
|
|
12
12
|
from ..general import _pkg_root
|
|
13
|
+
from ..headers.particle_states import particle_states_src
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
OPEN_JAW = 3
|
|
@@ -22,14 +23,16 @@ class InvalidXcoll(xt.BeamElement):
|
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
isthick = True
|
|
25
|
-
|
|
26
|
+
needs_rng = False
|
|
26
27
|
allow_track = False
|
|
27
|
-
|
|
28
|
+
behaves_like_drift = True
|
|
29
|
+
allow_rot_and_shift = False
|
|
28
30
|
allow_loss_refinement = True
|
|
31
|
+
skip_in_loss_location_refinement = True
|
|
29
32
|
|
|
30
33
|
# InvalidXcoll catches unallowed cases, like backtracking through a collimator
|
|
31
34
|
_extra_c_sources = [
|
|
32
|
-
|
|
35
|
+
particle_states_src,
|
|
33
36
|
_pkg_root.joinpath('headers','checks.h')
|
|
34
37
|
]
|
|
35
38
|
|
|
@@ -51,12 +54,16 @@ class BaseBlock(xt.BeamElement):
|
|
|
51
54
|
}
|
|
52
55
|
|
|
53
56
|
isthick = True
|
|
57
|
+
needs_rng = False
|
|
54
58
|
allow_track = False
|
|
59
|
+
allow_double_sided = True
|
|
55
60
|
behaves_like_drift = True
|
|
61
|
+
allow_rot_and_shift = False
|
|
62
|
+
allow_loss_refinement = True
|
|
56
63
|
skip_in_loss_location_refinement = True
|
|
57
64
|
|
|
58
65
|
_skip_in_to_dict = ['_record_interactions']
|
|
59
|
-
_store_in_to_dict = ['record_impacts', 'record_exits', 'record_scatterings']
|
|
66
|
+
_store_in_to_dict = ['name', 'record_impacts', 'record_exits', 'record_scatterings']
|
|
60
67
|
|
|
61
68
|
_depends_on = [InvalidXcoll]
|
|
62
69
|
|
|
@@ -64,15 +71,42 @@ class BaseBlock(xt.BeamElement):
|
|
|
64
71
|
|
|
65
72
|
# This is an abstract class and cannot be instantiated
|
|
66
73
|
def __new__(cls, *args, **kwargs):
|
|
67
|
-
if cls
|
|
74
|
+
if cls is BaseBlock:
|
|
68
75
|
raise Exception("Abstract class `BaseBlock` cannot be instantiated!")
|
|
69
76
|
instance = super().__new__(cls)
|
|
70
77
|
return instance
|
|
71
78
|
|
|
72
79
|
def __init__(self, **kwargs):
|
|
80
|
+
to_assign = {}
|
|
73
81
|
if '_xobject' not in kwargs:
|
|
82
|
+
# Set name (useful for bookkeeping like in FLUKA)
|
|
83
|
+
to_assign['name'] = kwargs.pop('name', None)
|
|
84
|
+
# Set active
|
|
74
85
|
kwargs.setdefault('active', True)
|
|
86
|
+
to_assign['record_impacts'] = kwargs.pop('record_impacts', False)
|
|
87
|
+
to_assign['record_exits'] = kwargs.pop('record_exits', False)
|
|
88
|
+
to_assign['record_scatterings'] = kwargs.pop('record_scatterings', False)
|
|
75
89
|
super().__init__(**kwargs)
|
|
90
|
+
# Careful: non-xofields are not passed correctly between copy's / to_dict. This messes with flags etc..
|
|
91
|
+
# We also have to manually initialise them for xobject generation
|
|
92
|
+
for key, val in to_assign.items():
|
|
93
|
+
setattr(self, key, val)
|
|
94
|
+
BaseBlock._verify_consistency(self)
|
|
95
|
+
|
|
96
|
+
def copy(self, **kwargs):
|
|
97
|
+
obj = super().copy(**kwargs)
|
|
98
|
+
obj.name = self.name
|
|
99
|
+
return obj
|
|
100
|
+
|
|
101
|
+
@property
|
|
102
|
+
def name(self):
|
|
103
|
+
if not hasattr(self, '_name'):
|
|
104
|
+
self._name = None
|
|
105
|
+
return self._name
|
|
106
|
+
|
|
107
|
+
@name.setter
|
|
108
|
+
def name(self, val):
|
|
109
|
+
self._name = val
|
|
76
110
|
|
|
77
111
|
def enable_scattering(self):
|
|
78
112
|
if hasattr(self, '_tracking'):
|
|
@@ -93,6 +127,8 @@ class BaseBlock(xt.BeamElement):
|
|
|
93
127
|
|
|
94
128
|
@record_impacts.setter
|
|
95
129
|
def record_impacts(self, val):
|
|
130
|
+
if not isinstance(val, bool):
|
|
131
|
+
raise ValueError("`record_impacts` must be a boolean value.")
|
|
96
132
|
if val and not self.record_impacts:
|
|
97
133
|
self._record_interactions += 1
|
|
98
134
|
elif not val and self.record_impacts:
|
|
@@ -104,6 +140,8 @@ class BaseBlock(xt.BeamElement):
|
|
|
104
140
|
|
|
105
141
|
@record_exits.setter
|
|
106
142
|
def record_exits(self, val):
|
|
143
|
+
if not isinstance(val, bool):
|
|
144
|
+
raise ValueError("`record_exits` must be a boolean value.")
|
|
107
145
|
if val and not self.record_exits:
|
|
108
146
|
self._record_interactions += 2
|
|
109
147
|
elif not val and self.record_exits:
|
|
@@ -115,6 +153,8 @@ class BaseBlock(xt.BeamElement):
|
|
|
115
153
|
|
|
116
154
|
@record_scatterings.setter
|
|
117
155
|
def record_scatterings(self, val):
|
|
156
|
+
if not isinstance(val, bool):
|
|
157
|
+
raise ValueError("`record_scatterings` must be a boolean value.")
|
|
118
158
|
if val and not self.record_scatterings:
|
|
119
159
|
self._record_interactions += 4
|
|
120
160
|
elif not val and self.record_scatterings:
|
|
@@ -161,14 +201,20 @@ class BaseCollimator(BaseBlock):
|
|
|
161
201
|
'_nemitt_y': xo.Float64
|
|
162
202
|
}
|
|
163
203
|
|
|
164
|
-
isthick =
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
skip_in_loss_location_refinement = BaseBlock.skip_in_loss_location_refinement
|
|
204
|
+
isthick = True
|
|
205
|
+
needs_rng = False
|
|
206
|
+
allow_track = False
|
|
168
207
|
allow_double_sided = True
|
|
208
|
+
behaves_like_drift = True
|
|
209
|
+
allow_rot_and_shift = False
|
|
210
|
+
allow_loss_refinement = True
|
|
211
|
+
skip_in_loss_location_refinement = True
|
|
169
212
|
|
|
170
|
-
|
|
171
|
-
|
|
213
|
+
_noexpr_fields = {'align', 'side', 'name'}
|
|
214
|
+
_skip_in_to_dict = [*BaseBlock._skip_in_to_dict,
|
|
215
|
+
*[f for f in _xofields if f.startswith('_')]]
|
|
216
|
+
_store_in_to_dict = [*BaseBlock._store_in_to_dict, 'angle', 'jaw', 'tilt', 'gap',
|
|
217
|
+
'side', 'align', 'emittance']
|
|
172
218
|
|
|
173
219
|
_depends_on = [BaseBlock]
|
|
174
220
|
|
|
@@ -177,7 +223,7 @@ class BaseCollimator(BaseBlock):
|
|
|
177
223
|
|
|
178
224
|
# This is an abstract class and cannot be instantiated
|
|
179
225
|
def __new__(cls, *args, **kwargs):
|
|
180
|
-
if cls
|
|
226
|
+
if cls is BaseCollimator:
|
|
181
227
|
raise Exception("Abstract class `BaseCollimator` cannot be instantiated!")
|
|
182
228
|
instance = super().__new__(cls)
|
|
183
229
|
return instance
|
|
@@ -207,6 +253,10 @@ class BaseCollimator(BaseBlock):
|
|
|
207
253
|
for key in ['jaw_L', 'jaw_R', 'jaw_LU', 'jaw_LD', 'jaw_RU', 'jaw_RD', 'gap', 'gap_L', 'gap_R']:
|
|
208
254
|
if key in kwargs:
|
|
209
255
|
raise ValueError(f"Cannot use both `jaw` and `{key}`!")
|
|
256
|
+
if hasattr(kwargs['jaw'], '__iter__') and hasattr(kwargs['jaw'][0], '__iter__'):
|
|
257
|
+
for key in ['tilt', 'tilt_L', 'tilt_R']:
|
|
258
|
+
if key in kwargs:
|
|
259
|
+
raise ValueError(f"Cannot specify jaw corners and `{key}`!")
|
|
210
260
|
to_assign['jaw'] = kwargs.pop('jaw')
|
|
211
261
|
elif 'jaw_L' in kwargs or 'jaw_R' in kwargs:
|
|
212
262
|
for key in ['jaw_LU', 'jaw_LD', 'jaw_RU', 'jaw_RD', 'gap', 'gap_L', 'gap_R']:
|
|
@@ -233,20 +283,21 @@ class BaseCollimator(BaseBlock):
|
|
|
233
283
|
if key in kwargs:
|
|
234
284
|
raise ValueError(f"Cannot use both `tilt` and `{key}`!")
|
|
235
285
|
to_assign['tilt'] = kwargs.pop('tilt')
|
|
236
|
-
|
|
237
|
-
to_assign['tilt_L'] = kwargs.pop('tilt_L',
|
|
238
|
-
to_assign['tilt_R'] = kwargs.pop('tilt_R',
|
|
286
|
+
elif 'tilt_L' in kwargs or 'tilt_R' in kwargs:
|
|
287
|
+
to_assign['tilt_L'] = kwargs.pop('tilt_L', None)
|
|
288
|
+
to_assign['tilt_R'] = kwargs.pop('tilt_R', None)
|
|
289
|
+
kwargs.setdefault('_sin_yL', 0)
|
|
290
|
+
kwargs.setdefault('_cos_yL', 1)
|
|
291
|
+
kwargs.setdefault('_sin_yR', 0)
|
|
292
|
+
kwargs.setdefault('_cos_yR', 1)
|
|
239
293
|
|
|
240
294
|
# Set gap
|
|
241
295
|
if 'gap' in kwargs:
|
|
242
|
-
for key in ['
|
|
296
|
+
for key in ['gap_L', 'gap_R']:
|
|
243
297
|
if key in kwargs:
|
|
244
298
|
raise ValueError(f"Cannot use both `gap` and `{key}`!")
|
|
245
299
|
to_assign['gap'] = kwargs.pop('gap')
|
|
246
300
|
elif 'gap_L' in kwargs or 'gap_R' in kwargs:
|
|
247
|
-
for key in ['jaw', 'jaw_L', 'jaw_R', 'jaw_LU', 'jaw_LD', 'jaw_RU', 'jaw_RD', 'gap']:
|
|
248
|
-
if key in kwargs:
|
|
249
|
-
raise ValueError(f"Cannot use both `gap` and `{key}`!")
|
|
250
301
|
to_assign['gap_L'] = kwargs.pop('gap_L', None)
|
|
251
302
|
to_assign['gap_R'] = kwargs.pop('gap_R', None)
|
|
252
303
|
kwargs.setdefault('_gap_L', OPEN_GAP)
|
|
@@ -263,7 +314,8 @@ class BaseCollimator(BaseBlock):
|
|
|
263
314
|
self._optics = None
|
|
264
315
|
for key, val in to_assign.items():
|
|
265
316
|
setattr(self, key, val)
|
|
266
|
-
self.
|
|
317
|
+
self._update_tilts()
|
|
318
|
+
BaseCollimator._verify_consistency(self)
|
|
267
319
|
|
|
268
320
|
|
|
269
321
|
# Main collimator angle
|
|
@@ -366,7 +418,7 @@ class BaseCollimator(BaseBlock):
|
|
|
366
418
|
return
|
|
367
419
|
# If we got here, val is incompatible
|
|
368
420
|
raise ValueError(f"The attribute `jaw` should be of the form [L, R] or "
|
|
369
|
-
+ f"[[LU,
|
|
421
|
+
+ f"[[LU, LD], [RU, RD], but got {val}.")
|
|
370
422
|
|
|
371
423
|
@property
|
|
372
424
|
def jaw_L(self):
|
|
@@ -408,7 +460,8 @@ class BaseCollimator(BaseBlock):
|
|
|
408
460
|
|
|
409
461
|
@property
|
|
410
462
|
def jaw_LU(self):
|
|
411
|
-
if not self.
|
|
463
|
+
if not np.isclose((self._jaw_LU + self._jaw_LD) / 2,
|
|
464
|
+
OPEN_JAW, atol=1.e-10): # open position
|
|
412
465
|
return self._jaw_LU
|
|
413
466
|
|
|
414
467
|
@jaw_LU.setter # This assumes jaw_LD remains fixed, hence both jaw_L and the tilt change
|
|
@@ -425,7 +478,8 @@ class BaseCollimator(BaseBlock):
|
|
|
425
478
|
|
|
426
479
|
@property
|
|
427
480
|
def jaw_LD(self):
|
|
428
|
-
if not self.
|
|
481
|
+
if not np.isclose((self._jaw_LU + self._jaw_LD) / 2,
|
|
482
|
+
OPEN_JAW, atol=1.e-10): # open position
|
|
429
483
|
return self._jaw_LD
|
|
430
484
|
|
|
431
485
|
@jaw_LD.setter # This assumes jaw_LU remains fixed, hence both jaw_L and the tilt change
|
|
@@ -442,7 +496,8 @@ class BaseCollimator(BaseBlock):
|
|
|
442
496
|
|
|
443
497
|
@property
|
|
444
498
|
def jaw_RU(self):
|
|
445
|
-
if not self.
|
|
499
|
+
if not np.isclose((self._jaw_RU + self._jaw_RD) / 2,
|
|
500
|
+
-OPEN_JAW, atol=1.e-10): # open position
|
|
446
501
|
return self._jaw_RU
|
|
447
502
|
|
|
448
503
|
@jaw_RU.setter # This assumes jaw_RD remains fixed, hence both jaw_R and the tilt change
|
|
@@ -459,7 +514,8 @@ class BaseCollimator(BaseBlock):
|
|
|
459
514
|
|
|
460
515
|
@property
|
|
461
516
|
def jaw_RD(self):
|
|
462
|
-
if not self.
|
|
517
|
+
if not np.isclose((self._jaw_RU + self._jaw_RD) / 2,
|
|
518
|
+
-OPEN_JAW, atol=1.e-10): # open position
|
|
463
519
|
return self._jaw_RD
|
|
464
520
|
|
|
465
521
|
@jaw_RD.setter # This assumes jaw_RU remains fixed, hence both jaw_R and the tilt change
|
|
@@ -498,13 +554,23 @@ class BaseCollimator(BaseBlock):
|
|
|
498
554
|
|
|
499
555
|
def _update_tilts(self):
|
|
500
556
|
if self.side != 'right':
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
557
|
+
if self.length > 0:
|
|
558
|
+
self._sin_yL = (self._jaw_LD - self._jaw_LU) / self.length
|
|
559
|
+
self._cos_yL = np.sqrt(1 - self._sin_yL**2)
|
|
560
|
+
self._tan_yL = self._sin_yL / self._cos_yL
|
|
561
|
+
else:
|
|
562
|
+
self._sin_yL = 0.
|
|
563
|
+
self._cos_yL = 1.
|
|
564
|
+
self._tan_yL = 0.
|
|
504
565
|
if self.side != 'left':
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
566
|
+
if self.length > 0:
|
|
567
|
+
self._sin_yR = (self._jaw_RD - self._jaw_RU) / self.length
|
|
568
|
+
self._cos_yR = np.sqrt(1 - self._sin_yR**2)
|
|
569
|
+
self._tan_yR = self._sin_yR / self._cos_yR
|
|
570
|
+
else:
|
|
571
|
+
self._sin_yR = 0.
|
|
572
|
+
self._cos_yR = 1.
|
|
573
|
+
self._tan_yR = 0.
|
|
508
574
|
|
|
509
575
|
def _update_gaps(self, only_L=False, only_R=False):
|
|
510
576
|
# If we had set a value for the gap manually, this needs to be updated
|
|
@@ -544,7 +610,7 @@ class BaseCollimator(BaseBlock):
|
|
|
544
610
|
self.tilt_L = val[0]
|
|
545
611
|
self.tilt_R = val[1]
|
|
546
612
|
else:
|
|
547
|
-
raise ValueError
|
|
613
|
+
raise ValueError(f"The attribute `tilt` should be of the form LR or [L, R] ")
|
|
548
614
|
|
|
549
615
|
@property
|
|
550
616
|
def tilt_L(self):
|
|
@@ -820,9 +886,7 @@ class BaseCollimator(BaseBlock):
|
|
|
820
886
|
if self.side != 'right':
|
|
821
887
|
if self.optics_ready() and self.jaw_L is not None:
|
|
822
888
|
return round((self.jaw_L - self.co[0][0])/self.sigma[0][0], 6)
|
|
823
|
-
elif
|
|
824
|
-
return None
|
|
825
|
-
else:
|
|
889
|
+
elif self._gap_L_set_manually():
|
|
826
890
|
return self._gap_L
|
|
827
891
|
|
|
828
892
|
@gap_L.setter
|
|
@@ -840,9 +904,7 @@ class BaseCollimator(BaseBlock):
|
|
|
840
904
|
if self.side != 'left':
|
|
841
905
|
if self.optics_ready() and self.jaw_R is not None:
|
|
842
906
|
return round((self.jaw_R - self.co[0][1])/self.sigma[0][1], 6)
|
|
843
|
-
elif
|
|
844
|
-
return None
|
|
845
|
-
else:
|
|
907
|
+
elif self._gap_R_set_manually():
|
|
846
908
|
return self._gap_R
|
|
847
909
|
|
|
848
910
|
@gap_R.setter
|
|
@@ -995,7 +1057,8 @@ class BaseCollimator(BaseBlock):
|
|
|
995
1057
|
assert np.isclose(self._sin_yR/self._cos_yR, self._tan_yR)
|
|
996
1058
|
|
|
997
1059
|
# Verify bools
|
|
998
|
-
|
|
1060
|
+
if '_side' in self._xofields: # Not the case e.g. for FlukaCollimator
|
|
1061
|
+
assert self._side in [-1, 1, 0]
|
|
999
1062
|
assert isinstance(self._jaws_parallel, bool) or self._jaws_parallel in [0, 1]
|
|
1000
1063
|
|
|
1001
1064
|
def jaw_func(self, pos):
|
|
@@ -1039,20 +1102,25 @@ class BaseCrystal(BaseBlock):
|
|
|
1039
1102
|
# Crystal specific
|
|
1040
1103
|
'_bending_radius': xo.Float64,
|
|
1041
1104
|
'_bending_angle': xo.Float64,
|
|
1042
|
-
'
|
|
1043
|
-
'
|
|
1105
|
+
'_width': xo.Float64,
|
|
1106
|
+
'_height': xo.Float64
|
|
1044
1107
|
# 'thick': xo.Float64
|
|
1045
1108
|
}
|
|
1046
1109
|
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1110
|
+
|
|
1111
|
+
isthick = True
|
|
1112
|
+
needs_rng = False
|
|
1113
|
+
allow_track = False
|
|
1051
1114
|
allow_double_sided = False
|
|
1115
|
+
behaves_like_drift = True
|
|
1116
|
+
allow_rot_and_shift = False
|
|
1117
|
+
allow_loss_refinement = True
|
|
1118
|
+
skip_in_loss_location_refinement = True
|
|
1052
1119
|
|
|
1120
|
+
_noexpr_fields = {'align', 'side', 'name'}
|
|
1053
1121
|
_skip_in_to_dict = [*BaseBlock._skip_in_to_dict, *[f for f in _xofields if f.startswith('_')]]
|
|
1054
|
-
_store_in_to_dict = [*BaseBlock._store_in_to_dict, 'angle', 'jaw', 'tilt', 'gap', 'side', 'align',
|
|
1055
|
-
'bending_radius', 'bending_angle']
|
|
1122
|
+
_store_in_to_dict = [*BaseBlock._store_in_to_dict, 'angle', 'jaw', 'tilt', 'gap', 'side', 'align',
|
|
1123
|
+
'emittance', 'width', 'height', 'bending_radius', 'bending_angle']
|
|
1056
1124
|
|
|
1057
1125
|
_depends_on = [BaseCollimator]
|
|
1058
1126
|
|
|
@@ -1060,7 +1128,7 @@ class BaseCrystal(BaseBlock):
|
|
|
1060
1128
|
|
|
1061
1129
|
# This is an abstract class and cannot be instantiated
|
|
1062
1130
|
def __new__(cls, *args, **kwargs):
|
|
1063
|
-
if cls
|
|
1131
|
+
if cls is BaseCrystal:
|
|
1064
1132
|
raise Exception("Abstract class `BaseCrystal` cannot be instantiated!")
|
|
1065
1133
|
instance = super().__new__(cls)
|
|
1066
1134
|
return instance
|
|
@@ -1110,13 +1178,15 @@ class BaseCrystal(BaseBlock):
|
|
|
1110
1178
|
kwargs.setdefault('_gap', OPEN_GAP)
|
|
1111
1179
|
|
|
1112
1180
|
# Set tilt
|
|
1113
|
-
if '
|
|
1114
|
-
to_assign['tilt'] = kwargs.pop('tilt'
|
|
1181
|
+
if 'tilt' in kwargs:
|
|
1182
|
+
to_assign['tilt'] = kwargs.pop('tilt')
|
|
1115
1183
|
|
|
1116
1184
|
# Set others
|
|
1117
1185
|
to_assign['align'] = kwargs.pop('align', 'upstream')
|
|
1118
1186
|
to_assign['emittance'] = kwargs.pop('emittance', None)
|
|
1119
1187
|
kwargs.setdefault('active', True)
|
|
1188
|
+
kwargs.setdefault('_sin_y', 0)
|
|
1189
|
+
kwargs.setdefault('_cos_y', 1)
|
|
1120
1190
|
|
|
1121
1191
|
# Set crystal specific
|
|
1122
1192
|
if 'bending_angle' in kwargs:
|
|
@@ -1125,10 +1195,10 @@ class BaseCrystal(BaseBlock):
|
|
|
1125
1195
|
to_assign['bending_angle'] = kwargs.pop('bending_angle')
|
|
1126
1196
|
else:
|
|
1127
1197
|
to_assign['bending_radius'] = kwargs.pop('bending_radius', 1)
|
|
1128
|
-
kwargs.
|
|
1129
|
-
kwargs.
|
|
1198
|
+
to_assign['width'] = kwargs.pop('width', 1)
|
|
1199
|
+
to_assign['height'] = kwargs.pop('height', 1)
|
|
1130
1200
|
|
|
1131
|
-
|
|
1201
|
+
super().__init__(**kwargs)
|
|
1132
1202
|
# Careful: non-xofields are not passed correctly between copy's / to_dict. This messes with flags etc..
|
|
1133
1203
|
# We also have to manually initialise them for xobject generation
|
|
1134
1204
|
if not hasattr(self, '_optics'):
|
|
@@ -1140,7 +1210,7 @@ class BaseCrystal(BaseBlock):
|
|
|
1140
1210
|
self._jaw_U *= -1
|
|
1141
1211
|
if np.isclose(self._gap, OPEN_GAP):
|
|
1142
1212
|
self._gap *= -1
|
|
1143
|
-
|
|
1213
|
+
BaseCrystal._verify_consistency(self)
|
|
1144
1214
|
|
|
1145
1215
|
|
|
1146
1216
|
# Main crystal angle
|
|
@@ -1167,15 +1237,20 @@ class BaseCrystal(BaseBlock):
|
|
|
1167
1237
|
@jaw.setter
|
|
1168
1238
|
def jaw(self, val):
|
|
1169
1239
|
if val is None:
|
|
1170
|
-
|
|
1240
|
+
if self.side == 'left':
|
|
1241
|
+
val = OPEN_JAW
|
|
1242
|
+
elif self.side == 'right':
|
|
1243
|
+
val = -OPEN_JAW
|
|
1244
|
+
else:
|
|
1245
|
+
raise ValueError("Cannot determine side. Something is wrong with the collimator!")
|
|
1171
1246
|
self.jaw_U = val
|
|
1172
1247
|
|
|
1173
1248
|
@property
|
|
1174
1249
|
def jaw_U(self):
|
|
1175
|
-
if not np.isclose(self._jaw_U,
|
|
1250
|
+
if not np.isclose(abs(self._jaw_U), OPEN_JAW, atol=1.e-10): # open position
|
|
1176
1251
|
return self._jaw_U
|
|
1177
1252
|
|
|
1178
|
-
@jaw_U.setter
|
|
1253
|
+
@jaw_U.setter
|
|
1179
1254
|
def jaw_U(self, val):
|
|
1180
1255
|
if val is None:
|
|
1181
1256
|
raise ValueError("Cannot set corner to None! Use open_jaws() or set jaw to None.")
|
|
@@ -1184,15 +1259,16 @@ class BaseCrystal(BaseBlock):
|
|
|
1184
1259
|
|
|
1185
1260
|
@property
|
|
1186
1261
|
def jaw_D(self):
|
|
1187
|
-
if not np.isclose(self._jaw_U,
|
|
1262
|
+
if not np.isclose(abs(self._jaw_U), OPEN_JAW, atol=1.e-10): # open position
|
|
1188
1263
|
length = self.length
|
|
1189
|
-
if self.
|
|
1264
|
+
if (self.side == 'left' and self.bending_radius < 0) \
|
|
1265
|
+
or (self.side == 'right' and self.bending_radius > 0):
|
|
1190
1266
|
# Correction for inner corner point
|
|
1191
1267
|
length -= self.width*np.sin(abs(self._bending_angle))
|
|
1192
1268
|
shift = np.tan(self._bending_angle/2)*self._cos_y + self._sin_y
|
|
1193
1269
|
return self._jaw_U + length*shift
|
|
1194
1270
|
|
|
1195
|
-
@jaw_D.setter
|
|
1271
|
+
@jaw_D.setter
|
|
1196
1272
|
def jaw_D(self, val):
|
|
1197
1273
|
if val is None:
|
|
1198
1274
|
self.tilt = 0
|
|
@@ -1381,6 +1457,26 @@ class BaseCrystal(BaseBlock):
|
|
|
1381
1457
|
self._bending_angle = bending_angle
|
|
1382
1458
|
self._bending_radius = self.length / np.sin(bending_angle)
|
|
1383
1459
|
|
|
1460
|
+
@property
|
|
1461
|
+
def width(self):
|
|
1462
|
+
return self._width
|
|
1463
|
+
|
|
1464
|
+
@width.setter
|
|
1465
|
+
def width(self, val):
|
|
1466
|
+
if val <= 0:
|
|
1467
|
+
raise ValueError(f"The field `width` should be positive, but got {val}.")
|
|
1468
|
+
self._width = val
|
|
1469
|
+
|
|
1470
|
+
@property
|
|
1471
|
+
def height(self):
|
|
1472
|
+
return self._height
|
|
1473
|
+
|
|
1474
|
+
@height.setter
|
|
1475
|
+
def height(self, val):
|
|
1476
|
+
if val <= 0:
|
|
1477
|
+
raise ValueError(f"The field `height` should be positive, but got {val}.")
|
|
1478
|
+
self._height = val
|
|
1479
|
+
|
|
1384
1480
|
@property
|
|
1385
1481
|
def side(self):
|
|
1386
1482
|
return BaseCollimator.side.fget(self)
|
|
@@ -1412,7 +1508,11 @@ class BaseCrystal(BaseBlock):
|
|
|
1412
1508
|
assert np.isclose(ang, abs(np.arcsin(self._sin_y)))
|
|
1413
1509
|
assert np.isclose(self._sin_y/self._cos_y, self._tan_y)
|
|
1414
1510
|
# Verify bools
|
|
1415
|
-
|
|
1511
|
+
if '_side' in self._xofields:
|
|
1512
|
+
assert self._side in [-1, 0, 1]
|
|
1416
1513
|
# Crystal specific
|
|
1417
|
-
|
|
1514
|
+
if '_bending_radius' in self._xofields and '_bending_angle' in self._xofields:
|
|
1515
|
+
assert isinstance(self._bending_radius, float) and not np.isclose(self._bending_radius, 0)
|
|
1516
|
+
assert isinstance(self._bending_angle, float) and abs(self._bending_angle) <= np.pi/2
|
|
1517
|
+
assert np.isclose(self._bending_angle, np.arcsin(self.length/self._bending_radius))
|
|
1418
1518
|
|
|
@@ -31,6 +31,7 @@ class BlowUp(InvalidXcoll):
|
|
|
31
31
|
skip_in_loss_location_refinement = True
|
|
32
32
|
allow_loss_refinement = False
|
|
33
33
|
|
|
34
|
+
_noexpr_fields = {'plane', 'name', 'line'}
|
|
34
35
|
_skip_in_to_dict = ['_max_kick', '_plane', '_calibration', '_active']
|
|
35
36
|
_store_in_to_dict = ['amplitude', 'plane', 'calibration']
|
|
36
37
|
|