def run_transmission_scan(mode, preset):
    slog('drive beam stop out, att=330')
    driveAtt(330)
    sics.run('bsz', 10)
    slog('drive polariser in')
    driveGuide(guideConfig.p1)
    sics.drive('bsz', 10)
    driveAtt(60)
#
    slog('trans ++ att=60 det=20m count=' + str(preset))
    setFlip(1)
    slog('counting...')
    quokka.scan(mode, dataType.HISTOGRAM_XY, preset)
#
    slog('trans +- att=60 det=20m count=' + str(preset))
    setFlip(0)
    slog('counting...')
    quokka.scan(mode, dataType.HISTOGRAM_XY, preset)
#
    slog('tran unpolarised att=75 det=20m count=' + str(preset))
    driveAtt(330)
    slog('polariser out')
    driveGuide(guideConfig.ga)
    driveAtt(75)
    slog('counting...')
    quokka.scan(mode, dataType.HISTOGRAM_XY, preset)
#Drive beam stop back in
    slog('drive beam stop back in, att=330')
    driveAtt(330)
    sics.drive('bsz', 245)
def driveConfig(L2,bsx,bsz):
    slog('start driving detector...')
    slog('L2=' + str(L2) + ' bsx=' + str(bsx) + ' bsz=' + str(bsz) + ' att=330')
    driveAtt(330)    
    sics.run('bsx', bsx)
    sics.run('bsz', bsz)
    driveDet(L2, 0)
    sics.drive('bsx', bsx)
    sics.drive('bsz', bsz)
    slog('drive completed')
def setTemperature(setpoint, heaterRange, waitForTemperature, tempSettleTime): 
    slog('set tc1 heater range=' + str(heaterRange))
    sics.set('/sample/tc1/heater/heaterRange',heaterRange)
    if waitForTemperature==0:
        slog('set sample T=' +  str(setpoint) + ' & not wait for it')
        sics.run('tc1_driveable', setpoint)
    else:
        slog('set sample T=' +  str(setpoint) + ' & wait till it is reached')
        sics.drive('tc1_driveable', setpoint)
        sleep(tempSettleTime)
        slog('waiting '+ str(tempSettleTime) +'sec for temperature to settle')
def run_scattering_scan(mode, presetSpinPlus, presetSpinMinus, bsx, bsz, att):
    slog('drive polariser in, att=330')
    driveAtt(330)
    sics.run('bsx', bsx)
    sics.run('bsz', bsz)
    driveGuide(guideConfig.p1)
    sics.drive('bsx', bsx)
    sics.drive('bsz', bsz)
   
    driveAtt(att)
#
    slog('spin=++ att=' + str(att) +' count=' + str(presetSpinPlus))
    setFlip(1)
    slog('counting...')
    quokka.scan(mode, dataType.HISTOGRAM_XY, presetSpinPlus)
#
    slog('spin=+- att=' + str(att) +' count=' + str(presetSpinMinus))
    setFlip(0)
    slog('counting...')
    quokka.scan(mode, dataType.HISTOGRAM_XY, presetSpinMinus)