#pragma rtGlobals=3 // Use modern global access method and strict wave access. Function BiasAngle(inwave,U,tilt) Wave inwave Variable U, tilt // U in eV, tilt in deg String newname = NameofWave(inwave)+"_b" Duplicate/O inwave, $newname Wave outwave = $newname Variable rows,columns,xdelta,xoffset,ydelta,yoffset // inwave parameters rows = DimSize(inwave,0) columns = DimSize(inwave,1) xoffset = DimOffset(inwave,0) ydelta = DimDelta(inwave,1) yoffset = DimOffset(inwave,1) SetScale/I y yoffset+AngleFormula(U,xoffset,tilt), yoffset+ydelta*(columns-1)+AngleFormula(U,xoffset,tilt), outwave // scale the y axis to the extreme vaules outwave = interp2D(inwave, x, y - AngleFormula(U,x,tilt)) // recalculate to corrected angles outwave = (NumType(outwave)==2) ? 0 : outwave // replace NaNs (optional) End Function AngleFormula(U,Ekin,tilt) // output: correction in deg Variable U, Ekin, tilt // U in eV, Ekin in eV, tilt in deg Variable radT = tilt*Pi/180 Variable inbrackets=1-sqrt(1-radT^2)/2-asin(radT)/(2*radT) return asin(sqrt(U/Ekin*inbrackets))/(Pi/180) End