def _Calculate_spectrum_fired(self): # delete values from previous measurement self.delete_all_values() # load data rabi_x, rabi_y, unused1, unused2 = self.load_file(self.rabi_file) xy8_x, xy8_y, xy8_xx, xy8_yy = self.load_file(self.xy8_file) # performing rabi-fit rabi_fit_parameters = self.rabi_fit(rabi_x, rabi_y) rabi_contrast = 200 * rabi_fit_parameters[0] / rabi_fit_parameters[3] rabi_period = rabi_fit_parameters[1] / 1e3 # /1e3 gives us nanoseconds rabi_amplitude = rabi_fit_parameters[0] rabi_level = rabi_fit_parameters[3] print 'rabi_level: ', rabi_level # plotting rabi + rabi-fit rabi_y = np.array(rabi_y) / 1e3 self.y_rabi_lo = min(rabi_y) - 0.02 self.y_rabi_hi = max(rabi_y) + 0.02 rabi_fit_y = Fit.Cosinus_dec(*rabi_fit_parameters)(rabi_x) / 1e3 self._plot_rabi_changed(rabi_x, rabi_y, rabi_fit_y) # plotting yx8-data self._plot_xy8_changed(xy8_x, xy8_y, xy8_yy) # decide if rabi-level or xy8-level (if alternating) level = rabi_level if xy8_yy != []: xy8_level = ((np.array(xy8_y) + np.array(xy8_yy)) / 2).mean() level = xy8_level print 'xy8_level: ', xy8_level # performing xy8 to rabi normalization xy8norm_x = xy8_x xy8norm_y = Calculate.do_normalization(xy8_y, rabi_amplitude, level) xy8norm_yy = [] if xy8_yy != []: xy8norm_yy = Calculate.do_normalization(xy8_yy, rabi_amplitude, level) # plotting xy8norm self._plot_xy8norm_changed(xy8norm_x, xy8norm_y, xy8norm_yy) # calculating the spectral density nu = Calculate.nu_from_tau( xy8norm_x) #this nu is in MHz, since xy8norm_x is in µs gamma_e = 1 #setting gamma_e to 1 tau_x = np.array(xy8norm_x) / 1e6 #tau_x is in seconds if xy8_yy == []: temp = float(sum(xy8norm_y) / len(xy8norm_y)) if temp < 0.5: xy8norm_y = 1 - xy8norm_y spectrum_y = Calculate.S_from_data(tau_x, xy8norm_y, gamma_e, self.Number_pulses) spectrum_y = np.array(spectrum_y) / 1e6 #to change to MHz spectrum_yy = [] if xy8_yy != []: xy8norm_yy = 1 - xy8norm_yy spectrum_yy = Calculate.S_from_data(tau_x, xy8norm_yy, gamma_e, self.Number_pulses) spectrum_yy = np.array(spectrum_yy) / 1e6 #to change to MHz # plotting the spectral density self.spec_min = min(nu) self.spec_max = max(nu) self._plot_density_changed(nu, spectrum_y, spectrum_yy) # saving nu and spectra, to use them in Calculate_depth self.nu = nu self.spectrum_y = spectrum_y self.spectrum_yy = spectrum_yy