def __init__( self, name, title, source, expression, cuts, labels, **kwargs ): self.xTitle = 's_{true} = E_{RECO}/E_{GEN} - 1' self.nBins = 40 self.xRange = (-20, 30) self.fitRange = (-20, 30) PlotData.__init__( self, name, title, source, expression, cuts, labels, **kwargs )
def __init__(self, name, title, source, expression, cuts, labels): PlotData.__init__(self, name, title, source, expression, cuts, labels) self.xTitle = 's = E_{RECO}/E_{KIN} - 1' self.nBins = 40 self.xRange = (-30, 50)
from JPsi.MuMu.common.roofit import * from JPsi.MuMu.common.plotData import PlotData _chains = esChains.getChains('v7') _baseCuts = [ 'abs(1/kRatio - 1) < 0.5', 'abs(mmgMass-91.2) < 4', ] ## ---------------------------------------------------------------------------- ## Customize below leftPlot = PlotData( name='EB_lowR9_data_new', title='Barrel, R9 < 0.94, data, new corrections', labels=['Barrel', 'R9 < 0.94', 'data', 'new corr.'], source=_chains['data'], expression='100 * (1/newCorrKRatio - 1)', cuts=_baseCuts + ['phoIsEB', 'phoR9 < 0.94'], ) rightPlot = PlotData( name='EB_lowR9_data_old', title='Barrel, R9 < 0.94, data, default corrections', labels=['Barrel', 'R9 < 0.94', 'data', 'default corr.'], source=_chains['data'], expression='100 * (1/kRatio - 1)', cuts=_baseCuts + ['phoIsEB', 'phoR9 < 0.94'], ) ws1 = RooWorkspace('ws1', 'mmg energy scale')
def __init__( self, name, title, source, xExpression, cuts, labels, **kwargs ): self.xName = 's' self.xTitle = 's = E_{RECO}/E_{KIN} - 1' self.nBins = 40 self.nBinsZoom = 20 self.xRange = (-30, 50) self.xRangeZoom = (-10, 10) self.xUnit = '%' self.fitRange = (-30, 30) self.massWindow = None self.massWindowScale = 2 self.fitResults = [] self.canvases = [] self.pads = [] self.pdf = 'model' self.chi2s = [] self.definitions = [] self.paramLayout = (.57, 0.92, 0.92) self.labelsLayout = (0.61, 0.6) self.canvasStyle = 'compact' ## Chi2 statistic follows the chi2 PDF (and one can trust the p-value ## from ROOT if int(f(x), x in bin_i) = nu_i > 5, see explanation ## near (33.34) on page 13 of the 2011 PDG Statistics Review ## http://pdg.lbl.gov/2011/reviews/rpp2011-rev-statistics.pdf ## Use bin content n_i >= 10 to be on the safe side (nu_i != n_i) self.binContentMin = 10 self.binContentMax = 100 self.doAutoBinning = False self.xRangeMode = 'SigmaLevel' self.xRangeSigmaLevel = 5 self.xRangeFraction = 1. self.xRangeNumberOfEntries = 5000 self.xRangeModeZoom = 'SigmaLevel' self.xRangeSigmaLevelZoom = 2 self.xRangeFractionZoom = .9 self.xRangeNumberOfEntries = 5000 self.fitRangeMode = 'SigmaLevel' self.fitRangeSigmaLevel = 5 self.fitRangeFraction = 1. self.fitRangeNumberOfEntries = 5000 self.doAutoXRange = False self.doAutoXRangeZoom = False self.doAutoFitRange = False self.useCustomChi2Calculator = False self.pullRangeMode = 'fitRange' self.residRangeMode = 'fitRange' PlotData.__init__( self, name, title, source, xExpression, cuts, labels, **kwargs ) ## Initialize latex label latexLabel = TLatex() latexLabel.SetNDC() ## Font size in pixels latexLabel.SetTextFont( 10*(latexLabel.GetTextFont()/10) + 3) latexLabel.SetTextSize(18) self.latex = latexLabel
def __init__( self, name, title, source, xExpression, cuts, labels, **kwargs ): self.xName = 's' self.xTitle = 's = E_{RECO}/E_{KIN} - 1' self.nBins = 40 self.nBinsZoom = 20 self.xRange = (-30, 50) self.xRangeZoom = (-10, 10) self.xUnit = '%' self.fitRange = (-30, 30) self.massWindow = None self.massWindowScale = 2 self.fitResults = [] self.canvases = [] self.pads = [] self.pdf = 'model' self.chi2s = [] self.definitions = [] self.paramLayout = (.57, 0.92, 0.92) self.labelsLayout = (0.61, 0.6) self.canvasStyle = 'compact' ## Chi2 statistic follows the chi2 PDF (and one can trust the p-value ## from ROOT if int(f(x), x in bin_i) = nu_i > 5, see explanation ## near (33.34) on page 13 of the 2011 PDG Statistics Review ## http://pdg.lbl.gov/2011/reviews/rpp2011-rev-statistics.pdf ## Use bin content n_i >= 10 to be on the safe side (nu_i != n_i) self.binContentMin = 10 self.binContentMax = 100 self.doAutoBinning = False self.xRangeMode = 'SigmaLevel' self.xRangeSigmaLevel = 5 self.xRangeFraction = 1. self.xRangeNumberOfEntries = 5000 self.xRangeModeZoom = 'SigmaLevel' self.xRangeSigmaLevelZoom = 2 self.xRangeFractionZoom = .9 self.xRangeNumberOfEntries = 5000 self.fitRangeMode = 'SigmaLevel' self.fitRangeSigmaLevel = 5 self.fitRangeFraction = 1. self.fitRangeNumberOfEntries = 5000 self.doAutoXRange = False self.doAutoXRangeZoom = False self.doAutoFitRange = False self.useCustomChi2Calculator = False PlotData.__init__( self, name, title, source, xExpression, cuts, labels, **kwargs ) ## Initialize latex label latexLabel = TLatex() latexLabel.SetNDC() ## Font size in pixels latexLabel.SetTextFont( 10*(latexLabel.GetTextFont()/10) + 3) latexLabel.SetTextSize(18) self.latex = latexLabel