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: MeasurementToolConfigModel

Configuration 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.

betatron_tune_name: str#
bpm_array_name: str | None#
e_delta: float#
fit_disp_order: int#
fit_dispersion: bool#
fit_order: int#
max_e_delta: float#
rf_plant_name: str#
class ChomaticityMonitor(cfg)[source]#

Bases: MeasurementTool

Class 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_measurement contains:

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)
    

set_mcf(alphac)[source]#

Set the instrument moment compaction factor on this element

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],…]

class RChromaDispArray(parent, name, unit)[source]#

Bases: ReadFloatArray

Class providing read access to chromaticity or dispersion. Returns arrays of shape (fit_order,2) or None

get()[source]#

Get the value

unit()[source]#

Get the unit of the values