xtrack 0.76.1__tar.gz → 0.77.0__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 (819) hide show
  1. {xtrack-0.76.1 → xtrack-0.77.0}/PKG-INFO +1 -1
  2. xtrack-0.77.0/examples/transition_crossing/000_bucket_and_long_matching.py +107 -0
  3. xtrack-0.77.0/examples/transition_crossing/001_check_energy_variables.py +57 -0
  4. xtrack-0.77.0/examples/transition_crossing/002_transition_crossing.py +178 -0
  5. xtrack-0.77.0/examples/transition_crossing/t000_bucket_checks_below_transition.py +172 -0
  6. xtrack-0.77.0/examples/transition_crossing/t001_bucket_checks_above_transition.py +171 -0
  7. xtrack-0.77.0/examples/transition_crossing/t002_bucket_checks_below_transition_uncompensated_lag.py +168 -0
  8. xtrack-0.77.0/examples/transition_crossing/t003_bucket_checks_above_transition_uncompensated_lag.py +168 -0
  9. xtrack-0.77.0/examples/transition_crossing/t005_check_with_energy_program.py +187 -0
  10. xtrack-0.77.0/examples/transition_crossing/t006_energy_change_element.py +186 -0
  11. xtrack-0.77.0/tests/test_bucket_with_ref_energy_change.py +1016 -0
  12. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_native_madloader.py +243 -5
  13. xtrack-0.76.1/tests/test_particles_api.py → xtrack-0.77.0/tests/test_particles.py +54 -0
  14. xtrack-0.77.0/xtrack/_version.py +1 -0
  15. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/apertures.py +1 -1
  16. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/environment.py +3 -2
  17. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/line.py +24 -3
  18. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/mad_parser/loader.py +244 -107
  19. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/mad_parser/parse.py +1 -9
  20. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/slicing.py +5 -6
  21. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack.egg-info/PKG-INFO +1 -1
  22. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack.egg-info/SOURCES.txt +11 -1
  23. xtrack-0.76.1/xtrack/_version.py +0 -1
  24. {xtrack-0.76.1 → xtrack-0.77.0}/.gitattributes +0 -0
  25. {xtrack-0.76.1 → xtrack-0.77.0}/.gitignore +0 -0
  26. {xtrack-0.76.1 → xtrack-0.77.0}/LICENSE +0 -0
  27. {xtrack-0.76.1 → xtrack-0.77.0}/MANIFEST.in +0 -0
  28. {xtrack-0.76.1 → xtrack-0.77.0}/README.md +0 -0
  29. {xtrack-0.76.1 → xtrack-0.77.0}/contributors.txt +0 -0
  30. {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/__init__.py +0 -0
  31. {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/base_classes.py +0 -0
  32. {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/be_beamfields/BB6D.py +0 -0
  33. {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
  34. {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/be_beamfields/__init__.py +0 -0
  35. {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/be_beamfields/beambeam.py +0 -0
  36. {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/be_beamfields/boost.py +0 -0
  37. {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
  38. {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
  39. {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/be_beamfields/qgauss.py +0 -0
  40. {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/be_beamfields/slicing.py +0 -0
  41. {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/be_beamfields/spacecharge.py +0 -0
  42. {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/elements.py +0 -0
  43. {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/line.py +0 -0
  44. {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/mathlibs.py +0 -0
  45. {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/particles.py +0 -0
  46. {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/temp_pyparticles.py +0 -0
  47. {xtrack-0.76.1 → xtrack-0.77.0}/examples/acceleration/000_acceleration.py +0 -0
  48. {xtrack-0.76.1 → xtrack-0.77.0}/examples/acceleration/001_energy_ramp.py +0 -0
  49. {xtrack-0.76.1 → xtrack-0.77.0}/examples/acceleration/002_energy_ramp_transverse.py +0 -0
  50. {xtrack-0.76.1 → xtrack-0.77.0}/examples/amplitude_detuning/000_detuning.py +0 -0
  51. {xtrack-0.76.1 → xtrack-0.77.0}/examples/apertures/000_rect_aperture_standalone.py +0 -0
  52. {xtrack-0.76.1 → xtrack-0.77.0}/examples/apertures/000a_rect_aperture_with_tilt_shifts.py +0 -0
  53. {xtrack-0.76.1 → xtrack-0.77.0}/examples/apertures/001_rect_aperture_withinline.py +0 -0
  54. {xtrack-0.76.1 → xtrack-0.77.0}/examples/apertures/002_global_aperture.py +0 -0
  55. {xtrack-0.76.1 → xtrack-0.77.0}/examples/apertures/003_polygon.py +0 -0
  56. {xtrack-0.76.1 → xtrack-0.77.0}/examples/apertures/004_racetrack.py +0 -0
  57. {xtrack-0.76.1 → xtrack-0.77.0}/examples/apertures/005_import_polygon_from_madx.py +0 -0
  58. {xtrack-0.76.1 → xtrack-0.77.0}/examples/cavity_absolute_time/000_cavity_absolute_time.py +0 -0
  59. {xtrack-0.76.1 → xtrack-0.77.0}/examples/cavity_absolute_time/001_with_functions.py +0 -0
  60. {xtrack-0.76.1 → xtrack-0.77.0}/examples/coasting/001_frev_meas.py +0 -0
  61. {xtrack-0.76.1 → xtrack-0.77.0}/examples/coasting/e000_illustration.py +0 -0
  62. {xtrack-0.76.1 → xtrack-0.77.0}/examples/collimation/000_secondary_production.py +0 -0
  63. {xtrack-0.76.1 → xtrack-0.77.0}/examples/collimation/001_loss_location_refinement.py +0 -0
  64. {xtrack-0.76.1 → xtrack-0.77.0}/examples/collimation/002_loss_refinement_check_cone.py +0 -0
  65. {xtrack-0.76.1 → xtrack-0.77.0}/examples/collimation/003_all_together.py +0 -0
  66. {xtrack-0.76.1 → xtrack-0.77.0}/examples/collimation/004_check_skip_refinement_for_collimator.py +0 -0
  67. {xtrack-0.76.1 → xtrack-0.77.0}/examples/convert_lhc/000_convert.py +0 -0
  68. {xtrack-0.76.1 → xtrack-0.77.0}/examples/convert_lhc/001_doit +0 -0
  69. {xtrack-0.76.1 → xtrack-0.77.0}/examples/convert_lhc/002_new_madloader.py +0 -0
  70. {xtrack-0.76.1 → xtrack-0.77.0}/examples/convert_lhc/003_riccardo.py +0 -0
  71. {xtrack-0.76.1 → xtrack-0.77.0}/examples/convert_lhc/004_load_optics_file.py +0 -0
  72. {xtrack-0.76.1 → xtrack-0.77.0}/examples/convert_lhc/lhc.py +0 -0
  73. {xtrack-0.76.1 → xtrack-0.77.0}/examples/convert_lhc/lhc.seq +0 -0
  74. {xtrack-0.76.1 → xtrack-0.77.0}/examples/convert_lhc/optics.madx +0 -0
  75. {xtrack-0.76.1 → xtrack-0.77.0}/examples/convert_lhc/squeeze_0.madx +0 -0
  76. {xtrack-0.76.1 → xtrack-0.77.0}/examples/coupling_knobs/000_generate_coupling_konbs.py +0 -0
  77. {xtrack-0.76.1 → xtrack-0.77.0}/examples/coupling_knobs/001_check_against_legacy.py +0 -0
  78. {xtrack-0.76.1 → xtrack-0.77.0}/examples/coupling_knobs/002_check_twiss_complex_cmin.py +0 -0
  79. {xtrack-0.76.1 → xtrack-0.77.0}/examples/crab_dispersion/000_crab_dispersion.py +0 -0
  80. {xtrack-0.76.1 → xtrack-0.77.0}/examples/crab_dispersion/001_crab_dispersion_freeze_vars.py +0 -0
  81. {xtrack-0.76.1 → xtrack-0.77.0}/examples/crab_dispersion/002_crab_dispersion_open.py +0 -0
  82. {xtrack-0.76.1 → xtrack-0.77.0}/examples/crab_trim_with_knob/000_investigate.py +0 -0
  83. {xtrack-0.76.1 → xtrack-0.77.0}/examples/dynamic_aperture/000_tracking_for_da.py +0 -0
  84. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_internal_record/000_internal_record.py +0 -0
  85. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_internal_record/001_multirecord.py +0 -0
  86. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_internal_record/002_record_in_individual_element.py +0 -0
  87. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/000_element_transform.py +0 -0
  88. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/000a_multipolar_components.py +0 -0
  89. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/001_sliced_element_transform.py +0 -0
  90. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/001a_sliced_multipolar_components.py +0 -0
  91. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/002_multipoles_in_quad.py +0 -0
  92. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/010_replica_loops.py +0 -0
  93. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t000_check_tilt_shifts_against_mad.py +0 -0
  94. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t000a_test_shift_x.py +0 -0
  95. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t000b_test_shift_y.py +0 -0
  96. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t000c_test_rot_s.py +0 -0
  97. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t001_edges_in_bend.py +0 -0
  98. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t001a_edges_in_bend_exit.py +0 -0
  99. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t002b_quad_slice_ref_thin.py +0 -0
  100. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t002c_bend_slice_ref_thin.py +0 -0
  101. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t002d_sext_slice_ref_thin.py +0 -0
  102. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t002e_oct_slice_ref_thin.py +0 -0
  103. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t002g_drift_slice_ref_thin.py +0 -0
  104. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t004b_quad_slice_ref_thick.py +0 -0
  105. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t004c_bend_slice_ref_thick.py +0 -0
  106. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t004d_sext_slice_ref_thick.py +0 -0
  107. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t004e_oct_slice_ref_thick.py +0 -0
  108. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t005a_check_attr.py +0 -0
  109. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t009_check_is_drift.py +0 -0
  110. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t011_check_flags.py +0 -0
  111. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t012_check_traansformations_against_sandwitch.py +0 -0
  112. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t014_check_survey.py +0 -0
  113. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t015_insert_in_replicas.py +0 -0
  114. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t015a_insert_in_replicas_thin.py +0 -0
  115. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t016_insert_thick_change_s.py +0 -0
  116. {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/ttt.json +0 -0
  117. {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee/000_build_xsuite_model.py +0 -0
  118. {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee/001_match_emittance.py +0 -0
  119. {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee/002_vertical_ring_check.py +0 -0
  120. {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee/install_wigglers.madx +0 -0
  121. {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee_solenoid/004a_prepare_fcc_lattice_with_solenoid.py +0 -0
  122. {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee_solenoid/004b_correction.py +0 -0
  123. {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee_solenoid/004c_radiation.py +0 -0
  124. {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee_solenoid/t000_compare_against_boris.py +0 -0
  125. {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee_solenoid/t000_investigate_tilt.py +0 -0
  126. {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee_solenoid/t000a_plot_benchmark.py +0 -0
  127. {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee_solenoid/t000b_simplified_illustration.py +0 -0
  128. {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee_solenoid/t001_dispersion_boris.py +0 -0
  129. {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee_solenoid/t002_check_tilted_drift.py +0 -0
  130. {xtrack-0.76.1 → xtrack-0.77.0}/examples/fodo/000_fodo.py +0 -0
  131. {xtrack-0.76.1 → xtrack-0.77.0}/examples/footprint/000_footprint.py +0 -0
  132. {xtrack-0.76.1 → xtrack-0.77.0}/examples/footprint/001_footprint_frozen_longitudinal.py +0 -0
  133. {xtrack-0.76.1 → xtrack-0.77.0}/examples/footprint/002_footprint_checks.py +0 -0
  134. {xtrack-0.76.1 → xtrack-0.77.0}/examples/footprint/003_stability_diagram.py +0 -0
  135. {xtrack-0.76.1 → xtrack-0.77.0}/examples/freeze_longitudinal/000_freeze_unfreeze_explicit.py +0 -0
  136. {xtrack-0.76.1 → xtrack-0.77.0}/examples/freeze_longitudinal/001_freeze_context_manager.py +0 -0
  137. {xtrack-0.76.1 → xtrack-0.77.0}/examples/freeze_longitudinal/002_freeze_individual_methods.py +0 -0
  138. {xtrack-0.76.1 → xtrack-0.77.0}/examples/full_ring/000_tracking_example.py +0 -0
  139. {xtrack-0.76.1 → xtrack-0.77.0}/examples/full_ring/005_one_turn_check.py +0 -0
  140. {xtrack-0.76.1 → xtrack-0.77.0}/examples/full_ring/006_timing.py +0 -0
  141. {xtrack-0.76.1 → xtrack-0.77.0}/examples/full_ring/007_test_freeze_vars.py +0 -0
  142. {xtrack-0.76.1 → xtrack-0.77.0}/examples/full_ring/make_short_line.py +0 -0
  143. {xtrack-0.76.1 → xtrack-0.77.0}/examples/functions_in_knobs/000_define_function.py +0 -0
  144. {xtrack-0.76.1 → xtrack-0.77.0}/examples/functions_in_knobs/001_track_with_function.py +0 -0
  145. {xtrack-0.76.1 → xtrack-0.77.0}/examples/insert_elements/000_multiple_thick_insertions.py +0 -0
  146. {xtrack-0.76.1 → xtrack-0.77.0}/examples/ion_fragments/000_dev.py +0 -0
  147. {xtrack-0.76.1 → xtrack-0.77.0}/examples/knobs/000_fodo.py +0 -0
  148. {xtrack-0.76.1 → xtrack-0.77.0}/examples/knobs/001_lhc.py +0 -0
  149. {xtrack-0.76.1 → xtrack-0.77.0}/examples/knobs/002_from_json.py +0 -0
  150. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_and_optics_files/000_example.py +0 -0
  151. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_and_optics_files/pimm_lattice.py +0 -0
  152. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_and_optics_files/pimm_optics.py +0 -0
  153. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/000_environemnt.py +0 -0
  154. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/000a_subline.py +0 -0
  155. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/000b_builder.py +0 -0
  156. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/000c_repeated_elements.py +0 -0
  157. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/000d_env_to_json.py +0 -0
  158. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/003_view.py +0 -0
  159. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/006_select_in_multiline.py +0 -0
  160. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/007a_element_creation_and_placing.py +0 -0
  161. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/007b_insert_elements.py +0 -0
  162. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/007c_insert_individual.py +0 -0
  163. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/007d_insert_line.py +0 -0
  164. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/007e_append_elements.py +0 -0
  165. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/007f_remove_elements.py +0 -0
  166. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/007g_replace_elements.py +0 -0
  167. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/007h_insert_element_instantiated_by_user.py +0 -0
  168. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/008a_line_composition.py +0 -0
  169. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/008b_composition_with_replicas.py +0 -0
  170. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/008c_place_line_at_s.py +0 -0
  171. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/008d_environment.py +0 -0
  172. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/009a_insert_repeated_elements.py +0 -0
  173. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/009b_insert_with_anchors.py +0 -0
  174. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/009c_insert_anchor_in_new_and_old.py +0 -0
  175. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/009d_insert_object.py +0 -0
  176. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/009e_individual_insertions.py +0 -0
  177. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/009f_individual_insertions_anchor.py +0 -0
  178. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/009g_insert_line.py +0 -0
  179. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/010_anchors.py +0 -0
  180. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/010b_anchors_compact.py +0 -0
  181. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/010c_check_timing_on_large_line.py +0 -0
  182. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/010d_anchor_lines.py +0 -0
  183. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/011_remove_element_env.py +0 -0
  184. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/011a_remove_element_from_line.py +0 -0
  185. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/012_replace_element.py +0 -0
  186. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/013_slice_repeated_elements.py +0 -0
  187. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/014_append.py +0 -0
  188. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/015_twin_lines.py +0 -0
  189. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/016_extend_multipoles.py +0 -0
  190. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/ring.json +0 -0
  191. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/ring.json.gz +0 -0
  192. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/t000_test_env.py +0 -0
  193. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/t001_check_with_subline.py +0 -0
  194. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/t002_issue_rep_elems.py +0 -0
  195. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/t003_issue_ref.py +0 -0
  196. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/t005_env_methods.py +0 -0
  197. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/t006_get_eval_etc.py +0 -0
  198. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/t007_builder_length.py +0 -0
  199. {xtrack-0.76.1 → xtrack-0.77.0}/examples/legacy_multiline_to_environment/000_convert.py +0 -0
  200. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lep/000_lep.py +0 -0
  201. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lep/001_check_against_madx.py +0 -0
  202. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lep/lep.opt9 +0 -0
  203. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lep/lep.seq9 +0 -0
  204. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_against_sixtrack/001_check.py +0 -0
  205. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_against_sixtrack/sixtrack_lhc_no_bb/000_runsix.sh +0 -0
  206. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_against_sixtrack/sixtrack_lhc_no_bb/fort.16 +0 -0
  207. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_against_sixtrack/sixtrack_lhc_no_bb/fort.2 +0 -0
  208. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_against_sixtrack/sixtrack_lhc_no_bb/fort.3.offmom +0 -0
  209. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_against_sixtrack/sixtrack_lhc_no_bb/fort.3.onmom +0 -0
  210. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_against_sixtrack/sixtrack_lhc_no_bb/fort.8 +0 -0
  211. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_native_python/000_generate_py_lattice_file.py +0 -0
  212. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_native_python/001_inspect_py_lattice.py +0 -0
  213. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_native_python/003_env_from_mad_native_loader.py +0 -0
  214. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_native_python/lhc_seq.py +0 -0
  215. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_thick/000_makethin.py +0 -0
  216. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_thick/001_insert_thin_elements_after_makethin.py +0 -0
  217. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_thick/002_compare_thick_twiss_vs_madx.py +0 -0
  218. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_thick/003_makethin_convergence_speed_vs_madx.py +0 -0
  219. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_thick/004_slice_every_x_meters.py +0 -0
  220. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_thick/t000_thick_sextupole.py +0 -0
  221. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_with_env/000_make_env.py +0 -0
  222. {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_with_env/001_check_env.py +0 -0
  223. {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_loader/000_collider_from_mad.py +0 -0
  224. {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_loader/001_check_b2.py +0 -0
  225. {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_loader/003_load_thick_with_errors.py +0 -0
  226. {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_loader/004_check_power_op.py +0 -0
  227. {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_loader/convert_multipole.py +0 -0
  228. {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_loader/job.madx +0 -0
  229. {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_loader/multipole.madx +0 -0
  230. {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/000_to_madx.py +0 -0
  231. {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/001_to_madng.py +0 -0
  232. {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/001a_madng_rdt.py +0 -0
  233. {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/001c_dev_madng_interface.py +0 -0
  234. {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/001d_madng_tilt_shift.py +0 -0
  235. {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/002_madng_checks.py +0 -0
  236. {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/003_example_pymadng_from_madx.py +0 -0
  237. {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/005_skew_quad.py +0 -0
  238. {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/006_check_skew_quad.py +0 -0
  239. {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/007_check_octupole.py +0 -0
  240. {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/008_check_to_madx.py +0 -0
  241. {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/t000_investigate_sympl.py +0 -0
  242. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/000_match_basic.py +0 -0
  243. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/001_match_interactive.py +0 -0
  244. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/002_match_bump_basic.py +0 -0
  245. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/002a_match_bump_init_end.py +0 -0
  246. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/002b_match_bump_init_middle.py +0 -0
  247. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/003_match_bump_from_table.py +0 -0
  248. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/004_match_bump_common_elements.py +0 -0
  249. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/005_match_bump_common_ele_callable_ineq.py +0 -0
  250. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/005a_match_bump_common_targets_from_table.py +0 -0
  251. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/006_match_action.py +0 -0
  252. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/007_match_knob.py +0 -0
  253. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/t003_match_bump_from_table_collider.py +0 -0
  254. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_octupole_phase_knob/.gitignore +0 -0
  255. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_octupole_phase_knob/000_dev.py +0 -0
  256. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/000_build_xsuite_model.py +0 -0
  257. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/001_change_ip15_phase.py +0 -0
  258. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/001a_change_beta_star.py +0 -0
  259. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/001b_match_on_disp.py +0 -0
  260. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/002_check_optics_and_orbit_knobs_xsuite_and_madx.py +0 -0
  261. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/010_check_phase_advances.py +0 -0
  262. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/011_match_all_arcs.py +0 -0
  263. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/012_match_ir2.py +0 -0
  264. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/020_match_ir7.py +0 -0
  265. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/020t_time_vs_madx.py +0 -0
  266. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/030_FODO_with_knobs.py +0 -0
  267. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/make_one_crossing_knob.madx +0 -0
  268. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/notes.txt +0 -0
  269. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/t000b_match_arc.py +0 -0
  270. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/t000c_match_arc_nested_optim.py +0 -0
  271. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/t000d_match_all_arcs.py +0 -0
  272. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/t004_time_madx_ip15_phase.py +0 -0
  273. {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/t005_match_options.py +0 -0
  274. {xtrack-0.76.1 → xtrack-0.77.0}/examples/monitor/000_example_quick_monitor.py +0 -0
  275. {xtrack-0.76.1 → xtrack-0.77.0}/examples/monitor/001_example_custom_monitor.py +0 -0
  276. {xtrack-0.76.1 → xtrack-0.77.0}/examples/monitor/002_example_custom_monitor_multiframe.py +0 -0
  277. {xtrack-0.76.1 → xtrack-0.77.0}/examples/monitor/003_monitors_as_beam_elements.py +0 -0
  278. {xtrack-0.76.1 → xtrack-0.77.0}/examples/monitor/004_monitor_standalone.py +0 -0
  279. {xtrack-0.76.1 → xtrack-0.77.0}/examples/multisetter/000_sps_50hz_ripple.py +0 -0
  280. {xtrack-0.76.1 → xtrack-0.77.0}/examples/multispecies_check/000_multipole.py +0 -0
  281. {xtrack-0.76.1 → xtrack-0.77.0}/examples/multispecies_check/001_bend.py +0 -0
  282. {xtrack-0.76.1 → xtrack-0.77.0}/examples/multispecies_check/002_dipole_edge.py +0 -0
  283. {xtrack-0.76.1 → xtrack-0.77.0}/examples/multispecies_check/003_quadrupole.py +0 -0
  284. {xtrack-0.76.1 → xtrack-0.77.0}/examples/multispecies_check/004_sextupole.py +0 -0
  285. {xtrack-0.76.1 → xtrack-0.77.0}/examples/multispecies_check/005_octupole.py +0 -0
  286. {xtrack-0.76.1 → xtrack-0.77.0}/examples/multispecies_check/006_cavity.py +0 -0
  287. {xtrack-0.76.1 → xtrack-0.77.0}/examples/native_madloader/000_pimms.py +0 -0
  288. {xtrack-0.76.1 → xtrack-0.77.0}/examples/native_madloader/001_psb.py +0 -0
  289. {xtrack-0.76.1 → xtrack-0.77.0}/examples/native_madloader/002_lhc.py +0 -0
  290. {xtrack-0.76.1 → xtrack-0.77.0}/examples/native_madloader/004_ps.py +0 -0
  291. {xtrack-0.76.1 → xtrack-0.77.0}/examples/native_madloader/005_leir.py +0 -0
  292. {xtrack-0.76.1 → xtrack-0.77.0}/examples/nonlinear_lens/000_compare_against_madx.py +0 -0
  293. {xtrack-0.76.1 → xtrack-0.77.0}/examples/nonlinear_tunes/detuning.py +0 -0
  294. {xtrack-0.76.1 → xtrack-0.77.0}/examples/nonlinear_tunes/nonlinear_tunes.py +0 -0
  295. {xtrack-0.76.1 → xtrack-0.77.0}/examples/optics_correction/000_dev.py +0 -0
  296. {xtrack-0.76.1 → xtrack-0.77.0}/examples/optics_correction/001_md.py +0 -0
  297. {xtrack-0.76.1 → xtrack-0.77.0}/examples/optimize_function/000_dev.py +0 -0
  298. {xtrack-0.76.1 → xtrack-0.77.0}/examples/optimized_tracker/000_optimized_tracker.py +0 -0
  299. {xtrack-0.76.1 → xtrack-0.77.0}/examples/optimized_tracker/001_time_tracking_on_gpu.py +0 -0
  300. {xtrack-0.76.1 → xtrack-0.77.0}/examples/optimized_tracker/002_time_tracking_on_cpu.py +0 -0
  301. {xtrack-0.76.1 → xtrack-0.77.0}/examples/orbit_and_tracjectory_correction/000_closed_orbit_correction_basic.py +0 -0
  302. {xtrack-0.76.1 → xtrack-0.77.0}/examples/orbit_and_tracjectory_correction/001_closed_orbit_correction_micado.py +0 -0
  303. {xtrack-0.76.1 → xtrack-0.77.0}/examples/orbit_and_tracjectory_correction/002_closed_orbit_correction_customize.py +0 -0
  304. {xtrack-0.76.1 → xtrack-0.77.0}/examples/orbit_and_tracjectory_correction/003_closed_orbit_correction_thread.py +0 -0
  305. {xtrack-0.76.1 → xtrack-0.77.0}/examples/orbit_and_tracjectory_correction/004_thread_before_co_corr.py +0 -0
  306. {xtrack-0.76.1 → xtrack-0.77.0}/examples/orbit_and_tracjectory_correction/005_transfer_line_correction.py +0 -0
  307. {xtrack-0.76.1 → xtrack-0.77.0}/examples/orbit_and_tracjectory_correction/006_fcc.py +0 -0
  308. {xtrack-0.76.1 → xtrack-0.77.0}/examples/pipeline/000_multitracker.py +0 -0
  309. {xtrack-0.76.1 → xtrack-0.77.0}/examples/pipeline/001_tracker_only.py +0 -0
  310. {xtrack-0.76.1 → xtrack-0.77.0}/examples/print_package_paths.py +0 -0
  311. {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/000a_all_xsuite_import_model.py +0 -0
  312. {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/000b_setup_chicane.py +0 -0
  313. {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/000c_chicane_time_functions.py +0 -0
  314. {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/000d_correct_beta_beating.py +0 -0
  315. {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/000e_makethin.py +0 -0
  316. {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/000f_track.py +0 -0
  317. {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/000g_multiturn_inj.py +0 -0
  318. {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/001_compare_against_ptc.py +0 -0
  319. {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/001b_compare_against_ptc_from_json.py +0 -0
  320. {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/002_compare_fringe_implem.py +0 -0
  321. {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/003_backtrack_thick_elements.py +0 -0
  322. {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/004_dev_acceleration.py +0 -0
  323. {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/005_double_harmonic.py +0 -0
  324. {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/102_vs_ptc_approaching_half_integer.py +0 -0
  325. {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/ptc_ref.json +0 -0
  326. {xtrack-0.76.1 → xtrack-0.77.0}/examples/pyheadtail_interface/000_tracking_example_with_pyht.py +0 -0
  327. {xtrack-0.76.1 → xtrack-0.77.0}/examples/pyheadtail_interface/001_pyht_synchrotron.py +0 -0
  328. {xtrack-0.76.1 → xtrack-0.77.0}/examples/pyheadtail_interface/002_headtailInstability.py +0 -0
  329. {xtrack-0.76.1 → xtrack-0.77.0}/examples/pyheadtail_interface/003_headtailInstability_cpu_gpu.py +0 -0
  330. {xtrack-0.76.1 → xtrack-0.77.0}/examples/pyheadtail_interface/004_imped_spacech_cpu_gpu.py +0 -0
  331. {xtrack-0.76.1 → xtrack-0.77.0}/examples/pyheadtail_interface/LHC.py +0 -0
  332. {xtrack-0.76.1 → xtrack-0.77.0}/examples/pyheadtail_interface/madx_sps/lhc_q20.str +0 -0
  333. {xtrack-0.76.1 → xtrack-0.77.0}/examples/pyheadtail_interface/madx_sps/macro.madx +0 -0
  334. {xtrack-0.76.1 → xtrack-0.77.0}/examples/pyheadtail_interface/madx_sps/sps.seq +0 -0
  335. {xtrack-0.76.1 → xtrack-0.77.0}/examples/pyheadtail_interface/wakes/wakeforhdtl_PyZbase_Allthemachine_7000GeV_B1_2021_TeleIndex1_wake.dat +0 -0
  336. {xtrack-0.76.1 → xtrack-0.77.0}/examples/radial_steering/000_radial_steering.py +0 -0
  337. {xtrack-0.76.1 → xtrack-0.77.0}/examples/radial_steering/001_radial_steering_psb.py +0 -0
  338. {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/.gitignore +0 -0
  339. {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/002_single_dipole.py +0 -0
  340. {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/003_kick_histogram.py +0 -0
  341. {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/004_damping_against_madx.py +0 -0
  342. {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/005_radiation_example.py +0 -0
  343. {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/006_make_gaussian_bunch.py +0 -0
  344. {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/007_record_photons.py +0 -0
  345. {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/008_convergence_bend.py +0 -0
  346. {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/009a_sps_with_vertical_bump.py +0 -0
  347. {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/009b_sps_illustrate_dumping_and_excitation.py +0 -0
  348. {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/009c_sps_single_kicker.py +0 -0
  349. {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/009d_sps_wiggler.py +0 -0
  350. {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/n_photons.py +0 -0
  351. {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/t005_mad_only.py +0 -0
  352. {xtrack-0.76.1 → xtrack-0.77.0}/examples/random_number_generator/000_zero_occurrence_and_min.py +0 -0
  353. {xtrack-0.76.1 → xtrack-0.77.0}/examples/random_number_generator/001_usage_in_beam_element.py +0 -0
  354. {xtrack-0.76.1 → xtrack-0.77.0}/examples/rbendrbarc/000_dev.py +0 -0
  355. {xtrack-0.76.1 → xtrack-0.77.0}/examples/relative_errors/000_basic_error_definition.py +0 -0
  356. {xtrack-0.76.1 → xtrack-0.77.0}/examples/relative_errors/001_random_errors_on_quad_family.py +0 -0
  357. {xtrack-0.76.1 → xtrack-0.77.0}/examples/relative_errors/003_check_all_elems_kick.py +0 -0
  358. {xtrack-0.76.1 → xtrack-0.77.0}/examples/rf_track/000_toy_ring_xt.py +0 -0
  359. {xtrack-0.76.1 → xtrack-0.77.0}/examples/rf_track/001_toy_ring_rft_volume.py +0 -0
  360. {xtrack-0.76.1 → xtrack-0.77.0}/examples/rf_track/002_toy_ring_rft_element.py +0 -0
  361. {xtrack-0.76.1 → xtrack-0.77.0}/examples/rf_track/003_analysis.py +0 -0
  362. {xtrack-0.76.1 → xtrack-0.77.0}/examples/rf_track/100_particle_losses.py +0 -0
  363. {xtrack-0.76.1 → xtrack-0.77.0}/examples/rf_track/200_fodo_cell.py +0 -0
  364. {xtrack-0.76.1 → xtrack-0.77.0}/examples/rf_track/300_solenoid.py +0 -0
  365. {xtrack-0.76.1 → xtrack-0.77.0}/examples/rf_track/400_Ez_on-axis_TD26__vg1p8_r05_CC_EDMS.txt +0 -0
  366. {xtrack-0.76.1 → xtrack-0.77.0}/examples/rf_track/400_rf_fieldmap_1d.py +0 -0
  367. {xtrack-0.76.1 → xtrack-0.77.0}/examples/sequence/000_sequence.py +0 -0
  368. {xtrack-0.76.1 → xtrack-0.77.0}/examples/slipstacking/000_slip_stacking.py +0 -0
  369. {xtrack-0.76.1 → xtrack-0.77.0}/examples/slipstacking/dev.py +0 -0
  370. {xtrack-0.76.1 → xtrack-0.77.0}/examples/small_rings/000_elena_chromatic_functions.py +0 -0
  371. {xtrack-0.76.1 → xtrack-0.77.0}/examples/small_rings/001_check_against_ptc.py +0 -0
  372. {xtrack-0.76.1 → xtrack-0.77.0}/examples/small_rings/002_compare_contributions.py +0 -0
  373. {xtrack-0.76.1 → xtrack-0.77.0}/examples/small_rings/003_pimms.py +0 -0
  374. {xtrack-0.76.1 → xtrack-0.77.0}/examples/small_rings/004_pimms_extract.py +0 -0
  375. {xtrack-0.76.1 → xtrack-0.77.0}/examples/small_rings/005_pimms_extract_spiral_step.py +0 -0
  376. {xtrack-0.76.1 → xtrack-0.77.0}/examples/small_rings/006_pimms_survey.py +0 -0
  377. {xtrack-0.76.1 → xtrack-0.77.0}/examples/small_rings/007_clean_up_extraction.py +0 -0
  378. {xtrack-0.76.1 → xtrack-0.77.0}/examples/small_rings/t001_check_ps.py +0 -0
  379. {xtrack-0.76.1 → xtrack-0.77.0}/examples/solenoid/001_multipole_shifts.py +0 -0
  380. {xtrack-0.76.1 → xtrack-0.77.0}/examples/solenoid/002_multipole_rotations.py +0 -0
  381. {xtrack-0.76.1 → xtrack-0.77.0}/examples/spacecharge/000_spacecharge_example.py +0 -0
  382. {xtrack-0.76.1 → xtrack-0.77.0}/examples/spacecharge/001_spacecharge_footprint.py +0 -0
  383. {xtrack-0.76.1 → xtrack-0.77.0}/examples/spacecharge/footprint.py +0 -0
  384. {xtrack-0.76.1 → xtrack-0.77.0}/examples/symm_twiss_and_match/000_symm_twiss_and_match.py +0 -0
  385. {xtrack-0.76.1 → xtrack-0.77.0}/examples/symm_twiss_and_match/t000_test_twiss_symm.py +0 -0
  386. {xtrack-0.76.1 → xtrack-0.77.0}/examples/t007_vars_features.py +0 -0
  387. {xtrack-0.76.1 → xtrack-0.77.0}/examples/tapering/000_taper.py +0 -0
  388. {xtrack-0.76.1 → xtrack-0.77.0}/examples/tapering/001_taper_and_compare_twiss_methods.py +0 -0
  389. {xtrack-0.76.1 → xtrack-0.77.0}/examples/tapering/002_taper_coupling_check.py +0 -0
  390. {xtrack-0.76.1 → xtrack-0.77.0}/examples/tapering/003_track_no_taper.py +0 -0
  391. {xtrack-0.76.1 → xtrack-0.77.0}/examples/tapering/100_generate_fcc_line_no_rad.py +0 -0
  392. {xtrack-0.76.1 → xtrack-0.77.0}/examples/tapering/101_fccee_madx_radiation_thick.py +0 -0
  393. {xtrack-0.76.1 → xtrack-0.77.0}/examples/tapering/fccee_t.seq +0 -0
  394. {xtrack-0.76.1 → xtrack-0.77.0}/examples/taylor_map/000_line_with_maps.py +0 -0
  395. {xtrack-0.76.1 → xtrack-0.77.0}/examples/taylor_map/001_check_against_madx.py +0 -0
  396. {xtrack-0.76.1 → xtrack-0.77.0}/examples/to_json/000_lattice_to_json.py +0 -0
  397. {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/000_toy_ring.py +0 -0
  398. {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/000a_toy_ring_specify_s.py +0 -0
  399. {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/001_analysis.py +0 -0
  400. {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/002_expressions.py +0 -0
  401. {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/003_slicing.py +0 -0
  402. {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/004_inspect.py +0 -0
  403. {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/005_insert_element.py +0 -0
  404. {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/006a_dynamic_bump_sin.py +0 -0
  405. {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/006b_dynamic_bump_piece_wise_linear.py +0 -0
  406. {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/006c_dynamic_bump_sin_env.py +0 -0
  407. {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/007_cut_at_s.py +0 -0
  408. {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/008_repeated_elements_clones_replicas.py +0 -0
  409. {xtrack-0.76.1 → xtrack-0.77.0}/examples/tracker/000_track.py +0 -0
  410. {xtrack-0.76.1 → xtrack-0.77.0}/examples/tracker/001_tracker_start_stop.py +0 -0
  411. {xtrack-0.76.1 → xtrack-0.77.0}/examples/tracker/002_backtrack.py +0 -0
  412. {xtrack-0.76.1 → xtrack-0.77.0}/examples/transfer_matrix/000_basics.py +0 -0
  413. {xtrack-0.76.1 → xtrack-0.77.0}/examples/transfer_matrix/001_MuonCollider_example.py +0 -0
  414. {xtrack-0.76.1 → xtrack-0.77.0}/examples/transfer_matrix/002_check_with_twiss.py +0 -0
  415. {xtrack-0.76.1 → xtrack-0.77.0}/examples/transfer_matrix/003_check_longitudinal.py +0 -0
  416. {xtrack-0.76.1 → xtrack-0.77.0}/examples/transfer_matrix/004_multiple_buckets.py +0 -0
  417. {xtrack-0.76.1 → xtrack-0.77.0}/examples/transfer_matrix/005_radiation.py +0 -0
  418. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/000_twiss.py +0 -0
  419. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/000a_twiss_range.py +0 -0
  420. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/000b_twiss_range_periodic.py +0 -0
  421. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/000c_twiss_range_init_middle.py +0 -0
  422. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/000d_twiss_ele_co_search.py +0 -0
  423. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/000e_twiss_reverse.py +0 -0
  424. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/000f_twiss_default.py +0 -0
  425. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/001_check_against_mad.py +0 -0
  426. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/002_twiss_on_fodo.py +0 -0
  427. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/003_match_tune_chroma.py +0 -0
  428. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/003a_match_coupling.py +0 -0
  429. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/003b_match_4c_bump.py +0 -0
  430. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/003c_match_bump_with_weights.py +0 -0
  431. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/003d_match_bump_inequalities.py +0 -0
  432. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/003e_match_phase_ineq.py +0 -0
  433. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/003f_match_clone.py +0 -0
  434. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/004_twiss_b4_vs_b2.py +0 -0
  435. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/005_survey.py +0 -0
  436. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/006_survey_b4_vs_b2.py +0 -0
  437. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/007_survey_element0.py +0 -0
  438. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/008_4d_twiss_and_particle_match.py +0 -0
  439. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/009_twiss_zeta0_delta0.py +0 -0
  440. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/010_coupled_beta.py +0 -0
  441. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/011_tune_vs_delta.py +0 -0
  442. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/012_compute_norm_coordinates.py +0 -0
  443. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/013_R_matrix_between_two_points.py +0 -0
  444. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/014_check_W_propagation.py +0 -0
  445. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/015_remove_thin_groups.py +0 -0
  446. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/016_local_twiss.py +0 -0
  447. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/017_table_slicing.py +0 -0
  448. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/018_compute_beam_sizes.py +0 -0
  449. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/021_time_small_twiss.py +0 -0
  450. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/022_custom_twiss_init.py +0 -0
  451. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/023_build_chroma_knob.py +0 -0
  452. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/026a_chromatic_functions.py +0 -0
  453. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/026b_chromatic_functions_vs_madx.py +0 -0
  454. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/026c_measure_triplet_chromaticity.py +0 -0
  455. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/026d_match_w_chrom.py +0 -0
  456. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/027_optics_from_sigma_mat.py +0 -0
  457. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/028_ddx_ddqx.py +0 -0
  458. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/029_strengths_in_twiss.py +0 -0
  459. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/030_one_turn_arbitrary_start.py +0 -0
  460. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/031_twiss_plot.py +0 -0
  461. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/032_twiss_with_collective.py +0 -0
  462. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/t000_mem_issue.py +0 -0
  463. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/t003f_match_clone_checks.py +0 -0
  464. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss_multiturn/000_sps.py +0 -0
  465. {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss_multiturn/001_ps.py +0 -0
  466. {xtrack-0.76.1 → xtrack-0.77.0}/pyproject.toml +0 -0
  467. {xtrack-0.76.1 → xtrack-0.77.0}/release.sh +0 -0
  468. {xtrack-0.76.1 → xtrack-0.77.0}/setup.cfg +0 -0
  469. {xtrack-0.76.1 → xtrack-0.77.0}/setup.py +0 -0
  470. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/clic_dr/000_make_lines.py +0 -0
  471. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/clic_dr/line.json +0 -0
  472. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/clic_dr/line_for_taper.json +0 -0
  473. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/clic_dr/sequence.madx +0 -0
  474. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/elena/elena.seq +0 -0
  475. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/elena/highenergy.beam +0 -0
  476. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/elena/highenergy.str +0 -0
  477. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fcc_ee/000_build_xsuite_model.py +0 -0
  478. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fcc_ee/Bz_closed_before_quads.dat +0 -0
  479. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fcc_ee/fccee_h.seq +0 -0
  480. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fcc_ee/fccee_h_thin.json +0 -0
  481. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fcc_ee/fccee_t.seq +0 -0
  482. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fcc_ee/fccee_w.seq +0 -0
  483. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fcc_ee/fccee_z.seq +0 -0
  484. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fcc_ee/install_wigglers.madx +0 -0
  485. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fringe_vs_madng/.gitignore +0 -0
  486. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fringe_vs_madng/fringe.lua +0 -0
  487. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fringe_vs_madng/fringe_vs_madng.py +0 -0
  488. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fringe_vs_madng/initial_particles.json +0 -0
  489. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fringe_vs_madng/octupole_fringe.json +0 -0
  490. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fringe_vs_madng/quadrupole_fringe.json +0 -0
  491. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fringe_vs_madng/sextupole_fringe.json +0 -0
  492. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/h6_experimental_line/h6-fm.str +0 -0
  493. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/h6_experimental_line/h6fm04.seq +0 -0
  494. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_input_mad/.gitignore +0 -0
  495. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_input_mad/final_errors.tfs +0 -0
  496. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_input_mad/final_seq.madx +0 -0
  497. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_input_mad/from_pymask/000_pymask.py +0 -0
  498. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_input_mad/from_pymask/config.yaml +0 -0
  499. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_input_mad/from_pymask/optics_specific_tools.py +0 -0
  500. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_no_errors_with_coupling_knobs/000_generate_line_jsons.py +0 -0
  501. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_no_errors_with_coupling_knobs/lhcb1_seq.madx +0 -0
  502. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_no_errors_with_coupling_knobs/lhcb4_seq.madx +0 -0
  503. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_no_errors_with_coupling_knobs/line_b1.json +0 -0
  504. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_no_errors_with_coupling_knobs/line_b4.json +0 -0
  505. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_collider/collider_00_from_mad.json +0 -0
  506. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_collider/get_from_xmask.sh +0 -0
  507. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_noerrors_nobb/000_sequence_from_optics_repo.py +0 -0
  508. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_noerrors_nobb/001_xtline_from_madseq.py +0 -0
  509. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_noerrors_nobb/002_thick_sequence_from_optics_repo.py +0 -0
  510. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_noerrors_nobb/line_and_particle.json +0 -0
  511. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_noerrors_nobb/line_w_knobs_and_particle.json +0 -0
  512. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_noerrors_nobb/sequence.madx +0 -0
  513. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_noerrors_nobb/sequence_b4.madx +0 -0
  514. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_noerrors_nobb/sequence_with_crabs.madx +0 -0
  515. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_thick/000_build_thick_line.py +0 -0
  516. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_thick/001_build_thick_collider.py +0 -0
  517. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_thick/hllhc15_collider_thick.json +0 -0
  518. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_thick/hllhc15_collider_thick_legacy_multiline.json +0 -0
  519. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_thick/hllhc_sequence.madx +0 -0
  520. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_thick/lhc.seq +0 -0
  521. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_thick/lhc_thick_with_knobs.json +0 -0
  522. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_thick/lhcb4.seq +0 -0
  523. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_thick/opt_round_150_1500.madx +0 -0
  524. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_thick/opt_round_300_1500.madx +0 -0
  525. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc_14/000_test_against_sixtrack_and_save_line.py +0 -0
  526. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc_14/fort.2 +0 -0
  527. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc_14/fort.3 +0 -0
  528. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc_14/line_and_particle.json +0 -0
  529. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc_14/runsix +0 -0
  530. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/leir/leir.seq +0 -0
  531. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/leir/leir_inj_nominal.beam +0 -0
  532. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/leir/leir_inj_nominal.str +0 -0
  533. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_2024/injection_optics.madx +0 -0
  534. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_2024/lhc.seq +0 -0
  535. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/000_make_line.py +0 -0
  536. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/fort.16 +0 -0
  537. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/fort.2 +0 -0
  538. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/fort.3 +0 -0
  539. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/fort.8 +0 -0
  540. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/line_and_particle.json +0 -0
  541. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/runsix +0 -0
  542. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/sixtrack_timing/fort.16 +0 -0
  543. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/sixtrack_timing/fort.2 +0 -0
  544. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/sixtrack_timing/fort.3 +0 -0
  545. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/sixtrack_timing/fort.8 +0 -0
  546. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/sixtrack_timing/sim_time.dat +0 -0
  547. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_with_bb/000_generate_line.py +0 -0
  548. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_with_bb/fort.16 +0 -0
  549. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_with_bb/fort.2 +0 -0
  550. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_with_bb/fort.3 +0 -0
  551. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_with_bb/fort.8 +0 -0
  552. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_with_bb/line_and_particle.json +0 -0
  553. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_with_bb/runsix +0 -0
  554. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/pimms/PIMM.seq +0 -0
  555. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/pimms/PIMMS.seq +0 -0
  556. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/pimms/betatron.str +0 -0
  557. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/ps_sftpro/ps.seq +0 -0
  558. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/ps_sftpro/ps_hs_sftpro.str +0 -0
  559. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/psb_chicane/README +0 -0
  560. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/psb_chicane/Ramp_and_RF_functions.dat +0 -0
  561. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/psb_chicane/chicane_collapse.csv +0 -0
  562. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/psb_chicane/inj_distrib.dat +0 -0
  563. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/psb_chicane/psb.seq +0 -0
  564. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/psb_chicane/psb_fb_lhc.str +0 -0
  565. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/psb_chicane/ptc_ref.json +0 -0
  566. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/psb_injection/000_generate_xsuite_line.py +0 -0
  567. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/psb_injection/line_and_particle.json +0 -0
  568. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/psb_injection/psb_injection.seq +0 -0
  569. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_ions/000_make_line.py +0 -0
  570. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_ions/SPS_2021_Pb_ions_thin_test.seq +0 -0
  571. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_ions/line_and_particle.json +0 -0
  572. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_thick/aperturedb_classes.madx +0 -0
  573. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_thick/aperturedb_elements.madx +0 -0
  574. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_thick/lhc_q20.str +0 -0
  575. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_thick/sps.seq +0 -0
  576. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_to_lhc_ti2/ti2.seq +0 -0
  577. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_to_lhc_ti2/ti2_liu.str +0 -0
  578. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_w_spacecharge/000_prepare_line.py +0 -0
  579. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_w_spacecharge/line_no_spacecharge_and_particle.json +0 -0
  580. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_w_spacecharge/line_with_spacecharge_and_particle.json +0 -0
  581. {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_w_spacecharge/sps_thin.seq +0 -0
  582. {xtrack-0.76.1 → xtrack-0.77.0}/tests/conftest.py +0 -0
  583. {xtrack-0.76.1 → xtrack-0.77.0}/tests/pytest_onebyone.sh +0 -0
  584. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_acceleration.py +0 -0
  585. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_amplitude_detuning.py +0 -0
  586. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
  587. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_apertures.py +0 -0
  588. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_attr_replicas_and_slices.py +0 -0
  589. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_cavity_absolute_time.py +0 -0
  590. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_chromatic_functions_vs_madx.py +0 -0
  591. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_coasting.py +0 -0
  592. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_collective_tracker.py +0 -0
  593. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_collimation.py +0 -0
  594. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_element_characterization_functions.py +0 -0
  595. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_element_internal_record.py +0 -0
  596. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_elements.py +0 -0
  597. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_elements_classflags.py +0 -0
  598. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_elements_thick.py +0 -0
  599. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_environment.py +0 -0
  600. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_fcc_ee_solenoid_correction.py +0 -0
  601. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
  602. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_footprint.py +0 -0
  603. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_freeze_longitudinal.py +0 -0
  604. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_full_rings.py +0 -0
  605. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_h6_sps_beamline.py +0 -0
  606. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_hvkick.py +0 -0
  607. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_ions.py +0 -0
  608. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_legacy_multiline_to_env.py +0 -0
  609. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_lhc_env.py +0 -0
  610. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_lhc_match_phase_15.py +0 -0
  611. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_line.py +0 -0
  612. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_lumi.py +0 -0
  613. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_mad_writer.py +0 -0
  614. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_madloader.py +0 -0
  615. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_madnginterface.py +0 -0
  616. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_match_and_track_from_element.py +0 -0
  617. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_match_coupling_knob.py +0 -0
  618. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_match_nested.py +0 -0
  619. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_match_optics_and_ip_knob.py +0 -0
  620. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
  621. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_match_orbit_bump.py +0 -0
  622. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_match_tune_chroma_cminus.py +0 -0
  623. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_monitor.py +0 -0
  624. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_multi_bunch_gauss.py +0 -0
  625. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_multiline.py +0 -0
  626. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_multisetter.py +0 -0
  627. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_multispecies.py +0 -0
  628. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_periodic_symmetric_twiss_and_match.py +0 -0
  629. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_pipeline.py +0 -0
  630. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_prebuild_kernels.py +0 -0
  631. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_ps_against_ptc.py +0 -0
  632. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_ps_multiturn_twiss.py +0 -0
  633. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_psb_chicane.py +0 -0
  634. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_pyht_interface.py +0 -0
  635. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_radial_steering.py +0 -0
  636. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_radiation.py +0 -0
  637. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_radiation_equilibrium_emittances.py +0 -0
  638. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_random_gen.py +0 -0
  639. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_random_gen_exp.py +0 -0
  640. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_random_gen_gauss.py +0 -0
  641. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_random_gen_ruth.py +0 -0
  642. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_rbend_rbarc.py +0 -0
  643. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_rf_track.py +0 -0
  644. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_rotation_signs.py +0 -0
  645. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_second_order_taylor_map.py +0 -0
  646. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_seeds.py +0 -0
  647. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_slice_and_insert_with_replicas.py +0 -0
  648. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_slice_elements.py +0 -0
  649. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_slicing.py +0 -0
  650. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
  651. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_spacecharge_in_ring.py +0 -0
  652. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_sps_thick.py +0 -0
  653. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_survey.py +0 -0
  654. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_tapering.py +0 -0
  655. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_thick_lhc.py +0 -0
  656. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_tilt_shifts.py +0 -0
  657. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_tracker.py +0 -0
  658. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_trajectory_correcton.py +0 -0
  659. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_twiss.py +0 -0
  660. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_twiss_vs_madx_psb.py +0 -0
  661. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_vs_madx.py +0 -0
  662. {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_xmask_orbit_correction.py +0 -0
  663. {xtrack-0.76.1 → xtrack-0.77.0}/update_cprght_statement.py +0 -0
  664. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/__init__.py +0 -0
  665. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/_temp/__init__.py +0 -0
  666. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
  667. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
  668. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
  669. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/_temp/lhc_match/__init__.py +0 -0
  670. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
  671. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
  672. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/_temp/lhc_match/var_limits.py +0 -0
  673. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/base_element.py +0 -0
  674. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/__init__.py +0 -0
  675. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
  676. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
  677. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
  678. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
  679. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
  680. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
  681. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/beam_interaction.py +0 -0
  682. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements.py +0 -0
  683. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/bend.h +0 -0
  684. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/cavity.h +0 -0
  685. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/dipole_fringe.h +0 -0
  686. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/dipoleedge.h +0 -0
  687. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/drift.h +0 -0
  688. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/drift_elem.h +0 -0
  689. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/drift_slice.h +0 -0
  690. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/drift_slice_bend.h +0 -0
  691. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +0 -0
  692. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +0 -0
  693. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/drift_slice_rbend.h +0 -0
  694. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +0 -0
  695. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/elens.h +0 -0
  696. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/exciter.h +0 -0
  697. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
  698. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
  699. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/multipole.h +0 -0
  700. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
  701. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/octupole.h +0 -0
  702. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/quadrupole.h +0 -0
  703. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/rbend.h +0 -0
  704. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
  705. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
  706. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
  707. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/sextupole.h +0 -0
  708. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
  709. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
  710. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/solenoid.h +0 -0
  711. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/srotation.h +0 -0
  712. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thick_slice_bend.h +0 -0
  713. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thick_slice_drift.h +0 -0
  714. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +0 -0
  715. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +0 -0
  716. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thick_slice_rbend.h +0 -0
  717. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +0 -0
  718. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thick_slice_solenoid.h +0 -0
  719. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thin_slice_bend.h +0 -0
  720. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +0 -0
  721. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +0 -0
  722. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +0 -0
  723. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +0 -0
  724. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thin_slice_rbend.h +0 -0
  725. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +0 -0
  726. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +0 -0
  727. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +0 -0
  728. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_bend.h +0 -0
  729. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
  730. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
  731. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +0 -0
  732. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_mult_fringe.h +0 -0
  733. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_multipolar_components.h +0 -0
  734. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_multipole.h +0 -0
  735. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_quadrupole.h +0 -0
  736. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_solenoid.h +0 -0
  737. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
  738. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
  739. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
  740. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_wedge.h +0 -0
  741. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_xrotation.h +0 -0
  742. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
  743. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/wedge.h +0 -0
  744. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/wire.h +0 -0
  745. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
  746. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
  747. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
  748. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
  749. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/exciter.py +0 -0
  750. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/rft_element.py +0 -0
  751. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/slice_elements.py +0 -0
  752. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/slice_elements_thick.py +0 -0
  753. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/footprint.py +0 -0
  754. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/general.py +0 -0
  755. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/headers/atomicadd.h +0 -0
  756. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/headers/checks.h +0 -0
  757. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/headers/constants.h +0 -0
  758. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/headers/particle_states.h +0 -0
  759. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/headers/synrad_spectrum.h +0 -0
  760. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/internal_record.py +0 -0
  761. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/json.py +0 -0
  762. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/linear_normal_form.py +0 -0
  763. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/loss_location_refinement/__init__.py +0 -0
  764. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
  765. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/lumi.py +0 -0
  766. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/mad_loader.py +0 -0
  767. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/mad_parser/__init__.py +0 -0
  768. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/mad_parser/madx.lark +0 -0
  769. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/mad_writer.py +0 -0
  770. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/madng_interface.py +0 -0
  771. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/match.py +0 -0
  772. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/__init__.py +0 -0
  773. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/beam_position_monitor.h +0 -0
  774. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/beam_position_monitor.py +0 -0
  775. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/beam_profile_monitor.h +0 -0
  776. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/beam_profile_monitor.py +0 -0
  777. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/beam_size_monitor.h +0 -0
  778. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/beam_size_monitor.py +0 -0
  779. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/last_turns_monitor.h +0 -0
  780. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/last_turns_monitor.py +0 -0
  781. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/particles_monitor.h +0 -0
  782. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/particles_monitor.py +0 -0
  783. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/multiline.py +0 -0
  784. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/multiline_legacy/__init__.py +0 -0
  785. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/multiline_legacy/multiline_legacy.py +0 -0
  786. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/multiline_legacy/shared_knobs.py +0 -0
  787. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/multisetter/__init__.py +0 -0
  788. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/multisetter/multisetter.py +0 -0
  789. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/particles/__init__.py +0 -0
  790. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/particles/constants.py +0 -0
  791. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/particles/particles.py +0 -0
  792. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/particles/rng_src/base_rng.h +0 -0
  793. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/particles/rng_src/particles_rng.h +0 -0
  794. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/pipeline/__init__.py +0 -0
  795. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/pipeline/core.py +0 -0
  796. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/pipeline/manager.py +0 -0
  797. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/pipeline/multitracker.py +0 -0
  798. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/progress_indicator.py +0 -0
  799. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/random/__init__.py +0 -0
  800. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/random/random_generators.py +0 -0
  801. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/random/random_src/exponential.h +0 -0
  802. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
  803. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/random/random_src/normal.h +0 -0
  804. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/random/random_src/rutherford.h +0 -0
  805. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/random/random_src/uniform.h +0 -0
  806. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/random/random_src/uniform_accurate.h +0 -0
  807. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/survey.py +0 -0
  808. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/synctime.py +0 -0
  809. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/tapering.py +0 -0
  810. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/targets.py +0 -0
  811. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/tracker.py +0 -0
  812. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/tracker_data.py +0 -0
  813. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/tracker_src/tracker.h +0 -0
  814. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/trajectory_correction.py +0 -0
  815. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/twiss.py +0 -0
  816. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/twissplot.py +0 -0
  817. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack.egg-info/dependency_links.txt +0 -0
  818. {xtrack-0.76.1 → xtrack-0.77.0}/xtrack.egg-info/requires.txt +0 -0
  819. {xtrack-0.76.1 → xtrack-0.77.0}/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.76.1
3
+ Version: 0.77.0
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
@@ -0,0 +1,107 @@
1
+ import xtrack as xt
2
+ import xpart as xp
3
+ from xpart.longitudinal.rf_bucket import RFBucket
4
+
5
+ import numpy as np
6
+ from scipy.constants import c as clight
7
+ from scipy.constants import e as qe
8
+ import matplotlib.pyplot as plt
9
+
10
+ gamma0 = 5 # defines the energy of the beam
11
+ gamma_transition = 4.
12
+ momentum_compaction_factor = 1 / gamma_transition**2
13
+ compensate_phase = True
14
+
15
+ particle_ref = xt.Particles(gamma0=gamma0,
16
+ mass0=xt.PROTON_MASS_EV)
17
+
18
+ circumference = 1000.
19
+ t_rev = circumference / (particle_ref.beta0[0] * clight)
20
+ f_rev = 1 / t_rev
21
+
22
+ energy_ref_increment = 50e3 # eV
23
+
24
+ eta = momentum_compaction_factor - 1 / particle_ref.gamma0[0]**2
25
+
26
+ h_rf = 40
27
+
28
+ f_rf = h_rf * f_rev
29
+ v_rf = 100e3
30
+ lag_rf = 180. if eta > 0. else 0.
31
+
32
+ # Compute momentum increment using auxiliary particle
33
+ dp0c_eV = energy_ref_increment / particle_ref.beta0[0]
34
+
35
+ if compensate_phase:
36
+ phi = np.arcsin(dp0c_eV * particle_ref.beta0[0] / v_rf)
37
+ if eta > 0:
38
+ phi = np.pi - phi
39
+ lag_rf = np.rad2deg(phi)
40
+
41
+ otm = xt.LineSegmentMap(
42
+ betx=1., bety=1,
43
+ qx=6.3, qy=6.4,
44
+ momentum_compaction_factor=momentum_compaction_factor,
45
+ longitudinal_mode="nonlinear",
46
+ voltage_rf=v_rf,
47
+ frequency_rf=f_rf,
48
+ lag_rf=lag_rf,
49
+ length=circumference,
50
+ energy_ref_increment=energy_ref_increment
51
+ )
52
+
53
+ line = xt.Line(elements=[otm], particle_ref=particle_ref)
54
+
55
+ tw = line.twiss()
56
+
57
+ delta_test = np.linspace(0, 5e-3, 20)
58
+ p = line.build_particles(delta=delta_test)
59
+
60
+ line.track(p, turn_by_turn_monitor=True, num_turns=1000)
61
+ mon = line.record_last_track
62
+
63
+ p_gauss, matcher = xp.generate_matched_gaussian_bunch(
64
+ line=line,
65
+ num_particles=10_000,
66
+ nemitt_x=2.5e-6,
67
+ nemitt_y=2.5e-6,
68
+ sigma_z=2.,
69
+ return_matcher=True)
70
+
71
+ rfb = line._get_bucket()
72
+ z_separatrix = np.linspace(rfb.z_left, rfb.z_right, 1000)
73
+ delta_separatrix = rfb.separatrix(z_separatrix)
74
+
75
+ plt.close('all')
76
+ plt.figure(1)
77
+ plt.plot(p_gauss.zeta, p_gauss.delta, '.', color='k', alpha=0.5)
78
+ plt.plot(mon.zeta.T, mon.delta.T, color='C0')
79
+ plt.plot(z_separatrix, delta_separatrix, color='C1')
80
+ plt.plot(z_separatrix, -delta_separatrix, color='C1')
81
+ plt.xlabel('zeta [m]')
82
+ plt.ylabel('delta')
83
+
84
+ # Check the force and hamiltonian
85
+ z_test = np.linspace(-30, 30, 1000)
86
+ force = rfb.total_force(z_test)
87
+ hamiltonian = rfb.hamiltonian(z_test, 0)
88
+
89
+ plt.figure(2)
90
+ ax1 = plt.subplot(2,1,1)
91
+ ax1.plot(z_test, force)
92
+ ax1.set_ylabel(r'F($\zeta$)')
93
+ ax2 = plt.subplot(2,1,2, sharex=ax1)
94
+ ax2.plot(z_test, hamiltonian)
95
+ ax2.set_xlabel(r'$\zeta$ [m]')
96
+ ax2.set_ylabel(r'$H(\zeta, 0)$')
97
+
98
+ # Check hamiltonian on the delta axis
99
+ delta_test = np.linspace(-1e-2, 1e-2, 1000)
100
+ plt.figure(3)
101
+ plt.plot(delta_test, matcher.rfbucket.hamiltonian(0, delta_test))
102
+ plt.plot(delta_test, matcher.psi_object.H(0, delta_test))
103
+ plt.plot(delta_test, matcher.rfbucket.hamiltonian(0, delta_test, make_convex=True), '--')
104
+ plt.xlabel(r'$\delta$')
105
+ plt.ylabel(r'$H(0, \delta)$')
106
+
107
+ plt.show()
@@ -0,0 +1,57 @@
1
+ import xtrack as xt
2
+ import xobjects as xo
3
+ import numpy as np
4
+ from scipy.constants import c as clight
5
+
6
+ p = xt.Particles(mass0=xt.PROTON_MASS_EV, q0=1,
7
+ kinetic_energy0=50e6, delta=0.1)
8
+
9
+ beta0 = p.beta0[0]
10
+ gamma0 = p.gamma0[0]
11
+ mass0_ev = p.mass0
12
+ energy0 = p.energy0[0]
13
+ energy = p.energy[0]
14
+ p0c = p.p0c[0]
15
+
16
+ delta = p.delta[0]
17
+ ptau = p.ptau[0]
18
+ pzeta = p.pzeta[0]
19
+
20
+ beta = beta0 * p.rvv[0]
21
+ gamma = energy / energy0 * gamma0
22
+
23
+ xo.assert_allclose(gamma0, 1 / np.sqrt(1 - beta0**2), rtol=0, atol=1e-14)
24
+ xo.assert_allclose(gamma, 1 / np.sqrt(1 - beta**2), rtol=0, atol=1e-14)
25
+ xo.assert_allclose(energy, mass0_ev * gamma, rtol=0, atol=1e-6) # 1e-6 eV
26
+ xo.assert_allclose(energy0, mass0_ev * gamma0, rtol=0, atol=1e-6) # 1e-6 eV
27
+
28
+ Pc = p0c * (1 + delta)
29
+ xo.assert_allclose(Pc, mass0_ev * gamma * beta, rtol=0, atol=1e-6) # 1e-6 eV
30
+
31
+ # Definitions delta/ptau/pzeta
32
+ xo.assert_allclose(delta, (Pc - p0c) / p0c, rtol=0, atol=1e-14)
33
+ xo.assert_allclose(ptau, (energy - energy0) / energy0 / beta0, rtol=0, atol=1e-14)
34
+ xo.assert_allclose(pzeta,(energy - energy0) / energy0 / beta0**2, rtol=0, atol=1e-14)
35
+ xo.assert_allclose(pzeta,(energy - energy0) / p0c / beta0, rtol=0, atol=1e-14)
36
+
37
+ # Conversions
38
+ xo.assert_allclose(delta, np.sqrt(ptau**2 + 2*ptau/beta0 + 1) - 1, rtol=0, atol=1e-14)
39
+ xo.assert_allclose(delta, np.sqrt(beta0**2 * pzeta**2 + 2*pzeta + 1) - 1, rtol=0, atol=1e-14)
40
+ xo.assert_allclose(delta, beta * ptau + (beta - beta0)/beta0, rtol=0, atol=1e-14)
41
+ xo.assert_allclose(delta, beta * beta0 * pzeta + (beta - beta0)/beta0, rtol=0, atol=1e-14)
42
+
43
+ # More relations from the physics manual
44
+ xo.assert_allclose(gamma, gamma0 * (1 + beta0 * ptau), rtol=0, atol=1e-14)
45
+ xo.assert_allclose(beta, np.sqrt(1 - (1 - beta0**2)/(1 + beta0 * ptau)**2), rtol=0, atol=1e-14)
46
+
47
+ # Check relations for small energy deviations
48
+ p_small = xt.Particles(mass0=xt.PROTON_MASS_EV, q0=1,
49
+ kinetic_energy0=50e6, delta=1e-4)
50
+ delta_small = p_small.delta[0]
51
+ ptau_small = p_small.ptau[0]
52
+ pzeta_small = p_small.pzeta[0]
53
+ beta_small = beta0 * p_small.rvv[0]
54
+
55
+ xo.assert_allclose(delta_small, ptau_small/beta0, rtol=0, atol=1e-8)
56
+ xo.assert_allclose(delta_small, pzeta_small, rtol=0, atol=1e-8)
57
+ xo.assert_allclose(beta_small, beta0 + (1 - beta0**2) * ptau_small, rtol=0, atol=1e-8)
@@ -0,0 +1,178 @@
1
+ import xtrack as xt
2
+ import xpart as xp
3
+ from xpart.longitudinal.rf_bucket import RFBucket
4
+
5
+ import numpy as np
6
+ from scipy.constants import c as clight
7
+ from scipy.constants import e as qe
8
+ from scipy.interpolate import interp1d
9
+ import matplotlib.pyplot as plt
10
+
11
+ gamma0 = 3. # defines the energy of the beam
12
+ gamma_transition = 4.
13
+ momentum_compaction_factor = 1 / gamma_transition**2
14
+ compensate_phase = True
15
+
16
+ particle_ref = xt.Particles(gamma0=gamma0,
17
+ mass0=xt.PROTON_MASS_EV)
18
+
19
+ circumference = 1000.
20
+ t_rev = circumference / (particle_ref.beta0[0] * clight)
21
+ f_rev = 1 / t_rev
22
+
23
+ energy_ref_increment = 50e3
24
+
25
+ eta = momentum_compaction_factor - 1 / particle_ref.gamma0[0]**2
26
+
27
+ h_rf = 40
28
+
29
+ f_rf = h_rf * f_rev
30
+ v_rf = 100e3
31
+ lag_rf = 180. if eta > 0. else 0.
32
+
33
+ # Compute momentum increment using auxiliary particle
34
+ dp0c_eV = energy_ref_increment / particle_ref.beta0[0]
35
+
36
+ if compensate_phase:
37
+ phi_below = np.arcsin(dp0c_eV * particle_ref.beta0[0] / v_rf)
38
+ phi_above = np.pi - phi_below
39
+ lag_rf_above = np.rad2deg(phi_above)
40
+ lag_rf_below = np.rad2deg(phi_below)
41
+ if eta > 0:
42
+ lag_rf = lag_rf_above
43
+ else:
44
+ lag_rf = lag_rf_below
45
+
46
+ otm = xt.LineSegmentMap(
47
+ betx=1., bety=1,
48
+ qx=6.3, qy=6.4,
49
+ momentum_compaction_factor=momentum_compaction_factor,
50
+ longitudinal_mode="nonlinear",
51
+ voltage_rf=v_rf,
52
+ frequency_rf=f_rf,
53
+ lag_rf=lag_rf,
54
+ length=circumference,
55
+ energy_ref_increment=energy_ref_increment
56
+ )
57
+
58
+ line = xt.Line(elements={'otm': otm}, particle_ref=particle_ref)
59
+
60
+ tw = line.twiss()
61
+
62
+ p, matcher = xp.generate_matched_gaussian_bunch(
63
+ line=line,
64
+ num_particles=10_000,
65
+ nemitt_x=2.5e-6,
66
+ nemitt_y=2.5e-6,
67
+ sigma_z=5,
68
+ return_matcher=True)
69
+
70
+
71
+ # Logger (log every ten turns)
72
+ num_turns = 50_000
73
+ log_every = 20
74
+ n_log = num_turns // log_every
75
+ mon = xt.ParticlesMonitor(
76
+ start_at_turn=0,
77
+ stop_at_turn=1,
78
+ n_repetitions=n_log,
79
+ repetition_period=log_every,
80
+ num_particles=len(p.x))
81
+
82
+ #########
83
+ # Track #
84
+ #########
85
+
86
+ jumped = False
87
+ i_jumped = None
88
+ while p.at_turn[0] < num_turns:
89
+ print(f'Turn {p.at_turn[0]}/{num_turns} ', end='\r', flush=True)
90
+
91
+ # Phase jump
92
+ if p.gamma0[0] > gamma_transition and not jumped:
93
+ print(f'Jumped at turn: {p.at_turn[0]}')
94
+ line['otm'].lag_rf = lag_rf_above
95
+ i_jumped = p.at_turn[0]
96
+ jumped = True
97
+
98
+ # Track
99
+ line.track(p, num_turns=100, turn_by_turn_monitor=mon)
100
+ p.reorganize() # (put lost particles at the end)
101
+
102
+ ############
103
+ # Plotting #
104
+ ############
105
+
106
+ # Generate separatrix for video
107
+ i_separatrix = []
108
+ z_separatrix = []
109
+ delta_separatrix = []
110
+ for i_sep in np.arange(0, num_turns, 100):
111
+ print(f'Separatrix {i_sep}/{num_turns} ', end='\r', flush=True)
112
+ line.particle_ref.gamma0 = mon.gamma0[i_sep//log_every, 0, 0]
113
+ line['otm'].lag_rf = lag_rf_above if i_sep >= i_jumped else lag_rf_below
114
+ try:
115
+ rfb = line._get_bucket()
116
+ i_separatrix.append(i_sep)
117
+ z_separatrix.append(np.linspace(rfb.z_left, rfb.z_right, 1000))
118
+ delta_separatrix.append(rfb.separatrix(z_separatrix[-1]))
119
+ except:
120
+ i_separatrix.append(i_sep)
121
+ z_separatrix.append(np.zeros(1000))
122
+ delta_separatrix.append(np.zeros(1000))
123
+ z_separatrix[-1][:] = -1e20
124
+ delta_separatrix[-1][:] = 0
125
+
126
+ sigma_z_rms = np.squeeze(mon.zeta.std(axis=1))
127
+ z_separatrix = np.array(z_separatrix)
128
+ delta_separatrix = np.array(delta_separatrix)
129
+ i_separatrix = np.array(i_separatrix)
130
+
131
+ plt.close('all')
132
+ fig1 = plt.figure(1)
133
+ plt.plot(mon.at_turn[:, 0, 0], sigma_z_rms)
134
+ plt.xlabel('Turn')
135
+ plt.ylabel('Bunch length [m]')
136
+ plt.show()
137
+
138
+ f_sep_z = interp1d(i_separatrix, z_separatrix, axis=0,
139
+ bounds_error=False, fill_value='extrapolate')
140
+ f_sep_delta = interp1d(i_separatrix, delta_separatrix, axis=0,
141
+ bounds_error=False, fill_value='extrapolate')
142
+
143
+ # Make movie (needed `conda install -c conda-forge ffmpeg``)
144
+ def update_plot(i_log, fig):
145
+ i_turn = mon.at_turn[i_log, 0, 0]
146
+ z_sep = f_sep_z(i_turn)
147
+ delta_sep = f_sep_delta(i_turn)
148
+
149
+ plot_separatrix = True
150
+ if np.abs(i_turn - i_jumped) < 100:
151
+ plot_separatrix = False
152
+
153
+ phi_rf_deg = np.rad2deg(phi_above) if i_turn >= i_jumped else np.rad2deg(phi_below)
154
+ plt.clf()
155
+ plt.plot(mon.zeta[i_log, :], mon.delta[i_log, :], '.', markersize=1)
156
+ if plot_separatrix:
157
+ plt.plot(z_sep, delta_sep, color='C1', linewidth=2)
158
+ plt.plot(z_sep, -delta_sep, color='C1', linewidth=2)
159
+ plt.xlim(-10, 10)
160
+ plt.ylim(-10e-3, 10e-3)
161
+ plt.xlabel('z [m]')
162
+ plt.ylabel(r'$\Delta p / p_0$')
163
+ plt.title(f'Turn {i_turn} '
164
+ r'$\sigma_\zeta = $' f'{sigma_z_rms[i_log]:.2f}\n'
165
+ r'$\gamma_0 = $' f'{mon.gamma0[i_log, 0, 0]:.2f} '
166
+ r'$\gamma_t = $' f'{gamma_transition:.2f} '
167
+ r'$\phi_{\mathrm{rf}} = $' f'{phi_rf_deg:.2f}')
168
+ plt.subplots_adjust(left=0.2, top=0.82)
169
+ plt.grid(alpha=0.5)
170
+
171
+ fig = plt.figure()
172
+ from matplotlib.animation import FFMpegFileWriter
173
+ moviewriter = FFMpegFileWriter(fps=15)
174
+ with moviewriter.saving(fig, 'transition.mp4', dpi=100):
175
+ for j in range(0, len(mon.zeta[:, 0, 0]), 1):
176
+ print(f'Frame {j}/{len(mon.zeta[:, 0, 0])} ', end='\r', flush=True)
177
+ update_plot(j, fig)
178
+ moviewriter.grab_frame()
@@ -0,0 +1,172 @@
1
+ import xtrack as xt
2
+ import xpart as xp
3
+ import xobjects as xo
4
+ from xpart.longitudinal.rf_bucket import RFBucket
5
+
6
+ import numpy as np
7
+ from scipy.constants import c as clight
8
+ from scipy.constants import e as qe
9
+ import matplotlib.pyplot as plt
10
+
11
+ gamma0 = 3 # defines the energy of the beam
12
+ gamma_transition = 4.
13
+ momentum_compaction_factor = 1 / gamma_transition**2
14
+
15
+ particle_ref = xt.Particles(gamma0=gamma0,
16
+ mass0=xt.PROTON_MASS_EV)
17
+
18
+ circumference = 1000.
19
+ t_rev = circumference / (particle_ref.beta0[0] * clight)
20
+ f_rev = 1 / t_rev
21
+
22
+ energy_ref_increment = 50e3 # eV
23
+
24
+ eta = momentum_compaction_factor - 1 / particle_ref.gamma0[0]**2
25
+ assert eta < 0
26
+
27
+ h_rf = 40
28
+
29
+ f_rf = h_rf * f_rev
30
+ v_rf = 100e3
31
+ lag_rf = 180. if eta > 0. else 0.
32
+
33
+ # Compute momentum increment using auxiliary particle
34
+ dp0c_eV = energy_ref_increment / particle_ref.beta0[0]
35
+
36
+ phi = np.arcsin(dp0c_eV * particle_ref.beta0[0] / v_rf)
37
+ if eta > 0:
38
+ phi = np.pi - phi
39
+ lag_rf = np.rad2deg(phi)
40
+
41
+ otm = xt.LineSegmentMap(
42
+ betx=1., bety=1,
43
+ qx=6.3, qy=6.4,
44
+ momentum_compaction_factor=momentum_compaction_factor,
45
+ longitudinal_mode="nonlinear",
46
+ voltage_rf=v_rf,
47
+ frequency_rf=f_rf,
48
+ lag_rf=lag_rf,
49
+ length=circumference,
50
+ energy_ref_increment=energy_ref_increment
51
+ )
52
+
53
+ line = xt.Line(elements={'otm': otm}, particle_ref=particle_ref)
54
+
55
+ tw = line.twiss()
56
+ xo.assert_allclose(tw.slip_factor, eta, atol=1e-3, rtol=0)
57
+ xo.assert_allclose(tw.qs, 0.0032729, atol=1e-7, rtol=0)
58
+
59
+ rfb = line._get_bucket()
60
+
61
+ # Mostly checking that they do not change
62
+ xo.assert_allclose(line['otm'].lag_rf[0], 30., # degrees
63
+ atol=1e-4, rtol=0)
64
+
65
+ xo.assert_allclose(np.rad2deg(rfb.dphi[0]), 30.,
66
+ atol=1e-4, rtol=0)
67
+
68
+ xo.assert_allclose(rfb.z_sfp, 0, atol=1e-4, rtol=0)
69
+ xo.assert_allclose(rfb.z_ufp, -8.33333, atol=1e-4, rtol=0)
70
+ xo.assert_allclose(rfb.z_left, rfb.z_ufp, atol=1e-4, rtol=0)
71
+ xo.assert_allclose(rfb.z_right, 4.7699056, atol=1e-4, rtol=0)
72
+
73
+ xo.assert_allclose(rfb.h_sfp(), -30.78255, atol=1e-3, rtol=0)
74
+ xo.assert_allclose(rfb.h_sfp(), rfb.hamiltonian(0, 0), atol=1e-3, rtol=0)
75
+ xo.assert_allclose(rfb.h_sfp(make_convex=True), 30.78255, atol=1e-3, rtol=0)
76
+ xo.assert_allclose(rfb.h_sfp(make_convex=True),
77
+ rfb.hamiltonian(rfb.z_sfp, 0, make_convex=True),
78
+ atol=1e-3, rtol=0)
79
+
80
+ # Build separatrix
81
+ z_separatrix_up = np.linspace(rfb.z_left, rfb.z_right, 1000)
82
+ delta_separatrix_up = rfb.separatrix(z_separatrix_up)
83
+
84
+ z_separatrix = np.array(
85
+ list(z_separatrix_up) + list(z_separatrix_up[::-1]))
86
+ delta_separatrix = np.array(
87
+ list(delta_separatrix_up) + list(-delta_separatrix_up[::-1]))
88
+
89
+ # Hamiltonian is defined to be zero on the separatrix
90
+ xo.assert_allclose(rfb.hamiltonian(z_separatrix, delta_separatrix), 0,
91
+ atol=1e-3, rtol=0)
92
+ xo.assert_allclose(rfb.hamiltonian(z_separatrix, delta_separatrix, make_convex=True), 0,
93
+ atol=1e-3, rtol=0)
94
+
95
+ # Check that the separatrix behaves as such in tracking
96
+ p = line.build_particles(delta=delta_separatrix[::10]*0.99, zeta=z_separatrix[::10]*0.99)
97
+ line.track(p, turn_by_turn_monitor=True, num_turns=3000)
98
+ mon = line.record_last_track
99
+ assert np.all(mon.zeta < rfb.z_right)
100
+ assert np.all(mon.zeta > rfb.z_left)
101
+
102
+ p = line.build_particles(delta=delta_separatrix[::10]*1.01, zeta=z_separatrix[::10]*1.01)
103
+ line.track(p, turn_by_turn_monitor=True, num_turns=3000)
104
+ mon = line.record_last_track
105
+ assert not np.all(mon.zeta < rfb.z_right)
106
+ assert not np.all(mon.zeta > rfb.z_left)
107
+
108
+ # Check the stable fixed point against tracking
109
+ p = line.build_particles(delta=0, zeta=rfb.z_sfp)
110
+ line.track(p, turn_by_turn_monitor=True, num_turns=3000)
111
+ mon = line.record_last_track
112
+ xo.assert_allclose(mon.zeta, rfb.z_sfp, atol=2e-3*(rfb.z_right - rfb.z_left),
113
+ rtol=0)
114
+ bucket_height = rfb.separatrix(rfb.z_sfp)[0]
115
+ xo.assert_allclose(mon.delta, 0, atol=2e-2*bucket_height, rtol=0)
116
+
117
+ # Fix numpy random seed
118
+ np.random.seed(0)
119
+
120
+ # Match a bunch
121
+ sigma_z = 2.
122
+ p, matcher = xp.generate_matched_gaussian_bunch(
123
+ line=line,
124
+ num_particles=100_000,
125
+ nemitt_x=2.5e-6,
126
+ nemitt_y=2.5e-6,
127
+ sigma_z=sigma_z,
128
+ return_matcher=True)
129
+ sigma_delta = p.delta.std()
130
+
131
+ assert np.all(p.zeta < rfb.z_right)
132
+ assert np.all(p.zeta > rfb.z_left)
133
+ assert np.all(p.delta < bucket_height)
134
+ assert np.all(p.delta > -bucket_height)
135
+
136
+ xo.assert_allclose(p.delta.max(), bucket_height, atol=0, rtol=0.03)
137
+ xo.assert_allclose(p.delta.min(), -bucket_height, atol=0, rtol=0.03)
138
+ xo.assert_allclose(p.zeta.max(), rfb.z_right, atol=0, rtol=0.03)
139
+ xo.assert_allclose(p.zeta.min(), rfb.z_left, atol=0, rtol=0.05) # this part of the bucket is poorly populated
140
+ xo.assert_allclose(p.zeta.std(), sigma_z, atol=0, rtol=0.001)
141
+
142
+ # Check that the distribution stays roughly stable over one synchrotron period
143
+ p, matcher = xp.generate_matched_gaussian_bunch(
144
+ line=line,
145
+ num_particles=10_000,
146
+ nemitt_x=2.5e-6,
147
+ nemitt_y=2.5e-6,
148
+ sigma_z=sigma_z,
149
+ return_matcher=True)
150
+
151
+ num_turns = int(np.round(1/tw.qs))
152
+ log_every = 3
153
+ n_log = num_turns // log_every
154
+ mon = xt.ParticlesMonitor(
155
+ start_at_turn=0,
156
+ stop_at_turn=1,
157
+ n_repetitions=n_log,
158
+ repetition_period=log_every,
159
+ num_particles=len(p.x))
160
+
161
+ line.track(p, num_turns=num_turns, turn_by_turn_monitor=mon,
162
+ with_progress=10)
163
+
164
+ z_mean = np.squeeze(np.mean(mon.zeta, axis=1))
165
+ z_std = np.squeeze(np.std(mon.zeta, axis=1))
166
+ delta_mean = np.squeeze(np.mean(mon.delta, axis=1))
167
+ delta_std = np.squeeze(np.std(mon.delta, axis=1))
168
+
169
+ xo.assert_allclose(z_mean, np.mean(z_mean), atol=0.02*sigma_z)
170
+ xo.assert_allclose(z_std, np.mean(z_std), atol=0.02*sigma_z)
171
+ xo.assert_allclose(delta_mean, np.mean(delta_mean), atol=0.02*sigma_delta)
172
+ xo.assert_allclose(delta_std, np.mean(delta_std), atol=0.02*sigma_delta)
@@ -0,0 +1,171 @@
1
+ import xtrack as xt
2
+ import xpart as xp
3
+ import xobjects as xo
4
+ from xpart.longitudinal.rf_bucket import RFBucket
5
+
6
+ import numpy as np
7
+ from scipy.constants import c as clight
8
+ from scipy.constants import e as qe
9
+ import matplotlib.pyplot as plt
10
+
11
+ gamma0 = 10. # defines the energy of the beam
12
+ gamma_transition = 4.
13
+ momentum_compaction_factor = 1 / gamma_transition**2
14
+
15
+ particle_ref = xt.Particles(gamma0=gamma0,
16
+ mass0=xt.PROTON_MASS_EV)
17
+
18
+ circumference = 1000.
19
+ t_rev = circumference / (particle_ref.beta0[0] * clight)
20
+ f_rev = 1 / t_rev
21
+
22
+ energy_ref_increment = 50e3 # eV
23
+
24
+ eta = momentum_compaction_factor - 1 / particle_ref.gamma0[0]**2
25
+ assert eta > 0
26
+
27
+ h_rf = 40
28
+
29
+ f_rf = h_rf * f_rev
30
+ v_rf = 100e3
31
+ lag_rf = 180. if eta > 0. else 0.
32
+
33
+ # Compute momentum increment using auxiliary particle
34
+ dp0c_eV = energy_ref_increment / particle_ref.beta0[0]
35
+ phi = np.arcsin(dp0c_eV * particle_ref.beta0[0] / v_rf)
36
+ if eta > 0:
37
+ phi = np.pi - phi
38
+ lag_rf = np.rad2deg(phi)
39
+
40
+ otm = xt.LineSegmentMap(
41
+ betx=1., bety=1,
42
+ qx=6.3, qy=6.4,
43
+ momentum_compaction_factor=momentum_compaction_factor,
44
+ longitudinal_mode="nonlinear",
45
+ voltage_rf=v_rf,
46
+ frequency_rf=f_rf,
47
+ lag_rf=lag_rf,
48
+ length=circumference,
49
+ energy_ref_increment=energy_ref_increment
50
+ )
51
+
52
+ line = xt.Line(elements={'otm': otm}, particle_ref=particle_ref)
53
+
54
+ tw = line.twiss()
55
+ xo.assert_allclose(tw.slip_factor, eta, atol=1e-3, rtol=0)
56
+ xo.assert_allclose(tw.qs, 0.00176525, atol=1e-7, rtol=0)
57
+
58
+ rfb = line._get_bucket()
59
+
60
+ # Mostly checking that they do not change
61
+ xo.assert_allclose(line['otm'].lag_rf[0], 180-30., # degrees
62
+ atol=1e-4, rtol=0)
63
+
64
+ xo.assert_allclose(np.rad2deg(rfb.dphi[0]), 180-30.,
65
+ atol=1e-4, rtol=0)
66
+
67
+ xo.assert_allclose(rfb.z_sfp, 0, atol=1e-4, rtol=0)
68
+ xo.assert_allclose(rfb.z_ufp, 8.33333, atol=1e-4, rtol=0)
69
+ xo.assert_allclose(rfb.z_left, -4.76990, atol=1e-4, rtol=0)
70
+ xo.assert_allclose(rfb.z_right, rfb.z_ufp, atol=1e-4, rtol=0)
71
+
72
+ xo.assert_allclose(rfb.h_sfp(), 8.75048, atol=1e-3, rtol=0)
73
+ xo.assert_allclose(rfb.h_sfp(), rfb.hamiltonian(0, 0), atol=1e-3, rtol=0)
74
+ xo.assert_allclose(rfb.h_sfp(make_convex=True), 8.75048, atol=1e-3, rtol=0)
75
+ xo.assert_allclose(rfb.h_sfp(make_convex=True),
76
+ rfb.hamiltonian(rfb.z_sfp, 0, make_convex=True),
77
+ atol=1e-3, rtol=0)
78
+
79
+ # Build separatrix
80
+ z_separatrix_up = np.linspace(rfb.z_left, rfb.z_right, 1000)
81
+ delta_separatrix_up = rfb.separatrix(z_separatrix_up)
82
+
83
+ z_separatrix = np.array(
84
+ list(z_separatrix_up) + list(z_separatrix_up[::-1]))
85
+ delta_separatrix = np.array(
86
+ list(delta_separatrix_up) + list(-delta_separatrix_up[::-1]))
87
+
88
+ # Hamiltonian is defined to be zero on the separatrix
89
+ xo.assert_allclose(rfb.hamiltonian(z_separatrix, delta_separatrix), 0,
90
+ atol=1e-3, rtol=0)
91
+ xo.assert_allclose(rfb.hamiltonian(z_separatrix, delta_separatrix, make_convex=True), 0,
92
+ atol=1e-3, rtol=0)
93
+
94
+ # Check that the separatrix behaves as such in tracking
95
+ p = line.build_particles(delta=delta_separatrix[::10]*0.98, zeta=z_separatrix[::10]*0.98)
96
+ line.track(p, turn_by_turn_monitor=True, num_turns=3000)
97
+ mon = line.record_last_track
98
+ assert np.all(mon.zeta < rfb.z_right)
99
+ assert np.all(mon.zeta > rfb.z_left)
100
+
101
+ p = line.build_particles(delta=delta_separatrix[::10]*1.01, zeta=z_separatrix[::10]*1.01)
102
+ line.track(p, turn_by_turn_monitor=True, num_turns=3000)
103
+ mon = line.record_last_track
104
+ assert not np.all(mon.zeta < rfb.z_right)
105
+ assert not np.all(mon.zeta > rfb.z_left)
106
+
107
+ # Check the stable fixed point against tracking
108
+ p = line.build_particles(delta=0, zeta=rfb.z_sfp)
109
+ line.track(p, turn_by_turn_monitor=True, num_turns=3000)
110
+ mon = line.record_last_track
111
+ xo.assert_allclose(mon.zeta, rfb.z_sfp, atol=2e-3*(rfb.z_right - rfb.z_left),
112
+ rtol=0)
113
+ bucket_height = rfb.separatrix(rfb.z_sfp)[0]
114
+ xo.assert_allclose(mon.delta, 0, atol=2e-2*bucket_height, rtol=0)
115
+
116
+ # Fix numpy random seed
117
+ np.random.seed(0)
118
+
119
+ # Match a bunch
120
+ sigma_z = 2.
121
+ p, matcher = xp.generate_matched_gaussian_bunch(
122
+ line=line,
123
+ num_particles=100_000,
124
+ nemitt_x=2.5e-6,
125
+ nemitt_y=2.5e-6,
126
+ sigma_z=sigma_z,
127
+ return_matcher=True)
128
+ sigma_delta = p.delta.std()
129
+
130
+ assert np.all(p.zeta < rfb.z_right)
131
+ assert np.all(p.zeta > rfb.z_left)
132
+ assert np.all(p.delta < bucket_height)
133
+ assert np.all(p.delta > -bucket_height)
134
+
135
+ xo.assert_allclose(p.delta.max(), bucket_height, atol=0, rtol=0.03)
136
+ xo.assert_allclose(p.delta.min(), -bucket_height, atol=0, rtol=0.03)
137
+ xo.assert_allclose(p.zeta.max(), rfb.z_right, atol=0, rtol=0.7) # this part of the bucket is poorly populated
138
+ xo.assert_allclose(p.zeta.min(), rfb.z_left, atol=0, rtol=0.03)
139
+ xo.assert_allclose(p.zeta.std(), sigma_z, atol=0, rtol=0.002)
140
+
141
+ # Check that the distribution stays roughly stable over one synchrotron period
142
+ p, matcher = xp.generate_matched_gaussian_bunch(
143
+ line=line,
144
+ num_particles=10_000,
145
+ nemitt_x=2.5e-6,
146
+ nemitt_y=2.5e-6,
147
+ sigma_z=sigma_z,
148
+ return_matcher=True)
149
+
150
+ num_turns = int(np.round(1/tw.qs))
151
+ log_every = 3
152
+ n_log = num_turns // log_every
153
+ mon = xt.ParticlesMonitor(
154
+ start_at_turn=0,
155
+ stop_at_turn=1,
156
+ n_repetitions=n_log,
157
+ repetition_period=log_every,
158
+ num_particles=len(p.x))
159
+
160
+ line.track(p, num_turns=num_turns, turn_by_turn_monitor=mon,
161
+ with_progress=10)
162
+
163
+ z_mean = np.squeeze(np.mean(mon.zeta, axis=1))
164
+ z_std = np.squeeze(np.std(mon.zeta, axis=1))
165
+ delta_mean = np.squeeze(np.mean(mon.delta, axis=1))
166
+ delta_std = np.squeeze(np.std(mon.delta, axis=1))
167
+
168
+ xo.assert_allclose(z_mean, np.mean(z_mean), atol=0.02*sigma_z)
169
+ xo.assert_allclose(z_std, np.mean(z_std), atol=0.02*sigma_z)
170
+ xo.assert_allclose(delta_mean, np.mean(delta_mean), atol=0.02*sigma_delta)
171
+ xo.assert_allclose(delta_std, np.mean(delta_std), atol=0.02*sigma_delta)