xtrack 0.74.1__tar.gz → 0.74.2__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.
Files changed (801) hide show
  1. {xtrack-0.74.1 → xtrack-0.74.2}/PKG-INFO +1 -1
  2. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_attr_replicas_and_slices.py +4 -4
  3. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_elements_thick.py +191 -11
  4. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_environment.py +7 -7
  5. xtrack-0.74.2/xtrack/_version.py +1 -0
  6. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements.py +87 -21
  7. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/mad_loader.py +1 -12
  8. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack.egg-info/PKG-INFO +1 -1
  9. xtrack-0.74.1/xtrack/_version.py +0 -1
  10. {xtrack-0.74.1 → xtrack-0.74.2}/.gitattributes +0 -0
  11. {xtrack-0.74.1 → xtrack-0.74.2}/.gitignore +0 -0
  12. {xtrack-0.74.1 → xtrack-0.74.2}/LICENSE +0 -0
  13. {xtrack-0.74.1 → xtrack-0.74.2}/MANIFEST.in +0 -0
  14. {xtrack-0.74.1 → xtrack-0.74.2}/README.md +0 -0
  15. {xtrack-0.74.1 → xtrack-0.74.2}/contributors.txt +0 -0
  16. {xtrack-0.74.1 → xtrack-0.74.2}/ducktrack/__init__.py +0 -0
  17. {xtrack-0.74.1 → xtrack-0.74.2}/ducktrack/base_classes.py +0 -0
  18. {xtrack-0.74.1 → xtrack-0.74.2}/ducktrack/be_beamfields/BB6D.py +0 -0
  19. {xtrack-0.74.1 → xtrack-0.74.2}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
  20. {xtrack-0.74.1 → xtrack-0.74.2}/ducktrack/be_beamfields/__init__.py +0 -0
  21. {xtrack-0.74.1 → xtrack-0.74.2}/ducktrack/be_beamfields/beambeam.py +0 -0
  22. {xtrack-0.74.1 → xtrack-0.74.2}/ducktrack/be_beamfields/boost.py +0 -0
  23. {xtrack-0.74.1 → xtrack-0.74.2}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
  24. {xtrack-0.74.1 → xtrack-0.74.2}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
  25. {xtrack-0.74.1 → xtrack-0.74.2}/ducktrack/be_beamfields/qgauss.py +0 -0
  26. {xtrack-0.74.1 → xtrack-0.74.2}/ducktrack/be_beamfields/slicing.py +0 -0
  27. {xtrack-0.74.1 → xtrack-0.74.2}/ducktrack/be_beamfields/spacecharge.py +0 -0
  28. {xtrack-0.74.1 → xtrack-0.74.2}/ducktrack/elements.py +0 -0
  29. {xtrack-0.74.1 → xtrack-0.74.2}/ducktrack/line.py +0 -0
  30. {xtrack-0.74.1 → xtrack-0.74.2}/ducktrack/mathlibs.py +0 -0
  31. {xtrack-0.74.1 → xtrack-0.74.2}/ducktrack/particles.py +0 -0
  32. {xtrack-0.74.1 → xtrack-0.74.2}/ducktrack/temp_pyparticles.py +0 -0
  33. {xtrack-0.74.1 → xtrack-0.74.2}/examples/acceleration/000_acceleration.py +0 -0
  34. {xtrack-0.74.1 → xtrack-0.74.2}/examples/acceleration/001_energy_ramp.py +0 -0
  35. {xtrack-0.74.1 → xtrack-0.74.2}/examples/acceleration/002_energy_ramp_transverse.py +0 -0
  36. {xtrack-0.74.1 → xtrack-0.74.2}/examples/amplitude_detuning/000_detuning.py +0 -0
  37. {xtrack-0.74.1 → xtrack-0.74.2}/examples/apertures/000_rect_aperture_standalone.py +0 -0
  38. {xtrack-0.74.1 → xtrack-0.74.2}/examples/apertures/000a_rect_aperture_with_tilt_shifts.py +0 -0
  39. {xtrack-0.74.1 → xtrack-0.74.2}/examples/apertures/001_rect_aperture_withinline.py +0 -0
  40. {xtrack-0.74.1 → xtrack-0.74.2}/examples/apertures/002_global_aperture.py +0 -0
  41. {xtrack-0.74.1 → xtrack-0.74.2}/examples/apertures/003_polygon.py +0 -0
  42. {xtrack-0.74.1 → xtrack-0.74.2}/examples/apertures/004_racetrack.py +0 -0
  43. {xtrack-0.74.1 → xtrack-0.74.2}/examples/apertures/005_import_polygon_from_madx.py +0 -0
  44. {xtrack-0.74.1 → xtrack-0.74.2}/examples/cavity_absolute_time/000_cavity_absolute_time.py +0 -0
  45. {xtrack-0.74.1 → xtrack-0.74.2}/examples/cavity_absolute_time/001_with_functions.py +0 -0
  46. {xtrack-0.74.1 → xtrack-0.74.2}/examples/coasting/001_frev_meas.py +0 -0
  47. {xtrack-0.74.1 → xtrack-0.74.2}/examples/coasting/e000_illustration.py +0 -0
  48. {xtrack-0.74.1 → xtrack-0.74.2}/examples/collimation/000_secondary_production.py +0 -0
  49. {xtrack-0.74.1 → xtrack-0.74.2}/examples/collimation/001_loss_location_refinement.py +0 -0
  50. {xtrack-0.74.1 → xtrack-0.74.2}/examples/collimation/002_loss_refinement_check_cone.py +0 -0
  51. {xtrack-0.74.1 → xtrack-0.74.2}/examples/collimation/003_all_together.py +0 -0
  52. {xtrack-0.74.1 → xtrack-0.74.2}/examples/collimation/004_check_skip_refinement_for_collimator.py +0 -0
  53. {xtrack-0.74.1 → xtrack-0.74.2}/examples/convert_lhc/000_convert.py +0 -0
  54. {xtrack-0.74.1 → xtrack-0.74.2}/examples/convert_lhc/001_doit +0 -0
  55. {xtrack-0.74.1 → xtrack-0.74.2}/examples/convert_lhc/002_new_madloader.py +0 -0
  56. {xtrack-0.74.1 → xtrack-0.74.2}/examples/convert_lhc/003_riccardo.py +0 -0
  57. {xtrack-0.74.1 → xtrack-0.74.2}/examples/convert_lhc/004_load_optics_file.py +0 -0
  58. {xtrack-0.74.1 → xtrack-0.74.2}/examples/convert_lhc/lhc.py +0 -0
  59. {xtrack-0.74.1 → xtrack-0.74.2}/examples/convert_lhc/lhc.seq +0 -0
  60. {xtrack-0.74.1 → xtrack-0.74.2}/examples/convert_lhc/optics.madx +0 -0
  61. {xtrack-0.74.1 → xtrack-0.74.2}/examples/convert_lhc/squeeze_0.madx +0 -0
  62. {xtrack-0.74.1 → xtrack-0.74.2}/examples/coupling_knobs/000_generate_coupling_konbs.py +0 -0
  63. {xtrack-0.74.1 → xtrack-0.74.2}/examples/coupling_knobs/001_check_against_legacy.py +0 -0
  64. {xtrack-0.74.1 → xtrack-0.74.2}/examples/coupling_knobs/002_check_twiss_complex_cmin.py +0 -0
  65. {xtrack-0.74.1 → xtrack-0.74.2}/examples/crab_dispersion/000_crab_dispersion.py +0 -0
  66. {xtrack-0.74.1 → xtrack-0.74.2}/examples/crab_dispersion/001_crab_dispersion_freeze_vars.py +0 -0
  67. {xtrack-0.74.1 → xtrack-0.74.2}/examples/crab_dispersion/002_crab_dispersion_open.py +0 -0
  68. {xtrack-0.74.1 → xtrack-0.74.2}/examples/crab_trim_with_knob/000_investigate.py +0 -0
  69. {xtrack-0.74.1 → xtrack-0.74.2}/examples/dynamic_aperture/000_tracking_for_da.py +0 -0
  70. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_internal_record/000_internal_record.py +0 -0
  71. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_internal_record/001_multirecord.py +0 -0
  72. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_internal_record/002_record_in_individual_element.py +0 -0
  73. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/000_element_transform.py +0 -0
  74. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/000a_multipolar_components.py +0 -0
  75. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/001_sliced_element_transform.py +0 -0
  76. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/001a_sliced_multipolar_components.py +0 -0
  77. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/002_multipoles_in_quad.py +0 -0
  78. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/010_replica_loops.py +0 -0
  79. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t000_check_tilt_shifts_against_mad.py +0 -0
  80. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t000a_test_shift_x.py +0 -0
  81. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t000b_test_shift_y.py +0 -0
  82. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t000c_test_rot_s.py +0 -0
  83. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t001_edges_in_bend.py +0 -0
  84. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t001a_edges_in_bend_exit.py +0 -0
  85. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t002b_quad_slice_ref_thin.py +0 -0
  86. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t002c_bend_slice_ref_thin.py +0 -0
  87. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t002d_sext_slice_ref_thin.py +0 -0
  88. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t002e_oct_slice_ref_thin.py +0 -0
  89. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t002g_drift_slice_ref_thin.py +0 -0
  90. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t004b_quad_slice_ref_thick.py +0 -0
  91. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t004c_bend_slice_ref_thick.py +0 -0
  92. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t004d_sext_slice_ref_thick.py +0 -0
  93. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t004e_oct_slice_ref_thick.py +0 -0
  94. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t005a_check_attr.py +0 -0
  95. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t009_check_is_drift.py +0 -0
  96. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t011_check_flags.py +0 -0
  97. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t012_check_traansformations_against_sandwitch.py +0 -0
  98. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t014_check_survey.py +0 -0
  99. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t015_insert_in_replicas.py +0 -0
  100. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t015a_insert_in_replicas_thin.py +0 -0
  101. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/t016_insert_thick_change_s.py +0 -0
  102. {xtrack-0.74.1 → xtrack-0.74.2}/examples/element_transformations/ttt.json +0 -0
  103. {xtrack-0.74.1 → xtrack-0.74.2}/examples/fcc_ee/000_build_xsuite_model.py +0 -0
  104. {xtrack-0.74.1 → xtrack-0.74.2}/examples/fcc_ee/001_match_emittance.py +0 -0
  105. {xtrack-0.74.1 → xtrack-0.74.2}/examples/fcc_ee/002_vertical_ring_check.py +0 -0
  106. {xtrack-0.74.1 → xtrack-0.74.2}/examples/fcc_ee/install_wigglers.madx +0 -0
  107. {xtrack-0.74.1 → xtrack-0.74.2}/examples/fcc_ee_solenoid/004a_prepare_fcc_lattice_with_solenoid.py +0 -0
  108. {xtrack-0.74.1 → xtrack-0.74.2}/examples/fcc_ee_solenoid/004b_correction.py +0 -0
  109. {xtrack-0.74.1 → xtrack-0.74.2}/examples/fcc_ee_solenoid/004c_radiation.py +0 -0
  110. {xtrack-0.74.1 → xtrack-0.74.2}/examples/fcc_ee_solenoid/t000_compare_against_boris.py +0 -0
  111. {xtrack-0.74.1 → xtrack-0.74.2}/examples/fcc_ee_solenoid/t000_investigate_tilt.py +0 -0
  112. {xtrack-0.74.1 → xtrack-0.74.2}/examples/fcc_ee_solenoid/t000a_plot_benchmark.py +0 -0
  113. {xtrack-0.74.1 → xtrack-0.74.2}/examples/fcc_ee_solenoid/t000b_simplified_illustration.py +0 -0
  114. {xtrack-0.74.1 → xtrack-0.74.2}/examples/fcc_ee_solenoid/t001_dispersion_boris.py +0 -0
  115. {xtrack-0.74.1 → xtrack-0.74.2}/examples/fcc_ee_solenoid/t002_check_tilted_drift.py +0 -0
  116. {xtrack-0.74.1 → xtrack-0.74.2}/examples/fodo/000_fodo.py +0 -0
  117. {xtrack-0.74.1 → xtrack-0.74.2}/examples/footprint/000_footprint.py +0 -0
  118. {xtrack-0.74.1 → xtrack-0.74.2}/examples/footprint/001_footprint_frozen_longitudinal.py +0 -0
  119. {xtrack-0.74.1 → xtrack-0.74.2}/examples/footprint/002_footprint_checks.py +0 -0
  120. {xtrack-0.74.1 → xtrack-0.74.2}/examples/footprint/003_stability_diagram.py +0 -0
  121. {xtrack-0.74.1 → xtrack-0.74.2}/examples/freeze_longitudinal/000_freeze_unfreeze_explicit.py +0 -0
  122. {xtrack-0.74.1 → xtrack-0.74.2}/examples/freeze_longitudinal/001_freeze_context_manager.py +0 -0
  123. {xtrack-0.74.1 → xtrack-0.74.2}/examples/freeze_longitudinal/002_freeze_individual_methods.py +0 -0
  124. {xtrack-0.74.1 → xtrack-0.74.2}/examples/full_ring/000_tracking_example.py +0 -0
  125. {xtrack-0.74.1 → xtrack-0.74.2}/examples/full_ring/005_one_turn_check.py +0 -0
  126. {xtrack-0.74.1 → xtrack-0.74.2}/examples/full_ring/006_timing.py +0 -0
  127. {xtrack-0.74.1 → xtrack-0.74.2}/examples/full_ring/007_test_freeze_vars.py +0 -0
  128. {xtrack-0.74.1 → xtrack-0.74.2}/examples/full_ring/make_short_line.py +0 -0
  129. {xtrack-0.74.1 → xtrack-0.74.2}/examples/functions_in_knobs/000_define_function.py +0 -0
  130. {xtrack-0.74.1 → xtrack-0.74.2}/examples/functions_in_knobs/001_track_with_function.py +0 -0
  131. {xtrack-0.74.1 → xtrack-0.74.2}/examples/insert_elements/000_multiple_thick_insertions.py +0 -0
  132. {xtrack-0.74.1 → xtrack-0.74.2}/examples/ion_fragments/000_dev.py +0 -0
  133. {xtrack-0.74.1 → xtrack-0.74.2}/examples/knobs/000_fodo.py +0 -0
  134. {xtrack-0.74.1 → xtrack-0.74.2}/examples/knobs/001_lhc.py +0 -0
  135. {xtrack-0.74.1 → xtrack-0.74.2}/examples/knobs/002_from_json.py +0 -0
  136. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_and_optics_files/000_example.py +0 -0
  137. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_and_optics_files/pimm_lattice.py +0 -0
  138. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_and_optics_files/pimm_optics.py +0 -0
  139. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/000_environemnt.py +0 -0
  140. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/000a_subline.py +0 -0
  141. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/000b_builder.py +0 -0
  142. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/000c_repeated_elements.py +0 -0
  143. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/000d_env_to_json.py +0 -0
  144. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/003_view.py +0 -0
  145. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/006_select_in_multiline.py +0 -0
  146. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/007a_element_creation_and_placing.py +0 -0
  147. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/007b_insert_elements.py +0 -0
  148. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/007c_insert_individual.py +0 -0
  149. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/007d_insert_line.py +0 -0
  150. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/007e_append_elements.py +0 -0
  151. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/007f_remove_elements.py +0 -0
  152. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/007g_replace_elements.py +0 -0
  153. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/007h_insert_element_instantiated_by_user.py +0 -0
  154. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/008a_line_composition.py +0 -0
  155. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/008b_composition_with_replicas.py +0 -0
  156. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/008c_place_line_at_s.py +0 -0
  157. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/008d_environment.py +0 -0
  158. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/009a_insert_repeated_elements.py +0 -0
  159. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/009b_insert_with_anchors.py +0 -0
  160. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/009c_insert_anchor_in_new_and_old.py +0 -0
  161. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/009d_insert_object.py +0 -0
  162. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/009e_individual_insertions.py +0 -0
  163. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/009f_individual_insertions_anchor.py +0 -0
  164. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/009g_insert_line.py +0 -0
  165. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/010_anchors.py +0 -0
  166. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/010b_anchors_compact.py +0 -0
  167. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/010c_check_timing_on_large_line.py +0 -0
  168. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/010d_anchor_lines.py +0 -0
  169. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/011_remove_element_env.py +0 -0
  170. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/011a_remove_element_from_line.py +0 -0
  171. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/012_replace_element.py +0 -0
  172. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/013_slice_repeated_elements.py +0 -0
  173. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/014_append.py +0 -0
  174. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/015_twin_lines.py +0 -0
  175. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/016_extend_multipoles.py +0 -0
  176. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/ring.json +0 -0
  177. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/ring.json.gz +0 -0
  178. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/t000_test_env.py +0 -0
  179. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/t001_check_with_subline.py +0 -0
  180. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/t002_issue_rep_elems.py +0 -0
  181. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/t003_issue_ref.py +0 -0
  182. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/t005_env_methods.py +0 -0
  183. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lattice_design/t006_get_eval_etc.py +0 -0
  184. {xtrack-0.74.1 → xtrack-0.74.2}/examples/legacy_multiline_to_environment/000_convert.py +0 -0
  185. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lep/000_lep.py +0 -0
  186. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lep/001_check_against_madx.py +0 -0
  187. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lep/lep.opt9 +0 -0
  188. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lep/lep.seq9 +0 -0
  189. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lhc_against_sixtrack/001_check.py +0 -0
  190. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lhc_against_sixtrack/sixtrack_lhc_no_bb/000_runsix.sh +0 -0
  191. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lhc_against_sixtrack/sixtrack_lhc_no_bb/fort.16 +0 -0
  192. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lhc_against_sixtrack/sixtrack_lhc_no_bb/fort.2 +0 -0
  193. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lhc_against_sixtrack/sixtrack_lhc_no_bb/fort.3.offmom +0 -0
  194. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lhc_against_sixtrack/sixtrack_lhc_no_bb/fort.3.onmom +0 -0
  195. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lhc_against_sixtrack/sixtrack_lhc_no_bb/fort.8 +0 -0
  196. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lhc_thick/000_makethin.py +0 -0
  197. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lhc_thick/001_insert_thin_elements_after_makethin.py +0 -0
  198. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lhc_thick/002_compare_thick_twiss_vs_madx.py +0 -0
  199. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lhc_thick/003_makethin_convergence_speed_vs_madx.py +0 -0
  200. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lhc_thick/004_slice_every_x_meters.py +0 -0
  201. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lhc_thick/t000_thick_sextupole.py +0 -0
  202. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lhc_with_env/000_make_env.py +0 -0
  203. {xtrack-0.74.1 → xtrack-0.74.2}/examples/lhc_with_env/001_check_env.py +0 -0
  204. {xtrack-0.74.1 → xtrack-0.74.2}/examples/mad_loader/000_collider_from_mad.py +0 -0
  205. {xtrack-0.74.1 → xtrack-0.74.2}/examples/mad_loader/001_check_b2.py +0 -0
  206. {xtrack-0.74.1 → xtrack-0.74.2}/examples/mad_loader/003_load_thick_with_errors.py +0 -0
  207. {xtrack-0.74.1 → xtrack-0.74.2}/examples/mad_loader/convert_multipole.py +0 -0
  208. {xtrack-0.74.1 → xtrack-0.74.2}/examples/mad_loader/job.madx +0 -0
  209. {xtrack-0.74.1 → xtrack-0.74.2}/examples/mad_loader/multipole.madx +0 -0
  210. {xtrack-0.74.1 → xtrack-0.74.2}/examples/mad_writer/000_to_madx.py +0 -0
  211. {xtrack-0.74.1 → xtrack-0.74.2}/examples/mad_writer/001_to_madng.py +0 -0
  212. {xtrack-0.74.1 → xtrack-0.74.2}/examples/mad_writer/001a_madng_rdt.py +0 -0
  213. {xtrack-0.74.1 → xtrack-0.74.2}/examples/mad_writer/001c_dev_madng_interface.py +0 -0
  214. {xtrack-0.74.1 → xtrack-0.74.2}/examples/mad_writer/001d_madng_tilt_shift.py +0 -0
  215. {xtrack-0.74.1 → xtrack-0.74.2}/examples/mad_writer/002_madng_checks.py +0 -0
  216. {xtrack-0.74.1 → xtrack-0.74.2}/examples/mad_writer/003_example_pymadng_from_madx.py +0 -0
  217. {xtrack-0.74.1 → xtrack-0.74.2}/examples/mad_writer/005_skew_quad.py +0 -0
  218. {xtrack-0.74.1 → xtrack-0.74.2}/examples/mad_writer/006_check_skew_quad.py +0 -0
  219. {xtrack-0.74.1 → xtrack-0.74.2}/examples/mad_writer/007_check_octupole.py +0 -0
  220. {xtrack-0.74.1 → xtrack-0.74.2}/examples/mad_writer/008_check_to_madx.py +0 -0
  221. {xtrack-0.74.1 → xtrack-0.74.2}/examples/mad_writer/t000_investigate_sympl.py +0 -0
  222. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match/000_match_basic.py +0 -0
  223. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match/001_match_interactive.py +0 -0
  224. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match/002_match_bump_basic.py +0 -0
  225. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match/002a_match_bump_init_end.py +0 -0
  226. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match/002b_match_bump_init_middle.py +0 -0
  227. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match/003_match_bump_from_table.py +0 -0
  228. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match/004_match_bump_common_elements.py +0 -0
  229. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match/005_match_bump_common_ele_callable_ineq.py +0 -0
  230. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match/005a_match_bump_common_targets_from_table.py +0 -0
  231. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match/006_match_action.py +0 -0
  232. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match/007_match_knob.py +0 -0
  233. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match/t003_match_bump_from_table_collider.py +0 -0
  234. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match_octupole_phase_knob/.gitignore +0 -0
  235. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match_octupole_phase_knob/000_dev.py +0 -0
  236. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match_optics/000_build_xsuite_model.py +0 -0
  237. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match_optics/001_change_ip15_phase.py +0 -0
  238. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match_optics/001a_change_beta_star.py +0 -0
  239. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match_optics/001b_match_on_disp.py +0 -0
  240. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match_optics/002_check_optics_and_orbit_knobs_xsuite_and_madx.py +0 -0
  241. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match_optics/010_check_phase_advances.py +0 -0
  242. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match_optics/011_match_all_arcs.py +0 -0
  243. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match_optics/012_match_ir2.py +0 -0
  244. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match_optics/020_match_ir7.py +0 -0
  245. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match_optics/020t_time_vs_madx.py +0 -0
  246. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match_optics/030_FODO_with_knobs.py +0 -0
  247. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match_optics/make_one_crossing_knob.madx +0 -0
  248. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match_optics/notes.txt +0 -0
  249. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match_optics/t000b_match_arc.py +0 -0
  250. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match_optics/t000c_match_arc_nested_optim.py +0 -0
  251. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match_optics/t000d_match_all_arcs.py +0 -0
  252. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match_optics/t004_time_madx_ip15_phase.py +0 -0
  253. {xtrack-0.74.1 → xtrack-0.74.2}/examples/match_optics/t005_match_options.py +0 -0
  254. {xtrack-0.74.1 → xtrack-0.74.2}/examples/monitor/000_example_quick_monitor.py +0 -0
  255. {xtrack-0.74.1 → xtrack-0.74.2}/examples/monitor/001_example_custom_monitor.py +0 -0
  256. {xtrack-0.74.1 → xtrack-0.74.2}/examples/monitor/002_example_custom_monitor_multiframe.py +0 -0
  257. {xtrack-0.74.1 → xtrack-0.74.2}/examples/monitor/003_monitors_as_beam_elements.py +0 -0
  258. {xtrack-0.74.1 → xtrack-0.74.2}/examples/monitor/004_monitor_standalone.py +0 -0
  259. {xtrack-0.74.1 → xtrack-0.74.2}/examples/multisetter/000_sps_50hz_ripple.py +0 -0
  260. {xtrack-0.74.1 → xtrack-0.74.2}/examples/multispecies_check/000_multipole.py +0 -0
  261. {xtrack-0.74.1 → xtrack-0.74.2}/examples/multispecies_check/001_bend.py +0 -0
  262. {xtrack-0.74.1 → xtrack-0.74.2}/examples/multispecies_check/002_dipole_edge.py +0 -0
  263. {xtrack-0.74.1 → xtrack-0.74.2}/examples/multispecies_check/003_quadrupole.py +0 -0
  264. {xtrack-0.74.1 → xtrack-0.74.2}/examples/multispecies_check/004_sextupole.py +0 -0
  265. {xtrack-0.74.1 → xtrack-0.74.2}/examples/multispecies_check/005_octupole.py +0 -0
  266. {xtrack-0.74.1 → xtrack-0.74.2}/examples/multispecies_check/006_cavity.py +0 -0
  267. {xtrack-0.74.1 → xtrack-0.74.2}/examples/new_madloader/001_fcc.py +0 -0
  268. {xtrack-0.74.1 → xtrack-0.74.2}/examples/new_madloader/002_ps.py +0 -0
  269. {xtrack-0.74.1 → xtrack-0.74.2}/examples/new_madloader/003_write_lhc.py +0 -0
  270. {xtrack-0.74.1 → xtrack-0.74.2}/examples/new_madloader/004_write_fcc.py +0 -0
  271. {xtrack-0.74.1 → xtrack-0.74.2}/examples/new_madloader/APERTURE_EYETS 2023-2024.seq +0 -0
  272. {xtrack-0.74.1 → xtrack-0.74.2}/examples/new_madloader/EYETS 2023-2024.seq +0 -0
  273. {xtrack-0.74.1 → xtrack-0.74.2}/examples/new_madloader/INJECTION_EYETS 2023-2024.madx +0 -0
  274. {xtrack-0.74.1 → xtrack-0.74.2}/examples/new_madloader/STANDARD_PR_YETS 2022-2023_20-MAR-2023.seq +0 -0
  275. {xtrack-0.74.1 → xtrack-0.74.2}/examples/new_madloader/plot_aperture_xsuite.py +0 -0
  276. {xtrack-0.74.1 → xtrack-0.74.2}/examples/nonlinear_lens/000_compare_against_madx.py +0 -0
  277. {xtrack-0.74.1 → xtrack-0.74.2}/examples/nonlinear_tunes/detuning.py +0 -0
  278. {xtrack-0.74.1 → xtrack-0.74.2}/examples/nonlinear_tunes/nonlinear_tunes.py +0 -0
  279. {xtrack-0.74.1 → xtrack-0.74.2}/examples/optics_correction/000_dev.py +0 -0
  280. {xtrack-0.74.1 → xtrack-0.74.2}/examples/optics_correction/001_md.py +0 -0
  281. {xtrack-0.74.1 → xtrack-0.74.2}/examples/optimize_function/000_dev.py +0 -0
  282. {xtrack-0.74.1 → xtrack-0.74.2}/examples/optimized_tracker/000_optimized_tracker.py +0 -0
  283. {xtrack-0.74.1 → xtrack-0.74.2}/examples/optimized_tracker/001_time_tracking_on_gpu.py +0 -0
  284. {xtrack-0.74.1 → xtrack-0.74.2}/examples/optimized_tracker/002_time_tracking_on_cpu.py +0 -0
  285. {xtrack-0.74.1 → xtrack-0.74.2}/examples/orbit_and_tracjectory_correction/000_closed_orbit_correction_basic.py +0 -0
  286. {xtrack-0.74.1 → xtrack-0.74.2}/examples/orbit_and_tracjectory_correction/001_closed_orbit_correction_micado.py +0 -0
  287. {xtrack-0.74.1 → xtrack-0.74.2}/examples/orbit_and_tracjectory_correction/002_closed_orbit_correction_customize.py +0 -0
  288. {xtrack-0.74.1 → xtrack-0.74.2}/examples/orbit_and_tracjectory_correction/003_closed_orbit_correction_thread.py +0 -0
  289. {xtrack-0.74.1 → xtrack-0.74.2}/examples/orbit_and_tracjectory_correction/004_thread_before_co_corr.py +0 -0
  290. {xtrack-0.74.1 → xtrack-0.74.2}/examples/orbit_and_tracjectory_correction/005_transfer_line_correction.py +0 -0
  291. {xtrack-0.74.1 → xtrack-0.74.2}/examples/orbit_and_tracjectory_correction/006_fcc.py +0 -0
  292. {xtrack-0.74.1 → xtrack-0.74.2}/examples/pipeline/000_multitracker.py +0 -0
  293. {xtrack-0.74.1 → xtrack-0.74.2}/examples/pipeline/001_tracker_only.py +0 -0
  294. {xtrack-0.74.1 → xtrack-0.74.2}/examples/print_package_paths.py +0 -0
  295. {xtrack-0.74.1 → xtrack-0.74.2}/examples/psb/000a_all_xsuite_import_model.py +0 -0
  296. {xtrack-0.74.1 → xtrack-0.74.2}/examples/psb/000b_setup_chicane.py +0 -0
  297. {xtrack-0.74.1 → xtrack-0.74.2}/examples/psb/000c_chicane_time_functions.py +0 -0
  298. {xtrack-0.74.1 → xtrack-0.74.2}/examples/psb/000d_correct_beta_beating.py +0 -0
  299. {xtrack-0.74.1 → xtrack-0.74.2}/examples/psb/000e_makethin.py +0 -0
  300. {xtrack-0.74.1 → xtrack-0.74.2}/examples/psb/000f_track.py +0 -0
  301. {xtrack-0.74.1 → xtrack-0.74.2}/examples/psb/000g_multiturn_inj.py +0 -0
  302. {xtrack-0.74.1 → xtrack-0.74.2}/examples/psb/001_compare_against_ptc.py +0 -0
  303. {xtrack-0.74.1 → xtrack-0.74.2}/examples/psb/001b_compare_against_ptc_from_json.py +0 -0
  304. {xtrack-0.74.1 → xtrack-0.74.2}/examples/psb/002_compare_fringe_implem.py +0 -0
  305. {xtrack-0.74.1 → xtrack-0.74.2}/examples/psb/003_backtrack_thick_elements.py +0 -0
  306. {xtrack-0.74.1 → xtrack-0.74.2}/examples/psb/004_dev_acceleration.py +0 -0
  307. {xtrack-0.74.1 → xtrack-0.74.2}/examples/psb/005_double_harmonic.py +0 -0
  308. {xtrack-0.74.1 → xtrack-0.74.2}/examples/psb/102_vs_ptc_approaching_half_integer.py +0 -0
  309. {xtrack-0.74.1 → xtrack-0.74.2}/examples/psb/ptc_ref.json +0 -0
  310. {xtrack-0.74.1 → xtrack-0.74.2}/examples/pyheadtail_interface/000_tracking_example_with_pyht.py +0 -0
  311. {xtrack-0.74.1 → xtrack-0.74.2}/examples/pyheadtail_interface/001_pyht_synchrotron.py +0 -0
  312. {xtrack-0.74.1 → xtrack-0.74.2}/examples/pyheadtail_interface/002_headtailInstability.py +0 -0
  313. {xtrack-0.74.1 → xtrack-0.74.2}/examples/pyheadtail_interface/003_headtailInstability_cpu_gpu.py +0 -0
  314. {xtrack-0.74.1 → xtrack-0.74.2}/examples/pyheadtail_interface/004_imped_spacech_cpu_gpu.py +0 -0
  315. {xtrack-0.74.1 → xtrack-0.74.2}/examples/pyheadtail_interface/LHC.py +0 -0
  316. {xtrack-0.74.1 → xtrack-0.74.2}/examples/pyheadtail_interface/madx_sps/lhc_q20.str +0 -0
  317. {xtrack-0.74.1 → xtrack-0.74.2}/examples/pyheadtail_interface/madx_sps/macro.madx +0 -0
  318. {xtrack-0.74.1 → xtrack-0.74.2}/examples/pyheadtail_interface/madx_sps/sps.seq +0 -0
  319. {xtrack-0.74.1 → xtrack-0.74.2}/examples/pyheadtail_interface/wakes/wakeforhdtl_PyZbase_Allthemachine_7000GeV_B1_2021_TeleIndex1_wake.dat +0 -0
  320. {xtrack-0.74.1 → xtrack-0.74.2}/examples/radial_steering/000_radial_steering.py +0 -0
  321. {xtrack-0.74.1 → xtrack-0.74.2}/examples/radial_steering/001_radial_steering_psb.py +0 -0
  322. {xtrack-0.74.1 → xtrack-0.74.2}/examples/radiation/.gitignore +0 -0
  323. {xtrack-0.74.1 → xtrack-0.74.2}/examples/radiation/002_single_dipole.py +0 -0
  324. {xtrack-0.74.1 → xtrack-0.74.2}/examples/radiation/003_kick_histogram.py +0 -0
  325. {xtrack-0.74.1 → xtrack-0.74.2}/examples/radiation/004_damping_against_madx.py +0 -0
  326. {xtrack-0.74.1 → xtrack-0.74.2}/examples/radiation/005_radiation_example.py +0 -0
  327. {xtrack-0.74.1 → xtrack-0.74.2}/examples/radiation/006_make_gaussian_bunch.py +0 -0
  328. {xtrack-0.74.1 → xtrack-0.74.2}/examples/radiation/007_record_photons.py +0 -0
  329. {xtrack-0.74.1 → xtrack-0.74.2}/examples/radiation/008_convergence_bend.py +0 -0
  330. {xtrack-0.74.1 → xtrack-0.74.2}/examples/radiation/009a_sps_with_vertical_bump.py +0 -0
  331. {xtrack-0.74.1 → xtrack-0.74.2}/examples/radiation/009b_sps_illustrate_dumping_and_excitation.py +0 -0
  332. {xtrack-0.74.1 → xtrack-0.74.2}/examples/radiation/009c_sps_single_kicker.py +0 -0
  333. {xtrack-0.74.1 → xtrack-0.74.2}/examples/radiation/009d_sps_wiggler.py +0 -0
  334. {xtrack-0.74.1 → xtrack-0.74.2}/examples/radiation/n_photons.py +0 -0
  335. {xtrack-0.74.1 → xtrack-0.74.2}/examples/radiation/t005_mad_only.py +0 -0
  336. {xtrack-0.74.1 → xtrack-0.74.2}/examples/random_number_generator/000_zero_occurrence_and_min.py +0 -0
  337. {xtrack-0.74.1 → xtrack-0.74.2}/examples/random_number_generator/001_usage_in_beam_element.py +0 -0
  338. {xtrack-0.74.1 → xtrack-0.74.2}/examples/rbendrbarc/000_dev.py +0 -0
  339. {xtrack-0.74.1 → xtrack-0.74.2}/examples/rf_track/000_toy_ring_xt.py +0 -0
  340. {xtrack-0.74.1 → xtrack-0.74.2}/examples/rf_track/001_toy_ring_rft_volume.py +0 -0
  341. {xtrack-0.74.1 → xtrack-0.74.2}/examples/rf_track/002_toy_ring_rft_element.py +0 -0
  342. {xtrack-0.74.1 → xtrack-0.74.2}/examples/rf_track/003_analysis.py +0 -0
  343. {xtrack-0.74.1 → xtrack-0.74.2}/examples/rf_track/100_particle_losses.py +0 -0
  344. {xtrack-0.74.1 → xtrack-0.74.2}/examples/rf_track/200_fodo_cell.py +0 -0
  345. {xtrack-0.74.1 → xtrack-0.74.2}/examples/rf_track/300_solenoid.py +0 -0
  346. {xtrack-0.74.1 → xtrack-0.74.2}/examples/rf_track/400_Ez_on-axis_TD26__vg1p8_r05_CC_EDMS.txt +0 -0
  347. {xtrack-0.74.1 → xtrack-0.74.2}/examples/rf_track/400_rf_fieldmap_1d.py +0 -0
  348. {xtrack-0.74.1 → xtrack-0.74.2}/examples/sequence/000_sequence.py +0 -0
  349. {xtrack-0.74.1 → xtrack-0.74.2}/examples/slipstacking/000_slip_stacking.py +0 -0
  350. {xtrack-0.74.1 → xtrack-0.74.2}/examples/slipstacking/dev.py +0 -0
  351. {xtrack-0.74.1 → xtrack-0.74.2}/examples/small_rings/000_elena_chromatic_functions.py +0 -0
  352. {xtrack-0.74.1 → xtrack-0.74.2}/examples/small_rings/001_check_against_ptc.py +0 -0
  353. {xtrack-0.74.1 → xtrack-0.74.2}/examples/small_rings/002_compare_contributions.py +0 -0
  354. {xtrack-0.74.1 → xtrack-0.74.2}/examples/small_rings/003_pimms.py +0 -0
  355. {xtrack-0.74.1 → xtrack-0.74.2}/examples/small_rings/004_pimms_extract.py +0 -0
  356. {xtrack-0.74.1 → xtrack-0.74.2}/examples/small_rings/005_pimms_extract_spiral_step.py +0 -0
  357. {xtrack-0.74.1 → xtrack-0.74.2}/examples/small_rings/006_pimms_survey.py +0 -0
  358. {xtrack-0.74.1 → xtrack-0.74.2}/examples/small_rings/007_clean_up_extraction.py +0 -0
  359. {xtrack-0.74.1 → xtrack-0.74.2}/examples/small_rings/t001_check_ps.py +0 -0
  360. {xtrack-0.74.1 → xtrack-0.74.2}/examples/solenoid/001_multipole_shifts.py +0 -0
  361. {xtrack-0.74.1 → xtrack-0.74.2}/examples/solenoid/002_multipole_rotations.py +0 -0
  362. {xtrack-0.74.1 → xtrack-0.74.2}/examples/spacecharge/000_spacecharge_example.py +0 -0
  363. {xtrack-0.74.1 → xtrack-0.74.2}/examples/spacecharge/001_spacecharge_footprint.py +0 -0
  364. {xtrack-0.74.1 → xtrack-0.74.2}/examples/spacecharge/footprint.py +0 -0
  365. {xtrack-0.74.1 → xtrack-0.74.2}/examples/symm_twiss_and_match/000_symm_twiss_and_match.py +0 -0
  366. {xtrack-0.74.1 → xtrack-0.74.2}/examples/symm_twiss_and_match/t000_test_twiss_symm.py +0 -0
  367. {xtrack-0.74.1 → xtrack-0.74.2}/examples/t007_vars_features.py +0 -0
  368. {xtrack-0.74.1 → xtrack-0.74.2}/examples/tapering/000_taper.py +0 -0
  369. {xtrack-0.74.1 → xtrack-0.74.2}/examples/tapering/001_taper_and_compare_twiss_methods.py +0 -0
  370. {xtrack-0.74.1 → xtrack-0.74.2}/examples/tapering/002_taper_coupling_check.py +0 -0
  371. {xtrack-0.74.1 → xtrack-0.74.2}/examples/tapering/003_track_no_taper.py +0 -0
  372. {xtrack-0.74.1 → xtrack-0.74.2}/examples/tapering/100_generate_fcc_line_no_rad.py +0 -0
  373. {xtrack-0.74.1 → xtrack-0.74.2}/examples/tapering/101_fccee_madx_radiation_thick.py +0 -0
  374. {xtrack-0.74.1 → xtrack-0.74.2}/examples/tapering/fccee_t.seq +0 -0
  375. {xtrack-0.74.1 → xtrack-0.74.2}/examples/taylor_map/000_line_with_maps.py +0 -0
  376. {xtrack-0.74.1 → xtrack-0.74.2}/examples/taylor_map/001_check_against_madx.py +0 -0
  377. {xtrack-0.74.1 → xtrack-0.74.2}/examples/to_json/000_lattice_to_json.py +0 -0
  378. {xtrack-0.74.1 → xtrack-0.74.2}/examples/toy_ring/000_toy_ring.py +0 -0
  379. {xtrack-0.74.1 → xtrack-0.74.2}/examples/toy_ring/000a_toy_ring_specify_s.py +0 -0
  380. {xtrack-0.74.1 → xtrack-0.74.2}/examples/toy_ring/001_analysis.py +0 -0
  381. {xtrack-0.74.1 → xtrack-0.74.2}/examples/toy_ring/002_expressions.py +0 -0
  382. {xtrack-0.74.1 → xtrack-0.74.2}/examples/toy_ring/003_slicing.py +0 -0
  383. {xtrack-0.74.1 → xtrack-0.74.2}/examples/toy_ring/004_inspect.py +0 -0
  384. {xtrack-0.74.1 → xtrack-0.74.2}/examples/toy_ring/005_insert_element.py +0 -0
  385. {xtrack-0.74.1 → xtrack-0.74.2}/examples/toy_ring/006a_dynamic_bump_sin.py +0 -0
  386. {xtrack-0.74.1 → xtrack-0.74.2}/examples/toy_ring/006b_dynamic_bump_piece_wise_linear.py +0 -0
  387. {xtrack-0.74.1 → xtrack-0.74.2}/examples/toy_ring/006c_dynamic_bump_sin_env.py +0 -0
  388. {xtrack-0.74.1 → xtrack-0.74.2}/examples/toy_ring/007_cut_at_s.py +0 -0
  389. {xtrack-0.74.1 → xtrack-0.74.2}/examples/toy_ring/008_repeated_elements_clones_replicas.py +0 -0
  390. {xtrack-0.74.1 → xtrack-0.74.2}/examples/tracker/000_track.py +0 -0
  391. {xtrack-0.74.1 → xtrack-0.74.2}/examples/tracker/001_tracker_start_stop.py +0 -0
  392. {xtrack-0.74.1 → xtrack-0.74.2}/examples/tracker/002_backtrack.py +0 -0
  393. {xtrack-0.74.1 → xtrack-0.74.2}/examples/transfer_matrix/000_basics.py +0 -0
  394. {xtrack-0.74.1 → xtrack-0.74.2}/examples/transfer_matrix/001_MuonCollider_example.py +0 -0
  395. {xtrack-0.74.1 → xtrack-0.74.2}/examples/transfer_matrix/002_check_with_twiss.py +0 -0
  396. {xtrack-0.74.1 → xtrack-0.74.2}/examples/transfer_matrix/003_check_longitudinal.py +0 -0
  397. {xtrack-0.74.1 → xtrack-0.74.2}/examples/transfer_matrix/005_radiation.py +0 -0
  398. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/000_twiss.py +0 -0
  399. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/000a_twiss_range.py +0 -0
  400. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/000b_twiss_range_periodic.py +0 -0
  401. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/000c_twiss_range_init_middle.py +0 -0
  402. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/000d_twiss_ele_co_search.py +0 -0
  403. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/000e_twiss_reverse.py +0 -0
  404. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/000f_twiss_default.py +0 -0
  405. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/001_check_against_mad.py +0 -0
  406. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/002_twiss_on_fodo.py +0 -0
  407. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/003_match_tune_chroma.py +0 -0
  408. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/003a_match_coupling.py +0 -0
  409. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/003b_match_4c_bump.py +0 -0
  410. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/003c_match_bump_with_weights.py +0 -0
  411. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/003d_match_bump_inequalities.py +0 -0
  412. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/003e_match_phase_ineq.py +0 -0
  413. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/003f_match_clone.py +0 -0
  414. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/004_twiss_b4_vs_b2.py +0 -0
  415. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/005_survey.py +0 -0
  416. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/006_survey_b4_vs_b2.py +0 -0
  417. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/007_survey_element0.py +0 -0
  418. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/008_4d_twiss_and_particle_match.py +0 -0
  419. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/009_twiss_zeta0_delta0.py +0 -0
  420. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/010_coupled_beta.py +0 -0
  421. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/011_tune_vs_delta.py +0 -0
  422. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/012_compute_norm_coordinates.py +0 -0
  423. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/013_R_matrix_between_two_points.py +0 -0
  424. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/014_check_W_propagation.py +0 -0
  425. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/015_remove_thin_groups.py +0 -0
  426. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/016_local_twiss.py +0 -0
  427. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/017_table_slicing.py +0 -0
  428. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/018_compute_beam_sizes.py +0 -0
  429. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/021_time_small_twiss.py +0 -0
  430. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/022_custom_twiss_init.py +0 -0
  431. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/023_build_chroma_knob.py +0 -0
  432. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/026a_chromatic_functions.py +0 -0
  433. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/026b_chromatic_functions_vs_madx.py +0 -0
  434. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/026c_measure_triplet_chromaticity.py +0 -0
  435. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/026d_match_w_chrom.py +0 -0
  436. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/027_optics_from_sigma_mat.py +0 -0
  437. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/028_ddx_ddqx.py +0 -0
  438. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/029_strengths_in_twiss.py +0 -0
  439. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/030_one_turn_arbitrary_start.py +0 -0
  440. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/031_twiss_plot.py +0 -0
  441. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/032_twiss_with_collective.py +0 -0
  442. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/t000_mem_issue.py +0 -0
  443. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss/t003f_match_clone_checks.py +0 -0
  444. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss_multiturn/000_sps.py +0 -0
  445. {xtrack-0.74.1 → xtrack-0.74.2}/examples/twiss_multiturn/001_ps.py +0 -0
  446. {xtrack-0.74.1 → xtrack-0.74.2}/pyproject.toml +0 -0
  447. {xtrack-0.74.1 → xtrack-0.74.2}/release.sh +0 -0
  448. {xtrack-0.74.1 → xtrack-0.74.2}/setup.cfg +0 -0
  449. {xtrack-0.74.1 → xtrack-0.74.2}/setup.py +0 -0
  450. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/clic_dr/000_make_lines.py +0 -0
  451. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/clic_dr/line.json +0 -0
  452. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/clic_dr/line_for_taper.json +0 -0
  453. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/clic_dr/sequence.madx +0 -0
  454. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/elena/elena.seq +0 -0
  455. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/elena/highenergy.beam +0 -0
  456. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/elena/highenergy.str +0 -0
  457. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/fcc_ee/000_build_xsuite_model.py +0 -0
  458. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/fcc_ee/Bz_closed_before_quads.dat +0 -0
  459. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/fcc_ee/fccee_h.seq +0 -0
  460. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/fcc_ee/fccee_h_thin.json +0 -0
  461. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/fcc_ee/fccee_t.seq +0 -0
  462. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/fcc_ee/fccee_w.seq +0 -0
  463. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/fcc_ee/fccee_z.seq +0 -0
  464. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/fcc_ee/install_wigglers.madx +0 -0
  465. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/fringe_vs_madng/.gitignore +0 -0
  466. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/fringe_vs_madng/fringe.lua +0 -0
  467. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/fringe_vs_madng/fringe_vs_madng.py +0 -0
  468. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/fringe_vs_madng/initial_particles.json +0 -0
  469. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/fringe_vs_madng/octupole_fringe.json +0 -0
  470. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/fringe_vs_madng/quadrupole_fringe.json +0 -0
  471. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/fringe_vs_madng/sextupole_fringe.json +0 -0
  472. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/h6_experimental_line/h6-fm.str +0 -0
  473. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/h6_experimental_line/h6fm04.seq +0 -0
  474. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc14_input_mad/.gitignore +0 -0
  475. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc14_input_mad/final_errors.tfs +0 -0
  476. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc14_input_mad/final_seq.madx +0 -0
  477. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc14_input_mad/from_pymask/000_pymask.py +0 -0
  478. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc14_input_mad/from_pymask/config.yaml +0 -0
  479. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc14_input_mad/from_pymask/optics_specific_tools.py +0 -0
  480. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc14_no_errors_with_coupling_knobs/000_generate_line_jsons.py +0 -0
  481. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc14_no_errors_with_coupling_knobs/lhcb1_seq.madx +0 -0
  482. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc14_no_errors_with_coupling_knobs/lhcb4_seq.madx +0 -0
  483. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc14_no_errors_with_coupling_knobs/line_b1.json +0 -0
  484. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc14_no_errors_with_coupling_knobs/line_b4.json +0 -0
  485. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc15_collider/collider_00_from_mad.json +0 -0
  486. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc15_collider/get_from_xmask.sh +0 -0
  487. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc15_noerrors_nobb/000_sequence_from_optics_repo.py +0 -0
  488. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc15_noerrors_nobb/001_xtline_from_madseq.py +0 -0
  489. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc15_noerrors_nobb/002_thick_sequence_from_optics_repo.py +0 -0
  490. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc15_noerrors_nobb/line_and_particle.json +0 -0
  491. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc15_noerrors_nobb/line_w_knobs_and_particle.json +0 -0
  492. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc15_noerrors_nobb/sequence.madx +0 -0
  493. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc15_noerrors_nobb/sequence_b4.madx +0 -0
  494. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc15_noerrors_nobb/sequence_with_crabs.madx +0 -0
  495. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc15_thick/000_build_thick_line.py +0 -0
  496. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc15_thick/001_build_thick_collider.py +0 -0
  497. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc15_thick/hllhc15_collider_thick.json +0 -0
  498. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc15_thick/hllhc15_collider_thick_legacy_multiline.json +0 -0
  499. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc15_thick/hllhc_sequence.madx +0 -0
  500. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc15_thick/lhc.seq +0 -0
  501. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc15_thick/lhc_thick_with_knobs.json +0 -0
  502. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc15_thick/lhcb4.seq +0 -0
  503. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc15_thick/opt_round_150_1500.madx +0 -0
  504. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc15_thick/opt_round_300_1500.madx +0 -0
  505. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc_14/000_test_against_sixtrack_and_save_line.py +0 -0
  506. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc_14/fort.2 +0 -0
  507. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc_14/fort.3 +0 -0
  508. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc_14/line_and_particle.json +0 -0
  509. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/hllhc_14/runsix +0 -0
  510. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/leir/leir.seq +0 -0
  511. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/leir/leir_inj_nominal.beam +0 -0
  512. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/leir/leir_inj_nominal.str +0 -0
  513. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/lhc_no_bb/000_make_line.py +0 -0
  514. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/lhc_no_bb/fort.16 +0 -0
  515. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/lhc_no_bb/fort.2 +0 -0
  516. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/lhc_no_bb/fort.3 +0 -0
  517. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/lhc_no_bb/fort.8 +0 -0
  518. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/lhc_no_bb/line_and_particle.json +0 -0
  519. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/lhc_no_bb/runsix +0 -0
  520. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/lhc_no_bb/sixtrack_timing/fort.16 +0 -0
  521. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/lhc_no_bb/sixtrack_timing/fort.2 +0 -0
  522. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/lhc_no_bb/sixtrack_timing/fort.3 +0 -0
  523. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/lhc_no_bb/sixtrack_timing/fort.8 +0 -0
  524. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/lhc_no_bb/sixtrack_timing/sim_time.dat +0 -0
  525. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/lhc_with_bb/000_generate_line.py +0 -0
  526. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/lhc_with_bb/fort.16 +0 -0
  527. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/lhc_with_bb/fort.2 +0 -0
  528. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/lhc_with_bb/fort.3 +0 -0
  529. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/lhc_with_bb/fort.8 +0 -0
  530. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/lhc_with_bb/line_and_particle.json +0 -0
  531. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/lhc_with_bb/runsix +0 -0
  532. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/pimms/PIMM.seq +0 -0
  533. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/pimms/PIMMS.seq +0 -0
  534. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/pimms/betatron.str +0 -0
  535. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/ps_sftpro/ps.seq +0 -0
  536. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/ps_sftpro/ps_hs_sftpro.str +0 -0
  537. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/psb_chicane/README +0 -0
  538. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/psb_chicane/Ramp_and_RF_functions.dat +0 -0
  539. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/psb_chicane/chicane_collapse.csv +0 -0
  540. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/psb_chicane/inj_distrib.dat +0 -0
  541. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/psb_chicane/psb.seq +0 -0
  542. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/psb_chicane/psb_fb_lhc.str +0 -0
  543. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/psb_chicane/ptc_ref.json +0 -0
  544. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/psb_injection/000_generate_xsuite_line.py +0 -0
  545. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/psb_injection/line_and_particle.json +0 -0
  546. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/psb_injection/psb_injection.seq +0 -0
  547. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/sps_ions/000_make_line.py +0 -0
  548. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/sps_ions/SPS_2021_Pb_ions_thin_test.seq +0 -0
  549. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/sps_ions/line_and_particle.json +0 -0
  550. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/sps_thick/aperturedb_classes.madx +0 -0
  551. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/sps_thick/aperturedb_elements.madx +0 -0
  552. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/sps_thick/lhc_q20.str +0 -0
  553. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/sps_thick/sps.seq +0 -0
  554. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/sps_to_lhc_ti2/ti2.seq +0 -0
  555. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/sps_to_lhc_ti2/ti2_liu.str +0 -0
  556. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/sps_w_spacecharge/000_prepare_line.py +0 -0
  557. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/sps_w_spacecharge/line_no_spacecharge_and_particle.json +0 -0
  558. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/sps_w_spacecharge/line_with_spacecharge_and_particle.json +0 -0
  559. {xtrack-0.74.1 → xtrack-0.74.2}/test_data/sps_w_spacecharge/sps_thin.seq +0 -0
  560. {xtrack-0.74.1 → xtrack-0.74.2}/tests/conftest.py +0 -0
  561. {xtrack-0.74.1 → xtrack-0.74.2}/tests/pytest_onebyone.sh +0 -0
  562. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_acceleration.py +0 -0
  563. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_amplitude_detuning.py +0 -0
  564. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
  565. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_apertures.py +0 -0
  566. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_cavity_absolute_time.py +0 -0
  567. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_chromatic_functions_vs_madx.py +0 -0
  568. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_coasting.py +0 -0
  569. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_collective_tracker.py +0 -0
  570. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_collimation.py +0 -0
  571. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_element_characterization_functions.py +0 -0
  572. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_element_internal_record.py +0 -0
  573. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_elements.py +0 -0
  574. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_elements_classflags.py +0 -0
  575. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_fcc_ee_solenoid_correction.py +0 -0
  576. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
  577. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_footprint.py +0 -0
  578. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_freeze_longitudinal.py +0 -0
  579. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_full_rings.py +0 -0
  580. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_h6_sps_beamline.py +0 -0
  581. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_hvkick.py +0 -0
  582. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_ions.py +0 -0
  583. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_legacy_multiline_to_env.py +0 -0
  584. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_lhc_env.py +0 -0
  585. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_lhc_match_phase_15.py +0 -0
  586. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_line.py +0 -0
  587. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_lumi.py +0 -0
  588. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_mad_writer.py +0 -0
  589. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_madloader.py +0 -0
  590. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_madnginterface.py +0 -0
  591. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_match_and_track_from_element.py +0 -0
  592. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_match_coupling_knob.py +0 -0
  593. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_match_nested.py +0 -0
  594. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_match_optics_and_ip_knob.py +0 -0
  595. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
  596. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_match_orbit_bump.py +0 -0
  597. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_match_tune_chroma_cminus.py +0 -0
  598. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_monitor.py +0 -0
  599. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_multiline.py +0 -0
  600. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_multisetter.py +0 -0
  601. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_multispecies.py +0 -0
  602. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_new_madloader.py +0 -0
  603. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_particles_api.py +0 -0
  604. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_periodic_symmetric_twiss_and_match.py +0 -0
  605. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_pipeline.py +0 -0
  606. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_prebuild_kernels.py +0 -0
  607. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_ps_against_ptc.py +0 -0
  608. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_ps_multiturn_twiss.py +0 -0
  609. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_psb_chicane.py +0 -0
  610. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_pyht_interface.py +0 -0
  611. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_radial_steering.py +0 -0
  612. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_radiation.py +0 -0
  613. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_radiation_equilibrium_emittances.py +0 -0
  614. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_random_gen.py +0 -0
  615. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_random_gen_exp.py +0 -0
  616. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_random_gen_gauss.py +0 -0
  617. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_random_gen_ruth.py +0 -0
  618. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_rbend_rbarc.py +0 -0
  619. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_rf_track.py +0 -0
  620. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_rotation_signs.py +0 -0
  621. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_second_order_taylor_map.py +0 -0
  622. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_seeds.py +0 -0
  623. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_slice_and_insert_with_replicas.py +0 -0
  624. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_slice_elements.py +0 -0
  625. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_slicing.py +0 -0
  626. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
  627. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_spacecharge_in_ring.py +0 -0
  628. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_sps_thick.py +0 -0
  629. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_survey.py +0 -0
  630. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_tapering.py +0 -0
  631. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_thick_lhc.py +0 -0
  632. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_tilt_shifts.py +0 -0
  633. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_tracker.py +0 -0
  634. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_trajectory_correcton.py +0 -0
  635. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_twiss.py +0 -0
  636. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_twiss_vs_madx_psb.py +0 -0
  637. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_vs_madx.py +0 -0
  638. {xtrack-0.74.1 → xtrack-0.74.2}/tests/test_xmask_orbit_correction.py +0 -0
  639. {xtrack-0.74.1 → xtrack-0.74.2}/update_cprght_statement.py +0 -0
  640. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/__init__.py +0 -0
  641. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/_temp/__init__.py +0 -0
  642. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
  643. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
  644. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
  645. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/_temp/lhc_match/__init__.py +0 -0
  646. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
  647. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
  648. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/_temp/lhc_match/var_limits.py +0 -0
  649. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/base_element.py +0 -0
  650. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/__init__.py +0 -0
  651. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/apertures.py +0 -0
  652. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
  653. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
  654. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
  655. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
  656. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
  657. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
  658. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/beam_interaction.py +0 -0
  659. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/bend.h +0 -0
  660. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/cavity.h +0 -0
  661. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/dipole_fringe.h +0 -0
  662. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/dipoleedge.h +0 -0
  663. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/drift.h +0 -0
  664. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/drift_elem.h +0 -0
  665. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/drift_slice.h +0 -0
  666. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/drift_slice_bend.h +0 -0
  667. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +0 -0
  668. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +0 -0
  669. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/drift_slice_rbend.h +0 -0
  670. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +0 -0
  671. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/elens.h +0 -0
  672. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/exciter.h +0 -0
  673. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
  674. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
  675. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/multipole.h +0 -0
  676. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
  677. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/octupole.h +0 -0
  678. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/quadrupole.h +0 -0
  679. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/rbend.h +0 -0
  680. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
  681. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
  682. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
  683. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/sextupole.h +0 -0
  684. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
  685. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
  686. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/solenoid.h +0 -0
  687. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/srotation.h +0 -0
  688. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/thick_slice_bend.h +0 -0
  689. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/thick_slice_drift.h +0 -0
  690. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +0 -0
  691. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +0 -0
  692. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/thick_slice_rbend.h +0 -0
  693. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +0 -0
  694. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/thick_slice_solenoid.h +0 -0
  695. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/thin_slice_bend.h +0 -0
  696. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +0 -0
  697. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +0 -0
  698. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +0 -0
  699. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +0 -0
  700. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/thin_slice_rbend.h +0 -0
  701. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +0 -0
  702. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +0 -0
  703. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +0 -0
  704. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/track_bend.h +0 -0
  705. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
  706. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
  707. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +0 -0
  708. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/track_mult_fringe.h +0 -0
  709. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/track_multipolar_components.h +0 -0
  710. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/track_multipole.h +0 -0
  711. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/track_quadrupole.h +0 -0
  712. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/track_solenoid.h +0 -0
  713. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
  714. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
  715. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
  716. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/track_wedge.h +0 -0
  717. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/track_xrotation.h +0 -0
  718. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
  719. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/wedge.h +0 -0
  720. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/wire.h +0 -0
  721. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
  722. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
  723. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
  724. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
  725. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/exciter.py +0 -0
  726. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/rft_element.py +0 -0
  727. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/slice_elements.py +0 -0
  728. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/beam_elements/slice_elements_thick.py +0 -0
  729. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/environment.py +0 -0
  730. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/footprint.py +0 -0
  731. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/general.py +0 -0
  732. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/headers/atomicadd.h +0 -0
  733. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/headers/checks.h +0 -0
  734. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/headers/constants.h +0 -0
  735. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/headers/particle_states.h +0 -0
  736. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/headers/synrad_spectrum.h +0 -0
  737. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/internal_record.py +0 -0
  738. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/json.py +0 -0
  739. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/line.py +0 -0
  740. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/linear_normal_form.py +0 -0
  741. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/loss_location_refinement/__init__.py +0 -0
  742. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
  743. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/lumi.py +0 -0
  744. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/mad_parser/__init__.py +0 -0
  745. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/mad_parser/env_writer.py +0 -0
  746. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/mad_parser/loader.py +0 -0
  747. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/mad_parser/madx.lark +0 -0
  748. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/mad_parser/parse.py +0 -0
  749. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/mad_writer.py +0 -0
  750. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/madng_interface.py +0 -0
  751. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/match.py +0 -0
  752. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/monitors/__init__.py +0 -0
  753. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/monitors/beam_position_monitor.h +0 -0
  754. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/monitors/beam_position_monitor.py +0 -0
  755. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/monitors/beam_profile_monitor.h +0 -0
  756. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/monitors/beam_profile_monitor.py +0 -0
  757. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/monitors/beam_size_monitor.h +0 -0
  758. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/monitors/beam_size_monitor.py +0 -0
  759. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/monitors/last_turns_monitor.h +0 -0
  760. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/monitors/last_turns_monitor.py +0 -0
  761. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/monitors/particles_monitor.h +0 -0
  762. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/monitors/particles_monitor.py +0 -0
  763. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/multiline.py +0 -0
  764. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/multiline_legacy/__init__.py +0 -0
  765. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/multiline_legacy/multiline_legacy.py +0 -0
  766. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/multiline_legacy/shared_knobs.py +0 -0
  767. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/multisetter/__init__.py +0 -0
  768. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/multisetter/multisetter.py +0 -0
  769. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/particles/__init__.py +0 -0
  770. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/particles/constants.py +0 -0
  771. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/particles/particles.py +0 -0
  772. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/particles/rng_src/base_rng.h +0 -0
  773. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/particles/rng_src/particles_rng.h +0 -0
  774. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/pipeline/__init__.py +0 -0
  775. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/pipeline/core.py +0 -0
  776. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/pipeline/manager.py +0 -0
  777. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/pipeline/multitracker.py +0 -0
  778. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/progress_indicator.py +0 -0
  779. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/random/__init__.py +0 -0
  780. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/random/random_generators.py +0 -0
  781. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/random/random_src/exponential.h +0 -0
  782. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
  783. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/random/random_src/normal.h +0 -0
  784. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/random/random_src/rutherford.h +0 -0
  785. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/random/random_src/uniform.h +0 -0
  786. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/random/random_src/uniform_accurate.h +0 -0
  787. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/slicing.py +0 -0
  788. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/survey.py +0 -0
  789. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/synctime.py +0 -0
  790. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/tapering.py +0 -0
  791. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/targets.py +0 -0
  792. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/tracker.py +0 -0
  793. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/tracker_data.py +0 -0
  794. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/tracker_src/tracker.h +0 -0
  795. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/trajectory_correction.py +0 -0
  796. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/twiss.py +0 -0
  797. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack/twissplot.py +0 -0
  798. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack.egg-info/SOURCES.txt +0 -0
  799. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack.egg-info/dependency_links.txt +0 -0
  800. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack.egg-info/requires.txt +0 -0
  801. {xtrack-0.74.1 → xtrack-0.74.2}/xtrack.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xtrack
3
- Version: 0.74.1
3
+ Version: 0.74.2
4
4
  Summary: Tracking library for particle accelerators
5
5
  Home-page: https://xsuite.readthedocs.io/
6
6
  Download-URL: https://pypi.python.org/pypi/xtrack
@@ -7,7 +7,7 @@ assert_allclose = np.testing.assert_allclose
7
7
 
8
8
  def _make_line_no_expressions():
9
9
  bend = xt.Bend(
10
- k0=0.4, h=0.3, length=1,
10
+ k0=0.4, angle=0.3, length=1,
11
11
  shift_x=1e-3, shift_y=2e-3, shift_s=2e-3, rot_s_rad=0.2,
12
12
  k1=0.1,
13
13
  knl=[0.7, 0.8, 0.9, 1.0], ksl=[0.1, 0.2, 0.3, 0.4])
@@ -37,7 +37,7 @@ def _make_line_with_expressions():
37
37
  line = xt.Line(elements=[bend, quad, sext, octu, mult, drift, xt.Replica(parent_name='e0')])
38
38
 
39
39
  line.vars['k0_bend'] = 999.
40
- line.vars['h_bend'] = 999.
40
+ line.vars['angle_bend'] = 999.
41
41
  line.vars['length_bend'] = 999.
42
42
  line.vars['shift_x_bend'] = 999.
43
43
  line.vars['shift_y_bend'] = 999.
@@ -95,7 +95,7 @@ def _make_line_with_expressions():
95
95
  line.vars['length_drift'] = 999.
96
96
 
97
97
  line.element_refs['e0'].k0 = line.vars['k0_bend']
98
- line.element_refs['e0'].h = line.vars['h_bend']
98
+ line.element_refs['e0'].angle = line.vars['angle_bend']
99
99
  line.element_refs['e0'].length = line.vars['length_bend']
100
100
  line.element_refs['e0'].shift_x = line.vars['shift_x_bend']
101
101
  line.element_refs['e0'].shift_y = line.vars['shift_y_bend']
@@ -156,7 +156,7 @@ def _make_line_with_expressions():
156
156
 
157
157
  def _set_vars(line):
158
158
  line.vars['k0_bend'] = 0.4
159
- line.vars['h_bend'] = 0.3
159
+ line.vars['angle_bend'] = 0.3
160
160
  line.vars['length_bend'] = 1
161
161
  line.vars['shift_x_bend'] = 1e-3
162
162
  line.vars['shift_y_bend'] = 2e-3
@@ -179,32 +179,30 @@ def test_combined_function_dipole_expanded(test_context):
179
179
  def test_thick_bend_survey():
180
180
  circumference = 10
181
181
  rho = circumference / (2 * np.pi)
182
- h = 1 / rho
183
182
  k = 1 / rho
184
183
 
185
184
  p0 = xp.Particles(p0c=7e12, mass0=xp.PROTON_MASS_EV, x=0.7, px=-0.4, delta=0.0)
186
185
 
187
- el = xt.Bend(k0=k, h=h, length=circumference)
186
+ el = xt.Bend(k0=k, angle=2 * np.pi, length=circumference)
188
187
  line = xt.Line(elements=[el])
189
188
  line.reset_s_at_end_turn = False
190
189
  line.build_tracker()
191
190
 
192
- s_array = np.linspace(0, circumference, 1000)
191
+ theta_array = np.linspace(0, 2 * np.pi, 1000)
193
192
 
194
- X0_array = np.zeros_like(s_array)
195
- Z0_array = np.zeros_like(s_array)
193
+ X0_array = np.zeros_like(theta_array)
194
+ Z0_array = np.zeros_like(theta_array)
196
195
 
197
- X_array = np.zeros_like(s_array)
198
- Z_array = np.zeros_like(s_array)
196
+ X_array = np.zeros_like(theta_array)
197
+ Z_array = np.zeros_like(theta_array)
199
198
 
200
- for ii, s in enumerate(s_array):
199
+ for ii, theta in enumerate(theta_array):
201
200
  p = p0.copy()
202
201
 
203
- el.length = s
202
+ el.angle = theta
203
+ el.length = rho * theta
204
204
  line.track(p)
205
205
 
206
- theta = s / rho
207
-
208
206
  X0 = -rho * (1 - np.cos(theta))
209
207
  Z0 = rho * np.sin(theta)
210
208
 
@@ -295,6 +293,188 @@ def test_thick_multipolar_component(test_context, element_type, h):
295
293
  )
296
294
 
297
295
 
296
+ @pytest.mark.parametrize(
297
+ 'kwargs',
298
+ [
299
+ {},
300
+ {'length': 2, 'angle': 0.1, 'h': 0.05},
301
+ {'length': 2, 'angle': 0.1, 'h': 0.1},
302
+ {'length': 2, 'angle': 0.1},
303
+ {'length': 2, 'h': 0.1},
304
+ {'length': 2},
305
+ {'angle': 0.1, 'h': 0.05},
306
+ ],
307
+ ids=['none', 'all', 'inconsistent', 'no_h', 'no_angle', 'only_length', 'no_length'],
308
+ )
309
+ @pytest.mark.parametrize('scenario', ['vanilla', 'env'])
310
+ def test_bend_param_handling(kwargs, scenario):
311
+ def make_bend():
312
+ if scenario == 'vanilla':
313
+ return xt.Bend(**kwargs)
314
+
315
+ if scenario == 'env':
316
+ env = xt.Environment()
317
+ env.new('bend', 'Bend', **kwargs)
318
+ return env['bend']
319
+
320
+ input_is_consistent = True
321
+ if len(kwargs) == 3 and not np.isclose(
322
+ kwargs['angle'], kwargs['length'] * kwargs['h'], rtol=0, atol=1e-13):
323
+ input_is_consistent = False
324
+
325
+ if not input_is_consistent:
326
+ with pytest.raises(ValueError):
327
+ _ = make_bend()
328
+ return
329
+ else:
330
+ bend = make_bend()
331
+
332
+ for key, value in kwargs.items():
333
+ assert getattr(bend, key) == value
334
+
335
+ assert bend.length == kwargs.get('length', 0)
336
+
337
+ if 'angle' in kwargs:
338
+ assert bend.angle == kwargs['angle']
339
+
340
+ if 'h' in kwargs:
341
+ assert bend.h == kwargs['h']
342
+
343
+ assert bend.angle == bend.length * bend.h or bend.length == 0
344
+
345
+
346
+ @pytest.mark.parametrize(
347
+ 'kwargs, expected',
348
+ [
349
+ ({}, {'length': 10, 'angle': 0.2, 'h': 0.02}),
350
+ ({'length': 2, 'angle': 0.1, 'h': 0.05}, {'length': 2, 'angle': 0.1, 'h': 0.05}),
351
+ ({'length': 2, 'angle': 0.1, 'h': 0.1}, {'length': 2, 'angle': 0.2, 'h': 0.1}), # order matters
352
+ ({'length': 2, 'angle': 0.1}, {'length': 2, 'angle': 0.1, 'h': 0.05}),
353
+ ({'length': 2, 'h': 0.05}, {'length': 2, 'angle': 0.1, 'h': 0.05}),
354
+ ({'length': 2}, {'length': 2, 'angle': 0.2, 'h': 0.1}), # keeps angle
355
+ ({'h': 0.05, 'angle': 0.1}, {'length': 10, 'angle': 0.1, 'h': 0.01}), # order matters
356
+ ],
357
+ ids=['none', 'all', 'h_after_angle', 'no_h', 'no_angle', 'only_length', 'angle_after_h'],
358
+ )
359
+ def test_bend_param_handling_set_after(kwargs, expected):
360
+ bend = xt.Bend(length=10, angle=0.2)
361
+ assert bend.h == 0.02
362
+
363
+ for key, value in kwargs.items():
364
+ setattr(bend, key, value)
365
+
366
+ for key, value in expected.items():
367
+ assert getattr(bend, key) == value
368
+
369
+ assert bend.angle == bend.length * bend.h or bend.length == 0
370
+
371
+
372
+ @pytest.mark.parametrize(
373
+ 'kwargs',
374
+ [
375
+ {'length': 2, 'angle': 0.4, 'h': 0.2, 'length_straight': 1.986693307950612},
376
+ {'length': 2, 'angle': 0.4, 'h': 0.2},
377
+ {'length': 2, 'h': 0.2},
378
+ {'length': 2, 'angle': 0.4},
379
+ {'angle': 0.4, 'h': 0.2, 'length_straight': 1.986693307950612},
380
+ {'h': 0.2, 'length_straight': 1.986693307950612},
381
+ {'angle': 0.4, 'length_straight': 1.986693307950612},
382
+ {'length': 2, 'length_straight': 2},
383
+ {'length': 2},
384
+ {'length_straight': 2},
385
+ {'angle': 0.4, 'h': 0.2},
386
+ {'angle': 0.4},
387
+ {'h': 0.2},
388
+ # Inconsistent
389
+ {'length': 2, 'angle': 0.4, 'h': 0.4, 'length_straight': 2, 'error': True},
390
+ {'length': 2, 'angle': 0.4, 'h': 0.4, 'error': True},
391
+ {'angle': 0.4, 'h': 0.4, 'length_straight': 2, 'error': True},
392
+ {'length': 2, 'angle': 0.4, 'length_straight': 2, 'error': True},
393
+ {'length': 2, 'h': 0.4, 'length_straight': 2, 'error': True},
394
+ ],
395
+ ids=[
396
+ 'all', 'len_ang_h', 'len_h', 'len_ang', 'ls_ang_h', 'ls_h', 'ls_ang',
397
+ 'only_lengths', 'only_len', 'only_ls', 'angle_h', 'only_angle', 'only_h',
398
+ 'bad_all', 'bad_len', 'bad_ls', 'bad_ang', 'bad_h',
399
+ ],
400
+ )
401
+ @pytest.mark.parametrize('scenario', ['vanilla', 'env'])
402
+ def test_rbend_param_handling(kwargs, scenario):
403
+ kwargs = kwargs.copy() # otherwise we change the dict in parametrize
404
+ should_fail = kwargs.pop('error', False)
405
+
406
+ def make_bend():
407
+ if scenario == 'vanilla':
408
+ return xt.RBend(**kwargs)
409
+
410
+ if scenario == 'env':
411
+ env = xt.Environment()
412
+ env.new('bend', 'RBend', **kwargs)
413
+ return env['bend']
414
+
415
+ if should_fail:
416
+ with pytest.raises(ValueError):
417
+ _ = make_bend()
418
+ return
419
+ else:
420
+ bend = make_bend()
421
+
422
+ def same(a, b):
423
+ return np.isclose(a, b, rtol=0, atol=1e-13)
424
+
425
+ for key, value in kwargs.items():
426
+ assert same(getattr(bend, key), value)
427
+
428
+ assert same(bend.angle, bend.length * bend.h) or (bend.length == 0 and bend.length_straight == 0)
429
+ assert same(bend.length, bend.length_straight / np.sinc(0.5 * bend.angle / np.pi))
430
+
431
+ if 'h' not in kwargs and 'angle' not in kwargs:
432
+ assert same(bend.length, bend.length_straight)
433
+
434
+ if 'length' not in kwargs and 'length_straight' not in kwargs:
435
+ if 'h' not in kwargs:
436
+ assert same(bend.h, 0)
437
+ if 'angle' not in kwargs:
438
+ assert same(bend.angle, 0)
439
+
440
+
441
+ def test_rbend_param_handling_set_after():
442
+ # This test is a bit less meaningful as there are a lot of combinations
443
+ # that lead to unintuitive, but valid, results
444
+
445
+ def assert_eq(a, b):
446
+ xo.assert_allclose(a, b, rtol=0, atol=1e-15)
447
+
448
+ bend = xt.RBend(length=10, angle=0.2)
449
+ assert bend.h == 0.02
450
+ assert_eq(bend.length_straight, 9.983341664682815)
451
+
452
+ bend.angle = 0.4
453
+ assert bend.angle == 0.4
454
+ assert_eq(bend.length_straight, 9.983341664682815) # unchanged
455
+ assert_eq(bend.length, 10.050209184004554)
456
+ assert_eq(bend.h, 0.039800166611121034)
457
+ bend.angle = 0.2
458
+
459
+ bend.length_straight = 10
460
+ assert bend.angle == 0.2
461
+ assert bend.length_straight == 10
462
+ assert_eq(bend.length, 10.016686131634778)
463
+ assert_eq(bend.h, 0.01996668332936563)
464
+
465
+ bend.length = 10
466
+ assert bend.angle == 0.2
467
+ assert bend.length == 10
468
+ assert bend.h == 0.02
469
+ assert_eq(bend.length_straight, 9.983341664682815)
470
+
471
+ bend.h = 0.01
472
+ assert bend.h == 0.01
473
+ assert_eq(bend.length_straight, 9.983341664682815)
474
+ assert_eq(bend.angle, 0.09987492198591705)
475
+ assert_eq(bend.length, 9.987492198591704)
476
+
477
+
298
478
  @for_all_test_contexts
299
479
  @pytest.mark.parametrize(
300
480
  'param_scenario', ['length', 'length_straight', 'both', 'mismatched'],
@@ -89,15 +89,15 @@ def test_vars_and_element_access_modes(container_type):
89
89
  })
90
90
 
91
91
  env.new('bb', xt.Bend, k0='2 * b', length=3+env.vars['a'] + env.vars['b'],
92
- h=5.)
92
+ angle=5.)
93
93
  assert env['bb'].k0 == 2 * (2 * 4 + 5)
94
94
  assert env['bb'].length == 3 + 4 + 2 * 4 + 5
95
- assert env['bb'].h == 5.
95
+ assert env['bb'].angle == 5.
96
96
 
97
97
  env.vars['a'] = 2.
98
98
  assert env['bb'].k0 == 2 * (2 * 2 + 5)
99
99
  assert env['bb'].length == 3 + 2 + 2 * 2 + 5
100
- assert env['bb'].h == 5.
100
+ assert env['bb'].angle == 5.
101
101
 
102
102
  line = env.new_line([
103
103
  env.new('bb1', 'bb', length=3*env.vars['a'], at='2*a'),
@@ -120,11 +120,11 @@ def test_vars_and_element_access_modes(container_type):
120
120
  a = env.vv['a']
121
121
  assert line['bb1'].length == 3 * a
122
122
  assert line['bb1'].k0 == 2 * (2 * a + 5)
123
- assert line['bb1'].h == 5.
123
+ assert line['bb1'].angle == 5.
124
124
 
125
125
  assert line['bb'].k0 == 2 * (2 * a + 5)
126
126
  assert line['bb'].length == 3 + a + 2 * a + 5
127
- assert line['bb'].h == 5.
127
+ assert line['bb'].angle == 5.
128
128
 
129
129
  tt = line.get_table(attr=True)
130
130
  tt['s_center'] = tt['s'] + tt['length']/2
@@ -139,11 +139,11 @@ def test_vars_and_element_access_modes(container_type):
139
139
  a = line.vv['a']
140
140
  assert line['bb1'].length == 3 * a
141
141
  assert line['bb1'].k0 == 2 * (2 * a + 5)
142
- assert line['bb1'].h == 5.
142
+ assert line['bb1'].angle == 5.
143
143
 
144
144
  assert line['bb'].k0 == 2 * (2 * a + 5)
145
145
  assert line['bb'].length == 3 + a + 2 * a + 5
146
- assert line['bb'].h == 5.
146
+ assert line['bb'].angle == 5.
147
147
 
148
148
  tt_new = line.get_table(attr=True)
149
149
 
@@ -0,0 +1 @@
1
+ __version__ = '0.74.2'
@@ -2,8 +2,7 @@
2
2
  # This file is part of the Xtrack Package. #
3
3
  # Copyright (c) CERN, 2021. #
4
4
  # ######################################### #
5
- from re import error
6
- from typing import List, Optional
5
+ from typing import List
7
6
 
8
7
  import numpy as np
9
8
  from numbers import Number
@@ -713,6 +712,7 @@ class _BendCommon:
713
712
  'k0': xo.Float64,
714
713
  'k1': xo.Float64,
715
714
  'h': xo.Float64,
715
+ 'angle': xo.Float64,
716
716
  'length': xo.Float64,
717
717
  'model': xo.Int64,
718
718
  'edge_entry_active': xo.Field(xo.Int64, default=1),
@@ -732,7 +732,7 @@ class _BendCommon:
732
732
  'inv_factorial_order': xo.Float64,
733
733
  'knl': xo.Float64[:],
734
734
  'ksl': xo.Float64[:],
735
- 'k0_from_h': xo.UInt8,
735
+ 'k0_from_h': xo.UInt64,
736
736
  }
737
737
 
738
738
  _common_rename = {
@@ -742,6 +742,9 @@ class _BendCommon:
742
742
  'edge_exit_model': '_edge_exit_model',
743
743
  'k0': '_k0',
744
744
  'k0_from_h': '_k0_from_h',
745
+ 'angle': '_angle',
746
+ 'length': '_length',
747
+ 'h': '_h',
745
748
  }
746
749
 
747
750
  _common_c_sources = [
@@ -970,7 +973,7 @@ class Bend(_BendCommon, BeamElement):
970
973
  _pkg_root.joinpath('beam_elements/elements_src/bend.h'),
971
974
  ]
972
975
 
973
- def __init__(self, angle=None, order=None, knl: List[float]=None, ksl: List[float]=None, **kwargs):
976
+ def __init__(self, order=None, knl: List[float]=None, ksl: List[float]=None, **kwargs):
974
977
 
975
978
  if '_xobject' in kwargs.keys() and kwargs['_xobject'] is not None:
976
979
  self.xoinitialize(**kwargs)
@@ -982,28 +985,88 @@ class Bend(_BendCommon, BeamElement):
982
985
  multipolar_kwargs = _prepare_multipolar_params(knl, ksl, order)
983
986
  kwargs.update(multipolar_kwargs)
984
987
 
985
- if angle is not None and (length := kwargs.get('length')):
986
- if kwargs.get('h') is not None:
987
- raise ValueError('Cannot specify both `angle` and `h`')
988
- kwargs['h'] = angle / length
989
-
990
988
  self.xoinitialize(**kwargs)
991
989
 
990
+ # Calculate length and h in the event length_straight and/or angle given
991
+ self.set_bend_params(
992
+ kwargs.get('length'),
993
+ kwargs.get('h'),
994
+ kwargs.get('angle'),
995
+ )
996
+
992
997
  if self.k0_from_h:
993
998
  self.k0 = self.h
994
999
 
995
1000
  if model is not None:
996
1001
  self.model = model
997
1002
 
1003
+ @property
1004
+ def length(self):
1005
+ return self._length
1006
+
1007
+ @length.setter
1008
+ def length(self, value):
1009
+ self.set_bend_params(length=value, angle=self.angle)
1010
+
1011
+ @property
1012
+ def h(self):
1013
+ return self._h
1014
+
1015
+ @h.setter
1016
+ def h(self, value):
1017
+ self.set_bend_params(length=self.length, h=value)
1018
+
998
1019
  @property
999
1020
  def angle(self):
1000
- return self.h * self.length
1021
+ return self._angle
1001
1022
 
1002
1023
  @angle.setter
1003
1024
  def angle(self, value):
1004
- self.h = value / self.length
1025
+ self.set_bend_params(length=self.length, angle=value)
1026
+
1027
+ def set_bend_params(self, length=None, h=None, angle=None):
1028
+ length, h, angle = self.compute_bend_params(
1029
+ length, h, angle,
1030
+ )
1031
+
1032
+ # None becomes NaN in numpy buffers
1033
+ if length is not None:
1034
+ self._length = length
1035
+ if h is not None:
1036
+ self._h = h
1037
+ if angle is not None:
1038
+ self._angle = angle
1039
+
1005
1040
  if self.k0_from_h:
1006
- self.k0 = self.h
1041
+ self._k0 = self.h
1042
+
1043
+ @staticmethod
1044
+ def compute_bend_params(length=None, h=None, angle=None):
1045
+ if not length:
1046
+ # If no length, then we cannot meaningfully calculate anything
1047
+ return length, h, angle
1048
+
1049
+ if angle is not None:
1050
+ computed_h = angle / length
1051
+
1052
+ if h is not None and not np.isclose(h, computed_h, rtol=0, atol=1e-13):
1053
+ raise ValueError('Given `h` and `angle` are inconsistent!')
1054
+
1055
+ h = h or computed_h
1056
+ return length, h, angle
1057
+
1058
+ if h is not None:
1059
+ computed_angle = h * length
1060
+
1061
+ if angle is not None and not np.isclose(angle, computed_angle, rtol=0, atol=1e-13):
1062
+ raise ValueError('Given `h` and `angle` are inconsistent!')
1063
+
1064
+ angle = angle or computed_angle
1065
+ return length, h, angle
1066
+
1067
+ # Both `h` and `angle` are None
1068
+ return length, h, angle
1069
+
1007
1070
 
1008
1071
  @property
1009
1072
  def _thin_slice_class(self):
@@ -1104,15 +1167,11 @@ class RBend(_BendCommon, BeamElement):
1104
1167
 
1105
1168
  _xofields = {
1106
1169
  **_BendCommon._common_xofields,
1107
- 'angle': xo.Float64,
1108
1170
  'length_straight': xo.Float64,
1109
1171
  }
1110
1172
 
1111
1173
  _rename = {
1112
1174
  **_BendCommon._common_rename,
1113
- 'length': '_length',
1114
- 'h': '_h',
1115
- 'angle': '_angle',
1116
1175
  'length_straight': '_length_straight',
1117
1176
  }
1118
1177
 
@@ -1188,14 +1247,21 @@ class RBend(_BendCommon, BeamElement):
1188
1247
 
1189
1248
  def set_bend_params(self, length=None, length_straight=None, h=None, angle=None):
1190
1249
  (
1191
- self._length,
1192
- self._length_straight,
1193
- self._h,
1194
- self._angle,
1250
+ length, length_straight, h, angle
1195
1251
  ) = self.compute_bend_params(length, length_straight, h, angle)
1196
1252
 
1253
+ # None becomes NaN in numpy buffers
1254
+ if length is not None:
1255
+ self._length = length
1256
+ if length_straight is not None:
1257
+ self._length_straight = length_straight
1258
+ if h is not None:
1259
+ self._h = h
1260
+ if angle is not None:
1261
+ self._angle = angle
1262
+
1197
1263
  if self.k0_from_h:
1198
- self.k0 = self.h
1264
+ self._k0 = self.h
1199
1265
 
1200
1266
  @staticmethod
1201
1267
  def compute_bend_params(length=None, length_straight=None, h=None, angle=None):
@@ -799,18 +799,7 @@ class MadLoader:
799
799
  l_curv = mad_el.l
800
800
  bend_kwargs['length'] = l_curv
801
801
 
802
-
803
- if mad_el.type == 'rbend':
804
- # Xtrack RBend element will update h from the angle and l...
805
- bend_kwargs['angle'] = mad_el.angle
806
- else:
807
- # ...however, for the Bend element things are a bit more complex.
808
- # Since `angle` is a computed parameter, and `h` is the actual
809
- # stored value, changing the length (e.g. through expressions)
810
- # implicitly changes the angle (since `h` is constant). Therefore,
811
- # we need to store the expression for `h` here, to indicate that
812
- # the value of the angle is the authoritative one.
813
- bend_kwargs['h'] = mad_el.angle / mad_el.l
802
+ bend_kwargs['angle'] = mad_el.angle
814
803
 
815
804
  # Edge angles
816
805
  e1 = mad_el.e1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xtrack
3
- Version: 0.74.1
3
+ Version: 0.74.2
4
4
  Summary: Tracking library for particle accelerators
5
5
  Home-page: https://xsuite.readthedocs.io/
6
6
  Download-URL: https://pypi.python.org/pypi/xtrack
@@ -1 +0,0 @@
1
- __version__ = '0.74.1'
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
File without changes