移相子のセットアップと調整
BL-3A 移相子ノート
フィッティングによるパラメータの決定
IgorPro サンプルファイル (1) PRth-scanにおける分解能関数resoとPRth依存性を表す関数の初期化 (* Initialize *) Make/N=200/D/O reso1 SetScale/I x -0.02,0.02,"", reso1 Make/N=600/D/O fitfcn1 SetScale/I x dataX[0]-0.02,dataX[numpnts(dataX)-1]+0.02,"", fitfcn1 duplicate/o fitfcn1 fg1,p3in1,p2in1 (* test *) print prthfit(wprth,-17.6) (2) 格子基本反射を使ったPRth-scanのフィッティングマクロ Function PRthfit(w,h) Wave w; Variable h Wave fitfcn1,reso1,fg1 Variable tth, ttha, phia Wave p3in1,p2in1 Variable fsc=-1 // fsc=-1 for holizontal scattering plane, fsc=1 for vertical scattering plane // w[0]: phiA, w[1]: Intensity, w[2]: At, w[3]: cen_PRth, w[4]: reso, w[5]: Polarization, w[6]: tth, w[7]: ttha tth=w[6]*pi/180 // tth=0 for a direct beam, tth≠0 for a fundamental Bragg peak ttha=w[7]*pi/180; phia=w[0]*pi/180 // ttha=0 when No Analyzer p3in1=fsc*w[5]*cos(w[2]/(x-w[3])) p2in1=w[5]*sin(w[2]/(x-w[3])) reso1=(exp(-x^2/2/w[4]^2))/w[4]/sqrt(2*pi) fitfcn1=w[1]*((1-(1-p3in1)/2*sin(tth)^2)*(1-sin(ttha)^2/2)+(p3in1+(1-p3in1)/2*sin(tth)^2)*cos(2*phia)*sin(ttha)^2/2) fg1=fitfcn1(x)*reso1(h-x) return area(fg1,leftx(fitfcn1),rightx(fitfcn1)) End Macro showparams() print date() print "resoFWHM=",wprth[4]*2.3548," (deg)" print "At=",wprth[2]," (rad•deg)" print "OFS_pi/2=",wprth[2]*2/pi," (deg)" End 実行 (* convolution fit *) FuncFit/H="10000011" PRthfit wprth dataY /X=dataX /W=dataErr /I=1 /D showparams() |