From c9dab34f6a65646509991d73a61972adb6895ed9 Mon Sep 17 00:00:00 2001 From: PONS Date: Thu, 15 Jan 2026 16:40:59 +0100 Subject: [PATCH 01/11] Started BESSY2 orbit setup --- examples/BESSY2_ORM_example/BESSY2Orbit.yaml | 1809 ++++++++++++++++++ examples/BESSY2_ORM_example/bessy2-orbit.py | 10 + examples/BESSY2_ORM_example/bessy2.mat | Bin 0 -> 607472 bytes 3 files changed, 1819 insertions(+) create mode 100644 examples/BESSY2_ORM_example/BESSY2Orbit.yaml create mode 100644 examples/BESSY2_ORM_example/bessy2-orbit.py create mode 100644 examples/BESSY2_ORM_example/bessy2.mat diff --git a/examples/BESSY2_ORM_example/BESSY2Orbit.yaml b/examples/BESSY2_ORM_example/BESSY2Orbit.yaml new file mode 100644 index 00000000..12a88b3b --- /dev/null +++ b/examples/BESSY2_ORM_example/BESSY2Orbit.yaml @@ -0,0 +1,1809 @@ +type: pyaml.accelerator +machine: sr +facility: BESSY2 +energy: 1.7e9 +simulators: + - type: pyaml.lattice.simulator + lattice: bessy2.mat + name: design +controls: + - type: pyaml_cs_oa.controlsystem + prefix: "pons:" + name: live +data_folder: /data/store +arrays: + - type: pyaml.arrays.bpm + name: BPM + elements: + - BPMZ5D1R + - BPMZ6D1R + - BPMZ7D1R + - BPMZ1T1R + - BPMZ2T1R + - BPMZ3T1R + - BPMZ4T1R + - BPMZ41D1R + - BPMZ5T1R + - BPMZ6T1R + - BPMZ7T1R + - BPMZ1D2R + - BPMZ2D2R + - BPMZ3D2R + - BPMZ4D2R + - BPMZ5D2R + - BPMZ6D2R + - BPMZ7D2R + - BPMZ1T2R + - BPMZ2T2R + - BPMZ3T2R + - BPMZ4T2R + - BPMZ5T2R + - BPMZ6T2R + - BPMZ7T2R + - BPMZ1D3R + - BPMZ2D3R + - BPMZ3D3R + - BPMZ4D3R + - BPMZ5D3R + - BPMZ6D3R + - BPMZ7D3R + - BPMZ1T3R + - BPMZ2T3R + - BPMZ3T3R + - BPMZ4T3R + - BPMZ5T3R + - BPMZ6T3R + - BPMZ7T3R + - BPMZ1D4R + - BPMZ2D4R + - BPMZ3D4R + - BPMZ4D4R + - BPMZ5D4R + - BPMZ6D4R + - BPMZ7D4R + - BPMZ1T4R + - BPMZ2T4R + - BPMZ3T4R + - BPMZ4T4R + - BPMZ43T1R + - BPMZ5T4R + - BPMZ6T4R + - BPMZ7T4R + - BPMZ1D5R + - BPMZ2D5R + - BPMZ3D5R + - BPMZ4D5R + - BPMZ5D5R + - BPMZ6D5R + - BPMZ7D5R + - BPMZ1T5R + - BPMZ2T5R + - BPMZ3T5R + - BPMZ4T5R + - BPMZ5T5R + - BPMZ6T5R + - BPMZ7T5R + - BPMZ1D6R + - BPMZ2D6R + - BPMZ3D6R + - BPMZ4D6R + - BPMZ41D6R + - BPMZ41T6R + - BPMZ6D6R + - BPMZ7D6R + - BPMZ1T6R + - BPMZ2T6R + - BPMZ3T6R + - BPMZ4T6R + - BPMZ42D6R + - BPMZ5T6R + - BPMZ6T6R + - BPMZ7T6R + - BPMZ1D7R + - BPMZ2D7R + - BPMZ3D7R + - BPMZ4D7R + - BPMZ43D6R + - BPMZ5D7R + - BPMZ6D7R + - BPMZ7D7R + - BPMZ1T7R + - BPMZ2T7R + - BPMZ3T7R + - BPMZ4T7R + - BPMZ44D6R + - BPMZ5T7R + - BPMZ6T7R + - BPMZ7T7R + - BPMZ1D8R + - BPMZ2D8R + - BPMZ3D8R + - BPMZ4D8R + - BPMZ5D8R + - BPMZ6D8R + - BPMZ7D8R + - BPMZ1T8R + - BPMZ2T8R + - BPMZ3T8R + - BPMZ4T8R + - BPMZ5T8R + - BPMZ6T8R + - BPMZ7T8R + - BPMZ1D1R + - BPMZ2D1R + - BPMZ3D1R + - BPMZ4D1R + - BPMZ42D1R +devices: +- type: pyaml.rf.rf_plant + name: RF + masterclock: + type: pyaml_cs_oa.epicsW + write_pvname: MCLKHX251C:freq + unit: KHz +- type: pyaml.bpm.bpm + name: BPMZ5D1R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 0 + y_pos_index: 1 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ6D1R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 2 + y_pos_index: 3 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ7D1R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 4 + y_pos_index: 5 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ1T1R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 6 + y_pos_index: 7 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ2T1R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 8 + y_pos_index: 9 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ3T1R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 10 + y_pos_index: 11 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ4T1R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 12 + y_pos_index: 13 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ41D1R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 14 + y_pos_index: 15 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ5T1R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 16 + y_pos_index: 17 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ6T1R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 18 + y_pos_index: 19 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ7T1R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 20 + y_pos_index: 21 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ1D2R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 22 + y_pos_index: 23 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ2D2R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 24 + y_pos_index: 25 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ3D2R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 26 + y_pos_index: 27 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ4D2R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 28 + y_pos_index: 29 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ5D2R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 32 + y_pos_index: 33 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ6D2R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 34 + y_pos_index: 35 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ7D2R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 36 + y_pos_index: 37 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ1T2R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 38 + y_pos_index: 39 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ2T2R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 40 + y_pos_index: 41 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ3T2R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 42 + y_pos_index: 43 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ4T2R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 44 + y_pos_index: 45 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ5T2R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 48 + y_pos_index: 49 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ6T2R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 50 + y_pos_index: 51 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ7T2R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 52 + y_pos_index: 53 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ1D3R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 54 + y_pos_index: 55 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ2D3R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 56 + y_pos_index: 57 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ3D3R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 58 + y_pos_index: 59 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ4D3R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 60 + y_pos_index: 61 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ5D3R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 64 + y_pos_index: 65 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ6D3R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 66 + y_pos_index: 67 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ7D3R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 68 + y_pos_index: 69 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ1T3R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 70 + y_pos_index: 71 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ2T3R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 72 + y_pos_index: 73 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ3T3R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 74 + y_pos_index: 75 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ4T3R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 76 + y_pos_index: 77 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ5T3R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 80 + y_pos_index: 81 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ6T3R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 82 + y_pos_index: 83 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ7T3R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 84 + y_pos_index: 85 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ1D4R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 86 + y_pos_index: 87 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ2D4R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 88 + y_pos_index: 89 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ3D4R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 90 + y_pos_index: 91 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ4D4R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 92 + y_pos_index: 93 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ5D4R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 96 + y_pos_index: 97 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ6D4R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 98 + y_pos_index: 99 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ7D4R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 100 + y_pos_index: 101 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ1T4R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 102 + y_pos_index: 103 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ2T4R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 104 + y_pos_index: 105 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ3T4R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 106 + y_pos_index: 107 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ4T4R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 108 + y_pos_index: 109 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ43T1R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 110 + y_pos_index: 111 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ5T4R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 112 + y_pos_index: 113 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ6T4R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 114 + y_pos_index: 115 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ7T4R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 116 + y_pos_index: 117 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ1D5R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 118 + y_pos_index: 119 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ2D5R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 120 + y_pos_index: 121 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ3D5R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 122 + y_pos_index: 123 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ4D5R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 124 + y_pos_index: 125 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ5D5R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 128 + y_pos_index: 129 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ6D5R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 130 + y_pos_index: 131 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ7D5R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 132 + y_pos_index: 133 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ1T5R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 134 + y_pos_index: 135 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ2T5R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 136 + y_pos_index: 137 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ3T5R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 138 + y_pos_index: 139 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ4T5R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 140 + y_pos_index: 141 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ5T5R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 144 + y_pos_index: 145 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ6T5R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 146 + y_pos_index: 147 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ7T5R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 148 + y_pos_index: 149 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ1D6R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 150 + y_pos_index: 151 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ2D6R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 152 + y_pos_index: 153 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ3D6R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 154 + y_pos_index: 155 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ4D6R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 156 + y_pos_index: 157 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ41D6R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 158 + y_pos_index: 159 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ41T6R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 160 + y_pos_index: 161 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ6D6R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 162 + y_pos_index: 163 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ7D6R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 164 + y_pos_index: 165 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ1T6R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 166 + y_pos_index: 167 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ2T6R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 168 + y_pos_index: 169 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ3T6R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 170 + y_pos_index: 171 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ4T6R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 172 + y_pos_index: 173 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ42D6R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 174 + y_pos_index: 175 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ5T6R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 176 + y_pos_index: 177 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ6T6R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 178 + y_pos_index: 179 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ7T6R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 180 + y_pos_index: 181 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ1D7R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 182 + y_pos_index: 183 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ2D7R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 184 + y_pos_index: 185 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ3D7R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 186 + y_pos_index: 187 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ4D7R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 188 + y_pos_index: 189 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ43D6R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 190 + y_pos_index: 191 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ5D7R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 192 + y_pos_index: 193 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ6D7R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 194 + y_pos_index: 195 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ7D7R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 196 + y_pos_index: 197 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ1T7R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 198 + y_pos_index: 199 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ2T7R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 200 + y_pos_index: 201 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ3T7R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 202 + y_pos_index: 203 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ4T7R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 204 + y_pos_index: 205 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ44D6R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 206 + y_pos_index: 207 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ5T7R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 208 + y_pos_index: 209 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ6T7R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 210 + y_pos_index: 211 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ7T7R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 212 + y_pos_index: 213 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ1D8R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 214 + y_pos_index: 215 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ2D8R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 216 + y_pos_index: 217 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ3D8R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 218 + y_pos_index: 219 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ4D8R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 220 + y_pos_index: 221 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ5D8R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 224 + y_pos_index: 225 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ6D8R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 226 + y_pos_index: 227 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ7D8R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 228 + y_pos_index: 229 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ1T8R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 230 + y_pos_index: 231 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ2T8R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 232 + y_pos_index: 233 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ3T8R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 234 + y_pos_index: 235 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ4T8R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 236 + y_pos_index: 237 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ5T8R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 240 + y_pos_index: 241 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ6T8R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 242 + y_pos_index: 243 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ7T8R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 244 + y_pos_index: 245 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ1D1R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 246 + y_pos_index: 247 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ2D1R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 248 + y_pos_index: 249 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ3D1R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 250 + y_pos_index: 251 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ4D1R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 252 + y_pos_index: 253 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ42D1R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 254 + y_pos_index: 255 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm diff --git a/examples/BESSY2_ORM_example/bessy2-orbit.py b/examples/BESSY2_ORM_example/bessy2-orbit.py new file mode 100644 index 00000000..4863c5e2 --- /dev/null +++ b/examples/BESSY2_ORM_example/bessy2-orbit.py @@ -0,0 +1,10 @@ +import numpy as np + +from pyaml.accelerator import Accelerator + +sr = Accelerator.load("BESSY2Orbit.yaml") +orbit = sr.live.get_bpms("BPM").positions.get() +names = sr.live.get_bpms("BPM").names() +for idx, n in enumerate(names): + print(f"{n}:{orbit[idx]}") +print(sr.live.get_rf_plant("RF").frequency.get()) diff --git a/examples/BESSY2_ORM_example/bessy2.mat b/examples/BESSY2_ORM_example/bessy2.mat new file mode 100644 index 0000000000000000000000000000000000000000..397bcde00f858af3b983fbcd1e63da5021f6f416 GIT binary patch literal 607472 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 literal 0 HcmV?d00001 From 83c9c9bc30b0493041bb48cdc97e08b1c74873d0 Mon Sep 17 00:00:00 2001 From: PONS Date: Fri, 16 Jan 2026 10:33:17 +0100 Subject: [PATCH 02/11] Added correctors --- examples/BESSY2_ORM_example/BESSY2Orbit.yaml | 1468 ++++++++++++++++++ examples/BESSY2_ORM_example/bessy2-orbit.py | 39 +- 2 files changed, 1502 insertions(+), 5 deletions(-) diff --git a/examples/BESSY2_ORM_example/BESSY2Orbit.yaml b/examples/BESSY2_ORM_example/BESSY2Orbit.yaml index 12a88b3b..f0ba3de6 100644 --- a/examples/BESSY2_ORM_example/BESSY2Orbit.yaml +++ b/examples/BESSY2_ORM_example/BESSY2Orbit.yaml @@ -12,6 +12,124 @@ controls: name: live data_folder: /data/store arrays: + - type: pyaml.arrays.magnet + name: HCorr + elements: + - HS4M2D1R + - HS1MT1R + - HS4M1T1R + - HS4M2T1R + - HS1MD2R + - HS4M1D2R + - HS4M2D2R + - HS1MT2R + - HS4M1T2R + - HS4M2T2R + - HS1MD3R + - HS4M1D3R + - HS4M2D3R + - HS1MT3R + - HS4M1T3R + - HS4M2T3R + - HS1MD4R + - HS4M1D4R + - HS4M2D4R + - HS1MT4R + - HS4M1T4R + - HS4M2T4R + - HS1MD5R + - HS4M1D5R + - HS4M2D5R + - HS1MT5R + - HS4M1T5R + - HS4M2T5R + - HS1MD6R + - HS4M1D6R + - HS4M2D6R + - HS1MT6R + - HS4M1T6R + - HS4M2T6R + - HS1MD7R + - HS4M1D7R + - HS4M2D7R + - HS1MT7R + - HS4M1T7R + - HS4M2T7R + - HS1MD8R + - HS4M1D8R + - HS4M2D8R + - HS1MT8R + - HS4M1T8R + - HS4M2T8R + - HS1MD1R + - HS4M1D1R + - type: pyaml.arrays.magnet + name: VCorr + elements: + - VS3M2D1R + - VS2M2D1R + - VS2M1T1R + - VS3M1T1R + - VS3M2T1R + - VS2M2T1R + - VS2M1D2R + - VS3M1D2R + - VS3M2D2R + - VS2M2D2R + - VS2M1T2R + - VS3M1T2R + - VS3M2T2R + - VS2M2T2R + - VS2M1D3R + - VS3M1D3R + - VS3M2D3R + - VS2M2D3R + - VS2M1T3R + - VS3M1T3R + - VS3M2T3R + - VS2M2T3R + - VS2M1D4R + - VS3M1D4R + - VS3M2D4R + - VS2M2D4R + - VS2M1T4R + - VS3M1T4R + - VS3M2T4R + - VS2M2T4R + - VS2M1D5R + - VS3M1D5R + - VS3M2D5R + - VS2M2D5R + - VS2M1T5R + - VS3M1T5R + - VS3M2T5R + - VS2M2T5R + - VS2M1D6R + - VS3M1D6R + - VS3M2D6R + - VS2M2D6R + - VS2M1T6R + - VS3M1T6R + - VS3M2T6R + - VS2M2T6R + - VS2M1D7R + - VS3M1D7R + - VS3M2D7R + - VS2M2D7R + - VS2M1T7R + - VS3M1T7R + - VS3M2T7R + - VS2M2T7R + - VS2M1D8R + - VS3M1D8R + - VS3M2D8R + - VS2M2D8R + - VS2M1T8R + - VS3M1T8R + - VS3M2T8R + - VS2M2T8R + - VS2M1D1R + - VS3M1D1R - type: pyaml.arrays.bpm name: BPM elements: @@ -135,12 +253,1362 @@ arrays: - BPMZ4D1R - BPMZ42D1R devices: +#- type: pyaml.tuning_tools.orbit +# bpm_array_name: BPM +# hcorr_array_name: HCorr +# vcorr_array_name: VCorr +# name: DEFAULT_ORBIT_CORRECTION +# singular_values: 64 - type: pyaml.rf.rf_plant name: RF masterclock: type: pyaml_cs_oa.epicsW write_pvname: MCLKHX251C:freq unit: KHz +- type: pyaml.magnet.hcorrector + name: HS4M2D1R + lattice_names: S4M2D1R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P2D1R:rdbk + write_pvname: HS4P2D1R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS1MT1R + lattice_names: S1MT1R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.0011622198 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS1PT1R:rdbk + write_pvname: HS1PT1R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M1T1R + lattice_names: S4M1T1R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P1T1R:rdbk + write_pvname: HS4P1T1R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M2T1R + lattice_names: S4M2T1R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P2T1R:rdbk + write_pvname: HS4P2T1R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS1MD2R + lattice_names: S1MD2R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.0011622198 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS1PD2R:rdbk + write_pvname: HS1PD2R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M1D2R + lattice_names: S4M1D2R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P1D2R:rdbk + write_pvname: HS4P1D2R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M2D2R + lattice_names: S4M2D2R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P2D2R:rdbk + write_pvname: HS4P2D2R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS1MT2R + lattice_names: S1MT2R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.0011622198 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS1PT2R:rdbk + write_pvname: HS1PT2R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M1T2R + lattice_names: S4M1T2R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P1T2R:rdbk + write_pvname: HS4P1T2R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M2T2R + lattice_names: S4M2T2R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P2T2R:rdbk + write_pvname: HS4P2T2R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS1MD3R + lattice_names: S1MD3R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.0011622198 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS1PD3R:rdbk + write_pvname: HS1PD3R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M1D3R + lattice_names: S4M1D3R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P1D3R:rdbk + write_pvname: HS4P1D3R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M2D3R + lattice_names: S4M2D3R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P2D3R:rdbk + write_pvname: HS4P2D3R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS1MT3R + lattice_names: S1MT3R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.0011622198 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS1PT3R:rdbk + write_pvname: HS1PT3R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M1T3R + lattice_names: S4M1T3R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P1T3R:rdbk + write_pvname: HS4P1T3R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M2T3R + lattice_names: S4M2T3R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P2T3R:rdbk + write_pvname: HS4P2T3R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS1MD4R + lattice_names: S1MD4R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.0011622198 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS1PD4R:rdbk + write_pvname: HS1PD4R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M1D4R + lattice_names: S4M1D4R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P1D4R:rdbk + write_pvname: HS4P1D4R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M2D4R + lattice_names: S4M2D4R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P2D4R:rdbk + write_pvname: HS4P2D4R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS1MT4R + lattice_names: S1MT4R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.0011622198 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS1PT4R:rdbk + write_pvname: HS1PT4R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M1T4R + lattice_names: S4M1T4R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P1T4R:rdbk + write_pvname: HS4P1T4R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M2T4R + lattice_names: S4M2T4R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P2T4R:rdbk + write_pvname: HS4P2T4R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS1MD5R + lattice_names: S1MD5R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.0011622198 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS1PD5R:rdbk + write_pvname: HS1PD5R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M1D5R + lattice_names: S4M1D5R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P1D5R:rdbk + write_pvname: HS4P1D5R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M2D5R + lattice_names: S4M2D5R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P2D5R:rdbk + write_pvname: HS4P2D5R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS1MT5R + lattice_names: S1MT5R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.0011622198 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS1PT5R:rdbk + write_pvname: HS1PT5R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M1T5R + lattice_names: S4M1T5R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P1T5R:rdbk + write_pvname: HS4P1T5R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M2T5R + lattice_names: S4M2T5R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P2T5R:rdbk + write_pvname: HS4P2T5R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS1MD6R + lattice_names: S1MD6R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.0011622198 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS1PD6R:rdbk + write_pvname: HS1PD6R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M1D6R + lattice_names: S4M1D6R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P1D6R:rdbk + write_pvname: HS4P1D6R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M2D6R + lattice_names: S4M2D6R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P2D6R:rdbk + write_pvname: HS4P2D6R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS1MT6R + lattice_names: S1MT6R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.0011622198 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS1PT6R:rdbk + write_pvname: HS1PT6R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M1T6R + lattice_names: S4M1T6R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P1T6R:rdbk + write_pvname: HS4P1T6R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M2T6R + lattice_names: S4M2T6R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P2T6R:rdbk + write_pvname: HS4P2T6R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS1MD7R + lattice_names: S1MD7R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.0011622198 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS1PD7R:rdbk + write_pvname: HS1PD7R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M1D7R + lattice_names: S4M1D7R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P1D7R:rdbk + write_pvname: HS4P1D7R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M2D7R + lattice_names: S4M2D7R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P2D7R:rdbk + write_pvname: HS4P2D7R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS1MT7R + lattice_names: S1MT7R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.0011622198 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS1PT7R:rdbk + write_pvname: HS1PT7R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M1T7R + lattice_names: S4M1T7R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P1T7R:rdbk + write_pvname: HS4P1T7R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M2T7R + lattice_names: S4M2T7R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P2T7R:rdbk + write_pvname: HS4P2T7R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS1MD8R + lattice_names: S1MD8R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.0011622198 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS1PD8R:rdbk + write_pvname: HS1PD8R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M1D8R + lattice_names: S4M1D8R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P1D8R:rdbk + write_pvname: HS4P1D8R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M2D8R + lattice_names: S4M2D8R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P2D8R:rdbk + write_pvname: HS4P2D8R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS1MT8R + lattice_names: S1MT8R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.0011622198 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS1PT8R:rdbk + write_pvname: HS1PT8R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M1T8R + lattice_names: S4M1T8R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P1T8R:rdbk + write_pvname: HS4P1T8R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M2T8R + lattice_names: S4M2T8R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P2T8R:rdbk + write_pvname: HS4P2T8R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS1MD1R + lattice_names: S1MD1R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.0011622198 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS1PD1R:rdbk + write_pvname: HS1PD1R:set + unit: A +- type: pyaml.magnet.hcorrector + name: HS4M1D1R + lattice_names: S4M1D1R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: -7.120319999999999E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: HS4P1D1R:rdbk + write_pvname: HS4P1D1R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M2D1R + lattice_names: S3M2D1R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P2D1R:rdbk + write_pvname: VS3P2D1R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M2D1R + lattice_names: S2M2D1R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P2D1R:rdbk + write_pvname: VS2P2D1R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M1T1R + lattice_names: S2M1T1R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P1T1R:rdbk + write_pvname: VS2P1T1R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M1T1R + lattice_names: S3M1T1R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P1T1R:rdbk + write_pvname: VS3P1T1R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M2T1R + lattice_names: S3M2T1R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P2T1R:rdbk + write_pvname: VS3P2T1R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M2T1R + lattice_names: S2M2T1R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P2T1R:rdbk + write_pvname: VS2P2T1R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M1D2R + lattice_names: S2M1D2R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P1D2R:rdbk + write_pvname: VS2P1D2R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M1D2R + lattice_names: S3M1D2R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P1D2R:rdbk + write_pvname: VS3P1D2R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M2D2R + lattice_names: S3M2D2R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P2D2R:rdbk + write_pvname: VS3P2D2R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M2D2R + lattice_names: S2M2D2R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P2D2R:rdbk + write_pvname: VS2P2D2R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M1T2R + lattice_names: S2M1T2R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P1T2R:rdbk + write_pvname: VS2P1T2R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M1T2R + lattice_names: S3M1T2R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P1T2R:rdbk + write_pvname: VS3P1T2R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M2T2R + lattice_names: S3M2T2R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P2T2R:rdbk + write_pvname: VS3P2T2R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M2T2R + lattice_names: S2M2T2R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P2T2R:rdbk + write_pvname: VS2P2T2R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M1D3R + lattice_names: S2M1D3R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P1D3R:rdbk + write_pvname: VS2P1D3R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M1D3R + lattice_names: S3M1D3R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P1D3R:rdbk + write_pvname: VS3P1D3R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M2D3R + lattice_names: S3M2D3R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P2D3R:rdbk + write_pvname: VS3P2D3R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M2D3R + lattice_names: S2M2D3R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P2D3R:rdbk + write_pvname: VS2P2D3R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M1T3R + lattice_names: S2M1T3R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P1T3R:rdbk + write_pvname: VS2P1T3R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M1T3R + lattice_names: S3M1T3R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P1T3R:rdbk + write_pvname: VS3P1T3R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M2T3R + lattice_names: S3M2T3R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P2T3R:rdbk + write_pvname: VS3P2T3R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M2T3R + lattice_names: S2M2T3R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P2T3R:rdbk + write_pvname: VS2P2T3R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M1D4R + lattice_names: S2M1D4R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P1D4R:rdbk + write_pvname: VS2P1D4R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M1D4R + lattice_names: S3M1D4R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P1D4R:rdbk + write_pvname: VS3P1D4R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M2D4R + lattice_names: S3M2D4R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P2D4R:rdbk + write_pvname: VS3P2D4R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M2D4R + lattice_names: S2M2D4R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P2D4R:rdbk + write_pvname: VS2P2D4R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M1T4R + lattice_names: S2M1T4R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P1T4R:rdbk + write_pvname: VS2P1T4R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M1T4R + lattice_names: S3M1T4R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P1T4R:rdbk + write_pvname: VS3P1T4R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M2T4R + lattice_names: S3M2T4R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P2T4R:rdbk + write_pvname: VS3P2T4R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M2T4R + lattice_names: S2M2T4R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P2T4R:rdbk + write_pvname: VS2P2T4R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M1D5R + lattice_names: S2M1D5R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P1D5R:rdbk + write_pvname: VS2P1D5R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M1D5R + lattice_names: S3M1D5R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P1D5R:rdbk + write_pvname: VS3P1D5R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M2D5R + lattice_names: S3M2D5R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P2D5R:rdbk + write_pvname: VS3P2D5R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M2D5R + lattice_names: S2M2D5R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P2D5R:rdbk + write_pvname: VS2P2D5R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M1T5R + lattice_names: S2M1T5R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P1T5R:rdbk + write_pvname: VS2P1T5R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M1T5R + lattice_names: S3M1T5R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P1T5R:rdbk + write_pvname: VS3P1T5R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M2T5R + lattice_names: S3M2T5R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P2T5R:rdbk + write_pvname: VS3P2T5R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M2T5R + lattice_names: S2M2T5R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P2T5R:rdbk + write_pvname: VS2P2T5R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M1D6R + lattice_names: S2M1D6R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P1D6R:rdbk + write_pvname: VS2P1D6R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M1D6R + lattice_names: S3M1D6R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P1D6R:rdbk + write_pvname: VS3P1D6R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M2D6R + lattice_names: S3M2D6R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P2D6R:rdbk + write_pvname: VS3P2D6R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M2D6R + lattice_names: S2M2D6R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P2D6R:rdbk + write_pvname: VS2P2D6R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M1T6R + lattice_names: S2M1T6R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P1T6R:rdbk + write_pvname: VS2P1T6R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M1T6R + lattice_names: S3M1T6R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P1T6R:rdbk + write_pvname: VS3P1T6R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M2T6R + lattice_names: S3M2T6R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P2T6R:rdbk + write_pvname: VS3P2T6R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M2T6R + lattice_names: S2M2T6R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P2T6R:rdbk + write_pvname: VS2P2T6R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M1D7R + lattice_names: S2M1D7R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P1D7R:rdbk + write_pvname: VS2P1D7R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M1D7R + lattice_names: S3M1D7R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P1D7R:rdbk + write_pvname: VS3P1D7R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M2D7R + lattice_names: S3M2D7R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P2D7R:rdbk + write_pvname: VS3P2D7R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M2D7R + lattice_names: S2M2D7R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P2D7R:rdbk + write_pvname: VS2P2D7R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M1T7R + lattice_names: S2M1T7R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P1T7R:rdbk + write_pvname: VS2P1T7R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M1T7R + lattice_names: S3M1T7R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P1T7R:rdbk + write_pvname: VS3P1T7R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M2T7R + lattice_names: S3M2T7R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P2T7R:rdbk + write_pvname: VS3P2T7R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M2T7R + lattice_names: S2M2T7R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P2T7R:rdbk + write_pvname: VS2P2T7R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M1D8R + lattice_names: S2M1D8R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P1D8R:rdbk + write_pvname: VS2P1D8R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M1D8R + lattice_names: S3M1D8R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P1D8R:rdbk + write_pvname: VS3P1D8R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M2D8R + lattice_names: S3M2D8R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P2D8R:rdbk + write_pvname: VS3P2D8R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M2D8R + lattice_names: S2M2D8R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P2D8R:rdbk + write_pvname: VS2P2D8R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M1T8R + lattice_names: S2M1T8R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P1T8R:rdbk + write_pvname: VS2P1T8R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M1T8R + lattice_names: S3M1T8R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P1T8R:rdbk + write_pvname: VS3P1T8R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M2T8R + lattice_names: S3M2T8R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P2T8R:rdbk + write_pvname: VS3P2T8R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M2T8R + lattice_names: S2M2T8R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P2T8R:rdbk + write_pvname: VS2P2T8R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS2M1D1R + lattice_names: S2M1D1R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS2P1D1R:rdbk + write_pvname: VS2P1D1R:set + unit: A +- type: pyaml.magnet.vcorrector + name: VS3M1D1R + lattice_names: S3M1D1R@0 + model: + type: pyaml.magnet.linear_model + calibration_factor: 4.761712E-4 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + read_pvname: VS3P1D1R:rdbk + write_pvname: VS3P1D1R:set + unit: A - type: pyaml.bpm.bpm name: BPMZ5D1R model: diff --git a/examples/BESSY2_ORM_example/bessy2-orbit.py b/examples/BESSY2_ORM_example/bessy2-orbit.py index 4863c5e2..e7a3e6fc 100644 --- a/examples/BESSY2_ORM_example/bessy2-orbit.py +++ b/examples/BESSY2_ORM_example/bessy2-orbit.py @@ -1,10 +1,39 @@ import numpy as np +import time from pyaml.accelerator import Accelerator +import matplotlib.pyplot as plt sr = Accelerator.load("BESSY2Orbit.yaml") -orbit = sr.live.get_bpms("BPM").positions.get() -names = sr.live.get_bpms("BPM").names() -for idx, n in enumerate(names): - print(f"{n}:{orbit[idx]}") -print(sr.live.get_rf_plant("RF").frequency.get()) +orbit = sr.live.get_bpms("BPM").positions +hcorr = sr.live.get_magnets("HCorr") +vcorr = sr.live.get_magnets("VCorr") + +# Mangle the orbit +std_kick = 1e-6 +hcorr.strengths.set(std_kick * np.random.normal(size=len(hcorr))) +vcorr.strengths.set(std_kick * np.random.normal(size=len(vcorr))) +time.sleep(3) +positions_bc = orbit.get() + +fig = plt.figure() +ax1 = fig.add_subplot(311) +ax2 = fig.add_subplot(312) +ax3 = fig.add_subplot(313) +ax1.plot(positions_bc[:, 0] * 1e-3, label="Orbit before correction") +ax2.plot(positions_bc[:, 1] * 1e-3, label="Orbit before correction") +#ax1.plot(positions_ac[:, 0] * 1e6, label="Orbit after correction") +#ax2.plot(positions_ac[:, 1] * 1e6, label="Orbit after correction") + +ax3.plot(hcorr.strengths.get()) +ax3.plot(vcorr.strengths.get()) + +ax1.set_ylabel("Horizontal pos. [μm]") +ax2.set_ylabel("Vertical pos. [μm]") +ax2.set_xlabel("BPM number") +ax3.set_ylabel("Strength (rad)") +ax3.set_xlabel("Steerer number") +fig.tight_layout() + +plt.show() + From 71282088c32f4961f921c059c862292681140eae Mon Sep 17 00:00:00 2001 From: PONS Date: Fri, 16 Jan 2026 10:44:19 +0100 Subject: [PATCH 03/11] Added tune --- .../BESSY2Orbit.yaml | 0 examples/BESSY2_example/BESSY2Tune.yaml | 515 ++++++++++++++++++ .../bessy2-orbit.py | 10 +- examples/BESSY2_example/bessy2-tune.py | 32 ++ .../bessy2.mat | Bin 5 files changed, 552 insertions(+), 5 deletions(-) rename examples/{BESSY2_ORM_example => BESSY2_example}/BESSY2Orbit.yaml (100%) create mode 100644 examples/BESSY2_example/BESSY2Tune.yaml rename examples/{BESSY2_ORM_example => BESSY2_example}/bessy2-orbit.py (87%) create mode 100644 examples/BESSY2_example/bessy2-tune.py rename examples/{BESSY2_ORM_example => BESSY2_example}/bessy2.mat (100%) diff --git a/examples/BESSY2_ORM_example/BESSY2Orbit.yaml b/examples/BESSY2_example/BESSY2Orbit.yaml similarity index 100% rename from examples/BESSY2_ORM_example/BESSY2Orbit.yaml rename to examples/BESSY2_example/BESSY2Orbit.yaml diff --git a/examples/BESSY2_example/BESSY2Tune.yaml b/examples/BESSY2_example/BESSY2Tune.yaml new file mode 100644 index 00000000..f83635c6 --- /dev/null +++ b/examples/BESSY2_example/BESSY2Tune.yaml @@ -0,0 +1,515 @@ +type: pyaml.accelerator +facility: BESSY2 +machine: sr +energy: 1.7e9 +simulators: +- type: pyaml.lattice.simulator + lattice: bessy2.mat + name: design +controls: +- type: pyaml_cs_oa.controlsystem + prefix: 'pons:' + name: live +data_folder: /data/store +arrays: +- type: pyaml.arrays.magnet + name: QForTune + elements: + - Q3MD1R + - Q3MD2R + - Q3MD3R + - Q3MD4R + - Q3MD5R + - Q3MD6R + - Q3MD7R + - Q3MD8R + - Q3M1T1R + - Q3M2T1R + - Q3MT2R + - Q3MT3R + - Q3MT4R + - Q3MT5R + - Q3M1T6R + - Q3M2T6R + - Q3MT7R + - Q3M1T8R + - Q3M2T8R + - Q4MD1R + - Q4MD2R + - Q4MD3R + - Q4MD4R + - Q4MD5R + - Q4MD6R + - Q4MD7R + - Q4MD8R + - Q4M1T1R + - Q4M2T1R + - Q4MT2R + - Q4MT3R + - Q4MT4R + - Q4MT5R + - Q4M1T6R + - Q4M2T6R + - Q4MT7R + - Q4M1T8R + - Q4M2T8R +devices: +- type: pyaml.magnet.quadrupole + name: Q3MD1R + lattice_names: list(Q3M1D1R,Q3M2D1R) + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.031715 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q3PD1R:set + read_pvname: Q3PD1R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q3MD2R + lattice_names: list(Q3M1D2R,Q3M2D2R) + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.031715 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q3PD2R:set + read_pvname: Q3PD2R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q3MD3R + lattice_names: list(Q3M1D3R,Q3M2D3R) + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.031715 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q3PD3R:set + read_pvname: Q3PD3R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q3MD4R + lattice_names: list(Q3M1D4R,Q3M2D4R) + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.031715 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q3PD4R:set + read_pvname: Q3PD4R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q3MD5R + lattice_names: list(Q3M1D5R,Q3M2D5R) + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.031715 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q3PD5R:set + read_pvname: Q3PD5R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q3MD6R + lattice_names: list(Q3M1D6R,Q3M2D6R) + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.031715 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q3PD6R:set + read_pvname: Q3PD6R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q3MD7R + lattice_names: list(Q3M1D7R,Q3M2D7R) + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.031715 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q3PD7R:set + read_pvname: Q3PD7R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q3MD8R + lattice_names: list(Q3M1D8R,Q3M2D8R) + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.031715 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q3PD8R:set + read_pvname: Q3PD8R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q3M1T1R + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.015735 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q3P1T1R:set + read_pvname: Q3P1T1R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q3M2T1R + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.015735 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q3P2T1R:set + read_pvname: Q3P2T1R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q3MT2R + lattice_names: list(Q3M1T2R,Q3M2T2R) + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.03147 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q3PT2R:set + read_pvname: Q3PT2R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q3MT3R + lattice_names: list(Q3M1T3R,Q3M2T3R) + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.03147 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q3PT3R:set + read_pvname: Q3PT3R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q3MT4R + lattice_names: list(Q3M1T4R,Q3M2T4R) + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.03147 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q3PT4R:set + read_pvname: Q3PT4R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q3MT5R + lattice_names: list(Q3M1T5R,Q3M2T5R) + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.03147 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q3PT5R:set + read_pvname: Q3PT5R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q3M1T6R + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.015735 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q3P1T6R:set + read_pvname: Q3P1T6R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q3M2T6R + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.015735 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q3P2T6R:set + read_pvname: Q3P2T6R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q3MT7R + lattice_names: list(Q3M1T7R,Q3M2T7R) + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.03147 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q3PT7R:set + read_pvname: Q3PT7R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q3M1T8R + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.015735 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q3P1T8R:set + read_pvname: Q3P1T8R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q3M2T8R + model: + type: pyaml.magnet.linear_model + calibration_factor: -0.015735 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q3P2T8R:set + read_pvname: Q3P2T8R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q4MD1R + lattice_names: list(Q4M1D1R,Q4M2D1R) + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.060633 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q4PD1R:set + read_pvname: Q4PD1R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q4MD2R + lattice_names: list(Q4M1D2R,Q4M2D2R) + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.060633 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q4PD2R:set + read_pvname: Q4PD2R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q4MD3R + lattice_names: list(Q4M1D3R,Q4M2D3R) + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.060633 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q4PD3R:set + read_pvname: Q4PD3R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q4MD4R + lattice_names: list(Q4M1D4R,Q4M2D4R) + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.060633 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q4PD4R:set + read_pvname: Q4PD4R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q4MD5R + lattice_names: list(Q4M1D5R,Q4M2D5R) + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.060633 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q4PD5R:set + read_pvname: Q4PD5R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q4MD6R + lattice_names: list(Q4M1D6R,Q4M2D6R) + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.060633 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q4PD6R:set + read_pvname: Q4PD6R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q4MD7R + lattice_names: list(Q4M1D7R,Q4M2D7R) + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.060633 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q4PD7R:set + read_pvname: Q4PD7R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q4MD8R + lattice_names: list(Q4M1D8R,Q4M2D8R) + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.060633 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q4PD8R:set + read_pvname: Q4PD8R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q4M1T1R + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.0296695 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q4P1T1R:set + read_pvname: Q4P1T1R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q4M2T1R + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.0296695 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q4P2T1R:set + read_pvname: Q4P2T1R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q4MT2R + lattice_names: list(Q4M1T2R,Q4M2T2R) + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.059339 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q4PT2R:set + read_pvname: Q4PT2R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q4MT3R + lattice_names: list(Q4M1T3R,Q4M2T3R) + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.059339 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q4PT3R:set + read_pvname: Q4PT3R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q4MT4R + lattice_names: list(Q4M1T4R,Q4M2T4R) + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.059339 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q4PT4R:set + read_pvname: Q4PT4R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q4MT5R + lattice_names: list(Q4M1T5R,Q4M2T5R) + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.059339 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q4PT5R:set + read_pvname: Q4PT5R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q4M1T6R + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.0296695 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q4P1T6R:set + read_pvname: Q4P1T6R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q4M2T6R + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.0296695 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q4P2T6R:set + read_pvname: Q4P2T6R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q4MT7R + lattice_names: list(Q4M1T7R,Q4M2T7R) + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.059339 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q4PT7R:set + read_pvname: Q4PT7R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q4M1T8R + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.0296695 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q4P1T8R:set + read_pvname: Q4P1T8R:rdbk + unit: A +- type: pyaml.magnet.quadrupole + name: Q4M2T8R + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.0296695 + unit: 1/m + powerconverter: + type: pyaml_cs_oa.epicsRW + write_pvname: Q4P2T8R:set + read_pvname: Q4P2T8R:rdbk + unit: A +- type: pyaml.diagnostics.tune_monitor + name: BETATRON_TUNE + tune_h: + type: pyaml_cs_oa.epicsR + read_pvname: beam:twiss:x:tune + unit: '' + tune_v: + type: pyaml_cs_oa.epicsR + read_pvname: beam:twiss:y:tune + unit: '' +- type: pyaml.tuning_tools.tune + name: DEFAULT_TUNE_CORRECTION + quad_array: QForTune + betatron_tune: BETATRON_TUNE + delta: 1e-4 diff --git a/examples/BESSY2_ORM_example/bessy2-orbit.py b/examples/BESSY2_example/bessy2-orbit.py similarity index 87% rename from examples/BESSY2_ORM_example/bessy2-orbit.py rename to examples/BESSY2_example/bessy2-orbit.py index e7a3e6fc..364cf131 100644 --- a/examples/BESSY2_ORM_example/bessy2-orbit.py +++ b/examples/BESSY2_example/bessy2-orbit.py @@ -1,8 +1,9 @@ -import numpy as np import time -from pyaml.accelerator import Accelerator import matplotlib.pyplot as plt +import numpy as np + +from pyaml.accelerator import Accelerator sr = Accelerator.load("BESSY2Orbit.yaml") orbit = sr.live.get_bpms("BPM").positions @@ -22,8 +23,8 @@ ax3 = fig.add_subplot(313) ax1.plot(positions_bc[:, 0] * 1e-3, label="Orbit before correction") ax2.plot(positions_bc[:, 1] * 1e-3, label="Orbit before correction") -#ax1.plot(positions_ac[:, 0] * 1e6, label="Orbit after correction") -#ax2.plot(positions_ac[:, 1] * 1e6, label="Orbit after correction") +# ax1.plot(positions_ac[:, 0] * 1e6, label="Orbit after correction") +# ax2.plot(positions_ac[:, 1] * 1e6, label="Orbit after correction") ax3.plot(hcorr.strengths.get()) ax3.plot(vcorr.strengths.get()) @@ -36,4 +37,3 @@ fig.tight_layout() plt.show() - diff --git a/examples/BESSY2_example/bessy2-tune.py b/examples/BESSY2_example/bessy2-tune.py new file mode 100644 index 00000000..e75696ae --- /dev/null +++ b/examples/BESSY2_example/bessy2-tune.py @@ -0,0 +1,32 @@ +import time + +import numpy as np + +from pyaml.accelerator import Accelerator +from pyaml.common.constants import ACTION_RESTORE +from pyaml.magnet.magnet import Magnet + + +def tune_callback(step: int, action: int, m: Magnet, dtune: np.array): + if action == ACTION_RESTORE: + # On action restore, the measured delta tune is passed as argument + print(f"Tune response: #{step} {m.get_name()} {dtune}") + return True + + +sr = Accelerator.load("BESSY2Tune.yaml") + +# print(sr.live.get_magnets("QForTune").strengths.get()) +# print(sr.design.get_magnets("QForTune").strengths.get()) +# quit() + +sr.design.get_lattice().disable_6d() +tune_adjust = sr.design.tune +tune_adjust.response.measure(callback=tune_callback) +tune_adjust.response.save_json("tunemat-bessy.json") + +sr.live.tune.response.load_json("tunemat-bessy.json") +print(sr.live.tune.readback()) +sr.live.tune.set([0.83, 0.84], iter=2, wait_time=3) +time.sleep(3) +print(sr.live.tune.readback()) diff --git a/examples/BESSY2_ORM_example/bessy2.mat b/examples/BESSY2_example/bessy2.mat similarity index 100% rename from examples/BESSY2_ORM_example/bessy2.mat rename to examples/BESSY2_example/bessy2.mat From 93cc36644a9e17f22aed219067e5582660775614 Mon Sep 17 00:00:00 2001 From: PONS Date: Fri, 16 Jan 2026 11:06:57 +0100 Subject: [PATCH 04/11] Added README --- examples/BESSY2_example/README.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 examples/BESSY2_example/README.md diff --git a/examples/BESSY2_example/README.md b/examples/BESSY2_example/README.md new file mode 100644 index 00000000..c7553ee4 --- /dev/null +++ b/examples/BESSY2_example/README.md @@ -0,0 +1,30 @@ +Run the BESSY va: + +```bash +apptainer run oras://registry.hzdr.de/digital-twins-for-accelerators/containers/pyat-softioc-digital-twin:v0-1-2-bessy.2475331 +``` + +Run the epics tools: +```bash +apptainer run oras://registry.hzdr.de/digital-twins-for-accelerators/epics-tools:v0-1-0.2028728 +``` + +In the epics tools: +```bash +epics tools ~/Desktop > pvlist +GUID 0x4A709B99A866F1326CBBE22F version 2: tcp@[ 160.103.10.135:5075 ] +epics tools ~/Desktop > pvlist 0x4A709B99A866F1326CBBE22F +pons:CAVH1T8R:freq +pons:CAVH2T8R:freq +... +``` + +Edit your yaml config file and setup the control system prefix: +```yaml +controls: + - type: pyaml_cs_oa.controlsystem + prefix: "your_prefix:" + name: live +``` + +Run the exmaples From 91011c655dff2068fe56223a5f50687bddb29963 Mon Sep 17 00:00:00 2001 From: PONS Date: Mon, 19 Jan 2026 15:46:51 +0100 Subject: [PATCH 05/11] Changed BPM source, steerer to ickAngle --- examples/BESSY2_example/BESSY2Orbit.yaml | 1247 +++++++++++----------- 1 file changed, 616 insertions(+), 631 deletions(-) diff --git a/examples/BESSY2_example/BESSY2Orbit.yaml b/examples/BESSY2_example/BESSY2Orbit.yaml index f0ba3de6..101f20d8 100644 --- a/examples/BESSY2_example/BESSY2Orbit.yaml +++ b/examples/BESSY2_example/BESSY2Orbit.yaml @@ -140,7 +140,7 @@ arrays: - BPMZ2T1R - BPMZ3T1R - BPMZ4T1R - - BPMZ41D1R + - BPMZ43T1R - BPMZ5T1R - BPMZ6T1R - BPMZ7T1R @@ -183,7 +183,6 @@ arrays: - BPMZ2T4R - BPMZ3T4R - BPMZ4T4R - - BPMZ43T1R - BPMZ5T4R - BPMZ6T4R - BPMZ7T4R @@ -206,14 +205,15 @@ arrays: - BPMZ3D6R - BPMZ4D6R - BPMZ41D6R - - BPMZ41T6R + - BPMZ42D6R + - BPMZ43D6R + - BPMZ44D6R - BPMZ6D6R - BPMZ7D6R - BPMZ1T6R - BPMZ2T6R - BPMZ3T6R - BPMZ4T6R - - BPMZ42D6R - BPMZ5T6R - BPMZ6T6R - BPMZ7T6R @@ -221,7 +221,6 @@ arrays: - BPMZ2D7R - BPMZ3D7R - BPMZ4D7R - - BPMZ43D6R - BPMZ5D7R - BPMZ6D7R - BPMZ7D7R @@ -229,7 +228,6 @@ arrays: - BPMZ2T7R - BPMZ3T7R - BPMZ4T7R - - BPMZ44D6R - BPMZ5T7R - BPMZ6T7R - BPMZ7T7R @@ -251,6 +249,7 @@ arrays: - BPMZ2D1R - BPMZ3D1R - BPMZ4D1R + - BPMZ41D1R - BPMZ42D1R devices: #- type: pyaml.tuning_tools.orbit @@ -270,7 +269,7 @@ devices: lattice_names: S4M2D1R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -282,7 +281,7 @@ devices: lattice_names: S1MT1R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -0.0011622198 + calibration_factor: -0.00553438 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -294,7 +293,7 @@ devices: lattice_names: S4M1T1R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -306,7 +305,7 @@ devices: lattice_names: S4M2T1R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -318,7 +317,7 @@ devices: lattice_names: S1MD2R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -0.0011622198 + calibration_factor: -0.00553438 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -330,7 +329,7 @@ devices: lattice_names: S4M1D2R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -342,7 +341,7 @@ devices: lattice_names: S4M2D2R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -354,7 +353,7 @@ devices: lattice_names: S1MT2R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -0.0011622198 + calibration_factor: -0.00553438 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -366,7 +365,7 @@ devices: lattice_names: S4M1T2R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -378,7 +377,7 @@ devices: lattice_names: S4M2T2R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -390,7 +389,7 @@ devices: lattice_names: S1MD3R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -0.0011622198 + calibration_factor: -0.00553438 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -402,7 +401,7 @@ devices: lattice_names: S4M1D3R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -414,7 +413,7 @@ devices: lattice_names: S4M2D3R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -426,7 +425,7 @@ devices: lattice_names: S1MT3R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -0.0011622198 + calibration_factor: -0.00553438 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -438,7 +437,7 @@ devices: lattice_names: S4M1T3R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -450,7 +449,7 @@ devices: lattice_names: S4M2T3R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -462,7 +461,7 @@ devices: lattice_names: S1MD4R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -0.0011622198 + calibration_factor: -0.00553438 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -474,7 +473,7 @@ devices: lattice_names: S4M1D4R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -486,7 +485,7 @@ devices: lattice_names: S4M2D4R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -498,7 +497,7 @@ devices: lattice_names: S1MT4R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -0.0011622198 + calibration_factor: -0.00553438 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -510,7 +509,7 @@ devices: lattice_names: S4M1T4R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -522,7 +521,7 @@ devices: lattice_names: S4M2T4R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -534,7 +533,7 @@ devices: lattice_names: S1MD5R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -0.0011622198 + calibration_factor: -0.00553438 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -546,7 +545,7 @@ devices: lattice_names: S4M1D5R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -558,7 +557,7 @@ devices: lattice_names: S4M2D5R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -570,7 +569,7 @@ devices: lattice_names: S1MT5R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -0.0011622198 + calibration_factor: -0.00553438 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -582,7 +581,7 @@ devices: lattice_names: S4M1T5R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -594,7 +593,7 @@ devices: lattice_names: S4M2T5R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -606,7 +605,7 @@ devices: lattice_names: S1MD6R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -0.0011622198 + calibration_factor: -0.00553438 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -618,7 +617,7 @@ devices: lattice_names: S4M1D6R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -630,7 +629,7 @@ devices: lattice_names: S4M2D6R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -642,7 +641,7 @@ devices: lattice_names: S1MT6R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -0.0011622198 + calibration_factor: -0.00553438 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -654,7 +653,7 @@ devices: lattice_names: S4M1T6R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -666,7 +665,7 @@ devices: lattice_names: S4M2T6R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -678,7 +677,7 @@ devices: lattice_names: S1MD7R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -0.0011622198 + calibration_factor: -0.00553438 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -690,7 +689,7 @@ devices: lattice_names: S4M1D7R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -702,7 +701,7 @@ devices: lattice_names: S4M2D7R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -714,7 +713,7 @@ devices: lattice_names: S1MT7R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -0.0011622198 + calibration_factor: -0.00553438 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -726,7 +725,7 @@ devices: lattice_names: S4M1T7R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -738,7 +737,7 @@ devices: lattice_names: S4M2T7R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -750,7 +749,7 @@ devices: lattice_names: S1MD8R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -0.0011622198 + calibration_factor: -0.00553438 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -762,7 +761,7 @@ devices: lattice_names: S4M1D8R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -774,7 +773,7 @@ devices: lattice_names: S4M2D8R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -786,7 +785,7 @@ devices: lattice_names: S1MT8R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -0.0011622198 + calibration_factor: -0.00553438 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -798,7 +797,7 @@ devices: lattice_names: S4M1T8R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -810,7 +809,7 @@ devices: lattice_names: S4M2T8R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -822,7 +821,7 @@ devices: lattice_names: S1MD1R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -0.0011622198 + calibration_factor: -0.00553438 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -834,7 +833,7 @@ devices: lattice_names: S4M1D1R@0 model: type: pyaml.magnet.linear_model - calibration_factor: -7.120319999999999E-4 + calibration_factor: -0.0044502 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -846,7 +845,7 @@ devices: lattice_names: S3M2D1R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -858,7 +857,7 @@ devices: lattice_names: S2M2D1R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -870,7 +869,7 @@ devices: lattice_names: S2M1T1R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -882,7 +881,7 @@ devices: lattice_names: S3M1T1R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -894,7 +893,7 @@ devices: lattice_names: S3M2T1R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -906,7 +905,7 @@ devices: lattice_names: S2M2T1R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -918,7 +917,7 @@ devices: lattice_names: S2M1D2R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -930,7 +929,7 @@ devices: lattice_names: S3M1D2R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -942,7 +941,7 @@ devices: lattice_names: S3M2D2R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -954,7 +953,7 @@ devices: lattice_names: S2M2D2R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -966,7 +965,7 @@ devices: lattice_names: S2M1T2R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -978,7 +977,7 @@ devices: lattice_names: S3M1T2R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -990,7 +989,7 @@ devices: lattice_names: S3M2T2R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1002,7 +1001,7 @@ devices: lattice_names: S2M2T2R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1014,7 +1013,7 @@ devices: lattice_names: S2M1D3R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1026,7 +1025,7 @@ devices: lattice_names: S3M1D3R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1038,7 +1037,7 @@ devices: lattice_names: S3M2D3R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1050,7 +1049,7 @@ devices: lattice_names: S2M2D3R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1062,7 +1061,7 @@ devices: lattice_names: S2M1T3R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1074,7 +1073,7 @@ devices: lattice_names: S3M1T3R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1086,7 +1085,7 @@ devices: lattice_names: S3M2T3R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1098,7 +1097,7 @@ devices: lattice_names: S2M2T3R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1110,7 +1109,7 @@ devices: lattice_names: S2M1D4R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1122,7 +1121,7 @@ devices: lattice_names: S3M1D4R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1134,7 +1133,7 @@ devices: lattice_names: S3M2D4R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1146,7 +1145,7 @@ devices: lattice_names: S2M2D4R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1158,7 +1157,7 @@ devices: lattice_names: S2M1T4R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1170,7 +1169,7 @@ devices: lattice_names: S3M1T4R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1182,7 +1181,7 @@ devices: lattice_names: S3M2T4R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1194,7 +1193,7 @@ devices: lattice_names: S2M2T4R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1206,7 +1205,7 @@ devices: lattice_names: S2M1D5R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1218,7 +1217,7 @@ devices: lattice_names: S3M1D5R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1230,7 +1229,7 @@ devices: lattice_names: S3M2D5R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1242,7 +1241,7 @@ devices: lattice_names: S2M2D5R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1254,7 +1253,7 @@ devices: lattice_names: S2M1T5R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1266,7 +1265,7 @@ devices: lattice_names: S3M1T5R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1278,7 +1277,7 @@ devices: lattice_names: S3M2T5R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1290,7 +1289,7 @@ devices: lattice_names: S2M2T5R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1302,7 +1301,7 @@ devices: lattice_names: S2M1D6R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1314,7 +1313,7 @@ devices: lattice_names: S3M1D6R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1326,7 +1325,7 @@ devices: lattice_names: S3M2D6R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1338,7 +1337,7 @@ devices: lattice_names: S2M2D6R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1350,7 +1349,7 @@ devices: lattice_names: S2M1T6R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1362,7 +1361,7 @@ devices: lattice_names: S3M1T6R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1374,7 +1373,7 @@ devices: lattice_names: S3M2T6R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1386,7 +1385,7 @@ devices: lattice_names: S2M2T6R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1398,7 +1397,7 @@ devices: lattice_names: S2M1D7R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1410,7 +1409,7 @@ devices: lattice_names: S3M1D7R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1422,7 +1421,7 @@ devices: lattice_names: S3M2D7R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1434,7 +1433,7 @@ devices: lattice_names: S2M2D7R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1446,7 +1445,7 @@ devices: lattice_names: S2M1T7R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1458,7 +1457,7 @@ devices: lattice_names: S3M1T7R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1470,7 +1469,7 @@ devices: lattice_names: S3M2T7R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1482,7 +1481,7 @@ devices: lattice_names: S2M2T7R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1494,7 +1493,7 @@ devices: lattice_names: S2M1D8R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1506,7 +1505,7 @@ devices: lattice_names: S3M1D8R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1518,7 +1517,7 @@ devices: lattice_names: S3M2D8R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1530,7 +1529,7 @@ devices: lattice_names: S2M2D8R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1542,7 +1541,7 @@ devices: lattice_names: S2M1T8R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1554,7 +1553,7 @@ devices: lattice_names: S3M1T8R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1566,7 +1565,7 @@ devices: lattice_names: S3M2T8R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1578,7 +1577,7 @@ devices: lattice_names: S2M2T8R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1590,7 +1589,7 @@ devices: lattice_names: S2M1D1R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1602,7 +1601,7 @@ devices: lattice_names: S3M1D1R@0 model: type: pyaml.magnet.linear_model - calibration_factor: 4.761712E-4 + calibration_factor: 0.00297607 unit: 1/m powerconverter: type: pyaml_cs_oa.epicsRW @@ -1613,1665 +1612,1651 @@ devices: name: BPMZ5D1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 0 - y_pos_index: 1 + x_pos_index: 11 + y_pos_index: 11 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ6D1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 2 - y_pos_index: 3 + x_pos_index: 19 + y_pos_index: 19 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ7D1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 4 - y_pos_index: 5 + x_pos_index: 29 + y_pos_index: 29 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ1T1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 6 - y_pos_index: 7 + x_pos_index: 42 + y_pos_index: 42 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ2T1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 8 - y_pos_index: 9 + x_pos_index: 48 + y_pos_index: 48 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ3T1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 10 - y_pos_index: 11 + x_pos_index: 58 + y_pos_index: 58 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ4T1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 12 - y_pos_index: 13 + x_pos_index: 68 + y_pos_index: 68 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm - name: BPMZ41D1R + name: BPMZ43T1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 14 - y_pos_index: 15 + x_pos_index: 81 + y_pos_index: 81 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ5T1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 16 - y_pos_index: 17 + x_pos_index: 83 + y_pos_index: 83 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ6T1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 18 - y_pos_index: 19 + x_pos_index: 93 + y_pos_index: 93 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ7T1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 20 - y_pos_index: 21 + x_pos_index: 103 + y_pos_index: 103 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ1D2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 22 - y_pos_index: 23 + x_pos_index: 116 + y_pos_index: 116 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ2D2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 24 - y_pos_index: 25 + x_pos_index: 124 + y_pos_index: 124 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ3D2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 26 - y_pos_index: 27 + x_pos_index: 132 + y_pos_index: 132 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ4D2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 28 - y_pos_index: 29 + x_pos_index: 140 + y_pos_index: 140 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ5D2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 32 - y_pos_index: 33 + x_pos_index: 146 + y_pos_index: 146 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ6D2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 34 - y_pos_index: 35 + x_pos_index: 154 + y_pos_index: 154 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ7D2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 36 - y_pos_index: 37 + x_pos_index: 164 + y_pos_index: 164 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ1T2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 38 - y_pos_index: 39 + x_pos_index: 177 + y_pos_index: 177 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ2T2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 40 - y_pos_index: 41 + x_pos_index: 183 + y_pos_index: 183 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ3T2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 42 - y_pos_index: 43 + x_pos_index: 193 + y_pos_index: 193 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ4T2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 44 - y_pos_index: 45 + x_pos_index: 203 + y_pos_index: 203 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ5T2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 48 - y_pos_index: 49 + x_pos_index: 223 + y_pos_index: 223 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ6T2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 50 - y_pos_index: 51 + x_pos_index: 233 + y_pos_index: 233 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ7T2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 52 - y_pos_index: 53 + x_pos_index: 243 + y_pos_index: 243 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ1D3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 54 - y_pos_index: 55 + x_pos_index: 256 + y_pos_index: 256 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ2D3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 56 - y_pos_index: 57 + x_pos_index: 265 + y_pos_index: 265 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ3D3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 58 - y_pos_index: 59 + x_pos_index: 275 + y_pos_index: 275 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ4D3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 60 - y_pos_index: 61 + x_pos_index: 283 + y_pos_index: 283 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ5D3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 64 - y_pos_index: 65 + x_pos_index: 287 + y_pos_index: 287 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ6D3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 66 - y_pos_index: 67 + x_pos_index: 295 + y_pos_index: 295 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ7D3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 68 - y_pos_index: 69 + x_pos_index: 305 + y_pos_index: 305 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ1T3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 70 - y_pos_index: 71 + x_pos_index: 318 + y_pos_index: 318 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ2T3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 72 - y_pos_index: 73 + x_pos_index: 324 + y_pos_index: 324 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ3T3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 74 - y_pos_index: 75 + x_pos_index: 334 + y_pos_index: 334 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ4T3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 76 - y_pos_index: 77 + x_pos_index: 344 + y_pos_index: 344 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ5T3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 80 - y_pos_index: 81 + x_pos_index: 349 + y_pos_index: 349 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ6T3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 82 - y_pos_index: 83 + x_pos_index: 359 + y_pos_index: 359 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ7T3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 84 - y_pos_index: 85 + x_pos_index: 369 + y_pos_index: 369 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ1D4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 86 - y_pos_index: 87 + x_pos_index: 382 + y_pos_index: 382 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ2D4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 88 - y_pos_index: 89 + x_pos_index: 388 + y_pos_index: 388 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ3D4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 90 - y_pos_index: 91 + x_pos_index: 398 + y_pos_index: 398 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ4D4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 92 - y_pos_index: 93 + x_pos_index: 406 + y_pos_index: 406 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ5D4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 96 - y_pos_index: 97 + x_pos_index: 413 + y_pos_index: 413 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ6D4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 98 - y_pos_index: 99 + x_pos_index: 421 + y_pos_index: 421 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ7D4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 100 - y_pos_index: 101 + x_pos_index: 431 + y_pos_index: 431 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ1T4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 102 - y_pos_index: 103 + x_pos_index: 444 + y_pos_index: 444 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ2T4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 104 - y_pos_index: 105 + x_pos_index: 450 + y_pos_index: 450 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ3T4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 106 - y_pos_index: 107 + x_pos_index: 460 + y_pos_index: 460 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ4T4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 108 - y_pos_index: 109 + x_pos_index: 470 + y_pos_index: 470 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm -- type: pyaml.bpm.bpm - name: BPMZ43T1R - model: - type: pyaml.bpm.bpm_simple_model - x_pos_index: 110 - y_pos_index: 111 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ5T4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 112 - y_pos_index: 113 + x_pos_index: 476 + y_pos_index: 476 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ6T4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 114 - y_pos_index: 115 + x_pos_index: 486 + y_pos_index: 486 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ7T4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 116 - y_pos_index: 117 + x_pos_index: 496 + y_pos_index: 496 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ1D5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 118 - y_pos_index: 119 + x_pos_index: 509 + y_pos_index: 509 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ2D5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 120 - y_pos_index: 121 + x_pos_index: 515 + y_pos_index: 515 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ3D5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 122 - y_pos_index: 123 + x_pos_index: 525 + y_pos_index: 525 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ4D5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 124 - y_pos_index: 125 + x_pos_index: 533 + y_pos_index: 533 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ5D5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 128 - y_pos_index: 129 + x_pos_index: 538 + y_pos_index: 538 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ6D5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 130 - y_pos_index: 131 + x_pos_index: 546 + y_pos_index: 546 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ7D5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 132 - y_pos_index: 133 + x_pos_index: 556 + y_pos_index: 556 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ1T5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 134 - y_pos_index: 135 + x_pos_index: 568 + y_pos_index: 568 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ2T5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 136 - y_pos_index: 137 + x_pos_index: 577 + y_pos_index: 577 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ3T5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 138 - y_pos_index: 139 + x_pos_index: 587 + y_pos_index: 587 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ4T5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 140 - y_pos_index: 141 + x_pos_index: 597 + y_pos_index: 597 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ5T5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 144 - y_pos_index: 145 + x_pos_index: 602 + y_pos_index: 602 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ6T5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 146 - y_pos_index: 147 + x_pos_index: 612 + y_pos_index: 612 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ7T5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 148 - y_pos_index: 149 + x_pos_index: 622 + y_pos_index: 622 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ1D6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 150 - y_pos_index: 151 + x_pos_index: 635 + y_pos_index: 635 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ2D6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 152 - y_pos_index: 153 + x_pos_index: 641 + y_pos_index: 641 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ3D6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 154 - y_pos_index: 155 + x_pos_index: 651 + y_pos_index: 651 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ4D6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 156 - y_pos_index: 157 + x_pos_index: 659 + y_pos_index: 659 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ41D6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 158 - y_pos_index: 159 + x_pos_index: 663 + y_pos_index: 663 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm - name: BPMZ41T6R + name: BPMZ42D6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 160 - y_pos_index: 161 + x_pos_index: 667 + y_pos_index: 667 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm - name: BPMZ6D6R + name: BPMZ43D6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 162 - y_pos_index: 163 + x_pos_index: 672 + y_pos_index: 672 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm - name: BPMZ7D6R + name: BPMZ44D6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 164 - y_pos_index: 165 + x_pos_index: 676 + y_pos_index: 676 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm - name: BPMZ1T6R + name: BPMZ6D6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 166 - y_pos_index: 167 + x_pos_index: 686 + y_pos_index: 686 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm - name: BPMZ2T6R + name: BPMZ7D6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 168 - y_pos_index: 169 + x_pos_index: 696 + y_pos_index: 696 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm - name: BPMZ3T6R + name: BPMZ1T6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 170 - y_pos_index: 171 + x_pos_index: 709 + y_pos_index: 709 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm - name: BPMZ4T6R + name: BPMZ2T6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 172 - y_pos_index: 173 + x_pos_index: 715 + y_pos_index: 715 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm - name: BPMZ42D6R + name: BPMZ3T6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 174 - y_pos_index: 175 + x_pos_index: 725 + y_pos_index: 725 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm - name: BPMZ5T6R + name: BPMZ4T6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 176 - y_pos_index: 177 + x_pos_index: 735 + y_pos_index: 735 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm - name: BPMZ6T6R + name: BPMZ5T6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 178 - y_pos_index: 179 + x_pos_index: 745 + y_pos_index: 745 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm - name: BPMZ7T6R + name: BPMZ6T6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 180 - y_pos_index: 181 + x_pos_index: 755 + y_pos_index: 755 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm - name: BPMZ1D7R + name: BPMZ7T6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 182 - y_pos_index: 183 + x_pos_index: 765 + y_pos_index: 765 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm - name: BPMZ2D7R + name: BPMZ1D7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 184 - y_pos_index: 185 + x_pos_index: 778 + y_pos_index: 778 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm - name: BPMZ3D7R + name: BPMZ2D7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 186 - y_pos_index: 187 + x_pos_index: 784 + y_pos_index: 784 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm - name: BPMZ4D7R + name: BPMZ3D7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 188 - y_pos_index: 189 + x_pos_index: 794 + y_pos_index: 794 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm - name: BPMZ43D6R + name: BPMZ4D7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 190 - y_pos_index: 191 + x_pos_index: 802 + y_pos_index: 802 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ5D7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 192 - y_pos_index: 193 + x_pos_index: 807 + y_pos_index: 807 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ6D7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 194 - y_pos_index: 195 + x_pos_index: 815 + y_pos_index: 815 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ7D7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 196 - y_pos_index: 197 + x_pos_index: 825 + y_pos_index: 825 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ1T7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 198 - y_pos_index: 199 + x_pos_index: 838 + y_pos_index: 838 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ2T7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 200 - y_pos_index: 201 + x_pos_index: 844 + y_pos_index: 844 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ3T7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 202 - y_pos_index: 203 + x_pos_index: 854 + y_pos_index: 854 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ4T7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 204 - y_pos_index: 205 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm -- type: pyaml.bpm.bpm - name: BPMZ44D6R - model: - type: pyaml.bpm.bpm_simple_model - x_pos_index: 206 - y_pos_index: 207 + x_pos_index: 864 + y_pos_index: 864 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ5T7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 208 - y_pos_index: 209 + x_pos_index: 869 + y_pos_index: 869 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ6T7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 210 - y_pos_index: 211 + x_pos_index: 879 + y_pos_index: 879 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ7T7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 212 - y_pos_index: 213 + x_pos_index: 889 + y_pos_index: 889 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ1D8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 214 - y_pos_index: 215 + x_pos_index: 902 + y_pos_index: 902 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ2D8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 216 - y_pos_index: 217 + x_pos_index: 908 + y_pos_index: 908 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ3D8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 218 - y_pos_index: 219 + x_pos_index: 918 + y_pos_index: 918 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ4D8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 220 - y_pos_index: 221 + x_pos_index: 926 + y_pos_index: 926 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ5D8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 224 - y_pos_index: 225 + x_pos_index: 933 + y_pos_index: 933 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ6D8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 226 - y_pos_index: 227 + x_pos_index: 941 + y_pos_index: 941 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ7D8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 228 - y_pos_index: 229 + x_pos_index: 951 + y_pos_index: 951 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ1T8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 230 - y_pos_index: 231 + x_pos_index: 964 + y_pos_index: 964 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ2T8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 232 - y_pos_index: 233 + x_pos_index: 970 + y_pos_index: 970 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ3T8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 234 - y_pos_index: 235 + x_pos_index: 980 + y_pos_index: 980 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ4T8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 236 - y_pos_index: 237 + x_pos_index: 990 + y_pos_index: 990 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ5T8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 240 - y_pos_index: 241 + x_pos_index: 1002 + y_pos_index: 1002 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ6T8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 242 - y_pos_index: 243 + x_pos_index: 1012 + y_pos_index: 1012 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ7T8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 244 - y_pos_index: 245 + x_pos_index: 1022 + y_pos_index: 1022 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ1D1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 246 - y_pos_index: 247 + x_pos_index: 1035 + y_pos_index: 1035 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ2D1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 248 - y_pos_index: 249 + x_pos_index: 1041 + y_pos_index: 1041 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ3D1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 250 - y_pos_index: 251 + x_pos_index: 1051 + y_pos_index: 1051 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ4D1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 252 - y_pos_index: 253 + x_pos_index: 1059 + y_pos_index: 1059 + x_pos: + type: pyaml_cs_oa.epicsR + read_pvname: beam:orbit:x + unit: nm + y_pos: + type: pyaml_cs_oa.epicsR + read_pvname: beam:orbit:y + unit: nm +- type: pyaml.bpm.bpm + name: BPMZ41D1R + model: + type: pyaml.bpm.bpm_simple_model + x_pos_index: 1063 + y_pos_index: 1063 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm - type: pyaml.bpm.bpm name: BPMZ42D1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 254 - y_pos_index: 255 + x_pos_index: 1065 + y_pos_index: 1065 x_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:x unit: nm y_pos: type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos + read_pvname: beam:orbit:y unit: nm From 13ab06449b1e95a1b4bee91792c729d7c4545caf Mon Sep 17 00:00:00 2001 From: PONS Date: Mon, 19 Jan 2026 15:50:25 +0100 Subject: [PATCH 06/11] Fix for per plane BPM aggregator --- pyaml/control/abstract_impl.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/pyaml/control/abstract_impl.py b/pyaml/control/abstract_impl.py index 87831ebc..3f5da1a7 100644 --- a/pyaml/control/abstract_impl.py +++ b/pyaml/control/abstract_impl.py @@ -151,12 +151,18 @@ def set(self, value: NDArray[np.float64]): raise Exception("BPM are not writable") def get(self) -> NDArray[np.float64]: - # TODO read using DeviceAccessList - allValues = [] - for i, d in enumerate(self._devs): - v = d.get() - allValues.extend(v[self._indices[i]]) - return np.array(allValues) + if len(self._devs) == 1: + v = self._devs[0].get() + return v[self._indices[0]] + else: + # TODO read using DeviceAccessList + v0 = self._devs[0].get()[self._indices[0]] + v1 = self._devs[1].get()[self._indices[1]] + # Interleave + xy = np.zeros(v0.size + v1.size) + xy[0::2] = v0 + xy[1::2] = v1 + return xy def readback(self) -> np.array: return self.get() From e26928d4ff186e76dd7dbf143763b9924b83e30f Mon Sep 17 00:00:00 2001 From: PONS Date: Tue, 20 Jan 2026 13:02:02 +0100 Subject: [PATCH 07/11] Update for correction --- examples/BESSY2_example/BESSY2Orbit.yaml | 13 +++--- examples/BESSY2_example/bessy2-orbit.py | 54 +++++++++++++++++++++--- 2 files changed, 55 insertions(+), 12 deletions(-) diff --git a/examples/BESSY2_example/BESSY2Orbit.yaml b/examples/BESSY2_example/BESSY2Orbit.yaml index 101f20d8..b756f452 100644 --- a/examples/BESSY2_example/BESSY2Orbit.yaml +++ b/examples/BESSY2_example/BESSY2Orbit.yaml @@ -252,12 +252,13 @@ arrays: - BPMZ41D1R - BPMZ42D1R devices: -#- type: pyaml.tuning_tools.orbit -# bpm_array_name: BPM -# hcorr_array_name: HCorr -# vcorr_array_name: VCorr -# name: DEFAULT_ORBIT_CORRECTION -# singular_values: 64 +- type: pyaml.tuning_tools.orbit + bpm_array_name: BPM + hcorr_array_name: HCorr + vcorr_array_name: VCorr + name: DEFAULT_ORBIT_CORRECTION + singular_values: 16 + response_matrix: file:ideal_orm.json - type: pyaml.rf.rf_plant name: RF masterclock: diff --git a/examples/BESSY2_example/bessy2-orbit.py b/examples/BESSY2_example/bessy2-orbit.py index 364cf131..82a4f7e4 100644 --- a/examples/BESSY2_example/bessy2-orbit.py +++ b/examples/BESSY2_example/bessy2-orbit.py @@ -1,39 +1,81 @@ +import json import time import matplotlib.pyplot as plt import numpy as np from pyaml.accelerator import Accelerator +from pyaml.tuning_tools.orbit_response_matrix import ConfigModel as ORM_ConfigModel +from pyaml.tuning_tools.orbit_response_matrix import OrbitResponseMatrix sr = Accelerator.load("BESSY2Orbit.yaml") orbit = sr.live.get_bpms("BPM").positions hcorr = sr.live.get_magnets("HCorr") vcorr = sr.live.get_magnets("VCorr") +nbBPM = len(sr.live.get_bpms("BPM")) + +if sr.design.orbit.response_matrix is None: + # Measure ORM on design + orm = OrbitResponseMatrix( + cfg=ORM_ConfigModel( + bpm_array_name="BPM", + hcorr_array_name="HCorr", + vcorr_array_name="VCorr", + corrector_delta=1e-6, + ), + element_holder=sr.design, + ) + orm.measure() + orm_data = orm.get() + ideal_ORM_data = { + "type": "pyaml.tuning_tools.response_matrix", + "matrix": orm_data["matrix"], + "input_names": orm_data["input_names"], + "output_names": orm_data["output_names"], + "rf_response": list(np.zeros(nbBPM).tolist()), + } + json.dump(ideal_ORM_data, open("ideal_orm.json", "w")) + sr.live.orbit.load_response_matrix("ideal_orm.json") # Mangle the orbit std_kick = 1e-6 hcorr.strengths.set(std_kick * np.random.normal(size=len(hcorr))) vcorr.strengths.set(std_kick * np.random.normal(size=len(vcorr))) +# sr.live.get_magnet("VS2M2D1R").strength.set(std_kick) +# sr.design.get_magnet("VS2M2D1R").strength.set(std_kick) time.sleep(3) + +# positions_bc = sr.live.get_bpms("BPM").positions.get() +# positions_ac = sr.design.get_bpms("BPM").positions.get() + + positions_bc = orbit.get() +# Correct +sr.live.orbit.correct() +time.sleep(3) +positions_ac = orbit.get() +# Plot fig = plt.figure() ax1 = fig.add_subplot(311) ax2 = fig.add_subplot(312) ax3 = fig.add_subplot(313) -ax1.plot(positions_bc[:, 0] * 1e-3, label="Orbit before correction") -ax2.plot(positions_bc[:, 1] * 1e-3, label="Orbit before correction") -# ax1.plot(positions_ac[:, 0] * 1e6, label="Orbit after correction") -# ax2.plot(positions_ac[:, 1] * 1e6, label="Orbit after correction") +ax1.plot(positions_bc[:, 0] * 1e6, label="Orbit before correction") +ax2.plot(positions_bc[:, 1] * 1e6, label="Orbit before correction") +ax1.plot(positions_ac[:, 0] * 1e6, label="Orbit after correction") +ax2.plot(positions_ac[:, 1] * 1e6, label="Orbit after correction") -ax3.plot(hcorr.strengths.get()) -ax3.plot(vcorr.strengths.get()) +ax3.plot(hcorr.strengths.get(), label="H Steerers") +ax3.plot(vcorr.strengths.get(), label="V Steerers") ax1.set_ylabel("Horizontal pos. [μm]") ax2.set_ylabel("Vertical pos. [μm]") ax2.set_xlabel("BPM number") ax3.set_ylabel("Strength (rad)") ax3.set_xlabel("Steerer number") +ax1.legend() +ax2.legend() +ax3.legend() fig.tight_layout() plt.show() From 83d3b114793f4c535fcb898b24048633ea85bf65 Mon Sep 17 00:00:00 2001 From: kparasch Date: Tue, 20 Jan 2026 15:40:52 +0100 Subject: [PATCH 08/11] update response matrix --- examples/BESSY2_example/bessy2-orbit.py | 5 +++-- pyaml/tuning_tools/orbit_response_matrix.py | 3 +++ pyaml/tuning_tools/response_matrix.py | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/examples/BESSY2_example/bessy2-orbit.py b/examples/BESSY2_example/bessy2-orbit.py index 82a4f7e4..efdb618d 100644 --- a/examples/BESSY2_example/bessy2-orbit.py +++ b/examples/BESSY2_example/bessy2-orbit.py @@ -32,7 +32,7 @@ "matrix": orm_data["matrix"], "input_names": orm_data["input_names"], "output_names": orm_data["output_names"], - "rf_response": list(np.zeros(nbBPM).tolist()), + "inputs_plane": orm_data["inputs_plane"], } json.dump(ideal_ORM_data, open("ideal_orm.json", "w")) sr.live.orbit.load_response_matrix("ideal_orm.json") @@ -51,7 +51,8 @@ positions_bc = orbit.get() # Correct -sr.live.orbit.correct() +sr.live.orbit.correct(plane="H") +sr.live.orbit.correct(plane="V") time.sleep(3) positions_ac = orbit.get() diff --git a/pyaml/tuning_tools/orbit_response_matrix.py b/pyaml/tuning_tools/orbit_response_matrix.py index 144ca77f..16f773c4 100644 --- a/pyaml/tuning_tools/orbit_response_matrix.py +++ b/pyaml/tuning_tools/orbit_response_matrix.py @@ -87,6 +87,9 @@ def measure(self, corrector_names: Optional[List[str]] = None): self.bpm_array_name ).names() self.latest_measurement = response_data.model_dump() + len_h = len(hcorrector_names) + len_v = len(vcorrector_names) + self.latest_measurement["inputs_plane"] = ["H"] * len_h + ["V"] * len_v def get(self): return self.latest_measurement diff --git a/pyaml/tuning_tools/response_matrix.py b/pyaml/tuning_tools/response_matrix.py index dfdf79c7..d1aae4ff 100644 --- a/pyaml/tuning_tools/response_matrix.py +++ b/pyaml/tuning_tools/response_matrix.py @@ -26,7 +26,8 @@ class ConfigModel(BaseModel): matrix: list[list[float]] input_names: Optional[list[str]] output_names: list[str] - rf_response: Optional[list[float]] + rf_response: Optional[list[float]] = None + inputs_plane: Optional[list[str]] = None class ResponseMatrix(object): From 21373ff0000097a0b1463655351ff8634add0124 Mon Sep 17 00:00:00 2001 From: kparasch Date: Tue, 20 Jan 2026 15:49:30 +0100 Subject: [PATCH 09/11] waiting time variable (temporary?) for pySC interface --- pyaml/external/pySC_interface.py | 4 ++++ pyaml/tuning_tools/dispersion.py | 3 ++- pyaml/tuning_tools/orbit_response_matrix.py | 5 ++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/pyaml/external/pySC_interface.py b/pyaml/external/pySC_interface.py index 1ad19d10..75714744 100644 --- a/pyaml/external/pySC_interface.py +++ b/pyaml/external/pySC_interface.py @@ -1,3 +1,4 @@ +import time from typing import TYPE_CHECKING, Optional, Tuple import numpy as np @@ -8,6 +9,8 @@ class pySCInterface: + set_wait_time: float = 0 + def __init__( self, element_holder: "ElementHolder", @@ -36,6 +39,7 @@ def get(self, name: str) -> float: def set(self, name: str, value: float) -> None: magnet = self.element_holder.get_magnet(name=name) magnet.strength.set(value=value) # ideally set_and_wait but not implemented + time.sleep(self.set_wait_time) return def get_rf_main_frequency(self) -> float: diff --git a/pyaml/tuning_tools/dispersion.py b/pyaml/tuning_tools/dispersion.py index 3eaa3588..28060fee 100644 --- a/pyaml/tuning_tools/dispersion.py +++ b/pyaml/tuning_tools/dispersion.py @@ -44,12 +44,13 @@ def __init__(self, element_holder: ElementHolder, cfg: ConfigModel): self.frequency_delta = cfg.frequency_delta self.latest_measurement = None - def measure(self): + def measure(self, set_waiting_time: float = 0): interface = pySCInterface( element_holder=self.element_holder, bpm_array_name=self.bpm_array_name, rf_plant_name=self.rf_plant_name, ) + interface.set_wait_time = set_waiting_time generator = measure_dispersion( interface=interface, diff --git a/pyaml/tuning_tools/orbit_response_matrix.py b/pyaml/tuning_tools/orbit_response_matrix.py index 16f773c4..7c7ddc26 100644 --- a/pyaml/tuning_tools/orbit_response_matrix.py +++ b/pyaml/tuning_tools/orbit_response_matrix.py @@ -51,11 +51,14 @@ def __init__(self, element_holder: ElementHolder, cfg: ConfigModel): self.corrector_delta = cfg.corrector_delta self.latest_measurement = None - def measure(self, corrector_names: Optional[List[str]] = None): + def measure( + self, corrector_names: Optional[List[str]] = None, set_wait_time: float = 0 + ): interface = pySCInterface( element_holder=self.element_holder, bpm_array_name=self.bpm_array_name, ) + interface.set_wait_time = set_wait_time if corrector_names is None: logger.info( From be7535709927702ca811c0fbf9d0bbb5a83c297e Mon Sep 17 00:00:00 2001 From: kparasch Date: Tue, 20 Jan 2026 15:55:54 +0100 Subject: [PATCH 10/11] h/v corrector names --- pyaml/tuning_tools/orbit_response_matrix.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pyaml/tuning_tools/orbit_response_matrix.py b/pyaml/tuning_tools/orbit_response_matrix.py index 7c7ddc26..7fdcc6ee 100644 --- a/pyaml/tuning_tools/orbit_response_matrix.py +++ b/pyaml/tuning_tools/orbit_response_matrix.py @@ -72,6 +72,19 @@ def measure( self.vcorr_array_name ).names() corrector_names = hcorrector_names + vcorrector_names + else: + all_hcorrector_names = self.element_holder.get_magnets( + self.hcorr_array_name + ).names() + all_vcorrector_names = self.element_holder.get_magnets( + self.vcorr_array_name + ).names() + hcorrector_names = [ + corr for corr in corrector_names if corr in all_hcorrector_names + ] + vcorrector_names = [ + corr for corr in corrector_names if corr in all_vcorrector_names + ] generator = measure_ORM( interface=interface, From 976f5ac10adc1c91c9092f62631fa3e6ec040245 Mon Sep 17 00:00:00 2001 From: PONS Date: Wed, 21 Jan 2026 08:51:18 +0100 Subject: [PATCH 11/11] Updated sample script --- examples/BESSY2_example/bessy2-orbit.py | 37 +++++++++++++++---------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/examples/BESSY2_example/bessy2-orbit.py b/examples/BESSY2_example/bessy2-orbit.py index efdb618d..3e1ebbfa 100644 --- a/examples/BESSY2_example/bessy2-orbit.py +++ b/examples/BESSY2_example/bessy2-orbit.py @@ -8,14 +8,17 @@ from pyaml.tuning_tools.orbit_response_matrix import ConfigModel as ORM_ConfigModel from pyaml.tuning_tools.orbit_response_matrix import OrbitResponseMatrix +# Load the configuration sr = Accelerator.load("BESSY2Orbit.yaml") -orbit = sr.live.get_bpms("BPM").positions -hcorr = sr.live.get_magnets("HCorr") -vcorr = sr.live.get_magnets("VCorr") -nbBPM = len(sr.live.get_bpms("BPM")) + +# if the ORM is not present measure it if sr.design.orbit.response_matrix is None: - # Measure ORM on design + # Measure ORM on design or on live + + # SR = sr.design + SR = sr.live + orm = OrbitResponseMatrix( cfg=ORM_ConfigModel( bpm_array_name="BPM", @@ -23,9 +26,9 @@ vcorr_array_name="VCorr", corrector_delta=1e-6, ), - element_holder=sr.design, + element_holder=SR, # Measurement target ) - orm.measure() + orm.measure(set_wait_time=0.0 if SR == sr.design else 2.0) orm_data = orm.get() ideal_ORM_data = { "type": "pyaml.tuning_tools.response_matrix", @@ -35,24 +38,28 @@ "inputs_plane": orm_data["inputs_plane"], } json.dump(ideal_ORM_data, open("ideal_orm.json", "w")) + # load the response on the live sr.live.orbit.load_response_matrix("ideal_orm.json") +# handle for live +orbit = sr.live.get_bpms("BPM").positions +hcorr = sr.live.get_magnets("HCorr") +vcorr = sr.live.get_magnets("VCorr") + # Mangle the orbit std_kick = 1e-6 hcorr.strengths.set(std_kick * np.random.normal(size=len(hcorr))) vcorr.strengths.set(std_kick * np.random.normal(size=len(vcorr))) -# sr.live.get_magnet("VS2M2D1R").strength.set(std_kick) -# sr.design.get_magnet("VS2M2D1R").strength.set(std_kick) time.sleep(3) -# positions_bc = sr.live.get_bpms("BPM").positions.get() -# positions_ac = sr.design.get_bpms("BPM").positions.get() - positions_bc = orbit.get() -# Correct -sr.live.orbit.correct(plane="H") -sr.live.orbit.correct(plane="V") + +# Correct the orbit +sr.live.orbit.correct() +# sr.live.orbit.correct(plane="H") +# sr.live.orbit.correct(plane="V",gain = 1.0/2.5) + time.sleep(3) positions_ac = orbit.get()