コード例 #1
0
ファイル: time-tut003a.py プロジェクト: user-vm/tutorial
def drawDsPlot(ds,catNum = 0):

    from ROOT import RooAbsData,TCanvas

    etaHist = RooAbsData.createHistogram(ds,'eta',100);
    theCanvas = TCanvas('dsCanvas','Eta histogram (category' + str(catNum) + ')' )
    etaHist.Draw("hist PFC");
    theCanvas.SaveAs("etaCat"+str(catNum)+"Hist"+TIME_NOW+".pdf");
    #s = raw_input("Press Enter to continue...");
    theCanvas.Close();
コード例 #2
0
ファイル: time-tut003a.py プロジェクト: user-vm/tutorial
def saveEta(g, numBins = 100):
    
    from ROOT import TFile, RooAbsData
    import os
    if not os.path.isdir('etaHist'):
        os.makedirs('etaHist');
    os.chdir('etaHist');
    etaHist = RooAbsData.createHistogram(g,'eta',100);
    f = TFile('etaHist003_%04d.root' % SEED, 'recreate')
    etaHist.Write('etaHist')
    f.Close()
    del f
コード例 #3
0
def _convert_rooabsdata_to_th1(x: RooRealVar, roofit_obj: RooAbsData) -> TH1:
    '''
    Convert a RooDataHist into a TH1.
    Parameters
    ----------
    x : RooRealVar
        ROOT RooRealVar observable
    roofit_obj : RooAbsData
        RooFit dataset

    Returns
    -------
    TH1
        ROOT histogram
    '''
    assert (isinstance(x, RooRealVar) and isinstance(roofit_obj, RooAbsData))

    return roofit_obj.createHistogram(x.GetName(), x.getBinning().numBins())
コード例 #4
0
        interf[-1].SetLineColor(kBlue+2)
        interf[-1].SetLineStyle(kDashed)
        interf[-1].Draw('same')
        
                     
        
qqHPdf = fitter_mWW.ws.pdf('qqH')
qqHHisto = qqHPdf.createHistogram("HWW%snujj_qqH" % mode,
                                  fitter_mWW.ws.var(pars_mWW.var[0]))
qqHHisto.Scale(fitter_mWW.ws.var('n_qqH').getVal()/qqHHisto.Integral())
qqHHisto.SetName("HWW%snujj_qqH" % mode)
qqHHisto.SetLineColor(kRed+2)
qqHHisto.Draw('same')

dataHisto = RooAbsData.createHistogram(fitter_mWW.ws.data('data_obs'),
                                       'HWW%snujj_data_obs' % mode,
                                       fitter_mWW.ws.var(pars_mWW.var[0]))
dataHisto.SetMarkerStyle(20)
dataHisto.SetName('HWW%snujj_data_obs' % mode)
dataHisto.Draw('same')
dataHisto.Print()
c_bkg.Update()

fitter_mWW.ws.saveSnapshot('nullFitSnapshot', fitter_mWW.ws.allVars())

fitter_mWW.ws.loadSnapshot('nullFitSnapshot')

if opts.obsLimit:
    limit = limits.plcLimit(fitter_mWW.ws.var(pars_mWW.var[0]),
                            fitter_mWW.ws.var('r_signal'),
                            full_pdf, fitter_mWW.ws,
コード例 #5
0
ファイル: time-tut003a.py プロジェクト: user-vm/tutorial
def createCategoryHistogram(ds,x,numCat,categoryList = None):

    from ROOT import RooAbsData, RooDataSet, RooPrintable, RooThresholdCategory, THStack, TF1
    from ROOT.Math import GaussIntegrator
    import ROOT

    if categoryList==None:
        categoryList = []
        for i in range(numCat):
            categoryList += ["Cat"+str(i+1)]

    etaHist = RooAbsData.createHistogram(ds,'eta',100);

    histSum = etaHist.Integral();
    #print "HISTSUM",histSum, etaHist.Integral(0,50)+etaHist.Integral(51,100),etaHist.Integral(0,50),etaHist.Integral(51,100),"\n";

    limList = [-1];

    for i in range(1,numCat):
        start = limList[i-1]+1;
        targetVal = histSum/numCat;
        left = start;
        right = etaHist.GetNbinsX();
        #print "\n\n\n",etaHist.Integral(start,start+1),"\n\n\n\n";
        while abs(left-right)>1:
            if etaHist.Integral(start,int((left+right)/2))>targetVal:
                right = (left + right) / 2;
            else:
                left = (left + right) / 2;
            #print start, left, right, etaHist.Integral(start,int((left+right)/2)),targetVal,",",

        if abs(etaHist.Integral(start,left)-targetVal) > abs(etaHist.Integral(start,right)-targetVal):
            limList += [right];
        else:
            limList += [left];

    limList[0] = 0;

    print limList
    
    xRegions = RooThresholdCategory("tageffRegion", "region of tageff", x, categoryList[numCat-1]);

    for i in range(0,numCat-1):
        xRegions.addThreshold(etaHist.GetXaxis().GetBinCenter(limList[i+1]),categoryList[i]);

    xRegions.writeToStream(ROOT.cout,False);
    xRegions.writeToStream(ROOT.cout,True);
    '''
    #etaSet = RooDataSet('etaSet','etaSet',ds,RooArgSet(ds.get().find['eta']));
    #etaSet.Print();
    #etaHist.SetAxisRange(0.1,0.2);
    #etaHist.SetAxisRange(0.1,0.3);
    ROOT.gStyle.SetPalette(ROOT.kOcean);
    
    #create stack to contain the chopped TH1Ds
    etaHistStack = THStack("etaHistStack", "Stack of TH1Ds");

    limList += [etaHist.GetNbinsX()];
    histCutterFunc = TF1("histCutterFunc","((x>=[0])?((x<[1])?1:0):0)*x",0.0,1.0);

    for i in range(len(limList)-1):
        
        etaHistClone = etaHist.Clone();
        #etaHistClone.SetBins(limList[i+1]-limList[i],etaHist.GetBinContent(limList[i]),etaHist.GetBinContent(limList[i+1]));
        histCutterFunc.SetParameter(0,etaHist.GetXaxis().GetBinCenter(limList[i]));
        histCutterFunc.SetParameter(1,etaHist.GetXaxis().GetBinCenter(limList[i+1]));
        etaHistClone.Multiply(histCutterFunc);
        etaHistClone.SetFillColor(38+i);
        #etaHist.DrawCopy("hist PFC");
        etaHistStack.Add(etaHistClone);

    etaHistStack.Draw("hist PFC");
    s = raw_input("Press Enter to continue...");'''
    
    return xRegions#,x
コード例 #6
0
ファイル: fitvtx_tuple.py プロジェクト: meeg/vertexing
    #uncVZ.setRange("fitRange",mean-2*sigma,50)
    #result = gaussexp_pdf.fitTo(dataInRange,RooFit.Range("fitRange"),RooFit.PrintLevel(-1),RooFit.Save())
    #gaussexp_params.printLatex()
    gaussexp_pdf.paramOn(frame)
    #gaussexp_pdf.plotOn(frame,RooFit.Range("fitRange"),RooFit.NormRange("fitRange"))
    #gaussexp_pdf.plotOn(frame,RooFit.Range("fitRange"),RooFit.NormRange("fitRange"),RooFit.LineColor(result.status()+1))

    frame.SetAxisRange(-50,50)
    frame.SetMinimum(0.5)
    frame.Draw()
    c.Print(remainder[0]+".pdf","Title:slice_"+str(i)+"_roofit")


    #h1d = dataInRange.createHistogram("data_in_range",w.var("uncVZ"),"Binning(100,-50,50)")
    #h1d = dataInRange.createHistogram("data_in_range",w.var("uncVZ"))
    h1d = RooAbsData.createHistogram(dataInRange,"data_in_range",w.var("uncVZ"),RooFit.Binning(100,-50,50))
    print h1d.GetEntries()
    #events.Draw("uncVZ>>hnew(100,-50,50)",cuts+"&&uncM>{0}&&uncM<{1}".format(lowedge,highedge),"goff")
    #h1d = gDirectory.Get("hnew")
    h1d.Sumw2()
    h1d.Scale(1/scale_factor)

    #h1d=totalH.ProjectionY("slice_{}".format(i),i,i+binning-1)
    #h1d=h1d.Rebin(2,"slice")
    integrals.append(h1d.Integral())
    h1d.SetTitle(name)
    print name
    if (h1d.GetEntries()>100):
        fit=h1d.Fit("gaus","QS")
        peak=fit.Get().Parameter(0)
        mean=fit.Get().Parameter(1)
コード例 #7
0
def createCategoryHistogram(ds, x, numCat, categoryList=None):

    from ROOT import RooAbsData, RooDataSet, RooPrintable, RooThresholdCategory, THStack, TF1
    from ROOT.Math import GaussIntegrator
    import ROOT

    if categoryList == None:
        categoryList = []
        for i in range(numCat):
            categoryList += ["Cat" + str(i + 1)]

    etaHist = RooAbsData.createHistogram(ds, 'eta', 100)

    histSum = etaHist.Integral()
    #print "HISTSUM",histSum, etaHist.Integral(0,50)+etaHist.Integral(51,100),etaHist.Integral(0,50),etaHist.Integral(51,100),"\n";

    limList = [-1]

    for i in range(1, numCat):
        start = limList[i - 1] + 1
        targetVal = histSum / numCat
        left = start
        right = etaHist.GetNbinsX()
        #print "\n\n\n",etaHist.Integral(start,start+1),"\n\n\n\n";
        while abs(left - right) > 1:
            if etaHist.Integral(start, int((left + right) / 2)) > targetVal:
                right = (left + right) / 2
            else:
                left = (left + right) / 2
            #print start, left, right, etaHist.Integral(start,int((left+right)/2)),targetVal,",",

        if abs(etaHist.Integral(start, left) -
               targetVal) > abs(etaHist.Integral(start, right) - targetVal):
            limList += [right]
        else:
            limList += [left]

    limList[0] = 0

    print limList

    xRegions = RooThresholdCategory("tageffRegion", "region of tageff", x,
                                    categoryList[numCat - 1])

    for i in range(0, numCat - 1):
        xRegions.addThreshold(etaHist.GetXaxis().GetBinCenter(limList[i + 1]),
                              categoryList[i])

    xRegions.writeToStream(ROOT.cout, False)
    xRegions.writeToStream(ROOT.cout, True)

    #etaSet = RooDataSet('etaSet','etaSet',ds,RooArgSet(ds.get().find['eta']));
    #etaSet.Print();
    #etaHist.SetAxisRange(0.1,0.2);
    #etaHist.SetAxisRange(0.1,0.3);

    from ROOT import TCanvas

    histCanvas = TCanvas()

    ROOT.gStyle.SetPalette(ROOT.kOcean)

    #create stack to contain the chopped TH1Ds
    #etaHistStack = THStack("etaHistStack", "Distribution of #eta;#eta;number of pseudo-experiments");

    limList += [etaHist.GetNbinsX()]
    histCutterFunc = TF1("histCutterFunc", "((x>=[0])?((x<[1])?1:0):0)", 0.0,
                         1.0)

    etaMax = etaHist.GetMaximum()
    print etaMax

    cloneList = []

    etaHist.GetYaxis().SetRangeUser(0, etaMax * 1.05)

    etaHist.SetLineColor(ROOT.kWhite)
    etaHist.Draw("histSame")
    etaHist.SetTitle(
        'Distribution of #eta (%s %s)' %
        ((originSuffix if originSuffix == 'MC' else 'Data'), taggerType))
    etaHist.GetXaxis().SetTitle('#eta')

    for i in range(len(limList) - 1):

        cloneList = [etaHist.Clone()]
        #etaHistClone.SetBins(limList[i+1]-limList[i],etaHist.GetBinContent(limList[i]),etaHist.GetBinContent(limList[i+1]));
        histCutterFunc.SetParameter(
            0,
            etaHist.GetXaxis().GetBinCenter(limList[i]))
        histCutterFunc.SetParameter(
            1,
            etaHist.GetXaxis().GetBinCenter(limList[i + 1]))
        cloneList[-1].Multiply(histCutterFunc)
        cloneList[-1].SetFillColor(38 + i)
        cloneList[-1].SetLineColor(ROOT.kBlack)
        if i == 0:
            cloneList[-1].GetYaxis().SetRangeUser(0, etaMax * 1.05)
        cloneList[-1].Draw("histSAME")
        #etaHistStack.Add(etaHistClone);

    #etaHistStack.Draw();
    histCanvas.Update()
    histCanvas.SaveAs('catHist-%s-%s.pdf' % (originSuffix, taggerType))
    s = raw_input("Press Enter to continue...")
    sys.exit(0)

    return xRegions  #,x
コード例 #8
0
        interf[-1].SetLineColor(kBlue+2)
        interf[-1].SetLineStyle(kDashed)
        interf[-1].Draw('same')
        
                     
        
qqHPdf = fitter_mWW.ws.pdf('qqH')
qqHHisto = qqHPdf.createHistogram("HWW%snujj_qqH" % mode,
                                  fitter_mWW.ws.var(pars_mWW.var[0]))
qqHHisto.Scale(fitter_mWW.ws.var('n_qqH').getVal()/qqHHisto.Integral())
qqHHisto.SetName("HWW%snujj_qqH" % mode)
qqHHisto.SetLineColor(kRed+2)
qqHHisto.Draw('same')

dataHisto = RooAbsData.createHistogram(fitter_mWW.ws.data('data_obs'),
                                       'HWW%snujj_data_obs' % mode,
                                       fitter_mWW.ws.var(pars_mWW.var[0]))
dataHisto.SetMarkerStyle(20)
dataHisto.SetName('HWW%snujj_data_obs' % mode)
dataHisto.Draw('same')
c_bkg.Update()

fitter_mWW.ws.saveSnapshot('nullFitSnapshot', fitter_mWW.ws.allVars())

upperHist = None
if opts.doLimit:
    (expectedLimit, toys) = \
                    limits.expectedPlcLimit(fitter_mWW.ws.var(pars_mWW.var[0]),
                                            fitter_mWW.ws.var('r_signal'),
                                            full_pdf, fitter_mWW.ws,
                                            ntoys = opts.doLimit,
コード例 #9
0
    p0FitError = fitresult.ParError(0);
    
    p0End = p0End.getValV()-etaAvg.getValV();

    print 'P0FIT = ', p0Fit, '\nDSMEANVAL = ', dsMeanVal.getValV(), '\nP0END = ', p0End, '\n'

    p0Dev.setVal((p0Fit - p0End) / p0FitError);
    p0DevSet.add(RooArgSet(p0Dev))
    #graphHolder.Add(mistagVsEtaGraph)
    #currentColor += 1
    #break;

currentTime = time.time();

theHistCanvas = TCanvas();
p1DevHist = RooAbsData.createHistogram(p1DevSet,"p1Dev",20);
p1DevHist.Fit('gaus');
p1DevHist.Draw();

os.chdir(os.environ['B2DXFITTERSROOT']+'/tutorial');
if(not os.path.exists('p1HistPlots')):
    os.mkdir("p1HistPlots")
os.chdir('p1HistPlots');
theHistCanvas.SaveAs("p1Hist_%f.pdf" % currentTime); 

raw_input("Press Enter to continue");

theHistCanvas.Close();

theHistCanvas = TCanvas();
p0DevHist = RooAbsData.createHistogram(p0DevSet,"p0Dev",20);