Skip to content

Parameter Vault Server

Michael Ramm edited this page May 7, 2014 · 22 revisions

Introduction

We use the Parameter Vault server to retrieve and set experimental parameters. The advantage of using this server instead of storing experimetnal parameters in the Registry is the additional provided features:

  • Notification when any parameter is changed. (Registry only emits signals when a parameter in the same directory is changed).

  • Custom parameter types (scan, selection etc).

  • Support for bounds-checking for set parameters, including for custom parameter types. For example this will disallow ever setting a voltage to an unreasonably high value.

  • Easy grouping of parameters by collection. For example all of Doppler cooling frequencies and amplitudes are stored together in the DopplerCooling collection.

  • Seamless interface with the ScriptScanner GUI.

When the Parameter Vault starts, the parameters are loaded from the Registry. Then over the course of the experiments we interact with Parameter Vault to modify them. When the servers exits, the parameters are saved back to the Registry. The interaction with the Parameter Vault is primarily graphical through the ScriptScanner interface. That interface automatically creates appropriate GUIs to modify the stored parameter types. Furthermore ScriptScanner is able to display only the parameters relevant to the specific experiment.

Registry Saving

The parameters are initially retrieves from the Registry. The directory is set with registryDirectory list in the server to be ['','Servers', 'Parameter Vault']. In that path, any folder will become a collection of the parameters that are stored inside. The parameters are stored as key-value pairs where key is the name of the parameter and value is a tuple in the form (parameterType, value). Here parameterType is a string e.g 'parameter' or 'scan' and value is the corresponding parameter value.

Supported types

  • Bool. Stores a boolean value, the syntax is ('bool', False).

  • String. Stores a string, the syntax is ('string', 'hello').

  • Parameter. This is a general value with units. The syntax is ('parameter', [Value(60.0, 'MHz'), Value(100.0, 'MHz'), Value(80.0, 'MHz')]). The list is of the form [min, max, current_value].

  • Scan. Represents a scan over a parameter. tHe syntax is ('scan', ([Value(-60.0, 'MHz'), Value(140.0, 'MHz')], (Value(-28.85, 'MHz'), Value(-28.65, 'MHz'), 21))), where the list is in the form [min, max] and the tuple is (starting_value, stopping_value, number_of_steps).

  • Selection Simple. Provides a selection out a number of choices. ('selection_simple', ('normal', ['custom', 'normal', 'fine', 'ultimate'])). The syntax is (current_selection, ([selection choices])).

  • Duration Bandwidth. Similar to a parameter, but also used to automatically compute and display the Fourier bandwidth of the duration. ('duration_bandwidth', [Value(0.0, 'us'), Value(100000.0, 'us'), Value(30.0, 'us')])

  • Sideband Selection. Selects the sideband of a carrier transition e.g ('sideband_selection', [0, 0, 0, 0]). The syntax for the list is [radial_sideband_1, radial_sideband_2, axial_sideband, micromotion_sideband] where each value indicates the sideband number (negative for red, positive for blue).

  • Spectrum Sensitivity. Describes conditions to measure the line spectrum e.g ('spectrum_sensitivity', (Value(60.0, 'kHz'), Value(2.0, 'kHz'), Value(70.0, 'us'), Value(-17.0, 'dBm'))). The syntax is in the form (range, step_size, excitation_duration, excitation_power).

  • Line Selection. Selects the carrier transition e.g ('line_selection', ('S-1/2D-5/2', [('S+1/2D+3/2', 'S+1/2D+3/2'), ('S-1/2D+1/2', 'S-1/2D+1/2'), ('S-1/2D-5/2', 'carrier -1/2-5/2'), ('S-1/2D-1/2', 'carrier -1/2-1/2'), ('S+1/2D-1/2', 'S+1/2D-1/2'), ('S+1/2D-3/2', 'OP'), ('S+1/2D+5/2', 'S+1/2D+5/2'), ('S-1/2D+3/2', 'Right OP'), ('S-1/2D-3/2', 'S-1/2D-3/2'), ('S+1/2D+1/2', 'S+1/2D+1/2')])). The first element is the current selection. The list is in the form [(transition, nickname)].

Version Control

Version 2.0

  • Stable.