Skip to content
IR_Calibration_Fitting.py 1.86 KiB
Newer Older
Nicolas Nunez Barreto's avatar
Nicolas Nunez Barreto committed
import numpy as np
from time import sleep
from artiq.experiment import *
from pyLIAF.artiq.controllers import UrukulCh
from pyLIAF.RedPitaya import Read_analog as rp
from scipy import interpolate

class IR_LaserPowerCalibration_BS(EnvExperiment):
    """Binary search - IR Laser power calibration with photodiode and a red pitaya """

    def build(self):
        self.setattr_device("ccb")
        self.setattr_device("scheduler")
        self.setattr_device("core")

        self.setattr_argument("Calibration_freqs_IR", Scannable(
                                        default=CenterScan(208*MHz, 10*MHz, 0.1*MHz),
                                        unit="MHz",
                                        scale=MHz,
                                        global_min = 1*MHz,
                                        global_max = 400*MHz
                                       )
                             )        

    @rpc
    def create_datasets(self):
        #self.set_dataset("PD_UV_counts", list(np.zeros(len(self.Calibration_freqs.sequence)*len(self.Calibration_amps.sequence), dtype=int)), broadcast=True, archive=True)

        self.set_dataset("Current_PD_IR", np.array([0.05]), broadcast=True, archive=False)
        self.set_dataset("Calibration_freqs", self.Calibration_freqs_IR.sequence, broadcast=True, archive=True)

        self.set_dataset("Experiment_freqs_IR_final", self.Calibration_freqs_IR.sequence, broadcast=True, archive=True)
        self.set_dataset("Experiment_amps_IR_final", np.zeros(len(self.Calibration_freqs_IR.sequence), dtype=float), broadcast=True, archive=True)


    @rpc(flags={"async"})
    def run(self):
        Calibrated_Experiment_freqs = self.get_dataset("Experiment_freqs_IR")
        Calibrated_Experiment_amps = list(self.get_dataset("Experiment_amps_IR"))
     
   
    def run(self):
        self.create_datasets()
        self.init_kernel()