def sussix(x0,x1,x2): ################################################ #dim=(4404, 2, 14,14,300,300,300,300) #y0=fillorcut(x0, 1100) #y1=fillorcut(x1, 1100) if len(x0) == len(x1): y3=fillorcut(concatenate([x0,x1,x2]), 4*len(x0)) print "calling sussix", len(y3), len(x0) z=sussixout(sussix4drivexxNoO32.sussix4drivenoise(y3, len(x0))) return z else: print "Different number of turns in x and y" return 0
def sussixBPM(x0,x1,x2,x3): ################################################ #dim=(4404, 2, 14,14,300,300,300,300) #y0=fillorcut(x0, 1100) #y1=fillorcut(x1, 1100) y3=fillorcut(concatenate([x0,x1,zeros(len(x2)), zeros(len(x3))]), 4*len(x0)) z1=sussixout(sussix4drivexxNoO32.sussix4drivenoise(y3, len(x0))) y3=fillorcut(concatenate([x2,x3,zeros(len(x2)), zeros(len(x3))]), 4*len(x0)) z2=sussixout(sussix4drivexxNoO32.sussix4drivenoise(y3, len(x0))) ratiox=z1.amplitude[0]/z2.amplitude[0] ratioy=z1.amplitude[3]/z2.amplitude[3] dphix=(z2.phase[0]-z1.phase[0])*pi/180. dphiy=(z2.phase[3]-z1.phase[3])*pi/180. if len(x0) == len(x1): x2=(x2*ratiox - x0*cos(dphix) )/sin(dphix) x3=(x3*ratioy - x1*cos(dphiy) )/sin(dphiy) y3=fillorcut(concatenate([x0,x1,x2,x3]), 4*len(x0)) print "calling sussix", len(y3), len(x0) z=sussixout(sussix4drivexxNoO32.sussix4drivenoise(y3, len(x0))) return z else: print "Different number of turns in x and y" return 0