def __init__(self, path='', prefix='Histogram_Hetero', config_file='..\\config.json', use_cal=False, **kwargs): Experiment.__init__(self, path=path, prefix=prefix, config_file=config_file, **kwargs) self.extra_args = {} for key, value in kwargs.items(): self.extra_args[key] = value #print str(key) + ": " + str(value) if 'liveplot_enabled' in self.extra_args: self.liveplot_enabled = self.extra_args['liveplot_enabled'] else: self.liveplot_enabled = False if 'data_prefix' in self.extra_args: data_prefix = self.extra_args['data_prefix'] else: data_prefix = prefix if 'prep_tek2' in self.extra_args: self.prep_tek2 = self.extra_args['prep_tek2'] else: self.prep_tek2 = False if 'adc' in self.extra_args: self.adc = self.extra_args['adc'] else: self.adc = None if 'data_file' in self.extra_args: self.data_file = self.extra_args['data_file'] else: self.data_file = None if 'flux_freq' in self.extra_args: self.flux_freq = self.extra_args['flux_freq'] else: self.flux_freq = None self.prefix = prefix self.expt_cfg_name = prefix.lower() #self.pre_run = pre_run #self.post_run = post_run self.pulse_type = self.cfg[self.expt_cfg_name]['pulse_type'] self.pulse_sequence = HistogramSequence( self.cfg['awgs'], self.cfg[self.expt_cfg_name], self.cfg['readout'], self.cfg['pulse_info'][self.pulse_type], self.cfg['buffer'], self.cfg) self.pulse_sequence.build_sequence() self.pulse_sequence.write_sequence(os.path.join( self.path, '../sequences/'), prefix, upload=True) self.expt_pts = self.pulse_sequence.histo_pts self.cfg['alazar']['samplesPerRecord'] = 2**( self.cfg['readout']['width'] - 1).bit_length() self.cfg['alazar'][ 'recordsPerBuffer'] = self.pulse_sequence.sequence_length * self.cfg[ self.expt_cfg_name]['hw_repeats'] # self.cfg['alazar']['recordsPerAcquisition'] = int( # self.pulse_sequence.sequence_length * self.cfg[self.expt_cfg_name]['repeats']* max(self.cfg[self.expt_cfg_name]['averages'], 10)) self.cfg['alazar']['recordsPerAcquisition'] = int( self.pulse_sequence.sequence_length * self.cfg[self.expt_cfg_name]['hw_repeats'] * max(self.cfg[self.expt_cfg_name]['averages'], 10)) self.ready_to_go = True return