xtrack 0.89.2__tar.gz → 0.89.4__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.
- {xtrack-0.89.2/xtrack.egg-info → xtrack-0.89.4}/PKG-INFO +1 -1
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_load.py +23 -0
- xtrack-0.89.4/xtrack/_version.py +1 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements.py +5 -5
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/dipoleedge.h +4 -5
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/drift.h +2 -2
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/drift_exact.h +2 -2
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/drift_exact_slice.h +6 -5
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/drift_slice.h +6 -6
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/drift_slice_bend.h +7 -6
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/drift_slice_cavity.h +7 -6
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/drift_slice_crab_cavity.h +7 -6
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/drift_slice_multipole.h +7 -6
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +7 -6
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +7 -6
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/drift_slice_rbend.h +7 -6
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +7 -6
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/drift_slice_uniform_solenoid.h +7 -6
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/elens.h +2 -2
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/exciter.h +8 -7
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/legacy_solenoid.h +2 -2
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/magnet_edge.h +6 -5
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/misalignment.h +0 -4
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +2 -2
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/simplethinbend.h +2 -2
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +2 -2
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/srotation.h +2 -2
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_legacy_solenoid_radiation.h +3 -3
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_magnet.h +21 -19
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_magnet.template.h +21 -19
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_magnet_radiation.h +3 -3
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_mult_fringe.h +2 -2
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_rf.h +10 -7
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_rf.template.h +10 -7
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/variable_solenoid.h +2 -2
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/xrotation.h +2 -2
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/xyshift.h +2 -2
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/yrotation.h +2 -2
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/zetashift.h +2 -2
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/general.py +6 -2
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/line.py +9 -11
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/loss_location_refinement/loss_location_refinement.py +3 -1
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/monitors/particles_monitor.h +3 -4
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/tracker.py +24 -24
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/trajectory_correction.py +1 -1
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/twiss.py +2 -0
- {xtrack-0.89.2 → xtrack-0.89.4/xtrack.egg-info}/PKG-INFO +1 -1
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack.egg-info/SOURCES.txt +0 -1
- xtrack-0.89.2/xtrack/_version.py +0 -1
- xtrack-0.89.2/xtrack/beam_elements/elements_src/track_cavity.h +0 -66
- {xtrack-0.89.2 → xtrack-0.89.4}/LICENSE +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/MANIFEST.in +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/README.md +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/ducktrack/__init__.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/ducktrack/base_classes.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/ducktrack/be_beamfields/BB6D.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/ducktrack/be_beamfields/__init__.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/ducktrack/be_beamfields/beambeam.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/ducktrack/be_beamfields/boost.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/ducktrack/be_beamfields/qgauss.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/ducktrack/be_beamfields/slicing.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/ducktrack/be_beamfields/spacecharge.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/ducktrack/elements.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/ducktrack/line.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/ducktrack/mathlibs.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/ducktrack/particles.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/ducktrack/temp_pyparticles.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/pyproject.toml +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/setup.cfg +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/setup.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_acceleration.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_amplitude_detuning.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_aperture_table.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_apertures.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_attr_replicas_and_slices.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_bucket_with_ref_energy_change.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_cavity_absolute_time.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_chromatic_functions_vs_madx.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_coasting.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_collective_tracker.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_collimation.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_coupling_edwards_teng.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_electron_cooler.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_element_characterization_functions.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_element_internal_record.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_elements.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_elements_classflags.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_elements_thick.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_environment.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_fcc_ee_solenoid_correction.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_footprint.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_freeze_longitudinal.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_full_rings.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_h6_sps_beamline.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_hvkick.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_ions.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_legacy_multiline_to_env.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_lhc_env.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_lhc_match_phase_15.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_line.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_load_vars.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_lumi.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_mad_writer.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_madloader.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_madnginterface.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_magnet.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_match_and_track_from_element.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_match_coupling_knob.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_match_nested.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_match_optics_and_ip_knob.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_match_orbit_bump.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_match_tune_chroma_cminus.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_misalign.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_monitor.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_multi_bunch_gauss.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_multiline.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_multisetter.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_multispecies.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_native_madloader.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_optimize_for_tracking.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_particles.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_particles_basics.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_particles_pdg.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_pipeline.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_prebuild_kernels.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_ps_against_ptc.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_ps_multiturn_twiss.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_psb_chicane.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_pyht_interface.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_quadrupole_fringe_ptc.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_quadrupole_wedge.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_radial_steering.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_radiation.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_radiation_equilibrium_emittances.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_radiation_equilibrium_emittances_thick.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_radiation_integrals.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_random_gen.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_random_gen_exp.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_random_gen_gauss.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_random_gen_ruth.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_rbend_rbarc.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_rbend_straight_body.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_rf_track.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_rotation_signs.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_second_order_taylor_map.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_seeds.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_slice_and_insert_with_replicas.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_slice_elements.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_slicing.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_solenoid_bz_map_vs_boris_legacy.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_spacecharge_in_ring.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_spin.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_sps_thick.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_survey.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_tapering.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_thick_kickers_rf_crab.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_thick_lhc.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_tilt_shifts.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_tracker.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_trajectory_correcton.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_twiss.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_twiss_vs_madx_psb.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_vs_madx.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/tests/test_xmask_orbit_correction.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/__init__.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/_temp/__init__.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/_temp/lhc_match/__init__.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/_temp/lhc_match/var_limits.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/aperture_meas.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/base_element.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/__init__.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/apertures.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/beam_interaction.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/bend.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/cavity.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/crab_cavity.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/default_magnet_config.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/dipole_fringe.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/electroncooler.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/magnet.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/magnet_drift.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/magnet_kick.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/marker.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/multipole.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/multipoleedge.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/octupole.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/quadrupole.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/rbend.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/sextupole.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/slnd.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/temprf.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thick_slice_bend.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thick_slice_cavity.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thick_slice_crab_cavity.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thick_slice_multipole.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thick_slice_rbend.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thick_slice_uniform_solenoid.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thin_slice_bend.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thin_slice_cavity.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thin_slice_crab_cavity.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thin_slice_multipole.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thin_slice_octupole_entry.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thin_slice_octupole_exit.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_entry.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_exit.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thin_slice_rbend.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thin_slice_sextupole_entry.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thin_slice_sextupole_exit.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_entry.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_exit.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_drift.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_legacy_solenoid.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_legacy_solenoid_multipolar_components.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_magnet_configure.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_magnet_drift.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_magnet_edge.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_magnet_kick.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_misalignments.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_wedge.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_xrotation.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_xyshift.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/wedge.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/wire.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/exciter.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/rft_element.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/slice_base.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/slice_elements_drift.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/slice_elements_edge.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/slice_elements_thick.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/slice_elements_thin.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/environment.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/footprint.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/headers/atomicadd.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/headers/checks.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/headers/constants.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/headers/particle_states.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/headers/synrad_spectrum.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/headers/track.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/internal_record.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/json.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/linear_normal_form.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/load.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/loss_location_refinement/__init__.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/lumi.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/mad_loader.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/mad_parser/__init__.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/mad_parser/loader.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/mad_parser/madx.lark +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/mad_parser/parse.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/mad_writer.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/madng_interface.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/match.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/monitors/__init__.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/monitors/beam_position_monitor.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/monitors/beam_position_monitor.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/monitors/beam_profile_monitor.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/monitors/beam_profile_monitor.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/monitors/beam_size_monitor.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/monitors/beam_size_monitor.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/monitors/last_turns_monitor.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/monitors/last_turns_monitor.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/monitors/particles_monitor.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/multiline.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/multiline_legacy/__init__.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/multiline_legacy/multiline_legacy.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/multiline_legacy/shared_knobs.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/multisetter/__init__.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/multisetter/multisetter.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/particles/__init__.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/particles/constants.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/particles/masses.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/particles/particles.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/particles/pdg.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/particles/rng_src/base_rng.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/particles/rng_src/particles_rng.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/pipeline/__init__.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/pipeline/core.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/pipeline/manager.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/pipeline/multitracker.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/progress_indicator.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/random/__init__.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/random/random_generators.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/random/random_src/exponential.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/random/random_src/normal.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/random/random_src/rutherford.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/random/random_src/uniform.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/random/random_src/uniform_accurate.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/slicing.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/survey.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/svgutils/__init__.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/svgutils/parser.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/svgutils/path.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/svgutils/svgutils.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/synctime.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/tapering.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/targets.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/track_flags.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/tracker_data.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/tracker_src/tracker.h +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack/twissplot.py +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack.egg-info/dependency_links.txt +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack.egg-info/requires.txt +0 -0
- {xtrack-0.89.2 → xtrack-0.89.4}/xtrack.egg-info/top_level.txt +0 -0
|
@@ -6,6 +6,7 @@ import pytest
|
|
|
6
6
|
import xtrack as xt
|
|
7
7
|
import json
|
|
8
8
|
import textwrap
|
|
9
|
+
import gzip
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
@pytest.fixture
|
|
@@ -125,6 +126,28 @@ def test_load_http(input_fixture, format, suffix, with_format, tmpdir, request,
|
|
|
125
126
|
quad = loaded_entity['quad']
|
|
126
127
|
assert quad.length == 1.0 and quad.k1 == 0.5
|
|
127
128
|
|
|
129
|
+
@pytest.mark.parametrize(
|
|
130
|
+
'input_fixture,format,suffix', [
|
|
131
|
+
('json_line', 'json', 'json'),
|
|
132
|
+
('json_environment', 'json', 'json'),
|
|
133
|
+
]
|
|
134
|
+
)
|
|
135
|
+
@pytest.mark.parametrize('with_format', [True, False])
|
|
136
|
+
def test_load_http_gz(input_fixture, format, suffix, with_format, tmpdir, request, requests_mock):
|
|
137
|
+
input_data = request.getfixturevalue(input_fixture)
|
|
138
|
+
compressed_data=gzip.compress(input_data.encode("utf-8"))
|
|
139
|
+
|
|
140
|
+
url = f'http://example.com/test_input.{suffix}.gz'
|
|
141
|
+
requests_mock.get(url, content=compressed_data)
|
|
142
|
+
|
|
143
|
+
kwargs = {'file': url}
|
|
144
|
+
if with_format:
|
|
145
|
+
kwargs['format'] = format
|
|
146
|
+
loaded_entity = xt.load(**kwargs)
|
|
147
|
+
|
|
148
|
+
quad = loaded_entity['quad']
|
|
149
|
+
assert quad.length == 1.0 and quad.k1 == 0.5
|
|
150
|
+
|
|
128
151
|
|
|
129
152
|
def test_load_single_element():
|
|
130
153
|
string = json.dumps({
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '0.89.4'
|
|
@@ -140,13 +140,13 @@ class _HasModelRF:
|
|
|
140
140
|
"""
|
|
141
141
|
|
|
142
142
|
@property
|
|
143
|
-
def
|
|
144
|
-
return _INDEX_TO_MODEL_RF[self.
|
|
143
|
+
def model(self):
|
|
144
|
+
return _INDEX_TO_MODEL_RF[self._model]
|
|
145
145
|
|
|
146
|
-
@
|
|
147
|
-
def
|
|
146
|
+
@model.setter
|
|
147
|
+
def model(self, value):
|
|
148
148
|
try:
|
|
149
|
-
self.
|
|
149
|
+
self._model = _MODEL_TO_INDEX_RF[value]
|
|
150
150
|
except KeyError:
|
|
151
151
|
raise ValueError(f'Invalid RF model: {value}')
|
|
152
152
|
|
|
@@ -34,10 +34,10 @@ void DipoleEdge_track_local_particle(DipoleEdgeData el, LocalParticle* part0){
|
|
|
34
34
|
r43 = r43 * (1 + delta_taper);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)){
|
|
38
38
|
r21 = -r21;
|
|
39
39
|
r43 = -r43;
|
|
40
|
-
|
|
40
|
+
}
|
|
41
41
|
|
|
42
42
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
43
43
|
if (LocalParticle_check_track_flag(part0, XS_FLAG_SR_TAPER)){
|
|
@@ -52,12 +52,12 @@ void DipoleEdge_track_local_particle(DipoleEdgeData el, LocalParticle* part0){
|
|
|
52
52
|
}
|
|
53
53
|
else if (model == 1){
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)){
|
|
56
56
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
57
57
|
LocalParticle_kill_particle(part, -32);
|
|
58
58
|
END_PER_PARTICLE_BLOCK;
|
|
59
59
|
return;
|
|
60
|
-
|
|
60
|
+
}
|
|
61
61
|
|
|
62
62
|
double const e1 = DipoleEdgeData_get_e1(el);
|
|
63
63
|
double const fint = DipoleEdgeData_get_fint(el);
|
|
@@ -69,7 +69,6 @@ void DipoleEdge_track_local_particle(DipoleEdgeData el, LocalParticle* part0){
|
|
|
69
69
|
DipoleEdgeNonLinear_single_particle(part, k, e1, fint, hgap, side);
|
|
70
70
|
END_PER_PARTICLE_BLOCK;
|
|
71
71
|
|
|
72
|
-
#endif
|
|
73
72
|
}
|
|
74
73
|
|
|
75
74
|
}
|
|
@@ -14,9 +14,9 @@ GPUFUN
|
|
|
14
14
|
void Drift_track_local_particle(DriftData el, LocalParticle* part0){
|
|
15
15
|
|
|
16
16
|
double length = DriftData_get_length(el);
|
|
17
|
-
|
|
17
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
18
18
|
length = -length;
|
|
19
|
-
|
|
19
|
+
}
|
|
20
20
|
|
|
21
21
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
22
22
|
Drift_single_particle(part, length);
|
|
@@ -14,9 +14,9 @@ GPUFUN
|
|
|
14
14
|
void DriftExact_track_local_particle(DriftExactData el, LocalParticle* part0){
|
|
15
15
|
|
|
16
16
|
double length = DriftExactData_get_length(el);
|
|
17
|
-
|
|
17
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
18
18
|
length = -length;
|
|
19
|
-
|
|
19
|
+
}
|
|
20
20
|
|
|
21
21
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
22
22
|
Drift_single_particle_exact(part, length);
|
|
@@ -18,11 +18,12 @@ void DriftExactSlice_track_local_particle(
|
|
|
18
18
|
|
|
19
19
|
double weight = DriftExactSliceData_get_weight(el);
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
double length;
|
|
22
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
23
|
+
length = -weight * DriftExactSliceData_get__parent_length(el); // m
|
|
24
|
+
} else {
|
|
25
|
+
length = weight * DriftExactSliceData_get__parent_length(el); // m
|
|
26
|
+
}
|
|
26
27
|
|
|
27
28
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
28
29
|
Drift_single_particle_exact(part, length);
|
|
@@ -17,12 +17,12 @@ void DriftSlice_track_local_particle(
|
|
|
17
17
|
) {
|
|
18
18
|
|
|
19
19
|
double weight = DriftSliceData_get_weight(el);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
double length;
|
|
21
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
22
|
+
length = -weight * DriftSliceData_get__parent_length(el); // m
|
|
23
|
+
} else {
|
|
24
|
+
length = weight * DriftSliceData_get__parent_length(el); // m
|
|
25
|
+
}
|
|
26
26
|
|
|
27
27
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
28
28
|
Drift_single_particle(part, length);
|
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
) {
|
|
22
22
|
|
|
23
23
|
double weight = DriftSliceBendData_get_weight(el);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
double length;
|
|
25
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
26
|
+
length = -weight * DriftSliceBendData_get__parent_length(el); // m
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
length = weight * DriftSliceBendData_get__parent_length(el); // m
|
|
30
|
+
}
|
|
30
31
|
|
|
31
32
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
33
|
Drift_single_particle(part, length);
|
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
) {
|
|
22
22
|
|
|
23
23
|
double weight = DriftSliceCavityData_get_weight(el);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
double length;
|
|
25
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
26
|
+
length = -weight * DriftSliceCavityData_get__parent_length(el); // m
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
length = weight * DriftSliceCavityData_get__parent_length(el); // m
|
|
30
|
+
}
|
|
30
31
|
|
|
31
32
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
33
|
Drift_single_particle(part, length);
|
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
) {
|
|
22
22
|
|
|
23
23
|
double weight = DriftSliceCrabCavityData_get_weight(el);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
double length;
|
|
25
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
26
|
+
length = -weight * DriftSliceCrabCavityData_get__parent_length(el); // m
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
length = weight * DriftSliceCrabCavityData_get__parent_length(el); // m
|
|
30
|
+
}
|
|
30
31
|
|
|
31
32
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
33
|
Drift_single_particle(part, length);
|
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
) {
|
|
22
22
|
|
|
23
23
|
double weight = DriftSliceMultipoleData_get_weight(el);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
double length;
|
|
25
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
26
|
+
length = -weight * DriftSliceMultipoleData_get__parent_length(el); // m
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
length = weight * DriftSliceMultipoleData_get__parent_length(el); // m
|
|
30
|
+
}
|
|
30
31
|
|
|
31
32
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
33
|
Drift_single_particle(part, length);
|
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
) {
|
|
22
22
|
|
|
23
23
|
double weight = DriftSliceOctupoleData_get_weight(el);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
double length;
|
|
25
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
26
|
+
length = -weight * DriftSliceOctupoleData_get__parent_length(el); // m
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
length = weight * DriftSliceOctupoleData_get__parent_length(el); // m
|
|
30
|
+
}
|
|
30
31
|
|
|
31
32
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
33
|
Drift_single_particle(part, length);
|
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
) {
|
|
22
22
|
|
|
23
23
|
double weight = DriftSliceQuadrupoleData_get_weight(el);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
double length;
|
|
25
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
26
|
+
length = -weight * DriftSliceQuadrupoleData_get__parent_length(el); // m
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
length = weight * DriftSliceQuadrupoleData_get__parent_length(el); // m
|
|
30
|
+
}
|
|
30
31
|
|
|
31
32
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
33
|
Drift_single_particle(part, length);
|
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
) {
|
|
22
22
|
|
|
23
23
|
double weight = DriftSliceRBendData_get_weight(el);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
double length;
|
|
25
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
26
|
+
length = -weight * DriftSliceRBendData_get__parent_length(el); // m
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
length = weight * DriftSliceRBendData_get__parent_length(el); // m
|
|
30
|
+
}
|
|
30
31
|
|
|
31
32
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
33
|
Drift_single_particle(part, length);
|
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
) {
|
|
22
22
|
|
|
23
23
|
double weight = DriftSliceSextupoleData_get_weight(el);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
double length;
|
|
25
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
26
|
+
length = -weight * DriftSliceSextupoleData_get__parent_length(el); // m
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
length = weight * DriftSliceSextupoleData_get__parent_length(el); // m
|
|
30
|
+
}
|
|
30
31
|
|
|
31
32
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
33
|
Drift_single_particle(part, length);
|
{xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/drift_slice_uniform_solenoid.h
RENAMED
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
) {
|
|
22
22
|
|
|
23
23
|
double weight = DriftSliceUniformSolenoidData_get_weight(el);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
double length;
|
|
25
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
26
|
+
length = -weight * DriftSliceUniformSolenoidData_get__parent_length(el); // m
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
length = weight * DriftSliceUniformSolenoidData_get__parent_length(el); // m
|
|
30
|
+
}
|
|
30
31
|
|
|
31
32
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
33
|
Drift_single_particle(part, length);
|
|
@@ -13,9 +13,9 @@ void Elens_track_local_particle(ElensData el, LocalParticle* part0){
|
|
|
13
13
|
|
|
14
14
|
double elens_length = ElensData_get_elens_length(el);
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
17
17
|
elens_length = -elens_length;
|
|
18
|
-
|
|
18
|
+
}
|
|
19
19
|
|
|
20
20
|
double const inner_radius = ElensData_get_inner_radius(el);
|
|
21
21
|
double const outer_radius = ElensData_get_outer_radius(el);
|
|
@@ -25,11 +25,12 @@ void Exciter_track_local_particle(ExciterData el, LocalParticle* part0){
|
|
|
25
25
|
double const frev = ExciterData_get_frev(el);
|
|
26
26
|
int64_t const start_turn = ExciterData_get_start_turn(el);
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
double excit_sign;
|
|
29
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
30
|
+
excit_sign = -1;
|
|
31
|
+
} else {
|
|
32
|
+
excit_sign = 1;
|
|
33
|
+
}
|
|
33
34
|
|
|
34
35
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
35
36
|
// zeta is the absolute path length deviation from the reference particle: zeta = (s - beta0*c*t)
|
|
@@ -60,8 +61,8 @@ void Exciter_track_local_particle(ExciterData el, LocalParticle* part0){
|
|
|
60
61
|
factorial *= kk;
|
|
61
62
|
}
|
|
62
63
|
|
|
63
|
-
dpx +=
|
|
64
|
-
dpy +=
|
|
64
|
+
dpx += excit_sign * (knl[kk] * zre - ksl[kk] * zim) / factorial;
|
|
65
|
+
dpy += excit_sign * (knl[kk] * zim + ksl[kk] * zre) / factorial;
|
|
65
66
|
|
|
66
67
|
double const zret = zre * x - zim * y;
|
|
67
68
|
zim = zim * x + zre * y;
|
|
@@ -24,10 +24,10 @@ void Solenoid_track_local_particle(SolenoidData el, LocalParticle* part0) {
|
|
|
24
24
|
int64_t radiation_flag = SolenoidData_get_radiation_flag(el);
|
|
25
25
|
double factor_knl_ksl = 1;
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
28
28
|
length = -length;
|
|
29
29
|
factor_knl_ksl = -1;
|
|
30
|
-
|
|
30
|
+
}
|
|
31
31
|
|
|
32
32
|
#ifndef XTRACK_SOLENOID_NO_SYNRAD
|
|
33
33
|
double dp_record_entry = 0.;
|
|
@@ -27,11 +27,12 @@ void MagnetEdge_track_local_particle(MagnetEdgeData el, LocalParticle* part0)
|
|
|
27
27
|
const double face_angle_feed_down = MagnetEdgeData_get_face_angle_feed_down(el);
|
|
28
28
|
const double fringe_integral = MagnetEdgeData_get_fringe_integral(el);
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
double factor_for_backtrack;
|
|
31
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
32
|
+
factor_for_backtrack = -1;
|
|
33
|
+
} else {
|
|
34
|
+
factor_for_backtrack = 1;
|
|
35
|
+
}
|
|
35
36
|
|
|
36
37
|
track_magnet_edge_particles(
|
|
37
38
|
part0,
|
|
@@ -24,10 +24,6 @@ void Misalignment_track_local_particle(MisalignmentData el, LocalParticle* part0
|
|
|
24
24
|
const double tilt = MisalignmentData_get_tilt(el);
|
|
25
25
|
const double is_exit = MisalignmentData_get_is_exit(el);
|
|
26
26
|
|
|
27
|
-
#ifdef XSUITE_BACKTRACK
|
|
28
|
-
voltage = -voltage;
|
|
29
|
-
#endif
|
|
30
|
-
|
|
31
27
|
if (!is_exit) {
|
|
32
28
|
if (NONZERO(angle)) {
|
|
33
29
|
track_misalignment_entry_curved(part0, dx, dy, ds, theta, phi, psi, anchor, length, angle, tilt);
|
|
@@ -15,9 +15,9 @@ void ReferenceEnergyIncrease_track_local_particle(ReferenceEnergyIncreaseData el
|
|
|
15
15
|
|
|
16
16
|
double Delta_p0c = ReferenceEnergyIncreaseData_get_Delta_p0c(el);
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
19
19
|
Delta_p0c = -Delta_p0c;
|
|
20
|
-
|
|
20
|
+
}
|
|
21
21
|
|
|
22
22
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
23
23
|
LocalParticle_update_p0c(part, LocalParticle_get_p0c(part) + Delta_p0c);
|
|
@@ -17,11 +17,11 @@ void SimpleThinBend_track_local_particle(SimpleThinBendData el, LocalParticle* p
|
|
|
17
17
|
double hxl = SimpleThinBendData_get_hxl(el);
|
|
18
18
|
double length = SimpleThinBendData_get_length(el); // m
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
21
21
|
knl0 = -knl0;
|
|
22
22
|
hxl = -hxl;
|
|
23
23
|
length = -length;
|
|
24
|
-
|
|
24
|
+
}
|
|
25
25
|
|
|
26
26
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
27
27
|
double const chi = LocalParticle_get_chi(part);
|
|
@@ -14,9 +14,9 @@ void SimpleThinQuadrupole_track_local_particle(SimpleThinQuadrupoleData el, Loca
|
|
|
14
14
|
|
|
15
15
|
double knl1 = SimpleThinQuadrupoleData_get_knl(el, 1);
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
18
18
|
knl1 = -knl1;
|
|
19
|
-
|
|
19
|
+
}
|
|
20
20
|
|
|
21
21
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
22
22
|
double const x = LocalParticle_get_x(part);
|
|
@@ -16,9 +16,9 @@ void SRotation_track_local_particle(SRotationData el, LocalParticle* part0){
|
|
|
16
16
|
double sin_z = SRotationData_get_sin_z(el);
|
|
17
17
|
double cos_z = SRotationData_get_cos_z(el);
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
20
20
|
sin_z = -sin_z;
|
|
21
|
-
|
|
21
|
+
}
|
|
22
22
|
|
|
23
23
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
24
24
|
SRotation_single_particle(part, sin_z, cos_z);
|
{xtrack-0.89.2 → xtrack-0.89.4}/xtrack/beam_elements/elements_src/track_legacy_solenoid_radiation.h
RENAMED
|
@@ -115,9 +115,9 @@ void legacy_solenoid_apply_radiation_single_particle(
|
|
|
115
115
|
|
|
116
116
|
if ((spin_flag != 0) && (spin_x_0 != 0. || spin_y_0 != 0. || spin_z_0 != 0.)){
|
|
117
117
|
|
|
118
|
-
|
|
118
|
+
if (LocalParticle_check_track_flag(part, XS_FLAG_BACKTRACK)) {
|
|
119
119
|
LocalParticle_set_state(part, -33);
|
|
120
|
-
|
|
120
|
+
} else {
|
|
121
121
|
double const Bz_T = ks * brho0;
|
|
122
122
|
|
|
123
123
|
double const kin_px_mean = (old_px + new_ax);
|
|
@@ -209,7 +209,7 @@ void legacy_solenoid_apply_radiation_single_particle(
|
|
|
209
209
|
LocalParticle_set_spin_y(part, spin_y_3);
|
|
210
210
|
LocalParticle_set_spin_z(part, spin_z_3);
|
|
211
211
|
}
|
|
212
|
-
|
|
212
|
+
}
|
|
213
213
|
}
|
|
214
214
|
|
|
215
215
|
// Synchrotron radiation
|
|
@@ -368,13 +368,15 @@ void track_magnet_particles(
|
|
|
368
368
|
edge_exit_angle_fdown += rbend_half_angle;
|
|
369
369
|
}
|
|
370
370
|
|
|
371
|
+
double core_length, core_length_curved,factor_knl_ksl_body,
|
|
372
|
+
factor_knl_ksl_edge,factor_backtrack_edge;
|
|
371
373
|
// Backtracking
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
374
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
375
|
+
core_length = -length * weight;
|
|
376
|
+
core_length_curved = -length_curved * weight;
|
|
377
|
+
factor_knl_ksl_body = -factor_knl_ksl * weight;
|
|
378
|
+
factor_knl_ksl_edge = factor_knl_ksl; // Edge has a specific factor for backtracking
|
|
379
|
+
factor_backtrack_edge = -1.;
|
|
378
380
|
hxl = -hxl;
|
|
379
381
|
VSWAP(edge_entry_active, edge_exit_active);
|
|
380
382
|
VSWAP(edge_entry_model, edge_exit_model);
|
|
@@ -384,14 +386,14 @@ void track_magnet_particles(
|
|
|
384
386
|
VSWAP(edge_entry_hgap, edge_exit_hgap);
|
|
385
387
|
rbend_half_angle = -rbend_half_angle;
|
|
386
388
|
sin_rbha = -sin_rbha;
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
389
|
+
}
|
|
390
|
+
else {
|
|
391
|
+
core_length = length * weight;
|
|
392
|
+
core_length_curved = length_curved * weight;
|
|
393
|
+
factor_knl_ksl_body = factor_knl_ksl * weight;
|
|
394
|
+
factor_knl_ksl_edge = factor_knl_ksl;
|
|
395
|
+
factor_backtrack_edge = 1.;
|
|
396
|
+
}
|
|
395
397
|
|
|
396
398
|
#ifndef XTRACK_MULTIPOLE_NO_SYNRAD
|
|
397
399
|
if (radiation_flag == 10){ // from parent
|
|
@@ -496,11 +498,11 @@ void track_magnet_particles(
|
|
|
496
498
|
}
|
|
497
499
|
}
|
|
498
500
|
|
|
499
|
-
double k0_drift, k1_drift, h_drift, ks_drift;
|
|
500
|
-
double k0_kick, k1_kick, h_kick;
|
|
501
|
-
double k0_h_correction, k1_h_correction;
|
|
502
|
-
int8_t kick_rot_frame;
|
|
503
|
-
int8_t drift_model;
|
|
501
|
+
double k0_drift=0, k1_drift=0, h_drift=0, ks_drift=0;
|
|
502
|
+
double k0_kick=0, k1_kick=0, h_kick=0;
|
|
503
|
+
double k0_h_correction=0, k1_h_correction=0;
|
|
504
|
+
int8_t kick_rot_frame=0;
|
|
505
|
+
int8_t drift_model=0;
|
|
504
506
|
configure_tracking_model(
|
|
505
507
|
model,
|
|
506
508
|
k0,
|