diff --git a/lisainstrument/instrument.py b/lisainstrument/instrument.py index ed01a96de98141242eb58d6236b6300125161008..f177d9c6db4d41000a773ca580543cb9631ab527 100644 --- a/lisainstrument/instrument.py +++ b/lisainstrument/instrument.py @@ -39,23 +39,25 @@ class Instrument: SCS = ForEachSC.indices() MOSAS = ForEachMOSA.indices() - # Supported laser locking topology + # Supported laser locking topologies (L12 as primary) + # pylint: disable=line-too-long LOCK_TOPOLOGIES = { - 'N1': {'12': 'cavity', '23': 'adjacent', '31': 'distant', '13': 'adjacent', '32': 'adjacent', '21': 'distant'}, - 'N2': {'12': 'cavity', '23': 'adjacent', '31': 'distant', '13': 'adjacent', '32': 'distant', '21': 'distant'}, - 'N3': {'12': 'cavity', '23': 'adjacent', '31': 'adjacent', '13': 'adjacent', '32': 'distant', '21': 'distant'}, - 'N4': {'12': 'cavity', '23': 'distant', '31': 'distant', '13': 'adjacent', '32': 'adjacent', '21': 'distant'}, - 'N5': {'12': 'cavity', '23': 'distant', '31': 'distant', '13': 'adjacent', '32': 'adjacent', '21': 'adjacent'}, - 'N6': {'12': 'cavity', '23': 'adjacent', '31': 'adjacent', '13': 'distant', '32': 'distant', '21': 'distant'}, + 'N1': {'12': 'cavity', '23': 'adjacent', '31': 'distant', '13': 'adjacent', '32': 'adjacent', '21': 'distant'}, + 'N2': {'12': 'cavity', '23': 'adjacent', '31': 'distant', '13': 'adjacent', '32': 'distant', '21': 'distant'}, + 'N3': {'12': 'cavity', '23': 'adjacent', '31': 'adjacent', '13': 'adjacent', '32': 'distant', '21': 'distant'}, + 'N4': {'12': 'cavity', '23': 'distant', '31': 'distant', '13': 'adjacent', '32': 'adjacent', '21': 'distant'}, + 'N5': {'12': 'cavity', '23': 'distant', '31': 'distant', '13': 'adjacent', '32': 'adjacent', '21': 'adjacent'}, + 'N6': {'12': 'cavity', '23': 'adjacent', '31': 'adjacent', '13': 'distant', '32': 'distant', '21': 'distant'}, } - INDEX_MAPS = { + # Index cycles for locking topologies + INDEX_CYCLES = { '12': {'12': '12', '23': '23', '31': '31', '13': '13', '32': '32', '21': '21'}, - '23': {'12': '31', '23': '12', '31': '23', '13': '32', '32': '21', '21': '13'}, + '21': {'12': '21', '23': '13', '31': '32', '13': '23', '32': '31', '21': '12'}, '31': {'12': '23', '23': '31', '31': '12', '13': '21', '32': '13', '21': '32'}, - '13': {'12': '13', '23': '21', '31': '32', '13': '12', '32': '31', '21': '23'}, - '32': {'12': '21', '23': '32', '31': '13', '13': '23', '32': '12', '21': '32'}, - '21': {'12': '32', '23': '13', '31': '21', '13': '31', '32': '23', '21': '12'}, + '32': {'12': '32', '23': '21', '31': '13', '13': '31', '32': '12', '21': '23'}, + '23': {'12': '31', '23': '12', '31': '23', '13': '32', '32': '21', '21': '13'}, + '13': {'12': '13', '23': '32', '31': '21', '13': '12', '32': '23', '21': '31'}, } def __init__(self, @@ -460,8 +462,8 @@ class Instrument: if match: self.lock_config = (match.group(1), match.group(2)) lock_12 = self.LOCK_TOPOLOGIES[self.lock_config[0]] # with 12 as primary - index_map = self.INDEX_MAPS[self.lock_config[1]] # correspondance to lock_12 - self.lock = {mosa: lock_12[index_map[mosa]] for mosa in self.MOSAS} + cycle = self.INDEX_CYCLES[self.lock_config[1]] # correspondance to lock_12 + self.lock = {mosa: lock_12[cycle[mosa]] for mosa in self.MOSAS} else: raise ValueError(f"unsupported pre-defined locking configuration '{lock}'") elif isinstance(lock, dict):