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"]); 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 p.AddAnalogValue("D1EOMfrequency", 0, (double)Parameters["MolassesRepumpDetuning"]); p.AddAnalogValue("D1EOMamplitude", 0, (double)Parameters["MolassesRepumpAmplitude"]); p.AddAnalogValue("aom2frequency", 0, (double)Parameters["MolassesPrincipalFrequency"]); p.AddAnalogValue("aom2amplitude", 0, (double)Parameters["MolassesPrincipalStartAmplitude"]); p.AddAnalogValue("offsetlockfrequency", 0, (double)Parameters["offsetlockvcofrequency"]);//setting up molasses parameters p.AddLinearRamp("aom3amplitude", (int)Parameters["MOTEndTime"] - 10, 10, 3); p.AddLinearRamp("aom3frequency", (int)Parameters["MOTEndTime"] - 10, 10, 180.0); p.AddLinearRamp("TopTrappingCoilcurrent", (int)Parameters["MOTEndTime"] - 100, 100, 3.3); p.AddLinearRamp("BottomTrappingCoilcurrent", (int)Parameters["MOTEndTime"] - 100, 100, 3.3); p.AddAnalogValue("aom3amplitude", (int)Parameters["MOTEndTime"] + 1, 6.0); p.AddAnalogValue("aom3frequency", (int)Parameters["MOTEndTime"] + 1, (double)Parameters["aom3Detuning"]); p.AddAnalogValue("TopTrappingCoilcurrent", (int)Parameters["MOTEndTime"], 0); p.AddAnalogValue("BottomTrappingCoilcurrent", (int)Parameters["MOTEndTime"], 0); //Molasses shim currents p.AddAnalogValue("xcoilcurrent", (int)Parameters["MOTEndTime"] - 30, (double)Parameters["MolXShimCoilCurrent"]); p.AddAnalogValue("ycoilcurrent", (int)Parameters["MOTEndTime"] - 30, (double)Parameters["MolYShimCoilCurrent"]); p.AddAnalogValue("zcoilcurrent", (int)Parameters["MOTEndTime"] - 30, (double)Parameters["MolZShimCoilCurrent"]); //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 LoadMoleculeMOT(p, Parameters); int cMOTStartTime = 4000; int cMOTEndTime = cMOTStartTime + (int)Parameters["CMOTRampDuration"] + (int)Parameters["CMOTHoldTime"]; int motSwitchOffTime = cMOTEndTime + 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"); /////////////////FIELDS: // 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.AddLinearRamp("MOTCoilsCurrent", cMOTStartTime, (int)Parameters["CMOTRampDuration"], (double)Parameters["BFieldRampEndValue"]); p.AddAnalogValue("MOTCoilsCurrent", cMOTEndTime, (double)Parameters["BFieldRampEndValue"]); //p.AddAnalogValue("MOTCoilsCurrent", cMOTEndTime, (double)Parameters["MOTCoilsCurrentValue"]); p.AddAnalogValue("MOTCoilsCurrent", motSwitchOffTime, 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"]); ////////////////LIGHT: // F=0 p.AddAnalogValue("v00EOMAmp", 0, 4.7); // v0 Intensity Ramp p.AddAnalogValue("v00Intensity", 0, (double)Parameters["v0IntensityRampStartValue"]); p.AddLinearRamp("v00Intensity", cMOTStartTime, (int)Parameters["CMOTRampDuration"], (double)Parameters["IntensityRampEndValue"]); //p.AddAnalogValue("v00Intensity", cMOTEndTime, (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"]); // Add Analog Channels p.AddChannel("slowingChirp"); p.AddChannel("v0IntensityRamp"); p.AddChannel("v0FrequencyRamp"); p.AddChannel("MOTCoilsCurrent"); // B Field p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTCoilsSwitchOn"], (double)Parameters["MOTCoilsCurrentRampStartValue"]); if ((bool)Parameters["MOTCoilsRampActive"]) { p.AddLinearRamp("MOTCoilsCurrent", (int)Parameters["MOTCoilsCurrentRampStartTime"], (int)Parameters["MOTCoilsCurrentRampDuration"], (double)Parameters["MOTCoilsCurrentRampEndValue"]); } p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTCoilsSwitchOff"], 0); // Slowing Chirp p.AddAnalogValue("slowingChirp", 0, (double)Parameters["SlowingChirpStartValue"]); p.AddLinearRamp("slowingChirp", (int)Parameters["SlowingChirpStartTime"], (int)Parameters["SlowingChirpDuration"], (double)Parameters["SlowingChirpEndValue"]); p.AddLinearRamp("slowingChirp", (int)Parameters["SlowingChirpStartTime"] + (int)Parameters["SlowingChirpDuration"], (int)Parameters["SlowingChirpDuration"], (double)Parameters["SlowingChirpStartValue"]); // 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["MOTAOMStartTime"], (double)Parameters["v0IntensityRampStartValue"]); // v0 Frequency Ramp p.AddAnalogValue("v0FrequencyRamp", 0, (double)Parameters["v0FrequencyRampStartValue"]); p.AddLinearRamp("v0FrequencyRamp", (int)Parameters["v0FrequencyRampStartTime"], (int)Parameters["v0FrequencyRampDuration"], (double)Parameters["v0FrequencyRampEndValue"]); p.SwitchAllOffAtEndOfPattern(); return(p); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); MOTMasterScriptSnippet lm = new LoadMoleculeMOT(p, Parameters); int motSwitchOffTime = (int)Parameters["MOTLoadTime"] + (int)Parameters["v0IntensityRampDuration"] + (int)Parameters["MOTHoldTime"]; int blueMolassesStartTime = motSwitchOffTime + (int)Parameters["BlueMolassesStartDelay"]; int fullIntensityBlueMolassesEndTime = blueMolassesStartTime + (int)Parameters["FullIntensityBlueMolassesDuration"]; int blueMolassesEndTime = fullIntensityBlueMolassesEndTime + (int)Parameters["v0IntensityMolassesRampDuration"]; int cameraTrigger = blueMolassesEndTime + (int)Parameters["FreeExpansionTime"]; // 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", motSwitchOffTime, -0.05); //switch off MOT coils for blue molasses // Shim Fields p.AddAnalogValue("xShimCoilCurrent", 0, (double)Parameters["xShimLoadCurrent"]); p.AddAnalogValue("yShimCoilCurrent", 0, (double)Parameters["yShimLoadCurrent"]); p.AddAnalogValue("zShimCoilCurrent", 0, (double)Parameters["zShimLoadCurrent"]); // F=0 p.AddAnalogValue("v00EOMAmp", 0, 4.7); // v0 Intensity Ramp p.AddAnalogValue("v00Intensity", 0, (double)Parameters["v0IntensityRampStartValue"]); p.AddLinearRamp("v00Intensity", (int)Parameters["MOTLoadTime"], (int)Parameters["v0IntensityRampDuration"], (double)Parameters["v0IntensityRampEndValue"]); p.AddAnalogValue("v00Intensity", blueMolassesStartTime, (double)Parameters["v0IntensityMolassesValue"]); p.AddLinearRamp("v00Intensity", fullIntensityBlueMolassesEndTime, (int)Parameters["v0IntensityMolassesRampDuration"], (double)Parameters["v0IntensityMolassesEndValue"]); //p.AddAnalogValue("v00Intensity", fullIntensityBlueMolassesEndTime + 50, 7.4); //p.AddAnalogValue("v00Intensity", fullIntensityBlueMolassesEndTime + 100, 7.83); //p.AddAnalogValue("v00Intensity", fullIntensityBlueMolassesEndTime + 150, 8.09); p.AddAnalogValue("v00Intensity", cameraTrigger, (double)Parameters["v0IntensityRampStartValue"]); // v0 Frequency Ramp p.AddAnalogValue("v00Frequency", 0, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyStartValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"]); p.AddAnalogValue("v00Frequency", motSwitchOffTime, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyNewValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"]); //jump to blue detuning p.AddAnalogValue("v00Frequency", cameraTrigger, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyStartValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"]); //jump aom frequency back to normal for imaging //v0 chirp p.AddAnalogValue("v00Chirp", 0, 0.0); 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, (double)Parameters["aom1Power"]); p.AddAnalogValue("aom3amplitude", 0, 6.0); p.AddAnalogValue("offsetlockfrequency", 0, (double)Parameters["offsetlockfrequency"]); 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("aom1amplitude", (int)Parameters["CMOTEndTime"], (double)Parameters["D1RepumperPower"]); //set D1 repumper to correct value p.AddAnalogValue("aom1frequency", (int)Parameters["CMOTEndTime"], (double)Parameters["D1RepumperDetuning"]); p.AddAnalogValue("aom0frequency", (int)Parameters["CMOTEndTime"], (double)Parameters["D1PrincipalDetuning"]); 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"] + (int)Parameters["D1Duration"] + 2, (double)Parameters["absImageRepumpPower"]); p.AddAnalogValue("aom1frequency", (int)Parameters["CMOTEndTime"] + (int)Parameters["D1Duration"] + 2, (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("v00Intensity"); p.AddChannel("v00Frequency"); p.AddChannel("xShimCoilCurrent"); p.AddChannel("yShimCoilCurrent"); p.AddChannel("zShimCoilCurrent"); p.AddChannel("v00EOMAmp"); p.AddChannel("v00Chirp"); p.AddChannel("transferCoils"); // Slowing field p.AddAnalogValue("slowingCoilsCurrent", 0, (double)Parameters["slowingCoilsValue"]); p.AddAnalogValue("slowingCoilsCurrent", (int)Parameters["slowingCoilsOffTime"], 0.0); // Use for transport trap p.AddAnalogValue("transferCoils", 0, 0.0); p.AddLinearRamp("transferCoils", 10, 10000, 5.0); p.AddLinearRamp("transferCoils", 90010, 10000, 0.0); //p.AddAnalogValue("transferCoils", 0, 0.0); //p.AddAnalogValue("transferCoils", (int)Parameters["MOTCoilsSwitchOn"], (double)Parameters["MOTCoilsCurrentRampStartValue"]); //p.AddLinearRamp("transferCoils", (int)Parameters["MOTCoilsCurrentRampStartTime"], (int)Parameters["MOTCoilsCurrentRampDuration"], (double)Parameters["MOTCoilsCurrentRampEndValue"]); /* * // 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"]); 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); //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["TopMagTrapCurrent"]); p.AddLinearRamp("BottomTrappingCoilcurrent", (int)Parameters["MOTEndTime"] - (int)Parameters["CMOTTime"] - (int)Parameters["CMOTHoldTime"], (int)Parameters["CMOTTime"], (double)Parameters["BottomMagTrapCurrent"]); p.AddLinearRamp("aom3amplitude", (int)Parameters["MOTEndTime"] - (int)Parameters["CMOTTime"] - (int)Parameters["CMOTHoldTime"], (int)Parameters["CMOTTime"], (double)Parameters["CMOTFinalPower"]); p.AddAnalogValue("aom3amplitude", (int)Parameters["MOTEndTime"] + 1, 6.0); p.AddAnalogValue("aom3frequency", (int)Parameters["MOTEndTime"] + 1, (double)Parameters["aom3Detuning"]); //magnetic trap p.AddAnalogValue("TopTrappingCoilcurrent", (int)Parameters["MOTEndTime"], (double)Parameters["TopMagTrapCurrent"]); p.AddAnalogValue("BottomTrappingCoilcurrent", (int)Parameters["MOTEndTime"], (double)Parameters["BottomMagTrapCurrent"]); p.AddAnalogValue("TopTrappingCoilcurrent", (int)Parameters["MOTEndTime"] + (int)Parameters["MagTrapHoldTime"], 0.0); p.AddAnalogValue("BottomTrappingCoilcurrent", (int)Parameters["MOTEndTime"] + (int)Parameters["MagTrapHoldTime"], 0.0); p.AddAnalogValue("xcoilcurrent", (int)Parameters["MOTEndTime"], (double)Parameters["MagXShimCoilCurrent"]); p.AddAnalogValue("ycoilcurrent", (int)Parameters["MOTEndTime"], (double)Parameters["MagYShimCoilCurrent"]); p.AddAnalogValue("zcoilcurrent", (int)Parameters["MOTEndTime"], (double)Parameters["MagZShimCoilCurrent"]); //Taking the pictures p.AddAnalogValue("D2EOMfrequency", (int)Parameters["MOTEndTime"] + (int)Parameters["ImageDelay"] + (int)Parameters["MagTrapHoldTime"] - 3, (double)Parameters["absImageRepumpDetuning"]); p.AddAnalogValue("D2EOMamplitude", (int)Parameters["MOTEndTime"] + (int)Parameters["ImageDelay"] + (int)Parameters["MagTrapHoldTime"] - 3, (double)Parameters["absImageRepumpAmplitude"]); p.AddAnalogValue("aom1frequency", (int)Parameters["MOTEndTime"] + (int)Parameters["ImageDelay"] + (int)Parameters["MagTrapHoldTime"] - 1, (double)Parameters["absImageDetuning"]); p.AddAnalogValue("aom1amplitude", (int)Parameters["MOTEndTime"] + (int)Parameters["ImageDelay"] + (int)Parameters["MagTrapHoldTime"] - 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"]); // Add Analog Channels p.AddChannel("v00Intensity"); p.AddChannel("v00Frequency"); p.AddChannel("xShimCoilCurrent"); p.AddChannel("yShimCoilCurrent"); p.AddChannel("zShimCoilCurrent"); p.AddChannel("v00EOMAmp"); p.AddChannel("v00Chirp"); p.AddChannel("slowingChirp"); p.AddChannel("slowingCoilsCurrent"); p.AddChannel("MOTCoilsCurrent"); // Slowing Chirp p.AddAnalogValue("slowingChirp", 0, (double)Parameters["SlowingChirpStartValue"]); p.AddLinearRamp("slowingChirp", (int)Parameters["SlowingChirpStartTime"], (int)Parameters["SlowingChirpDuration"], (double)Parameters["SlowingChirpEndValue"]); p.AddLinearRamp("slowingChirp", (int)Parameters["SlowingChirpStartTime"] + (int)Parameters["SlowingChirpDuration"] + 200, (int)Parameters["SlowingChirpDuration"], (double)Parameters["SlowingChirpStartValue"]); // 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["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, 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); 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 p.AddAnalogValue("offsetlockfrequency", 0, (double)Parameters["offsetlockvcofrequency"]); p.AddAnalogValue("D1EOMfrequency", 0, (double)Parameters["MolassesRepumpDetuning"]); p.AddAnalogValue("D1EOMamplitude", 0, (double)Parameters["MolassesRepumpAmplitude"]); p.AddAnalogValue("aom2frequency", 0, (double)Parameters["MolassesPrincipalFrequency"]); p.AddAnalogValue("aom2amplitude", 0, (double)Parameters["MolassesPrincipalAmplitude"]); //setting up the molasses parameters //CMOT p.AddLinearRamp("TopTrappingCoilcurrent", (int)Parameters["MOTEndTime"] - (int)Parameters["CMOTFieldRampTime"], (int)Parameters["CMOTFieldRampTime"], (double)Parameters["CMOTTopVacCurrent"]); p.AddLinearRamp("BottomTrappingCoilcurrent", (int)Parameters["MOTEndTime"] - (int)Parameters["CMOTFieldRampTime"], (int)Parameters["CMOTFieldRampTime"], (double)Parameters["CMOTBottomVacCurrent"]); p.AddAnalogValue("aom3amplitude", (int)Parameters["MOTEndTime"] - (int)Parameters["CMOTTime"], (double)Parameters["CMOTFinalPower"]); p.AddAnalogValue("aom3frequency", (int)Parameters["MOTEndTime"] - (int)Parameters["CMOTTime"], (double)Parameters["CMOTFinalDetuning"]); p.AddAnalogValue("TopTrappingCoilcurrent", (int)Parameters["MOTEndTime"], 0); p.AddAnalogValue("BottomTrappingCoilcurrent", (int)Parameters["MOTEndTime"], 0); //Setting the probe aom amplitude for repumping p.AddAnalogValue("aom1amplitude", (int)Parameters["MOTEndTime"] + (int)Parameters["MolStartDelay"] + (int)Parameters["MolassesPulseLength"] - 2, (double)Parameters["PumpingPower"]); //Taking the pictures p.AddAnalogValue("D2EOMfrequency", (int)Parameters["MOTEndTime"] + (int)Parameters["MolStartDelay"] + (int)Parameters["MolassesPulseLength"] + (int)Parameters["ImageDelay"] - 3, (double)Parameters["absImageRepumpDetuning"]); p.AddAnalogValue("D2EOMamplitude", (int)Parameters["MOTEndTime"] + (int)Parameters["MolStartDelay"] + (int)Parameters["MolassesPulseLength"] + (int)Parameters["ImageDelay"] - 3, (double)Parameters["absImageRepumpAmplitude"]); p.AddAnalogValue("aom1frequency", (int)Parameters["MOTEndTime"] + (int)Parameters["MolStartDelay"] + (int)Parameters["MolassesPulseLength"] + (int)Parameters["ImageDelay"] - 1, (double)Parameters["absImageDetuning"]); p.AddAnalogValue("aom1amplitude", (int)Parameters["MOTEndTime"] + (int)Parameters["MolStartDelay"] + (int)Parameters["MolassesPulseLength"] + (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"]); int patternStartBeforeQ = (int)Parameters["TCLBlockStart"] + (int)Parameters["RbMOTLoadTime"]; // Add Analog Channels p.AddChannel("v00Intensity"); p.AddChannel("v00Frequency"); p.AddChannel("xShimCoilCurrent"); p.AddChannel("yShimCoilCurrent"); p.AddChannel("zShimCoilCurrent"); p.AddChannel("v00EOMAmp"); p.AddChannel("slowingChirp"); p.AddChannel("slowingCoilsCurrent"); p.AddChannel("MOTCoilsCurrent"); // Slowing Chirp p.AddAnalogValue("slowingChirp", 0, (double)Parameters["SlowingChirpStartValue"]); p.AddLinearRamp("slowingChirp", patternStartBeforeQ + (int)Parameters["SlowingChirpStartTime"], (int)Parameters["SlowingChirpDuration"], (double)Parameters["SlowingChirpEndValue"]); p.AddLinearRamp("slowingChirp", patternStartBeforeQ + (int)Parameters["SlowingChirpStartTime"] + (int)Parameters["SlowingChirpDuration"] + 200, (int)Parameters["SlowingChirpDuration"], (double)Parameters["SlowingChirpStartValue"]); // Slowing field p.AddAnalogValue("slowingCoilsCurrent", 0, (double)Parameters["slowingCoilsValue"]); p.AddAnalogValue("slowingCoilsCurrent", patternStartBeforeQ + (int)Parameters["slowingCoilsOffTime"], 0.0); // B Field p.AddAnalogValue("MOTCoilsCurrent", 0, (double)Parameters["MOTCoilsCurrentRbLoadValue"]); p.AddLinearRamp("MOTCoilsCurrent", patternStartBeforeQ - (int)Parameters["MOTCoilsCurrentRampDuration"], (int)Parameters["MOTCoilsCurrentRampDuration"], (double)Parameters["MOTCoilsCurrentCaFLoadValue"]); p.AddLinearRamp("MOTCoilsCurrent", patternStartBeforeQ + (int)Parameters["BgCameraTrigger"] + 1000, (int)Parameters["MOTCoilsCurrentRampDuration"], (double)Parameters["MOTCoilsCurrentCompressValue"]); p.AddAnalogValue("MOTCoilsCurrent", patternStartBeforeQ + (int)Parameters["MOTCoilsSwitchOff"], (double)Parameters["MOTCoilsCurrentRbLoadValue"]); // 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", patternStartBeforeQ + (int)Parameters["BgCameraTrigger"] + 1000, (int)Parameters["v0IntensityRampDuration"], (double)Parameters["v0IntensityRampEndValue"]); p.AddAnalogValue("v00Intensity", patternStartBeforeQ + (int)Parameters["BgCameraTrigger"] + (int)Parameters["MeasCameraTriggerDelay"], (double)Parameters["v0IntensityRampStartValue"]); // v0 Frequency Ramp p.AddAnalogValue("v00Frequency", 0, (double)Parameters["v0FrequencyStartValue"]); return(p); }
public void AddAnalogSnippet(AnalogPatternBuilder p, Dictionary <String, Object> parameters) { p.AddChannel("slowingChirp"); p.AddChannel("slowingCoilsCurrent"); p.AddChannel("MOTCoilsCurrent"); // Slowing Chirp p.AddAnalogValue("slowingChirp", 0, (double)parameters["SlowingChirpStartValue"]); p.AddLinearRamp("slowingChirp", (int)parameters["SlowingChirpStartTime"], (int)parameters["SlowingChirpDuration"], (double)parameters["SlowingChirpEndValue"]); p.AddLinearRamp("slowingChirp", (int)parameters["SlowingChirpStartTime"] + (int)parameters["SlowingChirpDuration"] + 200, (int)parameters["SlowingChirpDuration"], (double)parameters["SlowingChirpStartValue"]); }
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"]); 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["MOTCoilsCurrentValue"]); p.AddAnalogValue("MOTCoilsCurrent", (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["v0IntensityRampStartValue"]); p.AddLinearRamp("v0IntensityRamp", (int)Parameters["v0IntensityRampStartTime"], (int)Parameters["v0IntensityRampDuration"], (double)Parameters["v0IntensityRampEndValue"]); p.AddAnalogValue("v0IntensityRamp", (int)Parameters["Frame0Trigger"], (double)Parameters["v0IntensityRampStartValue"]); // v0 Frequency p.AddAnalogValue("v0FrequencyRamp", 0, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyStartValue"] / 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 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("aom3amplitude", 0, 5.3); p.AddAnalogValue("aom3frequency", 0, 198); p.AddLinearRamp("aom3frequency", 10000, 10, 203); //p.AddAnalogValue("coil0current", 30000, 1.6); //p.AddAnalogValue("coil1current", 30000, 2.1); //p.AddLinearRamp("coil0current", 30000,4, 0);//bottom coil //p.AddLinearRamp("coil1current", 30001,3, 1.7);//top coil //p.AddLinearRamp("coil0current", 30007, 11, 0);//bottom coil //p.AddLinearRamp("coil1current", 30008, 10, 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 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["MOTCoilsCurrentValue"]); p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["MOTSwitchOffTime"], 0); // For BOP p.AddAnalogValue("MOTBOPCoilsCurrent", (int)Parameters["MOTCoilsSwitchOn"], (double)Parameters["MOTBOPCoilsCurrentStartValue"]); p.AddAnalogValue("MOTBOPCoilsCurrent", (int)Parameters["MOTSwitchOffTime"], (double)Parameters["MOTBOPCoilsCurrentMolassesValue"]); // Shim Fields p.AddAnalogValue("xShimCoilCurrent", 0, (double)Parameters["xShimLoadCurrent"]); p.AddAnalogValue("xShimCoilCurrent", (int)Parameters["shimFieldSwitchTime"], (double)Parameters["xShimMolassesCurrent"]); p.AddAnalogValue("zShimCoilCurrent", 0, (double)Parameters["zShimLoadCurrent"]); p.AddAnalogValue("zShimCoilCurrent", (int)Parameters["shimFieldSwitchTime"], (double)Parameters["zShimMolassesCurrent"]); // v0 Intensity Ramp p.AddAnalogValue("v0IntensityRamp", 0, (double)Parameters["v0IntensityRampStartValue"]); p.AddLinearRamp("v0IntensityRamp", (int)Parameters["v0IntensityRampStartTime"], (int)Parameters["v0IntensityRampDuration"], (double)Parameters["v0IntensityRampEndValue"]); // v0 Molasses p.AddAnalogValue("v0IntensityRamp", (int)Parameters["MOTSwitchOffTime"] + (int)Parameters["MolassesWaitTime"], (double)Parameters["v0IntensityMolassesRampStartValue"]); p.AddLinearRamp("v0IntensityRamp", (int)Parameters["v0IntensityMolassesRampStartTime"], (int)Parameters["v0IntensityMolassesRampDuration"], (double)Parameters["v0IntensityMolassesRampEndValue"]); // v0 Imaging p.AddAnalogValue("v0IntensityRamp", (int)Parameters["MOTSwitchOffTime"] + (int)Parameters["MolassesWaitTime"] + (int)Parameters["MolassesDuration"] + (int)Parameters["ExpansionTime"], (double)Parameters["v0IntensityRampStartValue"]); //jump intensity back to 100% 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", (int)Parameters["MOTSwitchOffTime"] + (int)Parameters["MolassesWaitTime"], ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyNewValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"]); //jump to blue detuning p.AddAnalogValue("v0FrequencyRamp", (int)Parameters["MOTSwitchOffTime"] + (int)Parameters["MolassesWaitTime"] + (int)Parameters["MolassesDuration"] + (int)Parameters["ExpansionTime"], ((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); 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"]); int motCompressStartTime = (int)Parameters["LoadingDuration"]; int molassesStartTime = motCompressStartTime + (int)Parameters["MOTCoilsCurrentRampDuration"] + (int)Parameters["MOTCoilsCurrentWaitAfterRamp"]; int opticalPumpingStartTime = molassesStartTime + (int)Parameters["MolassesDuration"]; int magTrapStartTime = opticalPumpingStartTime + (int)Parameters["OpticalPumpingDuration"]; int motRecaptureTime = magTrapStartTime + (int)Parameters["MagTrapDuration"]; int imageTime = motRecaptureTime + (int)Parameters["MOTWaitBeforeImage"]; // 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.AddLinearRamp("MOTCoilsCurrent", motCompressStartTime, (int)Parameters["MOTCoilsCurrentRampDuration"], (double)Parameters["MOTCoilsCurrentRampEndValue"]); p.AddAnalogValue("MOTCoilsCurrent", molassesStartTime, 0.0); p.AddAnalogValue("MOTCoilsCurrent", magTrapStartTime, (double)Parameters["MOTCoilsCurrentMagTrapValue"]); p.AddAnalogValue("MOTCoilsCurrent", motRecaptureTime, (double)Parameters["MOTCoilsCurrentValue"]); p.AddAnalogValue("MOTCoilsCurrent", imageTime + 2000, 0.0); // Turn off MOT coils at the end of the sequence // 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.AddLinearRamp("rbCoolingIntensity", motCompressStartTime, (int)Parameters["rbCoolingMOTIntensityRampDuration"], (double)Parameters["rbCoolingMOTIntensityRampEndValue"]); 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", motRecaptureTime, (double)Parameters["rbCoolingMOTIntensity"]); return(p); }
public void AddAnalogSnippet(AnalogPatternBuilder p, Dictionary <String, Object> parameters) { int patternStartBeforeQ = (int)parameters["TCLBlockStart"]; int slowingChirpStartTime = patternStartBeforeQ + (int)parameters["SlowingChirpStartTime"]; int slowingNewDetuningTime = slowingChirpStartTime + (int)parameters["SlowingChirpDuration"]; int slowingChirpBackTime = slowingNewDetuningTime + (int)parameters["SlowingChirpHoldDuration"]; int slowingChirpFinishedTime = slowingChirpBackTime + (int)parameters["SlowingChirpDuration"]; p.AddChannel("slowingChirp"); p.AddChannel("slowingCoilsCurrent"); p.AddChannel("MOTCoilsCurrent"); // Slowing Chirp p.AddAnalogValue("slowingChirp", 0, (double)parameters["SlowingChirpStartValue"]); p.AddLinearRamp("slowingChirp", slowingChirpStartTime, (int)parameters["SlowingChirpDuration"], (double)parameters["SlowingChirpEndValue"]); p.AddLinearRamp("slowingChirp", slowingNewDetuningTime, 200, (double)parameters["PokeDetuningValue"]); p.AddLinearRamp("slowingChirp", slowingChirpBackTime, (int)parameters["SlowingChirpDuration"], (double)parameters["SlowingChirpStartValue"]); }
public override AnalogPatternBuilder GetAnalogPattern() { AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]); int motLoadingEndTime = 5000; int motSwitchOffTime = motLoadingEndTime + (int)Parameters["v0IntensityRampDuration"]; int cameraTriggerTime = motSwitchOffTime + (int)Parameters["FreeExpansionTime"]; 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", motSwitchOffTime, -0.1); //Switch off MOT coils to let cloud expand // 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"]); p.AddLinearRamp("v00Intensity", motLoadingEndTime, (int)Parameters["v0IntensityRampDuration"], (double)Parameters["v0IntensityEndValue"]); p.AddAnalogValue("v00Intensity", motSwitchOffTime, (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"]); 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.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 p.AddLinearRamp("aom3amplitude", (int)Parameters["MOTEndTime"] - 10, 10, 3); p.AddLinearRamp("aom3frequency", (int)Parameters["MOTEndTime"] - 10, 10, 180.0); p.AddAnalogValue("aom3amplitude", (int)Parameters["MOTEndTime"] + 1, 6.0); p.AddAnalogValue("aom3frequency", (int)Parameters["MOTEndTime"] + 1, (double)Parameters["aom3Detuning"]); p.AddAnalogValue("TopTrappingCoilcurrent", (int)Parameters["MOTEndTime"], 0); p.AddAnalogValue("BottomTrappingCoilcurrent", (int)Parameters["MOTEndTime"], 0); //Taking the pictures p.AddAnalogValue("D2EOMfrequency", (int)Parameters["Frame0Trigger"] - 5, (double)Parameters["absImageRepumpDetuning"]); p.AddAnalogValue("D2EOMamplitude", (int)Parameters["Frame0Trigger"] - 5, (double)Parameters["absImageRepumpAmplitude"]); p.AddAnalogValue("aom1frequency", (int)Parameters["Frame0Trigger"] - 5, (double)Parameters["absImageDetuning"]); p.AddAnalogValue("aom1amplitude", (int)Parameters["Frame0Trigger"] - 5, (double)Parameters["absImagePower"]); 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"); // 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["MOTCoilsCurrentTopRampStartValue"]); p.AddLinearRamp("MOTCoilsCurrentTop", (int)Parameters["MOTCoilsCurrentRampStartTime"], (int)Parameters["MOTCoilsCurrentRampDuration"], (double)Parameters["MOTCoilsCurrentTopRampEndValue"]); p.AddAnalogValue("MOTCoilsCurrentTop", (int)Parameters["MOTCoilsSwitchOff"], 0.0); p.AddAnalogValue("MOTCoilsCurrentBottom", (int)Parameters["MOTCoilsSwitchOn"], (double)Parameters["MOTCoilsCurrentBottomRampStartValue"]); p.AddLinearRamp("MOTCoilsCurrentBottom", (int)Parameters["MOTCoilsCurrentRampStartTime"], (int)Parameters["MOTCoilsCurrentRampDuration"], (double)Parameters["MOTCoilsCurrentBottomRampEndValue"]); p.AddAnalogValue("MOTCoilsCurrentBottom", (int)Parameters["MOTCoilsSwitchOff"], 0.0); // Shim Fields p.AddAnalogValue("xShimCoilCurrent", 0, (double)Parameters["xShimLoadCurrent"]); p.AddAnalogValue("yShimCoilCurrent", 0, (double)Parameters["yShimLoadCurrent"]); // trigger delay // p.AddAnalogValue("triggerDelay", 0, (double)Parameters["triggerDelay"]); // 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("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.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"]); 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 LoadMoleculeMOTNoSlowingEdge(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"]); // Turn off single MOT coil for Poke p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["PokeStartTime"] - (int)Parameters["PrePokeTime"], 0); p.AddAnalogValue("MOTCoilsCurrent", (int)Parameters["PokeStartTime"] + (int)Parameters["PokeDuration"], (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"]); p.AddLinearRamp("v0IntensityRamp", (int)Parameters["v0IntensityRampStartTime"], (int)Parameters["v0IntensityRampDuration"], (double)Parameters["v0IntensityRampEndValue"]); p.AddAnalogValue("v0IntensityRamp", (int)Parameters["PokeStartTime"] + (int)Parameters["PokeDuration"] + (int)Parameters["OscillationTime"], (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("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); // Add Analog Channels p.AddChannel("v0IntensityRamp"); p.AddChannel("v0FrequencyRamp"); p.AddChannel("xShimCoilCurrent"); p.AddChannel("yShimCoilCurrent"); p.AddChannel("v00EOMAmp"); 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["MOTSwitchOffTime"], 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"] + 100, (double)Parameters["v0IntensityMolassesValue"]); //(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", (int)Parameters["MOTSwitchOffTime"] + 100, ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyNewValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"]); //jump to blue detuning p.AddAnalogValue("v0FrequencyRamp", (int)Parameters["MOTSwitchOffTime"] + 100 + (int)Parameters["MolassesDuration"] + (int)Parameters["ExpansionTime"], ((double)Parameters["lockAomFrequency"] - (double)Parameters["v0FrequencyStartValue"] / 2 - (double)Parameters["calibOffset"]) / (double)Parameters["calibGradient"]); //jump aom frequency back to normal for imaging return(p); }