def do_gui(self, line): """Open the ROOT results browser""" if not guiAvailable: print "No GUI available (missing ROOT library)" return if self.window: return self.window = PxarGui(ROOT.gClient.GetRoot(), 800, 800)
def __init__(self, api, gui): cmd.Cmd.__init__(self) self.fullOutput = False self.prompt = "pxarCore =>> " self.intro = "Welcome to the pxar core console!" ## defaults to None self.api = api self.window = None if (gui and guiAvailable): self.window = PxarGui(ROOT.gClient.GetRoot(), 800, 800) elif (gui and not guiAvailable): print "No GUI available (missing ROOT library)"
def do_latencyScan(self, minlatency=50, maxlatency=100, triggers=10, triggersignal="extern"): """ do_latencyScan [min] [max] [triggers] [signal]: scan the trigger latency from min to max with set number of triggers)""" self.api.testAllPixels(0, None) self.api.HVon() latencyScan = [] print "latency \tyield" # loop over latency for latency in range(minlatency, maxlatency): delay = {} delay["triggerlatency"] = latency self.api.setTestboardDelays(delay) self.api.daqTriggerSource(triggersignal) self.api.daqStart() nHits = 0 nTriggers = 0 #loop until you find maxTriggers while nTriggers < triggers: try: data = self.api.daqGetEvent() if len(data.pixels) > 0: nHits += 1 nTriggers += 1 except RuntimeError: pass hitYield = 100 * nHits / triggers latencyScan.append(hitYield) print '{0:03d}'.format(latency), "\t", '{0:3.0f}%'.format(hitYield) self.api.daqStop() if (self.window): self.window = PxarGui(ROOT.gClient.GetRoot(), 1000, 800) plot = Plotter.create_tgraph(latencyScan, "latency scan", "trigger latency", "evt/trig [%]", minlatency) self.window.histos.append(plot) self.window.update()
def do_wbcScan(self, minWBC=90, maxWBC=255, maxTriggers=10, triggersignal="extern"): """ do_wbcScan [minWBC] [maxWBC] [maxTriggers] [signal]: sets the values of wbc from minWBC until it finds the wbc which has more than 90% filled events or it reaches 255 (default minWBC 90)""" self.api.daqTriggerSource(triggersignal) self.api.HVon() wbcScan = [] print "wbc \tyield" # loop over wbc for wbc in range(minWBC, maxWBC): self.api.setDAC("wbc", wbc) self.api.daqStart() nHits = 0 nTriggers = 0 #loop until you find maxTriggers while nTriggers < maxTriggers: try: data = self.api.daqGetEvent() if len(data.pixels) > 0: nHits += 1 nTriggers += 1 except RuntimeError: pass hitYield = 100 * nHits / maxTriggers wbcScan.append(hitYield) print '{0:03d}'.format(wbc), "\t", '{0:3.0f}%'.format(hitYield) self.api.daqStop() if (self.window): self.window = PxarGui(ROOT.gClient.GetRoot(), 1000, 800) plot = Plotter.create_tgraph(wbcScan, "wbc scan", "wbc", "evt/trig [%]", minWBC) self.window.histos.append(plot) self.window.update()