def __init__(self, path='', prefix='MM_Flux_Sideband_Rabi', 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_rabi']['pulse_type'] self.mm_flux_sideband_cfg = self.cfg['mm_flux_sideband'] 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 = MultimodeFluxSideBandRabiSequence( self.cfg['awgs'], self.cfg['mm_flux_sideband_rabi'], 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