Esempio n. 1
0
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')
Esempio n. 2
0
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')