Exemple #1
0
def rotate():
  if rotate.do_360:
    functions.adjust(0, numpy.pi/6)
    rospy.sleep(2)
    rotate.rotate_turn_counter += 1
    if rotate.rotate_turn_counter == 12:
      rotate.do_360 = False
      rotate.rotate_turn_counter = 0
  return rotate.do_360
Exemple #2
0
def patrol():
  if patrol.do_360:
    functions.adjust(0, numpy.pi/6)
    rospy.sleep(2)
    patrol.patrol_turn_counter += 1
    if patrol.patrol_turn_counter == 12:
      patrol.do_360 = False
      patrol.patrol_turn_counter = 0
  else:
    functions.patrol_movebase(patrol.patrol_positions_x[patrol.position_index], patrol.patrol_positions_y[patrol.position_index])
    patrol.position_index +=1
    if patrol.position_index == 7:
      patrol.position_index = 0
    patrol.do_360 = True
Exemple #3
0
def runFit(evt, ip, vtrk, v, x, ktrkstr, kstr, param, img, hResoData, hResoMC):

    ROOT.gROOT.Reset()

    ROOT.gROOT.SetBatch()

    pstyle = style.SetPlotStyle(1, 'FIT')
    pstyle.SetOptFit(1111)

    figs = []

    if hResoData.GetEntries() < 10:
        #        print 'No stats in data: '+hResoData.GetName(), ktrkstr
        return figs, x, ktrkstr, kstr, -1, -1, -1, -1, -1, -1, -1, -1

    if hResoMC.GetEntries() < 10:
        #        print 'No stats in mc: '+hResoMC.GetName(), ktrkstr
        return figs, x, ktrkstr, kstr, -1, -1, -1, -1, -1, -1, -1, -1

    if param in ['pt', 'phi']:
        if options.selection == '':
            rResoData = fit.rebin(hResoData, 60, 30)
            rResoMC = fit.rebin(hResoMC, 60, 30)
        elif kstr == '_pt7p36to7p6':
            rResoData = fit.rebin(hResoData, 80, 30)
            rResoMC = fit.rebin(hResoMC, 80, 30)
        else:
            rResoData = fit.rebin(hResoData, 50, 30)
            rResoMC = fit.rebin(hResoMC, 50, 30)
        rmax = max(rResoData, rResoMC)
        hResoData = hResoData.Rebin(rmax)
        hResoMC = hResoMC.Rebin(rmax)
    else:
        if options.selection != '_pt3p0to10p0' and options.type == 'pv':
            rResoData = fit.rebin(hResoData, 1000, 30)
            rResoMC = fit.rebin(hResoMC, 1000, 30)
            rmax = max(rResoData, rResoMC)
            hResoData = hResoData.Rebin(rmax)
            hResoMC = hResoMC.Rebin(rmax)
        elif options.type == 'bs' and options.qcd:
            rResoData = fit.rebin(hResoData, 500, 30)
            rResoMC = fit.rebin(hResoMC, 500, 30)
            rmax = max(rResoData, rResoMC)
            hResoData = hResoData.Rebin(rmax)
            hResoMC = hResoMC.Rebin(rmax)
        elif options.type == 'bs' and options.selection == '_pt0p0to1p0':
            rResoData = fit.rebin(hResoData, 1000, 30)
            rResoMC = fit.rebin(hResoMC, 1000, 30)
            rmax = max(rResoData, rResoMC)
            hResoData = hResoData.Rebin(rmax)
            hResoMC = hResoMC.Rebin(rmax)
        else:
            rResoData = fit.rebin(hResoData, 500, 30)
            rResoMC = fit.rebin(hResoMC, 500, 30)
            rmax = max(rResoData, rResoMC)
            hResoData = hResoData.Rebin(rmax)
            hResoMC = hResoMC.Rebin(rmax)

    for h in [hResoData]:
        h.SetMarkerStyle(c.datamrk)
        h.SetMarkerSize(0.7)
        h.SetMarkerColor(1)
        h.SetLineColor(1)

    for h in [hResoMC]:
        h.SetMarkerSize(0)
        h.SetMarkerColor(c.mccol)
        h.SetLineColor(c.mccol)
        h.SetFillColor(c.mccol)
        h.SetLineStyle(1)

    intResoMC = hResoMC.Integral()
    intResoData = hResoData.Integral()

    hResoMC.Scale(intResoData / intResoMC)

    maxResoData = hResoData.GetMaximum()
    maxResoMC = hResoMC.GetMaximum()
    hResoMC.SetMaximum(1.2 * max(maxResoData, maxResoMC))
    hResoMC.SetMinimum(0.)

    selName = 'N_{trk}'
    units = ''
    if options.parampv == 'sumTrackPt':
        selName = '#sump_{T}'
        units = ' GeV'
    elif options.parampv == 'sumTrackPtSq':
        selName = '#sqrt{#sump^{2}_{T}}'
        units = ' GeV'

    # Resolution

    c1 = ROOT.TCanvas()

    hResoMC.Draw('hist')
    hResoData.Draw('e1 sames')

    fun.adjust(hResoMC, hResoData, nsig=2.0)

    if options.fit:

        if options.method == 'fwhm':
            nsig = 2.0
        else:
            ffit = '3g'
            nsig = 2.0

        if x == 'dz': ffit = '3g'

        resoChi2MC = 1e+10
        resResoMC, resoMC, resoErrMC, resoChi2MC = fit.doFit('mcfit',
                                                             hResoMC,
                                                             x,
                                                             kstr,
                                                             c.mcfit,
                                                             ffit,
                                                             nsig=nsig,
                                                             nTries=3)

        resoChi2Data = 1e+10
        resResoData, resoData, resoErrData, resoChi2Data = fit.doFit('datafit',
                                                                     hResoData,
                                                                     x,
                                                                     kstr,
                                                                     1,
                                                                     ffit,
                                                                     nsig=nsig,
                                                                     nTries=3)

        sysErrData, sysErrMC = hResoData.GetXaxis().GetBinWidth(
            2), hResoMC.GetXaxis().GetBinWidth(2)

        resResoMC.Draw("same")
        resResoData.Draw("same")

        if options.method == 'fwhm':
            # get resolution estimation from bins using the results of the maximum fit
            resoData, resoErrData, sysErrData = fit.fwhm(hResoData,
                                                         resResoData,
                                                         nmin=10000)
            resoMC, resoErrMC, sysErrMC = fit.fwhm(hResoMC,
                                                   resResoMC,
                                                   nmin=10000)

        resResoData.SetLineStyle(2)

        c1.Update()

        finfoData = hResoData.GetListOfFunctions().FindObject("stats")
        finfoData.__class__ = ROOT.TPaveStats
        finfoData.SetX1NDC(0.7)
        finfoData.SetX2NDC(0.95)
        finfoData.SetY1NDC(0.20)
        finfoData.SetY2NDC(0.40)
        lData = ROOT.TText(0.81, 0.41, "Data (fit)")
        lData.SetTextSize(0.035)
        lData.SetNDC()
        lData.Draw()

        finfoMC = hResoMC.GetListOfFunctions().FindObject("stats")
        finfoMC.__class__ = ROOT.TPaveStats
        finfoMC.SetX1NDC(0.7)
        finfoMC.SetX2NDC(0.95)
        finfoMC.SetY1NDC(0.45)
        finfoMC.SetY2NDC(0.65)
        lMC = ROOT.TText(0.81, 0.66, "Simulation (fit)")
        lMC.SetTextSize(0.035)
        lMC.SetNDC()
        lMC.Draw()

    else:

        resoData, resoErrData, sysErrData = fit.fwhm(hResoData, nmin=10000)
        resoMC, resoErrMC, sysErrMC = fit.fwhm(hResoMC, nmin=10000)

    if resoData * resoMC == 0.:
        resoData, resoErrData, sysErrData = 0., 0., 0.
        resoMC, resoErrMC, sysErrMC = 0., 0., 0.

    xLabel = x
    if x == 'd0': xLabel = 'd_{xy}'
    elif x == 'dz': xLabel = 'd_{z}'

    lDataReso = ROOT.TLatex(
        0.20, 0.61, "#sigma^{Data}_{" + xLabel + "} = %.1f #mum" % (resoData))
    lDataReso.SetNDC()
    lDataReso.SetTextFont(43)
    lDataReso.SetTextSize(20)
    lDataReso.Draw()

    lMCReso = ROOT.TLatex(
        0.20, 0.70, "#sigma^{Sim.}_{" + xLabel + "} = %.1f #mum" % (resoMC))
    lMCReso.SetNDC()
    lMCReso.SetTextFont(43)
    lMCReso.SetTextSize(20)
    lMCReso.Draw()

    lBin = ROOT.TLatex(0.43, 0.20, "Bin = %.1f #mum" % (sysErrData))
    lBin.SetNDC()
    lBin.SetTextFont(43)
    lBin.SetTextSize(14)
    lBin.Draw()

    if ip != 'bs':

        lSelPV = ROOT.TLatex(
            0.20, 0.85,
            str(vtrk['bins'][1]) + ' < ' + selName + ' < ' +
            str(vtrk['bins'][2]) + units)
        lSelPV.SetTextSize(0.035)
        lSelPV.SetNDC()
        lSelPV.Draw()

    else:

        lSelPVx = ROOT.TLatex(
            0.20, 0.87,
            'Beam width (x) = %.1f #mum' % (vtrk['beamwidthx'][int(ktrkstr)]))
        lSelPVy = ROOT.TLatex(
            0.20, 0.83,
            'Beam width (y) = %.1f #mum' % (vtrk['beamwidthy'][int(ktrkstr)]))
        lSelPVx.SetTextSize(0.032)
        lSelPVy.SetTextSize(0.032)
        lSelPVx.SetNDC()
        lSelPVy.SetNDC()
        lSelPVx.Draw()
        lSelPVy.Draw()

    pLabel = 'p_{T}'
    pUnits = 'GeV'
    pPrec = '%.2f'
    if param == 'eta':
        pLabel = '#eta'
        pUnits = ''
    elif param == 'phi':
        pLabel = '#phi'
        pUnits = ''
    elif param == 'npv':
        pLabel = 'N_{PV}'
        pUnits = ''
        pPrec = '%d'
    elif param == 'dr':
        pLabel = '#DeltaR'
        pUnits = ''

    lSel = ROOT.TLatex(
        0.20, 0.78, (pPrec + ' < ' + pLabel + ' < ' + pPrec + ' ' + pUnits) %
        (v['bins'][1], v['bins'][2]))
    lSel.SetTextSize(0.035)
    lSel.SetNDC()
    lSel.Draw()

    c1.Update()

    leg = ROOT.TLegend(0.82, 0.92, 0.990, 0.75)
    leg.SetFillColor(253)
    leg.SetBorderSize(0)
    leg.AddEntry(hResoData, "Data", "p")
    leg.AddEntry(hResoMC, "Simulation", "f")
    if options.fit:
        leg.AddEntry(resResoData, "Data (fit)", "l")
        leg.AddEntry(resResoMC, "Simulation (fit)", "l")
    leg.Draw()

    t1, t2, t3, t4 = style.cmslabel(1, c.year, evt)
    t1.Draw()
    t2.Draw()
    t3.Draw()
    t4.Draw()

    #    b = fun.isbadfit(resoChi2MC, resoChi2Data)
    #    b.Draw()

    foutput = 'ip' + ip + 'Reso_' + x + ktrkstr + kstr
    if ip == 'bs': foutput = 'ip' + ip + 'Reso_' + x + kstr + '_' + ktrkstr
    figs.append(foutput)
    c1.Print(options.output + '/' + foutput + '.' + img)
    c1.Clear()

    return figs, x, ktrkstr, kstr, resoData, resoErrData, intResoData, resoMC, resoErrMC, intResoMC, sysErrData, sysErrMC
Exemple #4
0
def runFit(evt, v, x, kstr, img, hResoData, hResoMC, hPullData, hPullMC):

    ROOT.gROOT.Reset()

    ROOT.gROOT.SetBatch()

    pstyle = style.SetPlotStyle(1, 'FIT')
    pstyle.SetOptFit(1111)

    figs = []

    if hResoData.GetEntries() < 10:
        print 'No stats in data: ' + hResoData.GetName()
        sys.exit()
    if hResoMC.GetEntries() < 10:
        print 'No stats in mc: ' + hResoMC.GetName()
        sys.exit()

    for h in [hResoData, hPullData]:
        h.SetMarkerStyle(c.datamrk)
        h.SetMarkerSize(0.7)
        h.SetMarkerColor(1)
        h.SetLineColor(1)

    for h in [hResoMC, hPullMC]:
        h.SetMarkerSize(0)
        h.SetMarkerColor(c.mccol)
        h.SetLineColor(c.mccol)
        h.SetFillColor(c.mccol)
        h.SetLineStyle(1)

    intResoMC = hResoMC.Integral()
    intResoData = hResoData.Integral()
    hResoMC.Scale(intResoData / intResoMC)

    intPullMC = hPullMC.Integral()
    intPullData = hPullData.Integral()
    hPullMC.Scale(intPullData / intPullMC)

    # Rebin in case of fine-bin measurement
    #    hResoData = hResoData.Rebin(2)
    #    hResoMC = hResoMC.Rebin(2)
    #    hPullData = hPullData.Rebin(5)
    #    hPullMC = hPullMC.Rebin(5)

    maxResoData = hResoData.GetMaximum()
    maxResoMC = hResoMC.GetMaximum()
    hResoMC.SetMaximum(1.2 * max(maxResoData, maxResoMC))
    hResoMC.SetMinimum(0.)

    maxPullData = hPullData.GetMaximum()
    maxPullMC = hPullMC.GetMaximum()
    hPullMC.SetMaximum(1.2 * max(maxPullData, maxPullMC))
    hPullMC.SetMinimum(0.)

    selName = 'N_{trk}'
    units = ''
    if options.param == 'sumTrackPt':
        selName = '#sump_{T}'
        units = ' GeV'
    elif options.param == 'sumTrackPtSq':
        selName = '#sqrt{#sump^{2}_{T}}'
        units = ' GeV'

    # Resolution

    c1 = ROOT.TCanvas()

    fun.adjust(hResoMC, hResoData, nsig=5)

    hResoMC.Draw('hist')
    hResoData.Draw('e1 sames')

    resResoMC, resoMC, resoErrMC, resoChi2MC = fit.doFit('mcfit_reso',
                                                         hResoMC,
                                                         x,
                                                         kstr,
                                                         c.mcfit,
                                                         '2g',
                                                         nsig=3,
                                                         nTries=3)
    resResoMC.Draw("same")

    resResoData, resoData, resoErrData, resoChi2Data = fit.doFit(
        'datafit_reso', hResoData, x, kstr, 1, '2g', nsig=3, nTries=3)
    resResoData.Draw("same")
    resResoData.SetLineStyle(2)

    sysResoData = hResoData.GetXaxis().GetBinWidth(2)
    sysResoMC = hResoMC.GetXaxis().GetBinWidth(2)

    c1.Update()

    finfoData = hResoData.GetListOfFunctions().FindObject("stats")
    finfoData.__class__ = ROOT.TPaveStats
    finfoData.SetX1NDC(0.7)
    finfoData.SetX2NDC(0.95)
    finfoData.SetY1NDC(0.20)
    finfoData.SetY2NDC(0.40)
    lData = ROOT.TText(0.81, 0.41, "Data (fit)")
    lData.SetTextSize(0.035)
    lData.SetNDC()
    lData.Draw()

    finfoMC = hResoMC.GetListOfFunctions().FindObject("stats")
    finfoMC.__class__ = ROOT.TPaveStats
    finfoMC.SetX1NDC(0.7)
    finfoMC.SetX2NDC(0.95)
    finfoMC.SetY1NDC(0.45)
    finfoMC.SetY2NDC(0.65)
    lMC = ROOT.TText(0.81, 0.66, "Simulation (fit)")
    lMC.SetTextSize(0.035)
    lMC.SetNDC()
    lMC.Draw()

    lDataReso = ROOT.TLatex(
        0.20, 0.63, "#sigma^{Data}_{" + x + "} = %.1f #mum" % (resoData))
    lDataReso.SetNDC()
    lDataReso.SetTextFont(43)
    lDataReso.SetTextSize(20)
    lDataReso.Draw()

    lMCReso = ROOT.TLatex(0.20, 0.70,
                          "#sigma^{Sim.}_{" + x + "} = %.1f #mum" % (resoMC))
    lMCReso.SetNDC()
    lMCReso.SetTextFont(43)
    lMCReso.SetTextSize(20)
    lMCReso.Draw()

    lSel = ROOT.TLatex(
        0.20, 0.80,
        str(v['bins'][1]) + ' < ' + selName + ' < ' + str(v['bins'][2]) +
        units)
    lSel.SetTextSize(0.035)
    lSel.SetNDC()
    lSel.Draw()

    c1.Update()

    leg = ROOT.TLegend(0.82, 0.92, 0.990, 0.75)
    leg.SetFillColor(253)
    leg.SetBorderSize(0)
    leg.AddEntry(hResoData, "Data", "p")
    leg.AddEntry(hResoMC, "Simulation", "f")
    leg.AddEntry(resResoData, "Data (fit)", "l")
    leg.AddEntry(resResoMC, "Simulation (fit)", "l")
    leg.Draw()

    t1, t2, t3, t4 = style.cmslabel(1, c.year, evt)
    t1.Draw()
    t2.Draw()
    t3.Draw()
    t4.Draw()

    b = fun.isbadfit(resoChi2MC, resoChi2Data)
    b.Draw()

    foutput = 'pvReso_' + x + kstr
    figs.append(foutput)
    c1.Print(options.output + '/' + foutput + '.' + img)
    c1.Clear()

    # Pull

    fun.adjust(hPullMC, hPullData, nsig=5)

    hPullMC.Draw('hist')
    hPullData.Draw('e1 sames')

    resPullMC, pullMC, pullErrMC, pullChi2MC = fit.doFit('mcfit_pull',
                                                         hPullMC,
                                                         x,
                                                         kstr,
                                                         c.mcfit,
                                                         '1g',
                                                         nsig=2.5,
                                                         nTries=3)
    resPullMC.Draw("same")

    resPullData, pullData, pullErrData, pullChi2Data = fit.doFit(
        'datafit_pull', hPullData, x, kstr, 1, '1g', nsig=2.5, nTries=3)
    resPullData.Draw("same")
    resPullData.SetLineStyle(2)

    sysPullData = hPullData.GetXaxis().GetBinWidth(2)
    sysPullMC = hPullMC.GetXaxis().GetBinWidth(2)

    c1.Update()

    finfoData = hPullData.GetListOfFunctions().FindObject("stats")
    finfoData.__class__ = ROOT.TPaveStats
    finfoData.SetX1NDC(0.7)
    finfoData.SetX2NDC(0.95)
    finfoData.SetY1NDC(0.20)
    finfoData.SetY2NDC(0.40)
    lData = ROOT.TText(0.81, 0.41, "Data (fit)")
    lData.SetTextSize(0.035)
    lData.SetNDC()
    lData.Draw()

    finfoMC = hPullMC.GetListOfFunctions().FindObject("stats")
    finfoMC.__class__ = ROOT.TPaveStats
    finfoMC.SetX1NDC(0.7)
    finfoMC.SetX2NDC(0.95)
    finfoMC.SetY1NDC(0.45)
    finfoMC.SetY2NDC(0.65)
    lMC = ROOT.TText(0.81, 0.66, "Simulation (fit)")
    lMC.SetTextSize(0.035)
    lMC.SetNDC()
    lMC.Draw()

    lDataPull = ROOT.TLatex(0.20, 0.63,
                            "#sigma^{Data}_{" + x + "} = %.2f" % (pullData))
    lDataPull.SetNDC()
    lDataPull.SetTextFont(43)
    lDataPull.SetTextSize(20)
    lDataPull.Draw()

    lMCPull = ROOT.TLatex(0.20, 0.70,
                          "#sigma^{Sim.}_{" + x + "} = %.2f" % (pullMC))
    lMCPull.SetNDC()
    lMCPull.SetTextFont(43)
    lMCPull.SetTextSize(20)
    lMCPull.Draw()

    lSel = ROOT.TLatex(
        0.20, 0.80,
        str(v['bins'][1]) + ' < ' + selName + ' < ' + str(v['bins'][2]) +
        units)
    lSel.SetTextSize(0.035)
    lSel.SetNDC()
    lSel.Draw()

    c1.Update()

    leg = ROOT.TLegend(0.82, 0.92, 0.990, 0.75)
    leg.SetFillColor(253)
    leg.SetBorderSize(0)
    leg.AddEntry(hPullData, "Data", "p")
    leg.AddEntry(hPullMC, "Simulation", "f")
    leg.AddEntry(resPullData, "Data (fit)", "l")
    leg.AddEntry(resPullMC, "Simulation (fit)", "l")
    leg.Draw()

    t1, t2, t3, t4 = style.cmslabel(1, c.year, evt)
    t1.Draw()
    t2.Draw()
    t3.Draw()
    t4.Draw()

    b = fun.isbadfit(pullChi2MC, pullChi2Data)
    b.Draw()

    foutput = 'pvPull_' + x + kstr
    figs.append(foutput)
    c1.Print(options.output + '/' + foutput + '.' + img)
    c1.Clear()

    return figs, x, kstr, resoData, resoErrData, resoMC, resoErrMC, pullData, pullErrData, pullMC, pullErrMC, sysResoData, sysResoMC, sysPullData, sysPullMC
Exemple #5
0
from functions import date
from functions import observations
from functions import setdata
from functions import getdata
from functions import deletedata
from functions import createtable
from texts import menu_text
from texts import invalidoption_text

#Menu inicial
menu_text()
option = input()
if option == '1':
    total = dist()
    totaltime = timerun()
    adjusted = adjust(totaltime)
    finalpace = calcpace(adjusted, total)
    convertedpace = converttime(finalpace)
    impress = toprint(convertedpace)
elif option == '2':
    total = dist()
    totaltime = timerun()
    adjusted = adjust(totaltime)
    calctemp = predictrun(adjusted, total)
    convertedtemprun = converttime(calctemp)
    impress = toprint(convertedtemprun)
elif option == '3':
    createtable()
    thedate = date()
    total = dist()
    totaltime = timerun()
Exemple #6
0
img = cv2.imread(fn, 0)

height, width = img.shape

#use sobel operator to get x and y derivatives
sobelox = np.array([[-1, 0, 1], [-2, 0, 2], [-1, 0, 1]])
sobeloy = np.array([[1, 2, 1], [0, 0, 0], [-1, -2, -1]])

imgdx = ed.derivative(img, sobelox, height, width, 3, 3)
imgdy = ed.derivative(img, sobeloy, height, width, 3, 3)
#cv2.imwrite('dx.jpg', imgdx)
#cv2.imwrite('dy.jpg', imgdy)

#get image gradient magnitude
imgmagnitude = ed.magnitude(imgdx, imgdy, height, width)
imgmagnitudedisplay = ed.adjust(imgmagnitude, height, width)
cv2.imwrite('magnitudemap.jpg', imgmagnitudedisplay)

#get image gradient orientation
imgorientation, imgedgethin = ed.orientation(imgdx, imgdy, height, width,
                                             imgmagnitude)
cv2.imwrite('orientation_map.jpg', imgorientation)
cv2.imwrite('edge_map_thin.jpg', imgedgethin)

#apply threshold and edgelink
threshold_low = 25
threshold_high = 50
imgedge = ed.doublethreshold(imgedgethin, height, width, threshold_low,
                             threshold_high)
cv2.imwrite('edge_map.jpg', imgedge)