def fitLambda(): data = Data() data.addPoint(500, 1.000279) data.addPoint(540, 1.000278) data.addPoint(600, 1.000277) data.addPoint(682, 1.000276) c = TCanvas('c1', '', 1280, 720) g = data.makeGraph('g', 'wavelength #lambda / nm', 'refraction index n') g.GetYaxis().SetLabelSize(0.03) g.GetYaxis().SetTitleOffset(1.39) g.Draw('AP') fit = Fitter('f', '[0]+[1]*x') fit.setParam(0, 'a', 2) fit.setParam(1, 'b', -1) fit.fit(g, 450, 700) fit.saveData('../calc/fit_lambda.txt', 'w') a = fit.params[0]['value'] sa = fit.params[0]['error'] b = fit.params[1]['value'] sb = fit.params[1]['error'] l = TLegend(0.4, 0.6, 0.87, 0.87) l.AddEntry('g', 'refraction index n as a function of wavelength #lambda', 'p') l.AddEntry(fit.function, 'fit with n(#lambda)= a+b*#lambda', 'l') fit.addParamsToLegend(l) l.SetTextSize(0.03) l.Draw() c.Update() c.Print('../img/fit_lambda.pdf', 'pdf')
def makePolarPlot(squiddata, name, omega, phi, si, offset): # generate polar data data = Data() for t, A, st, sA in squiddata.points: alpha = omega * t + phi B = abs(ampToB(si, A - offset, sA)[0]) x = B * np.cos(alpha) y = B * np.sin(alpha) data.addPoint(x, y) # make canvas and graph c = TCanvas('c_polar_%s' % name, '', 1280, 1280) g = data.makeGraph('g_polar_%s' % name, 'B_{z} / T', 'B_{z} / T') g.SetMarkerStyle(1) g.Draw('AP') # set quatratic range gPad.Update() ymin = gPad.GetUymin() ymax = gPad.GetUymax() xmin = gPad.GetUxmin() xmax = gPad.GetUxmax() posdim = max(xmax, ymax) negdim = min(xmin, ymin) g.SetMinimum(negdim) g.SetMaximum(posdim) g.GetXaxis().SetLimits(negdim, posdim) # draw axis cross vline = TLine(0, negdim, 0, posdim) vline.Draw() hline = TLine(negdim, 0, posdim, 0) hline.Draw() # print canvas c.Update() c.Print('../img/polar_%s.pdf' % name, 'pdf')