@@ -1175,6 +1175,30 @@ def test_crab_dispersion(test_context):
11751175 assert np .allclose (tw6d_rf_on ['dx_zeta' ], tw4d_rf_off ['dx_zeta' ], rtol = 0 , atol = 1e-7 )
11761176 assert np .allclose (tw6d_rf_on ['dy_zeta' ], tw4d_rf_off ['dy_zeta' ], rtol = 0 , atol = 1e-7 )
11771177
1178+ @for_all_test_contexts
1179+ def test_higher_crab_dispersion (test_context ):
1180+
1181+ collider = xt .Multiline .from_json (test_data_folder /
1182+ 'hllhc15_collider/collider_00_from_mad.json' )
1183+ collider .build_trackers (_context = test_context )
1184+
1185+ collider .vars ['vrf400' ] = 16
1186+ collider .vars ['on_crab1' ] = - 190
1187+ collider .vars ['on_crab5' ] = - 190
1188+
1189+ line = collider .lhcb1
1190+
1191+ tw6d = line .twiss (method = '6d' )
1192+ dz = 1e-3
1193+ tw4d_plus = line .twiss (method = '4d' , zeta0 = dz , freeze_longitudinal = True )
1194+ tw4d_minus = line .twiss (method = '4d' , zeta0 = - dz , freeze_longitudinal = True )
1195+ dpx_dzeta_expected = (tw4d_plus .px - tw4d_minus .px ) / (2 * dz )
1196+ dpy_dzeta_expected = (tw4d_plus .py - tw4d_minus .py ) / (2 * dz )
1197+
1198+ assert np .allclose (tw6d ['dpx_zeta' ], dpx_dzeta_expected , rtol = 0 , atol = 1e-7 )
1199+ assert np .allclose (tw6d ['dpy_zeta' ], dpy_dzeta_expected , rtol = 0 , atol = 1e-7 )
1200+
1201+
11781202@for_all_test_contexts
11791203def test_twiss_group_compounds (test_context ):
11801204
0 commit comments