def __init__(self, path='', prefix='MM_Flux_Sideband_Two_Modes_Swap_Sweep', config_file=None, use_cal=False, **kwargs): Experiment.__init__(self, path=path, prefix=prefix, config_file=config_file, **kwargs) self.pulse_type = self.cfg['mm_flux_sideband']['pulse_type'] self.mm_flux_sideband_cfg = self.cfg['mm_flux_sideband_two_modes_swap_sweep'] # if self.mm_flux_sideband_cfg['freq_step'] is not None: # self.mm_flux_sideband_freq_pts = arange(self.mm_flux_sideband_cfg['start_freq'], self.mm_flux_sideband_cfg['stop_freq'], self.mm_flux_sideband_cfg['freq_step']) # else: # self.mm_flux_sideband_freq_pts = linspace(self.mm_flux_sideband_cfg['start_freq'], self.mm_flux_sideband_cfg['stop_freq'], self.mm_flux_sideband_cfg['freq_num_pts']) if self.cfg['pulse_info'][self.pulse_type] is None: print("This pulse type is not valid.") self.ready_to_go = False return pulse_calibrated = self.cfg['pulse_info'][self.pulse_type]['rabi_calibrated'] if not pulse_calibrated: print("This pulse type has not been calibrated.") self.ready_to_go = False return self.pulse_sequence = MultimodeFluxSideBandTwoModesSwapSweepSequence(self.cfg['awgs'], self.mm_flux_sideband_cfg, self.cfg['readout'],self.cfg['pulse_info'][self.pulse_type]) self.pulse_sequence.build_sequence() self.pulse_sequence.write_sequence(os.path.join(self.path, 'sequences/'), prefix, upload=True) self.mm_flux_sideband_pts = self.pulse_sequence.mm_flux_sideband_pts #self.cfg['alazar']['samplesPerRecord'] = self.pulse_sequence.waveform_length self.cfg['alazar']['recordsPerBuffer'] = self.pulse_sequence.sequence_length self.cfg['alazar']['recordsPerAcquisition'] = int( self.pulse_sequence.sequence_length * min(self.cfg['mm_flux_sideband']['averages'], 100)) self.ready_to_go = True ### Hard coding TEK7 self.tek7 = InstrumentManager()["TEK2"] return