if 1:
            for i in range(2):
                mcc.analog_output(0, 4.5 * (i & 1))
                time.sleep(0.5)

            for i in range(10):
                print mcc.analog_input(0, gain=mcc.GAIN2_DIFF)
        if 1:
            mcc.setup_analog_scan(sweeps=1000,
                                  channels=(0, 1),
                                  gains=mcc.GAIN2_DIFF,
                                  rate=500)
            time.sleep(2)
            print Numeric.array_str(mcc.get_burst_scan()[:100, 0],
                                    precision=3,
                                    suppress_small=1,
                                    max_line_width=10000)

        if 1:
            mcc.setup_analog_scan(sweeps=-1,
                                  channels=(0, ),
                                  gains=mcc.GAIN2_DIFF,
                                  rate=1000)
            print mcc.actRate

            try:
                actcount = 0
                print time.asctime()
                start_time = time.time()
                countlimit = 200
                while actcount < countlimit:
Example #2
0
		dx=x-xmu
		dx2=dx*dx
		expfact=Numeric.exp(xsigi*dx2)
		z=a*expfact*dx
		
		dd = Numeric.zeros((n, 4), self.atype)
		dd[:,0]=1.0
		dd[:,1]=expfact*dx
		dd[:,2]=(-2.0*xsigi*dx*dx - 1)*a*expfact
		dd[:,3]=(-2.0*xsigi/xsigma)*(dx2*z)
		
		return dd	

if __name__=="__main__":
	
	x=gauss_deriv_fit()

	z0, a, xmu, xsigma =  1., 15., 73., 10.
	x.set_initial_params([z0+5, a-10, xmu+5, xsigma-5])
	
	xlist=Numeric.array(range(100),Numeric.Float)
	ylist=x.compute_funcvals(params=[z0, a, xmu, xsigma], xvals=xlist)
	
	x.add_points(xlist, ylist)
	
	print "\n\n***Start nonlinear test fit***" 
	for i in range(10):
		x.lm_fit_step()
		print Numeric.array_str(x.funcparams, precision=5),  sqrt(x.reduced_chi2)

		id_dict['last_used_time']=time.time()
		
		mcc.write_user_memory(data=cPickle.dumps(id_dict) )
		
		
		if 1:
			for i in range(2):
				mcc.analog_output(0, 4.5*(i & 1))
				time.sleep(0.5)
			
			for i in range(10):
				print mcc.analog_input(0, gain=mcc.GAIN2_DIFF)
		if 1:
			mcc.setup_analog_scan(sweeps=1000, channels=(0,1), gains=mcc.GAIN2_DIFF, rate=500)
			time.sleep(2)
			print Numeric.array_str(mcc.get_burst_scan()[:100,0], precision=3, suppress_small=1, max_line_width=10000)
									
		if 1:
			mcc.setup_analog_scan(sweeps=-1, channels=(0,), gains=mcc.GAIN2_DIFF, rate=1000)
			print mcc.actRate
			
			try:
				actcount=0
				print time.asctime()
				start_time=time.time()
				countlimit=200
				while actcount<countlimit:
					actcount, res=mcc.get_continuous_scan_packet()
					if res:
						#print Numeric.array_str(res[:,0], precision=3, suppress_small=1, max_line_width=10000)
						if not actcount%100: print actcount
    xsigi = -1.0 / (2.0 * xsigma ** 2)
    dx = x - xmu
    dx2 = dx * dx
    expfact = Numeric.exp(xsigi * dx2)
    z = a * expfact * dx

    dd = Numeric.zeros((n, 4), self.atype)
    dd[:, 0] = 1.0
    dd[:, 1] = expfact * dx
    dd[:, 2] = (-2.0 * xsigi * dx * dx - 1) * a * expfact
    dd[:, 3] = (-2.0 * xsigi / xsigma) * (dx2 * z)

    return dd

if __name__ == "__main__":

  x = gauss_deriv_fit()

  z0, a, xmu, xsigma = 1., 15., 73., 10.
  x.set_initial_params([z0 + 5, a - 10, xmu + 5, xsigma - 5])

  xlist = Numeric.array(range(100), Numeric.Float)
  ylist = x.compute_funcvals(params=[z0, a, xmu, xsigma], xvals=xlist)

  x.add_points(xlist, ylist)

  print("\n\n***Start nonlinear test fit***")
  for i in range(10):
    x.lm_fit_step()
    print(Numeric.array_str(x.funcparams, precision=5),  sqrt(x.reduced_chi2))