상속: MOTMasterScriptSnippet
예제 #1
0
    public override PatternBuilder32 GetDigitalPattern()
    {
        PatternBuilder32 p = new PatternBuilder32();

        MOTMasterScriptSnippet lm = new SHLoadMOT(p, Parameters);  // This is how you load "preset" patterns.

        p.Pulse(0, 0, 1, "AnalogPatternTrigger");  //NEVER CHANGE THIS!!!! IT TRIGGERS THE ANALOG PATTERN!

        p.Pulse(10000, 0, 100000, "TranslationStageTrigger");

        p.AddEdge("CameraTrigger", 0, true);
        p.DownPulse((int)Parameters["Frame0Trigger"], 0, (int)Parameters["Frame0TriggerDuration"], "CameraTrigger");
        p.DownPulse((int)Parameters["Frame1Trigger"], 0, (int)Parameters["Frame1TriggerDuration"], "CameraTrigger");

        p.DownPulse(150000, 0, 50, "CameraTrigger");
        p.DownPulse(155000, 0, 50, "CameraTrigger");

        // loads the mag trap by switching off the MOT beams
        p.AddEdge("aom0enable", (int)Parameters["MOTLoadTime"], false);
        p.AddEdge("aom1enable", (int)Parameters["MOTLoadTime"], false);
        //p.AddEdge("aom2enable", (int)Parameters["Frame0Trigger"], false); //switches off Zeeman beam
        p.AddEdge("aom2enable", (int)Parameters["MOTLoadTime"], false);
        p.AddEdge("aom3enable", (int)Parameters["MOTLoadTime"], false);
        p.Pulse((int)Parameters["Frame0Trigger"], 0, (int)Parameters["ExposureTime"], "aom3enable");
        p.Pulse((int)Parameters["Frame1Trigger"], 0, (int)Parameters["ExposureTime"], "aom3enable");

        return p;
    }
예제 #2
0
    public override PatternBuilder32 GetDigitalPattern()
    {
        PatternBuilder32 p = new PatternBuilder32();

        MOTMasterScriptSnippet lm = new SHLoadMOT(p, Parameters);  // This is how you load "preset" patterns.

        p.Pulse(0, 0, 1, "AnalogPatternTrigger");  //NEVER CHANGE THIS!!!! IT TRIGGERS THE ANALOG PATTERN!

        p.Pulse(40000, 0, 100000, "TranslationStageTrigger");

        p.AddEdge("CameraTrigger", 0, true);
        p.DownPulse((int)Parameters["Frame0Trigger"], 0, (int)Parameters["Frame0TriggerDuration"], "CameraTrigger");
        p.DownPulse((int)Parameters["Frame1Trigger"], 0, (int)Parameters["Frame1TriggerDuration"], "CameraTrigger");
        p.DownPulse((int)Parameters["Frame2Trigger"], 0, (int)Parameters["Frame2TriggerDuration"], "CameraTrigger");

        p.DownPulse(190000, 0, 50, "CameraTrigger");
        p.DownPulse(195000, 0, 50, "CameraTrigger");

        // switches off the Zeeman and absorption beams to avoid reloading the MOT whilst imaging, and to allow fluorescence images to be obtained
        p.DownPulse((int)Parameters["Frame0Trigger"], 0, (int)Parameters["CameraExposure"], "aom2enable");
        p.DownPulse((int)Parameters["Frame0Trigger"], 0, (int)Parameters["CameraExposure"], "aom3enable");

        // loads the mag trap, Zeeman light is not switched back on again to avoid MOT reloading
        p.DownPulse((int)Parameters["MOTLoadDuration"], 0, (int)Parameters["MagTrapDuration"], "aom0enable");
        p.DownPulse((int)Parameters["MOTLoadDuration"], 0, (int)Parameters["MagTrapDuration"], "aom1enable");
        p.AddEdge("aom2enable", (int)Parameters["MOTLoadDuration"], false);
        p.AddEdge("aom3enable", (int)Parameters["MOTLoadDuration"], false);

        return p;
    }
예제 #3
0
    public override AnalogPatternBuilder GetAnalogPattern()
    {
        AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]);

        MOTMasterScriptSnippet lm = new SHLoadMOT(p, Parameters);
        p.AddAnalogPulse("coil0current", (int)Parameters["MOTLoadDuration"], (int)Parameters["ReleaseTime"], 0, (double)Parameters["MOTCoilsCurrent"]);
        p.AddAnalogValue("coil0current", 115000, 0);

        p.SwitchAllOffAtEndOfPattern();
        return p;
    }
예제 #4
0
    public override PatternBuilder32 GetDigitalPattern()
    {
        PatternBuilder32 p = new PatternBuilder32();

            MOTMasterScriptSnippet lm = new SHLoadMOT(p, Parameters);  // This is how you load "preset" patterns.

            p.Pulse(0, 0, 1, "AnalogPatternTrigger");  //NEVER CHANGE THIS!!!! IT TRIGGERS THE ANALOG PATTERN!

            p.AddEdge("CameraTrigger", 0, true);
            p.DownPulse((int)Parameters["Frame0Trigger"], 0, (int)Parameters["Frame0TriggerDuration"], "CameraTrigger");
            p.DownPulse((int)Parameters["Frame1Trigger"], 0, (int)Parameters["Frame1TriggerDuration"], "CameraTrigger");

            p.DownPulse(150000, 0, 50, "CameraTrigger");
            p.DownPulse(160000, 0, 50, "CameraTrigger");

            return p;
    }
예제 #5
0
    public override AnalogPatternBuilder GetAnalogPattern()
    {
        AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]);

            MOTMasterScriptSnippet lm = new SHLoadMOT(p, Parameters);

            //p.AddChannel("aom2frequency");
            //p.AddChannel("aom3frequency");

            p.AddAnalogValue("coil0current", 0, 0);
            //p.AddAnalogValue("aom2frequency", 0, 190.875);
            //p.AddAnalogValue("aom3frequency", 0, 210.875);
            p.AddAnalogValue("coil0current", 120000, 0);

            p.SwitchAllOffAtEndOfPattern();
            return p;
    }
예제 #6
0
    public override AnalogPatternBuilder GetAnalogPattern()
    {
        AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]);

        MOTMasterScriptSnippet lm = new SHLoadMOT(p, Parameters);

        p.AddChannel("aom2frequency");
        p.AddChannel("aom3frequency");

        p.AddAnalogValue("coil0current", 0, 0);
        p.AddAnalogValue("aom2frequency", 0, (double)Parameters["aom2Detuning"]);
        p.AddAnalogValue("aom3frequency", 0, (double)Parameters["aom3Detuning"]);
        //p.AddAnalogValue("coil0current", (int)Parameters["MagRampTime"], (double)Parameters["MagTrapCurrent"]);
        p.AddAnalogValue("coil0current", 130000, 0);

        p.SwitchAllOffAtEndOfPattern();
        return p;
    }
예제 #7
0
    public override AnalogPatternBuilder GetAnalogPattern()
    {
        AnalogPatternBuilder p = new AnalogPatternBuilder((int)Parameters["PatternLength"]);

        MOTMasterScriptSnippet lm = new SHLoadMOT(p, Parameters);

        p.AddChannel("aom2frequency");
        p.AddChannel("aom3frequency");

        p.AddAnalogValue("coil0current", 0, 0);
        p.AddAnalogValue("aom2frequency", (int)Parameters["MOTStartTime"], 180.875);
        p.AddAnalogValue("aom3frequency", (int)Parameters["MOTStartTime"], 220.875);
        p.AddAnalogValue("aom2frequency", (int)Parameters["Frame0Trigger"], 200.875);
        p.AddAnalogValue("aom3frequency", (int)Parameters["Frame0Trigger"], 200.875);
        p.AddAnalogValue("coil0current", 100100, 0);

        p.SwitchAllOffAtEndOfPattern();
        return p;
    }
예제 #8
0
    public override PatternBuilder32 GetDigitalPattern()
    {
        PatternBuilder32 p = new PatternBuilder32();

        MOTMasterScriptSnippet lm = new SHLoadMOT(p, Parameters);  // This is how you load "preset" patterns.

        p.Pulse(0, 0, 1, "AnalogPatternTrigger");  //NEVER CHANGE THIS!!!! IT TRIGGERS THE ANALOG PATTERN!

        p.AddEdge("CameraTrigger", 0, true);
        p.DownPulse((int)Parameters["Frame0Trigger"], 0, (int)Parameters["Frame0TriggerDuration"], "CameraTrigger");
        p.DownPulse((int)Parameters["Frame1Trigger"], 0, (int)Parameters["Frame1TriggerDuration"], "CameraTrigger");

        p.DownPulse(150000, 0, 50, "CameraTrigger");
        p.DownPulse(160000, 0, 50, "CameraTrigger");

        //switches off Zeeman and Absoroption beams during imaging, so that MOT is not reloaded and fluorescence images can be taken
        p.AddEdge("aom2enable", (int)Parameters["Frame0Trigger"], false);
        p.AddEdge("aom3enable", (int)Parameters["Frame0Trigger"], false);

        return p;
    }