Exemplo n.º 1
0
    f, axes = plt.subplots(1,
                           5,
                           sharex=True,
                           figsize=(12, 4),
                           constrained_layout=True)
    l = len(gate)
    for ax, index in zip(axes, [0, l // 4, l // 2, 3 * l // 4, -1]):
        ax.plot(field[index] * 1e3, res['original'][index], '+')
        ax.plot(field[index] * 1e3, res['xx'][index])
        ax.axvline(0)
        ax.set_xlabel('Field (mT)')
        ax.set_ylabel('Resistance (Ω)')
    plt.show()

# Extract the density and mobility and compute useful quantities.
density = extract_density(field, res['xy'], FIELD_BOUNDS, PLOT_DENSITY_FIT)
if PLOT_DENSITY_FIT:
    plt.show()

mobility, std_mob = extract_mobility(field, res['xx'], res['yy'], density,
                                     GEOMETRIC_FACTORS[GEOMETRY])
density, std_density = density

mass = EFFECTIVE_MASS * cs.electron_mass
htr = htr_from_mobility_density(mobility, density, mass)
diff = diffusion_constant_from_mobility_density(mobility, density, mass)

# If requested plot the Htr that tells us in what range the WAL can be valid.
if PLOT_HTR:
    f, axes = plt.subplots(1, 3, figsize=(10, 5), constrained_layout=True)
    for ax, x, y, x_lab, y_lab in zip(
        if LOCK_IN_QUANTITY == "real":
            val = data.get_data(name).real
        elif LOCK_IN_QUANTITY == "imag":
            val = data.get_data(name).imag
        else:
            val = np.abs(data.get_data(name))

        val = val

        res[k] = convert_lock_in_meas_to_diff_res(val, PROBE_CURRENT)

if GATE_COLUMN is not None:
    gate = gate[:, 0]

if "xy" in res:
    density, std_density = extract_density(field, res["xy"], FIELD_BOUNDS,
                                           PLOT_DENSITY_FIT)
    print(f"{density / 1e4:g}")
if PLOT_DENSITY_FIT:
    plt.show()

if "xx" in res and "yy" in res:
    mobility = extract_mobility(field, res["xx"], res["yy"], density,
                                GEOMETRIC_FACTORS[GEOMETRY])

if len(res) == 3:
    mass = EFFECTIVE_MASS * cs.electron_mass
    vf = fermi_velocity_from_density(density, mass)
    mft = mean_free_time_from_mobility(mobility, mass)
    diff = diffusion_constant_from_mobility_density(mobility, density, mass)

if RESULT_PATH: