====================
Experimental data
-----------------
- Process experimental data in a consistent order (i.e., I-V and IF data should be processed in the same way).
- Add warning if normal resistance is too low or too high. This can help to detect if you are using the wrong units for the current.
- Make parameters in ``qmix.exp.parameters`` more consistent. Changes include:
- ``voffset_range``, which defines where the voltage offset is potentially found, is now defined as a list. E.g., if the experimental voltage offset could be found anywhere between -0.5mV and 0.1mV, you now use ``voffset_range=(-0.5e-3, 0.1e-3)``. This change is backwards compatible, so you can still define it as a float if you like. For example, if you set ``voffset_range=1e-3``, this is equivalent to ``voffset_range=(-1e-3, 1e-3)``.
- ``rn_vmin`` and ``rn_vmax``, which previously defined where the normal resistance was calculated, are now combined into ``vrn``. Previously, this was defined using ``rn_vmin`` and ``rn_vmax``. Now, it is defined using ``vrn`` as a list. For example, if you previously used ``rn_vmin=4e-3`` and ``rn_vmax=5e-3``, you would now use ``vrn=(4e-3, 5e-3)``. This change is backwards compatible, so you can still use ``rn_vmin`` and ``rn_vmax``.
- ``vshot``, which controls where the shot noise slope is calculated, is now a list of lists, so that multiple voltage ranges can be defined. For example, if the shot noise slope is smooth between from 4-5mV and 5.5-6mV, you can define ``vshot=((4e-3,5e-3),(5.5e-3,6e-3))``. This change is backwards compatible, so you can still use a normal list.
- ``cut_low`` and ``cut_high``, which previously defined the region of the first photon step that would be used for impedance recovery, are now combined into ``fit_range``. For example, if you previously used ``cut_low=0.25`` and ``cut_high=0.2``, you should now use ``fit_interval=(0.25, 0.8)``. (NB: The way that the upper limit is defined has been changed!). In this example, the script will ignore the first 25% of the photon step and the last 20% during the impdance recovery process. This is backwards compatible, so you can still use ``cut_low`` and ``cut_high`` if you like.
- ``vgap_guess`` and ``igap_guess`` have been removed. They actually weren't needed all along.
- ``ifdata_vmax``, which previously defined the maximum IF voltage to import, has been removed. QMix now uses the value from ``vmax`` instead.
- ``ifdata_sigma``, which defines the width of the filter for the IF data, is now defined in units [V]. Previously, it was defined by the number of data points. This is also backwards compatible (if ``ifdata_sigma`` is >0.5, it will assume that you are defining it by the number steps).
Optimization
------------
- Add basic timing scripts for ``qmix.harmonic_balance``. See ``speed/`` directory.
- Use a better initial guess for the junction voltage in the ``qmix.harmonic_balance.harmonic_balance`` function.
Testing
-------
- Improve code coverage. Now 99.0% covered!
Command line
------------
- Add command line script to plot IF response from experimental data (``bin/plot-if-response.py``).