nanotune.tuningstages.settings

class nanotune.tuningstages.settings.Settings[source]

Bases: object

Base class for settings dataclasses such as DataSettings or SetpointSettings.

update(new_settings: Union[Dict[str, Sequence[Any]], Settings]) None[source]

Updates attributes with new settings. Raises a ValueError if an attribute is not found or input argument is neither a Dict, nor a Setting.

Parameters

new_settings (Dict or Settings) –

class nanotune.tuningstages.settings.DataSettings(db_name: str = 'experiments.db', db_folder: str = '.', normalization_constants: NormalizationConstants = NormalizationConstants(transport=(0.0, 1.0), sensing=(0.0, 1.0), rf=(0.0, 1.0)), experiment_id: Optional[int] = None, segment_db_name: str = 'segmented_experiments.db', segment_db_folder: str = '.', segment_experiment_id: Optional[int] = None, segment_size: float = 0.05, noise_floor: float = 0.02, dot_signal_threshold: float = 0.1)[source]

Bases: Settings

Setting sub-class holding data-related information such as where data is saved or how it is normalized.

Parameters
  • db_name (str) – database name. Default set to nt.config[‘db_name’].

  • db_folder (str) – path of folder containing db_name. Default set to nt.config[‘db_folder’].

  • normalization_constants (NormalizationConstants) – device specific normalization constants.

  • experiment_id (int) – ID of experiment to which tuning data belongs, optional.

  • segment_db_name (str) – name of database containing segmented dot data, saved when performing a dot fit.

  • segment_db_folder (str) – path of folder containing segment_db_name. Default set to nt.config[‘db_folder’].

  • segment_experiment_id (int) – ID of experiment to which dot segment data belongs, optional.

  • segment_size (float) – voltage range/span of each dot segment, classified independently.

  • noise_floor (float) – threshold below which a measured signal is considered noise. Compared to normalized measurements.

  • dot_signal_threshold (float) – threshold below which a measured signal is considered possibly belong to a few-electron regime and above which a signal is considered open current.

db_name: str = 'experiments.db'
db_folder: str = '.'
normalization_constants: NormalizationConstants = NormalizationConstants(transport=(0.0, 1.0), sensing=(0.0, 1.0), rf=(0.0, 1.0))
experiment_id: Optional[int] = None
segment_db_name: str = 'segmented_experiments.db'
segment_db_folder: str = '.'
segment_experiment_id: Optional[int] = None
segment_size: float = 0.05
noise_floor: float = 0.02
dot_signal_threshold: float = 0.1
update(new_settings: Union[Dict[str, Sequence[Any]], Settings]) None[source]

Updates attributed with new settings by calling super’s update method and then overwriting normalization_constants with and instance of NormalizationConstants.

Parameters

new_settings (Dict or Settings) –

class nanotune.tuningstages.settings.SetpointSettings(voltage_precision: float, parameters_to_sweep: ~typing.Sequence[~qcodes.instrument.parameter._BaseParameter] = <factory>, ranges_to_sweep: ~typing.Sequence[~typing.Sequence[float]] = <factory>, safety_voltage_ranges: ~typing.Sequence[~typing.Sequence[float]] = <factory>, setpoint_method: ~typing.Optional[~typing.Callable[[~typing.Any], ~typing.Sequence[~typing.Sequence[float]]]] = None, high_res_precisions: ~typing.Sequence[float] = (0.0005, 0.0001))[source]

Bases: Settings

Settings sub-class holding setpoint-related information such as voltage precision and parameters to sweep.

Parameters
  • voltage_precision (float) – voltage difference between setpoints.

  • parameters_to_sweep (Sequence[_BaseParameter]) – list of QCoDeS parameters to sweep.

  • ranges_to_sweep (Sequence[Sequence[float]]) – voltage ranges to sweep, in same order as parameters_to_sweep.

  • safety_voltage_ranges (Sequence[Sequence[float]]) – safe voltage ranges of parameters_to_sweep, in the same order.

  • setpoint_method (optional Callable) – optional callable, to be used to calculate setpoints. Default are linearly spaced setpoints.

  • high_res_precisions (Sequence[float]) – voltage precisions for high resolution data. The first is used for entire/larger diagrams while the second for data segments/smaller ranges.

voltage_precision: float
parameters_to_sweep: Sequence[_BaseParameter]
ranges_to_sweep: Sequence[Sequence[float]]
safety_voltage_ranges: Sequence[Sequence[float]]
setpoint_method: Optional[Callable[[Any], Sequence[Sequence[float]]]] = None
high_res_precisions: Sequence[float] = (0.0005, 0.0001)
class nanotune.tuningstages.settings.Classifiers(pinchoff: Optional[Classifier] = None, singledot: Optional[Classifier] = None, doubledot: Optional[Classifier] = None, dotregime: Optional[Classifier] = None)[source]

Bases: object

Class grouping binary classifiers required for tuning.

Parameters
  • pinchoff (optional nt.Classifier) – pre-trained pinch-off classifier.

  • singledot (optional nt.Classifier) – pre-trained single dot classifier.

  • doubledot (optional nt.Classifier) – pre-trained double dot classifier.

  • dotregime (optional nt.Classifier) – pre-trained dot regime classifier.

pinchoff: Optional[Classifier] = None
singledot: Optional[Classifier] = None
doubledot: Optional[Classifier] = None
dotregime: Optional[Classifier] = None
is_dot_classifier() bool[source]

Checks if dot classifiers are specified/not None. If so, the Classifiers instance can be used in a dot tuning algorithm.

is_pinchoff_classifier() bool[source]

Checks if pinch-off classifier is specified/not None. If so, the Classifiers instance can be used gate or device characterizations.