def __init__(self, selection_name=None, verbose=False):

        self.Name = selection_name
        Analysis.__init__(
            self,
            verbose=verbose,
            results_dir='selections',
            sub_dir=selection_name if selection_name is not None else '')

        self.print_start(run=selection_name, tc=False, prnt=verbose)

        # Main
        self.Selections = self.load_selections()
        self.Selection = self.load_selection(selection_name)

        # Config
        self.DUTParser = load_parser(
            join(self.Dir, 'config', 'DiamondAliases.ini'))

        # Info
        self.RS = RunSelector()  # dummy for information
        self.RunPlans = self.load_runplans()
        self.TestCampaigns = self.load_test_campaigns()
        self.Info = self.load_selection_info()
        self.DUTName = self.load_dut_name()
        self.NPlans = len(self.Info) if self.Info else None
        self.Ana = self.load_dummy()

        if self.Info:
            self.show_selection()
        self.print_finished(prnt=verbose)
 def get_tc_infos(self, tc):
     rs = RunSelector(tc)
     return [
         SelectionInfo(
             rs.select_runs_from_runplan(rp, dut + 1, unselect=True))
         for rp in sorted(self.RunPlans[tc])
         for dut in range(rs.get_n_duts(run_plan=rp))
     ]
Exemple #3
0
    def __init__(self, multi, first_run=None, end_run=None, test_campaign=None, type_=None, verbose=False):

        self.Multi = multi
        self.Type = type_

        self.Selection = RunSelector(testcampaign=test_campaign, verbose=verbose)
        self.Run = self.Selection.Run
        self.StartAtRun = choose(first_run, self.get_all_runs()[0] if self.Multi else self.find_last_converted())
        self.StopAtRun = 1e9 if not multi or end_run is None else int(end_run)
        self.Runs = self.load_runs()
        self.Selection.select_runs(*[run.Number for run in self.Runs])
 def load_selection_info(self):
     selections = []
     if self.Selection is None:
         return
     for tc, rps in self.Selection.items():
         for rp, dut_nrs in rps.items():
             for dut_nr in array([dut_nrs]).flatten():
                 selections.append(
                     SelectionInfo(
                         RunSelector(tc).select_runs_from_runplan(
                             rp, dut_nr, unselect=True)))
     return selections
Exemple #5
0
    def __init__(self, analysis=None, test_campaign=None, dut=None, begin=None, end=None, averaging=None, verbose=None):
        Analysis.__init__(self, test_campaign if analysis is None else analysis.TCString, verbose=verbose, sub_dir='currents')

        # Settings
        self.Averaging = averaging
        self.TimeZone = timezone('Europe/Zurich')
        self.DataDir = join(self.TCDir, 'hv')

        # Config
        self.Ana = analysis
        self.IsCollection = hasattr(analysis, 'Runs')
        self.Type = self.Ana.Type if analysis is not None and self.IsCollection else 'None'
        self.RunSelection = RunSelector(testcampaign=self.TCString)
        self.RunLogs = self.RunSelection.RunInfos
        self.Run = self.RunSelection.Run if analysis is None else self.Ana.FirstAnalysis.Run if self.IsCollection else self.Ana.Run
        if self.IsCollection:
            self.Runs = self.Ana.Runs  # required for plotting
        self.RunPlan = self.load_run_plan()  # required for plotting
        self.HVConfig = self.load_parser()
        self.Bias = self.Ana.Bias if hasattr(self.Ana, 'Bias') else None
        self.Draw.ServerDir = analysis.Draw.ServerDir if analysis is not None else None

        # Times
        self.Begin, self.End = self.load_times(begin, end, dut)

        # DUT
        self.DUT = self.init_dut(dut)

        # HV Device Info
        self.Number = self.load_device_number()
        self.Channel = self.load_device_channel()
        self.Name = self.HVConfig.get('HV{}'.format(self.Number), 'name')
        self.Brand = remove_digits(self.Name.split('-')[0])
        self.Model = self.HVConfig.get('HV{}'.format(self.Number), 'model')
        self.Precision = .005 if '237' in self.Name else .05

        # data
        self.IgnoreJumps = True
        self.Data = self.load_data()
 def get_rp_diamonds(tc, rp):
     sel = RunSelector(tc).select_runs_from_runplan(rp, unselect=True)
     return sel.get_dut_names()
Exemple #7
0
 def get_high_rate_run(self, high=True):
     from src.run_selection import RunSelector
     return int(RunSelector(testcampaign=self.TCString).get_high_rate_run(self.Number, high))