public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new SHLoadMOT(p, Parameters); p.AddChannel("aom0frequency"); p.AddChannel("aom1frequency"); p.AddChannel("aom2frequency"); p.AddChannel("aom3frequency"); p.AddChannel("aom0amplitude"); p.AddChannel("aom1amplitude"); p.AddChannel("proberepumpshutter"); p.AddAnalogValue("coil0current", 0, 0); p.AddAnalogValue("coil1current", 0, 0); p.AddAnalogValue("aom0frequency", 0, (double)Parameters["aom0Detuning"]); p.AddAnalogValue("aom1frequency", 0, (double)Parameters["aom1Detuning"]); p.AddAnalogValue("aom2frequency", 0, (double)Parameters["aom2Detuning"]); p.AddAnalogValue("aom3frequency", 0, (double)Parameters["aom3Detuning"]); p.AddAnalogValue("aom0amplitude", 0, 6.0); p.AddAnalogValue("aom1amplitude", 0, 6.0); p.AddAnalogValue("proberepumpshutter", 0, 5.0); p.AddAnalogValue("aom3frequency", (int)Parameters["Frame0Trigger"] - 10, (double)Parameters["absImageDetuning"]); p.AddAnalogPulse("aom1frequency", (int)Parameters["Frame0Trigger"] - 1, (int)Parameters["ExposureTime"] + 2, (double)Parameters["absImageRepumpDetuning"], (double)Parameters["aom1Detuning"]); p.AddAnalogPulse("aom1frequency", (int)Parameters["Frame1Trigger"] - 1, (int)Parameters["ExposureTime"] + 2, (double)Parameters["absImageRepumpDetuning"], (double)Parameters["aom1Detuning"]); p.AddAnalogPulse("aom1frequency", (int)Parameters["Frame2Trigger"] - 1, (int)Parameters["ExposureTime"] + 2, (double)Parameters["absImageRepumpDetuning"], (double)Parameters["aom1Detuning"]); p.AddAnalogValue("coil0current", 135000, 0); p.AddAnalogValue("coil1current", 135000, 0); p.SwitchAllOffAtEndOfPattern(); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new SHLoadMOT(p, Parameters); p.AddChannel("aom0frequency"); p.AddChannel("aom1frequency"); p.AddChannel("aom2frequency"); p.AddChannel("aom3frequency"); p.AddAnalogValue("coil0current", 0, 0); p.AddAnalogValue("coil1current", 0, 0); p.AddAnalogValue("aom0frequency", 0, (double)Parameters["aom0Detuning"]); p.AddAnalogValue("aom1frequency", 0, (double)Parameters["aom1Detuning"]); p.AddAnalogValue("aom2frequency", 0, (double)Parameters["aom2Detuning"]); p.AddAnalogValue("aom3frequency", 0, (double)Parameters["aom3Detuning"]); p.AddAnalogValue("aom3frequency", (int)Parameters["Frame0Trigger"] - 10, (double)Parameters["absImageDetuning"]); p.AddAnalogPulse("coil0current", (int)Parameters["MOTLoadDuration"], (int)Parameters["ReleaseTime"], 0, (double)Parameters["BottomMOTCoilCurrent"]); p.AddAnalogPulse("coil1current", (int)Parameters["MOTLoadDuration"], (int)Parameters["ReleaseTime"], 0, (double)Parameters["TopMOTCoilCurrent"]); p.AddAnalogValue("coil0current", 110000, 0); p.AddAnalogValue("coil1current", 110000, 0); p.SwitchAllOffAtEndOfPattern(); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new LoadMoleculeMOT(p, Parameters); int patternStartBeforeQ = (int)Parameters["TCLBlockStart"]; int blueMOTSwitchTime = (int)Parameters["BlueMOTSwitchTime"]; int currentDirectionSwitchTime = blueMOTSwitchTime + (int)Parameters["BlueMOTSwitchDelay"]; int motCoilsSwitchOffTime = (int)Parameters["MOTCoilsSwitchOff"]; int currentDirectionSwitchBackTime = motCoilsSwitchOffTime + (int)Parameters["BlueMOTSwitchDelay"]; // Add Analog Channels p.AddChannel("v00Intensity"); p.AddChannel("v00Frequency"); p.AddChannel("xShimCoilCurrent"); p.AddChannel("yShimCoilCurrent"); p.AddChannel("zShimCoilCurrent"); p.AddChannel("v00EOMAmp"); // Slowing field p.AddAnalogValue("slowingCoilsCurrent", 0, (double)Parameters["slowingCoilsValue"]); p.AddAnalogValue("slowingCoilsCurrent", (int)Parameters["slowingCoilsOffTime"], 0.0); // B Field p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTCoilsSwitchOn"], (double)Parameters["MOTCoilsCurrentValue"]); p.AddAnalogPulse("MOTCoilsCurrent", currentDirectionSwitchTime, (int)Parameters["BlueMOTSwitchDuration"], 0.0, (double)Parameters["MOTCoilsBlueMOTCurrentValue"]); p.AddAnalogValue("MOTCoilsCurrent", motCoilsSwitchOffTime, 0.0); // Shim Fields p.AddAnalogValue("xShimCoilCurrent", 0, (double)Parameters["xShimLoadCurrent"]); p.AddAnalogValue("yShimCoilCurrent", 0, (double)Parameters["yShimLoadCurrent"]); p.AddAnalogValue("zShimCoilCurrent", 0, (double)Parameters["zShimLoadCurrent"]); // trigger delay // p.AddAnalogValue("triggerDelay", 0, (double)Parameters["triggerDelay"]); // F=0 p.AddAnalogValue("v00EOMAmp", 0, 5.7); // v0 Intensity Ramp p.AddAnalogValue("v00Intensity", 0, (double)Parameters["v0IntensityRampStartValue"]); p.AddLinearRamp("v00Intensity", (int)Parameters["v0IntensityRampStartTime"], (int)Parameters["v0IntensityRampDuration"], (double)Parameters["v0IntensityRampEndValue"]); p.AddAnalogValue("v00Intensity", blueMOTSwitchTime, (double)Parameters["v0IntensityRampStartValue"]); // v0 Frequency Ramp p.AddAnalogValue( "v00Frequency", 0, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyMOTValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"] ); p.AddAnalogValue( "v00Frequency", blueMOTSwitchTime, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyBlueMOTValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"] ); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new SHLoadMOT(p, Parameters); p.AddAnalogPulse("coil0current", (int)Parameters["MOTLoadDuration"], (int)Parameters["ReleaseTime"], 0, (double)Parameters["MOTCoilsCurrent"]); p.AddAnalogValue("coil0current", 115000, 0); p.SwitchAllOffAtEndOfPattern(); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new SHLoadMOT(p, Parameters); p.AddChannel("aom0frequency"); p.AddChannel("aom1frequency"); p.AddChannel("aom2frequency"); p.AddChannel("aom3frequency"); p.AddChannel("aom0amplitude"); p.AddChannel("aom1amplitude"); p.AddChannel("aom3amplitude"); p.AddChannel("offsetlockfrequency"); p.AddAnalogValue("coil0current", 0, 0); p.AddAnalogValue("coil1current", 0, 0); p.AddAnalogValue("aom0frequency", 0, (double)Parameters["aom0Detuning"]); p.AddAnalogValue("aom1frequency", 0, (double)Parameters["aom1Detuning"]); p.AddAnalogValue("aom2frequency", 0, (double)Parameters["aom2Detuning"]); p.AddAnalogValue("aom3frequency", 0, (double)Parameters["aom3Detuning"]); p.AddAnalogValue("aom0amplitude", 0, 6.0); p.AddAnalogValue("aom1amplitude", 0, 6.0); p.AddAnalogValue("aom3amplitude", 0, 6.0); p.AddAnalogValue("offsetlockfrequency", 0, (double)Parameters["offsetlockfrequency"]); p.AddAnalogValue("aom3frequency", (int)Parameters["Frame0Trigger"] - 10, (double)Parameters["absImageDetuning"]); p.AddAnalogValue("aom3amplitude", (int)Parameters["Frame0Trigger"] - 10, (double)Parameters["absImagePower"]); p.AddAnalogPulse("aom1frequency", (int)Parameters["Frame0Trigger"] - 1, (int)Parameters["ExposureTime"] + 2, (double)Parameters["absImageRepumpDetuning"], (double)Parameters["aom1Detuning"]); p.AddAnalogPulse("aom1frequency", (int)Parameters["Frame1Trigger"] - 1, (int)Parameters["ExposureTime"] + 2, (double)Parameters["absImageRepumpDetuning"], (double)Parameters["aom1Detuning"]); p.AddAnalogValue("coil0current", 130000, 0); p.AddAnalogValue("coil1current", 130000, 0); //p.SwitchAllOffAtEndOfPattern(); //I've commented this as it switches the VCO off, which unlocks the D1 laser. return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new SHLoadMOT(p, Parameters); p.AddChannel("aom0frequency"); p.AddChannel("aom1frequency"); p.AddChannel("aom2frequency"); p.AddChannel("aom3frequency"); p.AddChannel("aom0amplitude"); p.AddChannel("aom1amplitude"); p.AddChannel("aom3amplitude"); p.AddAnalogValue("coil0current", 0, 0); p.AddAnalogValue("coil1current", 0, 0); p.AddAnalogValue("aom0frequency", 0, (double)Parameters["aom0Detuning"]); p.AddAnalogValue("aom1frequency", 0, (double)Parameters["aom1Detuning"]); p.AddAnalogValue("aom2frequency", 0, (double)Parameters["aom2Detuning"]); p.AddAnalogValue("aom3frequency", 0, (double)Parameters["aom3Detuning"]); p.AddAnalogValue("aom0amplitude", 0, 6.0); p.AddAnalogValue("aom1amplitude", 0, (double)Parameters["aom1Power"]); p.AddAnalogValue("aom3amplitude", 0, 6.0); p.AddAnalogValue("aom3frequency", (int)Parameters["Frame0Trigger"] - 10, (double)Parameters["absImageDetuning"]); p.AddAnalogValue("aom3amplitude", (int)Parameters["Frame0Trigger"] - 10, (double)Parameters["absImagePower"]); p.AddAnalogPulse("aom1frequency", (int)Parameters["Frame0Trigger"] - 1, (int)Parameters["ExposureTime"] + 2, (double)Parameters["absImageRepumpDetuning"], (double)Parameters["aom1Detuning"]); //cooling pulse - linearly ramp MOT frequency, amplitude and repump amplitude //p.AddLinearRamp("aom0frequency", (int)Parameters["CMOTStartTime"], 650, (double)Parameters["CoolingPulseDetuning"]); p.AddLinearRamp("aom0amplitude", (int)Parameters["CMOTStartTime"], 650, (double)Parameters["CoolingPulseIntensity"]); p.AddLinearRamp("aom1amplitude", (int)Parameters["CMOTStartTime"], 650, (double)Parameters["CoolingPulseRepumpIntensity"]); //use to linearly ramp the magnetic field up during the CMOT phase p.AddLinearRamp("coil0current", (int)Parameters["CMOTStartTime"], 650, (double)Parameters["BottomMagCoilCurrent"]); p.AddLinearRamp("coil1current", (int)Parameters["CMOTStartTime"], 650, (double)Parameters["TopMagCoilCurrent"]); //use to linearly ramp the magnetic field up whilst the atoms are in the magnetic trap //p.AddLinearRamp("coil0current", (int)Parameters["CMOTEndTime"] + 1, (int)Parameters["SecondaryRampLength"], (double)Parameters["BottomMagCoilCurrentFinal"]); //p.AddLinearRamp("coil1current", (int)Parameters["CMOTEndTime"] + 1, (int)Parameters["SecondaryRampLength"], (double)Parameters["TopMagCoilCurrentFinal"]); //use to switch the magnetic field up during the CMOT phase //p.AddAnalogValue("coil0current", (int)Parameters["CMOTStartTime"], (double)Parameters["BottomMagCoilCurrent"]); //p.AddAnalogValue("coil1current", (int)Parameters["CMOTStartTime"], (double)Parameters["TopMagCoilCurrent"]); //linearly ramp MOT frequency, amplitude and repump amplitude back to usual MOT values //p.AddLinearRamp("aom0frequency", (int)Parameters["CMOTStartTime"] + 501, 500, (double)Parameters["aom0Detuning"]); //p.AddLinearRamp("aom0amplitude", (int)Parameters["CMOTStartTime"] + 501, 500, 6.0); //p.AddLinearRamp("aom1amplitude", (int)Parameters["CMOTStartTime"] + 501, 500, (double)Parameters["aom1Power"]); //linearly ramp the magnetic field back down to the usual MOT parameters //p.AddLinearRamp("coil0current", (int)Parameters["CMOTStartTime"] + 501, 500, (double)Parameters["BottomMOTCoilCurrent"]); //p.AddLinearRamp("coil1current", (int)Parameters["CMOTStartTime"] + 501, 500, (double)Parameters["TopMOTCoilCurrent"]); //for loading into the mag trap - linearly ramp the magnetic field back down whilst the atoms are in the mag trap //p.AddLinearRamp("coil0current", (int)Parameters["MagRampDownTime"] + 1, (int)Parameters["SecondaryRampLength"], (double)Parameters["BottomMagCoilCurrent"]); //p.AddLinearRamp("coil1current", (int)Parameters["MagRampDownTime"] + 1, (int)Parameters["SecondaryRampLength"], (double)Parameters["TopMagCoilCurrent"]); //for loading into mag trap - linearly ramp MOT frequency, amplitude and repump amplitude back to usual MOT values //p.AddLinearRamp("aom0frequency", (int)Parameters["CMOTEndTime"] + 501, 650, (double)Parameters["aom0Detuning"]); p.AddLinearRamp("aom0amplitude", (int)Parameters["CMOTRecaptureTime"] + 10, 650, 6.0); p.AddLinearRamp("aom1amplitude", (int)Parameters["CMOTRecaptureTime"] + 10, 650, (double)Parameters["aom1Power"]); //for loading into the mag trap - linearly ramp the magnetic field back down to the usual MOT parameters p.AddLinearRamp("coil0current", (int)Parameters["CMOTRecaptureTime"] + 10, 650, (double)Parameters["BottomMOTCoilCurrent"]); p.AddLinearRamp("coil1current", (int)Parameters["CMOTRecaptureTime"] + 10, 650, (double)Parameters["TopMOTCoilCurrent"]); //for loading into the mag trap - switch the magnetic field back down to the usual MOT parameters //p.AddAnalogValue("coil0current", (int)Parameters["CMOTEndTime"] + 501, (double)Parameters["BottomMOTCoilCurrent"]); //p.AddAnalogValue("coil1current", (int)Parameters["CMOTEndTime"] + 501, (double)Parameters["TopMOTCoilCurrent"]); //switch MOT frequency, amplitude and repump amplitude back to usual MOT values //p.AddAnalogValue("aom0frequency", (int)Parameters["CMOTStartTime"] + 501, (double)Parameters["aom0Detuning"]); //p.AddAnalogValue("aom0amplitude", (int)Parameters["CMOTStartTime"] + 501, 6.0); //p.AddAnalogValue("aom1amplitude", (int)Parameters["CMOTStartTime"] + 501, (double)Parameters["aom1Power"]); //switch magnetic field back down to the usual MOT parameters //p.AddAnalogValue("coil0current", (int)Parameters["CMOTStartTime"] + 501, (double)Parameters["BottomMOTCoilCurrent"]); //p.AddAnalogValue("coil1current", (int)Parameters["CMOTStartTime"] + 501, (double)Parameters["TopMOTCoilCurrent"]); p.AddAnalogValue("aom1frequency", (int)Parameters["Frame1Trigger"] - 1, (double)Parameters["absImageRepumpDetuning"]); p.AddAnalogValue("coil0current", (int)Parameters["MOTEndTime"], 0); p.AddAnalogValue("coil1current", (int)Parameters["MOTEndTime"], 0); p.SwitchAllOffAtEndOfPattern(); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new SHLoadMOT(p, Parameters); p.AddChannel("aom0frequency"); p.AddChannel("aom1frequency"); p.AddChannel("aom2frequency"); p.AddChannel("aom3frequency"); p.AddChannel("aom0amplitude"); p.AddChannel("aom1amplitude"); p.AddChannel("aom3amplitude"); p.AddAnalogValue("coil0current", 0, 0); p.AddAnalogValue("coil1current", 0, 0); p.AddAnalogValue("aom0frequency", 0, (double)Parameters["aom0Detuning"]); p.AddAnalogValue("aom1frequency", 0, (double)Parameters["aom1Detuning"]); p.AddAnalogValue("aom2frequency", 0, (double)Parameters["aom2Detuning"]); p.AddAnalogValue("aom3frequency", 0, (double)Parameters["aom3Detuning"]); p.AddAnalogValue("aom0amplitude", 0, 6.0); p.AddAnalogValue("aom1amplitude", 0, 6.0); p.AddAnalogValue("aom3amplitude", 0, 6.0); p.AddAnalogValue("aom3frequency", (int)Parameters["Frame0Trigger"] - 10, (double)Parameters["AbsorptionDetuning"]); p.AddAnalogValue("aom3amplitude", (int)Parameters["Frame0Trigger"] - 10, (double)Parameters["AbsorptionPower"]); p.AddAnalogPulse("aom1frequency", (int)Parameters["Frame0Trigger"] - 1, (int)Parameters["ExposureTime"] + 2, (double)Parameters["ProbeRepumpDetuning"], (double)Parameters["aom1Detuning"]); //cooling pulse - switch MOT frequency, amplitude and repump amplitude //p.AddAnalogPulse("aom0frequency", (int)Parameters["CoolingPulseStartTime"], (int)Parameters["CoolingPulseDuration"], (double)Parameters["CoolingPulseDetuning"], (double)Parameters["aom0Detuning"]); //p.AddAnalogPulse("aom0amplitude", (int)Parameters["CoolingPulseStartTime"], (int)Parameters["CoolingPulseDuration"], (double)Parameters["CoolingPulseIntensity"], 6.0); //p.AddAnalogPulse("aom1amplitude", (int)Parameters["CoolingPulseStartTime"], (int)Parameters["CoolingPulseDuration"], (double)Parameters["CoolingPulseRepumpIntensity"], 6.0); //cooling pulse - linearly ramp MOT frequency, amplitude and repump amplitude //p.AddLinearRamp("aom0frequency", (int)Parameters["CoolingPulseStartTime"], (int)Parameters["CoolingPulseDuration"], (double)Parameters["CoolingPulseDetuning"]); p.AddLinearRamp("aom0amplitude", (int)Parameters["CoolingPulseStartTime"], (int)Parameters["CoolingPulseDuration"], (double)Parameters["CoolingPulseIntensity"]); p.AddLinearRamp("aom1amplitude", (int)Parameters["CoolingPulseStartTime"], (int)Parameters["CoolingPulseDuration"], (double)Parameters["CoolingPulseRepumpIntensity"]); //use for switching the magnetic field to a higher value during the CMOT phase //p.AddAnalogValue("coil0current", (int)Parameters["CMOTStartTime"], (double)Parameters["BottomMagCoilCurrent"]); //p.AddAnalogValue("coil1current", (int)Parameters["CMOTStartTime"], (double)Parameters["TopMagCoilCurrent"]); //use to linearly ramp the magnetic field up during the CMOT phase p.AddLinearRamp("coil0current", (int)Parameters["CMOTStartTime"], (int)Parameters["CoolingPulseDuration"], (double)Parameters["BottomMagCoilCurrent"]); p.AddLinearRamp("coil1current", (int)Parameters["CMOTStartTime"], (int)Parameters["CoolingPulseDuration"], (double)Parameters["TopMagCoilCurrent"]); //secondary ramp - use to linearly ramp the magnetic field up whilst the atoms are in the magnetic trap //p.AddLinearRamp("coil0current", (int)Parameters["CMOTEndTime"] + 1, 1000, (double)Parameters["BottomMagCoilCurrentFinal"]); //p.AddLinearRamp("coil1current", (int)Parameters["CMOTEndTime"] + 1, 1000, (double)Parameters["TopMagCoilCurrentFinal"]); // pulsing off magnetic field in order to optically pump the atoms //p.AddAnalogPulse("coil0current", (int)Parameters["CMOTEndTime"], 10000, 0.0, (double)Parameters["BottomMagCoilCurrent"]); //p.AddAnalogPulse("coil1current", (int)Parameters["CMOTEndTime"], 10000, 0.0, (double)Parameters["TopMagCoilCurrent"]); //use for imaging the cloud released from the mag trap //p.AddAnalogPulse("aom1frequency", (int)Parameters["Frame1Trigger"] - 2, (int)Parameters["ExposureTime"] + 4, (double)Parameters["ProbeRepumpDetuning"], (double)Parameters["aom1Detuning"]); //p.AddAnalogValue("aom1amplitude", (int)Parameters["CMOTEndTime"] + 2, 6.0); //p.AddAnalogValue("aom1frequency", (int)Parameters["CMOTEndTime"] + 2, (double)Parameters["ProbeRepumpDetuning"]); //p.AddAnalogValue("coil0current", (int)Parameters["Frame2Trigger"] - 2, 0); //p.AddAnalogValue("coil1current", (int)Parameters["Frame2Trigger"] - 2, 0); //secondary ramp - use for ramping the current down whilst the atoms are in the magnetic trap //p.AddLinearRamp("coil0current", (int)Parameters["ReformMOTTime"] - 1000, 1000, (double)Parameters["BottomMagCoilCurrent"]); //p.AddLinearRamp("coil1current", (int)Parameters["ReformMOTTime"] - 1000, 1000, (double)Parameters["TopMagCoilCurrent"]); //use for imaging the atoms in the reformed MOT (linear ramp of parameters back to usual MOT values) //p.AddLinearRamp("aom0amplitude", (int)Parameters["ReformMOTTime"] + 1, (int)Parameters["CoolingPulseDuration"], 6.0); //p.AddLinearRamp("aom1amplitude", (int)Parameters["ReformMOTTime"] + 1, (int)Parameters["CoolingPulseDuration"], 6.0); //p.AddLinearRamp("coil0current", (int)Parameters["ReformMOTTime"] + 1, (int)Parameters["CoolingPulseDuration"], (double)Parameters["BottomMOTCoilCurrent"]); //p.AddLinearRamp("coil1current", (int)Parameters["ReformMOTTime"] + 1, (int)Parameters["CoolingPulseDuration"], (double)Parameters["TopMOTCoilCurrent"]); //p.AddAnalogPulse("aom1frequency", (int)Parameters["Frame2Trigger"] - 1, (int)Parameters["ExposureTime"] + 2, (double)Parameters["ProbeRepumpDetuning"], (double)Parameters["aom1Detuning"]); p.AddAnalogValue("coil0current", (int)Parameters["CMOTEndTime"], 0); p.AddAnalogValue("coil1current", (int)Parameters["CMOTEndTime"], 0); p.AddAnalogValue("aom1amplitude", (int)Parameters["CMOTEndTime"] + 1, 6.0); p.AddAnalogValue("aom1frequency", (int)Parameters["CMOTEndTime"] + 1, (double)Parameters["ProbeRepumpDetuning"]); p.SwitchAllOffAtEndOfPattern(); return(p); }