コード例 #1
0
    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()
コード例 #2
0
    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()
コード例 #3
0
ファイル: cmdline.py プロジェクト: andreavargas/pxar
    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()
コード例 #4
0
ファイル: cmdline.py プロジェクト: andreavargas/pxar
    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()