code: def run_calibration(self, interval, applycal):
          
          if self.selected_calibration_index == 2:
              self.tone_calibrator.apply_calibration(applycal)
              self.tone_calibrator.setup(interval)
              return self.tone_calibrator.run()
          else:
              self.bs_calibrator.set_stim_by_index(self.selected_calibration_index)
              self.bs_calibrator.apply_calibration(applycal)
              self.bs_calibrator.setup(interval)
              return self.bs_calibrator.run()
docs: Runs the calibration operation with the current settings
          
          :param interval: The repetition interval between stimuli presentations (seconds)
          :type interval: float
          :param applycal: Whether to apply a previous saved calibration to this run
          :type applycal: bool
          :returns: :py:class:`threading.Thread` -- the acquisition thread