Exemplo n.º 1
0
    def _updateRanges(self):
        tree = self.data.tree()
        n = tree.Draw(self.x.GetName(), '', 'goff')
        mi = ModalInterval(n, tree.GetV1())
        if self.doAutoXRange:
            ## Determine the range as a modal interval
            if self.xRangeMode == 'SigmaLevel':
                mi.setSigmaLevel(self.xRangeSigmaLevel)
            elif self.xRangeMode == 'Fraction':
                mi.setFraction(self.xRangeFraction)
            elif self.xRangeMode == 'NumberOfEntries':
                mi.setNumberOfEntriesToCover(self.xRangeNumberOfEntries)
            else:
                message = "Illegal xRangeMode = '%s'" % self.xRangeMode
                raise RuntimeError, message
            xmargin = 0.1 * mi.length()
            self.xRange = (mi.lowerBound() - xmargin,
                           mi.upperBound() + xmargin)
        else:
            ## If possible, shrink the range to cover the data plus a margin
            mi.setFraction(1.)
            xlo = mi.lowerBound()
            xhi = mi.upperBound()
            xmargin = 0.1 * mi.length()
            self.xRange = (max(xlo - xmargin, self.xRange[0]),
                           min(xhi + xmargin, self.xRange[1]))

        if self.doAutoXRangeZoom:
            mi.setSigmaLevel(self.xRangeSigmaLevelZoom)
            self.xRangeZoom = tuple(mi.bounds())

        if self.doAutoFitRange:
            ## Determine the range as a modal interval
            if self.fitRangeMode == 'SigmaLevel':
                mi.setSigmaLevel(self.fitRangeSigmaLevel)
            elif self.fitRangeMode == 'Fraction':
                mi.setFraction(self.fitRangeFraction)
            elif self.fitRangeMode == 'NumberOfEntries':
                mi.setNumberOfEntriesToCover(self.fitRangeNumberOfEntries)
                print "setting fit range number of entries:", mi.bounds()
            else:
                message = "Illegal fitRangeMode = '%s'" % self.fitRangeMode
                raise RuntimeError, message
            self.fitRange =  tuple(mi.bounds())
            print "++++ fit range changed to:", self.fitRange
        
        self.pullRange = getattr(self, self.pullRangeMode)
        self.residRange = getattr(self, self.residRangeMode)
Exemplo n.º 2
0
    def _updateRanges(self):
        tree = self.data.tree()
        n = tree.Draw(self.x.GetName(), '', 'goff')
        mi = ModalInterval(n, tree.GetV1())
        if self.doAutoXRange:
            ## Determine the range as a modal interval
            if self.xRangeMode == 'SigmaLevel':
                mi.setSigmaLevel(self.xRangeSigmaLevel)
            elif self.xRangeMode == 'Fraction':
                mi.setFraction(self.xRangeFraction)
            elif self.xRangeMode == 'NumberOfEntries':
                mi.setNumberOfEntriesToCover(self.xRangeNumberOfEntries)
            else:
                message = "Illegal xRangeMode = '%s'" % self.xRangeMode
                raise RuntimeError, message
            xmargin = 0.1 * mi.length()
            self.xRange = (mi.lowerBound() - xmargin,
                           mi.upperBound() + xmargin)
        else:
            ## If possible, shrink the range to cover the data plus a margin
            mi.setFraction(1.)
            xlo = mi.lowerBound()
            xhi = mi.upperBound()
            xmargin = 0.1 * mi.length()
            self.xRange = (max(xlo - xmargin, self.xRange[0]),
                           min(xhi + xmargin, self.xRange[1]))

        if self.doAutoXRangeZoom:
            mi.setSigmaLevel(self.xRangeSigmaLevelZoom)
            self.xRangeZoom = tuple(mi.bounds())

        if self.doAutoFitRange:
            ## Determine the range as a modal interval
            if self.fitRangeMode == 'SigmaLevel':
                mi.setSigmaLevel(self.fitRangeSigmaLevel)
            elif self.fitRangeMode == 'Fraction':
                mi.setFraction(self.fitRangeFraction)
            elif self.fitRangeMode == 'NumberOfEntries':
                mi.setNumberOfEntriesToCover(self.fitRangeNumberOfEntries)
                print "setting fit range number of entries:", mi.bounds()
            else:
                message = "Illegal fitRangeMode = '%s'" % self.fitRangeMode
                raise RuntimeError, message
            self.fitRange = tuple(mi.bounds())
            print "++++ fit range changed to:", self.fitRange

        self.pullRange = getattr(self, self.pullRangeMode)
        self.residRange = getattr(self, self.residRangeMode)