xtrack 0.48.2__tar.gz → 0.50.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.
- {xtrack-0.48.2/xtrack.egg-info → xtrack-0.50.0}/PKG-INFO +1 -1
- {xtrack-0.48.2 → xtrack-0.50.0}/ducktrack/elements.py +6 -6
- {xtrack-0.48.2 → xtrack-0.50.0}/setup.py +2 -1
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/__init__.py +5 -6
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/_temp/lhc_match/lhc_match.py +46 -46
- xtrack-0.50.0/xtrack/_version.py +1 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements.py +123 -482
- xtrack-0.50.0/xtrack/beam_elements/elements_src/bend.h +250 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/linesegmentmap.h +8 -9
- xtrack-0.50.0/xtrack/beam_elements/elements_src/quadrupole.h +27 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/track_thick_bend.h +20 -1
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/line.py +289 -59
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/mad_loader.py +9 -8
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/match.py +285 -94
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/multiline/multiline.py +11 -1
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/prebuild_kernels.py +0 -3
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/prebuilt_kernels/kernel_definitions.py +0 -2
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/twiss.py +392 -297
- {xtrack-0.48.2 → xtrack-0.50.0/xtrack.egg-info}/PKG-INFO +1 -1
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack.egg-info/SOURCES.txt +0 -3
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack.egg-info/requires.txt +2 -0
- xtrack-0.48.2/xtrack/_version.py +0 -1
- xtrack-0.48.2/xtrack/beam_elements/elements_src/bend.h +0 -61
- xtrack-0.48.2/xtrack/beam_elements/elements_src/combinedfunctionmagnet.h +0 -45
- xtrack-0.48.2/xtrack/beam_elements/elements_src/lineartransfermatrix.h +0 -216
- xtrack-0.48.2/xtrack/beam_elements/elements_src/multipolar_kick.h +0 -55
- xtrack-0.48.2/xtrack/beam_elements/elements_src/quadrupole.h +0 -42
- {xtrack-0.48.2 → xtrack-0.50.0}/LICENSE +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/MANIFEST.in +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/README.md +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/ducktrack/__init__.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/ducktrack/base_classes.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/ducktrack/be_beamfields/BB6D.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/ducktrack/be_beamfields/__init__.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/ducktrack/be_beamfields/beambeam.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/ducktrack/be_beamfields/boost.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/ducktrack/be_beamfields/qgauss.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/ducktrack/be_beamfields/slicing.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/ducktrack/be_beamfields/spacecharge.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/ducktrack/line.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/ducktrack/mathlibs.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/ducktrack/particles.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/ducktrack/temp_pyparticles.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/pyproject.toml +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/setup.cfg +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/_temp/__init__.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/_temp/lhc_match/__init__.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/_temp/lhc_match/var_limits.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/base_element.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/__init__.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/apertures.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/beam_interaction.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/cavity.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/dipoleedge.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/drift.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/drift_elem.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/elens.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/exciter.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/fringe.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/fringe_track.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/multipole.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/sextupole.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/solenoid.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/srotation.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/wedge.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/wedge_track.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/wire.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/beam_elements/exciter.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/compounds.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/footprint.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/general.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/headers/atomicadd.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/headers/checks.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/headers/constants.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/headers/particle_states.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/headers/synrad_spectrum.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/internal_record.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/linear_normal_form.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/loss_location_refinement/__init__.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/lumi.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/monitors/__init__.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/monitors/beam_position_monitor.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/monitors/beam_position_monitor.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/monitors/beam_profile_monitor.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/monitors/beam_profile_monitor.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/monitors/beam_size_monitor.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/monitors/beam_size_monitor.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/monitors/last_turns_monitor.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/monitors/last_turns_monitor.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/monitors/particles_monitor.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/monitors/particles_monitor.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/multiline/__init__.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/multiline/shared_knobs.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/multisetter/__init__.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/multisetter/multisetter.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/pipeline/__init__.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/pipeline/core.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/pipeline/manager.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/pipeline/multitracker.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/prebuilt_kernels/__init__.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/progress_indicator.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/random/__init__.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/random/random_generators.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/random/random_src/exponential.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/random/random_src/normal.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/random/random_src/rutherford.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/random/random_src/uniform.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/slicing.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/survey.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/tapering.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/targets.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/tracker.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/tracker_data.py +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack/tracker_src/tracker.h +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack.egg-info/dependency_links.txt +0 -0
- {xtrack-0.48.2 → xtrack-0.50.0}/xtrack.egg-info/top_level.txt +0 -0
@@ -636,10 +636,10 @@ class LinearTransferMatrix(Element):
|
|
636
636
|
("Q_s","","",0.0),
|
637
637
|
("chroma_x","","",0.0),
|
638
638
|
("chroma_y","","",0.0),
|
639
|
-
("
|
640
|
-
("
|
641
|
-
("
|
642
|
-
("
|
639
|
+
("det_xx","","",0.0),
|
640
|
+
("det_xy","","",0.0),
|
641
|
+
("det_yy","","",0.0),
|
642
|
+
("det_yx","","",0.0),
|
643
643
|
("energy_ref_increment","","",0.0),
|
644
644
|
("energy_increment","","",0.0),
|
645
645
|
("x_ref_0","","",0.0),
|
@@ -694,10 +694,10 @@ class LinearTransferMatrix(Element):
|
|
694
694
|
(1.0 + self.alpha_y_0*self.alpha_y_0)/self.beta_y_0 * p.y*p.y
|
695
695
|
+ 2*self.alpha_y_0 * p.y*p.py
|
696
696
|
+ self.beta_y_0 * p.py*p.py)
|
697
|
-
phase = 2*np.pi*(self.Q_x+self.chroma_x*p.delta+self.
|
697
|
+
phase = 2*np.pi*(self.Q_x+self.chroma_x*p.delta+self.det_xx*J_x+self.det_xy*J_y)
|
698
698
|
cos_x = cos(phase)
|
699
699
|
sin_x = sin(phase)
|
700
|
-
phase = 2*np.pi*(self.Q_y+self.chroma_y*p.delta+self.
|
700
|
+
phase = 2*np.pi*(self.Q_y+self.chroma_y*p.delta+self.det_yy*J_y+self.det_yx*J_x)
|
701
701
|
cos_y = cos(phase)
|
702
702
|
sin_y = sin(phase)
|
703
703
|
|
@@ -41,12 +41,13 @@ setup(
|
|
41
41
|
include_package_data=True,
|
42
42
|
install_requires=[
|
43
43
|
'numpy>=1.0',
|
44
|
+
"pandas>=2.0",
|
44
45
|
'scipy',
|
45
46
|
'xobjects',
|
46
47
|
'xpart',
|
47
48
|
'xdeps'
|
48
49
|
],
|
49
50
|
extras_require={
|
50
|
-
'tests': ['cpymad', 'PyHEADTAIL', 'pytest', 'pytest-mock'],
|
51
|
+
'tests': ['cpymad', 'NAFFlib', 'PyHEADTAIL', 'pytest', 'pytest-mock'],
|
51
52
|
},
|
52
53
|
)
|
@@ -36,15 +36,14 @@ from .footprint import Footprint, LinearRescale
|
|
36
36
|
# Flags and test functions
|
37
37
|
from .line import _is_drift, _behaves_like_drift, _is_aperture, _is_thick, _allow_backtrack
|
38
38
|
from .line import _lines_equal, _apertures_equal
|
39
|
+
|
40
|
+
from .slicing import Strategy, Uniform, Teapot
|
39
41
|
from .loss_location_refinement import _skip_in_loss_location_refinement
|
40
42
|
|
41
|
-
from xdeps import Table
|
43
|
+
from xdeps import Table, FunctionPieceWiseLinear
|
42
44
|
|
43
45
|
from ._version import __version__
|
44
46
|
|
45
|
-
from xpart import
|
47
|
+
from xpart import(Particles, PROTON_MASS_EV, ELECTRON_MASS_EV,
|
48
|
+
enable_pyheadtail_interface, disable_pyheadtail_interface)
|
46
49
|
|
47
|
-
def enable_pyheadtail_interface(*args, **kwargs):
|
48
|
-
raise ValueError(
|
49
|
-
"\n`xtrack.enable_pyheadtail_interface` not available anymore,"
|
50
|
-
"\nplease use `xpart.enable_pyheadtail_interface`")
|
@@ -41,21 +41,21 @@ def get_arc_periodic_solution(collider, line_name=None, arc_name=None):
|
|
41
41
|
line = collider[line_name]
|
42
42
|
|
43
43
|
twinit_cell = line.twiss(
|
44
|
-
|
45
|
-
|
46
|
-
|
44
|
+
start=start_cell,
|
45
|
+
end=end_cell,
|
46
|
+
init='periodic',
|
47
47
|
only_twiss_init=True)
|
48
48
|
|
49
49
|
tw_to_end_arc = line.twiss(
|
50
|
-
|
51
|
-
|
52
|
-
|
50
|
+
start=twinit_cell.element_name,
|
51
|
+
end=end_arc,
|
52
|
+
init=twinit_cell,
|
53
53
|
)
|
54
54
|
|
55
55
|
tw_to_start_arc = line.twiss(
|
56
|
-
|
57
|
-
|
58
|
-
|
56
|
+
start=start_arc,
|
57
|
+
end=twinit_cell.element_name,
|
58
|
+
init=twinit_cell)
|
59
59
|
|
60
60
|
res = xt.TwissTable.concatenate([tw_to_start_arc, tw_to_end_arc])
|
61
61
|
res['mux'] = res['mux'] - res['mux', start_arc]
|
@@ -162,7 +162,7 @@ def compute_ats_phase_advances_for_auxiliary_irs(line_name,
|
|
162
162
|
|
163
163
|
def propagate_optics_from_beta_star(collider, ip_name, line_name,
|
164
164
|
beta_star_x, beta_star_y,
|
165
|
-
|
165
|
+
start, end):
|
166
166
|
|
167
167
|
assert collider.lhcb1.twiss_default.get('reverse', False) is False
|
168
168
|
assert collider.lhcb2.twiss_default['reverse'] is True
|
@@ -178,13 +178,13 @@ def propagate_optics_from_beta_star(collider, ip_name, line_name,
|
|
178
178
|
ele_stop_left = ip_name
|
179
179
|
ele_start_right = ip_name
|
180
180
|
|
181
|
-
tw_left = collider[line_name].twiss(
|
182
|
-
|
181
|
+
tw_left = collider[line_name].twiss(start=start, end=ele_stop_left,
|
182
|
+
init=xt.TwissInit(line=collider[line_name],
|
183
183
|
element_name=ele_stop_left,
|
184
184
|
betx=beta_star_x,
|
185
185
|
bety=beta_star_y))
|
186
|
-
tw_right = collider[line_name].twiss(
|
187
|
-
|
186
|
+
tw_right = collider[line_name].twiss(start=ele_start_right, end=end,
|
187
|
+
init=xt.TwissInit(line=collider[line_name],
|
188
188
|
element_name=ele_start_right,
|
189
189
|
betx=beta_star_x,
|
190
190
|
bety=beta_star_y))
|
@@ -384,9 +384,9 @@ def rematch_ir2(collider, line_name,
|
|
384
384
|
opt = collider[f'lhc{bn}'].match(
|
385
385
|
solve=False,
|
386
386
|
default_tol=default_tol,
|
387
|
-
|
387
|
+
start=f's.ds.l2.{bn}', end=f'e.ds.r2.{bn}',
|
388
388
|
# Left boundary
|
389
|
-
|
389
|
+
init=boundary_conditions_left, init_at=xt.START,
|
390
390
|
targets=[
|
391
391
|
xt.TargetSet(at=xt.END,
|
392
392
|
tars=('betx', 'bety', 'alfx', 'alfy', 'dx', 'dpx'),
|
@@ -444,8 +444,8 @@ def rematch_ir3(collider, line_name,
|
|
444
444
|
opt = collider[f'lhc{bn}'].match(
|
445
445
|
solve=False,
|
446
446
|
default_tol=default_tol,
|
447
|
-
|
448
|
-
|
447
|
+
start=f's.ds.l3.{bn}', end=f'e.ds.r3.{bn}',
|
448
|
+
init=boundary_conditions_left, init_at=xt.START,
|
449
449
|
targets=[
|
450
450
|
xt.TargetSet(at='ip3',
|
451
451
|
alfx=alfx_ip3, alfy=alfy_ip3, betx=betx_ip3, bety=bety_ip3,
|
@@ -491,8 +491,8 @@ def rematch_ir4(collider, line_name,
|
|
491
491
|
opt = collider[f'lhc{bn}'].match(
|
492
492
|
solve=False,
|
493
493
|
default_tol=default_tol,
|
494
|
-
|
495
|
-
|
494
|
+
start=f's.ds.l4.{bn}', end=f'e.ds.r4.{bn}',
|
495
|
+
init=boundary_conditions_left, init_at=xt.START,
|
496
496
|
targets=[
|
497
497
|
xt.TargetSet(at='ip4',
|
498
498
|
alfx=alfx_ip4, alfy=alfy_ip4, betx=betx_ip4, bety=bety_ip4,
|
@@ -540,9 +540,9 @@ def rematch_ir6(collider, line_name,
|
|
540
540
|
opt = collider[f'lhc{bn}'].match(
|
541
541
|
solve=False,
|
542
542
|
default_tol=default_tol,
|
543
|
-
|
543
|
+
start=f's.ds.l6.{bn}', end=f'e.ds.r6.{bn}',
|
544
544
|
# Left boundary
|
545
|
-
|
545
|
+
init=boundary_conditions_left, init_at=xt.START,
|
546
546
|
targets=[
|
547
547
|
xt.TargetSet(at='ip6',
|
548
548
|
alfx=alfx_ip6, alfy=alfy_ip6, betx=betx_ip6, bety=bety_ip6,
|
@@ -583,9 +583,9 @@ def rematch_ir7(collider, line_name,
|
|
583
583
|
opt = collider[f'lhc{bn}'].match(
|
584
584
|
solve=False,
|
585
585
|
default_tol=default_tol,
|
586
|
-
|
586
|
+
start=f's.ds.l7.{bn}', end=f'e.ds.r7.{bn}',
|
587
587
|
# Left boundary
|
588
|
-
|
588
|
+
init=boundary_conditions_left, init_at=xt.START,
|
589
589
|
targets=[
|
590
590
|
xt.TargetSet(at='ip7',
|
591
591
|
alfx=alfx_ip7, alfy=alfy_ip7, betx=betx_ip7, bety=bety_ip7,
|
@@ -633,9 +633,9 @@ def rematch_ir8(collider, line_name,
|
|
633
633
|
opt = collider[f'lhc{bn}'].match(
|
634
634
|
solve=False,
|
635
635
|
default_tol=default_tol,
|
636
|
-
|
636
|
+
start=f's.ds.l8.{bn}', end=f'e.ds.r8.{bn}',
|
637
637
|
# Left boundary
|
638
|
-
|
638
|
+
init=boundary_conditions_left, init_at=xt.START,
|
639
639
|
targets=[
|
640
640
|
xt.TargetSet(at='ip8',
|
641
641
|
alfx=alfx_ip8, alfy=alfy_ip8, betx=betx_ip8, bety=bety_ip8,
|
@@ -709,12 +709,12 @@ def match_orbit_knobs_ip2_ip8(collider):
|
|
709
709
|
]
|
710
710
|
|
711
711
|
bump_range_ip2 = {
|
712
|
-
'
|
713
|
-
'
|
712
|
+
'start': ['s.ds.l2.b1', 's.ds.l2.b2'],
|
713
|
+
'end': ['e.ds.r2.b1', 'e.ds.r2.b2'],
|
714
714
|
}
|
715
715
|
bump_range_ip8 = {
|
716
|
-
'
|
717
|
-
'
|
716
|
+
'start': ['s.ds.l8.b1', 's.ds.l8.b2'],
|
717
|
+
'end': ['e.ds.r8.b1', 'e.ds.r8.b2'],
|
718
718
|
}
|
719
719
|
|
720
720
|
correctors_ir2_single_beam_h = [
|
@@ -760,7 +760,7 @@ def match_orbit_knobs_ip2_ip8(collider):
|
|
760
760
|
xt.TargetSet(line='lhcb2', at='ip2', y=offset_match, py=0),
|
761
761
|
]),
|
762
762
|
vary=xt.VaryList(correctors_ir2_single_beam_v),
|
763
|
-
run=False,
|
763
|
+
run=False, init=twinit_zero_orbit, **bump_range_ip2,
|
764
764
|
)
|
765
765
|
opt_o2v.solve()
|
766
766
|
opt_o2v.generate_knob()
|
@@ -774,7 +774,7 @@ def match_orbit_knobs_ip2_ip8(collider):
|
|
774
774
|
xt.TargetSet(line='lhcb2', at='ip2', x=offset_match, px=0),
|
775
775
|
]),
|
776
776
|
vary=xt.VaryList(correctors_ir2_single_beam_h),
|
777
|
-
run=False,
|
777
|
+
run=False, init=twinit_zero_orbit, **bump_range_ip2,
|
778
778
|
)
|
779
779
|
opt_o2h.solve()
|
780
780
|
opt_o2h.generate_knob()
|
@@ -788,7 +788,7 @@ def match_orbit_knobs_ip2_ip8(collider):
|
|
788
788
|
xt.TargetSet(line='lhcb2', at='ip8', y=offset_match, py=0),
|
789
789
|
]),
|
790
790
|
vary=xt.VaryList(correctors_ir8_single_beam_v),
|
791
|
-
run=False,
|
791
|
+
run=False, init=twinit_zero_orbit, **bump_range_ip8,
|
792
792
|
)
|
793
793
|
opt_o8v.solve()
|
794
794
|
opt_o8v.generate_knob()
|
@@ -802,7 +802,7 @@ def match_orbit_knobs_ip2_ip8(collider):
|
|
802
802
|
xt.TargetSet(line='lhcb2', at='ip8', x=offset_match, px=0),
|
803
803
|
]),
|
804
804
|
vary=xt.VaryList(correctors_ir8_single_beam_h),
|
805
|
-
run=False,
|
805
|
+
run=False, init=twinit_zero_orbit, **bump_range_ip8,
|
806
806
|
)
|
807
807
|
opt_o8h.solve()
|
808
808
|
opt_o8h.generate_knob()
|
@@ -822,7 +822,7 @@ def match_orbit_knobs_ip2_ip8(collider):
|
|
822
822
|
xt.TargetSet(line='lhcb2', at='ip2', x=0, px=ang_offset_match),
|
823
823
|
]),
|
824
824
|
vary=xt.VaryList(correctors_ir2_single_beam_h),
|
825
|
-
run=False,
|
825
|
+
run=False, init=twinit_zero_orbit, **bump_range_ip2,
|
826
826
|
)
|
827
827
|
|
828
828
|
opt_a2h.solve()
|
@@ -837,7 +837,7 @@ def match_orbit_knobs_ip2_ip8(collider):
|
|
837
837
|
xt.TargetSet(line='lhcb2', at='ip2', y=0, py=ang_offset_match),
|
838
838
|
]),
|
839
839
|
vary=xt.VaryList(correctors_ir2_single_beam_v),
|
840
|
-
run=False,
|
840
|
+
run=False, init=twinit_zero_orbit, **bump_range_ip2,
|
841
841
|
)
|
842
842
|
|
843
843
|
opt_a2v.solve()
|
@@ -852,7 +852,7 @@ def match_orbit_knobs_ip2_ip8(collider):
|
|
852
852
|
xt.TargetSet(line='lhcb2', at='ip8', x=0, px=ang_offset_match),
|
853
853
|
]),
|
854
854
|
vary=xt.VaryList(correctors_ir8_single_beam_h),
|
855
|
-
run=False,
|
855
|
+
run=False, init=twinit_zero_orbit, **bump_range_ip8,
|
856
856
|
)
|
857
857
|
|
858
858
|
opt_a8h.solve()
|
@@ -867,7 +867,7 @@ def match_orbit_knobs_ip2_ip8(collider):
|
|
867
867
|
xt.TargetSet(line='lhcb2', at='ip8', y=0, py=ang_offset_match),
|
868
868
|
]),
|
869
869
|
vary=xt.VaryList(correctors_ir8_single_beam_v),
|
870
|
-
run=False,
|
870
|
+
run=False, init=twinit_zero_orbit, **bump_range_ip8,
|
871
871
|
)
|
872
872
|
|
873
873
|
opt_a8v.solve()
|
@@ -891,7 +891,7 @@ def match_orbit_knobs_ip2_ip8(collider):
|
|
891
891
|
vary=[
|
892
892
|
xt.VaryList(correctors_ir2_single_beam_h),
|
893
893
|
xt.VaryList(correctors_ir2_common_h, tag='mcbx')],
|
894
|
-
run=False,
|
894
|
+
run=False, init=twinit_zero_orbit, **bump_range_ip2,
|
895
895
|
)
|
896
896
|
# Set mcbx by hand
|
897
897
|
testkqx2=abs(collider.varval['kqx.l2'])*7000./0.3
|
@@ -915,7 +915,7 @@ def match_orbit_knobs_ip2_ip8(collider):
|
|
915
915
|
vary=[
|
916
916
|
xt.VaryList(correctors_ir2_single_beam_v),
|
917
917
|
xt.VaryList(correctors_ir2_common_v, tag='mcbx')],
|
918
|
-
run=False,
|
918
|
+
run=False, init=twinit_zero_orbit, **bump_range_ip2,
|
919
919
|
)
|
920
920
|
# Set mcbx by hand
|
921
921
|
testkqx2=abs(collider.varval['kqx.l2'])*7000./0.3
|
@@ -939,7 +939,7 @@ def match_orbit_knobs_ip2_ip8(collider):
|
|
939
939
|
vary=[
|
940
940
|
xt.VaryList(correctors_ir8_single_beam_h),
|
941
941
|
xt.VaryList(correctors_ir8_common_h, tag='mcbx')],
|
942
|
-
run=False,
|
942
|
+
run=False, init=twinit_zero_orbit, **bump_range_ip8,
|
943
943
|
)
|
944
944
|
|
945
945
|
# Set mcbx by hand (reduce value by 10, to test matching algorithm)
|
@@ -985,7 +985,7 @@ def match_orbit_knobs_ip2_ip8(collider):
|
|
985
985
|
vary=[
|
986
986
|
xt.VaryList(correctors_ir8_single_beam_v),
|
987
987
|
xt.VaryList(correctors_ir8_common_v, tag='mcbx')],
|
988
|
-
run=False,
|
988
|
+
run=False, init=twinit_zero_orbit, **bump_range_ip8,
|
989
989
|
)
|
990
990
|
|
991
991
|
# Set mcbx by hand
|
@@ -1022,7 +1022,7 @@ def match_orbit_knobs_ip2_ip8(collider):
|
|
1022
1022
|
vary=[
|
1023
1023
|
xt.VaryList(correctors_ir2_single_beam_h),
|
1024
1024
|
xt.VaryList(correctors_ir2_common_h, tag='mcbx')],
|
1025
|
-
run=False,
|
1025
|
+
run=False, init=twinit_zero_orbit, **bump_range_ip2,
|
1026
1026
|
)
|
1027
1027
|
|
1028
1028
|
# Set mcbx by hand
|
@@ -1049,7 +1049,7 @@ def match_orbit_knobs_ip2_ip8(collider):
|
|
1049
1049
|
vary=[
|
1050
1050
|
xt.VaryList(correctors_ir2_single_beam_v),
|
1051
1051
|
xt.VaryList(correctors_ir2_common_v, tag='mcbx')],
|
1052
|
-
run=False,
|
1052
|
+
run=False, init=twinit_zero_orbit, **bump_range_ip2,
|
1053
1053
|
)
|
1054
1054
|
|
1055
1055
|
# Set mcbx by hand
|
@@ -1076,7 +1076,7 @@ def match_orbit_knobs_ip2_ip8(collider):
|
|
1076
1076
|
vary=[
|
1077
1077
|
xt.VaryList(correctors_ir8_single_beam_h),
|
1078
1078
|
xt.VaryList(correctors_ir8_common_h, tag='mcbx')],
|
1079
|
-
run=False,
|
1079
|
+
run=False, init=twinit_zero_orbit, **bump_range_ip8,
|
1080
1080
|
)
|
1081
1081
|
|
1082
1082
|
# Set mcbx by hand
|
@@ -1103,7 +1103,7 @@ def match_orbit_knobs_ip2_ip8(collider):
|
|
1103
1103
|
vary=[
|
1104
1104
|
xt.VaryList(correctors_ir8_single_beam_v),
|
1105
1105
|
xt.VaryList(correctors_ir8_common_v, tag='mcbx')],
|
1106
|
-
run=False,
|
1106
|
+
run=False, init=twinit_zero_orbit, **bump_range_ip8,
|
1107
1107
|
)
|
1108
1108
|
|
1109
1109
|
# Set mcbx by hand
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = '0.50.0'
|