diff --git a/pyaml/common/element_holder.py b/pyaml/common/element_holder.py
index 49a5811db..5b345ebdf 100644
--- a/pyaml/common/element_holder.py
+++ b/pyaml/common/element_holder.py
@@ -2,6 +2,8 @@
 Module handling element references for simulators and control system
 """
 
+import fnmatch
+import re
 from typing import TYPE_CHECKING
 
 from ..arrays.bpm_array import BPMArray
@@ -35,15 +37,24 @@ class ElementHolder(object):
 
     def __init__(self):
         # Device handle
-        self.__MAGNETS: dict = {}
-        self.__CFM_MAGNETS: dict = {}
-        self.__SERIALIZED_MAGNETS: dict = {}
-        self.__BPMS: dict = {}
-        self.__RFPLANT: dict = {}
-        self.__RFTRANSMITTER: dict = {}
-        self.__DIAG: dict = {}
-        self.__TUNING_TOOLS = {}
-        self.__ALL: dict = {}
+        self.__MAGNETS: dict[str, Magnet] = {}
+        self.__CFM_MAGNETS: dict[str, CombinedFunctionMagnet] = {}
+        self.__SERIALIZED_MAGNETS: dict[str, SerializedMagnets] = {}
+        self.__BPMS: dict[str, BPM] = {}
+        self.__RFPLANT: dict[str, RFPlant] = {}
+        self.__RFTRANSMITTER: dict[str, RFTransmitter] = {}
+        self.__DIAG: dict[str, Element] = {}
+        self.__TUNING_TOOLS: dict[str, Element] = {}
+        self.__ALL: dict[str, Element] = {}
+
+        self.__by_class_elements: dict[type, dict] = {
+            Magnet: self.__MAGNETS,
+            CombinedFunctionMagnet: self.__CFM_MAGNETS,
+            SerializedMagnets: self.__SERIALIZED_MAGNETS,
+            BPM: self.__BPMS,
+            RFPlant: self.__RFPLANT,
+            RFTransmitter: self.__RFTRANSMITTER,
+        }
 
         # Array handle
         self.__MAGNET_ARRAYS: dict = {}
@@ -62,24 +73,53 @@ def post_init(self):
     def fill_device(self, elements: list[Element]):
         raise PyAMLException("ElementHolder.fill_device() is not subclassed")
 
+    def find_elements(self, filter: str) -> list[str]:
+        if filter.startswith("re:"):
+            pattern = re.compile(rf"{filter[3:]}")
+            elements = [k for k in self.__ALL.keys() if pattern.fullmatch(k)]
+        elif "*" in filter or "?" in filter:
+            elements = [k for k in self.__ALL.keys() if fnmatch.fnmatch(k, filter)]
+        else:
+            elements = [filter]
+
+        return elements
+
     def fill_array(
-        self, arrayName: str, elementNames: list[str], get_func, constructor, ARR: dict
+        self,
+        array_name: str,
+        element_names: list[str],
+        get_func,
+        constructor,
+        ARR: dict,
     ):
+        # Handle wildcard, regexp and exclusion pattern
+        all_names: list[str] = []
+        excluded_names: list[str] = []
+        for name in element_names:
+            if name.startswith("~"):
+                names = self.find_elements(name[1:])
+                excluded_names.extend(names)
+            else:
+                names = self.find_elements(name)
+                all_names.extend(names)
+
+        [all_names.remove(name) for name in excluded_names]
+
         a = []
-        for name in elementNames:
+        for n in all_names:
             try:
-                m = get_func(name)
+                m = get_func(n)
             except Exception as err:
                 raise PyAMLException(
-                    f"{constructor.__name__} {arrayName} : {err} @index {len(a)}"
+                    f"{constructor.__name__} {array_name} : {err} @index {len(a)}"
                 ) from None
             if m in a:
                 raise PyAMLException(
-                    f"{constructor.__name__} {arrayName} : "
+                    f"{constructor.__name__} {array_name} : "
                     f"duplicate name {name} @index {len(a)}"
                 ) from None
             a.append(m)
-        ARR[arrayName] = constructor(arrayName, a)
+        ARR[array_name] = constructor(array_name, a)
 
     def __add(self, array, element: Element):
         if element.get_name() in self.__ALL:  # Ensure name unicity
@@ -187,7 +227,11 @@ def get_all_serialized_magnets(self) -> list[SerializedMagnets]:
 
     def fill_bpm_array(self, arrayName: str, elementNames: list[str]):
         self.fill_array(
-            arrayName, elementNames, self.get_bpm, BPMArray, self.__BPM_ARRAYS
+            arrayName,
+            elementNames,
+            self.get_bpm,
+            BPMArray,
+            self.__BPM_ARRAYS,
         )
 
     def get_bpm(self, name: str) -> Element:
diff --git a/tests/config/EBSOrbit.yaml b/tests/config/EBSOrbit.yaml
index 0ea959d61..466de1a97 100644
--- a/tests/config/EBSOrbit.yaml
+++ b/tests/config/EBSOrbit.yaml
@@ -15,1199 +15,19 @@ arrays:
   - type: pyaml.arrays.magnet
     name: HCorr
     elements:
-      - SH1A-C04-H
-      - SJ1A-C04-H
-      - SJ2A-C04-H
-      - SJ1B-C04-H
-      - SH2B-C04-H
-      - SJ1D-C04-H
-      - SJ2E-C04-H
-      - SJ1E-C04-H
-      - SH3E-C04-H
-      - SH1A-C05-H
-      - SD1A-C05-H
-      - SF2A-C05-H
-      - SD1B-C05-H
-      - SH2B-C05-H
-      - SD1D-C05-H
-      - SF2E-C05-H
-      - SD1E-C05-H
-      - SH3E-C05-H
-      - SH1A-C06-H
-      - SD1A-C06-H
-      - SF2A-C06-H
-      - SD1B-C06-H
-      - SH2B-C06-H
-      - SD1D-C06-H
-      - SF2E-C06-H
-      - SD1E-C06-H
-      - SH3E-C06-H
-      - SH1A-C07-H
-      - SD1A-C07-H
-      - SF2A-C07-H
-      - SD1B-C07-H
-      - SH2B-C07-H
-      - SD1D-C07-H
-      - SF2E-C07-H
-      - SD1E-C07-H
-      - SH3E-C07-H
-      - SH1A-C08-H
-      - SD1A-C08-H
-      - SF2A-C08-H
-      - SD1B-C08-H
-      - SH2B-C08-H
-      - SD1D-C08-H
-      - SF2E-C08-H
-      - SD1E-C08-H
-      - SH3E-C08-H
-      - SH1A-C09-H
-      - SD1A-C09-H
-      - SF2A-C09-H
-      - SD1B-C09-H
-      - SH2B-C09-H
-      - SD1D-C09-H
-      - SF2E-C09-H
-      - SD1E-C09-H
-      - SH3E-C09-H
-      - SH1A-C10-H
-      - SD1A-C10-H
-      - SF2A-C10-H
-      - SD1B-C10-H
-      - SH2B-C10-H
-      - SD1D-C10-H
-      - SF2E-C10-H
-      - SD1E-C10-H
-      - SH3E-C10-H
-      - SH1A-C11-H
-      - SD1A-C11-H
-      - SF2A-C11-H
-      - SD1B-C11-H
-      - SH2B-C11-H
-      - SD1D-C11-H
-      - SF2E-C11-H
-      - SD1E-C11-H
-      - SH3E-C11-H
-      - SH1A-C12-H
-      - SD1A-C12-H
-      - SF2A-C12-H
-      - SD1B-C12-H
-      - SH2B-C12-H
-      - SD1D-C12-H
-      - SF2E-C12-H
-      - SD1E-C12-H
-      - SH3E-C12-H
-      - SH1A-C13-H
-      - SD1A-C13-H
-      - SF2A-C13-H
-      - SD1B-C13-H
-      - SH2B-C13-H
-      - SD1D-C13-H
-      - SF2E-C13-H
-      - SD1E-C13-H
-      - SH3E-C13-H
-      - SH1A-C14-H
-      - SD1A-C14-H
-      - SF2A-C14-H
-      - SD1B-C14-H
-      - SH2B-C14-H
-      - SD1D-C14-H
-      - SF2E-C14-H
-      - SD1E-C14-H
-      - SH3E-C14-H
-      - SH1A-C15-H
-      - SD1A-C15-H
-      - SF2A-C15-H
-      - SD1B-C15-H
-      - SH2B-C15-H
-      - SD1D-C15-H
-      - SF2E-C15-H
-      - SD1E-C15-H
-      - SH3E-C15-H
-      - SH1A-C16-H
-      - SD1A-C16-H
-      - SF2A-C16-H
-      - SD1B-C16-H
-      - SH2B-C16-H
-      - SD1D-C16-H
-      - SF2E-C16-H
-      - SD1E-C16-H
-      - SH3E-C16-H
-      - SH1A-C17-H
-      - SD1A-C17-H
-      - SF2A-C17-H
-      - SD1B-C17-H
-      - SH2B-C17-H
-      - SD1D-C17-H
-      - SF2E-C17-H
-      - SD1E-C17-H
-      - SH3E-C17-H
-      - SH1A-C18-H
-      - SD1A-C18-H
-      - SF2A-C18-H
-      - SD1B-C18-H
-      - SH2B-C18-H
-      - SD1D-C18-H
-      - SF2E-C18-H
-      - SD1E-C18-H
-      - SH3E-C18-H
-      - SH1A-C19-H
-      - SD1A-C19-H
-      - SF2A-C19-H
-      - SD1B-C19-H
-      - SH2B-C19-H
-      - SD1D-C19-H
-      - SF2E-C19-H
-      - SD1E-C19-H
-      - SH3E-C19-H
-      - SH1A-C20-H
-      - SD1A-C20-H
-      - SF2A-C20-H
-      - SD1B-C20-H
-      - SH2B-C20-H
-      - SD1D-C20-H
-      - SF2E-C20-H
-      - SD1E-C20-H
-      - SH3E-C20-H
-      - SH1A-C21-H
-      - SD1A-C21-H
-      - SF2A-C21-H
-      - SD1B-C21-H
-      - SH2B-C21-H
-      - SD1D-C21-H
-      - SF2E-C21-H
-      - SD1E-C21-H
-      - SH3E-C21-H
-      - SH1A-C22-H
-      - SD1A-C22-H
-      - SF2A-C22-H
-      - SD1B-C22-H
-      - SH2B-C22-H
-      - SD1D-C22-H
-      - SF2E-C22-H
-      - SD1E-C22-H
-      - SH3E-C22-H
-      - SH1A-C23-H
-      - SD1A-C23-H
-      - SF2A-C23-H
-      - SD1B-C23-H
-      - SH2B-C23-H
-      - SD1D-C23-H
-      - SF2E-C23-H
-      - SD1E-C23-H
-      - SH3E-C23-H
-      - SH1A-C24-H
-      - SD1A-C24-H
-      - SF2A-C24-H
-      - SD1B-C24-H
-      - SH2B-C24-H
-      - SD1D-C24-H
-      - SF2E-C24-H
-      - SD1E-C24-H
-      - SH3E-C24-H
-      - SH1A-C25-H
-      - SD1A-C25-H
-      - SF2A-C25-H
-      - SD1B-C25-H
-      - SH2B-C25-H
-      - SD1D-C25-H
-      - SF2E-C25-H
-      - SD1E-C25-H
-      - SH3E-C25-H
-      - SH1A-C26-H
-      - SD1A-C26-H
-      - SF2A-C26-H
-      - SD1B-C26-H
-      - SH2B-C26-H
-      - SD1D-C26-H
-      - SF2E-C26-H
-      - SD1E-C26-H
-      - SH3E-C26-H
-      - SH1A-C27-H
-      - SD1A-C27-H
-      - SF2A-C27-H
-      - SD1B-C27-H
-      - SH2B-C27-H
-      - SD1D-C27-H
-      - SF2E-C27-H
-      - SD1E-C27-H
-      - SH3E-C27-H
-      - SH1A-C28-H
-      - SD1A-C28-H
-      - SF2A-C28-H
-      - SD1B-C28-H
-      - SH2B-C28-H
-      - SD1D-C28-H
-      - SF2E-C28-H
-      - SD1E-C28-H
-      - SH3E-C28-H
-      - SH1A-C29-H
-      - SD1A-C29-H
-      - SF2A-C29-H
-      - SD1B-C29-H
-      - SH2B-C29-H
-      - SD1D-C29-H
-      - SF2E-C29-H
-      - SD1E-C29-H
-      - SH3E-C29-H
-      - SH1A-C30-H
-      - SD1A-C30-H
-      - SF2A-C30-H
-      - SD1B-C30-H
-      - SH2B-C30-H
-      - SD1D-C30-H
-      - SF2E-C30-H
-      - SD1E-C30-H
-      - SH3E-C30-H
-      - SH1A-C31-H
-      - SD1A-C31-H
-      - SF2A-C31-H
-      - SD1B-C31-H
-      - SH2B-C31-H
-      - SD1D-C31-H
-      - SF2E-C31-H
-      - SD1E-C31-H
-      - SH3E-C31-H
-      - SH1A-C32-H
-      - SD1A-C32-H
-      - SF2A-C32-H
-      - SD1B-C32-H
-      - SH2B-C32-H
-      - SD1D-C32-H
-      - SF2E-C32-H
-      - SD1E-C32-H
-      - SH3E-C32-H
-      - SH1A-C01-H
-      - SD1A-C01-H
-      - SF2A-C01-H
-      - SD1B-C01-H
-      - SH2B-C01-H
-      - SD1D-C01-H
-      - SF2E-C01-H
-      - SD1E-C01-H
-      - SH3E-C01-H
-      - SH1A-C02-H
-      - SD1A-C02-H
-      - SF2A-C02-H
-      - SD1B-C02-H
-      - SH2B-C02-H
-      - SD1D-C02-H
-      - SF2E-C02-H
-      - SD1E-C02-H
-      - SH3E-C02-H
-      - SH1A-C03-H
-      - SI1A-C03-H
-      - SI2A-C03-H
-      - SI1B-C03-H
-      - SH2B-C03-H
-      - SI1D-C03-H
-      - SI2E-C03-H
-      - SI1E-C03-H
-      - SH3E-C03-H
+      - S*-H
   - type: pyaml.arrays.magnet
     name: VCorr
     elements:
-      - SH1A-C04-V
-      - SJ1A-C04-V
-      - SJ2A-C04-V
-      - SJ1B-C04-V
-      - SH2B-C04-V
-      - SJ1D-C04-V
-      - SJ2E-C04-V
-      - SJ1E-C04-V
-      - SH3E-C04-V
-      - SH1A-C05-V
-      - SD1A-C05-V
-      - SF2A-C05-V
-      - SD1B-C05-V
-      - SH2B-C05-V
-      - SD1D-C05-V
-      - SF2E-C05-V
-      - SD1E-C05-V
-      - SH3E-C05-V
-      - SH1A-C06-V
-      - SD1A-C06-V
-      - SF2A-C06-V
-      - SD1B-C06-V
-      - SH2B-C06-V
-      - SD1D-C06-V
-      - SF2E-C06-V
-      - SD1E-C06-V
-      - SH3E-C06-V
-      - SH1A-C07-V
-      - SD1A-C07-V
-      - SF2A-C07-V
-      - SD1B-C07-V
-      - SH2B-C07-V
-      - SD1D-C07-V
-      - SF2E-C07-V
-      - SD1E-C07-V
-      - SH3E-C07-V
-      - SH1A-C08-V
-      - SD1A-C08-V
-      - SF2A-C08-V
-      - SD1B-C08-V
-      - SH2B-C08-V
-      - SD1D-C08-V
-      - SF2E-C08-V
-      - SD1E-C08-V
-      - SH3E-C08-V
-      - SH1A-C09-V
-      - SD1A-C09-V
-      - SF2A-C09-V
-      - SD1B-C09-V
-      - SH2B-C09-V
-      - SD1D-C09-V
-      - SF2E-C09-V
-      - SD1E-C09-V
-      - SH3E-C09-V
-      - SH1A-C10-V
-      - SD1A-C10-V
-      - SF2A-C10-V
-      - SD1B-C10-V
-      - SH2B-C10-V
-      - SD1D-C10-V
-      - SF2E-C10-V
-      - SD1E-C10-V
-      - SH3E-C10-V
-      - SH1A-C11-V
-      - SD1A-C11-V
-      - SF2A-C11-V
-      - SD1B-C11-V
-      - SH2B-C11-V
-      - SD1D-C11-V
-      - SF2E-C11-V
-      - SD1E-C11-V
-      - SH3E-C11-V
-      - SH1A-C12-V
-      - SD1A-C12-V
-      - SF2A-C12-V
-      - SD1B-C12-V
-      - SH2B-C12-V
-      - SD1D-C12-V
-      - SF2E-C12-V
-      - SD1E-C12-V
-      - SH3E-C12-V
-      - SH1A-C13-V
-      - SD1A-C13-V
-      - SF2A-C13-V
-      - SD1B-C13-V
-      - SH2B-C13-V
-      - SD1D-C13-V
-      - SF2E-C13-V
-      - SD1E-C13-V
-      - SH3E-C13-V
-      - SH1A-C14-V
-      - SD1A-C14-V
-      - SF2A-C14-V
-      - SD1B-C14-V
-      - SH2B-C14-V
-      - SD1D-C14-V
-      - SF2E-C14-V
-      - SD1E-C14-V
-      - SH3E-C14-V
-      - SH1A-C15-V
-      - SD1A-C15-V
-      - SF2A-C15-V
-      - SD1B-C15-V
-      - SH2B-C15-V
-      - SD1D-C15-V
-      - SF2E-C15-V
-      - SD1E-C15-V
-      - SH3E-C15-V
-      - SH1A-C16-V
-      - SD1A-C16-V
-      - SF2A-C16-V
-      - SD1B-C16-V
-      - SH2B-C16-V
-      - SD1D-C16-V
-      - SF2E-C16-V
-      - SD1E-C16-V
-      - SH3E-C16-V
-      - SH1A-C17-V
-      - SD1A-C17-V
-      - SF2A-C17-V
-      - SD1B-C17-V
-      - SH2B-C17-V
-      - SD1D-C17-V
-      - SF2E-C17-V
-      - SD1E-C17-V
-      - SH3E-C17-V
-      - SH1A-C18-V
-      - SD1A-C18-V
-      - SF2A-C18-V
-      - SD1B-C18-V
-      - SH2B-C18-V
-      - SD1D-C18-V
-      - SF2E-C18-V
-      - SD1E-C18-V
-      - SH3E-C18-V
-      - SH1A-C19-V
-      - SD1A-C19-V
-      - SF2A-C19-V
-      - SD1B-C19-V
-      - SH2B-C19-V
-      - SD1D-C19-V
-      - SF2E-C19-V
-      - SD1E-C19-V
-      - SH3E-C19-V
-      - SH1A-C20-V
-      - SD1A-C20-V
-      - SF2A-C20-V
-      - SD1B-C20-V
-      - SH2B-C20-V
-      - SD1D-C20-V
-      - SF2E-C20-V
-      - SD1E-C20-V
-      - SH3E-C20-V
-      - SH1A-C21-V
-      - SD1A-C21-V
-      - SF2A-C21-V
-      - SD1B-C21-V
-      - SH2B-C21-V
-      - SD1D-C21-V
-      - SF2E-C21-V
-      - SD1E-C21-V
-      - SH3E-C21-V
-      - SH1A-C22-V
-      - SD1A-C22-V
-      - SF2A-C22-V
-      - SD1B-C22-V
-      - SH2B-C22-V
-      - SD1D-C22-V
-      - SF2E-C22-V
-      - SD1E-C22-V
-      - SH3E-C22-V
-      - SH1A-C23-V
-      - SD1A-C23-V
-      - SF2A-C23-V
-      - SD1B-C23-V
-      - SH2B-C23-V
-      - SD1D-C23-V
-      - SF2E-C23-V
-      - SD1E-C23-V
-      - SH3E-C23-V
-      - SH1A-C24-V
-      - SD1A-C24-V
-      - SF2A-C24-V
-      - SD1B-C24-V
-      - SH2B-C24-V
-      - SD1D-C24-V
-      - SF2E-C24-V
-      - SD1E-C24-V
-      - SH3E-C24-V
-      - SH1A-C25-V
-      - SD1A-C25-V
-      - SF2A-C25-V
-      - SD1B-C25-V
-      - SH2B-C25-V
-      - SD1D-C25-V
-      - SF2E-C25-V
-      - SD1E-C25-V
-      - SH3E-C25-V
-      - SH1A-C26-V
-      - SD1A-C26-V
-      - SF2A-C26-V
-      - SD1B-C26-V
-      - SH2B-C26-V
-      - SD1D-C26-V
-      - SF2E-C26-V
-      - SD1E-C26-V
-      - SH3E-C26-V
-      - SH1A-C27-V
-      - SD1A-C27-V
-      - SF2A-C27-V
-      - SD1B-C27-V
-      - SH2B-C27-V
-      - SD1D-C27-V
-      - SF2E-C27-V
-      - SD1E-C27-V
-      - SH3E-C27-V
-      - SH1A-C28-V
-      - SD1A-C28-V
-      - SF2A-C28-V
-      - SD1B-C28-V
-      - SH2B-C28-V
-      - SD1D-C28-V
-      - SF2E-C28-V
-      - SD1E-C28-V
-      - SH3E-C28-V
-      - SH1A-C29-V
-      - SD1A-C29-V
-      - SF2A-C29-V
-      - SD1B-C29-V
-      - SH2B-C29-V
-      - SD1D-C29-V
-      - SF2E-C29-V
-      - SD1E-C29-V
-      - SH3E-C29-V
-      - SH1A-C30-V
-      - SD1A-C30-V
-      - SF2A-C30-V
-      - SD1B-C30-V
-      - SH2B-C30-V
-      - SD1D-C30-V
-      - SF2E-C30-V
-      - SD1E-C30-V
-      - SH3E-C30-V
-      - SH1A-C31-V
-      - SD1A-C31-V
-      - SF2A-C31-V
-      - SD1B-C31-V
-      - SH2B-C31-V
-      - SD1D-C31-V
-      - SF2E-C31-V
-      - SD1E-C31-V
-      - SH3E-C31-V
-      - SH1A-C32-V
-      - SD1A-C32-V
-      - SF2A-C32-V
-      - SD1B-C32-V
-      - SH2B-C32-V
-      - SD1D-C32-V
-      - SF2E-C32-V
-      - SD1E-C32-V
-      - SH3E-C32-V
-      - SH1A-C01-V
-      - SD1A-C01-V
-      - SF2A-C01-V
-      - SD1B-C01-V
-      - SH2B-C01-V
-      - SD1D-C01-V
-      - SF2E-C01-V
-      - SD1E-C01-V
-      - SH3E-C01-V
-      - SH1A-C02-V
-      - SD1A-C02-V
-      - SF2A-C02-V
-      - SD1B-C02-V
-      - SH2B-C02-V
-      - SD1D-C02-V
-      - SF2E-C02-V
-      - SD1E-C02-V
-      - SH3E-C02-V
-      - SH1A-C03-V
-      - SI1A-C03-V
-      - SI2A-C03-V
-      - SI1B-C03-V
-      - SH2B-C03-V
-      - SI1D-C03-V
-      - SI2E-C03-V
-      - SI1E-C03-V
-      - SH3E-C03-V
+      - S*-V
   - type: pyaml.arrays.magnet
     name: Skews
     elements:
-      - SH1A-C04-SQ
-      - SJ1A-C04-SQ
-      - SJ2A-C04-SQ
-      - SJ1B-C04-SQ
-      - SH2B-C04-SQ
-      - SJ1D-C04-SQ
-      - SJ2E-C04-SQ
-      - SJ1E-C04-SQ
-      - SH3E-C04-SQ
-      - SH1A-C05-SQ
-      - SD1A-C05-SQ
-      - SF2A-C05-SQ
-      - SD1B-C05-SQ
-      - SH2B-C05-SQ
-      - SD1D-C05-SQ
-      - SF2E-C05-SQ
-      - SD1E-C05-SQ
-      - SH3E-C05-SQ
-      - SH1A-C06-SQ
-      - SD1A-C06-SQ
-      - SF2A-C06-SQ
-      - SD1B-C06-SQ
-      - SH2B-C06-SQ
-      - SD1D-C06-SQ
-      - SF2E-C06-SQ
-      - SD1E-C06-SQ
-      - SH3E-C06-SQ
-      - SH1A-C07-SQ
-      - SD1A-C07-SQ
-      - SF2A-C07-SQ
-      - SD1B-C07-SQ
-      - SH2B-C07-SQ
-      - SD1D-C07-SQ
-      - SF2E-C07-SQ
-      - SD1E-C07-SQ
-      - SH3E-C07-SQ
-      - SH1A-C08-SQ
-      - SD1A-C08-SQ
-      - SF2A-C08-SQ
-      - SD1B-C08-SQ
-      - SH2B-C08-SQ
-      - SD1D-C08-SQ
-      - SF2E-C08-SQ
-      - SD1E-C08-SQ
-      - SH3E-C08-SQ
-      - SH1A-C09-SQ
-      - SD1A-C09-SQ
-      - SF2A-C09-SQ
-      - SD1B-C09-SQ
-      - SH2B-C09-SQ
-      - SD1D-C09-SQ
-      - SF2E-C09-SQ
-      - SD1E-C09-SQ
-      - SH3E-C09-SQ
-      - SH1A-C10-SQ
-      - SD1A-C10-SQ
-      - SF2A-C10-SQ
-      - SD1B-C10-SQ
-      - SH2B-C10-SQ
-      - SD1D-C10-SQ
-      - SF2E-C10-SQ
-      - SD1E-C10-SQ
-      - SH3E-C10-SQ
-      - SH1A-C11-SQ
-      - SD1A-C11-SQ
-      - SF2A-C11-SQ
-      - SD1B-C11-SQ
-      - SH2B-C11-SQ
-      - SD1D-C11-SQ
-      - SF2E-C11-SQ
-      - SD1E-C11-SQ
-      - SH3E-C11-SQ
-      - SH1A-C12-SQ
-      - SD1A-C12-SQ
-      - SF2A-C12-SQ
-      - SD1B-C12-SQ
-      - SH2B-C12-SQ
-      - SD1D-C12-SQ
-      - SF2E-C12-SQ
-      - SD1E-C12-SQ
-      - SH3E-C12-SQ
-      - SH1A-C13-SQ
-      - SD1A-C13-SQ
-      - SF2A-C13-SQ
-      - SD1B-C13-SQ
-      - SH2B-C13-SQ
-      - SD1D-C13-SQ
-      - SF2E-C13-SQ
-      - SD1E-C13-SQ
-      - SH3E-C13-SQ
-      - SH1A-C14-SQ
-      - SD1A-C14-SQ
-      - SF2A-C14-SQ
-      - SD1B-C14-SQ
-      - SH2B-C14-SQ
-      - SD1D-C14-SQ
-      - SF2E-C14-SQ
-      - SD1E-C14-SQ
-      - SH3E-C14-SQ
-      - SH1A-C15-SQ
-      - SD1A-C15-SQ
-      - SF2A-C15-SQ
-      - SD1B-C15-SQ
-      - SH2B-C15-SQ
-      - SD1D-C15-SQ
-      - SF2E-C15-SQ
-      - SD1E-C15-SQ
-      - SH3E-C15-SQ
-      - SH1A-C16-SQ
-      - SD1A-C16-SQ
-      - SF2A-C16-SQ
-      - SD1B-C16-SQ
-      - SH2B-C16-SQ
-      - SD1D-C16-SQ
-      - SF2E-C16-SQ
-      - SD1E-C16-SQ
-      - SH3E-C16-SQ
-      - SH1A-C17-SQ
-      - SD1A-C17-SQ
-      - SF2A-C17-SQ
-      - SD1B-C17-SQ
-      - SH2B-C17-SQ
-      - SD1D-C17-SQ
-      - SF2E-C17-SQ
-      - SD1E-C17-SQ
-      - SH3E-C17-SQ
-      - SH1A-C18-SQ
-      - SD1A-C18-SQ
-      - SF2A-C18-SQ
-      - SD1B-C18-SQ
-      - SH2B-C18-SQ
-      - SD1D-C18-SQ
-      - SF2E-C18-SQ
-      - SD1E-C18-SQ
-      - SH3E-C18-SQ
-      - SH1A-C19-SQ
-      - SD1A-C19-SQ
-      - SF2A-C19-SQ
-      - SD1B-C19-SQ
-      - SH2B-C19-SQ
-      - SD1D-C19-SQ
-      - SF2E-C19-SQ
-      - SD1E-C19-SQ
-      - SH3E-C19-SQ
-      - SH1A-C20-SQ
-      - SD1A-C20-SQ
-      - SF2A-C20-SQ
-      - SD1B-C20-SQ
-      - SH2B-C20-SQ
-      - SD1D-C20-SQ
-      - SF2E-C20-SQ
-      - SD1E-C20-SQ
-      - SH3E-C20-SQ
-      - SH1A-C21-SQ
-      - SD1A-C21-SQ
-      - SF2A-C21-SQ
-      - SD1B-C21-SQ
-      - SH2B-C21-SQ
-      - SD1D-C21-SQ
-      - SF2E-C21-SQ
-      - SD1E-C21-SQ
-      - SH3E-C21-SQ
-      - SH1A-C22-SQ
-      - SD1A-C22-SQ
-      - SF2A-C22-SQ
-      - SD1B-C22-SQ
-      - SH2B-C22-SQ
-      - SD1D-C22-SQ
-      - SF2E-C22-SQ
-      - SD1E-C22-SQ
-      - SH3E-C22-SQ
-      - SH1A-C23-SQ
-      - SD1A-C23-SQ
-      - SF2A-C23-SQ
-      - SD1B-C23-SQ
-      - SH2B-C23-SQ
-      - SD1D-C23-SQ
-      - SF2E-C23-SQ
-      - SD1E-C23-SQ
-      - SH3E-C23-SQ
-      - SH1A-C24-SQ
-      - SD1A-C24-SQ
-      - SF2A-C24-SQ
-      - SD1B-C24-SQ
-      - SH2B-C24-SQ
-      - SD1D-C24-SQ
-      - SF2E-C24-SQ
-      - SD1E-C24-SQ
-      - SH3E-C24-SQ
-      - SH1A-C25-SQ
-      - SD1A-C25-SQ
-      - SF2A-C25-SQ
-      - SD1B-C25-SQ
-      - SH2B-C25-SQ
-      - SD1D-C25-SQ
-      - SF2E-C25-SQ
-      - SD1E-C25-SQ
-      - SH3E-C25-SQ
-      - SH1A-C26-SQ
-      - SD1A-C26-SQ
-      - SF2A-C26-SQ
-      - SD1B-C26-SQ
-      - SH2B-C26-SQ
-      - SD1D-C26-SQ
-      - SF2E-C26-SQ
-      - SD1E-C26-SQ
-      - SH3E-C26-SQ
-      - SH1A-C27-SQ
-      - SD1A-C27-SQ
-      - SF2A-C27-SQ
-      - SD1B-C27-SQ
-      - SH2B-C27-SQ
-      - SD1D-C27-SQ
-      - SF2E-C27-SQ
-      - SD1E-C27-SQ
-      - SH3E-C27-SQ
-      - SH1A-C28-SQ
-      - SD1A-C28-SQ
-      - SF2A-C28-SQ
-      - SD1B-C28-SQ
-      - SH2B-C28-SQ
-      - SD1D-C28-SQ
-      - SF2E-C28-SQ
-      - SD1E-C28-SQ
-      - SH3E-C28-SQ
-      - SH1A-C29-SQ
-      - SD1A-C29-SQ
-      - SF2A-C29-SQ
-      - SD1B-C29-SQ
-      - SH2B-C29-SQ
-      - SD1D-C29-SQ
-      - SF2E-C29-SQ
-      - SD1E-C29-SQ
-      - SH3E-C29-SQ
-      - SH1A-C30-SQ
-      - SD1A-C30-SQ
-      - SF2A-C30-SQ
-      - SD1B-C30-SQ
-      - SH2B-C30-SQ
-      - SD1D-C30-SQ
-      - SF2E-C30-SQ
-      - SD1E-C30-SQ
-      - SH3E-C30-SQ
-      - SH1A-C31-SQ
-      - SD1A-C31-SQ
-      - SF2A-C31-SQ
-      - SD1B-C31-SQ
-      - SH2B-C31-SQ
-      - SD1D-C31-SQ
-      - SF2E-C31-SQ
-      - SD1E-C31-SQ
-      - SH3E-C31-SQ
-      - SH1A-C32-SQ
-      - SD1A-C32-SQ
-      - SF2A-C32-SQ
-      - SD1B-C32-SQ
-      - SH2B-C32-SQ
-      - SD1D-C32-SQ
-      - SF2E-C32-SQ
-      - SD1E-C32-SQ
-      - SH3E-C32-SQ
-      - SH1A-C01-SQ
-      - SD1A-C01-SQ
-      - SF2A-C01-SQ
-      - SD1B-C01-SQ
-      - SH2B-C01-SQ
-      - SD1D-C01-SQ
-      - SF2E-C01-SQ
-      - SD1E-C01-SQ
-      - SH3E-C01-SQ
-      - SH1A-C02-SQ
-      - SD1A-C02-SQ
-      - SF2A-C02-SQ
-      - SD1B-C02-SQ
-      - SH2B-C02-SQ
-      - SD1D-C02-SQ
-      - SF2E-C02-SQ
-      - SD1E-C02-SQ
-      - SH3E-C02-SQ
-      - SH1A-C03-SQ
-      - SI1A-C03-SQ
-      - SI2A-C03-SQ
-      - SI1B-C03-SQ
-      - SH2B-C03-SQ
-      - SI1D-C03-SQ
-      - SI2E-C03-SQ
-      - SI1E-C03-SQ
-      - SH3E-C03-SQ
+      - S*-SQ
   - type: pyaml.arrays.bpm
     name: BPM
     elements:
-      - BPM_C04-01
-      - BPM_C04-02
-      - BPM_C04-03
-      - BPM_C04-04
-      - BPM_C04-05
-      - BPM_C04-06
-      - BPM_C04-07
-      - BPM_C04-08
-      - BPM_C04-09
-      - BPM_C04-10
-      - BPM_C05-01
-      - BPM_C05-02
-      - BPM_C05-03
-      - BPM_C05-04
-      - BPM_C05-05
-      - BPM_C05-06
-      - BPM_C05-07
-      - BPM_C05-08
-      - BPM_C05-09
-      - BPM_C05-10
-      - BPM_C06-01
-      - BPM_C06-02
-      - BPM_C06-03
-      - BPM_C06-04
-      - BPM_C06-05
-      - BPM_C06-06
-      - BPM_C06-07
-      - BPM_C06-08
-      - BPM_C06-09
-      - BPM_C06-10
-      - BPM_C07-01
-      - BPM_C07-02
-      - BPM_C07-03
-      - BPM_C07-04
-      - BPM_C07-05
-      - BPM_C07-06
-      - BPM_C07-07
-      - BPM_C07-08
-      - BPM_C07-09
-      - BPM_C07-10
-      - BPM_C08-01
-      - BPM_C08-02
-      - BPM_C08-03
-      - BPM_C08-04
-      - BPM_C08-05
-      - BPM_C08-06
-      - BPM_C08-07
-      - BPM_C08-08
-      - BPM_C08-09
-      - BPM_C08-10
-      - BPM_C09-01
-      - BPM_C09-02
-      - BPM_C09-03
-      - BPM_C09-04
-      - BPM_C09-05
-      - BPM_C09-06
-      - BPM_C09-07
-      - BPM_C09-08
-      - BPM_C09-09
-      - BPM_C09-10
-      - BPM_C10-01
-      - BPM_C10-02
-      - BPM_C10-03
-      - BPM_C10-04
-      - BPM_C10-05
-      - BPM_C10-06
-      - BPM_C10-07
-      - BPM_C10-08
-      - BPM_C10-09
-      - BPM_C10-10
-      - BPM_C11-01
-      - BPM_C11-02
-      - BPM_C11-03
-      - BPM_C11-04
-      - BPM_C11-05
-      - BPM_C11-06
-      - BPM_C11-07
-      - BPM_C11-08
-      - BPM_C11-09
-      - BPM_C11-10
-      - BPM_C12-01
-      - BPM_C12-02
-      - BPM_C12-03
-      - BPM_C12-04
-      - BPM_C12-05
-      - BPM_C12-06
-      - BPM_C12-07
-      - BPM_C12-08
-      - BPM_C12-09
-      - BPM_C12-10
-      - BPM_C13-01
-      - BPM_C13-02
-      - BPM_C13-03
-      - BPM_C13-04
-      - BPM_C13-05
-      - BPM_C13-06
-      - BPM_C13-07
-      - BPM_C13-08
-      - BPM_C13-09
-      - BPM_C13-10
-      - BPM_C14-01
-      - BPM_C14-02
-      - BPM_C14-03
-      - BPM_C14-04
-      - BPM_C14-05
-      - BPM_C14-06
-      - BPM_C14-07
-      - BPM_C14-08
-      - BPM_C14-09
-      - BPM_C14-10
-      - BPM_C15-01
-      - BPM_C15-02
-      - BPM_C15-03
-      - BPM_C15-04
-      - BPM_C15-05
-      - BPM_C15-06
-      - BPM_C15-07
-      - BPM_C15-08
-      - BPM_C15-09
-      - BPM_C15-10
-      - BPM_C16-01
-      - BPM_C16-02
-      - BPM_C16-03
-      - BPM_C16-04
-      - BPM_C16-05
-      - BPM_C16-06
-      - BPM_C16-07
-      - BPM_C16-08
-      - BPM_C16-09
-      - BPM_C16-10
-      - BPM_C17-01
-      - BPM_C17-02
-      - BPM_C17-03
-      - BPM_C17-04
-      - BPM_C17-05
-      - BPM_C17-06
-      - BPM_C17-07
-      - BPM_C17-08
-      - BPM_C17-09
-      - BPM_C17-10
-      - BPM_C18-01
-      - BPM_C18-02
-      - BPM_C18-03
-      - BPM_C18-04
-      - BPM_C18-05
-      - BPM_C18-06
-      - BPM_C18-07
-      - BPM_C18-08
-      - BPM_C18-09
-      - BPM_C18-10
-      - BPM_C19-01
-      - BPM_C19-02
-      - BPM_C19-03
-      - BPM_C19-04
-      - BPM_C19-05
-      - BPM_C19-06
-      - BPM_C19-07
-      - BPM_C19-08
-      - BPM_C19-09
-      - BPM_C19-10
-      - BPM_C20-01
-      - BPM_C20-02
-      - BPM_C20-03
-      - BPM_C20-04
-      - BPM_C20-05
-      - BPM_C20-06
-      - BPM_C20-07
-      - BPM_C20-08
-      - BPM_C20-09
-      - BPM_C20-10
-      - BPM_C21-01
-      - BPM_C21-02
-      - BPM_C21-03
-      - BPM_C21-04
-      - BPM_C21-05
-      - BPM_C21-06
-      - BPM_C21-07
-      - BPM_C21-08
-      - BPM_C21-09
-      - BPM_C21-10
-      - BPM_C22-01
-      - BPM_C22-02
-      - BPM_C22-03
-      - BPM_C22-04
-      - BPM_C22-05
-      - BPM_C22-06
-      - BPM_C22-07
-      - BPM_C22-08
-      - BPM_C22-09
-      - BPM_C22-10
-      - BPM_C23-01
-      - BPM_C23-02
-      - BPM_C23-03
-      - BPM_C23-04
-      - BPM_C23-05
-      - BPM_C23-06
-      - BPM_C23-07
-      - BPM_C23-08
-      - BPM_C23-09
-      - BPM_C23-10
-      - BPM_C24-01
-      - BPM_C24-02
-      - BPM_C24-03
-      - BPM_C24-04
-      - BPM_C24-05
-      - BPM_C24-06
-      - BPM_C24-07
-      - BPM_C24-08
-      - BPM_C24-09
-      - BPM_C24-10
-      - BPM_C25-01
-      - BPM_C25-02
-      - BPM_C25-03
-      - BPM_C25-04
-      - BPM_C25-05
-      - BPM_C25-06
-      - BPM_C25-07
-      - BPM_C25-08
-      - BPM_C25-09
-      - BPM_C25-10
-      - BPM_C26-01
-      - BPM_C26-02
-      - BPM_C26-03
-      - BPM_C26-04
-      - BPM_C26-05
-      - BPM_C26-06
-      - BPM_C26-07
-      - BPM_C26-08
-      - BPM_C26-09
-      - BPM_C26-10
-      - BPM_C27-01
-      - BPM_C27-02
-      - BPM_C27-03
-      - BPM_C27-04
-      - BPM_C27-05
-      - BPM_C27-06
-      - BPM_C27-07
-      - BPM_C27-08
-      - BPM_C27-09
-      - BPM_C27-10
-      - BPM_C28-01
-      - BPM_C28-02
-      - BPM_C28-03
-      - BPM_C28-04
-      - BPM_C28-05
-      - BPM_C28-06
-      - BPM_C28-07
-      - BPM_C28-08
-      - BPM_C28-09
-      - BPM_C28-10
-      - BPM_C29-01
-      - BPM_C29-02
-      - BPM_C29-03
-      - BPM_C29-04
-      - BPM_C29-05
-      - BPM_C29-06
-      - BPM_C29-07
-      - BPM_C29-08
-      - BPM_C29-09
-      - BPM_C29-10
-      - BPM_C30-01
-      - BPM_C30-02
-      - BPM_C30-03
-      - BPM_C30-04
-      - BPM_C30-05
-      - BPM_C30-06
-      - BPM_C30-07
-      - BPM_C30-08
-      - BPM_C30-09
-      - BPM_C30-10
-      - BPM_C31-01
-      - BPM_C31-02
-      - BPM_C31-03
-      - BPM_C31-04
-      - BPM_C31-05
-      - BPM_C31-06
-      - BPM_C31-07
-      - BPM_C31-08
-      - BPM_C31-09
-      - BPM_C31-10
-      - BPM_C32-01
-      - BPM_C32-02
-      - BPM_C32-03
-      - BPM_C32-04
-      - BPM_C32-05
-      - BPM_C32-06
-      - BPM_C32-07
-      - BPM_C32-08
-      - BPM_C32-09
-      - BPM_C32-10
-      - BPM_C01-01
-      - BPM_C01-02
-      - BPM_C01-03
-      - BPM_C01-04
-      - BPM_C01-05
-      - BPM_C01-06
-      - BPM_C01-07
-      - BPM_C01-08
-      - BPM_C01-09
-      - BPM_C01-10
-      - BPM_C02-01
-      - BPM_C02-02
-      - BPM_C02-03
-      - BPM_C02-04
-      - BPM_C02-05
-      - BPM_C02-06
-      - BPM_C02-07
-      - BPM_C02-08
-      - BPM_C02-09
-      - BPM_C02-10
-      - BPM_C03-01
-      - BPM_C03-02
-      - BPM_C03-03
-      - BPM_C03-04
-      - BPM_C03-05
-      - BPM_C03-06
-      - BPM_C03-07
-      - BPM_C03-08
-      - BPM_C03-09
-      - BPM_C03-10
+      - BPM*
 devices:
 - type: pyaml.diagnostics.tune_monitor
   name: BETATRON_TUNE
diff --git a/tests/config/EBSTune-patterns.yaml b/tests/config/EBSTune-patterns.yaml
new file mode 100644
index 000000000..bb877d652
--- /dev/null
+++ b/tests/config/EBSTune-patterns.yaml
@@ -0,0 +1,1781 @@
+type: pyaml.accelerator
+facility: ESRF
+machine: sr
+energy: 6e9
+description: "Accelerator configuration for EBS storage ring"
+simulators:
+  - type: pyaml.lattice.simulator
+    description: "EBS lattice"
+    lattice: sr/lattices/ebs.mat
+    name: design
+controls:
+  - type: tango.pyaml.controlsystem
+    tango_host: ebs-simu-3:10000
+    name: live
+data_folder: /data/store
+arrays:
+  - type: pyaml.arrays.magnet
+    name: QForTune
+    elements:
+      - QD2*
+      - QF1*
+  - type: pyaml.arrays.magnet
+    name: QForTest
+    elements:
+      - QD2*
+      - QF1*
+      - ~QF1E-C05
+      - ~Q???-C06
+devices:
+- type: pyaml.magnet.quadrupole
+  description: "QF1E-C04 quadrupole"
+  name: QF1E-C04
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00054
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c04-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C05
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.996841
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c05-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C05
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00191
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c05-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C06
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.0003
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c06-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C06
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.997615
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c06-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C07
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998152
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c07-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C07
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00262
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c07-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C08
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00319
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c08-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C08
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.996180929
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c08-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C09
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00206
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c09-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C09
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999285
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c09-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C10
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00232
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c10-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C10
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998212
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c10-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C11
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999225
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c11-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C11
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998033
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c11-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C12
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998748
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c12-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C12
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.0023
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c12-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C13
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00337
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c13-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C13
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00403
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c13-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C14
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00182
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c14-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C14
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998303
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c14-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C15
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998748
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c15-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C15
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.994098
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c15-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C16
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00232
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c16-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C16
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.99884
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c16-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C17
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.0079
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c17-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C17
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999523
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c17-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C18
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c18-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C18
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999854
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c18-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C19
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.99845
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c19-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C19
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c19-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C20
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00095
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c20-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C20
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.996753
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c20-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C21
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00334
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c21-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C21
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.997707
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c21-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C22
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00152
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c22-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C22
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998124
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c22-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C23
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.996662
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c23-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C23
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.0017
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c23-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C24
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999642
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c24-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C24
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00042
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c24-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C25
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00471
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c25-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C25
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00393
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c25-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C26
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.992906
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c26-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C26
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00268
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c26-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C27
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00248
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c27-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C27
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00203
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c27-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C28
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998030791
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c28-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C28
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00232
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c28-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C29
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.995052
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c29-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C29
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00155
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c29-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C30
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998271
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c30-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C30
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999702
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c30-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C31
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998005
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c31-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C31
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999463
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c31-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C32
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.997794
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c32-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C32
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00203
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c32-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C01
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00504
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c01-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C01
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998212
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c01-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C02
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.0037
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c02-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C02
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00093
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c02-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C03
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.0025
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c03-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C04
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999305341
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c04-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C05
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.997452918
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c05-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C05
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.997993208
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c05-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C06
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.006031322
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c06-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C06
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998547233
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c06-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C07
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.002327856
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c07-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C07
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.000154369
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c07-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C08
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.009580478
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c08-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C08
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00447669
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c08-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C09
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.0015563
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c09-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C09
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.997221365
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c09-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C10
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.005954167
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c10-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C10
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.006725723
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c10-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C11
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.994535144
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c11-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C11
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999550256
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c11-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C12
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.001479145
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c12-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C12
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.000321811
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c12-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C13
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.006715036
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c13-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C13
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.0036395
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c13-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C14
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.997684471
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c14-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C14
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.000385922
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c14-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C15
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999010167
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c15-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C15
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998392922
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c15-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C16
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999318789
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c16-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C16
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.996926967
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c16-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C17
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.000849027
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c17-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C17
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.003392444
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c17-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C18
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.001312133
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c18-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C18
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.005402902
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c18-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C19
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.995846789
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c19-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C19
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.005877011
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c19-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C20
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.001016211
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c20-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C20
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999010167
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c20-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C21
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.007265811
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c21-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C21
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998238611
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c21-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C22
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998161456
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c22-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C22
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.004642522
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c22-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C23
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.001479145
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c23-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C23
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.001942078
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c23-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C24
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999087322
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c24-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C24
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998547233
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c24-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C25
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.001698055
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c25-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C25
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999704567
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c25-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C26
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999164478
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c26-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C26
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.000694659
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c26-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C27
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.99945971
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c27-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C27
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999922816
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c27-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C28
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999922816
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c28-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C28
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.997838839
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c28-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C29
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.003318926
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c29-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C29
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.004179589
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c29-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C30
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999010167
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c30-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C30
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.9987787
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c30-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C31
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.004411056
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c31-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C31
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.0029451
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c31-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C32
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.009426167
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c32-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C32
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.0050283
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c32-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C01
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998533498
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c01-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C01
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.003485189
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c01-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C02
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.001389318
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c02-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C02
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.006108478
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c02-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C03
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.002096389
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c03-a/current
+      unit: A
+- type: pyaml.diagnostics.tune_monitor
+  name: BETATRON_TUNE
+  tune_h:
+    type: tango.pyaml.attribute_read_only
+    attribute: srdiag/beam-tune/main/Qh
+    unit: mm
+  tune_v:
+    type: tango.pyaml.attribute_read_only
+    attribute: srdiag/beam-tune/main/Qv
+    unit: mm
+- type: pyaml.tuning_tools.tune
+  name: DEFAULT_TUNE_CORRECTION
+  quad_array: QForTune
+  betatron_tune: BETATRON_TUNE
+  delta: 1e-4
diff --git a/tests/config/EBSTune-range.yaml b/tests/config/EBSTune-range.yaml
index 3422a53ca..b598044c0 100644
--- a/tests/config/EBSTune-range.yaml
+++ b/tests/config/EBSTune-range.yaml
@@ -15,130 +15,8 @@ arrays:
   - type: pyaml.arrays.magnet
     name: QForTune
     elements:
-      - QD2E-C04
-      - QD2A-C05
-      - QD2E-C05
-      - QD2A-C06
-      - QD2E-C06
-      - QD2A-C07
-      - QD2E-C07
-      - QD2A-C08
-      - QD2E-C08
-      - QD2A-C09
-      - QD2E-C09
-      - QD2A-C10
-      - QD2E-C10
-      - QD2A-C11
-      - QD2E-C11
-      - QD2A-C12
-      - QD2E-C12
-      - QD2A-C13
-      - QD2E-C13
-      - QD2A-C14
-      - QD2E-C14
-      - QD2A-C15
-      - QD2E-C15
-      - QD2A-C16
-      - QD2E-C16
-      - QD2A-C17
-      - QD2E-C17
-      - QD2A-C18
-      - QD2E-C18
-      - QD2A-C19
-      - QD2E-C19
-      - QD2A-C20
-      - QD2E-C20
-      - QD2A-C21
-      - QD2E-C21
-      - QD2A-C22
-      - QD2E-C22
-      - QD2A-C23
-      - QD2E-C23
-      - QD2A-C24
-      - QD2E-C24
-      - QD2A-C25
-      - QD2E-C25
-      - QD2A-C26
-      - QD2E-C26
-      - QD2A-C27
-      - QD2E-C27
-      - QD2A-C28
-      - QD2E-C28
-      - QD2A-C29
-      - QD2E-C29
-      - QD2A-C30
-      - QD2E-C30
-      - QD2A-C31
-      - QD2E-C31
-      - QD2A-C32
-      - QD2E-C32
-      - QD2A-C01
-      - QD2E-C01
-      - QD2A-C02
-      - QD2E-C02
-      - QD2A-C03
-      - QF1E-C04
-      - QF1A-C05
-      - QF1E-C05
-      - QF1A-C06
-      - QF1E-C06
-      - QF1A-C07
-      - QF1E-C07
-      - QF1A-C08
-      - QF1E-C08
-      - QF1A-C09
-      - QF1E-C09
-      - QF1A-C10
-      - QF1E-C10
-      - QF1A-C11
-      - QF1E-C11
-      - QF1A-C12
-      - QF1E-C12
-      - QF1A-C13
-      - QF1E-C13
-      - QF1A-C14
-      - QF1E-C14
-      - QF1A-C15
-      - QF1E-C15
-      - QF1A-C16
-      - QF1E-C16
-      - QF1A-C17
-      - QF1E-C17
-      - QF1A-C18
-      - QF1E-C18
-      - QF1A-C19
-      - QF1E-C19
-      - QF1A-C20
-      - QF1E-C20
-      - QF1A-C21
-      - QF1E-C21
-      - QF1A-C22
-      - QF1E-C22
-      - QF1A-C23
-      - QF1E-C23
-      - QF1A-C24
-      - QF1E-C24
-      - QF1A-C25
-      - QF1E-C25
-      - QF1A-C26
-      - QF1E-C26
-      - QF1A-C27
-      - QF1E-C27
-      - QF1A-C28
-      - QF1E-C28
-      - QF1A-C29
-      - QF1E-C29
-      - QF1A-C30
-      - QF1E-C30
-      - QF1A-C31
-      - QF1E-C31
-      - QF1A-C32
-      - QF1E-C32
-      - QF1A-C01
-      - QF1E-C01
-      - QF1A-C02
-      - QF1E-C02
-      - QF1A-C03
+      - QD2*
+      - QF1*
 devices:
 - type: pyaml.magnet.quadrupole
   name: QF1E-C04
diff --git a/tests/config/EBSTune.yaml b/tests/config/EBSTune.yaml
index 04f255246..c1f71a3a0 100644
--- a/tests/config/EBSTune.yaml
+++ b/tests/config/EBSTune.yaml
@@ -17,130 +17,8 @@ arrays:
   - type: pyaml.arrays.magnet
     name: QForTune
     elements:
-      - QD2E-C04
-      - QD2A-C05
-      - QD2E-C05
-      - QD2A-C06
-      - QD2E-C06
-      - QD2A-C07
-      - QD2E-C07
-      - QD2A-C08
-      - QD2E-C08
-      - QD2A-C09
-      - QD2E-C09
-      - QD2A-C10
-      - QD2E-C10
-      - QD2A-C11
-      - QD2E-C11
-      - QD2A-C12
-      - QD2E-C12
-      - QD2A-C13
-      - QD2E-C13
-      - QD2A-C14
-      - QD2E-C14
-      - QD2A-C15
-      - QD2E-C15
-      - QD2A-C16
-      - QD2E-C16
-      - QD2A-C17
-      - QD2E-C17
-      - QD2A-C18
-      - QD2E-C18
-      - QD2A-C19
-      - QD2E-C19
-      - QD2A-C20
-      - QD2E-C20
-      - QD2A-C21
-      - QD2E-C21
-      - QD2A-C22
-      - QD2E-C22
-      - QD2A-C23
-      - QD2E-C23
-      - QD2A-C24
-      - QD2E-C24
-      - QD2A-C25
-      - QD2E-C25
-      - QD2A-C26
-      - QD2E-C26
-      - QD2A-C27
-      - QD2E-C27
-      - QD2A-C28
-      - QD2E-C28
-      - QD2A-C29
-      - QD2E-C29
-      - QD2A-C30
-      - QD2E-C30
-      - QD2A-C31
-      - QD2E-C31
-      - QD2A-C32
-      - QD2E-C32
-      - QD2A-C01
-      - QD2E-C01
-      - QD2A-C02
-      - QD2E-C02
-      - QD2A-C03
-      - QF1E-C04
-      - QF1A-C05
-      - QF1E-C05
-      - QF1A-C06
-      - QF1E-C06
-      - QF1A-C07
-      - QF1E-C07
-      - QF1A-C08
-      - QF1E-C08
-      - QF1A-C09
-      - QF1E-C09
-      - QF1A-C10
-      - QF1E-C10
-      - QF1A-C11
-      - QF1E-C11
-      - QF1A-C12
-      - QF1E-C12
-      - QF1A-C13
-      - QF1E-C13
-      - QF1A-C14
-      - QF1E-C14
-      - QF1A-C15
-      - QF1E-C15
-      - QF1A-C16
-      - QF1E-C16
-      - QF1A-C17
-      - QF1E-C17
-      - QF1A-C18
-      - QF1E-C18
-      - QF1A-C19
-      - QF1E-C19
-      - QF1A-C20
-      - QF1E-C20
-      - QF1A-C21
-      - QF1E-C21
-      - QF1A-C22
-      - QF1E-C22
-      - QF1A-C23
-      - QF1E-C23
-      - QF1A-C24
-      - QF1E-C24
-      - QF1A-C25
-      - QF1E-C25
-      - QF1A-C26
-      - QF1E-C26
-      - QF1A-C27
-      - QF1E-C27
-      - QF1A-C28
-      - QF1E-C28
-      - QF1A-C29
-      - QF1E-C29
-      - QF1A-C30
-      - QF1E-C30
-      - QF1A-C31
-      - QF1E-C31
-      - QF1A-C32
-      - QF1E-C32
-      - QF1A-C01
-      - QF1E-C01
-      - QF1A-C02
-      - QF1E-C02
-      - QF1A-C03
+      - QD2*
+      - QF1*
 devices:
 - type: pyaml.magnet.quadrupole
   description: "QF1E-C04 quadrupole"
diff --git a/tests/config/bad_conf_duplicate_4.yaml b/tests/config/bad_conf_duplicate_4.yaml
new file mode 100644
index 000000000..95beb2f24
--- /dev/null
+++ b/tests/config/bad_conf_duplicate_4.yaml
@@ -0,0 +1,24 @@
+type: pyaml.accelerator
+facility: ESRF
+machine: sr
+energy: 6e9
+simulators:
+  - type: pyaml.lattice.simulator
+    lattice: sr/lattices/ebs.mat
+    name: design
+data_folder: /data/store
+arrays:
+  - type: pyaml.arrays.magnet
+    name: HCORR
+    elements:
+      - SH1A-C0?-H
+      - SH1A-C02-H # duplicate name in array
+  - type: pyaml.arrays.magnet
+    name: VCORR
+    elements:
+      - SH1A-C01-V
+      - SH1A-C02-V
+devices:
+  - sr/quadrupoles/QF1AC01.yaml
+  - sr/correctors/SH1AC01.yaml
+  - sr/correctors/SH1AC02.yaml
diff --git a/tests/config/sr.yaml b/tests/config/sr.yaml
index 92d4a84c9..b223852e5 100644
--- a/tests/config/sr.yaml
+++ b/tests/config/sr.yaml
@@ -15,35 +15,28 @@ arrays:
   - type: pyaml.arrays.magnet
     name: HCORR
     elements:
-      - SH1A-C01-H
-      - SH1A-C02-H
+      - SH1A-C0?-H
   - type: pyaml.arrays.magnet
     name: VCORR
     elements:
-      - SH1A-C01-V
-      - SH1A-C02-V
+      - SH1A-C0?-V
   - type: pyaml.arrays.magnet
     name: HVCORR
     elements:
-      - SH1A-C01-H
-      - SH1A-C02-H
-      - SH1A-C01-V
-      - SH1A-C02-V
+      - re:^SH1A-C0[12]-H$
+      - re:^SH1A-C0[12]-V$
   - type: pyaml.arrays.cfm_magnet
     name: CFM
     elements:
-      - SH1A-C01
-      - SH1A-C02
+      - SH1A-C0?
   - type: pyaml.arrays.bpm
     name: BPMS
     elements:
-      - BPM_C04-01
-      - BPM_C04-02
+      - BPM_C04-*
   - type: pyaml.arrays.element
     name: ElArray
     elements:
-      - BPM_C04-01
-      - BPM_C04-02
+      - re:^BPM_C04-0[12]$
       - SH1A-C01-V
       - SH1A-C02-H
 devices:
diff --git a/tests/test_errors.py b/tests/test_errors.py
index a71d28b40..04b176086 100644
--- a/tests/test_errors.py
+++ b/tests/test_errors.py
@@ -24,6 +24,10 @@ def test_tune(install_test_package):
     assert "element BPM_C04-06 already defined" in str(exc)
     assert "line 58, column 3" in str(exc)
 
+    with pytest.raises(PyAMLConfigException) as exc:
+        ml: Accelerator = Accelerator.load("tests/config/bad_conf_duplicate_4.yaml")
+    assert "MagnetArray HCORR : duplicate name SH1A-C02-H @index 2" in str(exc)
+
     sr: Accelerator = Accelerator.load("tests/config/EBSTune.yaml")
     m1 = sr.live.get_magnet("QF1E-C04")
     m2 = sr.design.get_magnet("QF1A-C05")
diff --git a/tests/test_load_conf_with_code.py b/tests/test_load_conf_with_code.py
new file mode 100644
index 000000000..ceb4747d0
--- /dev/null
+++ b/tests/test_load_conf_with_code.py
@@ -0,0 +1,13 @@
+from pathlib import Path
+
+from pyaml.accelerator import Accelerator
+
+
+def test_load_conf_with_code():
+    parent_folder = Path(__file__).parent
+    config_path = parent_folder.joinpath("config", "EBSOrbit.yaml").resolve()
+
+    sr: Accelerator = Accelerator.load(config_path)
+    bpms = sr.live.get_bpms("BPM")
+    assert bpms is not None
+    assert len(bpms) == 320
diff --git a/tests/test_patterns.py b/tests/test_patterns.py
new file mode 100644
index 000000000..4fde9c1c2
--- /dev/null
+++ b/tests/test_patterns.py
@@ -0,0 +1,25 @@
+import numpy as np
+import pytest
+
+from pyaml.accelerator import Accelerator
+
+
+def test_tune():
+    sr: Accelerator = Accelerator.load(
+        "tests/config/EBSTune-patterns.yaml", ignore_external=True
+    )
+    sr.design.get_lattice().disable_6d()
+
+    quadForTune = sr.design.get_magnets("QForTune")
+    assert len(quadForTune.names()) == 124
+
+    quadForTest = sr.design.get_magnets("QForTest")
+    assert sr.design.get_magnet("QF1E-C06") is not None
+    assert sr.design.get_magnet("QF1E-C05") is not None
+    assert "QF1E-C05" not in quadForTest.names()
+    assert all(
+        [
+            not (name.startswith("Q") and name.endswith("-C06"))
+            for name in quadForTest.names()
+        ]
+    )
