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()
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()