Calibrations
This document contains some guidelines for creating robust and re-usable calibration and tuning routines.
Separate your measurement, analysis and visualization part of the code
Each calibration result should be a dictionary with the calibration results. A couple of fields have a special meaning:
type
: Contains a string with the type of calibration. E.g. T1 or pinchoffdescription
: A string with a more elaborate description of the calibration proceduredataset
: Contains either the measurement data or a reference (string) to the measurement datastatus
: A string that can be “failed”, “good” or “unknown”
The calibration framework will automatically add the following fields to the dictionary:
timestamp
(string): String with the date and time of calibrationtag
(string): Contains identifier of the calibration
The calibration results are stored in a central database. The calibration results are identified by tags which are lists of strings, e.g.
['calibration', 'qubit1', 'T1']
.
An example of a calibration result
# measure a pinchoff-scan
...
# analyse the scan
$ result = analyseGateSweep(dataset)
analyseGateSweep: leftval 0.0, rightval 0.3
$ print(result)
{'_mp': 392,
'_pinchvalueX': -450.0,
'dataset': '2018-08-18/16-33-50_qtt_generic',
'description': 'pinchoff analysis',
'goodgate': True,
'highvalue': 0.9999999999999998,
'lowvalue': 9.445888759986548e-18,
'midpoint': -408.0,
'midvalue': 0.29999999999999993,
'pinchvalue': -458.0,
'type': 'gatesweep',
'xlabel': 'Sweep plunger [mV]'}
Storage
The DataSet objects are stored with the qcodes qcodes.data.gnuplot_format.GNUPlotFormat
or
the qcodes.data.hdf5_format.HDF5FormatMetadata
. For storage of other objects
we recommend to use HDF5.