chromaticity_monitor#
- class ConfigModel(*, name, description=None, lattice_names=None, n_step=1, sleep_between_step=0, n_avg_meas=1, sleep_between_meas=0, betatron_tune_name, rf_plant_name, bpm_array_name=None, e_delta=0.001, max_e_delta=0.004, fit_order=1, fit_disp_order=1, fit_dispersion=False)[source]#
Bases:
MeasurementToolConfigModelConfiguration model for Chromaticity Monitor.
- Parameters:
betatron_tune_name (str) – Name of the diagnostic pyaml device for measuring the tune
rf_plant_name (str) – Name of main RF frequency plant
bpm_array_name (str,optional) – Name of main BPM array used for dispersion fit
e_delta (float, optional) – Default variation of relative energy during chromaticity measurement: f0 - f0 * E_delta * alphac < f_RF < f0 + f0 * E_delta * alphac, by default 0.001
max_e_delta (float, optional) – Maximum authorized variation of relative energy during chromaticity measurement, by default 0.004
fit_order (int, optional) – Chomaticity fitting order, by default 1
fit_disp_order (int, optional) – Dispersion fitting order, by default 1
fit_dispersion (bool, optional) – Dispersion fitting, by default False
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- class ChomaticityMonitor(cfg)[source]#
Bases:
MeasurementToolClass providing access to a chromaticity monitor of a physical or simulated lattice. The monitor provides horizontal and vertical chromaticity measurements.
Construct a ChomaticityMonitor.
- Parameters:
cfg (ConfigModel) – Configuration for the ChromaticityMonitor, including betatron tune monitor, RF plant, and defaults parameters.
- fit(deltas, Q, order, orbit=None, fit_disp_order=None, do_plot=False)[source]#
Compute chromaticity (and dispersion) from input data and update
latest_measurement.- Parameters:
deltas (array of float) – Relative energy (delta) variation steps done.
Q (array of [Qx,Qy]) – Horizontal,Vertical tune measured.
orbit (array of [[x0,y0],[x1,y1],...])
fit_order (int) – Chromaticity fitting order
fit_disp_order (int, optional) – Dispersion fitting order
plot (bool, optional) – If True, plot the fit.
- measure(n_step=None, alphac=None, e_delta=None, max_e_delta=None, n_avg_meas=None, sleep_between_meas=None, sleep_between_step=None, fit_order=None, fit_disp_order=None, fit_dispersion=None, do_plot=None, callback=None)[source]#
Main function for chromaticity measurment.
latest_measurementcontains:chromaticity:np.array # First order chromaticity, Array of [q'x,q'y] dispersion:np.array # First order dispersion, [[dx'0,..,dx'n],[dy'0,..,dy'n]] chromaticity_fit:np.array # Array of [[qx,qy],[q'x,q'y],[q''x,q''y],...] dispersionx_fit:np.array # Array of [[dx0],..,[dxn],[dx'0],..,[dx'n],...] dispersiony_fit:np.array # Array of [[dy0,..,dyn],[dy'0,..,dy'n],...]
- Parameters:
n_step (int) – Default number of RF step during chromaticity measurment [default: from config]
alphac (float | None) – Moment compaction factor [default: from config]
w_delta (float) – Default variation of relative energy during chromaticity measurment: f0 - f0 * E_delta * alphac < f_RF < f0 + f0 * E_delta * alphac [default: from config]
max_e_delta (float) – Maximum autorized variation of relative energy during chromaticity measurment [default: from config]
n_avg_meas (int) – Default number of tune/orbit measurment per RF frequency [default: from config]
sleep_between_meas (float) – Default time sleep between two tune measurment [default: from config]
sleep_between_step (float) – Default time sleep after RF frequency variation [default: from config]
fit_order (int) – Fitting order [default: from config]
fit_disp_order (int, optional) – Dispersion fitting order [default: from config]
fit_dispersion (bool, optionnal) – Fit dispersion, [default: from config]
do_plot (bool) – Do you want to plot the fitting results ?
callback (Callable, optional) –
Callback is executed after each measurement or setting. If the callback return false, then the process is aborted. callback_data dict contains:
source:MeasurementTool # Tool that triggered the callback step:int # The current step avg_step:int # The current averaging step rf:float # RF frequency used for the current step tune:np.array # The measured tune (on Action.MEASURE) orbit:np_array # The measured orbit, if fit_dispersion is True, (on Action.MEASURE) dtune:np.array # The tune variation (on Action.RESTORE)
- property chromaticity: ReadFloatArray#
Get the chromaticity values.
- Returns:
ReadFloatArray – chromaticity values [q’x, q’y]
- property dispersion: ReadFloatArray#
Get the dispersion values.
- Returns:
ReadFloatArray – Array of dispersion values [[dx, dy],[d’x, d’y],…]