Full code and output

currentpath=SetDirectory[NotebookDirectory[]];​​​​(*defineTPP-2Mequation(Anaccurateandsimpleuniversalcurvefor​​theenergy-dependentelectroninelastic​​meanfreepath)paper:Anaccurateandsimpleuniversalcurvefor​​theenergy-dependentelectroninelastic​​meanfreepath†;;Practicalguidesforx-rayphotoelectron​​spectroscopy:QuantitativeXPS*)​​ft[KE_,rou_,m_,eg_,nv_]:=Module[{KE0=KE,rou0=rou,m0=m,eg0=eg,nv0=nv,ep,u,beta,gama,c,d},​​ep=28.8*Sqrt[nv0*rou0/m0];​​u=nv0*rou0/m0;​​beta=-0.1+0.944/Sqrt[ep^2+eg0^2]+0.069*rou0^0.1;​​gama=0.191*rou0^-0.5;​​c=1.97-0.91*u;​​d=53.4-20.8*u;​​Return[0.1KE0/((ep^2)*(beta*Log[gama*KE0]-(c/KE0)-(d/(KE0^2))))]]​​(*simplifiedIMFPqeuation*)​​ft1[KE_,Z_,eg_,a_]:=Module[{KE0=KE,Z0=Z,eg0=eg,a0=a},Return[(a0^1.7)*(4+0.44Z0^0.5+0.104KE0^0.872)/((Z0^0.38)*(1-0.02eg0))]]​​​​(*defineafunctiontoshowfiguremodel*)​​figmodel[model_]:=Module[{mo0=model,im},SetDirectory[FileNameJoin[{currentpath,"images"}]];​​im=Image[Import[mo0],ImageSize100]]​​​​(*defineacalculatefunction*)​​calcalator[element1_,element2_,area1_,area2_,penergy_,model_,zvag_,eg_,a_,BE1_,BE2_,fthickness_]:=Module[{element10=element1,element20=element2,area10=area1,area20=area2,penergy0=penergy,model0=model,zvag0=zvag,eg0=eg,a0=a,BE10=BE1,BE20=BE2,fthickness0=fthickness,element1cs,element2cs,element1func,element1csv,element2func,element2csv},​​SetDirectory[FileNameJoin[{currentpath,"cs"}]];​​element1cs=Import[element10];​​element2cs=Import[element20];​​element1func=Interpolation[element1cs[[All,1;;2]]];​​element1csv=element1func[penergy0];​​element2func=Interpolation[element2cs[[All,1;;2]]];​​element2csv=element2func[penergy0];(*crosssectioninterpolationinthetable*)​​If[model0"bulk",​​If[element10==element20,​​Print["---------------"];​​Print["Area=N*fph*crosssection*IMFP*Transmission(E)*Cos(thetA)*A"];​​Print["CS and IMFP ignored, only area considered"];​​Print["element density ratio is: N1/N2=Area1/Area2= ",area10/area20],​​Print["---------------"];Print["Area=N*fph*crosssection*IMFP*Transmission(E)*Cos(thetA)*A"];​​Print["CS and IMFP considered"];​​Print["CS1= ",element1csv,", IMFP1= ",ft1[penergy0-BE10,zvag0,eg0,a0]];​​Print["CS2= ",element2csv,", IMFP2= ",ft1[penergy0-BE20,zvag0,eg0,a0]];​​Print["element density ratio is: N1/N2=Area1*CS2*IMFP2/(Area2*CS1*IMFP1)= ",area10*element2csv*ft1[penergy0-BE20,zvag0,eg0,a0]/(area20*element1csv*ft1[penergy0-BE10,zvag0,eg0,a0])]​​],​​If[model0"layer1",​​If[element10==element20,​​Print["---------------"];​​Print["Area=N*crosssection*IMFP*(1-exp(-d/IMFP))"];​​Print["CS and IMFP ignored, only area considered"];​​Print["element density ratio is: N1/N2=Area1/Area2= ",area10/area20],​​Print["---------------"];​​Print["Area=N*crosssection*IMFP*(1-exp(-d/IMFP))"];​​Print["CS and IMFP considered"];​​Print["CS1= ",element1csv,", IMFP1= ",ft1[penergy0-BE10,zvag0,eg0,a0]];​​Print["CS2= ",element2csv,", IMFP2= ",ft1[penergy0-BE20,zvag0,eg0,a0]];​​Print["element density ratio is: N1/N2=Area1*CS2*IMFP2*(1-exp(-d/IMFP2))/(Area2*CS1*IMFP1*(1-exp(-d/IMFP1)))= ",area10*element2csv*ft1[penergy0-BE20,zvag0,eg0,a0]*(1-Exp[-fthickness0/ft1[penergy0-BE20,zvag0,eg0,a0]])/(area20*element1csv*ft1[penergy0-BE10,zvag0,eg0,a0]*(1-Exp[-fthickness0/ft1[penergy0-BE10,zvag0,eg0,a0]]))]​​],​​If[model0"layer2",​​If[element10==element20,​​Print["---------------"];​​Print["Area1(toplayer)=N1*crosssection*IMFP*(1-exp(-d/IMFP1))"];​​Print["Area2(substrate)=N2*crosssection*IMFP*(exp(-d/IMFP2))"];​​Print["CS ignored, IMFP1=IMFP2"];​​Print["CS1= ",element1csv,", IMFP1= ",ft1[penergy0-BE10,zvag0,eg0,a0]];​​Print["CS2= ",element2csv,", IMFP2= ",ft1[penergy0-BE20,zvag0,eg0,a0]];​​Print["element density ratio is: N1/N2=Area1*exp(-d/IMFP2)/(Area2*(1-exp(-d/IMFP1)))= ",area10*Exp[-fthickness0/ft1[penergy0-BE20,zvag0,eg0,a0]]/(area20*(1-Exp[-fthickness0/ft1[penergy0-BE10,zvag0,eg0,a0]]))],​​Print["---------------"];​​Print["Area1(toplayer)=N1*crosssection1*IMFP1*(1-exp(-d/IMFP1))"];​​Print["Area2(substrate)=N2*crosssection2*IMFP2*(exp(-d/IMFP2))"];​​Print["CS and IMFP considered"];​​Print["CS1= ",element1csv,", IMFP1= ",ft1[penergy0-BE10,zvag0,eg0,a0]];​​Print["CS2= ",element2csv,", IMFP2= ",ft1[penergy0-BE20,zvag0,eg0,a0]];​​Print["element density ratio is: N1/N2=Area1*CS2*IMFP2*exp(-d/IMFP2)/(Area2*CS1*IMFP1*(1-exp(-d/IMFP1)))= ",area10*element2csv*ft1[penergy0-BE20,zvag0,eg0,a0]*Exp[-fthickness0/ft1[penergy0-BE20,zvag0,eg0,a0]]/(area20*element1csv*ft1[penergy0-BE10,zvag0,eg0,a0]*(1-Exp[-fthickness0/ft1[penergy0-BE10,zvag0,eg0,a0]]))]​​],​​If[model0"layer3",​​If[element10==element20,​​Print["---------------"];​​Print["Area=N*crosssection*IMFP*exp(-d/IMFP)"];​​Print["CS and IMFP ignored"];​​Print["CS1= ",element1csv,", IMFP1= ",ft1[penergy0-BE10,zvag0,eg0,a0]];​​Print["CS2= ",element2csv,", IMFP2= ",ft1[penergy0-BE20,zvag0,eg0,a0]];​​Print["element density ratio is: N1/N2=Area1/Area2= ",area10/area20],​​Print["---------------"];​​Print["Area1=N1*crosssection1*IMFP1*exp(-d/IMFP1)"];​​Print["Area2=N2*crosssection2*IMFP2*exp(-d/IMFP2)"];​​Print["CS and IMFP considered"];​​Print["CS1= ",element1csv,", IMFP1= ",ft1[penergy0-BE10,zvag0,eg0,a0]];​​Print["CS2= ",element2csv,", IMFP2= ",ft1[penergy0-BE20,zvag0,eg0,a0]];​​Print["element density ratio is: N1/N2=Area1*CS2*IMFP2*exp(-d/IMFP2)/(Area2*CS1*IMFP1*exp(-d/IMFP1))= ",area10*element2csv*ft1[penergy0-BE20,zvag0,eg0,a0]*Exp[-fthickness0/ft1[penergy0-BE20,zvag0,eg0,a0]]/(area20*element1csv*ft1[penergy0-BE10,zvag0,eg0,a0]*Exp[-fthickness0/ft1[penergy0-BE10,zvag0,eg0,a0]])]​​]​​]​​]​​]​​]]​​
In[]:=
Panel[DynamicModule[{penergy=1486.6,bdangle=54.5,element1="c1s",area1=60,element2="c1s",area2=60,model="bulk",zvag=4,eg=3,a=0.25,BE1=285,BE2=285.5,fthickness=0},Column[{Row[{Column[{Panel["1.photon energy",FrameMarginsNone],InputField[Dynamic[penergy],FieldSize5],Panel["2.θ beam-spectro(deg)",FrameMarginsNone],InputField[Dynamic[bdangle],FieldSize5]}],​​Column[{Panel["3.element & peak area ",FrameMarginsNone],Row[{Panel["ele1",FrameMarginsNone],InputField[Dynamic[element1],FieldSize5],InputField[Dynamic[area1],FieldSize5]}],Row[{Panel["ele2",FrameMarginsNone],InputField[Dynamic[element2],FieldSize5],InputField[Dynamic[area2],FieldSize5]}],Panel["4.XPS model",FrameMarginsNone],PopupMenu[Dynamic[model],{"bulk","layer1","layer2","layer3"}]}],Column[{Button["calculate",calcalator[element1,element2,area1,area2,penergy,model,zvag,eg,a,BE1,BE2,fthickness]],Panel[Dynamic[figmodel[model]]"display model"]}]}],Panel["IMFP calculation(ft1)",FrameMarginsNone],Row[{Panel["Zavg",FrameMarginsNone],InputField[Dynamic[zvag],FieldSize5],Panel["egap",FrameMarginsNone],InputField[Dynamic[eg],FieldSize5],Panel["a(nm)",FrameMarginsNone],InputField[Dynamic[a],FieldSize5],Panel["BE1",FrameMarginsNone],InputField[Dynamic[BE1],FieldSize5],Panel["BE2",FrameMarginsNone],InputField[Dynamic[BE2],FieldSize5]}],​​Row[{Panel["film thickness(nm)",FrameMarginsNone],InputField[Dynamic[fthickness],FieldSize5]}]}]]]
Out[]=
1.photon energy
1486.6
2.θ beam-spectro(deg)
54.5
3.element & peak area
ele1
"c1s"
60
ele2
"n1s"
60
4.XPS model
layer3
calculate
display model
figmodel[layer3]
IMFP calculation(ft1)
Zavg
4
egap
3
a(nm)
0.25
BE1
285
BE2
395
film thickness(nm)
10