public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new LoadMoleculeMOT(p, Parameters); int molassesStartTime = (int)Parameters["MOTSwitchOffTime"] + (int)Parameters["MolassesDelay"]; int molassesRampTime = molassesStartTime + (int)Parameters["MolassesHoldTime"]; int blueMOTCaptureTime = molassesRampTime + (int)Parameters["MolassesRampDuration"]; int imageTime = blueMOTCaptureTime + (int)Parameters["MOTWaitBeforeImage"]; // Add Analog Channels p.AddChannel("v00Intensity"); p.AddChannel("v00Frequency"); p.AddChannel("xShimCoilCurrent"); p.AddChannel("yShimCoilCurrent"); p.AddChannel("v00EOMAmp"); p.AddChannel("zShimCoilCurrent"); // 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["MOTCoilsCurrentRampStartValue"]); p.AddLinearRamp("MOTCoilsCurrent", (int)Parameters["MOTCoilsCurrentRampStartTime"], (int)Parameters["MOTCoilsCurrentRampDuration"], (double)Parameters["MOTCoilsCurrentRampEndValue"]); //p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTSwitchOffTime"], (double)Parameters["MOTCoilsCurrentMolassesValue"]); p.AddAnalogValue("MOTCoilsCurrent", blueMOTCaptureTime, (double)Parameters["MOTCoilsCurrentBlueMOTValue"]); p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["CoilsSwitchOffTime"], 0.0); // Shim Fields p.AddAnalogValue("xShimCoilCurrent", 0, (double)Parameters["xShimLoadCurrent"]); p.AddAnalogValue("zShimCoilCurrent", 0, (double)Parameters["zShimLoadCurrent"]); // 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", molassesStartTime, (double)Parameters["v0IntensityMolassesValue"]); p.AddAnalogValue("v00Intensity", molassesRampTime + 50, 7.4); p.AddAnalogValue("v00Intensity", molassesRampTime + 200, 7.83); p.AddAnalogValue("v00Intensity", molassesRampTime + 150, 8.09); p.AddAnalogValue("v00Intensity", blueMOTCaptureTime, (double)Parameters["v0IntensityBlueMOTValue"]); // v0 EOM p.AddAnalogValue("v00EOMAmp", 0, (double)Parameters["v0EOMMOTValue"]); // v0 Frequency Ramp p.AddAnalogValue("v00Frequency", 0, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyMOTValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"]); p.AddAnalogValue( "v00Frequency", molassesStartTime, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyMolassesValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"] ); p.AddAnalogValue( "v00Frequency", blueMOTCaptureTime, ((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"]); int imageTime = (int)Parameters["LoadingDuration"]; // Add Analog Channels p.AddChannel("MOTCoilsCurrent"); p.AddChannel("xShimCoilCurrent"); p.AddChannel("yShimCoilCurrent"); p.AddChannel("zShimCoilCurrent"); p.AddChannel("rbCoolingIntensity"); p.AddChannel("rbCoolingFrequency"); // B Field p.AddAnalogValue("MOTCoilsCurrent", 0, (double)Parameters["MOTCoilsCurrentValue"]); p.AddAnalogValue("MOTCoilsCurrent", imageTime + 2000, 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"]); // Cooling Intensity p.AddAnalogValue("rbCoolingIntensity", 0, (double)Parameters["rbCoolingMOTIntensity"]); // Cooling frequency p.AddAnalogValue("rbCoolingFrequency", 0, (double)Parameters["rbCoolingMOTLoadingFrequency"]); p.AddAnalogValue("rbCoolingFrequency", imageTime - 200, (double)Parameters["rbCoolingImagingFrequency"]); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new LoadMoleculeMOT(p, Parameters); // Add Analog Channels p.AddChannel("v0IntensityRamp"); p.AddChannel("v0FrequencyRamp"); p.AddChannel("xShimCoilCurrent"); p.AddChannel("zShimCoilCurrent"); // B Field // For the delta electronica box (bottom MOT coil) - top coil is in digital section p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTCoilsSwitchOn"], (double)Parameters["MOTCoilsCurrentRampStartValue"]); p.AddLinearRamp("MOTCoilsCurrent", (int)Parameters["MOTCoilsCurrentRampStartTime"], (int)Parameters["MOTCoilsCurrentRampDuration"], (double)Parameters["MOTCoilsCurrentRampEndValue"]); p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTCoilsSwitchOff"], 0); p.AddAnalogValue("MOTBOPCoilsCurrent", (int)Parameters["MOTCoilsSwitchOn"], (double)Parameters["MOTCoilsCurrentRampStartValue"]); p.AddLinearRamp("MOTBOPCoilsCurrent", (int)Parameters["MOTCoilsCurrentRampStartTime"], (int)Parameters["MOTCoilsCurrentRampDuration"], (double)Parameters["MOTCoilsCurrentRampEndValue"]); p.AddAnalogValue("MOTBOPCoilsCurrent", (int)Parameters["MOTCoilsSwitchOff"], 0); // Shim Fields p.AddAnalogValue("xShimCoilCurrent", 0, (double)Parameters["xShimLoadCurrent"]); p.AddAnalogValue("zShimCoilCurrent", 0, (double)Parameters["zShimLoadCurrent"]); // v0 Intensity Ramp p.AddAnalogValue("v0IntensityRamp", 0, (double)Parameters["v0IntensityValue"]); // v0 Frequency Ramp p.AddAnalogValue("v0FrequencyRamp", 0, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyLoadValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"]); //p.AddAnalogValue("v0FrequencyRamp", 5500, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyImageValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"]); 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 LoadMoleculeMOT(p, Parameters); // Add Analog Channels p.AddChannel("v0IntensityRamp"); p.AddChannel("v0FrequencyRamp"); // B Field // For the delta electronica box (bottom MOT coil) - top coil is in digital section p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTCoilsSwitchOn"], (double)Parameters["MOTCoilsCurrentRampStartValue"]); p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTCoilsSwitchOff"], 0); // v0 Intensity Ramp p.AddAnalogValue("v0IntensityRamp", 0, (double)Parameters["v0IntensityRampStartValue"]); p.AddLinearRamp("v0IntensityRamp", (int)Parameters["v0IntensityRampStartTime"], (int)Parameters["v0IntensityRampDuration"], (double)Parameters["v0IntensityRampEndValue"]); //ramp extension below // p.AddLinearRamp("v0IntensityRamp", (int)Parameters["v0IntensityRampStartTime"] + (int)Parameters["v0IntensityRampDuration"]+1, (int)Parameters["v0IntensityRampDuration2"], (double)Parameters["v0IntensityRampEndValue2"]); p.AddAnalogValue("v0IntensityRamp", (int)Parameters["MOTSwitchOffTime"], (double)Parameters["v0IntensityRampStartValue"]); //(int)Parameters["MOTAOMStartTime"] // v0 Frequency Ramp //p.AddAnalogValue("v0FrequencyRamp", 0, (double)Parameters["v0FrequencyRampStartValue"]); //p.AddAnalogValue("v0FrequencyRamp", (int)Parameters["MOTSwitchOffTime"], (double)Parameters["v0FrequencyRampEndValue"]); //jump aom frequency back to normal for imaging // v0 Frequency Ramp p.AddAnalogValue("v0FrequencyRamp", 0, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyStartValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"]); p.AddAnalogValue("v0FrequencyRamp", 4800, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyNewValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"]); p.AddAnalogValue("v0FrequencyRamp", (int)Parameters["MOTSwitchOffTime"], ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyStartValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"]); //jump aom frequency back to normal for imaging p.SwitchAllOffAtEndOfPattern(); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new LoadMoleculeMOT(p, Parameters); // Add Analog Channels p.AddChannel("v0IntensityRamp"); p.AddChannel("v0FrequencyRamp"); p.AddChannel("xShimCoilCurrent"); p.AddChannel("zShimCoilCurrent"); // B Field // For the delta electronica box (bottom MOT coil) - top coil is in digital section p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTCoilsSwitchOn"], (double)Parameters["MOTCoilsCurrentRampStartValue"]); p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTCoilsSwitchOff"], 0); // For BOP p.AddAnalogValue("MOTBOPCoilsCurrent", (int)Parameters["MOTCoilsSwitchOn"], (double)Parameters["MOTBOPCoilsCurrentStartValue"]); p.AddAnalogValue("MOTBOPCoilsCurrent", (int)Parameters["MOTCoilsSwitchOff"], (double)Parameters["MOTBOPCoilsCurrentMolassesValue"]); // Shim Fields p.AddAnalogValue("xShimCoilCurrent", 0, (double)Parameters["xShimLoadCurrent"]); p.AddAnalogValue("zShimCoilCurrent", 0, (double)Parameters["zShimLoadCurrent"]); // v0 Intensity Ramp p.AddAnalogValue("v0IntensityRamp", 0, (double)Parameters["v0IntensityRampStartValue"]); // v0 Frequency Ramp p.AddAnalogValue("v0FrequencyRamp", 0, (double)Parameters["v0FrequencyRampStartValue"]); p.SwitchAllOffAtEndOfPattern(); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new LoadMoleculeMOT(p, Parameters); // Add Analog Channels p.AddChannel("v00Intensity"); p.AddChannel("v00Frequency"); p.AddChannel("xShimCoilCurrent"); p.AddChannel("yShimCoilCurrent"); p.AddChannel("zShimCoilCurrent"); p.AddChannel("v00EOMAmp"); p.AddChannel("v00Chirp"); // 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.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["Frame0Trigger"], 0.0); //p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["Frame0Trigger"]-50, 0.0); p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTCoilsSwitchOff"], 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, 4.7); // v0 Intensity Ramp p.AddAnalogValue("v00Intensity", 0, (double)Parameters["v0IntensityRampStartValue"]); // v0 Frequency Ramp p.AddAnalogValue("v00Frequency", 0, (double)Parameters["v0FrequencyStartValue"]); //v0 chirp p.AddAnalogValue("v00Chirp", 0, 0.0); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); int motCompressStartTime = (int)Parameters["LoadingDuration"]; int molassesStartTime = motCompressStartTime + (int)Parameters["MOTCoilsCurrentRampDuration"] + (int)Parameters["MOTCoilsCurrentWaitAfterRamp"]; int releaseTime = molassesStartTime + (int)Parameters["MolassesDuration"]; int imageTime = releaseTime + (int)Parameters["ExpansionTime"]; // Add Analog Channels p.AddChannel("MOTCoilsCurrent"); p.AddChannel("xShimCoilCurrent"); p.AddChannel("yShimCoilCurrent"); p.AddChannel("zShimCoilCurrent"); p.AddChannel("rbCoolingIntensity"); // B Field p.AddAnalogValue("MOTCoilsCurrent", 0, (double)Parameters["MOTCoilsCurrentValue"]); p.AddAnalogValue("MOTCoilsCurrent", molassesStartTime, 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"]); // Cooling light intensity p.AddAnalogValue("rbCoolingIntensity", 0, (double)Parameters["rbCoolingMOTIntensity"]); p.AddAnalogValue("rbCoolingIntensity", molassesStartTime, (double)Parameters["rbCoolingMolassesIntensity"]); p.AddAnalogValue("rbCoolingIntensity", molassesStartTime + 100, 1.79); p.AddAnalogValue("rbCoolingIntensity", molassesStartTime + 200, 1.65); p.AddAnalogValue("rbCoolingIntensity", molassesStartTime + 300, 1.48); p.AddAnalogValue("rbCoolingIntensity", molassesStartTime + 400, 1.397); p.AddAnalogValue("rbCoolingIntensity", molassesStartTime + 600, 1.316); p.AddAnalogValue("rbCoolingIntensity", imageTime, (double)Parameters["rbCoolingMOTIntensity"]); 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, 212.713); p.AddAnalogValue("aom1frequency", 0, 203.875); p.AddAnalogValue("aom2frequency", 0, 200.875); p.AddAnalogValue("aom3frequency", 0, 200.875); p.AddAnalogValue("aom2frequency", (int)Parameters["Frame0Trigger"] - 200, (double)Parameters["ZeemanDetuning"]); p.AddAnalogValue("aom3frequency", (int)Parameters["Frame0Trigger"] - 200, (double)Parameters["AbsorptionDetuning"]); p.AddAnalogValue("aom2frequency", (int)Parameters["Frame0Trigger"] + (int)Parameters["ExposureTime"] + 100, 200.875); p.AddAnalogValue("aom3frequency", (int)Parameters["Frame0Trigger"] + (int)Parameters["ExposureTime"] + 100, 200.875); //p.AddAnalogPulse("aom2frequency", (int)Parameters["Frame0Trigger"] - 200, (int)Parameters["ExposureTime"] + 300, 200.875, (double)Parameters["ZeemanDetuning"]); //p.AddAnalogPulse("aom3frequency", (int)Parameters["Frame0Trigger"] - 200, (int)Parameters["ExposureTime"] + 300, 200.875, (double)Parameters["AbsorptionDetuning"]); p.AddAnalogValue("aom2frequency", (int)Parameters["Frame1Trigger"] - 200, (double)Parameters["ZeemanDetuning"]); p.AddAnalogValue("aom3frequency", (int)Parameters["Frame1Trigger"] - 200, (double)Parameters["AbsorptionDetuning"]); p.AddLinearRamp("coil0current", 1000000, 2500, (double)Parameters["BottomFinalCoilCurrent"]); p.AddLinearRamp("coil1current", 1000000, 2500, (double)Parameters["TopFinalCoilCurrent"]); //p.AddAnalogValue("coil0current", 1000000, (double)Parameters["BottomFinalCoilCurrent"]); //p.AddAnalogValue("coil1current", 1000000, (double)Parameters["TopFinalCoilCurrent"]); p.AddAnalogValue("coil0current", 1050000, 0); p.AddAnalogValue("coil1current", 1050000, 0); //p.AddAnalogValue("aom2frequency", (int)Parameters["Frame4Trigger"] - 200, 200.875); //p.AddAnalogValue("aom3frequency", (int)Parameters["Frame4Trigger"] - 200, 200.875); 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("aom2amplitude"); //initialises all channels before the MOT starts loading p.AddAnalogValue("coil0current", 0, 0); p.AddAnalogValue("coil1current", 0, 0); p.AddAnalogValue("aom0frequency", 0, (double)Parameters["MOTDetuning"]); p.AddAnalogValue("aom1frequency", 0, (double)Parameters["MOTRepumpDetuning"]); p.AddAnalogValue("aom2frequency", 0, (double)Parameters["ZeemanDetuning"]); p.AddAnalogValue("aom3frequency", 0, (double)Parameters["AbsorptionDetuning"]); p.AddAnalogValue("aom0amplitude", 0, (double)Parameters["MOTIntensity"]); p.AddAnalogValue("aom1amplitude", 0, (double)Parameters["MOTRepumpIntensity"]); p.AddAnalogValue("aom3amplitude", 0, 6.0); //p.AddAnalogValue("aom2amplitude", 0, (double)Parameters["ZeemanIntensity"]); //cooling pulse - linearly ramp MOT amplitude and repump amplitude //p.AddLinearRamp("aom0frequency", (int)Parameters["CMOTStartTime"], (int)Parameters["CoolingPulseDuration"], (double)Parameters["CoolingPulseDetuning"]); p.AddLinearRamp("aom0amplitude", (int)Parameters["CMOTStartTime"], (int)Parameters["CoolingPulseDuration"], (double)Parameters["CoolingPulseIntensity"]); p.AddLinearRamp("aom1amplitude", (int)Parameters["CMOTStartTime"], (int)Parameters["CoolingPulseDuration"], (double)Parameters["CoolingPulseRepumpIntensity"]); //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"]); p.AddAnalogValue("aom0amplitude", (int)Parameters["CMOTEndTime"] + 1, (double)Parameters["MOTIntensity"]); //p.AddAnalogValue("aom0frequency", (int)Parameters["CMOTEndTime"] + 1, (double)Parameters["MOTDetuning"]); p.AddAnalogValue("aom1amplitude", (int)Parameters["CMOTEndTime"] + 1, (double)Parameters["AbsRepumpIntensity"]); p.AddAnalogValue("aom1frequency", (int)Parameters["CMOTEndTime"] + 1, (double)Parameters["AbsRepumpDetuning"]); p.AddAnalogValue("aom3frequency", (int)Parameters["CMOTEndTime"] + 1, (double)Parameters["AbsDetuning"]); p.AddAnalogValue("aom3amplitude", (int)Parameters["CMOTEndTime"] + 1, (double)Parameters["AbsPower"]); //use to linearly ramp the magnetic field whilst the atoms are in the magnetic trap //p.AddLinearRamp("coil0current", (int)Parameters["CMOTEndTime"] + 1, (int)Parameters["SecondRampLength"], (double)Parameters["BottomMagCoilCurrentFinal"]); //p.AddLinearRamp("coil1current", (int)Parameters["CMOTEndTime"] + 1, (int)Parameters["SecondRampLength"], (double)Parameters["TopMagCoilCurrentFinal"]); //switches off the magnetic field to image the mag trap atoms p.AddAnalogValue("coil0current", (int)Parameters["MagTrapEndTime"] + 4, 0); p.AddAnalogValue("coil1current", (int)Parameters["MagTrapEndTime"] + 4, 0); p.SwitchAllOffAtEndOfPattern(); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); p.AddChannel("offsetlockfrequency"); p.AddAnalogValue("offsetlockfrequency", 0, (double)Parameters["StartOLF"]); p.AddLinearRamp("offsetlockfrequency", (int)Parameters["SwitchTime"], 100, (double)Parameters["FinalOLF"]); p.SwitchAllOffAtEndOfPatternExcept(new string[] { "offsetlockfrequency" }); 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); //setting up the MOT p.AddAnalogValue("offsetlockfrequency", 0, 10.0); //set the offset frequency for the D1 laser //Turn coils off to start D1 phase, adjust repumper beam power for D1 cooling p.AddAnalogValue("coil0current", (int)Parameters["D1StartTime"] - 2, 0); p.AddAnalogValue("coil1current", (int)Parameters["D1StartTime"] - 2, 0); p.AddAnalogValue("coil1current", (int)Parameters["D1StartTime"], 0); p.AddAnalogValue("aom1amplitude", (int)Parameters["D1StartTime"] - 3, (double)Parameters["D1RepumperPower"]); p.AddAnalogValue("aom1frequency", (int)Parameters["D1StartTime"] - 3, (double)Parameters["D1RepumperDetuning"]); p.AddAnalogValue("aom0frequency", (int)Parameters["D1StartTime"] - 3, (double)Parameters["D1PrincipalDetuning"]); //Adjust the repumper beam power/detuning so we can optically pump to f=2 ground state p.AddAnalogValue("aom1amplitude", (int)Parameters["D1StartTime"] + 0, 0.5); p.AddAnalogValue("aom1frequency", (int)Parameters["D1StartTime"] + 0, (double)Parameters["absImageRepumpDetuning"]); //Taking the pictures p.AddAnalogValue("aom3frequency", (int)Parameters["D1StartTime"] + 0, (double)Parameters["absImageDetuning"]); p.AddAnalogValue("aom3amplitude", (int)Parameters["D1StartTime"] + 0, (double)Parameters["absImagePower"]); p.SwitchAllOffAtEndOfPattern(); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new LoadMoleculeMOT(p, Parameters); int molassesStartTime = (int)Parameters["MOTSwitchOffTime"] + (int)Parameters["MolassesDelay"]; int molassesRampTime = molassesStartTime + (int)Parameters["MolassesHoldTime"]; int releaseTime = molassesRampTime + (int)Parameters["MolassesRampDuration"]; int imagingLightOnTime = releaseTime + (int)Parameters["ExpansionTime"]; int cameraTriggerTime = imagingLightOnTime + (int)Parameters["WaitBeforeImage"]; // 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["MOTCoilsCurrentRampStartValue"]); p.AddLinearRamp("MOTCoilsCurrent", (int)Parameters["MOTCoilsCurrentRampStartTime"], (int)Parameters["MOTCoilsCurrentRampDuration"], (double)Parameters["MOTCoilsCurrentRampEndValue"]); p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTSwitchOffTime"], (double)Parameters["MOTCoilsCurrentMolassesValue"]); //p.AddAnalogValue("MOTCoilsCurrent", imagingLightOnTime, (double)Parameters["MOTCoilsCurrentRampStartValue"]); p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["CoilsSwitchOffTime"], 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"]); // 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", molassesStartTime, (double)Parameters["v0IntensityMolassesValue"]); p.AddAnalogValue("v00Intensity", molassesRampTime + 50, 7.4); p.AddAnalogValue("v00Intensity", molassesRampTime + 100, 7.83); p.AddAnalogValue("v00Intensity", molassesRampTime + 150, 8.09); p.AddAnalogValue("v00Intensity", cameraTriggerTime, (double)Parameters["v0IntensityRampStartValue"]); // F=0 p.AddAnalogValue("v00EOMAmp", 0, 4.7); // v0 Frequency Ramp p.AddAnalogValue("v00Frequency", 0, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyStartValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"]); p.AddAnalogValue("v00Frequency", (int)Parameters["MOTSwitchOffTime"], ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyNewValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"]); //jump to blue detuning p.AddAnalogValue("v00Frequency", cameraTriggerTime, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyStartValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"]); //jump aom frequency back to normal for imaging 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"] - 2, (double)Parameters["AbsorptionDetuning"]); p.AddAnalogValue("coil0current", 185000, 0); p.AddAnalogValue("coil1current", 185000, 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, (double)Parameters["aom1Power"]); p.AddAnalogValue("aom3amplitude", 0, 6.0); p.AddAnalogValue("aom3frequency", (int)Parameters["Frame1Trigger"] - 10, (double)Parameters["absImageDetuning"]); p.AddAnalogValue("aom3amplitude", (int)Parameters["Frame1Trigger"] - 10, (double)Parameters["absImagePower"]); //cooling pulse - linearly ramp MOT amplitude and repump amplitude //p.AddLinearRamp("aom0frequency", (int)Parameters["CMOTStartTime"], 500, (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"]); p.AddAnalogValue("coil0current", (int)Parameters["CMOTEndTime"], 0); p.AddAnalogValue("coil1current", (int)Parameters["CMOTEndTime"], 0); p.AddAnalogValue("aom0amplitude", (int)Parameters["CMOTEndTime"] + 1, 6.0); p.AddAnalogValue("aom1amplitude", (int)Parameters["CMOTEndTime"] + 1, (double)Parameters["absImageRepumpPower"]); p.AddAnalogValue("aom1frequency", (int)Parameters["CMOTEndTime"] + 1, (double)Parameters["absImageRepumpDetuning"]); //use these for looking at expansion from the MOT with the magnetic field still on or measuring the temperature of the //atoms in the magnetic trap //p.AddAnalogValue("coil0current", 101150, 0); //p.AddAnalogValue("coil1current", 101150, 0); p.SwitchAllOffAtEndOfPattern(); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new LoadMoleculeMOT(p, Parameters); // Add Analog Channels p.AddChannel("v0IntensityRamp"); p.AddChannel("v0FrequencyRamp"); p.AddChannel("xShimCoilCurrent"); p.AddChannel("yShimCoilCurrent"); p.AddChannel("zShimCoilCurrent"); //p.AddChannel("triggerDelay"); p.AddChannel("motAOMAmp"); // B Field // For the delta electronica box (bottom MOT coil) - top coil is in digital section p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTCoilsSwitchOn"], (double)Parameters["MOTCoilsCurrentRampStartValue"]); p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTCoilsSwitchOff"], 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"]); // v0 Intensity Ramp p.AddAnalogValue("v0IntensityRamp", 0, (double)Parameters["v0IntensityRampStartValue"]); p.AddLinearRamp("v0IntensityRamp", (int)Parameters["v0IntensityRampStartTime"], (int)Parameters["v0IntensityRampDuration"], (double)Parameters["v0IntensityRampEndValue"]); p.AddAnalogValue("v0IntensityRamp", 10000, (double)Parameters["v0IntensityRampStartValue"]); //v0aomCalibrationValues Parameters["lockAomFrequency"] = 114.1; Parameters["calibOffset"] = 64.2129; Parameters["calibGradient"] = 5.55075; // v0 Frequency Ramp p.AddAnalogValue("v0FrequencyRamp", 0, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyStartValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"]); // v2 Frequency (dodgy code using an unused analogue output to control a TTL switch) p.AddAnalogValue("motAOMAmp", 0, (double)Parameters["v2AOMStartValue"]); p.AddAnalogValue("motAOMAmp", (int)Parameters["v2SwitchOffTime"], (double)Parameters["v2AOMOffValue"]); p.AddAnalogValue("motAOMAmp", (int)Parameters["v2SwitchOnTime"], (double)Parameters["v2AOMStartValue"]); 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 LoadMoleculeMOT(p, Parameters); // Add Analog Channels p.AddChannel("v0IntensityRamp"); p.AddChannel("v0FrequencyRamp"); p.AddChannel("xShimCoilCurrent"); p.AddChannel("yShimCoilCurrent"); p.AddChannel("triggerDelay"); p.AddChannel("motAOMAmp"); // Slowing field p.AddAnalogValue("slowingCoilsCurrent", 0, (double)Parameters["slowingCoilsValue"]); p.AddAnalogValue("slowingCoilsCurrent", (int)Parameters["slowingCoilsOffTime"], 0.0); // B Field p.AddAnalogValue("MOTCoilsCurrentTop", (int)Parameters["MOTCoilsSwitchOn"], (double)Parameters["MOTCoilsCurrentTopValue"]); p.AddAnalogValue("MOTCoilsCurrentTop", (int)Parameters["MOTCoilsSwitchOff"], 0.0); p.AddAnalogValue("MOTCoilsCurrentBottom", (int)Parameters["MOTCoilsSwitchOn"], (double)Parameters["MOTCoilsCurrentBottomValue"]); p.AddAnalogValue("MOTCoilsCurrentBottom", (int)Parameters["MOTCoilsSwitchOff"], 0.0); // Shim Fields p.AddAnalogValue("xShimCoilCurrent", 0, (double)Parameters["xShimLoadCurrent"]); p.AddAnalogValue("yShimCoilCurrent", 0, (double)Parameters["yShimLoadCurrent"]); p.AddAnalogValue("triggerDelay", 0, (double)Parameters["zShimLoadCurrent"]); // trigger delay // p.AddAnalogValue("triggerDelay", 0, (double)Parameters["triggerDelay"]); // F=1 p.AddAnalogValue("motAOMAmp", 0, (double)Parameters["v0F1AOMStartValue"]); // v0 Intensity Ramp p.AddAnalogValue("v0IntensityRamp", 0, (double)Parameters["v0IntensityRampStartValue"]); // v0 Frequency Ramp p.AddAnalogValue("v0FrequencyRamp", 0, (double)Parameters["v0FrequencyRampStartValue"]); p.SwitchAllOffAtEndOfPattern(); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new LoadMoleculeMOT(p, Parameters); // Add Analog Channels p.AddChannel("v00Intensity"); p.AddChannel("v00Frequency"); p.AddChannel("xShimCoilCurrent"); p.AddChannel("yShimCoilCurrent"); p.AddChannel("zShimCoilCurrent"); p.AddChannel("v00EOMAmp"); p.AddChannel("v00Chirp"); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new LoadMoleculeMOT(p, Parameters); int releaseTime = (int)Parameters["MOTSwitchOffTime"]; int cameraTriggerTime = releaseTime + (int)Parameters["ExpansionTime"]; // 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["MOTCoilsCurrentRampStartValue"]); p.AddLinearRamp("MOTCoilsCurrent", (int)Parameters["MOTCoilsCurrentRampStartTime"], (int)Parameters["MOTCoilsCurrentRampDuration"], (double)Parameters["MOTCoilsCurrentRampEndValue"]); p.AddAnalogValue("MOTCoilsCurrent", releaseTime, -0.05); // Shim Fields p.AddAnalogValue("xShimCoilCurrent", 0, (double)Parameters["xShimLoadCurrent"]); p.AddAnalogValue("yShimCoilCurrent", 0, (double)Parameters["yShimLoadCurrent"]); p.AddAnalogValue("zShimCoilCurrent", 0, (double)Parameters["zShimLoadCurrent"]); // 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", cameraTriggerTime, (double)Parameters["v0IntensityRampStartValue"]); // F=0 p.AddAnalogValue("v00EOMAmp", 0, 5.2); // v0 Frequency Ramp p.AddAnalogValue("v00Frequency", 0, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyStartValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"]); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new LoadMoleculeMOT(p, Parameters); // Add Analog Channels p.AddChannel("v0IntensityRamp"); p.AddChannel("v0FrequencyRamp"); p.AddChannel("xShimCoilCurrent"); p.AddChannel("yShimCoilCurrent"); p.AddChannel("zShimCoilCurrent"); p.AddChannel("motAOMAmp"); // B Field p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTCoilsSwitchOn"], (double)Parameters["MOTCoilsCurrentStartValue"]); //p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MagTrapStartTime"], (double)Parameters["MOTCoilsCurrentMagTrapValue"]); p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTCoilsSwitchOff"], 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"]); // v0 Intensity Ramp p.AddAnalogValue("v0IntensityRamp", 0, (double)Parameters["v0IntensityRampStartValue"]); p.AddLinearRamp("v0IntensityRamp", (int)Parameters["v0IntensityRampStartTime"], (int)Parameters["v0IntensityRampDuration"], (double)Parameters["v0IntensityRampEndValue"]); p.AddAnalogValue("v0IntensityRamp", (int)Parameters["MagTrapStartTime"] + (int)Parameters["MagTrapDuration"], (double)Parameters["v0IntensityRampStartValue"]); // v0 Frequency Ramp p.AddAnalogValue("v0FrequencyRamp", 0, (double)Parameters["v0FrequencyStartValue"]); // v0 F=1 AOM p.AddAnalogValue("motAOMAmp", 0, (double)Parameters["v0F1AOMStartValue"]); p.AddAnalogValue("motAOMAmp", (int)Parameters["v0F1SwitchOffTime"], (double)Parameters["v0F1AOMOffValue"]); p.AddAnalogValue("motAOMAmp", (int)Parameters["MagTrapStartTime"] + (int)Parameters["MagTrapDuration"], (double)Parameters["v0F1AOMStartValue"]); p.SwitchAllOffAtEndOfPattern(); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new LoadMoleculeMOT(p, Parameters); p.AddChannel("v0FrequencyRamp"); p.AddAnalogValue( "v0FrequencyRamp", 0, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyNewValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"] ); int timeStep = 1000; int cumalativeTime = 10000; //while (cumalativeTime < 40000) //{ // p.AddAnalogValue( // "v0FrequencyRamp", // cumalativeTime + timeStep, // ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyNewValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"] // ); // p.AddAnalogValue( // "v0FrequencyRamp", // cumalativeTime + 3 * timeStep, // ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyStartValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"] // ); // cumalativeTime += (4 * timeStep); //} p.SwitchAllOffAtEndOfPattern(); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new LoadMoleculeMOT(p, Parameters); p.AddChannel("v0FrequencyRamp"); p.AddAnalogValue( "v0FrequencyRamp", 0, 0 ); int timeStep = 1000; int cumalativeTime = 10000; while (cumalativeTime < 40000) { p.AddAnalogValue( "v0FrequencyRamp", cumalativeTime + timeStep, 7.17 ); p.AddAnalogValue( "v0FrequencyRamp", cumalativeTime + 3 * timeStep, 0 ); cumalativeTime += (4 * timeStep); } 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("proberepumpshutter"); //initialises all channels before the MOT starts loading p.AddAnalogValue("coil0current", 0, 0); p.AddAnalogValue("coil1current", 0, 0); p.AddAnalogValue("aom0frequency", 0, (double)Parameters["MOTDetuning"]); p.AddAnalogValue("aom1frequency", 0, (double)Parameters["MOTRepumpDetuning"]); p.AddAnalogValue("aom2frequency", 0, (double)Parameters["ZeemanDetuning"]); p.AddAnalogValue("aom3frequency", 0, (double)Parameters["AbsDetuning"]); p.AddAnalogValue("aom0amplitude", 0, (double)Parameters["MOTIntensity"]); p.AddAnalogValue("aom1amplitude", 0, (double)Parameters["MOTRepumpIntensity"]); //p.AddAnalogValue("proberepumpshutter", 0, 0.0); //switches the probe repump light to the correct frequency for all subsequent images p.AddAnalogValue("aom3frequency", (int)Parameters["MOTEndTime"] + 1, (double)Parameters["ProbeDetuning"]); p.AddAnalogValue("aom1amplitude", (int)Parameters["MOTEndTime"] + 1, (double)Parameters["ProbeRepumpIntensity"]); p.AddAnalogValue("aom1frequency", (int)Parameters["MOTEndTime"] + 1, (double)Parameters["ProbeRepumpDetuning"]); //switches off the magnetic field ready for the no atoms image p.AddAnalogValue("coil0current", (int)Parameters["MagTrapEndTime"] + 205, 0); p.AddAnalogValue("coil1current", (int)Parameters["MagTrapEndTime"] + 205, 0); p.SwitchAllOffAtEndOfPattern(); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new LoadMoleculeMOT(p, Parameters); // Add Analog Channels p.AddChannel("v00Intensity"); p.AddChannel("v00Frequency"); p.AddChannel("xShimCoilCurrent"); p.AddChannel("yShimCoilCurrent"); p.AddChannel("zShimCoilCurrent"); p.AddChannel("v00EOMAmp"); p.AddChannel("v00Chirp"); // Add Rb Analog channels p.AddChannel("rb3DCoolingFrequency"); p.AddChannel("rb3DCoolingAttenuation"); p.AddChannel("rbRepumpFrequency"); p.AddChannel("rbRepumpAttenuation"); p.AddChannel("rbAbsImagingFrequency"); // Slowing field p.AddAnalogValue("slowingCoilsCurrent", 0, (double)Parameters["slowingCoilsValue"]); p.AddAnalogValue("slowingCoilsCurrent", (int)Parameters["slowingCoilsOffTime"], 0.0); // B Field p.AddAnalogValue("MOTCoilsCurrent", 0, 0.5); //p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTLoadTime"], -0.0); //switch off coils for molasses and optical pumping stage //p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTLoadTime"] + (int)Parameters["MolassesDuration"] + (int)Parameters["OpticalPumpingDuration"], (double)Parameters["magneticTraploadingCurrent"]); //turn on mag trap //p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTLoadTime"] + (int)Parameters["MolassesDuration"] + (int)Parameters["OpticalPumpingDuration"] + (int)Parameters["magneticTrapDuration"], -0.0); //switch off coils after holding atoms for some time in magnetic trap p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTLoadTime"] - 1000, 0.0); //Jump field to levitation gradient p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTLoadTime"], 1.5); //Jump field to levitation gradient p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTLoadTime"] + (int)Parameters["magneticTrapDuration"], 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"]); //p.AddAnalogValue("yShimCoilCurrent", (int)Parameters["MOTLoadTime"] + (int)Parameters["MolassesDuration"] - 500, (double)Parameters["OpticalPumpingShimField"]); //p.AddAnalogValue("xShimCoilCurrent", (int)Parameters["MOTLoadTime"] + (int)Parameters["MolassesDuration"] - 500, (double)Parameters["OpticalPumpingShimFieldX"]); //p.AddAnalogValue("yShimCoilCurrent", (int)Parameters["MOTLoadTime"] + (int)Parameters["MOTCoilsCurrentRampDuration"] + (int)Parameters["MolassesDuration"] + 1000, 0.0); //p.AddAnalogValue("xShimCoilCurrent", (int)Parameters["MOTLoadTime"] + (int)Parameters["MOTCoilsCurrentRampDuration"] + (int)Parameters["MolassesDuration"] + 1000, 0.0); // F=0 p.AddAnalogValue("v00EOMAmp", 0, 5.2); // v0 Intensity Ramp p.AddAnalogValue("v00Intensity", 0, (double)Parameters["v0IntensityRampStartValue"]); // v0 Frequency Ramp p.AddAnalogValue("v00Frequency", 0, (double)Parameters["v0FrequencyStartValue"]); //v0 chirp p.AddAnalogValue("v00Chirp", 0, 0.0); //Rb Laser detunings p.AddAnalogValue("rb3DCoolingFrequency", 0, (double)Parameters["MOTCoolingLoadingFrequency"]); p.AddAnalogValue("rbRepumpFrequency", 0, (double)Parameters["MOTRepumpLoadingFrequency"]); p.AddAnalogValue("rbAbsImagingFrequency", 0, (double)Parameters["ImagingFrequency"]); p.AddAnalogValue("rb3DCoolingAttenuation", 0, 0.0); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new LoadMoleculeMOT(p, Parameters); int rbMOTLoadTime = (int)Parameters["MOTLoadTime"]; int rbFirstFieldJump = rbMOTLoadTime + (int)Parameters["RbMOTHoldTime"]; int rbCMOTStartTime = rbFirstFieldJump + (int)Parameters["RbFirstCMOTHoldTime"]; int rbMOTswitchOffTime = rbCMOTStartTime + (int)Parameters["CMOTRampDuration"] + (int)Parameters["RbCMOTHoldTime"]; int rbMolassesStartTime = rbMOTswitchOffTime + (int)Parameters["RbMolassesDelay"]; int rbMolassesEndTime = rbMolassesStartTime + (int)Parameters["RbMolassesDuration"]; int rbMagnteticTrapStartTime = rbMolassesEndTime + (int)Parameters["OpticalPumpingDuration"]; int rbMagnteticTrapEndTime = rbMagnteticTrapStartTime + (int)Parameters["MagneticTrapDuration"]; int cameraTrigger1 = rbMagnteticTrapEndTime + (int)Parameters["WaitBeforeImage"] + (int)Parameters["FreeExpansionTime"]; int cameraTrigger2 = cameraTrigger1 + (int)Parameters["CameraTriggerDelayAfterFirstImage"]; //probe image int cameraTrigger3 = cameraTrigger2 + (int)Parameters["CameraTriggerDelayAfterFirstImage"]; //bg // Add Analog Channels p.AddChannel("v00Intensity"); p.AddChannel("v00Frequency"); p.AddChannel("xShimCoilCurrent"); p.AddChannel("yShimCoilCurrent"); p.AddChannel("zShimCoilCurrent"); p.AddChannel("v00EOMAmp"); p.AddChannel("v00Chirp"); // Add Rb Analog channels p.AddChannel("rb3DCoolingFrequency"); p.AddChannel("rb3DCoolingAttenuation"); p.AddChannel("rbRepumpFrequency"); p.AddChannel("rbRepumpAttenuation"); p.AddChannel("rbAbsImagingFrequency"); p.AddChannel("rbOffsetLock"); // Slowing field p.AddAnalogValue("slowingCoilsCurrent", 0, (double)Parameters["slowingCoilsValue"]); p.AddAnalogValue("slowingCoilsCurrent", (int)Parameters["slowingCoilsOffTime"], 0.0); // B Field p.AddAnalogValue("MOTCoilsCurrent", 0, (double)Parameters["MOTCoilsCurrentValue"]); //switch on MOT coils to load Rb MOT p.AddAnalogValue("MOTCoilsCurrent", rbFirstFieldJump, (double)Parameters["CaFMOTLoadGradient"]); p.AddLinearRamp("MOTCoilsCurrent", rbCMOTStartTime, (int)Parameters["CMOTRampDuration"], (double)Parameters["CMOTEndValue"]); p.AddAnalogValue("MOTCoilsCurrent", rbMOTswitchOffTime, 0.0); //switch off coils after MOT is loaded p.AddAnalogValue("MOTCoilsCurrent", rbMagnteticTrapStartTime, (double)Parameters["MagTrapGradient"]); p.AddAnalogValue("MOTCoilsCurrent", rbMagnteticTrapEndTime, 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"]); //p.AddAnalogValue("yShimCoilCurrent", (int)Parameters["MOTLoadTime"] + (int)Parameters["MolassesDuration"] - 200, (double)Parameters["OpticalPumpingShimField"]); //p.AddAnalogValue("xShimCoilCurrent", (int)Parameters["MOTLoadTime"]+ (int)Parameters["MolassesDuration"] - 500, (double)Parameters["OpticalPumpingShimFieldX"]); //p.AddAnalogValue("yShimCoilCurrent", (int)Parameters["MOTLoadTime"] + (int)Parameters["MOTCoilsCurrentRampDuration"] + (int)Parameters["MolassesDuration"] + 1000, 0.0); //p.AddAnalogValue("xShimCoilCurrent", (int)Parameters["MOTLoadTime"] + (int)Parameters["MOTCoilsCurrentRampDuration"] + (int)Parameters["MolassesDuration"] + 1000, 0.0); // F=0 p.AddAnalogValue("v00EOMAmp", 0, 5.2); // v0 Intensity Ramp p.AddAnalogValue("v00Intensity", 0, (double)Parameters["v0IntensityRampStartValue"]); // v0 Frequency Ramp p.AddAnalogValue("v00Frequency", 0, (double)Parameters["v0FrequencyStartValue"]); //v0 chirp p.AddAnalogValue("v00Chirp", 0, 0.0); //Rb Laser detunings for loading the MOT p.AddAnalogValue("rb3DCoolingFrequency", 0, (double)Parameters["MOTCoolingLoadingFrequency"]); p.AddAnalogValue("rbRepumpFrequency", 0, (double)Parameters["MOTRepumpLoadingFrequency"]); p.AddAnalogValue("rbAbsImagingFrequency", 0, (double)Parameters["ImagingFrequency"]); //Rb laser detunings for CMOT steps: p.AddAnalogValue("rb3DCoolingFrequency", rbCMOTStartTime, (double)Parameters["RbCoolingFrequencyCMOT"]); p.AddAnalogValue("rbRepumpFrequency", rbCMOTStartTime, (double)Parameters["RbRepumpFrequencyCMOT"]); //Rb molasses: p.AddLinearRamp("rb3DCoolingFrequency", rbMolassesStartTime, (int)Parameters["RbMolassesDuration"], (double)Parameters["RbMolassesEndDetuning"]); p.AddAnalogValue("rbOffsetLock", 0, 1.1); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new LoadMoleculeMOT(p, Parameters); int rbMOTLoadTime = (int)Parameters["MOTLoadTime"]; int rbFirstFieldJump = rbMOTLoadTime + (int)Parameters["RbMOTHoldTime"]; int rbCMOTStartTime = rbFirstFieldJump + (int)Parameters["RbFirstCMOTHoldTime"]; int rbMOTswitchOffTime = rbCMOTStartTime + (int)Parameters["CMOTRampDuration"] + (int)Parameters["RbCMOTHoldTime"]; int rbMolassesStartTime = rbMOTswitchOffTime + (int)Parameters["RbMolassesDelay"]; int rbMolassesEndTime = rbMolassesStartTime + (int)Parameters["RbMolassesDuration"]; //int rbMagnteticTrapStartTime = rbMolassesEndTime + (int)Parameters["OpticalPumpingDuration"]; int rbMagnteticTrapStartTime = rbMolassesEndTime; int rbMagnteticTrapTransferToExternalStartTime = rbMagnteticTrapStartTime + 10000; int rbMagnteticTrapTransferToExternalEndTime = rbMagnteticTrapTransferToExternalStartTime + (int)Parameters["TransferRampDurationExternalCoils"]; int startMotionTime = rbMagnteticTrapTransferToExternalEndTime + (int)Parameters["MotionDelay"]; int rbMagnteticTrapEndTime = startMotionTime + (int)Parameters["MagneticTrapDuration"]; //int speedbumpon = startMotionTime + (int)Parameters["SpeedBumpCoilsOn"]; // int cameraTrigger1 = rbMagnteticTrapEndTime + (int)Parameters["WaitBeforeImage"] + (int)Parameters["FreeExpansionTime"]; //image after transfer to external coils //int cameraTrigger0 = rbMagnteticTrapStartTime + (int)Parameters["DelayFromTransferStart"];//image before transfer to external coils //int cameraTrigger2 = cameraTrigger1 + (int)Parameters["CameraTriggerDelayAfterFirstImage"]; //probe image, //image after transfer to external coils //int cameraTrigger1 = rbMagnteticTrapStartTime + (int)Parameters["DelayFromTransferStart"]; int rampUpInternalTweezerMagTrap = rbMagnteticTrapEndTime + (int)Parameters["RampUpDelayIntMagTrapTweezer"]; int InternalTweezerMagTrapEndTime = rampUpInternalTweezerMagTrap + (int)Parameters["RampUpDurationIntMagTrapTweezer"] + (int)Parameters["DurationIntMagTrapTweezer"]; int DipoleTrapSwitchOnTime = InternalTweezerMagTrapEndTime - (int)Parameters["DipoleTrapMagTrapOverlapDuration"]; int DipoleTrapSwitchOffTime = DipoleTrapSwitchOnTime + (int)Parameters["DurationDipoleTrap"]; int cameraTrigger1 = rbMagnteticTrapTransferToExternalEndTime + (int)Parameters["DelayFromTransferStart"]; //int cameraTrigger1 = rbMolassesStartTime + (int)Parameters["DelayFromTransferStart"]; //int cameraTrigger1 = rbMolassesEndTime + (int)Parameters["DelayFromTransferStart"]; //int cameraTrigger2 = rbMagnteticTrapEndTime + (int)Parameters["WaitBeforeImage"] + (int)Parameters["FreeExpansionTime"] + (int)Parameters["CameraTriggerDelayAfterFirstImage"]; //probe image, //image before transfer to external coils //int cameraTrigger3 = cameraTrigger2 + (int)Parameters["CameraTriggerDelayAfterFirstImage"]; //bg int cameraTrigger2 = cameraTrigger1 + (int)Parameters["WaitBeforeImage"] + (int)Parameters["FreeExpansionTime"] + (int)Parameters["CameraTriggerDelayAfterFirstImage"]; //probe image, //image before transfer to external coils int cameraTrigger3 = cameraTrigger2 + (int)Parameters["CameraTriggerDelayAfterFirstImage"]; //bg int absprobeswitchoff = cameraTrigger2 + (int)Parameters["Frame0TriggerDuration"] + 20; //bg int coolingimgswitchoff = cameraTrigger1 + 20; //bg int swtichAllOn = cameraTrigger3 + 5000; // Add Analog Channels p.AddChannel("v00Intensity"); p.AddChannel("v00Frequency"); p.AddChannel("xShimCoilCurrent"); p.AddChannel("yShimCoilCurrent"); p.AddChannel("zShimCoilCurrent"); p.AddChannel("v00EOMAmp"); p.AddChannel("v00Chirp"); // Add Rb Analog channels p.AddChannel("rb3DCoolingFrequency"); p.AddChannel("rb3DCoolingAttenuation"); p.AddChannel("rbRepumpFrequency"); p.AddChannel("rbRepumpAttenuation"); p.AddChannel("rbAbsImagingFrequency"); p.AddChannel("rbOffsetLock"); p.AddChannel("transferCoils"); p.AddChannel("transferCoilsShunt1"); p.AddChannel("transferCoilsShunt2"); p.AddChannel("speedbumpCoils"); p.AddChannel("TweezerMOTCoils"); p.AddChannel("DipoleTrapLaserControl"); // Slowing field p.AddAnalogValue("slowingCoilsCurrent", 0, (double)Parameters["slowingCoilsValue"]); p.AddAnalogValue("slowingCoilsCurrent", (int)Parameters["slowingCoilsOffTime"], 0.0); // B Field p.AddAnalogValue("speedbumpCoils", 0, -0.02); p.AddAnalogValue("DipoleTrapLaserControl", 0, 0.0); p.AddAnalogValue("TweezerMOTCoils", 0, -0.02); //p.AddAnalogValue("transferCoilsShunt1", 0, -0.02); //p.AddAnalogValue("transferCoilsShunt2", 0, -0.02); p.AddAnalogValue("transferCoils", 0, 0.0); //start with external coils off p.AddAnalogValue("MOTCoilsCurrent", 0, (double)Parameters["MOTCoilsCurrentValue"]); //switch on MOT coils to load Rb MOT p.AddAnalogValue("MOTCoilsCurrent", rbFirstFieldJump, (double)Parameters["CaFMOTLoadGradient"]); p.AddLinearRamp("MOTCoilsCurrent", rbCMOTStartTime, (int)Parameters["CMOTRampDuration"], (double)Parameters["CMOTEndValue"]); p.AddAnalogValue("MOTCoilsCurrent", rbMOTswitchOffTime, -0.05); //switch off coils after MOT is loaded p.AddAnalogValue("MOTCoilsCurrent", rbMagnteticTrapStartTime, (double)Parameters["MagTrapInternalGradient"]); p.AddLinearRamp("MOTCoilsCurrent", rbMagnteticTrapTransferToExternalStartTime, (int)Parameters["TransferRampDurationInternalCoils"], 0.0); p.AddLinearRamp("transferCoils", rbMagnteticTrapTransferToExternalStartTime, (int)Parameters["TransferRampDurationExternalCoils"], (double)Parameters["ExternalMagTrapRampEndValue"]); p.AddLinearRamp("transferCoils", rbMagnteticTrapEndTime, (int)Parameters["RampDownTimeTransportTrap"], 0.0); p.AddLinearRamp("TweezerMOTCoils", rampUpInternalTweezerMagTrap, (int)Parameters["RampUpDurationIntMagTrapTweezer"], (double)Parameters["CurrentEndValueIntMagTrapTweezer"]); //p.AddLinearRamp("MOTCoilsCurrent", rampUpInternalTweezerMagTrap , (int)Parameters["RampUpDurationIntMagTrapTweezer"], (double)Parameters["CurrentEndValueIntMagTrapTweezer"]); p.AddAnalogValue("TweezerMOTCoils", InternalTweezerMagTrapEndTime, -0.02); p.AddAnalogValue("speedbumpCoils", DipoleTrapSwitchOnTime, 1.5); p.AddAnalogValue("DipoleTrapLaserControl", DipoleTrapSwitchOnTime, 5.0); p.AddAnalogValue("speedbumpCoils", DipoleTrapSwitchOffTime, -0.02); p.AddAnalogValue("DipoleTrapLaserControl", DipoleTrapSwitchOffTime, 0.0); //p.AddAnalogValue("MOTCoilsCurrent", InternalTweezerMagTrapEndTime, -0.02); //p.AddAnalogValue("transferCoilsShunt1", rbMagnteticTrapTransferToExternalEndTime + 1000, 0.1); //p.AddAnalogValue("transferCoilsShunt2", rbMagnteticTrapTransferToExternalEndTime + 1000, 0.1); /* * * // [131,135,140, 145,150,156, 162, 166, 170, 175, 180,186, 190, 195, 200, 205, 209, 216, 220] * // [ 57500., 58000., 58750., 59500., 60250., 61125., 62000., 62625.,63125., 63875. 64625., 65500., 66125., 66875., 67500., 68250., 68875., 69875., 70500.] * * p.AddAnalogValue("speedbumpCoils", startMotionTime + 58000, -0.08); * p.AddAnalogValue("speedbumpCoils", startMotionTime + 59000, -0.15); * p.AddAnalogValue("speedbumpCoils", startMotionTime + 60000, -0.3); * p.AddAnalogValue("speedbumpCoils", startMotionTime + 61000, -0.25); * p.AddAnalogValue("speedbumpCoils", startMotionTime + 62000, -0.2); * * p.AddAnalogValue("speedbumpCoils", startMotionTime + 64000, 0.4); * p.AddAnalogValue("speedbumpCoils", startMotionTime + 65000, 0); * //p.AddAnalogValue("speedbumpCoils", startMotionTime + 65000, 0.1); * //p.AddAnalogValue("speedbumpCoils", startMotionTime + 66000, 0); * //p.AddAnalogValue("speedbumpCoils", startMotionTime + 68000, -0.3); * p.AddAnalogValue("speedbumpCoils", startMotionTime + 68500, -0.45); * * p.AddAnalogValue("speedbumpCoils", startMotionTime + 70000, -0.55); * * p.AddAnalogValue("speedbumpCoils", startMotionTime + 72000, 0); * * * p.AddAnalogValue("transferCoilsShunt1", startMotionTime + 58000, 0.06); * p.AddAnalogValue("transferCoilsShunt1", startMotionTime + 60000, 0.18); * p.AddAnalogValue("transferCoilsShunt1", startMotionTime + 61000, 0.2); * p.AddAnalogValue("transferCoilsShunt1", startMotionTime + 61500, 0.25); * p.AddAnalogValue("transferCoilsShunt1", startMotionTime + 62000, 0.45); * * p.AddAnalogValue("transferCoilsShunt1", startMotionTime + 64000, 0.55); * p.AddAnalogValue("transferCoilsShunt1", startMotionTime + 65000, 0.4); * p.AddAnalogValue("transferCoilsShunt1", startMotionTime + 66000, 0.25); * p.AddAnalogValue("transferCoilsShunt1", startMotionTime + 68500, 0.2); * p.AddAnalogValue("transferCoilsShunt1", startMotionTime + 70500, 0.25); * * p.AddAnalogValue("transferCoilsShunt1", startMotionTime + 73000, 0.0); * p.AddAnalogValue("transferCoilsShunt2", startMotionTime + 73000, 0.05); * p.AddAnalogValue("transferCoilsShunt2", startMotionTime + 74500, 0.0); * * p.AddAnalogValue("transferCoilsShunt1", startMotionTime + 76000, 0.2); * p.AddAnalogValue("transferCoilsShunt1", startMotionTime + 78000, 0.4); * */ /* **************** Accel 2200 TP 175 ************************ * double Vfact = -0.1; * * p.AddLinearRamp("speedbumpCoils", startMotionTime + 59375, 1000, -0.012 + (Vfact * 0));//-0.149 * p.AddLinearRamp("speedbumpCoils", startMotionTime + 60375, 1375, -0.012 + (Vfact * 0));//-0.179 * p.AddLinearRamp("speedbumpCoils", startMotionTime + 61750, 1374, -0.012 + (Vfact * 0.8));//0.353 * p.AddLinearRamp("speedbumpCoils", startMotionTime + 63125, 1500, -0.012 + (Vfact * 1.449)); * p.AddLinearRamp("speedbumpCoils", startMotionTime + 64625, 2000, -0.012 + (Vfact * 1.795)); * p.AddLinearRamp("speedbumpCoils", startMotionTime + 66625, 2500, -0.012 + (Vfact * 1.42)); * p.AddLinearRamp("speedbumpCoils", startMotionTime + 69125, 2000, -0.012 + (Vfact * 1.038)); * p.AddLinearRamp("speedbumpCoils", startMotionTime + 71125, 2874, -0.012 + (Vfact * -0.11)); * p.AddLinearRamp("speedbumpCoils", startMotionTime + 74000, 16500, -0.012 + (Vfact * 0.257)); * * double Vfact = 1; * * p.AddLinearRamp("transferCoilsShunt1", startMotionTime + 59375, 1000, -0.012 + (Vfact * 0.001)); * p.AddLinearRamp("transferCoilsShunt1", startMotionTime + 60375, 1375, -0.012 + (Vfact * 0.003)); * p.AddLinearRamp("transferCoilsShunt1", startMotionTime + 61750, 1374, -0.012 + (Vfact * 0.02)); * p.AddLinearRamp("transferCoilsShunt1", startMotionTime + 63125, 1500, -0.012 + (Vfact * 0.08));//0.006 * p.AddLinearRamp("transferCoilsShunt1", startMotionTime + 64625, 2000, -0.012 + (Vfact * 0.186)); * p.AddLinearRamp("transferCoilsShunt1", startMotionTime + 66625, 2500, -0.012 + (Vfact * 0.441)); * p.AddLinearRamp("transferCoilsShunt1", startMotionTime + 69125, 2000, -0.012 + (Vfact * 0.37)); * p.AddLinearRamp("transferCoilsShunt1", startMotionTime + 71125, 2874, -0.012 + (Vfact * 0.448)); * p.AddLinearRamp("transferCoilsShunt1", startMotionTime + 74000, 16500, -0.012 + (Vfact * 0.467)); * */ /* ***************** Accel 2200 TP 380 **************************** * double Vfact = -0.1; * p.AddLinearRamp("speedbumpCoils", startMotionTime + 57500, 499, -0.012 + (Vfact * 0)); * p.AddLinearRamp("speedbumpCoils", startMotionTime + 57999, 750, -0.012 + (Vfact * 0)); * p.AddLinearRamp("speedbumpCoils", startMotionTime + 58750, 749, -0.012 + (Vfact * 0.8)); * p.AddLinearRamp("speedbumpCoils", startMotionTime + 59500, 750, -0.012 + (Vfact * 1.449)); * p.AddLinearRamp("speedbumpCoils", startMotionTime + 60250, 874, -0.012 + (Vfact * 1.795)); * p.AddLinearRamp("speedbumpCoils", startMotionTime + 61124, 875, -0.012 + (Vfact * 1.42)); * p.AddLinearRamp("speedbumpCoils", startMotionTime + 62000, 624, -0.012 + (Vfact * 1.038)); * p.AddLinearRamp("speedbumpCoils", startMotionTime + 62625, 500, -0.012 + (Vfact * -0.11)); * p.AddLinearRamp("speedbumpCoils", startMotionTime + 63125, 750, -0.012 + (Vfact * 0.257)); * * Vfact = 1; * p.AddLinearRamp("transferCoilsShunt1", startMotionTime + 57500, 499, -0.012 + (Vfact * 0.001)); * p.AddLinearRamp("transferCoilsShunt1", startMotionTime + 57999, 750, -0.012 + (Vfact * 0.003)); * p.AddLinearRamp("transferCoilsShunt1", startMotionTime + 58750, 749, -0.012 + (Vfact * 0.02)); * p.AddLinearRamp("transferCoilsShunt1", startMotionTime + 59500, 750, -0.012 + (Vfact * 0.08)); * p.AddLinearRamp("transferCoilsShunt1", startMotionTime + 60250, 874, -0.012 + (Vfact * 0.186)); * p.AddLinearRamp("transferCoilsShunt1", startMotionTime + 61124, 875, -0.012 + (Vfact * 0.441)); * p.AddLinearRamp("transferCoilsShunt1", startMotionTime + 62000, 624, -0.012 + (Vfact * 0.37)); * p.AddLinearRamp("transferCoilsShunt1", startMotionTime + 62625, 500, -0.012 + (Vfact * 0.448)); * p.AddLinearRamp("transferCoilsShunt1", startMotionTime + 63125, 750, -0.012 + (Vfact * 0.467)); * */ // Shim Fields //p.AddAnalogValue("xShimCoilCurrent", 0, (double)Parameters["xShimLoadCurrent"]); //p.AddAnalogValue("yShimCoilCurrent", 0, (double)Parameters["yShimLoadCurrent"]); //p.AddAnalogValue("zShimCoilCurrent", 0, (double)Parameters["zShimLoadCurrent"]); //p.AddAnalogValue("yShimCoilCurrent", (int)Parameters["MOTLoadTime"] + (int)Parameters["MolassesDuration"] - 200, (double)Parameters["OpticalPumpingShimField"]); //p.AddAnalogValue("xShimCoilCurrent", (int)Parameters["MOTLoadTime"]+ (int)Parameters["MolassesDuration"] - 500, (double)Parameters["OpticalPumpingShimFieldX"]); //p.AddAnalogValue("yShimCoilCurrent", (int)Parameters["MOTLoadTime"] + (int)Parameters["MOTCoilsCurrentRampDuration"] + (int)Parameters["MolassesDuration"] + 1000, 0.0); //p.AddAnalogValue("xShimCoilCurrent", (int)Parameters["MOTLoadTime"] + (int)Parameters["MOTCoilsCurrentRampDuration"] + (int)Parameters["MolassesDuration"] + 1000, 0.0); // F=0 p.AddAnalogValue("v00EOMAmp", 0, 5.2); // v0 Intensity Ramp p.AddAnalogValue("v00Intensity", 0, (double)Parameters["v0IntensityRampStartValue"]); // v0 Frequency Ramp p.AddAnalogValue("v00Frequency", 0, (double)Parameters["v0FrequencyStartValue"]); //v0 chirp p.AddAnalogValue("v00Chirp", 0, 0.0); //Rb Laser detunings for loading the MOT p.AddAnalogValue("rb3DCoolingFrequency", 0, (double)Parameters["MOTCoolingLoadingFrequency"]); p.AddAnalogValue("rbRepumpFrequency", 0, (double)Parameters["MOTRepumpLoadingFrequency"]); p.AddAnalogValue("rbAbsImagingFrequency", 0, (double)Parameters["ImagingFrequency"]); //Rb laser detunings for CMOT steps: p.AddAnalogValue("rb3DCoolingFrequency", rbCMOTStartTime, (double)Parameters["RbCoolingFrequencyCMOT"]); p.AddAnalogValue("rbRepumpFrequency", rbCMOTStartTime, (double)Parameters["RbRepumpFrequencyCMOT"]); //Rb molasses: p.AddLinearRamp("rb3DCoolingFrequency", rbMolassesStartTime, (int)Parameters["RbMolassesDuration"], (double)Parameters["RbMolassesEndDetuning"]); p.AddAnalogValue("rbOffsetLock", 0, 1.1); p.AddAnalogValue("yShimCoilCurrent", 0, 0.0); p.AddAnalogValue("yShimCoilCurrent", startMotionTime, 5.0);//This is now used to trigger the translation stage of the transport coils p.AddAnalogValue("yShimCoilCurrent", startMotionTime + 100, 0.0); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new SHLoadMOT(p, Parameters); //loading the MOT p.AddChannel("aom1frequency"); p.AddChannel("aom2frequency"); p.AddChannel("aom3frequency"); p.AddChannel("aom1amplitude"); p.AddChannel("aom2amplitude"); p.AddChannel("aom3amplitude"); p.AddChannel("D1EOMfrequency"); p.AddChannel("D1EOMamplitude"); p.AddChannel("D2EOMfrequency"); p.AddChannel("D2EOMamplitude"); p.AddChannel("offsetlockfrequency"); p.AddAnalogValue("D2EOMfrequency", 0, (double)Parameters["MotRepumpFrequency"]); p.AddAnalogValue("D2EOMamplitude", 0, (double)Parameters["MotRepumpAmplitude"]); p.AddAnalogValue("aom3frequency", 0, (double)Parameters["aom3Detuning"]); p.AddAnalogValue("aom3amplitude", 0, 6.0); //setting up the MOT parameters //CMOT p.AddLinearRamp("TopTrappingCoilcurrent", (int)Parameters["MOTEndTime"] - (int)Parameters["CMOTTime"] - (int)Parameters["CMOTHoldTime"], (int)Parameters["CMOTTime"], (double)Parameters["CMOTTopVacCurrent"]); p.AddLinearRamp("BottomTrappingCoilcurrent", (int)Parameters["MOTEndTime"] - (int)Parameters["CMOTTime"] - (int)Parameters["CMOTHoldTime"], (int)Parameters["CMOTTime"], (double)Parameters["CMOTBottomVacCurrent"]); p.AddLinearRamp("aom3amplitude", (int)Parameters["MOTEndTime"] - (int)Parameters["CMOTTime"] - (int)Parameters["CMOTHoldTime"], (int)Parameters["CMOTTime"], (double)Parameters["CMOTFinalPower"]); p.AddAnalogValue("TopTrappingCoilcurrent", (int)Parameters["MOTEndTime"], 0); p.AddAnalogValue("BottomTrappingCoilcurrent", (int)Parameters["MOTEndTime"], 0); //Taking the pictures p.AddAnalogValue("D2EOMfrequency", (int)Parameters["MOTEndTime"] + (int)Parameters["ImageDelay"] - 3, (double)Parameters["absImageRepumpDetuning"]); p.AddAnalogValue("D2EOMamplitude", (int)Parameters["MOTEndTime"] + (int)Parameters["ImageDelay"] - 3, (double)Parameters["absImageRepumpAmplitude"]); p.AddAnalogValue("aom1frequency", (int)Parameters["MOTEndTime"] + (int)Parameters["ImageDelay"] - 1, (double)Parameters["absImageDetuning"]); p.AddAnalogValue("aom1amplitude", (int)Parameters["MOTEndTime"] + (int)Parameters["ImageDelay"] - 1, (double)Parameters["absImagePower"]); p.AddAnalogValue("aom1amplitude", (int)Parameters["Frame1Trigger"] - 1, (double)Parameters["backgroundImagePower"]); p.SwitchAllOffAtEndOfPatternExcept(new string[] { "offsetlockfrequency", "xcoilCurrent", "ycoilcurrent", "zcoilcurrent" }); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new LoadMoleculeMOTNoSlowingEdge(p, Parameters); int patternStartBeforeQ = (int)Parameters["TCLBlockStart"]; int molassesStartTime = (int)Parameters["MOTSwitchOffTime"] + (int)Parameters["MolassesDelay"]; int molassesRampTime = molassesStartTime + (int)Parameters["MolassesHoldTime"]; int v0F0PumpStartTime = molassesRampTime + (int)Parameters["MolassesRampDuration"]; int microwavePulseTime = v0F0PumpStartTime + (int)Parameters["v0F0PumpDuration"]; int blowAwayTime = microwavePulseTime + (int)Parameters["MicrowavePulseDuration"]; int secondMicrowavePulseTime = blowAwayTime + (int)Parameters["PokeDuration"]; int firstRamseyPulseTime = secondMicrowavePulseTime + (int)Parameters["SecondMicrowavePulseDuration"]; int ramseyPiPulseTime = firstRamseyPulseTime + (int)Parameters["FirstRamseyWaitTime"] + (int)Parameters["RamseyPulseDuration"]; int secondRamseyPulseTime = ramseyPiPulseTime + (int)Parameters["SecondRamseyWaitTime"] + (int)Parameters["RamseyPiPulseDuration"]; int magTrapStartTime = secondRamseyPulseTime + (int)Parameters["RamseyPulseDuration"]; int motRecaptureTime = magTrapStartTime + (int)Parameters["MagTrapDuration"]; int imageTime = motRecaptureTime + (int)Parameters["MOTWaitBeforeImage"]; // Add Analog Channels p.AddChannel("v00Intensity"); p.AddChannel("v00Frequency"); p.AddChannel("xShimCoilCurrent"); p.AddChannel("yShimCoilCurrent"); p.AddChannel("v00EOMAmp"); p.AddChannel("zShimCoilCurrent"); // 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["MOTCoilsCurrentRampStartValue"]); p.AddLinearRamp("MOTCoilsCurrent", (int)Parameters["MOTCoilsCurrentRampStartTime"], (int)Parameters["MOTCoilsCurrentRampDuration"], (double)Parameters["MOTCoilsCurrentRampEndValue"]); p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTSwitchOffTime"], (double)Parameters["MOTCoilsCurrentMolassesValue"]); p.AddAnalogValue("MOTCoilsCurrent", magTrapStartTime, (double)Parameters["MOTCoilsCurrentMagTrapValue"]); p.AddAnalogValue("MOTCoilsCurrent", motRecaptureTime, (double)Parameters["MOTCoilsCurrentRampStartValue"]); p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["CoilsSwitchOffTime"], -0.01); // Shim Fields p.AddAnalogValue("xShimCoilCurrent", 0, (double)Parameters["xShimLoadCurrent"]); p.AddAnalogValue("yShimCoilCurrent", 0, (double)Parameters["yShimLoadCurrent"]); p.AddAnalogValue("zShimCoilCurrent", 0, (double)Parameters["zShimLoadCurrent"]); // 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", molassesStartTime, (double)Parameters["v0IntensityMolassesValue"]); p.AddAnalogValue("v00Intensity", molassesRampTime + 50, 7.4); p.AddAnalogValue("v00Intensity", molassesRampTime + 100, 7.83); p.AddAnalogValue("v00Intensity", molassesRampTime + 150, 8.09); p.AddAnalogValue("v00Intensity", v0F0PumpStartTime, (double)Parameters["v0IntensityF0PumpValue"]); p.AddAnalogValue("v00Intensity", motRecaptureTime, (double)Parameters["v0IntensityImageValue"]); // v0 EOM p.AddAnalogValue("v00EOMAmp", 0, (double)Parameters["v0EOMMOTValue"]); p.AddAnalogValue("v00EOMAmp", v0F0PumpStartTime, (double)Parameters["v0EOMPumpValue"]); p.AddAnalogValue("v00EOMAmp", motRecaptureTime, (double)Parameters["v0EOMMOTValue"]); // v0 Frequency Ramp p.AddAnalogValue("v00Frequency", 0, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyMOTValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"]); p.AddAnalogValue( "v00Frequency", molassesStartTime, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyMolassesValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"] ); p.AddAnalogValue( "v00Frequency", v0F0PumpStartTime, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyF0PumpValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"] ); p.AddAnalogValue( "v00Frequency", motRecaptureTime, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyMOTValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"] ); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new LoadMoleculeMOT(p, Parameters); int molassesStartTime = (int)Parameters["MOTSwitchOffTime"] + (int)Parameters["MolassesDelay"]; int v0F0PumpStartTime = molassesStartTime + (int)Parameters["MolassesDuration"]; int microwavePulseTime = v0F0PumpStartTime + (int)Parameters["v0F0PumpDuration"]; int motRecaptureTime = microwavePulseTime + (int)Parameters["MicrowavePulseDuration"]; int imageTime = motRecaptureTime + (int)Parameters["MOTWaitBeforeImage"]; // Add Analog Channels p.AddChannel("v00Intensity"); p.AddChannel("v00Frequency"); p.AddChannel("xShimCoilCurrent"); p.AddChannel("yShimCoilCurrent"); p.AddChannel("v00EOMAmp"); p.AddChannel("zShimCoilCurrent"); // 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["MOTCoilsCurrentRampStartValue"]); p.AddLinearRamp("MOTCoilsCurrent", (int)Parameters["MOTCoilsCurrentRampStartTime"], (int)Parameters["MOTCoilsCurrentRampDuration"], (double)Parameters["MOTCoilsCurrentRampEndValue"]); p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTSwitchOffTime"], (double)Parameters["MOTCoilsCurrentMolassesValue"]); p.AddAnalogValue("MOTCoilsCurrent", motRecaptureTime, (double)Parameters["MOTCoilsCurrentRampStartValue"]); //p.AddLinearRamp("MOTCoilsCurrent", motRecaptureTime, 500, (double)Parameters["MOTCoilsCurrentRampStartValue"]); p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["CoilsSwitchOffTime"], 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"]); //p.AddLinearRamp("zShimCoilCurrent", microwavePulseTime, (int)Parameters["MicrowavePulseDuration"], (double)Parameters["zShimLoadCurrent"] + ((double)Parameters["zShimRampRate"] * (int)Parameters["MicrowavePulseDuration"] / 100)); //p.AddAnalogValue("zShimCoilCurrent", motRecaptureTime, (double)Parameters["zShimLoadCurrent"]); //p.AddAnalogValue("xShimCoilCurrent", v0F0PumpStartTime, (double)Parameters["xShimZeemanSplitValue"]); //p.AddAnalogValue("xShimCoilCurrent", motRecaptureTime, (double)Parameters["xShimLoadCurrent"]); // 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", molassesStartTime, (double)Parameters["v0IntensityMolassesValue"]); p.AddAnalogValue("v00Intensity", molassesStartTime + 50, 6.76); p.AddAnalogValue("v00Intensity", molassesStartTime + 100, 7.24); p.AddAnalogValue("v00Intensity", molassesStartTime + 150, 7.54); p.AddAnalogValue("v00Intensity", v0F0PumpStartTime, (double)Parameters["v0IntensityF0PumpValue"]); p.AddAnalogValue("v00Intensity", motRecaptureTime, (double)Parameters["v0IntensityImageValue"]); // v0 EOM p.AddAnalogValue("v00EOMAmp", 0, (double)Parameters["v0EOMMOTValue"]); p.AddAnalogValue("v00EOMAmp", v0F0PumpStartTime, (double)Parameters["v0EOMPumpValue"]); p.AddAnalogValue("v00EOMAmp", motRecaptureTime, (double)Parameters["v0EOMMOTValue"]); // v0 Frequency Ramp p.AddAnalogValue("v00Frequency", 0, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyMOTValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"]); p.AddAnalogValue( "v00Frequency", molassesStartTime, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyMolassesValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"] ); p.AddAnalogValue( "v00Frequency", v0F0PumpStartTime, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyF0PumpValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"] ); p.AddAnalogValue( "v00Frequency", motRecaptureTime, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyMOTValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"] ); return(p); }