xcoll 0.5.8__tar.gz → 0.5.10__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.

Files changed (411) hide show
  1. {xcoll-0.5.8 → xcoll-0.5.10}/PKG-INFO +5 -6
  2. {xcoll-0.5.8 → xcoll-0.5.10}/pyproject.toml +6 -6
  3. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/beam_elements/base.py +18 -5
  4. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/colldb.py +164 -176
  5. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/general.py +1 -1
  6. {xcoll-0.5.8 → xcoll-0.5.10}/LICENSE +0 -0
  7. {xcoll-0.5.8 → xcoll-0.5.10}/NOTICE +0 -0
  8. {xcoll-0.5.8 → xcoll-0.5.10}/README.md +0 -0
  9. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/__init__.py +0 -0
  10. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/_manager.py +0 -0
  11. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/beam_elements/__init__.py +0 -0
  12. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/beam_elements/absorber.py +0 -0
  13. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/beam_elements/blowup.py +0 -0
  14. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/beam_elements/elements_src/black_absorber.h +0 -0
  15. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/beam_elements/elements_src/black_crystal.h +0 -0
  16. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/beam_elements/elements_src/blowup.h +0 -0
  17. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/beam_elements/elements_src/emittance_monitor.h +0 -0
  18. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/beam_elements/elements_src/everest_block.h +0 -0
  19. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/beam_elements/elements_src/everest_collimator.h +0 -0
  20. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/beam_elements/elements_src/everest_crystal.h +0 -0
  21. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/beam_elements/everest.py +0 -0
  22. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/beam_elements/monitor.py +0 -0
  23. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/headers/checks.h +0 -0
  24. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/headers/particle_states.h +0 -0
  25. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/initial_distribution.py +0 -0
  26. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/install.py +0 -0
  27. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/interaction_record/__init__.py +0 -0
  28. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/interaction_record/interaction_record.py +0 -0
  29. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/interaction_record/interaction_record_src/interaction_record.h +0 -0
  30. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/interaction_record/interaction_types.py +0 -0
  31. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/line_tools.py +0 -0
  32. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/lossmap.py +0 -0
  33. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/rf_sweep.py +0 -0
  34. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/everest/__init__.py +0 -0
  35. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/everest/amorphous.h +0 -0
  36. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/everest/channeling.h +0 -0
  37. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/everest/constants.h +0 -0
  38. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/everest/crystal_parameters.h +0 -0
  39. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/everest/everest.h +0 -0
  40. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/everest/everest.py +0 -0
  41. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/everest/jaw.h +0 -0
  42. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/everest/materials.py +0 -0
  43. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/everest/multiple_coulomb_scattering.h +0 -0
  44. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/everest/nuclear_interaction.h +0 -0
  45. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/everest/properties.h +0 -0
  46. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/.git +0 -0
  47. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/.gitignore +0 -0
  48. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/CMakeLists.txt +0 -0
  49. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/ComponentMakefile +0 -0
  50. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/Makefile +0 -0
  51. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/README +0 -0
  52. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/doc/Doxyfile +0 -0
  53. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO.asciidoc +0 -0
  54. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO.epub +0 -0
  55. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO.html +0 -0
  56. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO.pdf +0 -0
  57. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__1.png +0 -0
  58. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__2.png +0 -0
  59. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__3.png +0 -0
  60. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__4.png +0 -0
  61. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__5.png +0 -0
  62. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__6.png +0 -0
  63. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/doc/FlukaIO__7.png +0 -0
  64. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/doc/Makefile +0 -0
  65. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/doc/docbook.xsl +0 -0
  66. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/include/Connection.h +0 -0
  67. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/include/FlukaIO.h +0 -0
  68. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/include/FlukaIOServer.h +0 -0
  69. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/include/FortranFlukaIO.h +0 -0
  70. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/include/Message.h +0 -0
  71. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/include/ParticleInfo.h +0 -0
  72. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/lib/libFlukaIO64.a +0 -0
  73. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/lib/libFlukaIO64.so +0 -0
  74. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/samples/ClientTest.c +0 -0
  75. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/samples/ServerTest.c +0 -0
  76. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/samples/fclient.f +0 -0
  77. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/samples/fserver.f +0 -0
  78. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/Connection.c +0 -0
  79. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/Connection.d +0 -0
  80. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/Connection.o +0 -0
  81. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIO.c +0 -0
  82. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIO.d +0 -0
  83. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIO.o +0 -0
  84. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIOHandshake.c +0 -0
  85. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIOHandshake.d +0 -0
  86. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIOHandshake.h +0 -0
  87. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIOHandshake.o +0 -0
  88. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIOServer.c +0 -0
  89. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIOServer.d +0 -0
  90. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIOServer.o +0 -0
  91. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIOServer_private.h +0 -0
  92. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/FlukaIO_private.h +0 -0
  93. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/FortranFlukaIO.c +0 -0
  94. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/FortranFlukaIO.d +0 -0
  95. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/FortranFlukaIO.o +0 -0
  96. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/NetIO.c +0 -0
  97. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/NetIO.d +0 -0
  98. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/NetIO.h +0 -0
  99. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/NetIO.o +0 -0
  100. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/src/tags +0 -0
  101. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/tests/AllTests.cpp +0 -0
  102. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/tests/CommonTest.h +0 -0
  103. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/tests/ConnectionTest.cpp +0 -0
  104. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/tests/FlukaIOServerTest.cpp +0 -0
  105. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/tests/FlukaIOTest.cpp +0 -0
  106. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/tests/FortranFlukaIOTest.cpp +0 -0
  107. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeConnection.c +0 -0
  108. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeConnection.h +0 -0
  109. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFlukaIO.c +0 -0
  110. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFlukaIO.h +0 -0
  111. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFlukaIOHandshake.c +0 -0
  112. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFlukaIOHandshake.h +0 -0
  113. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFlukaIOServer.c +0 -0
  114. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFlukaIOServer.h +0 -0
  115. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeFortranFlukaIO.h +0 -0
  116. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeNetIO.c +0 -0
  117. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/fluka/flukaio/tests/fakes/FakeNetIO.h +0 -0
  118. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/.git +0 -0
  119. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/.gitignore +0 -0
  120. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/.gitmodules +0 -0
  121. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/CMakeLists.txt +0 -0
  122. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/README.md +0 -0
  123. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/docs/Makefile +0 -0
  124. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/docs/make.bat +0 -0
  125. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/docs/source/collimasim.rst +0 -0
  126. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/docs/source/conf.py +0 -0
  127. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/docs/source/index.rst +0 -0
  128. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.appveyor.yml +0 -0
  129. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.clang-format +0 -0
  130. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.clang-tidy +0 -0
  131. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.cmake-format.yaml +0 -0
  132. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.git +0 -0
  133. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/CODEOWNERS +0 -0
  134. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/CONTRIBUTING.md +0 -0
  135. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  136. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/ISSUE_TEMPLATE/config.yml +0 -0
  137. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/dependabot.yml +0 -0
  138. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/labeler.yml +0 -0
  139. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/labeler_merged.yml +0 -0
  140. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/pull_request_template.md +0 -0
  141. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/ci.yml +0 -0
  142. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/configure.yml +0 -0
  143. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/format.yml +0 -0
  144. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/labeler.yml +0 -0
  145. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/pip.yml +0 -0
  146. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.gitignore +0 -0
  147. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.pre-commit-config.yaml +0 -0
  148. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.readthedocs.yml +0 -0
  149. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/CMakeLists.txt +0 -0
  150. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/LICENSE +0 -0
  151. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/MANIFEST.in +0 -0
  152. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/README.rst +0 -0
  153. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/Doxyfile +0 -0
  154. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/Makefile +0 -0
  155. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/_static/theme_overrides.css +0 -0
  156. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/chrono.rst +0 -0
  157. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/custom.rst +0 -0
  158. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/eigen.rst +0 -0
  159. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/functional.rst +0 -0
  160. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/index.rst +0 -0
  161. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/overview.rst +0 -0
  162. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/stl.rst +0 -0
  163. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/strings.rst +0 -0
  164. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/classes.rst +0 -0
  165. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/embedding.rst +0 -0
  166. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/exceptions.rst +0 -0
  167. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/functions.rst +0 -0
  168. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/misc.rst +0 -0
  169. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/index.rst +0 -0
  170. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/numpy.rst +0 -0
  171. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/object.rst +0 -0
  172. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/utilities.rst +0 -0
  173. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/smart_ptrs.rst +0 -0
  174. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/basics.rst +0 -0
  175. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/benchmark.py +0 -0
  176. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/benchmark.rst +0 -0
  177. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/changelog.rst +0 -0
  178. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/classes.rst +0 -0
  179. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/cmake/index.rst +0 -0
  180. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/compiling.rst +0 -0
  181. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/conf.py +0 -0
  182. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/faq.rst +0 -0
  183. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/index.rst +0 -0
  184. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/installing.rst +0 -0
  185. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/limitations.rst +0 -0
  186. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11-logo.png +0 -0
  187. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python1.png +0 -0
  188. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python1.svg +0 -0
  189. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python2.png +0 -0
  190. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python2.svg +0 -0
  191. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/reference.rst +0 -0
  192. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/release.rst +0 -0
  193. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/requirements.txt +0 -0
  194. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/upgrade.rst +0 -0
  195. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/attr.h +0 -0
  196. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/buffer_info.h +0 -0
  197. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/cast.h +0 -0
  198. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/chrono.h +0 -0
  199. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/common.h +0 -0
  200. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/complex.h +0 -0
  201. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/class.h +0 -0
  202. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/common.h +0 -0
  203. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/descr.h +0 -0
  204. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/init.h +0 -0
  205. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/internals.h +0 -0
  206. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/type_caster_base.h +0 -0
  207. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/typeid.h +0 -0
  208. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/eigen.h +0 -0
  209. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/embed.h +0 -0
  210. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/eval.h +0 -0
  211. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/functional.h +0 -0
  212. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/gil.h +0 -0
  213. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/iostream.h +0 -0
  214. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/numpy.h +0 -0
  215. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/operators.h +0 -0
  216. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/options.h +0 -0
  217. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/pybind11.h +0 -0
  218. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/pytypes.h +0 -0
  219. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl/filesystem.h +0 -0
  220. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl.h +0 -0
  221. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl_bind.h +0 -0
  222. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/noxfile.py +0 -0
  223. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/__init__.py +0 -0
  224. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/__main__.py +0 -0
  225. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/_version.py +0 -0
  226. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/_version.pyi +0 -0
  227. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/commands.py +0 -0
  228. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/py.typed +0 -0
  229. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/setup_helpers.py +0 -0
  230. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/setup_helpers.pyi +0 -0
  231. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pyproject.toml +0 -0
  232. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/setup.cfg +0 -0
  233. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/setup.py +0 -0
  234. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/CMakeLists.txt +0 -0
  235. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/conftest.py +0 -0
  236. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/constructor_stats.h +0 -0
  237. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/cross_module_gil_utils.cpp +0 -0
  238. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/env.py +0 -0
  239. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_python_package/pytest.ini +0 -0
  240. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_python_package/test_files.py +0 -0
  241. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_setuptools/pytest.ini +0 -0
  242. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_setuptools/test_setuphelper.py +0 -0
  243. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/local_bindings.h +0 -0
  244. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/object.h +0 -0
  245. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_cross_module_tests.cpp +0 -0
  246. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_tests.cpp +0 -0
  247. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_tests.h +0 -0
  248. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pytest.ini +0 -0
  249. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/requirements.txt +0 -0
  250. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_async.cpp +0 -0
  251. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_async.py +0 -0
  252. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_buffers.cpp +0 -0
  253. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_buffers.py +0 -0
  254. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_builtin_casters.cpp +0 -0
  255. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_builtin_casters.py +0 -0
  256. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_call_policies.cpp +0 -0
  257. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_call_policies.py +0 -0
  258. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_callbacks.cpp +0 -0
  259. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_callbacks.py +0 -0
  260. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_chrono.cpp +0 -0
  261. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_chrono.py +0 -0
  262. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_class.cpp +0 -0
  263. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_class.py +0 -0
  264. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/CMakeLists.txt +0 -0
  265. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/embed.cpp +0 -0
  266. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_embed/CMakeLists.txt +0 -0
  267. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_function/CMakeLists.txt +0 -0
  268. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_target/CMakeLists.txt +0 -0
  269. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/main.cpp +0 -0
  270. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt +0 -0
  271. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_function/CMakeLists.txt +0 -0
  272. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt +0 -0
  273. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/test.py +0 -0
  274. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_constants_and_functions.cpp +0 -0
  275. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_constants_and_functions.py +0 -0
  276. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_copy_move.cpp +0 -0
  277. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_copy_move.py +0 -0
  278. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_casters.cpp +0 -0
  279. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_casters.py +0 -0
  280. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_setup.cpp +0 -0
  281. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_setup.py +0 -0
  282. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_docstring_options.cpp +0 -0
  283. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_docstring_options.py +0 -0
  284. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eigen.cpp +0 -0
  285. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eigen.py +0 -0
  286. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/CMakeLists.txt +0 -0
  287. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/catch.cpp +0 -0
  288. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/external_module.cpp +0 -0
  289. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/test_interpreter.cpp +0 -0
  290. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/test_interpreter.py +0 -0
  291. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_enum.cpp +0 -0
  292. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_enum.py +0 -0
  293. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval.cpp +0 -0
  294. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval.py +0 -0
  295. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval_call.py +0 -0
  296. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.cpp +0 -0
  297. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.h +0 -0
  298. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.py +0 -0
  299. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_factory_constructors.cpp +0 -0
  300. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_factory_constructors.py +0 -0
  301. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_gil_scoped.cpp +0 -0
  302. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_gil_scoped.py +0 -0
  303. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_iostream.cpp +0 -0
  304. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_iostream.py +0 -0
  305. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_kwargs_and_defaults.cpp +0 -0
  306. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_kwargs_and_defaults.py +0 -0
  307. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_local_bindings.cpp +0 -0
  308. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_local_bindings.py +0 -0
  309. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_methods_and_attributes.cpp +0 -0
  310. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_methods_and_attributes.py +0 -0
  311. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_modules.cpp +0 -0
  312. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_modules.py +0 -0
  313. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_multiple_inheritance.cpp +0 -0
  314. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_multiple_inheritance.py +0 -0
  315. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_array.cpp +0 -0
  316. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_array.py +0 -0
  317. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_dtypes.cpp +0 -0
  318. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_dtypes.py +0 -0
  319. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_vectorize.cpp +0 -0
  320. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_vectorize.py +0 -0
  321. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_opaque_types.cpp +0 -0
  322. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_opaque_types.py +0 -0
  323. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_operator_overloading.cpp +0 -0
  324. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_operator_overloading.py +0 -0
  325. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pickling.cpp +0 -0
  326. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pickling.py +0 -0
  327. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pytypes.cpp +0 -0
  328. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pytypes.py +0 -0
  329. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_sequences_and_iterators.cpp +0 -0
  330. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_sequences_and_iterators.py +0 -0
  331. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_smart_ptr.cpp +0 -0
  332. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_smart_ptr.py +0 -0
  333. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl.cpp +0 -0
  334. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl.py +0 -0
  335. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl_binders.cpp +0 -0
  336. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl_binders.py +0 -0
  337. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_tagbased_polymorphic.cpp +0 -0
  338. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_tagbased_polymorphic.py +0 -0
  339. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_thread.cpp +0 -0
  340. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_thread.py +0 -0
  341. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_union.cpp +0 -0
  342. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_union.py +0 -0
  343. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_virtual_functions.cpp +0 -0
  344. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_virtual_functions.py +0 -0
  345. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/valgrind-numpy-scipy.supp +0 -0
  346. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/valgrind-python.supp +0 -0
  347. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindCatch.cmake +0 -0
  348. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindEigen3.cmake +0 -0
  349. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindPythonLibsNew.cmake +0 -0
  350. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/check-style.sh +0 -0
  351. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/cmake_uninstall.cmake.in +0 -0
  352. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/libsize.py +0 -0
  353. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/make_changelog.py +0 -0
  354. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Common.cmake +0 -0
  355. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Config.cmake.in +0 -0
  356. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11NewTools.cmake +0 -0
  357. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Tools.cmake +0 -0
  358. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pyproject.toml +0 -0
  359. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/setup_global.py.in +0 -0
  360. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/setup_main.py.in +0 -0
  361. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/pyproject.toml +0 -0
  362. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/setup.py +0 -0
  363. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSPyATInterface.cpp +0 -0
  364. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSPyATInterface.hh +0 -0
  365. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSXtrackInterface.cpp +0 -0
  366. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSXtrackInterface.hh +0 -0
  367. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/src/collimasim/__init__.py +0 -0
  368. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/src/collimasim/bindings.cpp +0 -0
  369. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/src/collimasim/pyCollimatorPass.py +0 -0
  370. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/src/collimasim/xtrack_collimator.py +0 -0
  371. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/PKG-INFO +0 -0
  372. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/SOURCES.txt +0 -0
  373. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/dependency_links.txt +0 -0
  374. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/not-zip-safe +0 -0
  375. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/top_level.txt +0 -0
  376. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/README.md +0 -0
  377. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_forions.dat +0 -0
  378. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_new_example.dat +0 -0
  379. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_old_example.dat +0 -0
  380. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_testing.dat +0 -0
  381. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_yaml_example.yaml +0 -0
  382. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/resources/collgaps.dat +0 -0
  383. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/resources/collgaps_pyat_test.dat +0 -0
  384. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/resources/collonly_twiss_file_example.tfs +0 -0
  385. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/resources/settings.gmad +0 -0
  386. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/resources/settings_black_absorber.gmad +0 -0
  387. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/resources/settings_ions.gmad +0 -0
  388. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/resources/twiss_file_testing.tfs +0 -0
  389. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/test_pyat.py +0 -0
  390. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/test_pyat_passmethod.py +0 -0
  391. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/test_pyat_tracking.py +0 -0
  392. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack.py +0 -0
  393. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_angle.py +0 -0
  394. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_colldb_load.py +0 -0
  395. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_interaction.py +0 -0
  396. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_interaction_ion.py +0 -0
  397. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_ions.py +0 -0
  398. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_lost_energy.py +0 -0
  399. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tilt.py +0 -0
  400. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tracking.py +0 -0
  401. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tracking_ions.py +0 -0
  402. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geometry/__init__.py +0 -0
  403. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geometry/collimator_geometry.h +0 -0
  404. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geometry/crystal_geometry.h +0 -0
  405. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geometry/geometry.py +0 -0
  406. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geometry/get_s.h +0 -0
  407. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geometry/methods.h +0 -0
  408. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geometry/objects.h +0 -0
  409. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geometry/rotation.h +0 -0
  410. {xcoll-0.5.8 → xcoll-0.5.10}/xcoll/scattering_routines/geometry/segments.h +0 -0
  411. {xcoll-0.5.8 → xcoll-0.5.10}/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.5.8
3
+ Version: 0.5.10
4
4
  Summary: Xsuite collimation package
5
5
  Home-page: https://github.com/xsuite/xcoll
6
6
  License: Apache 2.0
@@ -18,11 +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.1.1)
22
- Requires-Dist: xfields (>=0.12.1)
23
- Requires-Dist: xobjects (>=0.2.6)
24
- Requires-Dist: xpart (>=0.15.0)
25
- Requires-Dist: xtrack (>=0.36.5)
21
+ Requires-Dist: xdeps (>=0.7.4)
22
+ Requires-Dist: xobjects (>=0.4.5)
23
+ Requires-Dist: xpart (>=0.19.1)
24
+ Requires-Dist: xtrack (>=0.69.7)
26
25
  Project-URL: Repository, https://github.com/xsuite/xcoll
27
26
  Description-Content-Type: text/markdown
28
27
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "xcoll"
3
- version = "0.5.8"
3
+ version = "0.5.10"
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.2.6"
29
- xdeps = ">=0.1.1"
30
- xpart = ">=0.15.0"
31
- xtrack = ">=0.36.5"
32
- xfields = ">=0.12.1"
28
+ xobjects = ">=0.4.5"
29
+ xdeps = ">=0.7.4"
30
+ xpart = ">=0.19.1"
31
+ xtrack = ">=0.69.7"
33
32
 
34
33
  [tool.poetry.dev-dependencies]
35
34
  pytest = ">=7.3"
35
+ xaux = ">=0.2.1"
36
36
 
37
37
  [tool.poetry.extras]
38
38
  tests = ["pytest", "ruamel-yaml"]
@@ -198,6 +198,10 @@ class BaseCollimator(BaseBlock):
198
198
  to_assign['angle_L'] = kwargs.pop('angle_L', 0)
199
199
  to_assign['angle_R'] = kwargs.pop('angle_R', 0)
200
200
 
201
+ # We do not allow any combination of jaw_ and gap_ attributes
202
+ # (except when jaw=..., gap=None or jaw=None, gap=... is used, as this is how the colldb installs it)
203
+ kwargs = {kk: vv for kk, vv in kwargs.items() if not vv is None}
204
+
201
205
  # Set jaw
202
206
  if 'jaw' in kwargs:
203
207
  for key in ['jaw_L', 'jaw_R', 'jaw_LU', 'jaw_LD', 'jaw_RU', 'jaw_RD', 'gap', 'gap_L', 'gap_R']:
@@ -333,7 +337,7 @@ class BaseCollimator(BaseBlock):
333
337
  or (self.tilt_L == 0 and self.tilt_R == 0):
334
338
  return [self.jaw_L, self.jaw_R]
335
339
  else:
336
- return [[self.jaw_LU, self.jaw_RU], [self.jaw_LD, self.jaw_RD]]
340
+ return [[self.jaw_LU, self.jaw_LD], [self.jaw_RU, self.jaw_RD]]
337
341
 
338
342
  @jaw.setter # Keeps the tilts unless all 4 corners are specified
339
343
  def jaw(self, val):
@@ -352,8 +356,8 @@ class BaseCollimator(BaseBlock):
352
356
  if hasattr(val[0], '__iter__'):
353
357
  if hasattr(val[1], '__iter__') and len(val[0]) == 2 and len(val[1]) == 2:
354
358
  self.jaw_LU = val[0][0]
355
- self.jaw_RU = val[0][1]
356
- self.jaw_LD = val[1][0]
359
+ self.jaw_LD = val[0][1]
360
+ self.jaw_RU = val[1][0]
357
361
  self.jaw_RD = val[1][1]
358
362
  return
359
363
  else:
@@ -556,6 +560,8 @@ class BaseCollimator(BaseBlock):
556
560
  print("Warning: Setting a tilt does not preserve the hierarchy, as there "
557
561
  + "will always be one corner that tightens (the tilt is applied at "
558
562
  + "the centre of the jaw).")
563
+ if val > np.pi/2 or val < -np.pi/2:
564
+ raise ValueError("Tilts larger than 90 degrees are not supported.")
559
565
  self._sin_yL = np.sin(val)
560
566
  self._cos_yL = np.cos(val)
561
567
  self._tan_yL = np.tan(val)
@@ -577,6 +583,8 @@ class BaseCollimator(BaseBlock):
577
583
  print("Warning: Setting a tilt does not preserve the hierarchy, as there "
578
584
  + "will always be one corner that tightens (the tilt is applied at "
579
585
  + "the centre of the jaw).")
586
+ if val > np.pi/2 or val < -np.pi/2:
587
+ raise ValueError("Tilts larger than 90 degrees are not supported.")
580
588
  self._sin_yR = np.sin(val)
581
589
  self._cos_yR = np.cos(val)
582
590
  self._tan_yR = np.tan(val)
@@ -965,8 +973,6 @@ class BaseCollimator(BaseBlock):
965
973
  assert self._jaws_parallel == False
966
974
  assert np.isclose(self._sin_zDiff, self._cos_zL*self._sin_zR - self._sin_zL*self._cos_zR)
967
975
  assert np.isclose(self._cos_zDiff, self._cos_zL*self._cos_zR + self._sin_zL*self._sin_zR)
968
- if self.side == 'both' and abs(self.tilt_L - self.tilt_R) >= 90.:
969
- raise ValueError("Tilts of both jaws differ more than 90 degrees!")
970
976
  if self.side != 'right':
971
977
  ang = abs(np.arccos(self._cos_yL))
972
978
  ang = np.pi - ang if ang > np.pi/2 else ang
@@ -1058,6 +1064,11 @@ class BaseCrystal(BaseBlock):
1058
1064
  # Set angle
1059
1065
  to_assign['angle'] = kwargs.pop('angle', 0)
1060
1066
 
1067
+ # We do not allow any combination of jaw_ and gap_ attributes
1068
+ # (except when jaw=..., gap=None or jaw=None, gap=... is used, as this is how the colldb installs it)
1069
+ kwargs = {kk: vv for kk, vv in kwargs.items() if not vv is None}
1070
+
1071
+
1061
1072
  # Set jaw
1062
1073
  if 'jaw' in kwargs:
1063
1074
  for key in ['jaw_U', 'jaw_D', 'gap']:
@@ -1214,6 +1225,8 @@ class BaseCrystal(BaseBlock):
1214
1225
  if val > min(0, -self.bending_angle/2):
1215
1226
  print("Warning: Setting a positive tilt does not preserve the hierarchy, as the "
1216
1227
  + "crystal tightens towards the beam.")
1228
+ if val > np.pi/2 or val < -np.pi/2:
1229
+ raise ValueError("Tilts larger than 90 degrees are not supported.")
1217
1230
  self._sin_y = np.sin(val)
1218
1231
  self._cos_y = np.cos(val)
1219
1232
  self._tan_y = np.tan(val)
@@ -358,156 +358,158 @@ class CollimatorDatabase:
358
358
  return pd.DataFrame(self._collimator_dict).transpose()
359
359
 
360
360
  def to_yaml(self, out, lhc_style=True):
361
- """
362
- Writes a colldb in memory to disk in the yaml format.
363
-
364
- > colldb_object.write_to_yaml(<path+name>, lhc_style=Bool)
365
-
366
- if lhc_style == True, it will add comments assuming that the collimators are named
367
- as in the lhc.
368
-
369
- The function can dump b1, b2 and a general bx, however multi-beam functionality is not yet
370
- added to the collmanager. TODO
371
-
372
- If any of the dumped keys contains capital letters (e.g. gap_L), it will not be possible
373
- to load it back into xcoll, since all keys are set to lowercase when importing TODO
374
- """
375
- # Dumps collimator database to a YAML file with optional LHC style formatting
376
- import re
377
-
378
- # Local helper functions
379
- def _format_dict_entry(key, value, spacing='', mapping=False, key_width=15):
380
- # Formats a dictionary entry into a string for YAML output
381
- formatted_values = ', '.join(f"{k}: {v}" for k, v in value.items())
382
- formatted_values = re.sub(r'none', 'null', formatted_values, flags=re.IGNORECASE)
383
- # Ensure key has a fixed width for alignment
384
- if mapping:
385
- formatted_key = f'{key}'.ljust(key_width)
386
- else:
387
- formatted_key = f'{key}:'.ljust(key_width)
388
- #formatted_values = formatted_values.ljust(key_width)
389
- return f"{spacing}{formatted_key} {{ {formatted_values} }}\n"
390
-
391
- def _print_values(keys, dct, file, spacing='', mapping=False):
392
- # Writes formatted dictionary entries to a file
393
- for key in keys:
394
- file.write(_format_dict_entry(key, dct[key], spacing=spacing, mapping=mapping))
395
-
396
- def _print_colls(colls, dcts, beam, file):
397
- # Filters and formats collimator data, then writes to a file
398
- coll_items_to_print = ['<<','gap','angle','material','active','length','side']
399
- file.write(f' {beam}:\n')
400
- for coll in colls:
401
- coll_dict = dcts.to_pandas().transpose().to_dict()[coll]
402
- fam = coll_dict['family']
403
- fam_keys = []
404
- if fam is not None:
405
- fam_keys = dcts._family_dict[fam].keys()
406
- coll_dict = {**{'<<': '*'+fam}, **coll_dict}
407
- temp_items_to_print = []
408
- if coll_dict['crystal'] and str(coll_dict['crystal'])!='nan':
409
- temp_items_to_print = ['bending_radius','width','height','miscut','crystal']
410
- # if 'angle_L' in coll_dict and coll_dict['angle_L'] == coll_dict['angle_R']:
411
- # coll_dict.update({'angle': coll_dict['angle_L']})
412
- # else:
413
- # temp_items_to_print = temp_items_to_print + ['angle_L','angle_R']
414
- # if coll_dict['gap_L'] == coll_dict['gap_R']:
415
- # coll_dict.update({'gap': coll_dict['gap_L']})
416
- # elif coll_dict['gap_L'] is None and coll_dict['gap_R'] is not None:
417
- # coll_dict.update({'gap': coll_dict['gap_R']})
418
- # elif coll_dict['gap_L'] is not None and coll_dict['gap_R'] is None:
419
- # coll_dict.update({'gap': coll_dict['gap_L']})
420
- # else:
421
- # temp_items_to_print = temp_items_to_print + ['gap_L','gap_R']
422
- value = {}
423
- overwritten_keys = coll_dict['overwritten_keys']
424
- for key, val in coll_dict.items():
425
- if key == 'active_length':
426
- key = 'length'
427
- if (key in coll_items_to_print+temp_items_to_print) and (key not in (set(fam_keys)-set(overwritten_keys))) and (val != 'both'):
428
- value.update({key: val})
429
- file.write(_format_dict_entry(coll, value, spacing=' '))
430
- file.write('\n')
431
-
432
- LHC_families = ['tcp3', 'tcsg3', 'tcsm3', 'tcla3', 'tcp7', 'tcsg7', 'tcsm7', 'tcla7', 'tcli', 'tdi', 'tcdq', 'tcstcdq', 'tcth1', 'tcth2', 'tcth5', 'tcth8', 'tctv1', 'tctv2', 'tctv5', 'tctv8', 'tclp', 'tcxrp', 'tcryo', 'tcl4', 'tcl5', 'tcl6', 'tct15', 'tct2', 'tct8', 'tcsp', 'tcld']
433
- with open(f'{out}.yaml', 'w') as file:
434
- if '_family_dict' in self.__dict__.keys():
435
- file.write('families:\n')
436
- if lhc_style:
437
- printed_families = []
438
- fams_in_dict = self._family_dict.keys()
439
-
440
- # Momentum cleaning
441
- file.write(' # Momentum cleaning\n')
442
- sel_fam = [fam for fam in LHC_families if re.match('.*3', fam) and (fam in fams_in_dict)]
443
- printed_families += sel_fam
444
- _print_values(sel_fam, self._family_dict, file, spacing=' - &', mapping=True)
445
-
446
- # Betatron cleaning
447
- file.write(' # Betatron cleaning\n')
448
- sel_fam = [fam for fam in LHC_families if re.match('.*7', fam) and (fam in fams_in_dict)]
449
- printed_families += sel_fam
450
- _print_values(sel_fam, self._family_dict, file, spacing=' - &', mapping=True)
451
-
452
- # Injection protection
453
- file.write(' # Injection protection\n')
454
- sel_fam = [fam for fam in LHC_families if (fam in ['tcli', 'tdi']) and (fam in fams_in_dict)]
455
- printed_families += sel_fam
456
- _print_values(sel_fam, self._family_dict, file, spacing=' - &', mapping=True)
457
-
458
- # Dump protection
459
- file.write(' # Dump protection\n')
460
- sel_fam = [fam for fam in LHC_families if (fam in ['tcdq', 'tcsp', 'tcstcdq']) and (fam in fams_in_dict)]
461
- printed_families += sel_fam
462
- _print_values(sel_fam, self._family_dict, file, spacing=' - &', mapping=True)
463
-
464
- # Physics background / debris
465
- file.write(' # Physics background / debris\n')
466
- sel_fam = [fam for fam in LHC_families if ((re.match('tc[lt][0-9dp].*', fam)) or (fam in ['tcryo', 'tcxrp'])) and (fam in fams_in_dict)]
467
- printed_families += sel_fam
468
- _print_values(sel_fam, self._family_dict, file, spacing=' - &', mapping=True)
469
-
470
- # Other families
471
- if set(printed_families) != set(fams_in_dict):
472
- file.write(' # Other families\n')
473
- _print_values(set(fams_in_dict) - set(printed_families), self._family_dict, file, spacing=' - &', mapping=True)
474
- else:
475
- file.write(' # Families\n')
476
- _print_values(self._family_dict.keys(), self._family_dict, file, spacing=' - &', mapping=True)
477
-
478
- # Emittance section
479
- ex = self.nemitt_x
480
- ey = self.nemitt_y
481
- file.write(f'\nemittance:\n x: {ex}\n y: {ey}\n')
482
-
483
- # Collimators section
484
- file.write('\ncollimators:\n')
485
- b1_colls, b2_colls, bx_colls = [], [], []
486
- for coll in self.to_pandas().index:
487
- if coll == 'tclia.4r2' or coll == 'tclia.4l8': # TODO: hardcoded!!!
488
- b1_colls.append(coll)
489
- b2_colls.append(coll)
490
- elif coll[-2:] == 'b1':
491
- b1_colls.append(coll)
492
- elif coll[-2:] == 'b2':
493
- b2_colls.append(coll)
494
- else:
495
- bx_colls.append(coll)
496
-
497
- # Handle special cases for collimators
498
- if (('tclia.4r2' in b1_colls) or ('tclia.4l8' in b1_colls)) and (len(b1_colls) <= 2):
499
- b1_colls = []
500
- if (('tclia.4r2' in b2_colls) or ('tclia.4l8' in b2_colls)) and (len(b2_colls) <= 2):
501
- b2_colls = []
502
-
503
- # Print collimators for each beam
504
- if len(b1_colls) > 0:
505
- _print_colls(b1_colls, self, 'b1', file)
506
- if len(b2_colls) > 0:
507
- _print_colls(b2_colls, self, 'b2', file)
508
- if len(bx_colls) > 0:
509
- _print_colls(bx_colls, self, 'bx', file)
510
- print('WARNING -- some collimators could not be assigned to b1 or b2. Tracking might not work with those collimators. Please manually change the output file if necessary.')
361
+ raise NotImplementedError("This functionality needs to be updated to be compatible with tilts and read "
362
+ + "the families from the colldb instead of hard-coding them!")
363
+ # """
364
+ # Writes a colldb in memory to disk in the yaml format.
365
+
366
+ # > colldb_object.write_to_yaml(<path+name>, lhc_style=Bool)
367
+
368
+ # if lhc_style == True, it will add comments assuming that the collimators are named
369
+ # as in the lhc.
370
+
371
+ # The function can dump b1, b2 and a general bx, however multi-beam functionality is not yet
372
+ # added to the collmanager. TODO
373
+
374
+ # If any of the dumped keys contains capital letters (e.g. gap_L), it will not be possible
375
+ # to load it back into xcoll, since all keys are set to lowercase when importing TODO
376
+ # """
377
+ # # Dumps collimator database to a YAML file with optional LHC style formatting
378
+ # import re
379
+
380
+ # # Local helper functions
381
+ # def _format_dict_entry(key, value, spacing='', mapping=False, key_width=15):
382
+ # # Formats a dictionary entry into a string for YAML output
383
+ # formatted_values = ', '.join(f"{k}: {v}" for k, v in value.items())
384
+ # formatted_values = re.sub(r'none', 'null', formatted_values, flags=re.IGNORECASE)
385
+ # # Ensure key has a fixed width for alignment
386
+ # if mapping:
387
+ # formatted_key = f'{key}'.ljust(key_width)
388
+ # else:
389
+ # formatted_key = f'{key}:'.ljust(key_width)
390
+ # #formatted_values = formatted_values.ljust(key_width)
391
+ # return f"{spacing}{formatted_key} {{ {formatted_values} }}\n"
392
+
393
+ # def _print_values(keys, dct, file, spacing='', mapping=False):
394
+ # # Writes formatted dictionary entries to a file
395
+ # for key in keys:
396
+ # file.write(_format_dict_entry(key, dct[key], spacing=spacing, mapping=mapping))
397
+
398
+ # def _print_colls(colls, dcts, beam, file):
399
+ # # Filters and formats collimator data, then writes to a file
400
+ # coll_items_to_print = ['<<','gap','angle','material','active','length','side']
401
+ # file.write(f' {beam}:\n')
402
+ # for coll in colls:
403
+ # coll_dict = dcts.to_pandas().transpose().to_dict()[coll]
404
+ # fam = coll_dict['family']
405
+ # fam_keys = []
406
+ # if fam is not None:
407
+ # fam_keys = dcts._family_dict[fam].keys()
408
+ # coll_dict = {**{'<<': '*'+fam}, **coll_dict}
409
+ # temp_items_to_print = []
410
+ # if coll_dict['crystal'] and str(coll_dict['crystal'])!='nan':
411
+ # temp_items_to_print = ['bending_radius','width','height','miscut','crystal']
412
+ # # if 'angle_L' in coll_dict and coll_dict['angle_L'] == coll_dict['angle_R']:
413
+ # # coll_dict.update({'angle': coll_dict['angle_L']})
414
+ # # else:
415
+ # # temp_items_to_print = temp_items_to_print + ['angle_L','angle_R']
416
+ # # if coll_dict['gap_L'] == coll_dict['gap_R']:
417
+ # # coll_dict.update({'gap': coll_dict['gap_L']})
418
+ # # elif coll_dict['gap_L'] is None and coll_dict['gap_R'] is not None:
419
+ # # coll_dict.update({'gap': coll_dict['gap_R']})
420
+ # # elif coll_dict['gap_L'] is not None and coll_dict['gap_R'] is None:
421
+ # # coll_dict.update({'gap': coll_dict['gap_L']})
422
+ # # else:
423
+ # # temp_items_to_print = temp_items_to_print + ['gap_L','gap_R']
424
+ # value = {}
425
+ # overwritten_keys = coll_dict['overwritten_keys']
426
+ # for key, val in coll_dict.items():
427
+ # if key == 'active_length':
428
+ # key = 'length'
429
+ # if (key in coll_items_to_print+temp_items_to_print) and (key not in (set(fam_keys)-set(overwritten_keys))) and (val != 'both'):
430
+ # value.update({key: val})
431
+ # file.write(_format_dict_entry(coll, value, spacing=' '))
432
+ # file.write('\n')
433
+
434
+ # LHC_families = ['tcp3', 'tcsg3', 'tcsm3', 'tcla3', 'tcp7', 'tcsg7', 'tcsm7', 'tcla7', 'tcli', 'tdi', 'tcdq', 'tcstcdq', 'tcth1', 'tcth2', 'tcth5', 'tcth8', 'tctv1', 'tctv2', 'tctv5', 'tctv8', 'tclp', 'tcxrp', 'tcryo', 'tcl4', 'tcl5', 'tcl6', 'tct15', 'tct2', 'tct8', 'tcsp', 'tcld']
435
+ # with open(f'{out}.yaml', 'w') as file:
436
+ # if '_family_dict' in self.__dict__.keys():
437
+ # file.write('families:\n')
438
+ # if lhc_style:
439
+ # printed_families = []
440
+ # fams_in_dict = self._family_dict.keys()
441
+
442
+ # # Momentum cleaning
443
+ # file.write(' # Momentum cleaning\n')
444
+ # sel_fam = [fam for fam in LHC_families if re.match('.*3', fam) and (fam in fams_in_dict)]
445
+ # printed_families += sel_fam
446
+ # _print_values(sel_fam, self._family_dict, file, spacing=' - &', mapping=True)
447
+
448
+ # # Betatron cleaning
449
+ # file.write(' # Betatron cleaning\n')
450
+ # sel_fam = [fam for fam in LHC_families if re.match('.*7', fam) and (fam in fams_in_dict)]
451
+ # printed_families += sel_fam
452
+ # _print_values(sel_fam, self._family_dict, file, spacing=' - &', mapping=True)
453
+
454
+ # # Injection protection
455
+ # file.write(' # Injection protection\n')
456
+ # sel_fam = [fam for fam in LHC_families if (fam in ['tcli', 'tdi']) and (fam in fams_in_dict)]
457
+ # printed_families += sel_fam
458
+ # _print_values(sel_fam, self._family_dict, file, spacing=' - &', mapping=True)
459
+
460
+ # # Dump protection
461
+ # file.write(' # Dump protection\n')
462
+ # sel_fam = [fam for fam in LHC_families if (fam in ['tcdq', 'tcsp', 'tcstcdq']) and (fam in fams_in_dict)]
463
+ # printed_families += sel_fam
464
+ # _print_values(sel_fam, self._family_dict, file, spacing=' - &', mapping=True)
465
+
466
+ # # Physics background / debris
467
+ # file.write(' # Physics background / debris\n')
468
+ # sel_fam = [fam for fam in LHC_families if ((re.match('tc[lt][0-9dp].*', fam)) or (fam in ['tcryo', 'tcxrp'])) and (fam in fams_in_dict)]
469
+ # printed_families += sel_fam
470
+ # _print_values(sel_fam, self._family_dict, file, spacing=' - &', mapping=True)
471
+
472
+ # # Other families
473
+ # if set(printed_families) != set(fams_in_dict):
474
+ # file.write(' # Other families\n')
475
+ # _print_values(set(fams_in_dict) - set(printed_families), self._family_dict, file, spacing=' - &', mapping=True)
476
+ # else:
477
+ # file.write(' # Families\n')
478
+ # _print_values(self._family_dict.keys(), self._family_dict, file, spacing=' - &', mapping=True)
479
+
480
+ # # Emittance section
481
+ # ex = self.nemitt_x
482
+ # ey = self.nemitt_y
483
+ # file.write(f'\nemittance:\n x: {ex}\n y: {ey}\n')
484
+
485
+ # # Collimators section
486
+ # file.write('\ncollimators:\n')
487
+ # b1_colls, b2_colls, bx_colls = [], [], []
488
+ # for coll in self.to_pandas().index:
489
+ # if coll == 'tclia.4r2' or coll == 'tclia.4l8': # TODO: hardcoded!!!
490
+ # b1_colls.append(coll)
491
+ # b2_colls.append(coll)
492
+ # elif coll[-2:] == 'b1':
493
+ # b1_colls.append(coll)
494
+ # elif coll[-2:] == 'b2':
495
+ # b2_colls.append(coll)
496
+ # else:
497
+ # bx_colls.append(coll)
498
+
499
+ # # Handle special cases for collimators
500
+ # if (('tclia.4r2' in b1_colls) or ('tclia.4l8' in b1_colls)) and (len(b1_colls) <= 2):
501
+ # b1_colls = []
502
+ # if (('tclia.4r2' in b2_colls) or ('tclia.4l8' in b2_colls)) and (len(b2_colls) <= 2):
503
+ # b2_colls = []
504
+
505
+ # # Print collimators for each beam
506
+ # if len(b1_colls) > 0:
507
+ # _print_colls(b1_colls, self, 'b1', file)
508
+ # if len(b2_colls) > 0:
509
+ # _print_colls(b2_colls, self, 'b2', file)
510
+ # if len(bx_colls) > 0:
511
+ # _print_colls(bx_colls, self, 'bx', file)
512
+ # print('WARNING -- some collimators could not be assigned to b1 or b2. Tracking might not work with those collimators. Please manually change the output file if necessary.')
511
513
 
512
514
 
513
515
  # ====================================
@@ -539,27 +541,14 @@ class CollimatorDatabase:
539
541
  + f"(or xtrack.Drift)!\nPlease check the name, or correct the "
540
542
  + f"element.")
541
543
 
542
- def _create_collimator(self, line, collimator_class, name, **kwargs):
543
- assert issubclass(collimator_class, BaseCollimator)
544
- self._check_installed(line, name, collimator_class)
544
+ def _create_collimator(self, cls, line, name, **kwargs):
545
+ self._check_installed(line, name, cls)
545
546
  if kwargs.pop('verbose', False):
546
- print(f"Installing {name:20} as {collimator_class.__name__}")
547
- el = collimator_class(gap=self[name]['gap'], angle=self[name]['angle'],
548
- length=self[name]['length'], side=self[name]['side'],
549
- _tracking=False, **kwargs)
550
- el.emittance = [self.nemitt_x, self.nemitt_y]
551
- self._elements[name] = el
552
-
553
- def _create_crystal(self, line, crystal_class, name, **kwargs):
554
- assert issubclass(crystal_class, BaseCrystal)
555
- self._check_installed(line, name, crystal_class)
556
- if kwargs.pop('verbose', False):
557
- print(f"Installing {name:20} as {crystal_class.__name__}")
558
- el = crystal_class(gap=self[name]['gap'], angle=self[name]['angle'],
559
- length=self[name]['length'], side=self[name]['side'],
560
- bending_radius=self[name]['bending_radius'],
561
- width=self[name]['width'], height=self[name]['height'],
562
- _tracking=False, **kwargs)
547
+ print(f"Installing {name:20} as {cls.__name__}")
548
+ prop_dict = {kk: vv for kk, vv in self[name].items() \
549
+ if kk in cls._xofields or kk in cls._store_in_to_dict}
550
+ prop_dict.update(kwargs)
551
+ el = cls(**prop_dict)
563
552
  el.emittance = [self.nemitt_x, self.nemitt_y]
564
553
  self._elements[name] = el
565
554
 
@@ -567,9 +556,9 @@ class CollimatorDatabase:
567
556
  names = self._get_names_from_line(line, names, families)
568
557
  for name in names:
569
558
  if self[name]['bending_radius'] is None:
570
- self._create_collimator(line, BlackAbsorber, name, verbose=verbose)
559
+ self._create_collimator(BlackAbsorber, line, name, verbose=verbose)
571
560
  else:
572
- self._create_crystal(line, BlackCrystal, name, verbose=verbose)
561
+ self._create_collimator(BlackCrystal, line, name, verbose=verbose)
573
562
  elements = [self._elements[name] for name in names]
574
563
  line.collimators.install(names, elements, need_apertures=need_apertures)
575
564
 
@@ -578,12 +567,11 @@ class CollimatorDatabase:
578
567
  for name in names:
579
568
  mat = SixTrack_to_xcoll(self[name]['material'])
580
569
  if self[name]['bending_radius'] is None:
581
- self._create_collimator(line, EverestCollimator, name, material=mat[0],
570
+ self._create_collimator(EverestCollimator, line, name, material=mat[0],
582
571
  verbose=verbose)
583
572
  else:
584
- self._create_crystal(line, EverestCrystal, name, material=mat[1],
585
- lattice=self[name]['crystal'], verbose=verbose,
586
- miscut=self[name]['miscut'])
573
+ self._create_collimator(EverestCrystal, line, name, material=mat[1],
574
+ verbose=verbose)
587
575
  elements = [self._elements[name] for name in names]
588
576
  line.collimators.install(names, elements, need_apertures=need_apertures)
589
577
 
@@ -12,5 +12,5 @@ citation = "F.F. Van der Veken, et al.: Recent Developments with the New Tools f
12
12
  # ======================
13
13
  # Do not change
14
14
  # ======================
15
- __version__ = '0.5.8'
15
+ __version__ = '0.5.10'
16
16
  # ======================
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes