def __init__(self, raw_data, target_data, rho=1., mirror=ROOT.RooKeysPdf.NoMirror, raw_color=ROOT.kRed, target_color=ROOT.kBlack, qq_color=ROOT.kBlue): if raw_data.get().getSize() > 1: raise RuntimeError, 'Raw data must contain exactly one variable!' self.raw_data = raw_data self.target_data = target_data self.rho = rho self.mirror = mirror self.raw_color = raw_color self.target_color = target_color self.qq_color = qq_color self.variable = xvar = raw_data.get().first() raw_pdf = ROOT.RooKeysPdf(xvar.GetName() + '_raw_pdf', xvar.GetTitle() + ' Raw PDF', xvar, raw_data, mirror, rho) target_pdf = ROOT.RooKeysPdf(xvar.GetName() + '_target_pdf', xvar.GetTitle() + ' Target PDF', xvar, target_data, mirror, rho) QQCorrector.__init__(self, xvar, raw_pdf, xvar, target_pdf)
def make_qqplots(ux, uy): xyplot = uy.xvar.frame() xyplot.SetTitle('') xycorr = QQCorrector(ux.xvar, ux.xpdf, uy.xvar, uy.xpdf) xycorr.SetName('y') ux.data.addColumn(xycorr) uy.data.plotOn(xyplot, roo.LineColor(uy.color), roo.MarkerColor(uy.color)) uy.xpdf.plotOn(xyplot, roo.LineColor(uy.color)) ux.data.plotOn(xyplot, roo.LineColor(ux.color), roo.MarkerColor(ux.color)) yxplot = ux.xvar.frame() yxplot.SetTitle('') yxcorr = QQCorrector(uy.xvar, uy.xpdf, ux.xvar, ux.xpdf) yxcorr.SetName('x') uy.data.addColumn(yxcorr) ux.data.plotOn(yxplot, roo.LineColor(ux.color), roo.MarkerColor(ux.color)) ux.xpdf.plotOn(yxplot, roo.LineColor(ux.color)) uy.data.plotOn(yxplot, roo.LineColor(uy.color), roo.MarkerColor(uy.color)) canvases.next('qqxy') xyplot.Draw() canvases.next('qqyx') yxplot.Draw() return xyplot, yxplot
def __init__(self, raw_data, target_data, rho=1., mirror=ROOT.RooKeysPdf.NoMirror, raw_color = ROOT.kRed, target_color = ROOT.kBlack, qq_color = ROOT.kBlue): if raw_data.get().getSize() > 1: raise RuntimeError, 'Raw data must contain exactly one variable!' self.raw_data = raw_data self.target_data = target_data self.rho = rho self.mirror = mirror self.raw_color = raw_color self.target_color = target_color self.qq_color = qq_color self.variable = xvar = raw_data.get().first() raw_pdf = ROOT.RooKeysPdf(xvar.GetName() + '_raw_pdf', xvar.GetTitle() + ' Raw PDF', xvar, raw_data, mirror, rho) target_pdf = ROOT.RooKeysPdf(xvar.GetName() + '_target_pdf', xvar.GetTitle() + ' Target PDF', xvar, target_data, mirror, rho) QQCorrector.__init__(self, xvar, raw_pdf, xvar, target_pdf)
g2 = w.factory('BreitWigner::g2(y[-5, 7], m2[1], s2[1.2])') #______________________________________________________________________________ xplot = w.var('x').frame() g1.plotOn(xplot) canvases.next('g1_x').SetGrid() xplot.Draw() #______________________________________________________________________________ yplot = w.var('y').frame() g2.plotOn(yplot) canvases.next('g2_y').SetGrid() yplot.Draw() #______________________________________________________________________________ qq12 = QQCorrector(w.var('x'), g1, w.var('y'), g2, 1e-4) plot12 = w.var('x').frame() plot12.SetTitle('') plot12.GetXaxis().SetTitle('Raw x') plot12.GetYaxis().SetTitle('Corrected x') qq12.plotOn(plot12) canvases.next('qq12').SetGrid() plot12.Draw() #______________________________________________________________________________ plot12v2 = qq12.get_correction_plot() canvases.next('qq12v2').SetGrid() plot12v2.Draw() #______________________________________________________________________________ ## Persist the corrector in a file as RooHistFunc