diff --git a/.github/workflows/dt4acc-integration.yml b/.github/workflows/dt4acc-integration.yml new file mode 100644 index 000000000..36e22582a --- /dev/null +++ b/.github/workflows/dt4acc-integration.yml @@ -0,0 +1,122 @@ +name: dt4acc integration + +on: + workflow_dispatch: + inputs: + dt4acc_image_uri: + description: "Apptainer ORAS image URI for the dt4acc twin" + required: false + default: "oras://gitlab-registry.synchrotron-soleil.fr/software-control-system/digitaltwin/dt4acc/dt4acc-soleil-twin/dt4acc-soleil-twin:latest" + pull_request: + branches: ["main"] + paths: + - ".github/workflows/dt4acc-integration.yml" + - "pyaml/**" + - "tests/integration/**" + - "pyproject.toml" + +permissions: + contents: read + +jobs: + smoke: + runs-on: ubuntu-latest + timeout-minutes: 30 + + defaults: + run: + shell: bash -el {0} + + env: + TANGO_HOST: 127.0.0.1:10000 + DT4ACC_IMAGE_URI: ${{ inputs.dt4acc_image_uri || 'oras://gitlab-registry.synchrotron-soleil.fr/software-control-system/digitaltwin/dt4acc/dt4acc-soleil-twin/dt4acc-soleil-twin:latest' }} + DT4ACC_REGISTRY_USER: ${{ secrets.DT4ACC_REGISTRY_USER }} + DT4ACC_REGISTRY_PASSWORD: ${{ secrets.DT4ACC_REGISTRY_PASSWORD }} + + steps: + - uses: actions/checkout@v4 + + - name: Set up Apptainer + uses: eWaterCycle/setup-apptainer@v2 + + - name: Set up Python environment + uses: mamba-org/setup-micromamba@v2 + with: + environment-name: pyaml-dt4acc-integration + create-args: >- + -c conda-forge + python=3.12 + pip + pytest + pytango + cache-environment: true + + - name: Install pyAML and control-system backends + run: | + python -m pip install --upgrade pip + python -m pip install -e ".[test]" + python -m pip install "ophyd-async[tango]" + python -m pip install --no-deps \ + "tango-pyaml @ git+https://github.com/python-accelerator-middle-layer/tango-pyaml.git" \ + "pyaml-cs-oa @ git+https://github.com/python-accelerator-middle-layer/pyaml-cs-oa.git" + python -c "import tango; import tango.pyaml; import pyaml_cs_oa" + + - name: Log in to GitLab registry + if: ${{ env.DT4ACC_REGISTRY_USER != '' && env.DT4ACC_REGISTRY_PASSWORD != '' }} + run: | + printf '%s' "${DT4ACC_REGISTRY_PASSWORD}" | + apptainer registry login \ + --username "${DT4ACC_REGISTRY_USER}" \ + --password-stdin \ + oras://gitlab-registry.synchrotron-soleil.fr + + - name: Pull dt4acc twin image + run: | + mkdir -p "${RUNNER_TEMP}/apptainer" + apptainer pull --force --disable-cache \ + "${RUNNER_TEMP}/apptainer/dt4acc-soleil-twin.sif" \ + "${DT4ACC_IMAGE_URI}" + + - name: Start dt4acc twin + run: | + LOG_FILE="${RUNNER_TEMP}/dt4acc-twin.log" + PID_FILE="${RUNNER_TEMP}/dt4acc-twin.pid" + + bash tests/integration/start_dt4acc_twin.sh \ + --accelerator-setup-file "${GITHUB_WORKSPACE}/tests/integration/data/fodo_1gev_6d_pyaml.json" \ + --lattice-file "${GITHUB_WORKSPACE}/tests/integration/data/fodo_1gev_6d.m" \ + --tango-host "${TANGO_HOST%:*}" \ + --tango-port "${TANGO_HOST##*:}" \ + --sif "${RUNNER_TEMP}/apptainer/dt4acc-soleil-twin.sif" \ + --log-file "${LOG_FILE}" \ + --pid-file "${PID_FILE}" \ + --timeout 900 \ + --detach + + - name: Run pyAML dt4acc smoke test + env: + PYAML_DT4ACC_INTEGRATION: "1" + TANGO_HOST: "127.0.0.1:10000" + run: | + python -m pytest -v tests/integration/test_dt4acc_twin_smoke.py + + - name: Stop dt4acc twin + if: always() + run: | + PID_FILE="${RUNNER_TEMP}/dt4acc-twin.pid" + if [ -f "${PID_FILE}" ]; then + TWIN_PID="$(cat "${PID_FILE}")" + kill -- "-${TWIN_PID}" 2>/dev/null || kill "${TWIN_PID}" 2>/dev/null || true + sleep 5 + kill -KILL -- "-${TWIN_PID}" 2>/dev/null || kill -KILL "${TWIN_PID}" 2>/dev/null || true + fi + if [ -f "${RUNNER_TEMP}/dt4acc-twin.log" ]; then + tail -n 200 "${RUNNER_TEMP}/dt4acc-twin.log" || true + fi + + - name: Upload dt4acc logs + if: always() + uses: actions/upload-artifact@v4 + with: + name: dt4acc-twin-log + path: ${{ runner.temp }}/dt4acc-twin.log diff --git a/pyproject.toml b/pyproject.toml index 470b48047..a9ebee41b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -126,3 +126,8 @@ skip-magic-trailing-comma = false python_version = "3.11" strict = false ignore_missing_imports = true + +[tool.pytest.ini_options] +markers = [ + "integration: tests requiring an external integration runtime", +] diff --git a/tests/conftest.py b/tests/conftest.py index 030cb61f5..a39aef1d8 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,5 +1,6 @@ import importlib import importlib.machinery +import os import pathlib import sys import types @@ -215,6 +216,10 @@ def _installed_test_packages( @pytest.fixture(scope="session", autouse=True) def install_default_test_packages(): + if os.environ.get("PYAML_DT4ACC_INTEGRATION") == "1": + yield + return + package_paths = [spec.local_path.resolve() for spec in _TEST_PACKAGES.values()] with _installed_test_packages( package_paths, diff --git a/tests/integration/data/fodo_1gev_6d.m b/tests/integration/data/fodo_1gev_6d.m new file mode 100644 index 000000000..a4dd689cb --- /dev/null +++ b/tests/integration/data/fodo_1gev_6d.m @@ -0,0 +1,172 @@ +function ring = fodo_1gev_6d() +ring = {... + atringparam('FODO_1GeV_6D', 1000000000.0, 1, 'Particle', struct('name', 'relativistic', 'rest_energy', 0.0, 'charge', -1.0), 'beam_current', 0.0, 'cell_harmnumber', 90.0);... + atrfcavity('RF_001', 0.0, 300000.0, 351319286.71874994, 90, 1000000000.0, 'UUID', 'RF_001_cc245d84ca2b4ba9b54051069a4cfb8f');... + atquadrupole('QF_001', 0.4, 1.2580503144087112, 'UUID', 'QF_001_f2013521b99e4a76bed1db7ec67464b0');... + atsextupole('SF_001', 0.1, 2.1149384071729247, 'UUID', 'SF_001_f934c7cf2c704132acfce86bc2419e36');... + atdrift('DRs_001', 0.4);... + atsbend('B_001', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_001_6182cf9bb0184f0bb9afc6655b5a6be6');... + atdrift('DR_001', 0.5);... + atquadrupole('QD_001', 0.4, -1.3094253462460304, 'UUID', 'QD_001_15812e1906ee4bc7b94abb8ccd910f5b');... + atsextupole('SD_001', 0.1, -3.4137638639939585, 'UUID', 'SD_001_4e39bd9617e7428486da49e4b5cc3981');... + atdrift('DRs_002', 0.4);... + atsbend('B_002', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_002_8fd91332121b43c79d649fb2a1a18ca6');... + atdrift('DR_002', 0.5);... + atquadrupole('QF_002', 0.4, 1.2580503144087112, 'UUID', 'QF_002_d8a6e63c07c94aed87878d113cf22194');... + atsextupole('SF_002', 0.1, 2.1149384071729247, 'UUID', 'SF_002_f7c48af5504649a09b8e9434b2509ce4');... + atdrift('DRs_003', 0.4);... + atsbend('B_003', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_003_fb4cc089236e4345b0a3f4a39ae6f49b');... + atdrift('DR_003', 0.5);... + atquadrupole('QD_002', 0.4, -1.3094253462460304, 'UUID', 'QD_002_c212a1d7ea41484f925303959213cc32');... + atsextupole('SD_002', 0.1, -3.4137638639939585, 'UUID', 'SD_002_178b0b0cfcc046c6ac9a1eac2328963e');... + atdrift('DRs_004', 0.4);... + atsbend('B_004', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_004_00d0b0b840a74028b751a6a7f72025fa');... + atdrift('DR_004', 0.5);... + atquadrupole('QF_003', 0.4, 1.2580503144087112, 'UUID', 'QF_003_d6bf77b8f23b45e0b1e96bb88f7b3d40');... + atsextupole('SF_003', 0.1, 2.1149384071729247, 'UUID', 'SF_003_bd75202a28b243d0bc604fa6e8ad0dd2');... + atdrift('DRs_005', 0.4);... + atsbend('B_005', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_005_270a6ec2a6ea465a959a5f47f2434fb0');... + atdrift('DR_005', 0.5);... + atquadrupole('QD_003', 0.4, -1.3094253462460304, 'UUID', 'QD_003_ad775f317e7b4408a72e09c7db4236ad');... + atsextupole('SD_003', 0.1, -3.4137638639939585, 'UUID', 'SD_003_63a3ec9ceeef453f8e793acc437ce116');... + atdrift('DRs_006', 0.4);... + atsbend('B_006', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_006_730f427ca9814851801be691784b96e9');... + atdrift('DR_006', 0.5);... + atquadrupole('QF_004', 0.4, 1.2580503144087112, 'UUID', 'QF_004_ce31bb358fad4cc7aadb86711031acd0');... + atsextupole('SF_004', 0.1, 2.1149384071729247, 'UUID', 'SF_004_faa5bb6858e64051a54f4f01340684e6');... + atdrift('DRs_007', 0.4);... + atsbend('B_007', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_007_c74ee44ff12e425b9bcb21277c6efc59');... + atdrift('DR_007', 0.5);... + atquadrupole('QD_004', 0.4, -1.3094253462460304, 'UUID', 'QD_004_82625fab961945c0aba57174ebcbf51f');... + atsextupole('SD_004', 0.1, -3.4137638639939585, 'UUID', 'SD_004_3e0e59ac94f945f2be40eccc30f3a2d3');... + atdrift('DRs_008', 0.4);... + atsbend('B_008', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_008_47727693f2b14c6089c1b12a0331c942');... + atdrift('DR_008', 0.5);... + atquadrupole('QF_005', 0.4, 1.2580503144087112, 'UUID', 'QF_005_d812a0f116044852a2dfc809ca0b87bf');... + atsextupole('SF_005', 0.1, 2.1149384071729247, 'UUID', 'SF_005_ab16d309e1e341e58d7ae1598098bb69');... + atdrift('DRs_009', 0.4);... + atsbend('B_009', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_009_ddd2050e98164ab9b3d3b052188a3247');... + atdrift('DR_009', 0.5);... + atquadrupole('QD_005', 0.4, -1.3094253462460304, 'UUID', 'QD_005_03b6d72e666d4632b6e9a3c2b15ceca7');... + atsextupole('SD_005', 0.1, -3.4137638639939585, 'UUID', 'SD_005_1e16f88b09834fd6bd6cf9ef7de62dbe');... + atdrift('DRs_010', 0.4);... + atsbend('B_010', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_010_184685f07007416aa94cc3b7797433af');... + atdrift('DR_010', 0.5);... + atquadrupole('QF_006', 0.4, 1.2580503144087112, 'UUID', 'QF_006_d39cefd95c88492885796863d4df1b68');... + atsextupole('SF_006', 0.1, 2.1149384071729247, 'UUID', 'SF_006_09d95d77b39a463283b0660c4478c409');... + atdrift('DRs_011', 0.4);... + atsbend('B_011', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_011_66708404736c4a74bbd88f2776ba6757');... + atdrift('DR_011', 0.5);... + atquadrupole('QD_006', 0.4, -1.3094253462460304, 'UUID', 'QD_006_49e8c0b7e66348338865c77d9317c6bf');... + atsextupole('SD_006', 0.1, -3.4137638639939585, 'UUID', 'SD_006_284911364f3c44b2abdc13acb2df46b3');... + atdrift('DRs_012', 0.4);... + atsbend('B_012', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_012_63cc84ca3a804b889757df9285fd44ac');... + atdrift('DR_012', 0.5);... + atquadrupole('QF_007', 0.4, 1.2580503144087112, 'UUID', 'QF_007_7414601f613f4115b9fe0b78eceaa2ce');... + atsextupole('SF_007', 0.1, 2.1149384071729247, 'UUID', 'SF_007_b3fa2def44a24425a5ad414abc5bbca1');... + atdrift('DRs_013', 0.4);... + atsbend('B_013', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_013_046c935da3f54e75beade9ed565219ad');... + atdrift('DR_013', 0.5);... + atquadrupole('QD_007', 0.4, -1.3094253462460304, 'UUID', 'QD_007_79fa1ac91a7f43eda443200923990327');... + atsextupole('SD_007', 0.1, -3.4137638639939585, 'UUID', 'SD_007_3b05e519bdcd4fc4b3b8dc42c2c1cb55');... + atdrift('DRs_014', 0.4);... + atsbend('B_014', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_014_2ead304932de4ce4b6382bbac997c85a');... + atdrift('DR_014', 0.5);... + atquadrupole('QF_008', 0.4, 1.2580503144087112, 'UUID', 'QF_008_b3d3db8e1c9e4e8c9eb2846730bd81ea');... + atsextupole('SF_008', 0.1, 2.1149384071729247, 'UUID', 'SF_008_00a14620b0a5428b821ddb84d2639e5c');... + atdrift('DRs_015', 0.4);... + atsbend('B_015', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_015_b7dd580aac5147a3af0bb2817408e27e');... + atdrift('DR_015', 0.5);... + atquadrupole('QD_008', 0.4, -1.3094253462460304, 'UUID', 'QD_008_1cb9b3401b644658908260616570424d');... + atsextupole('SD_008', 0.1, -3.4137638639939585, 'UUID', 'SD_008_3b849a66bca1453cac95fa0ccba58166');... + atdrift('DRs_016', 0.4);... + atsbend('B_016', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_016_b83b8bedbb624a8ebfa7f6166daf3613');... + atdrift('DR_016', 0.5);... + atquadrupole('QF_009', 0.4, 1.2580503144087112, 'UUID', 'QF_009_441bf7bdfe9c443c8a55c1a58cb1caf5');... + atsextupole('SF_009', 0.1, 2.1149384071729247, 'UUID', 'SF_009_6f725f3f495f428696a8419b73f22774');... + atdrift('DRs_017', 0.4);... + atsbend('B_017', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_017_04ad34df6c2e4dfca0d6fb797d68df69');... + atdrift('DR_017', 0.5);... + atquadrupole('QD_009', 0.4, -1.3094253462460304, 'UUID', 'QD_009_232f21c02a03457698d31ec2d4265a02');... + atsextupole('SD_009', 0.1, -3.4137638639939585, 'UUID', 'SD_009_cf86e64cfe764c12b94262c41ceabbfb');... + atdrift('DRs_018', 0.4);... + atsbend('B_018', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_018_0b98487fcf314e7e8452dc7399397835');... + atdrift('DR_018', 0.5);... + atquadrupole('QF_010', 0.4, 1.2580503144087112, 'UUID', 'QF_010_94782da4ed5e4898b91d7e864140c277');... + atsextupole('SF_010', 0.1, 2.1149384071729247, 'UUID', 'SF_010_f626388a02d64cfd83c9b1614982a5fb');... + atdrift('DRs_019', 0.4);... + atsbend('B_019', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_019_7d367c5a53bb4df4b7ecde53d5604f53');... + atdrift('DR_019', 0.5);... + atquadrupole('QD_010', 0.4, -1.3094253462460304, 'UUID', 'QD_010_56f8b47113df4cec8b2fc3ab38c69869');... + atsextupole('SD_010', 0.1, -3.4137638639939585, 'UUID', 'SD_010_eafccc3719664195b4107df7527a8a0a');... + atdrift('DRs_020', 0.4);... + atsbend('B_020', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_020_fa8a3d3ea2814c44b7815c8a5cd9d933');... + atdrift('DR_020', 0.5);... + atquadrupole('QF_011', 0.4, 1.2580503144087112, 'UUID', 'QF_011_b575ed5454c54128b2ed3d6b7e64ddad');... + atsextupole('SF_011', 0.1, 2.1149384071729247, 'UUID', 'SF_011_bd73fc4fbc0640efb117cac154b34c33');... + atdrift('DRs_021', 0.4);... + atsbend('B_021', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_021_0d732787af974b9eb0d4c1cc70db1a3d');... + atdrift('DR_021', 0.5);... + atquadrupole('QD_011', 0.4, -1.3094253462460304, 'UUID', 'QD_011_ae7b2c76f21b429c962ff3c33a38cd70');... + atsextupole('SD_011', 0.1, -3.4137638639939585, 'UUID', 'SD_011_773d914fde034e8697ac966f74ca0611');... + atdrift('DRs_022', 0.4);... + atsbend('B_022', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_022_96a000342e284ca68faaecbcd4b0904a');... + atdrift('DR_022', 0.5);... + atquadrupole('QF_012', 0.4, 1.2580503144087112, 'UUID', 'QF_012_cb52fb6f374840b0a50180a089da49d1');... + atsextupole('SF_012', 0.1, 2.1149384071729247, 'UUID', 'SF_012_02daf05ef4ab46ea86bdb3be90162251');... + atdrift('DRs_023', 0.4);... + atsbend('B_023', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_023_ffdf1ba0d350458fb3def9db81636f68');... + atdrift('DR_023', 0.5);... + atquadrupole('QD_012', 0.4, -1.3094253462460304, 'UUID', 'QD_012_29f2185aa29a4c02be3bbfdd5bad13e3');... + atsextupole('SD_012', 0.1, -3.4137638639939585, 'UUID', 'SD_012_ff9262ea95744358b360235d7a459cec');... + atdrift('DRs_024', 0.4);... + atsbend('B_024', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_024_e1fb35bf800a43448163b0cf01569c19');... + atdrift('DR_024', 0.5);... + atquadrupole('QF_013', 0.4, 1.2580503144087112, 'UUID', 'QF_013_2793a62cd78744c9ab4ca5e2843a72a2');... + atsextupole('SF_013', 0.1, 2.1149384071729247, 'UUID', 'SF_013_4532d63397d644d28e1af1a480a60c07');... + atdrift('DRs_025', 0.4);... + atsbend('B_025', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_025_2ce6a646af5642e0afc30d9f79863f48');... + atdrift('DR_025', 0.5);... + atquadrupole('QD_013', 0.4, -1.3094253462460304, 'UUID', 'QD_013_03843b2e6ee24e16aa6572f5cb18f4a8');... + atsextupole('SD_013', 0.1, -3.4137638639939585, 'UUID', 'SD_013_ef033612a3274ef3ab886afd81614dca');... + atdrift('DRs_026', 0.4);... + atsbend('B_026', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_026_8651fc68043842628e6ee1d25af0424c');... + atdrift('DR_026', 0.5);... + atquadrupole('QF_014', 0.4, 1.2580503144087112, 'UUID', 'QF_014_c09c7e604b3a41fa818b44d04c844b25');... + atsextupole('SF_014', 0.1, 2.1149384071729247, 'UUID', 'SF_014_bf4393ec53954372bd5e4f140491465b');... + atdrift('DRs_027', 0.4);... + atsbend('B_027', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_027_c832ae3f14b14804a63bce49c896f737');... + atdrift('DR_027', 0.5);... + atquadrupole('QD_014', 0.4, -1.3094253462460304, 'UUID', 'QD_014_62633bc5afcd4fc9a19de70a983baa5c');... + atsextupole('SD_014', 0.1, -3.4137638639939585, 'UUID', 'SD_014_78a18b94b6f1422fb69dbcbd2ae90d67');... + atdrift('DRs_028', 0.4);... + atsbend('B_028', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_028_25d59d6cbd90410c9ba5ed8424d442d1');... + atdrift('DR_028', 0.5);... + atquadrupole('QF_015', 0.4, 1.2580503144087112, 'UUID', 'QF_015_63634bfdccc44de586db6ee28071ccb4');... + atsextupole('SF_015', 0.1, 2.1149384071729247, 'UUID', 'SF_015_a988680835664d109306ad1694a48382');... + atdrift('DRs_029', 0.4);... + atsbend('B_029', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_029_dc2c0a36c7d64072b3e597a3b40f4b3e');... + atdrift('DR_029', 0.5);... + atquadrupole('QD_015', 0.4, -1.3094253462460304, 'UUID', 'QD_015_b2cc0d3ab8f741729a7abf3d9426a958');... + atsextupole('SD_015', 0.1, -3.4137638639939585, 'UUID', 'SD_015_8b7f143df262464e9f5c1eae4b83ce14');... + atdrift('DRs_030', 0.4);... + atsbend('B_030', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_030_225d0545f13b49b58c1ab5222727ae20');... + atdrift('DR_030', 0.5);... + atquadrupole('QF_016', 0.4, 1.2580503144087112, 'UUID', 'QF_016_965422d59ef3488f84c68f5ecaee6c6b');... + atsextupole('SF_016', 0.1, 2.1149384071729247, 'UUID', 'SF_016_e67c83cfbce2433f9152de49f928d25d');... + atdrift('DRs_031', 0.4);... + atsbend('B_031', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_031_8e33e0d3bfdf491da8ca3d8dd66e1b81');... + atdrift('DR_031', 0.5);... + atquadrupole('QD_016', 0.4, -1.3094253462460304, 'UUID', 'QD_016_63fce39354a946818c2bfd76adb61760');... + atsextupole('SD_016', 0.1, -3.4137638639939585, 'UUID', 'SD_016_626878061df544a08c4c061e57a4e3a1');... + atdrift('DRs_032', 0.4);... + atsbend('B_032', 1.0, 0.19634954084936207, 0.0, 'UUID', 'B_032_2d3c2be8fe5f41abb120ab3438a4ef66');... + atdrift('DR_032', 0.5);... +}; + function v=False() + v=false; + end + function v=True() + v=true; + end +end diff --git a/tests/integration/data/fodo_1gev_6d.yaml b/tests/integration/data/fodo_1gev_6d.yaml new file mode 100644 index 000000000..32402eae3 --- /dev/null +++ b/tests/integration/data/fodo_1gev_6d.yaml @@ -0,0 +1,1164 @@ +RF_001: + UUID: RF_001_cc245d84ca2b4ba9b54051069a4cfb8f + Lattice: + FamName: RF_001 + Class: RFCavity + Length: 0.0 + Controllable: true + Nomenclature: + TANGO: AN01-SD/RF-CAV/CAV + Localisation: + S_pos: 0.0 + Cell: 1 +QF_001: + UUID: QF_001_f2013521b99e4a76bed1db7ec67464b0 + Lattice: + FamName: QF_001 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN01-AR/EM-QP/QF.01 + Localisation: + S_pos: 0.0 + Cell: 1 +SF_001: + UUID: SF_001_f934c7cf2c704132acfce86bc2419e36 + Lattice: + FamName: SF_001 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN01-AR/EM-SX/SF.01 + Localisation: + S_pos: 0.4 + Cell: 1 +B_001: + UUID: B_001_6182cf9bb0184f0bb9afc6655b5a6be6 + Lattice: + FamName: B_001 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN01-AR/EM-DIP/B.01 + Localisation: + S_pos: 0.9 + Cell: 1 +QD_001: + UUID: QD_001_15812e1906ee4bc7b94abb8ccd910f5b + Lattice: + FamName: QD_001 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN01-AR/EM-QP/QD.01 + Localisation: + S_pos: 2.4 + Cell: 1 +SD_001: + UUID: SD_001_4e39bd9617e7428486da49e4b5cc3981 + Lattice: + FamName: SD_001 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN01-AR/EM-SX/SD.01 + Localisation: + S_pos: 2.8 + Cell: 1 +B_002: + UUID: B_002_8fd91332121b43c79d649fb2a1a18ca6 + Lattice: + FamName: B_002 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN01-AR/EM-DIP/B.02 + Localisation: + S_pos: 3.3 + Cell: 1 +QF_002: + UUID: QF_002_d8a6e63c07c94aed87878d113cf22194 + Lattice: + FamName: QF_002 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN02-AR/EM-QP/QF.01 + Localisation: + S_pos: 4.8 + Cell: 2 +SF_002: + UUID: SF_002_f7c48af5504649a09b8e9434b2509ce4 + Lattice: + FamName: SF_002 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN02-AR/EM-SX/SF.01 + Localisation: + S_pos: 5.2 + Cell: 2 +B_003: + UUID: B_003_fb4cc089236e4345b0a3f4a39ae6f49b + Lattice: + FamName: B_003 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN02-AR/EM-DIP/B.01 + Localisation: + S_pos: 5.7 + Cell: 2 +QD_002: + UUID: QD_002_c212a1d7ea41484f925303959213cc32 + Lattice: + FamName: QD_002 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN02-AR/EM-QP/QD.01 + Localisation: + S_pos: 7.2 + Cell: 2 +SD_002: + UUID: SD_002_178b0b0cfcc046c6ac9a1eac2328963e + Lattice: + FamName: SD_002 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN02-AR/EM-SX/SD.01 + Localisation: + S_pos: 7.6 + Cell: 2 +B_004: + UUID: B_004_00d0b0b840a74028b751a6a7f72025fa + Lattice: + FamName: B_004 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN02-AR/EM-DIP/B.02 + Localisation: + S_pos: 8.1 + Cell: 2 +QF_003: + UUID: QF_003_d6bf77b8f23b45e0b1e96bb88f7b3d40 + Lattice: + FamName: QF_003 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN03-AR/EM-QP/QF.01 + Localisation: + S_pos: 9.6 + Cell: 3 +SF_003: + UUID: SF_003_bd75202a28b243d0bc604fa6e8ad0dd2 + Lattice: + FamName: SF_003 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN03-AR/EM-SX/SF.01 + Localisation: + S_pos: 10.0 + Cell: 3 +B_005: + UUID: B_005_270a6ec2a6ea465a959a5f47f2434fb0 + Lattice: + FamName: B_005 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN03-AR/EM-DIP/B.01 + Localisation: + S_pos: 10.5 + Cell: 3 +QD_003: + UUID: QD_003_ad775f317e7b4408a72e09c7db4236ad + Lattice: + FamName: QD_003 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN03-AR/EM-QP/QD.01 + Localisation: + S_pos: 12.0 + Cell: 3 +SD_003: + UUID: SD_003_63a3ec9ceeef453f8e793acc437ce116 + Lattice: + FamName: SD_003 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN03-AR/EM-SX/SD.01 + Localisation: + S_pos: 12.4 + Cell: 3 +B_006: + UUID: B_006_730f427ca9814851801be691784b96e9 + Lattice: + FamName: B_006 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN03-AR/EM-DIP/B.02 + Localisation: + S_pos: 12.9 + Cell: 3 +QF_004: + UUID: QF_004_ce31bb358fad4cc7aadb86711031acd0 + Lattice: + FamName: QF_004 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN04-AR/EM-QP/QF.01 + Localisation: + S_pos: 14.4 + Cell: 4 +SF_004: + UUID: SF_004_faa5bb6858e64051a54f4f01340684e6 + Lattice: + FamName: SF_004 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN04-AR/EM-SX/SF.01 + Localisation: + S_pos: 14.8 + Cell: 4 +B_007: + UUID: B_007_c74ee44ff12e425b9bcb21277c6efc59 + Lattice: + FamName: B_007 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN04-AR/EM-DIP/B.01 + Localisation: + S_pos: 15.3 + Cell: 4 +QD_004: + UUID: QD_004_82625fab961945c0aba57174ebcbf51f + Lattice: + FamName: QD_004 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN04-AR/EM-QP/QD.01 + Localisation: + S_pos: 16.8 + Cell: 4 +SD_004: + UUID: SD_004_3e0e59ac94f945f2be40eccc30f3a2d3 + Lattice: + FamName: SD_004 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN04-AR/EM-SX/SD.01 + Localisation: + S_pos: 17.2 + Cell: 4 +B_008: + UUID: B_008_47727693f2b14c6089c1b12a0331c942 + Lattice: + FamName: B_008 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN04-AR/EM-DIP/B.02 + Localisation: + S_pos: 17.7 + Cell: 4 +QF_005: + UUID: QF_005_d812a0f116044852a2dfc809ca0b87bf + Lattice: + FamName: QF_005 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN05-AR/EM-QP/QF.01 + Localisation: + S_pos: 19.2 + Cell: 5 +SF_005: + UUID: SF_005_ab16d309e1e341e58d7ae1598098bb69 + Lattice: + FamName: SF_005 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN05-AR/EM-SX/SF.01 + Localisation: + S_pos: 19.6 + Cell: 5 +B_009: + UUID: B_009_ddd2050e98164ab9b3d3b052188a3247 + Lattice: + FamName: B_009 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN05-AR/EM-DIP/B.01 + Localisation: + S_pos: 20.1 + Cell: 5 +QD_005: + UUID: QD_005_03b6d72e666d4632b6e9a3c2b15ceca7 + Lattice: + FamName: QD_005 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN05-AR/EM-QP/QD.01 + Localisation: + S_pos: 21.6 + Cell: 5 +SD_005: + UUID: SD_005_1e16f88b09834fd6bd6cf9ef7de62dbe + Lattice: + FamName: SD_005 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN05-AR/EM-SX/SD.01 + Localisation: + S_pos: 22.0 + Cell: 5 +B_010: + UUID: B_010_184685f07007416aa94cc3b7797433af + Lattice: + FamName: B_010 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN05-AR/EM-DIP/B.02 + Localisation: + S_pos: 22.5 + Cell: 5 +QF_006: + UUID: QF_006_d39cefd95c88492885796863d4df1b68 + Lattice: + FamName: QF_006 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN06-AR/EM-QP/QF.01 + Localisation: + S_pos: 24.0 + Cell: 6 +SF_006: + UUID: SF_006_09d95d77b39a463283b0660c4478c409 + Lattice: + FamName: SF_006 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN06-AR/EM-SX/SF.01 + Localisation: + S_pos: 24.4 + Cell: 6 +B_011: + UUID: B_011_66708404736c4a74bbd88f2776ba6757 + Lattice: + FamName: B_011 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN06-AR/EM-DIP/B.01 + Localisation: + S_pos: 24.9 + Cell: 6 +QD_006: + UUID: QD_006_49e8c0b7e66348338865c77d9317c6bf + Lattice: + FamName: QD_006 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN06-AR/EM-QP/QD.01 + Localisation: + S_pos: 26.4 + Cell: 6 +SD_006: + UUID: SD_006_284911364f3c44b2abdc13acb2df46b3 + Lattice: + FamName: SD_006 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN06-AR/EM-SX/SD.01 + Localisation: + S_pos: 26.8 + Cell: 6 +B_012: + UUID: B_012_63cc84ca3a804b889757df9285fd44ac + Lattice: + FamName: B_012 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN06-AR/EM-DIP/B.02 + Localisation: + S_pos: 27.3 + Cell: 6 +QF_007: + UUID: QF_007_7414601f613f4115b9fe0b78eceaa2ce + Lattice: + FamName: QF_007 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN07-AR/EM-QP/QF.01 + Localisation: + S_pos: 28.8 + Cell: 7 +SF_007: + UUID: SF_007_b3fa2def44a24425a5ad414abc5bbca1 + Lattice: + FamName: SF_007 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN07-AR/EM-SX/SF.01 + Localisation: + S_pos: 29.2 + Cell: 7 +B_013: + UUID: B_013_046c935da3f54e75beade9ed565219ad + Lattice: + FamName: B_013 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN07-AR/EM-DIP/B.01 + Localisation: + S_pos: 29.7 + Cell: 7 +QD_007: + UUID: QD_007_79fa1ac91a7f43eda443200923990327 + Lattice: + FamName: QD_007 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN07-AR/EM-QP/QD.01 + Localisation: + S_pos: 31.2 + Cell: 7 +SD_007: + UUID: SD_007_3b05e519bdcd4fc4b3b8dc42c2c1cb55 + Lattice: + FamName: SD_007 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN07-AR/EM-SX/SD.01 + Localisation: + S_pos: 31.6 + Cell: 7 +B_014: + UUID: B_014_2ead304932de4ce4b6382bbac997c85a + Lattice: + FamName: B_014 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN07-AR/EM-DIP/B.02 + Localisation: + S_pos: 32.1 + Cell: 7 +QF_008: + UUID: QF_008_b3d3db8e1c9e4e8c9eb2846730bd81ea + Lattice: + FamName: QF_008 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN08-AR/EM-QP/QF.01 + Localisation: + S_pos: 33.6 + Cell: 8 +SF_008: + UUID: SF_008_00a14620b0a5428b821ddb84d2639e5c + Lattice: + FamName: SF_008 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN08-AR/EM-SX/SF.01 + Localisation: + S_pos: 34.0 + Cell: 8 +B_015: + UUID: B_015_b7dd580aac5147a3af0bb2817408e27e + Lattice: + FamName: B_015 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN08-AR/EM-DIP/B.01 + Localisation: + S_pos: 34.5 + Cell: 8 +QD_008: + UUID: QD_008_1cb9b3401b644658908260616570424d + Lattice: + FamName: QD_008 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN08-AR/EM-QP/QD.01 + Localisation: + S_pos: 36.0 + Cell: 8 +SD_008: + UUID: SD_008_3b849a66bca1453cac95fa0ccba58166 + Lattice: + FamName: SD_008 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN08-AR/EM-SX/SD.01 + Localisation: + S_pos: 36.4 + Cell: 8 +B_016: + UUID: B_016_b83b8bedbb624a8ebfa7f6166daf3613 + Lattice: + FamName: B_016 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN08-AR/EM-DIP/B.02 + Localisation: + S_pos: 36.9 + Cell: 8 +QF_009: + UUID: QF_009_441bf7bdfe9c443c8a55c1a58cb1caf5 + Lattice: + FamName: QF_009 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN09-AR/EM-QP/QF.01 + Localisation: + S_pos: 38.4 + Cell: 9 +SF_009: + UUID: SF_009_6f725f3f495f428696a8419b73f22774 + Lattice: + FamName: SF_009 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN09-AR/EM-SX/SF.01 + Localisation: + S_pos: 38.8 + Cell: 9 +B_017: + UUID: B_017_04ad34df6c2e4dfca0d6fb797d68df69 + Lattice: + FamName: B_017 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN09-AR/EM-DIP/B.01 + Localisation: + S_pos: 39.3 + Cell: 9 +QD_009: + UUID: QD_009_232f21c02a03457698d31ec2d4265a02 + Lattice: + FamName: QD_009 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN09-AR/EM-QP/QD.01 + Localisation: + S_pos: 40.8 + Cell: 9 +SD_009: + UUID: SD_009_cf86e64cfe764c12b94262c41ceabbfb + Lattice: + FamName: SD_009 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN09-AR/EM-SX/SD.01 + Localisation: + S_pos: 41.2 + Cell: 9 +B_018: + UUID: B_018_0b98487fcf314e7e8452dc7399397835 + Lattice: + FamName: B_018 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN09-AR/EM-DIP/B.02 + Localisation: + S_pos: 41.7 + Cell: 9 +QF_010: + UUID: QF_010_94782da4ed5e4898b91d7e864140c277 + Lattice: + FamName: QF_010 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN10-AR/EM-QP/QF.01 + Localisation: + S_pos: 43.2 + Cell: 10 +SF_010: + UUID: SF_010_f626388a02d64cfd83c9b1614982a5fb + Lattice: + FamName: SF_010 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN10-AR/EM-SX/SF.01 + Localisation: + S_pos: 43.6 + Cell: 10 +B_019: + UUID: B_019_7d367c5a53bb4df4b7ecde53d5604f53 + Lattice: + FamName: B_019 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN10-AR/EM-DIP/B.01 + Localisation: + S_pos: 44.1 + Cell: 10 +QD_010: + UUID: QD_010_56f8b47113df4cec8b2fc3ab38c69869 + Lattice: + FamName: QD_010 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN10-AR/EM-QP/QD.01 + Localisation: + S_pos: 45.6 + Cell: 10 +SD_010: + UUID: SD_010_eafccc3719664195b4107df7527a8a0a + Lattice: + FamName: SD_010 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN10-AR/EM-SX/SD.01 + Localisation: + S_pos: 46.0 + Cell: 10 +B_020: + UUID: B_020_fa8a3d3ea2814c44b7815c8a5cd9d933 + Lattice: + FamName: B_020 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN10-AR/EM-DIP/B.02 + Localisation: + S_pos: 46.5 + Cell: 10 +QF_011: + UUID: QF_011_b575ed5454c54128b2ed3d6b7e64ddad + Lattice: + FamName: QF_011 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN11-AR/EM-QP/QF.01 + Localisation: + S_pos: 48.0 + Cell: 11 +SF_011: + UUID: SF_011_bd73fc4fbc0640efb117cac154b34c33 + Lattice: + FamName: SF_011 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN11-AR/EM-SX/SF.01 + Localisation: + S_pos: 48.4 + Cell: 11 +B_021: + UUID: B_021_0d732787af974b9eb0d4c1cc70db1a3d + Lattice: + FamName: B_021 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN11-AR/EM-DIP/B.01 + Localisation: + S_pos: 48.9 + Cell: 11 +QD_011: + UUID: QD_011_ae7b2c76f21b429c962ff3c33a38cd70 + Lattice: + FamName: QD_011 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN11-AR/EM-QP/QD.01 + Localisation: + S_pos: 50.4 + Cell: 11 +SD_011: + UUID: SD_011_773d914fde034e8697ac966f74ca0611 + Lattice: + FamName: SD_011 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN11-AR/EM-SX/SD.01 + Localisation: + S_pos: 50.8 + Cell: 11 +B_022: + UUID: B_022_96a000342e284ca68faaecbcd4b0904a + Lattice: + FamName: B_022 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN11-AR/EM-DIP/B.02 + Localisation: + S_pos: 51.3 + Cell: 11 +QF_012: + UUID: QF_012_cb52fb6f374840b0a50180a089da49d1 + Lattice: + FamName: QF_012 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN12-AR/EM-QP/QF.01 + Localisation: + S_pos: 52.8 + Cell: 12 +SF_012: + UUID: SF_012_02daf05ef4ab46ea86bdb3be90162251 + Lattice: + FamName: SF_012 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN12-AR/EM-SX/SF.01 + Localisation: + S_pos: 53.2 + Cell: 12 +B_023: + UUID: B_023_ffdf1ba0d350458fb3def9db81636f68 + Lattice: + FamName: B_023 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN12-AR/EM-DIP/B.01 + Localisation: + S_pos: 53.7 + Cell: 12 +QD_012: + UUID: QD_012_29f2185aa29a4c02be3bbfdd5bad13e3 + Lattice: + FamName: QD_012 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN12-AR/EM-QP/QD.01 + Localisation: + S_pos: 55.2 + Cell: 12 +SD_012: + UUID: SD_012_ff9262ea95744358b360235d7a459cec + Lattice: + FamName: SD_012 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN12-AR/EM-SX/SD.01 + Localisation: + S_pos: 55.6 + Cell: 12 +B_024: + UUID: B_024_e1fb35bf800a43448163b0cf01569c19 + Lattice: + FamName: B_024 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN12-AR/EM-DIP/B.02 + Localisation: + S_pos: 56.1 + Cell: 12 +QF_013: + UUID: QF_013_2793a62cd78744c9ab4ca5e2843a72a2 + Lattice: + FamName: QF_013 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN13-AR/EM-QP/QF.01 + Localisation: + S_pos: 57.6 + Cell: 13 +SF_013: + UUID: SF_013_4532d63397d644d28e1af1a480a60c07 + Lattice: + FamName: SF_013 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN13-AR/EM-SX/SF.01 + Localisation: + S_pos: 58.0 + Cell: 13 +B_025: + UUID: B_025_2ce6a646af5642e0afc30d9f79863f48 + Lattice: + FamName: B_025 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN13-AR/EM-DIP/B.01 + Localisation: + S_pos: 58.5 + Cell: 13 +QD_013: + UUID: QD_013_03843b2e6ee24e16aa6572f5cb18f4a8 + Lattice: + FamName: QD_013 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN13-AR/EM-QP/QD.01 + Localisation: + S_pos: 60.0 + Cell: 13 +SD_013: + UUID: SD_013_ef033612a3274ef3ab886afd81614dca + Lattice: + FamName: SD_013 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN13-AR/EM-SX/SD.01 + Localisation: + S_pos: 60.4 + Cell: 13 +B_026: + UUID: B_026_8651fc68043842628e6ee1d25af0424c + Lattice: + FamName: B_026 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN13-AR/EM-DIP/B.02 + Localisation: + S_pos: 60.9 + Cell: 13 +QF_014: + UUID: QF_014_c09c7e604b3a41fa818b44d04c844b25 + Lattice: + FamName: QF_014 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN14-AR/EM-QP/QF.01 + Localisation: + S_pos: 62.4 + Cell: 14 +SF_014: + UUID: SF_014_bf4393ec53954372bd5e4f140491465b + Lattice: + FamName: SF_014 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN14-AR/EM-SX/SF.01 + Localisation: + S_pos: 62.8 + Cell: 14 +B_027: + UUID: B_027_c832ae3f14b14804a63bce49c896f737 + Lattice: + FamName: B_027 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN14-AR/EM-DIP/B.01 + Localisation: + S_pos: 63.3 + Cell: 14 +QD_014: + UUID: QD_014_62633bc5afcd4fc9a19de70a983baa5c + Lattice: + FamName: QD_014 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN14-AR/EM-QP/QD.01 + Localisation: + S_pos: 64.8 + Cell: 14 +SD_014: + UUID: SD_014_78a18b94b6f1422fb69dbcbd2ae90d67 + Lattice: + FamName: SD_014 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN14-AR/EM-SX/SD.01 + Localisation: + S_pos: 65.2 + Cell: 14 +B_028: + UUID: B_028_25d59d6cbd90410c9ba5ed8424d442d1 + Lattice: + FamName: B_028 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN14-AR/EM-DIP/B.02 + Localisation: + S_pos: 65.7 + Cell: 14 +QF_015: + UUID: QF_015_63634bfdccc44de586db6ee28071ccb4 + Lattice: + FamName: QF_015 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN15-AR/EM-QP/QF.01 + Localisation: + S_pos: 67.2 + Cell: 15 +SF_015: + UUID: SF_015_a988680835664d109306ad1694a48382 + Lattice: + FamName: SF_015 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN15-AR/EM-SX/SF.01 + Localisation: + S_pos: 67.6 + Cell: 15 +B_029: + UUID: B_029_dc2c0a36c7d64072b3e597a3b40f4b3e + Lattice: + FamName: B_029 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN15-AR/EM-DIP/B.01 + Localisation: + S_pos: 68.1 + Cell: 15 +QD_015: + UUID: QD_015_b2cc0d3ab8f741729a7abf3d9426a958 + Lattice: + FamName: QD_015 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN15-AR/EM-QP/QD.01 + Localisation: + S_pos: 69.6 + Cell: 15 +SD_015: + UUID: SD_015_8b7f143df262464e9f5c1eae4b83ce14 + Lattice: + FamName: SD_015 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN15-AR/EM-SX/SD.01 + Localisation: + S_pos: 70.0 + Cell: 15 +B_030: + UUID: B_030_225d0545f13b49b58c1ab5222727ae20 + Lattice: + FamName: B_030 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN15-AR/EM-DIP/B.02 + Localisation: + S_pos: 70.5 + Cell: 15 +QF_016: + UUID: QF_016_965422d59ef3488f84c68f5ecaee6c6b + Lattice: + FamName: QF_016 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN16-AR/EM-QP/QF.01 + Localisation: + S_pos: 72.0 + Cell: 16 +SF_016: + UUID: SF_016_e67c83cfbce2433f9152de49f928d25d + Lattice: + FamName: SF_016 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN16-AR/EM-SX/SF.01 + Localisation: + S_pos: 72.4 + Cell: 16 +B_031: + UUID: B_031_8e33e0d3bfdf491da8ca3d8dd66e1b81 + Lattice: + FamName: B_031 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN16-AR/EM-DIP/B.01 + Localisation: + S_pos: 72.9 + Cell: 16 +QD_016: + UUID: QD_016_63fce39354a946818c2bfd76adb61760 + Lattice: + FamName: QD_016 + Class: Quadrupole + Length: 0.4 + Controllable: true + Nomenclature: + TANGO: AN16-AR/EM-QP/QD.01 + Localisation: + S_pos: 74.4 + Cell: 16 +SD_016: + UUID: SD_016_626878061df544a08c4c061e57a4e3a1 + Lattice: + FamName: SD_016 + Class: Sextupole + Length: 0.1 + Controllable: true + Nomenclature: + TANGO: AN16-AR/EM-SX/SD.01 + Localisation: + S_pos: 74.8 + Cell: 16 +B_032: + UUID: B_032_2d3c2be8fe5f41abb120ab3438a4ef66 + Lattice: + FamName: B_032 + Class: Bend + Length: 1.0 + Controllable: true + Nomenclature: + TANGO: AN16-AR/EM-DIP/B.02 + Localisation: + S_pos: 75.3 + Cell: 16 diff --git a/tests/integration/data/fodo_1gev_6d_pyaml-oa.yaml b/tests/integration/data/fodo_1gev_6d_pyaml-oa.yaml new file mode 100644 index 000000000..3aa7dfa30 --- /dev/null +++ b/tests/integration/data/fodo_1gev_6d_pyaml-oa.yaml @@ -0,0 +1,784 @@ +type: pyaml.accelerator +facility: Synchrotron SOLEIL +machine: sr +data_folder: /data/store +energy: 1000000000.0 +simulators: +- type: pyaml.lattice.simulator + lattice: fodo_1gev_6d.m + name: design + linker: + type: pyaml.lattice.attribute_linker + attribute_name: UUID +controls: +- type: pyaml_cs_oa.controlsystem + name: live + catalog: fodo_1gev_6d_pyaml_catalogs-oa.yaml +arrays: +- type: pyaml.arrays.magnet + name: QF_001 + elements: + - QF_001_f2013521b99e4a76bed1db7ec67464b0 +- type: pyaml.arrays.element + name: Cell1 + elements: + - QF_001_f2013521b99e4a76bed1db7ec67464b0 + - SF_001_f934c7cf2c704132acfce86bc2419e36 + - QD_001_15812e1906ee4bc7b94abb8ccd910f5b + - SD_001_4e39bd9617e7428486da49e4b5cc3981 +- type: pyaml.arrays.magnet + name: SF_001 + elements: + - SF_001_f934c7cf2c704132acfce86bc2419e36 +- type: pyaml.arrays.magnet + name: QD_001 + elements: + - QD_001_15812e1906ee4bc7b94abb8ccd910f5b +- type: pyaml.arrays.magnet + name: SD_001 + elements: + - SD_001_4e39bd9617e7428486da49e4b5cc3981 +- type: pyaml.arrays.magnet + name: QF_002 + elements: + - QF_002_d8a6e63c07c94aed87878d113cf22194 +- type: pyaml.arrays.element + name: Cell2 + elements: + - QF_002_d8a6e63c07c94aed87878d113cf22194 + - SF_002_f7c48af5504649a09b8e9434b2509ce4 + - QD_002_c212a1d7ea41484f925303959213cc32 + - SD_002_178b0b0cfcc046c6ac9a1eac2328963e +- type: pyaml.arrays.magnet + name: SF_002 + elements: + - SF_002_f7c48af5504649a09b8e9434b2509ce4 +- type: pyaml.arrays.magnet + name: QD_002 + elements: + - QD_002_c212a1d7ea41484f925303959213cc32 +- type: pyaml.arrays.magnet + name: SD_002 + elements: + - SD_002_178b0b0cfcc046c6ac9a1eac2328963e +- type: pyaml.arrays.magnet + name: QF_003 + elements: + - QF_003_d6bf77b8f23b45e0b1e96bb88f7b3d40 +- type: pyaml.arrays.element + name: Cell3 + elements: + - QF_003_d6bf77b8f23b45e0b1e96bb88f7b3d40 + - SF_003_bd75202a28b243d0bc604fa6e8ad0dd2 + - QD_003_ad775f317e7b4408a72e09c7db4236ad + - SD_003_63a3ec9ceeef453f8e793acc437ce116 +- type: pyaml.arrays.magnet + name: SF_003 + elements: + - SF_003_bd75202a28b243d0bc604fa6e8ad0dd2 +- type: pyaml.arrays.magnet + name: QD_003 + elements: + - QD_003_ad775f317e7b4408a72e09c7db4236ad +- type: pyaml.arrays.magnet + name: SD_003 + elements: + - SD_003_63a3ec9ceeef453f8e793acc437ce116 +- type: pyaml.arrays.magnet + name: QF_004 + elements: + - QF_004_ce31bb358fad4cc7aadb86711031acd0 +- type: pyaml.arrays.element + name: Cell4 + elements: + - QF_004_ce31bb358fad4cc7aadb86711031acd0 + - SF_004_faa5bb6858e64051a54f4f01340684e6 + - QD_004_82625fab961945c0aba57174ebcbf51f + - SD_004_3e0e59ac94f945f2be40eccc30f3a2d3 +- type: pyaml.arrays.magnet + name: SF_004 + elements: + - SF_004_faa5bb6858e64051a54f4f01340684e6 +- type: pyaml.arrays.magnet + name: QD_004 + elements: + - QD_004_82625fab961945c0aba57174ebcbf51f +- type: pyaml.arrays.magnet + name: SD_004 + elements: + - SD_004_3e0e59ac94f945f2be40eccc30f3a2d3 +- type: pyaml.arrays.magnet + name: QF_005 + elements: + - QF_005_d812a0f116044852a2dfc809ca0b87bf +- type: pyaml.arrays.element + name: Cell5 + elements: + - QF_005_d812a0f116044852a2dfc809ca0b87bf + - SF_005_ab16d309e1e341e58d7ae1598098bb69 + - QD_005_03b6d72e666d4632b6e9a3c2b15ceca7 + - SD_005_1e16f88b09834fd6bd6cf9ef7de62dbe +- type: pyaml.arrays.magnet + name: SF_005 + elements: + - SF_005_ab16d309e1e341e58d7ae1598098bb69 +- type: pyaml.arrays.magnet + name: QD_005 + elements: + - QD_005_03b6d72e666d4632b6e9a3c2b15ceca7 +- type: pyaml.arrays.magnet + name: SD_005 + elements: + - SD_005_1e16f88b09834fd6bd6cf9ef7de62dbe +- type: pyaml.arrays.magnet + name: QF_006 + elements: + - QF_006_d39cefd95c88492885796863d4df1b68 +- type: pyaml.arrays.element + name: Cell6 + elements: + - QF_006_d39cefd95c88492885796863d4df1b68 + - SF_006_09d95d77b39a463283b0660c4478c409 + - QD_006_49e8c0b7e66348338865c77d9317c6bf + - SD_006_284911364f3c44b2abdc13acb2df46b3 +- type: pyaml.arrays.magnet + name: SF_006 + elements: + - SF_006_09d95d77b39a463283b0660c4478c409 +- type: pyaml.arrays.magnet + name: QD_006 + elements: + - QD_006_49e8c0b7e66348338865c77d9317c6bf +- type: pyaml.arrays.magnet + name: SD_006 + elements: + - SD_006_284911364f3c44b2abdc13acb2df46b3 +- type: pyaml.arrays.magnet + name: QF_007 + elements: + - QF_007_7414601f613f4115b9fe0b78eceaa2ce +- type: pyaml.arrays.element + name: Cell7 + elements: + - QF_007_7414601f613f4115b9fe0b78eceaa2ce + - SF_007_b3fa2def44a24425a5ad414abc5bbca1 + - QD_007_79fa1ac91a7f43eda443200923990327 + - SD_007_3b05e519bdcd4fc4b3b8dc42c2c1cb55 +- type: pyaml.arrays.magnet + name: SF_007 + elements: + - SF_007_b3fa2def44a24425a5ad414abc5bbca1 +- type: pyaml.arrays.magnet + name: QD_007 + elements: + - QD_007_79fa1ac91a7f43eda443200923990327 +- type: pyaml.arrays.magnet + name: SD_007 + elements: + - SD_007_3b05e519bdcd4fc4b3b8dc42c2c1cb55 +- type: pyaml.arrays.magnet + name: QF_008 + elements: + - QF_008_b3d3db8e1c9e4e8c9eb2846730bd81ea +- type: pyaml.arrays.element + name: Cell8 + elements: + - QF_008_b3d3db8e1c9e4e8c9eb2846730bd81ea + - SF_008_00a14620b0a5428b821ddb84d2639e5c + - QD_008_1cb9b3401b644658908260616570424d + - SD_008_3b849a66bca1453cac95fa0ccba58166 +- type: pyaml.arrays.magnet + name: SF_008 + elements: + - SF_008_00a14620b0a5428b821ddb84d2639e5c +- type: pyaml.arrays.magnet + name: QD_008 + elements: + - QD_008_1cb9b3401b644658908260616570424d +- type: pyaml.arrays.magnet + name: SD_008 + elements: + - SD_008_3b849a66bca1453cac95fa0ccba58166 +- type: pyaml.arrays.magnet + name: QF_009 + elements: + - QF_009_441bf7bdfe9c443c8a55c1a58cb1caf5 +- type: pyaml.arrays.element + name: Cell9 + elements: + - QF_009_441bf7bdfe9c443c8a55c1a58cb1caf5 + - SF_009_6f725f3f495f428696a8419b73f22774 + - QD_009_232f21c02a03457698d31ec2d4265a02 + - SD_009_cf86e64cfe764c12b94262c41ceabbfb +- type: pyaml.arrays.magnet + name: SF_009 + elements: + - SF_009_6f725f3f495f428696a8419b73f22774 +- type: pyaml.arrays.magnet + name: QD_009 + elements: + - QD_009_232f21c02a03457698d31ec2d4265a02 +- type: pyaml.arrays.magnet + name: SD_009 + elements: + - SD_009_cf86e64cfe764c12b94262c41ceabbfb +- type: pyaml.arrays.magnet + name: QF_010 + elements: + - QF_010_94782da4ed5e4898b91d7e864140c277 +- type: pyaml.arrays.element + name: Cell10 + elements: + - QF_010_94782da4ed5e4898b91d7e864140c277 + - SF_010_f626388a02d64cfd83c9b1614982a5fb + - QD_010_56f8b47113df4cec8b2fc3ab38c69869 + - SD_010_eafccc3719664195b4107df7527a8a0a +- type: pyaml.arrays.magnet + name: SF_010 + elements: + - SF_010_f626388a02d64cfd83c9b1614982a5fb +- type: pyaml.arrays.magnet + name: QD_010 + elements: + - QD_010_56f8b47113df4cec8b2fc3ab38c69869 +- type: pyaml.arrays.magnet + name: SD_010 + elements: + - SD_010_eafccc3719664195b4107df7527a8a0a +- type: pyaml.arrays.magnet + name: QF_011 + elements: + - QF_011_b575ed5454c54128b2ed3d6b7e64ddad +- type: pyaml.arrays.element + name: Cell11 + elements: + - QF_011_b575ed5454c54128b2ed3d6b7e64ddad + - SF_011_bd73fc4fbc0640efb117cac154b34c33 + - QD_011_ae7b2c76f21b429c962ff3c33a38cd70 + - SD_011_773d914fde034e8697ac966f74ca0611 +- type: pyaml.arrays.magnet + name: SF_011 + elements: + - SF_011_bd73fc4fbc0640efb117cac154b34c33 +- type: pyaml.arrays.magnet + name: QD_011 + elements: + - QD_011_ae7b2c76f21b429c962ff3c33a38cd70 +- type: pyaml.arrays.magnet + name: SD_011 + elements: + - SD_011_773d914fde034e8697ac966f74ca0611 +- type: pyaml.arrays.magnet + name: QF_012 + elements: + - QF_012_cb52fb6f374840b0a50180a089da49d1 +- type: pyaml.arrays.element + name: Cell12 + elements: + - QF_012_cb52fb6f374840b0a50180a089da49d1 + - SF_012_02daf05ef4ab46ea86bdb3be90162251 + - QD_012_29f2185aa29a4c02be3bbfdd5bad13e3 + - SD_012_ff9262ea95744358b360235d7a459cec +- type: pyaml.arrays.magnet + name: SF_012 + elements: + - SF_012_02daf05ef4ab46ea86bdb3be90162251 +- type: pyaml.arrays.magnet + name: QD_012 + elements: + - QD_012_29f2185aa29a4c02be3bbfdd5bad13e3 +- type: pyaml.arrays.magnet + name: SD_012 + elements: + - SD_012_ff9262ea95744358b360235d7a459cec +- type: pyaml.arrays.magnet + name: QF_013 + elements: + - QF_013_2793a62cd78744c9ab4ca5e2843a72a2 +- type: pyaml.arrays.element + name: Cell13 + elements: + - QF_013_2793a62cd78744c9ab4ca5e2843a72a2 + - SF_013_4532d63397d644d28e1af1a480a60c07 + - QD_013_03843b2e6ee24e16aa6572f5cb18f4a8 + - SD_013_ef033612a3274ef3ab886afd81614dca +- type: pyaml.arrays.magnet + name: SF_013 + elements: + - SF_013_4532d63397d644d28e1af1a480a60c07 +- type: pyaml.arrays.magnet + name: QD_013 + elements: + - QD_013_03843b2e6ee24e16aa6572f5cb18f4a8 +- type: pyaml.arrays.magnet + name: SD_013 + elements: + - SD_013_ef033612a3274ef3ab886afd81614dca +- type: pyaml.arrays.magnet + name: QF_014 + elements: + - QF_014_c09c7e604b3a41fa818b44d04c844b25 +- type: pyaml.arrays.element + name: Cell14 + elements: + - QF_014_c09c7e604b3a41fa818b44d04c844b25 + - SF_014_bf4393ec53954372bd5e4f140491465b + - QD_014_62633bc5afcd4fc9a19de70a983baa5c + - SD_014_78a18b94b6f1422fb69dbcbd2ae90d67 +- type: pyaml.arrays.magnet + name: SF_014 + elements: + - SF_014_bf4393ec53954372bd5e4f140491465b +- type: pyaml.arrays.magnet + name: QD_014 + elements: + - QD_014_62633bc5afcd4fc9a19de70a983baa5c +- type: pyaml.arrays.magnet + name: SD_014 + elements: + - SD_014_78a18b94b6f1422fb69dbcbd2ae90d67 +- type: pyaml.arrays.magnet + name: QF_015 + elements: + - QF_015_63634bfdccc44de586db6ee28071ccb4 +- type: pyaml.arrays.element + name: Cell15 + elements: + - QF_015_63634bfdccc44de586db6ee28071ccb4 + - SF_015_a988680835664d109306ad1694a48382 + - QD_015_b2cc0d3ab8f741729a7abf3d9426a958 + - SD_015_8b7f143df262464e9f5c1eae4b83ce14 +- type: pyaml.arrays.magnet + name: SF_015 + elements: + - SF_015_a988680835664d109306ad1694a48382 +- type: pyaml.arrays.magnet + name: QD_015 + elements: + - QD_015_b2cc0d3ab8f741729a7abf3d9426a958 +- type: pyaml.arrays.magnet + name: SD_015 + elements: + - SD_015_8b7f143df262464e9f5c1eae4b83ce14 +- type: pyaml.arrays.magnet + name: QF_016 + elements: + - QF_016_965422d59ef3488f84c68f5ecaee6c6b +- type: pyaml.arrays.element + name: Cell16 + elements: + - QF_016_965422d59ef3488f84c68f5ecaee6c6b + - SF_016_e67c83cfbce2433f9152de49f928d25d + - QD_016_63fce39354a946818c2bfd76adb61760 + - SD_016_626878061df544a08c4c061e57a4e3a1 +- type: pyaml.arrays.magnet + name: SF_016 + elements: + - SF_016_e67c83cfbce2433f9152de49f928d25d +- type: pyaml.arrays.magnet + name: QD_016 + elements: + - QD_016_63fce39354a946818c2bfd76adb61760 +- type: pyaml.arrays.magnet + name: SD_016 + elements: + - SD_016_626878061df544a08c4c061e57a4e3a1 +devices: +- type: pyaml.magnet.quadrupole + name: QF_001_f2013521b99e4a76bed1db7ec67464b0 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN01-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_001_f934c7cf2c704132acfce86bc2419e36 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN01-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_001_15812e1906ee4bc7b94abb8ccd910f5b + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN01-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_001_4e39bd9617e7428486da49e4b5cc3981 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN01-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_002_d8a6e63c07c94aed87878d113cf22194 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN02-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_002_f7c48af5504649a09b8e9434b2509ce4 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN02-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_002_c212a1d7ea41484f925303959213cc32 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN02-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_002_178b0b0cfcc046c6ac9a1eac2328963e + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN02-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_003_d6bf77b8f23b45e0b1e96bb88f7b3d40 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN03-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_003_bd75202a28b243d0bc604fa6e8ad0dd2 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN03-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_003_ad775f317e7b4408a72e09c7db4236ad + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN03-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_003_63a3ec9ceeef453f8e793acc437ce116 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN03-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_004_ce31bb358fad4cc7aadb86711031acd0 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN04-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_004_faa5bb6858e64051a54f4f01340684e6 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN04-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_004_82625fab961945c0aba57174ebcbf51f + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN04-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_004_3e0e59ac94f945f2be40eccc30f3a2d3 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN04-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_005_d812a0f116044852a2dfc809ca0b87bf + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN05-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_005_ab16d309e1e341e58d7ae1598098bb69 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN05-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_005_03b6d72e666d4632b6e9a3c2b15ceca7 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN05-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_005_1e16f88b09834fd6bd6cf9ef7de62dbe + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN05-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_006_d39cefd95c88492885796863d4df1b68 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN06-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_006_09d95d77b39a463283b0660c4478c409 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN06-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_006_49e8c0b7e66348338865c77d9317c6bf + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN06-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_006_284911364f3c44b2abdc13acb2df46b3 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN06-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_007_7414601f613f4115b9fe0b78eceaa2ce + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN07-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_007_b3fa2def44a24425a5ad414abc5bbca1 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN07-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_007_79fa1ac91a7f43eda443200923990327 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN07-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_007_3b05e519bdcd4fc4b3b8dc42c2c1cb55 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN07-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_008_b3d3db8e1c9e4e8c9eb2846730bd81ea + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN08-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_008_00a14620b0a5428b821ddb84d2639e5c + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN08-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_008_1cb9b3401b644658908260616570424d + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN08-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_008_3b849a66bca1453cac95fa0ccba58166 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN08-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_009_441bf7bdfe9c443c8a55c1a58cb1caf5 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN09-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_009_6f725f3f495f428696a8419b73f22774 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN09-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_009_232f21c02a03457698d31ec2d4265a02 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN09-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_009_cf86e64cfe764c12b94262c41ceabbfb + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN09-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_010_94782da4ed5e4898b91d7e864140c277 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN10-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_010_f626388a02d64cfd83c9b1614982a5fb + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN10-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_010_56f8b47113df4cec8b2fc3ab38c69869 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN10-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_010_eafccc3719664195b4107df7527a8a0a + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN10-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_011_b575ed5454c54128b2ed3d6b7e64ddad + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN11-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_011_bd73fc4fbc0640efb117cac154b34c33 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN11-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_011_ae7b2c76f21b429c962ff3c33a38cd70 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN11-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_011_773d914fde034e8697ac966f74ca0611 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN11-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_012_cb52fb6f374840b0a50180a089da49d1 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN12-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_012_02daf05ef4ab46ea86bdb3be90162251 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN12-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_012_29f2185aa29a4c02be3bbfdd5bad13e3 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN12-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_012_ff9262ea95744358b360235d7a459cec + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN12-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_013_2793a62cd78744c9ab4ca5e2843a72a2 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN13-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_013_4532d63397d644d28e1af1a480a60c07 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN13-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_013_03843b2e6ee24e16aa6572f5cb18f4a8 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN13-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_013_ef033612a3274ef3ab886afd81614dca + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN13-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_014_c09c7e604b3a41fa818b44d04c844b25 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN14-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_014_bf4393ec53954372bd5e4f140491465b + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN14-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_014_62633bc5afcd4fc9a19de70a983baa5c + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN14-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_014_78a18b94b6f1422fb69dbcbd2ae90d67 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN14-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_015_63634bfdccc44de586db6ee28071ccb4 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN15-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_015_a988680835664d109306ad1694a48382 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN15-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_015_b2cc0d3ab8f741729a7abf3d9426a958 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN15-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_015_8b7f143df262464e9f5c1eae4b83ce14 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN15-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_016_965422d59ef3488f84c68f5ecaee6c6b + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN16-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_016_e67c83cfbce2433f9152de49f928d25d + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN16-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_016_63fce39354a946818c2bfd76adb61760 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN16-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_016_626878061df544a08c4c061e57a4e3a1 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN16-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.rf.rf_plant + name: RF + masterclock: simulator/ringsimulator/ringsimulator/reference_frequency + transmitters: + - type: pyaml.rf.rf_transmitter + name: RFTRA + cavities: [RF_001_cc245d84ca2b4ba9b54051069a4cfb8f] + harmonic: 1 + distribution: 1 + voltage: simulator/ringsimulator/ringsimulator/voltage +- type: pyaml.diagnostics.tune_monitor + name: BETATRON_TUNE + tune_h: simulator/ringsimulator/ringsimulator/hor + tune_v: simulator/ringsimulator/ringsimulator/vert diff --git a/tests/integration/data/fodo_1gev_6d_pyaml.json b/tests/integration/data/fodo_1gev_6d_pyaml.json new file mode 100644 index 000000000..acbd1343a --- /dev/null +++ b/tests/integration/data/fodo_1gev_6d_pyaml.json @@ -0,0 +1,782 @@ +[ + { + "_id": { + "$oid": "aeb689bb-e170-5922-920f-bc2497414682" + }, + "uuid": "RF_001_cc245d84ca2b4ba9b54051069a4cfb8f", + "type": "RFCavity", + "FamName": "RF_001", + "name": "AN01-SD/RF-CAV/CAV", + "magnetic_strength": 1.0, + "pc": "AN01-SD/RF-CAV/CAV-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "e4730782-a299-5d03-8a79-08fee21ba41b" + }, + "uuid": "QF_001_f2013521b99e4a76bed1db7ec67464b0", + "type": "Quadrupole", + "FamName": "QF_001", + "name": "AN01-AR/EM-QP/QF.01", + "magnetic_strength": 1.0, + "pc": "AN01-AR/EM-QP/QF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "85d5d724-f6d1-528b-9be9-e0373505638f" + }, + "uuid": "SF_001_f934c7cf2c704132acfce86bc2419e36", + "type": "Sextupole", + "FamName": "SF_001", + "name": "AN01-AR/EM-SX/SF.01", + "magnetic_strength": 1.0, + "pc": "AN01-AR/EM-SX/SF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "f7fa083f-6752-5ede-af83-fc869fe40450" + }, + "uuid": "QD_001_15812e1906ee4bc7b94abb8ccd910f5b", + "type": "Quadrupole", + "FamName": "QD_001", + "name": "AN01-AR/EM-QP/QD.01", + "magnetic_strength": 1.0, + "pc": "AN01-AR/EM-QP/QD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "96c1a866-34cc-5886-b6a1-d75a8abff3f7" + }, + "uuid": "SD_001_4e39bd9617e7428486da49e4b5cc3981", + "type": "Sextupole", + "FamName": "SD_001", + "name": "AN01-AR/EM-SX/SD.01", + "magnetic_strength": 1.0, + "pc": "AN01-AR/EM-SX/SD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "d100cc2d-f1b1-582f-a73e-6aa209a81c85" + }, + "uuid": "QF_002_d8a6e63c07c94aed87878d113cf22194", + "type": "Quadrupole", + "FamName": "QF_002", + "name": "AN02-AR/EM-QP/QF.01", + "magnetic_strength": 1.0, + "pc": "AN02-AR/EM-QP/QF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "2e381432-4387-5b1c-8f44-5ea84e991b95" + }, + "uuid": "SF_002_f7c48af5504649a09b8e9434b2509ce4", + "type": "Sextupole", + "FamName": "SF_002", + "name": "AN02-AR/EM-SX/SF.01", + "magnetic_strength": 1.0, + "pc": "AN02-AR/EM-SX/SF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "73b71b30-f965-5e2f-8885-802cb8062b19" + }, + "uuid": "QD_002_c212a1d7ea41484f925303959213cc32", + "type": "Quadrupole", + "FamName": "QD_002", + "name": "AN02-AR/EM-QP/QD.01", + "magnetic_strength": 1.0, + "pc": "AN02-AR/EM-QP/QD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "163306b6-ead3-5fd1-bd24-3deb5fe3f463" + }, + "uuid": "SD_002_178b0b0cfcc046c6ac9a1eac2328963e", + "type": "Sextupole", + "FamName": "SD_002", + "name": "AN02-AR/EM-SX/SD.01", + "magnetic_strength": 1.0, + "pc": "AN02-AR/EM-SX/SD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "1eafad73-5481-560c-a164-4d6a664d537a" + }, + "uuid": "QF_003_d6bf77b8f23b45e0b1e96bb88f7b3d40", + "type": "Quadrupole", + "FamName": "QF_003", + "name": "AN03-AR/EM-QP/QF.01", + "magnetic_strength": 1.0, + "pc": "AN03-AR/EM-QP/QF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "de9230d8-2e46-580a-a955-f18e71623803" + }, + "uuid": "SF_003_bd75202a28b243d0bc604fa6e8ad0dd2", + "type": "Sextupole", + "FamName": "SF_003", + "name": "AN03-AR/EM-SX/SF.01", + "magnetic_strength": 1.0, + "pc": "AN03-AR/EM-SX/SF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "3dde1836-b7d4-5e60-b6aa-db89319448a4" + }, + "uuid": "QD_003_ad775f317e7b4408a72e09c7db4236ad", + "type": "Quadrupole", + "FamName": "QD_003", + "name": "AN03-AR/EM-QP/QD.01", + "magnetic_strength": 1.0, + "pc": "AN03-AR/EM-QP/QD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "448022bc-f0b8-5760-9745-1d5cf58d2305" + }, + "uuid": "SD_003_63a3ec9ceeef453f8e793acc437ce116", + "type": "Sextupole", + "FamName": "SD_003", + "name": "AN03-AR/EM-SX/SD.01", + "magnetic_strength": 1.0, + "pc": "AN03-AR/EM-SX/SD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "526cd265-81f1-5773-a405-3bf1693487de" + }, + "uuid": "QF_004_ce31bb358fad4cc7aadb86711031acd0", + "type": "Quadrupole", + "FamName": "QF_004", + "name": "AN04-AR/EM-QP/QF.01", + "magnetic_strength": 1.0, + "pc": "AN04-AR/EM-QP/QF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "bc36466f-7b8b-5f5b-8ad3-4758f15ce5ba" + }, + "uuid": "SF_004_faa5bb6858e64051a54f4f01340684e6", + "type": "Sextupole", + "FamName": "SF_004", + "name": "AN04-AR/EM-SX/SF.01", + "magnetic_strength": 1.0, + "pc": "AN04-AR/EM-SX/SF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "677a0510-9d09-537f-ae8c-b798e599cccb" + }, + "uuid": "QD_004_82625fab961945c0aba57174ebcbf51f", + "type": "Quadrupole", + "FamName": "QD_004", + "name": "AN04-AR/EM-QP/QD.01", + "magnetic_strength": 1.0, + "pc": "AN04-AR/EM-QP/QD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "572755d8-c882-565a-96e8-70e9dfd18872" + }, + "uuid": "SD_004_3e0e59ac94f945f2be40eccc30f3a2d3", + "type": "Sextupole", + "FamName": "SD_004", + "name": "AN04-AR/EM-SX/SD.01", + "magnetic_strength": 1.0, + "pc": "AN04-AR/EM-SX/SD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "816cc3ef-7dfb-5deb-91d0-77fa3c2f66ff" + }, + "uuid": "QF_005_d812a0f116044852a2dfc809ca0b87bf", + "type": "Quadrupole", + "FamName": "QF_005", + "name": "AN05-AR/EM-QP/QF.01", + "magnetic_strength": 1.0, + "pc": "AN05-AR/EM-QP/QF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "97db83f1-65f9-5043-8a02-0e4f650ccb7c" + }, + "uuid": "SF_005_ab16d309e1e341e58d7ae1598098bb69", + "type": "Sextupole", + "FamName": "SF_005", + "name": "AN05-AR/EM-SX/SF.01", + "magnetic_strength": 1.0, + "pc": "AN05-AR/EM-SX/SF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "e69e6b85-342a-5ac2-acc9-64aee2e3bbf1" + }, + "uuid": "QD_005_03b6d72e666d4632b6e9a3c2b15ceca7", + "type": "Quadrupole", + "FamName": "QD_005", + "name": "AN05-AR/EM-QP/QD.01", + "magnetic_strength": 1.0, + "pc": "AN05-AR/EM-QP/QD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "079cbf9e-4be2-5bb3-b6fc-7c2a7613a9d0" + }, + "uuid": "SD_005_1e16f88b09834fd6bd6cf9ef7de62dbe", + "type": "Sextupole", + "FamName": "SD_005", + "name": "AN05-AR/EM-SX/SD.01", + "magnetic_strength": 1.0, + "pc": "AN05-AR/EM-SX/SD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "12409c6a-5232-5316-89a5-03aa48c3cb15" + }, + "uuid": "QF_006_d39cefd95c88492885796863d4df1b68", + "type": "Quadrupole", + "FamName": "QF_006", + "name": "AN06-AR/EM-QP/QF.01", + "magnetic_strength": 1.0, + "pc": "AN06-AR/EM-QP/QF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "be732e9d-0365-5b39-90b1-c0e6341c109a" + }, + "uuid": "SF_006_09d95d77b39a463283b0660c4478c409", + "type": "Sextupole", + "FamName": "SF_006", + "name": "AN06-AR/EM-SX/SF.01", + "magnetic_strength": 1.0, + "pc": "AN06-AR/EM-SX/SF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "a1002029-9faa-530d-bfed-e1015adbb705" + }, + "uuid": "QD_006_49e8c0b7e66348338865c77d9317c6bf", + "type": "Quadrupole", + "FamName": "QD_006", + "name": "AN06-AR/EM-QP/QD.01", + "magnetic_strength": 1.0, + "pc": "AN06-AR/EM-QP/QD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "88503a95-1a12-5480-b40b-21b315927350" + }, + "uuid": "SD_006_284911364f3c44b2abdc13acb2df46b3", + "type": "Sextupole", + "FamName": "SD_006", + "name": "AN06-AR/EM-SX/SD.01", + "magnetic_strength": 1.0, + "pc": "AN06-AR/EM-SX/SD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "0da2c533-888e-5e14-b398-b5deb2daed26" + }, + "uuid": "QF_007_7414601f613f4115b9fe0b78eceaa2ce", + "type": "Quadrupole", + "FamName": "QF_007", + "name": "AN07-AR/EM-QP/QF.01", + "magnetic_strength": 1.0, + "pc": "AN07-AR/EM-QP/QF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "8e17526c-1b84-51a9-a2f8-6344997a7617" + }, + "uuid": "SF_007_b3fa2def44a24425a5ad414abc5bbca1", + "type": "Sextupole", + "FamName": "SF_007", + "name": "AN07-AR/EM-SX/SF.01", + "magnetic_strength": 1.0, + "pc": "AN07-AR/EM-SX/SF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "80af66b7-88c3-5984-b9f4-7e475b1db32d" + }, + "uuid": "QD_007_79fa1ac91a7f43eda443200923990327", + "type": "Quadrupole", + "FamName": "QD_007", + "name": "AN07-AR/EM-QP/QD.01", + "magnetic_strength": 1.0, + "pc": "AN07-AR/EM-QP/QD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "898b3eaa-a14b-595a-b293-317c027aac4e" + }, + "uuid": "SD_007_3b05e519bdcd4fc4b3b8dc42c2c1cb55", + "type": "Sextupole", + "FamName": "SD_007", + "name": "AN07-AR/EM-SX/SD.01", + "magnetic_strength": 1.0, + "pc": "AN07-AR/EM-SX/SD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "ee5e9ca4-9d80-54a7-9ab8-f9690eb0d814" + }, + "uuid": "QF_008_b3d3db8e1c9e4e8c9eb2846730bd81ea", + "type": "Quadrupole", + "FamName": "QF_008", + "name": "AN08-AR/EM-QP/QF.01", + "magnetic_strength": 1.0, + "pc": "AN08-AR/EM-QP/QF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "08c1c1c2-c160-5fa5-9e38-1b296d4587ad" + }, + "uuid": "SF_008_00a14620b0a5428b821ddb84d2639e5c", + "type": "Sextupole", + "FamName": "SF_008", + "name": "AN08-AR/EM-SX/SF.01", + "magnetic_strength": 1.0, + "pc": "AN08-AR/EM-SX/SF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "dc500eca-c639-540f-ba75-e6fde5fb3f44" + }, + "uuid": "QD_008_1cb9b3401b644658908260616570424d", + "type": "Quadrupole", + "FamName": "QD_008", + "name": "AN08-AR/EM-QP/QD.01", + "magnetic_strength": 1.0, + "pc": "AN08-AR/EM-QP/QD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "dfba4cbb-c3b9-5442-b18d-ca1e2ee807ca" + }, + "uuid": "SD_008_3b849a66bca1453cac95fa0ccba58166", + "type": "Sextupole", + "FamName": "SD_008", + "name": "AN08-AR/EM-SX/SD.01", + "magnetic_strength": 1.0, + "pc": "AN08-AR/EM-SX/SD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "79578539-04bc-548c-9970-a55044c00ef6" + }, + "uuid": "QF_009_441bf7bdfe9c443c8a55c1a58cb1caf5", + "type": "Quadrupole", + "FamName": "QF_009", + "name": "AN09-AR/EM-QP/QF.01", + "magnetic_strength": 1.0, + "pc": "AN09-AR/EM-QP/QF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "228739ad-487d-58f8-be3a-ab242a2bae37" + }, + "uuid": "SF_009_6f725f3f495f428696a8419b73f22774", + "type": "Sextupole", + "FamName": "SF_009", + "name": "AN09-AR/EM-SX/SF.01", + "magnetic_strength": 1.0, + "pc": "AN09-AR/EM-SX/SF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "bc69a23c-a1b3-5458-836c-7d5ca929c271" + }, + "uuid": "QD_009_232f21c02a03457698d31ec2d4265a02", + "type": "Quadrupole", + "FamName": "QD_009", + "name": "AN09-AR/EM-QP/QD.01", + "magnetic_strength": 1.0, + "pc": "AN09-AR/EM-QP/QD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "fda3bfb1-1892-580c-9293-2c9b164ed323" + }, + "uuid": "SD_009_cf86e64cfe764c12b94262c41ceabbfb", + "type": "Sextupole", + "FamName": "SD_009", + "name": "AN09-AR/EM-SX/SD.01", + "magnetic_strength": 1.0, + "pc": "AN09-AR/EM-SX/SD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "3b43a120-ce71-5c93-8062-4e1397e8f952" + }, + "uuid": "QF_010_94782da4ed5e4898b91d7e864140c277", + "type": "Quadrupole", + "FamName": "QF_010", + "name": "AN10-AR/EM-QP/QF.01", + "magnetic_strength": 1.0, + "pc": "AN10-AR/EM-QP/QF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "c1d609c0-62cc-5b13-b191-45c0cb85b617" + }, + "uuid": "SF_010_f626388a02d64cfd83c9b1614982a5fb", + "type": "Sextupole", + "FamName": "SF_010", + "name": "AN10-AR/EM-SX/SF.01", + "magnetic_strength": 1.0, + "pc": "AN10-AR/EM-SX/SF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "a77da90c-10b0-5745-889a-9dace4c1e138" + }, + "uuid": "QD_010_56f8b47113df4cec8b2fc3ab38c69869", + "type": "Quadrupole", + "FamName": "QD_010", + "name": "AN10-AR/EM-QP/QD.01", + "magnetic_strength": 1.0, + "pc": "AN10-AR/EM-QP/QD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "ea361739-ce5c-58fb-9fcf-f85eb7b4c802" + }, + "uuid": "SD_010_eafccc3719664195b4107df7527a8a0a", + "type": "Sextupole", + "FamName": "SD_010", + "name": "AN10-AR/EM-SX/SD.01", + "magnetic_strength": 1.0, + "pc": "AN10-AR/EM-SX/SD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "f1319c13-cfa4-5f51-89b2-b549f444882b" + }, + "uuid": "QF_011_b575ed5454c54128b2ed3d6b7e64ddad", + "type": "Quadrupole", + "FamName": "QF_011", + "name": "AN11-AR/EM-QP/QF.01", + "magnetic_strength": 1.0, + "pc": "AN11-AR/EM-QP/QF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "6d26f383-e75b-5aab-908a-f4bfc45b99ff" + }, + "uuid": "SF_011_bd73fc4fbc0640efb117cac154b34c33", + "type": "Sextupole", + "FamName": "SF_011", + "name": "AN11-AR/EM-SX/SF.01", + "magnetic_strength": 1.0, + "pc": "AN11-AR/EM-SX/SF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "e0066e04-9e0c-520a-bf50-fd929b69d991" + }, + "uuid": "QD_011_ae7b2c76f21b429c962ff3c33a38cd70", + "type": "Quadrupole", + "FamName": "QD_011", + "name": "AN11-AR/EM-QP/QD.01", + "magnetic_strength": 1.0, + "pc": "AN11-AR/EM-QP/QD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "5594533e-ac3d-5985-8894-11e9eb56447a" + }, + "uuid": "SD_011_773d914fde034e8697ac966f74ca0611", + "type": "Sextupole", + "FamName": "SD_011", + "name": "AN11-AR/EM-SX/SD.01", + "magnetic_strength": 1.0, + "pc": "AN11-AR/EM-SX/SD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "0cd8f0b1-c1e1-5264-ab15-6df2ea9e6e4f" + }, + "uuid": "QF_012_cb52fb6f374840b0a50180a089da49d1", + "type": "Quadrupole", + "FamName": "QF_012", + "name": "AN12-AR/EM-QP/QF.01", + "magnetic_strength": 1.0, + "pc": "AN12-AR/EM-QP/QF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "2c63ef90-891b-5ae7-8e1f-2c780aac5442" + }, + "uuid": "SF_012_02daf05ef4ab46ea86bdb3be90162251", + "type": "Sextupole", + "FamName": "SF_012", + "name": "AN12-AR/EM-SX/SF.01", + "magnetic_strength": 1.0, + "pc": "AN12-AR/EM-SX/SF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "90f419b4-65cf-5b51-803e-70c881d99413" + }, + "uuid": "QD_012_29f2185aa29a4c02be3bbfdd5bad13e3", + "type": "Quadrupole", + "FamName": "QD_012", + "name": "AN12-AR/EM-QP/QD.01", + "magnetic_strength": 1.0, + "pc": "AN12-AR/EM-QP/QD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "213788a5-9f7a-519a-9a3b-723c6fe3d06a" + }, + "uuid": "SD_012_ff9262ea95744358b360235d7a459cec", + "type": "Sextupole", + "FamName": "SD_012", + "name": "AN12-AR/EM-SX/SD.01", + "magnetic_strength": 1.0, + "pc": "AN12-AR/EM-SX/SD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "557ce421-0d59-5427-a87f-f3eeb07742eb" + }, + "uuid": "QF_013_2793a62cd78744c9ab4ca5e2843a72a2", + "type": "Quadrupole", + "FamName": "QF_013", + "name": "AN13-AR/EM-QP/QF.01", + "magnetic_strength": 1.0, + "pc": "AN13-AR/EM-QP/QF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "dc78713d-6231-526c-82af-c4ad5e629792" + }, + "uuid": "SF_013_4532d63397d644d28e1af1a480a60c07", + "type": "Sextupole", + "FamName": "SF_013", + "name": "AN13-AR/EM-SX/SF.01", + "magnetic_strength": 1.0, + "pc": "AN13-AR/EM-SX/SF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "1734470f-dfb5-5924-bdea-502c8b6e8002" + }, + "uuid": "QD_013_03843b2e6ee24e16aa6572f5cb18f4a8", + "type": "Quadrupole", + "FamName": "QD_013", + "name": "AN13-AR/EM-QP/QD.01", + "magnetic_strength": 1.0, + "pc": "AN13-AR/EM-QP/QD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "6ed42099-1eb4-55f0-86ad-d56b41b7183b" + }, + "uuid": "SD_013_ef033612a3274ef3ab886afd81614dca", + "type": "Sextupole", + "FamName": "SD_013", + "name": "AN13-AR/EM-SX/SD.01", + "magnetic_strength": 1.0, + "pc": "AN13-AR/EM-SX/SD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "cf536e65-6575-5e70-a097-e523c62b5407" + }, + "uuid": "QF_014_c09c7e604b3a41fa818b44d04c844b25", + "type": "Quadrupole", + "FamName": "QF_014", + "name": "AN14-AR/EM-QP/QF.01", + "magnetic_strength": 1.0, + "pc": "AN14-AR/EM-QP/QF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "729797af-5e7c-5c52-a678-5a7b92ae1894" + }, + "uuid": "SF_014_bf4393ec53954372bd5e4f140491465b", + "type": "Sextupole", + "FamName": "SF_014", + "name": "AN14-AR/EM-SX/SF.01", + "magnetic_strength": 1.0, + "pc": "AN14-AR/EM-SX/SF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "8987d009-7b2a-58e7-9290-cc41b9237d2c" + }, + "uuid": "QD_014_62633bc5afcd4fc9a19de70a983baa5c", + "type": "Quadrupole", + "FamName": "QD_014", + "name": "AN14-AR/EM-QP/QD.01", + "magnetic_strength": 1.0, + "pc": "AN14-AR/EM-QP/QD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "b895b010-0f15-5fc6-bb85-1f22c63730a3" + }, + "uuid": "SD_014_78a18b94b6f1422fb69dbcbd2ae90d67", + "type": "Sextupole", + "FamName": "SD_014", + "name": "AN14-AR/EM-SX/SD.01", + "magnetic_strength": 1.0, + "pc": "AN14-AR/EM-SX/SD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "92375ab1-9e4d-575e-a3d2-f6daa1a12dc8" + }, + "uuid": "QF_015_63634bfdccc44de586db6ee28071ccb4", + "type": "Quadrupole", + "FamName": "QF_015", + "name": "AN15-AR/EM-QP/QF.01", + "magnetic_strength": 1.0, + "pc": "AN15-AR/EM-QP/QF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "ceaf5afc-d7f5-59df-a520-bc8e89c75a67" + }, + "uuid": "SF_015_a988680835664d109306ad1694a48382", + "type": "Sextupole", + "FamName": "SF_015", + "name": "AN15-AR/EM-SX/SF.01", + "magnetic_strength": 1.0, + "pc": "AN15-AR/EM-SX/SF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "ddd448ad-6026-529c-ad57-4fc03b634934" + }, + "uuid": "QD_015_b2cc0d3ab8f741729a7abf3d9426a958", + "type": "Quadrupole", + "FamName": "QD_015", + "name": "AN15-AR/EM-QP/QD.01", + "magnetic_strength": 1.0, + "pc": "AN15-AR/EM-QP/QD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "b1ebe9ed-4f00-565d-87a6-778598824238" + }, + "uuid": "SD_015_8b7f143df262464e9f5c1eae4b83ce14", + "type": "Sextupole", + "FamName": "SD_015", + "name": "AN15-AR/EM-SX/SD.01", + "magnetic_strength": 1.0, + "pc": "AN15-AR/EM-SX/SD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "c9a497d5-12b2-574f-9c0b-2dc90fa29b8b" + }, + "uuid": "QF_016_965422d59ef3488f84c68f5ecaee6c6b", + "type": "Quadrupole", + "FamName": "QF_016", + "name": "AN16-AR/EM-QP/QF.01", + "magnetic_strength": 1.0, + "pc": "AN16-AR/EM-QP/QF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "65b9d146-4bc5-57ee-8819-d5edf6d49765" + }, + "uuid": "SF_016_e67c83cfbce2433f9152de49f928d25d", + "type": "Sextupole", + "FamName": "SF_016", + "name": "AN16-AR/EM-SX/SF.01", + "magnetic_strength": 1.0, + "pc": "AN16-AR/EM-SX/SF.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "09866f6f-bc17-5664-96dc-8b6cb899e36a" + }, + "uuid": "QD_016_63fce39354a946818c2bfd76adb61760", + "type": "Quadrupole", + "FamName": "QD_016", + "name": "AN16-AR/EM-QP/QD.01", + "magnetic_strength": 1.0, + "pc": "AN16-AR/EM-QP/QD.01-pc", + "k": 1.0 + }, + { + "_id": { + "$oid": "6fab5137-4fa1-5773-a931-920b6a7d5834" + }, + "uuid": "SD_016_626878061df544a08c4c061e57a4e3a1", + "type": "Sextupole", + "FamName": "SD_016", + "name": "AN16-AR/EM-SX/SD.01", + "magnetic_strength": 1.0, + "pc": "AN16-AR/EM-SX/SD.01-pc", + "k": 1.0 + } +] diff --git a/tests/integration/data/fodo_1gev_6d_pyaml.yaml b/tests/integration/data/fodo_1gev_6d_pyaml.yaml new file mode 100644 index 000000000..239befd70 --- /dev/null +++ b/tests/integration/data/fodo_1gev_6d_pyaml.yaml @@ -0,0 +1,784 @@ +type: pyaml.accelerator +facility: Synchrotron SOLEIL +machine: sr +data_folder: /data/store +energy: 1000000000.0 +simulators: +- type: pyaml.lattice.simulator + lattice: fodo_1gev_6d.m + name: design + linker: + type: pyaml.lattice.attribute_linker + attribute_name: UUID +controls: +- type: tango.pyaml.controlsystem + name: live + catalog: fodo_1gev_6d_pyaml_catalogs.yaml +arrays: +- type: pyaml.arrays.magnet + name: QF_001 + elements: + - QF_001_f2013521b99e4a76bed1db7ec67464b0 +- type: pyaml.arrays.element + name: Cell1 + elements: + - QF_001_f2013521b99e4a76bed1db7ec67464b0 + - SF_001_f934c7cf2c704132acfce86bc2419e36 + - QD_001_15812e1906ee4bc7b94abb8ccd910f5b + - SD_001_4e39bd9617e7428486da49e4b5cc3981 +- type: pyaml.arrays.magnet + name: SF_001 + elements: + - SF_001_f934c7cf2c704132acfce86bc2419e36 +- type: pyaml.arrays.magnet + name: QD_001 + elements: + - QD_001_15812e1906ee4bc7b94abb8ccd910f5b +- type: pyaml.arrays.magnet + name: SD_001 + elements: + - SD_001_4e39bd9617e7428486da49e4b5cc3981 +- type: pyaml.arrays.magnet + name: QF_002 + elements: + - QF_002_d8a6e63c07c94aed87878d113cf22194 +- type: pyaml.arrays.element + name: Cell2 + elements: + - QF_002_d8a6e63c07c94aed87878d113cf22194 + - SF_002_f7c48af5504649a09b8e9434b2509ce4 + - QD_002_c212a1d7ea41484f925303959213cc32 + - SD_002_178b0b0cfcc046c6ac9a1eac2328963e +- type: pyaml.arrays.magnet + name: SF_002 + elements: + - SF_002_f7c48af5504649a09b8e9434b2509ce4 +- type: pyaml.arrays.magnet + name: QD_002 + elements: + - QD_002_c212a1d7ea41484f925303959213cc32 +- type: pyaml.arrays.magnet + name: SD_002 + elements: + - SD_002_178b0b0cfcc046c6ac9a1eac2328963e +- type: pyaml.arrays.magnet + name: QF_003 + elements: + - QF_003_d6bf77b8f23b45e0b1e96bb88f7b3d40 +- type: pyaml.arrays.element + name: Cell3 + elements: + - QF_003_d6bf77b8f23b45e0b1e96bb88f7b3d40 + - SF_003_bd75202a28b243d0bc604fa6e8ad0dd2 + - QD_003_ad775f317e7b4408a72e09c7db4236ad + - SD_003_63a3ec9ceeef453f8e793acc437ce116 +- type: pyaml.arrays.magnet + name: SF_003 + elements: + - SF_003_bd75202a28b243d0bc604fa6e8ad0dd2 +- type: pyaml.arrays.magnet + name: QD_003 + elements: + - QD_003_ad775f317e7b4408a72e09c7db4236ad +- type: pyaml.arrays.magnet + name: SD_003 + elements: + - SD_003_63a3ec9ceeef453f8e793acc437ce116 +- type: pyaml.arrays.magnet + name: QF_004 + elements: + - QF_004_ce31bb358fad4cc7aadb86711031acd0 +- type: pyaml.arrays.element + name: Cell4 + elements: + - QF_004_ce31bb358fad4cc7aadb86711031acd0 + - SF_004_faa5bb6858e64051a54f4f01340684e6 + - QD_004_82625fab961945c0aba57174ebcbf51f + - SD_004_3e0e59ac94f945f2be40eccc30f3a2d3 +- type: pyaml.arrays.magnet + name: SF_004 + elements: + - SF_004_faa5bb6858e64051a54f4f01340684e6 +- type: pyaml.arrays.magnet + name: QD_004 + elements: + - QD_004_82625fab961945c0aba57174ebcbf51f +- type: pyaml.arrays.magnet + name: SD_004 + elements: + - SD_004_3e0e59ac94f945f2be40eccc30f3a2d3 +- type: pyaml.arrays.magnet + name: QF_005 + elements: + - QF_005_d812a0f116044852a2dfc809ca0b87bf +- type: pyaml.arrays.element + name: Cell5 + elements: + - QF_005_d812a0f116044852a2dfc809ca0b87bf + - SF_005_ab16d309e1e341e58d7ae1598098bb69 + - QD_005_03b6d72e666d4632b6e9a3c2b15ceca7 + - SD_005_1e16f88b09834fd6bd6cf9ef7de62dbe +- type: pyaml.arrays.magnet + name: SF_005 + elements: + - SF_005_ab16d309e1e341e58d7ae1598098bb69 +- type: pyaml.arrays.magnet + name: QD_005 + elements: + - QD_005_03b6d72e666d4632b6e9a3c2b15ceca7 +- type: pyaml.arrays.magnet + name: SD_005 + elements: + - SD_005_1e16f88b09834fd6bd6cf9ef7de62dbe +- type: pyaml.arrays.magnet + name: QF_006 + elements: + - QF_006_d39cefd95c88492885796863d4df1b68 +- type: pyaml.arrays.element + name: Cell6 + elements: + - QF_006_d39cefd95c88492885796863d4df1b68 + - SF_006_09d95d77b39a463283b0660c4478c409 + - QD_006_49e8c0b7e66348338865c77d9317c6bf + - SD_006_284911364f3c44b2abdc13acb2df46b3 +- type: pyaml.arrays.magnet + name: SF_006 + elements: + - SF_006_09d95d77b39a463283b0660c4478c409 +- type: pyaml.arrays.magnet + name: QD_006 + elements: + - QD_006_49e8c0b7e66348338865c77d9317c6bf +- type: pyaml.arrays.magnet + name: SD_006 + elements: + - SD_006_284911364f3c44b2abdc13acb2df46b3 +- type: pyaml.arrays.magnet + name: QF_007 + elements: + - QF_007_7414601f613f4115b9fe0b78eceaa2ce +- type: pyaml.arrays.element + name: Cell7 + elements: + - QF_007_7414601f613f4115b9fe0b78eceaa2ce + - SF_007_b3fa2def44a24425a5ad414abc5bbca1 + - QD_007_79fa1ac91a7f43eda443200923990327 + - SD_007_3b05e519bdcd4fc4b3b8dc42c2c1cb55 +- type: pyaml.arrays.magnet + name: SF_007 + elements: + - SF_007_b3fa2def44a24425a5ad414abc5bbca1 +- type: pyaml.arrays.magnet + name: QD_007 + elements: + - QD_007_79fa1ac91a7f43eda443200923990327 +- type: pyaml.arrays.magnet + name: SD_007 + elements: + - SD_007_3b05e519bdcd4fc4b3b8dc42c2c1cb55 +- type: pyaml.arrays.magnet + name: QF_008 + elements: + - QF_008_b3d3db8e1c9e4e8c9eb2846730bd81ea +- type: pyaml.arrays.element + name: Cell8 + elements: + - QF_008_b3d3db8e1c9e4e8c9eb2846730bd81ea + - SF_008_00a14620b0a5428b821ddb84d2639e5c + - QD_008_1cb9b3401b644658908260616570424d + - SD_008_3b849a66bca1453cac95fa0ccba58166 +- type: pyaml.arrays.magnet + name: SF_008 + elements: + - SF_008_00a14620b0a5428b821ddb84d2639e5c +- type: pyaml.arrays.magnet + name: QD_008 + elements: + - QD_008_1cb9b3401b644658908260616570424d +- type: pyaml.arrays.magnet + name: SD_008 + elements: + - SD_008_3b849a66bca1453cac95fa0ccba58166 +- type: pyaml.arrays.magnet + name: QF_009 + elements: + - QF_009_441bf7bdfe9c443c8a55c1a58cb1caf5 +- type: pyaml.arrays.element + name: Cell9 + elements: + - QF_009_441bf7bdfe9c443c8a55c1a58cb1caf5 + - SF_009_6f725f3f495f428696a8419b73f22774 + - QD_009_232f21c02a03457698d31ec2d4265a02 + - SD_009_cf86e64cfe764c12b94262c41ceabbfb +- type: pyaml.arrays.magnet + name: SF_009 + elements: + - SF_009_6f725f3f495f428696a8419b73f22774 +- type: pyaml.arrays.magnet + name: QD_009 + elements: + - QD_009_232f21c02a03457698d31ec2d4265a02 +- type: pyaml.arrays.magnet + name: SD_009 + elements: + - SD_009_cf86e64cfe764c12b94262c41ceabbfb +- type: pyaml.arrays.magnet + name: QF_010 + elements: + - QF_010_94782da4ed5e4898b91d7e864140c277 +- type: pyaml.arrays.element + name: Cell10 + elements: + - QF_010_94782da4ed5e4898b91d7e864140c277 + - SF_010_f626388a02d64cfd83c9b1614982a5fb + - QD_010_56f8b47113df4cec8b2fc3ab38c69869 + - SD_010_eafccc3719664195b4107df7527a8a0a +- type: pyaml.arrays.magnet + name: SF_010 + elements: + - SF_010_f626388a02d64cfd83c9b1614982a5fb +- type: pyaml.arrays.magnet + name: QD_010 + elements: + - QD_010_56f8b47113df4cec8b2fc3ab38c69869 +- type: pyaml.arrays.magnet + name: SD_010 + elements: + - SD_010_eafccc3719664195b4107df7527a8a0a +- type: pyaml.arrays.magnet + name: QF_011 + elements: + - QF_011_b575ed5454c54128b2ed3d6b7e64ddad +- type: pyaml.arrays.element + name: Cell11 + elements: + - QF_011_b575ed5454c54128b2ed3d6b7e64ddad + - SF_011_bd73fc4fbc0640efb117cac154b34c33 + - QD_011_ae7b2c76f21b429c962ff3c33a38cd70 + - SD_011_773d914fde034e8697ac966f74ca0611 +- type: pyaml.arrays.magnet + name: SF_011 + elements: + - SF_011_bd73fc4fbc0640efb117cac154b34c33 +- type: pyaml.arrays.magnet + name: QD_011 + elements: + - QD_011_ae7b2c76f21b429c962ff3c33a38cd70 +- type: pyaml.arrays.magnet + name: SD_011 + elements: + - SD_011_773d914fde034e8697ac966f74ca0611 +- type: pyaml.arrays.magnet + name: QF_012 + elements: + - QF_012_cb52fb6f374840b0a50180a089da49d1 +- type: pyaml.arrays.element + name: Cell12 + elements: + - QF_012_cb52fb6f374840b0a50180a089da49d1 + - SF_012_02daf05ef4ab46ea86bdb3be90162251 + - QD_012_29f2185aa29a4c02be3bbfdd5bad13e3 + - SD_012_ff9262ea95744358b360235d7a459cec +- type: pyaml.arrays.magnet + name: SF_012 + elements: + - SF_012_02daf05ef4ab46ea86bdb3be90162251 +- type: pyaml.arrays.magnet + name: QD_012 + elements: + - QD_012_29f2185aa29a4c02be3bbfdd5bad13e3 +- type: pyaml.arrays.magnet + name: SD_012 + elements: + - SD_012_ff9262ea95744358b360235d7a459cec +- type: pyaml.arrays.magnet + name: QF_013 + elements: + - QF_013_2793a62cd78744c9ab4ca5e2843a72a2 +- type: pyaml.arrays.element + name: Cell13 + elements: + - QF_013_2793a62cd78744c9ab4ca5e2843a72a2 + - SF_013_4532d63397d644d28e1af1a480a60c07 + - QD_013_03843b2e6ee24e16aa6572f5cb18f4a8 + - SD_013_ef033612a3274ef3ab886afd81614dca +- type: pyaml.arrays.magnet + name: SF_013 + elements: + - SF_013_4532d63397d644d28e1af1a480a60c07 +- type: pyaml.arrays.magnet + name: QD_013 + elements: + - QD_013_03843b2e6ee24e16aa6572f5cb18f4a8 +- type: pyaml.arrays.magnet + name: SD_013 + elements: + - SD_013_ef033612a3274ef3ab886afd81614dca +- type: pyaml.arrays.magnet + name: QF_014 + elements: + - QF_014_c09c7e604b3a41fa818b44d04c844b25 +- type: pyaml.arrays.element + name: Cell14 + elements: + - QF_014_c09c7e604b3a41fa818b44d04c844b25 + - SF_014_bf4393ec53954372bd5e4f140491465b + - QD_014_62633bc5afcd4fc9a19de70a983baa5c + - SD_014_78a18b94b6f1422fb69dbcbd2ae90d67 +- type: pyaml.arrays.magnet + name: SF_014 + elements: + - SF_014_bf4393ec53954372bd5e4f140491465b +- type: pyaml.arrays.magnet + name: QD_014 + elements: + - QD_014_62633bc5afcd4fc9a19de70a983baa5c +- type: pyaml.arrays.magnet + name: SD_014 + elements: + - SD_014_78a18b94b6f1422fb69dbcbd2ae90d67 +- type: pyaml.arrays.magnet + name: QF_015 + elements: + - QF_015_63634bfdccc44de586db6ee28071ccb4 +- type: pyaml.arrays.element + name: Cell15 + elements: + - QF_015_63634bfdccc44de586db6ee28071ccb4 + - SF_015_a988680835664d109306ad1694a48382 + - QD_015_b2cc0d3ab8f741729a7abf3d9426a958 + - SD_015_8b7f143df262464e9f5c1eae4b83ce14 +- type: pyaml.arrays.magnet + name: SF_015 + elements: + - SF_015_a988680835664d109306ad1694a48382 +- type: pyaml.arrays.magnet + name: QD_015 + elements: + - QD_015_b2cc0d3ab8f741729a7abf3d9426a958 +- type: pyaml.arrays.magnet + name: SD_015 + elements: + - SD_015_8b7f143df262464e9f5c1eae4b83ce14 +- type: pyaml.arrays.magnet + name: QF_016 + elements: + - QF_016_965422d59ef3488f84c68f5ecaee6c6b +- type: pyaml.arrays.element + name: Cell16 + elements: + - QF_016_965422d59ef3488f84c68f5ecaee6c6b + - SF_016_e67c83cfbce2433f9152de49f928d25d + - QD_016_63fce39354a946818c2bfd76adb61760 + - SD_016_626878061df544a08c4c061e57a4e3a1 +- type: pyaml.arrays.magnet + name: SF_016 + elements: + - SF_016_e67c83cfbce2433f9152de49f928d25d +- type: pyaml.arrays.magnet + name: QD_016 + elements: + - QD_016_63fce39354a946818c2bfd76adb61760 +- type: pyaml.arrays.magnet + name: SD_016 + elements: + - SD_016_626878061df544a08c4c061e57a4e3a1 +devices: +- type: pyaml.magnet.quadrupole + name: QF_001_f2013521b99e4a76bed1db7ec67464b0 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN01-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_001_f934c7cf2c704132acfce86bc2419e36 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN01-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_001_15812e1906ee4bc7b94abb8ccd910f5b + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN01-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_001_4e39bd9617e7428486da49e4b5cc3981 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN01-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_002_d8a6e63c07c94aed87878d113cf22194 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN02-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_002_f7c48af5504649a09b8e9434b2509ce4 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN02-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_002_c212a1d7ea41484f925303959213cc32 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN02-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_002_178b0b0cfcc046c6ac9a1eac2328963e + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN02-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_003_d6bf77b8f23b45e0b1e96bb88f7b3d40 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN03-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_003_bd75202a28b243d0bc604fa6e8ad0dd2 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN03-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_003_ad775f317e7b4408a72e09c7db4236ad + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN03-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_003_63a3ec9ceeef453f8e793acc437ce116 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN03-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_004_ce31bb358fad4cc7aadb86711031acd0 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN04-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_004_faa5bb6858e64051a54f4f01340684e6 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN04-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_004_82625fab961945c0aba57174ebcbf51f + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN04-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_004_3e0e59ac94f945f2be40eccc30f3a2d3 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN04-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_005_d812a0f116044852a2dfc809ca0b87bf + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN05-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_005_ab16d309e1e341e58d7ae1598098bb69 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN05-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_005_03b6d72e666d4632b6e9a3c2b15ceca7 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN05-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_005_1e16f88b09834fd6bd6cf9ef7de62dbe + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN05-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_006_d39cefd95c88492885796863d4df1b68 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN06-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_006_09d95d77b39a463283b0660c4478c409 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN06-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_006_49e8c0b7e66348338865c77d9317c6bf + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN06-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_006_284911364f3c44b2abdc13acb2df46b3 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN06-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_007_7414601f613f4115b9fe0b78eceaa2ce + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN07-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_007_b3fa2def44a24425a5ad414abc5bbca1 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN07-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_007_79fa1ac91a7f43eda443200923990327 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN07-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_007_3b05e519bdcd4fc4b3b8dc42c2c1cb55 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN07-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_008_b3d3db8e1c9e4e8c9eb2846730bd81ea + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN08-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_008_00a14620b0a5428b821ddb84d2639e5c + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN08-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_008_1cb9b3401b644658908260616570424d + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN08-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_008_3b849a66bca1453cac95fa0ccba58166 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN08-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_009_441bf7bdfe9c443c8a55c1a58cb1caf5 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN09-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_009_6f725f3f495f428696a8419b73f22774 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN09-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_009_232f21c02a03457698d31ec2d4265a02 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN09-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_009_cf86e64cfe764c12b94262c41ceabbfb + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN09-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_010_94782da4ed5e4898b91d7e864140c277 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN10-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_010_f626388a02d64cfd83c9b1614982a5fb + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN10-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_010_56f8b47113df4cec8b2fc3ab38c69869 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN10-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_010_eafccc3719664195b4107df7527a8a0a + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN10-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_011_b575ed5454c54128b2ed3d6b7e64ddad + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN11-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_011_bd73fc4fbc0640efb117cac154b34c33 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN11-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_011_ae7b2c76f21b429c962ff3c33a38cd70 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN11-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_011_773d914fde034e8697ac966f74ca0611 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN11-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_012_cb52fb6f374840b0a50180a089da49d1 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN12-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_012_02daf05ef4ab46ea86bdb3be90162251 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN12-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_012_29f2185aa29a4c02be3bbfdd5bad13e3 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN12-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_012_ff9262ea95744358b360235d7a459cec + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN12-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_013_2793a62cd78744c9ab4ca5e2843a72a2 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN13-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_013_4532d63397d644d28e1af1a480a60c07 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN13-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_013_03843b2e6ee24e16aa6572f5cb18f4a8 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN13-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_013_ef033612a3274ef3ab886afd81614dca + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN13-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_014_c09c7e604b3a41fa818b44d04c844b25 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN14-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_014_bf4393ec53954372bd5e4f140491465b + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN14-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_014_62633bc5afcd4fc9a19de70a983baa5c + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN14-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_014_78a18b94b6f1422fb69dbcbd2ae90d67 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN14-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_015_63634bfdccc44de586db6ee28071ccb4 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN15-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_015_a988680835664d109306ad1694a48382 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN15-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_015_b2cc0d3ab8f741729a7abf3d9426a958 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN15-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_015_8b7f143df262464e9f5c1eae4b83ce14 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN15-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QF_016_965422d59ef3488f84c68f5ecaee6c6b + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN16-AR/EM-QP/QF.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SF_016_e67c83cfbce2433f9152de49f928d25d + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN16-AR/EM-SX/SF.01/magnetic_strength +- type: pyaml.magnet.quadrupole + name: QD_016_63fce39354a946818c2bfd76adb61760 + model: + type: pyaml.magnet.identity_model + unit: 1/m + physics: AN16-AR/EM-QP/QD.01/magnetic_strength +- type: pyaml.magnet.sextupole + name: SD_016_626878061df544a08c4c061e57a4e3a1 + model: + type: pyaml.magnet.identity_model + unit: 1/m**2 + physics: AN16-AR/EM-SX/SD.01/magnetic_strength +- type: pyaml.rf.rf_plant + name: RF + masterclock: simulator/ringsimulator/ringsimulator/reference_frequency + transmitters: + - type: pyaml.rf.rf_transmitter + name: RFTRA + cavities: [RF_001_cc245d84ca2b4ba9b54051069a4cfb8f] + harmonic: 1 + distribution: 1 + voltage: simulator/ringsimulator/ringsimulator/voltage +- type: pyaml.diagnostics.tune_monitor + name: BETATRON_TUNE + tune_h: simulator/ringsimulator/ringsimulator/hor + tune_v: simulator/ringsimulator/ringsimulator/vert diff --git a/tests/integration/data/fodo_1gev_6d_pyaml_catalogs-oa.yaml b/tests/integration/data/fodo_1gev_6d_pyaml_catalogs-oa.yaml new file mode 100644 index 000000000..6362d50e9 --- /dev/null +++ b/tests/integration/data/fodo_1gev_6d_pyaml_catalogs-oa.yaml @@ -0,0 +1,476 @@ +type: pyaml_cs_oa.static_catalog +entries: +- type: pyaml_cs_oa.static_catalog_entry + key: AN01-AR/EM-QP/QF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN01-AR/EM-QP/QF.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN01-AR/EM-SX/SF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN01-AR/EM-SX/SF.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN01-AR/EM-QP/QD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN01-AR/EM-QP/QD.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN01-AR/EM-SX/SD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN01-AR/EM-SX/SD.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN02-AR/EM-QP/QF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN02-AR/EM-QP/QF.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN02-AR/EM-SX/SF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN02-AR/EM-SX/SF.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN02-AR/EM-QP/QD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN02-AR/EM-QP/QD.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN02-AR/EM-SX/SD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN02-AR/EM-SX/SD.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN03-AR/EM-QP/QF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN03-AR/EM-QP/QF.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN03-AR/EM-SX/SF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN03-AR/EM-SX/SF.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN03-AR/EM-QP/QD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN03-AR/EM-QP/QD.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN03-AR/EM-SX/SD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN03-AR/EM-SX/SD.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN04-AR/EM-QP/QF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN04-AR/EM-QP/QF.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN04-AR/EM-SX/SF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN04-AR/EM-SX/SF.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN04-AR/EM-QP/QD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN04-AR/EM-QP/QD.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN04-AR/EM-SX/SD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN04-AR/EM-SX/SD.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN05-AR/EM-QP/QF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN05-AR/EM-QP/QF.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN05-AR/EM-SX/SF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN05-AR/EM-SX/SF.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN05-AR/EM-QP/QD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN05-AR/EM-QP/QD.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN05-AR/EM-SX/SD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN05-AR/EM-SX/SD.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN06-AR/EM-QP/QF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN06-AR/EM-QP/QF.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN06-AR/EM-SX/SF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN06-AR/EM-SX/SF.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN06-AR/EM-QP/QD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN06-AR/EM-QP/QD.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN06-AR/EM-SX/SD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN06-AR/EM-SX/SD.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN07-AR/EM-QP/QF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN07-AR/EM-QP/QF.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN07-AR/EM-SX/SF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN07-AR/EM-SX/SF.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN07-AR/EM-QP/QD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN07-AR/EM-QP/QD.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN07-AR/EM-SX/SD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN07-AR/EM-SX/SD.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN08-AR/EM-QP/QF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN08-AR/EM-QP/QF.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN08-AR/EM-SX/SF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN08-AR/EM-SX/SF.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN08-AR/EM-QP/QD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN08-AR/EM-QP/QD.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN08-AR/EM-SX/SD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN08-AR/EM-SX/SD.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN09-AR/EM-QP/QF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN09-AR/EM-QP/QF.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN09-AR/EM-SX/SF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN09-AR/EM-SX/SF.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN09-AR/EM-QP/QD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN09-AR/EM-QP/QD.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN09-AR/EM-SX/SD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN09-AR/EM-SX/SD.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN10-AR/EM-QP/QF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN10-AR/EM-QP/QF.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN10-AR/EM-SX/SF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN10-AR/EM-SX/SF.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN10-AR/EM-QP/QD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN10-AR/EM-QP/QD.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN10-AR/EM-SX/SD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN10-AR/EM-SX/SD.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN11-AR/EM-QP/QF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN11-AR/EM-QP/QF.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN11-AR/EM-SX/SF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN11-AR/EM-SX/SF.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN11-AR/EM-QP/QD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN11-AR/EM-QP/QD.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN11-AR/EM-SX/SD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN11-AR/EM-SX/SD.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN12-AR/EM-QP/QF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN12-AR/EM-QP/QF.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN12-AR/EM-SX/SF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN12-AR/EM-SX/SF.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN12-AR/EM-QP/QD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN12-AR/EM-QP/QD.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN12-AR/EM-SX/SD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN12-AR/EM-SX/SD.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN13-AR/EM-QP/QF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN13-AR/EM-QP/QF.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN13-AR/EM-SX/SF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN13-AR/EM-SX/SF.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN13-AR/EM-QP/QD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN13-AR/EM-QP/QD.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN13-AR/EM-SX/SD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN13-AR/EM-SX/SD.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN14-AR/EM-QP/QF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN14-AR/EM-QP/QF.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN14-AR/EM-SX/SF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN14-AR/EM-SX/SF.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN14-AR/EM-QP/QD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN14-AR/EM-QP/QD.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN14-AR/EM-SX/SD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN14-AR/EM-SX/SD.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN15-AR/EM-QP/QF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN15-AR/EM-QP/QF.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN15-AR/EM-SX/SF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN15-AR/EM-SX/SF.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN15-AR/EM-QP/QD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN15-AR/EM-QP/QD.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN15-AR/EM-SX/SD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN15-AR/EM-SX/SD.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN16-AR/EM-QP/QF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN16-AR/EM-QP/QF.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN16-AR/EM-SX/SF.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN16-AR/EM-SX/SF.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: AN16-AR/EM-QP/QD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN16-AR/EM-QP/QD.01/magnetic_strength + class: TangoAtt + unit: 1/m +- type: pyaml_cs_oa.static_catalog_entry + key: AN16-AR/EM-SX/SD.01/magnetic_strength + device: + type: pyaml_cs_oa.tangoAtt + attribute: AN16-AR/EM-SX/SD.01/magnetic_strength + class: TangoAtt + unit: 1/m**2 +- type: pyaml_cs_oa.static_catalog_entry + key: simulator/ringsimulator/ringsimulator/reference_frequency + device: + type: pyaml_cs_oa.tangoAtt + attribute: simulator/ringsimulator/ringsimulator/reference_frequency + class: TangoAtt + unit: kHz +- type: pyaml_cs_oa.static_catalog_entry + key: simulator/ringsimulator/ringsimulator/voltage + device: + type: pyaml_cs_oa.tangoAtt + attribute: simulator/ringsimulator/ringsimulator/voltage + class: TangoAtt + unit: V +- type: pyaml_cs_oa.static_catalog_entry + key: simulator/ringsimulator/ringsimulator/hor + device: + type: pyaml_cs_oa.tangoAtt + attribute: simulator/ringsimulator/ringsimulator/hor + class: TangoAtt +- type: pyaml_cs_oa.static_catalog_entry + key: simulator/ringsimulator/ringsimulator/vert + device: + type: pyaml_cs_oa.tangoAtt + attribute: simulator/ringsimulator/ringsimulator/vert + class: TangoAtt diff --git a/tests/integration/data/fodo_1gev_6d_pyaml_catalogs.yaml b/tests/integration/data/fodo_1gev_6d_pyaml_catalogs.yaml new file mode 100644 index 000000000..b2c290bc5 --- /dev/null +++ b/tests/integration/data/fodo_1gev_6d_pyaml_catalogs.yaml @@ -0,0 +1,408 @@ +type: tango.pyaml.static_catalog +entries: +- type: tango.pyaml.static_catalog_entry + key: AN01-AR/EM-QP/QF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN01-AR/EM-QP/QF.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN01-AR/EM-SX/SF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN01-AR/EM-SX/SF.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN01-AR/EM-QP/QD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN01-AR/EM-QP/QD.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN01-AR/EM-SX/SD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN01-AR/EM-SX/SD.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN02-AR/EM-QP/QF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN02-AR/EM-QP/QF.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN02-AR/EM-SX/SF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN02-AR/EM-SX/SF.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN02-AR/EM-QP/QD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN02-AR/EM-QP/QD.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN02-AR/EM-SX/SD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN02-AR/EM-SX/SD.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN03-AR/EM-QP/QF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN03-AR/EM-QP/QF.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN03-AR/EM-SX/SF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN03-AR/EM-SX/SF.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN03-AR/EM-QP/QD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN03-AR/EM-QP/QD.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN03-AR/EM-SX/SD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN03-AR/EM-SX/SD.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN04-AR/EM-QP/QF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN04-AR/EM-QP/QF.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN04-AR/EM-SX/SF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN04-AR/EM-SX/SF.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN04-AR/EM-QP/QD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN04-AR/EM-QP/QD.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN04-AR/EM-SX/SD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN04-AR/EM-SX/SD.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN05-AR/EM-QP/QF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN05-AR/EM-QP/QF.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN05-AR/EM-SX/SF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN05-AR/EM-SX/SF.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN05-AR/EM-QP/QD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN05-AR/EM-QP/QD.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN05-AR/EM-SX/SD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN05-AR/EM-SX/SD.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN06-AR/EM-QP/QF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN06-AR/EM-QP/QF.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN06-AR/EM-SX/SF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN06-AR/EM-SX/SF.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN06-AR/EM-QP/QD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN06-AR/EM-QP/QD.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN06-AR/EM-SX/SD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN06-AR/EM-SX/SD.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN07-AR/EM-QP/QF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN07-AR/EM-QP/QF.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN07-AR/EM-SX/SF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN07-AR/EM-SX/SF.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN07-AR/EM-QP/QD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN07-AR/EM-QP/QD.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN07-AR/EM-SX/SD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN07-AR/EM-SX/SD.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN08-AR/EM-QP/QF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN08-AR/EM-QP/QF.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN08-AR/EM-SX/SF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN08-AR/EM-SX/SF.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN08-AR/EM-QP/QD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN08-AR/EM-QP/QD.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN08-AR/EM-SX/SD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN08-AR/EM-SX/SD.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN09-AR/EM-QP/QF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN09-AR/EM-QP/QF.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN09-AR/EM-SX/SF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN09-AR/EM-SX/SF.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN09-AR/EM-QP/QD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN09-AR/EM-QP/QD.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN09-AR/EM-SX/SD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN09-AR/EM-SX/SD.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN10-AR/EM-QP/QF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN10-AR/EM-QP/QF.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN10-AR/EM-SX/SF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN10-AR/EM-SX/SF.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN10-AR/EM-QP/QD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN10-AR/EM-QP/QD.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN10-AR/EM-SX/SD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN10-AR/EM-SX/SD.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN11-AR/EM-QP/QF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN11-AR/EM-QP/QF.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN11-AR/EM-SX/SF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN11-AR/EM-SX/SF.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN11-AR/EM-QP/QD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN11-AR/EM-QP/QD.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN11-AR/EM-SX/SD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN11-AR/EM-SX/SD.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN12-AR/EM-QP/QF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN12-AR/EM-QP/QF.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN12-AR/EM-SX/SF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN12-AR/EM-SX/SF.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN12-AR/EM-QP/QD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN12-AR/EM-QP/QD.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN12-AR/EM-SX/SD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN12-AR/EM-SX/SD.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN13-AR/EM-QP/QF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN13-AR/EM-QP/QF.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN13-AR/EM-SX/SF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN13-AR/EM-SX/SF.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN13-AR/EM-QP/QD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN13-AR/EM-QP/QD.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN13-AR/EM-SX/SD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN13-AR/EM-SX/SD.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN14-AR/EM-QP/QF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN14-AR/EM-QP/QF.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN14-AR/EM-SX/SF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN14-AR/EM-SX/SF.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN14-AR/EM-QP/QD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN14-AR/EM-QP/QD.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN14-AR/EM-SX/SD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN14-AR/EM-SX/SD.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN15-AR/EM-QP/QF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN15-AR/EM-QP/QF.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN15-AR/EM-SX/SF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN15-AR/EM-SX/SF.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN15-AR/EM-QP/QD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN15-AR/EM-QP/QD.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN15-AR/EM-SX/SD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN15-AR/EM-SX/SD.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN16-AR/EM-QP/QF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN16-AR/EM-QP/QF.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN16-AR/EM-SX/SF.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN16-AR/EM-SX/SF.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: AN16-AR/EM-QP/QD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN16-AR/EM-QP/QD.01/magnetic_strength + unit: 1/m +- type: tango.pyaml.static_catalog_entry + key: AN16-AR/EM-SX/SD.01/magnetic_strength + device: + type: tango.pyaml.attribute + attribute: AN16-AR/EM-SX/SD.01/magnetic_strength + unit: 1/m**2 +- type: tango.pyaml.static_catalog_entry + key: simulator/ringsimulator/ringsimulator/reference_frequency + device: + type: tango.pyaml.attribute + attribute: simulator/ringsimulator/ringsimulator/reference_frequency + unit: kHz +- type: tango.pyaml.static_catalog_entry + key: simulator/ringsimulator/ringsimulator/voltage + device: + type: tango.pyaml.attribute + attribute: simulator/ringsimulator/ringsimulator/voltage + unit: V +- type: tango.pyaml.static_catalog_entry + key: simulator/ringsimulator/ringsimulator/hor + device: + type: tango.pyaml.attribute + attribute: simulator/ringsimulator/ringsimulator/hor +- type: tango.pyaml.static_catalog_entry + key: simulator/ringsimulator/ringsimulator/vert + device: + type: tango.pyaml.attribute + attribute: simulator/ringsimulator/ringsimulator/vert diff --git a/tests/integration/start_dt4acc_twin.sh b/tests/integration/start_dt4acc_twin.sh new file mode 100644 index 000000000..7a01c08fa --- /dev/null +++ b/tests/integration/start_dt4acc_twin.sh @@ -0,0 +1,328 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +DEFAULT_IMAGE_URI="oras://gitlab-registry.synchrotron-soleil.fr/software-control-system/digitaltwin/dt4acc/dt4acc-soleil-twin/dt4acc-soleil-twin:latest" +READY_PATTERN="Calculation heartbeat: simulator/ringsimulator/ringsimulator reachable" + +usage() { + cat <<'EOF' +Usage: + start_dt4acc_twin.sh --accelerator-setup-file FILE --lattice-file FILE [options] + start_dt4acc_twin.sh FILE.json FILE.m [options] + +Required simulator input data: + --accelerator-setup-file FILE Accelerator setup JSON file passed to the twin. + --lattice-file FILE Lattice file passed to the twin. + +Options: + --tango-host HOST Tango database host. Default: localhost. + --tango-port PORT Tango database port. If omitted, the twin may choose it. + --image-uri URI Apptainer image URI. Default: dt4acc latest ORAS image. + --sif FILE Use a local SIF file instead of --image-uri. + --log-file FILE Log file path. Default: mktemp under /tmp. + --pid-file FILE Write the Apptainer process PID to FILE. + --timeout SECONDS Readiness timeout. Default: 900. + --detach Exit after readiness and leave the twin running. + -h, --help Show this help. + +The script prints "Ready to use" when the twin reaches the same heartbeat used by +the dt4acc-integration CI workflow. Keep this process running; press Ctrl-C to +stop the twin. With --detach, the script exits after readiness; use --pid-file +so a later step can stop the twin. +EOF +} + +accelerator_setup_file="" +lattice_file="" +tango_host="localhost" +tango_port="" +image_uri="${DEFAULT_IMAGE_URI}" +sif_file="" +log_file="" +pid_file="" +timeout_seconds="900" +detach="0" +positionals=() + +while (($#)); do + case "$1" in + --accelerator-setup-file|--setup-file) + accelerator_setup_file="${2:-}" + shift 2 + ;; + --lattice-file) + lattice_file="${2:-}" + shift 2 + ;; + --tango-host) + tango_host="${2:-}" + shift 2 + ;; + --tango-port) + tango_port="${2:-}" + shift 2 + ;; + --image-uri) + image_uri="${2:-}" + shift 2 + ;; + --sif) + sif_file="${2:-}" + shift 2 + ;; + --log-file) + log_file="${2:-}" + shift 2 + ;; + --pid-file) + pid_file="${2:-}" + shift 2 + ;; + --timeout) + timeout_seconds="${2:-}" + shift 2 + ;; + --detach) + detach="1" + shift + ;; + -h|--help) + usage + exit 0 + ;; + --) + shift + while (($#)); do + positionals+=("$1") + shift + done + ;; + -*) + echo "Unknown option: $1" >&2 + usage >&2 + exit 2 + ;; + *) + positionals+=("$1") + shift + ;; + esac +done + +if [[ -z "${accelerator_setup_file}" && ${#positionals[@]} -ge 1 ]]; then + accelerator_setup_file="${positionals[0]}" +fi + +if [[ -z "${lattice_file}" && ${#positionals[@]} -ge 2 ]]; then + lattice_file="${positionals[1]}" +fi + +if [[ ${#positionals[@]} -gt 2 ]]; then + echo "Too many positional arguments." >&2 + usage >&2 + exit 2 +fi + +if [[ -z "${accelerator_setup_file}" || -z "${lattice_file}" ]]; then + echo "Missing required simulator input data." >&2 + usage >&2 + exit 2 +fi + +if ! command -v apptainer >/dev/null 2>&1; then + echo "apptainer is required but was not found in PATH." >&2 + exit 127 +fi + +if ! command -v setsid >/dev/null 2>&1; then + echo "setsid is required but was not found in PATH." >&2 + exit 127 +fi + +if [[ ! "${timeout_seconds}" =~ ^[0-9]+$ || "${timeout_seconds}" -eq 0 ]]; then + echo "--timeout must be a positive integer." >&2 + exit 2 +fi + +if [[ -n "${tango_port}" && ! "${tango_port}" =~ ^[0-9]+$ ]]; then + echo "--tango-port must be an integer." >&2 + exit 2 +fi + +accelerator_setup_file="$(realpath "${accelerator_setup_file}")" +lattice_file="$(realpath "${lattice_file}")" + +if [[ ! -f "${accelerator_setup_file}" ]]; then + echo "Accelerator setup file not found: ${accelerator_setup_file}" >&2 + exit 2 +fi + +if [[ ! -f "${lattice_file}" ]]; then + echo "Lattice file not found: ${lattice_file}" >&2 + exit 2 +fi + +if [[ -n "${sif_file}" ]]; then + sif_file="$(realpath "${sif_file}")" + if [[ ! -f "${sif_file}" ]]; then + echo "SIF file not found: ${sif_file}" >&2 + exit 2 + fi + image_ref="${sif_file}" +else + image_ref="${image_uri}" +fi + +if [[ -z "${log_file}" ]]; then + log_file="$(mktemp -t dt4acc-twin.XXXXXX.log)" +else + log_file="$(realpath -m "${log_file}")" + mkdir -p "$(dirname "${log_file}")" + : >"${log_file}" +fi + +if [[ -n "${pid_file}" ]]; then + pid_file="$(realpath -m "${pid_file}")" + mkdir -p "$(dirname "${pid_file}")" +fi + +setup_dir="$(dirname "${accelerator_setup_file}")" +setup_base="$(basename "${accelerator_setup_file}")" +lattice_dir="$(dirname "${lattice_file}")" +lattice_base="$(basename "${lattice_file}")" + +bind_args=() +if [[ "${setup_dir}" == "${lattice_dir}" ]]; then + bind_args+=(--bind "${setup_dir}:/data:ro") + accelerator_setup_container="/data/${setup_base}" + lattice_container="/data/${lattice_base}" +else + bind_args+=(--bind "${setup_dir}:/accelerator-setup:ro") + bind_args+=(--bind "${lattice_dir}:/lattice:ro") + accelerator_setup_container="/accelerator-setup/${setup_base}" + lattice_container="/lattice/${lattice_base}" +fi + +if [[ -n "${tango_port}" ]]; then + requested_tango_host="${tango_host}:${tango_port}" +else + requested_tango_host="${tango_host}" +fi + +detected_tango_port="" +twin_pid="" + +cleanup() { + if [[ -n "${twin_pid}" ]] && kill -0 "${twin_pid}" 2>/dev/null; then + kill -- "-${twin_pid}" 2>/dev/null || kill "${twin_pid}" 2>/dev/null || true + for _ in {1..10}; do + if ! kill -0 "${twin_pid}" 2>/dev/null; then + return + fi + sleep 1 + done + kill -KILL -- "-${twin_pid}" 2>/dev/null || kill -KILL "${twin_pid}" 2>/dev/null || true + fi +} + +detect_tango_port() { + if [[ -n "${tango_port}" ]]; then + printf '%s\n' "${tango_port}" + return 0 + fi + + if [[ ! -s "${log_file}" ]]; then + return 1 + fi + + local detected + # The twin also logs an Mexec port for internal IPC; only the Tango host line is relevant here. + detected="$( + grep -Eai 'TANGO_HOST|tango[-_ ]host' "${log_file}" \ + | sed -nE 's/.*:([0-9]{2,5}).*/\1/p' \ + | tail -n 1 \ + || true + )" + + if [[ -n "${detected}" ]]; then + printf '%s\n' "${detected}" + return 0 + fi + + return 1 +} + +echo "Starting dt4acc twin" +echo " accelerator setup: ${accelerator_setup_file}" +echo " lattice file: ${lattice_file}" +echo " tango host: ${tango_host}" +echo " tango port: ${tango_port:-auto}" +echo " requested TANGO_HOST: ${requested_tango_host}" +echo " image: ${image_ref}" +echo " log file: ${log_file}" +if [[ -n "${pid_file}" ]]; then + echo " pid file: ${pid_file}" +fi + +trap cleanup INT TERM EXIT + +setsid env TANGO_HOST="${requested_tango_host}" apptainer run \ + "${bind_args[@]}" \ + "${image_ref}" \ + --force-kill-db \ + --tango-host "${requested_tango_host}" \ + --accelerator-setup-file "${accelerator_setup_container}" \ + --lattice-file "${lattice_container}" \ + >"${log_file}" 2>&1 & + +twin_pid="$!" +if [[ -n "${pid_file}" ]]; then + echo "${twin_pid}" >"${pid_file}" +fi +start_epoch="$(date +%s)" + +while true; do + if ! kill -0 "${twin_pid}" 2>/dev/null; then + echo "dt4acc twin exited before becoming ready. Last log lines:" >&2 + tail -n 200 "${log_file}" >&2 || true + exit 1 + fi + + if [[ -z "${detected_tango_port}" ]]; then + if detected_tango_port="$(detect_tango_port)"; then + echo "Detected Tango database port: ${detected_tango_port}" + echo "Effective TANGO_HOST: ${tango_host}:${detected_tango_port}" + else + detected_tango_port="" + fi + fi + + if grep -q "${READY_PATTERN}" "${log_file}"; then + if [[ -z "${detected_tango_port}" ]]; then + if detected_tango_port="$(detect_tango_port)"; then + echo "Detected Tango database port: ${detected_tango_port}" + echo "Effective TANGO_HOST: ${tango_host}:${detected_tango_port}" + else + echo "Warning: ready heartbeat found, but Tango database port was not detected in logs." >&2 + fi + fi + echo "Ready to use" + if [[ "${detach}" == "1" ]]; then + trap - EXIT + disown "${twin_pid}" 2>/dev/null || true + exit 0 + fi + break + fi + + now_epoch="$(date +%s)" + if (( now_epoch - start_epoch >= timeout_seconds )); then + echo "Timed out after ${timeout_seconds}s waiting for dt4acc twin readiness. Last log lines:" >&2 + tail -n 200 "${log_file}" >&2 || true + exit 1 + fi + + sleep 2 +done + +wait "${twin_pid}" diff --git a/tests/integration/test_dt4acc_twin_smoke.py b/tests/integration/test_dt4acc_twin_smoke.py new file mode 100644 index 000000000..f5d36bcad --- /dev/null +++ b/tests/integration/test_dt4acc_twin_smoke.py @@ -0,0 +1,51 @@ +import os +from pathlib import Path + +import numpy as np +import pytest + +QF_001 = "QF_001_f2013521b99e4a76bed1db7ec67464b0" +QF_001_STRENGTH = "AN01-AR/EM-QP/QF.01/magnetic_strength" +RF_REFERENCE_FREQUENCY = "simulator/ringsimulator/ringsimulator/reference_frequency" + +pytestmark = [ + pytest.mark.integration, + pytest.mark.skipif( + os.environ.get("PYAML_DT4ACC_INTEGRATION") != "1", + reason="dt4acc Apptainer integration test is opt-in", + ), +] + + +def _readback_value(device_access): + return float(device_access.readback()) + + +@pytest.mark.parametrize( + "config_file", + [ + Path(__file__).parent / "data" / "fodo_1gev_6d_pyaml.yaml", + Path(__file__).parent / "data" / "fodo_1gev_6d_pyaml-oa.yaml", + ], + ids=["tango-pyaml", "pyaml-cs-oa"], +) +def test_dt4acc_twin_accelerator_instantiates_and_reads_live_values(config_file: Path): + from pyaml.accelerator import Accelerator + + accelerator = Accelerator.load(str(config_file)) + + assert accelerator.live is not None + assert "live" in accelerator.controls() + + accelerator.live.get_rf_plant("RF") + + reference_frequency = _readback_value(accelerator.live.get_device_access(RF_REFERENCE_FREQUENCY)) + + assert np.isfinite(reference_frequency), f"RF reference frequency is not finite: {reference_frequency!r}" + assert reference_frequency > 0.0, f"RF reference frequency should be positive, got {reference_frequency!r}" + + accelerator.live.get_magnet(QF_001) + magnetic_strength = _readback_value(accelerator.live.get_device_access(QF_001_STRENGTH)) + + assert np.isfinite(magnetic_strength), f"{QF_001} magnetic strength is not finite: {magnetic_strength!r}" + assert magnetic_strength > 0.0, f"{QF_001} magnetic strength should be positive, got {magnetic_strength!r}"