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
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
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
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
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()
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)