npsm 새물리 New Physics : Sae Mulli

pISSN 0374-4914 eISSN 2289-0041
Qrcode

Article

Research Paper

New Phys.: Sae Mulli 2021; 71: 1090-1095

Published online December 31, 2021 https://doi.org/10.3938/NPSM.71.1090

Copyright © New Physics: Sae Mulli.

Web Program with Python for Film Thickness Measurement Using Thickogram in XPS

Jong Wan LEE*

한림대학교 나노융합스쿨, 춘천 24252 , 대한민국

Correspondence to:jwlee@hallym.ac.kr

Received: October 30, 2021; Revised: November 5, 2021; Accepted: November 6, 2021

This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License(http://creativecommons.org/licenses/by-nc/3.0) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.

One of the most important applications of XPS (X-ray photoelectron spectroscopy) is to measure the film thickness by using AR-XPS (angle-resolved XPS). The so-called thickogram, which is a nomogram, was developed as an alternative graphical solution to calculate the film thickness easily from the XPS data. It is, however, uncomfortable to photocopy the thickogram and to apply ruler and pencil for finding the graphical intersection. In this research, we developed a computer program with python to automate the thickogram, and published it as an open source on the web so that everyone can access it for the calculation of a film thickness.

Keywords: Python, Web program, Thickogram, Film thickness measurement, XPS

XPS (X-ray Photoelectron Spectroscopy: X-선 광전자 분광법)의 가장 중요한 응용분야 중의 하나는 AR-XPS (Angle-resolved XPS)를 이용한 박막의 두께 측정이다. XPS 데이터로부터 박막의 두께를 쉽게 계산하기 위해서 nomogram인 소위 Thickogram이 개발되었다. 종이에 복사해서 자와 연필로 직선을 그어 교차점을 읽어 사용하는 Thickogram은 이제는 불편할 수 밖에 없다. 본 논문에서는 파이썬 언어를 이용하여 컴퓨터 프로그램으로 Thickogram을 자동화시켰으며 누구나 쉽게 박막의 두께를 계산할 수 있도록 인터넷 상에 오픈소스로 웹사이트를 제공하였다.

Keywords: 파이썬, 웹 프로그램, thickogram, 박막 두께 측정, XPS

XPS (X-ray Photoelectron Spectroscopy: X-선 광전자분광법)는 특성 에너지의 광자, 즉 X-선을 시료에 조사해서 표면으로부터 나오는 광전자의 운동에너지를 측정하는 장비이다. 광자는 시료 원자의 전자들과 상호작용을 하고 이후 방출되는 광전자는 광자의 에너지와 전자의 결합에너지(binding energy)의 차이에 해당하는 운동에너지를 갖게 된다. 이렇게 측정된 광전자 스펙트럼은 원자에 속박되어 있는 전자의 결합에너지를 직접 보여주며 시료 원자의 규명에 사용되고 있다 [1]. 광전자와 같이 시료에서 방출되는 전자들의 특징은 그들의 감쇠 길이(attenuation length) λ에 있다. 전자의 운동에너지가 약 10 eV와 1000 eV 사이에서는 감쇠 길이는 수 원자층 (monolayer) 에 달한다 [2]. 이것이 XPS가 표면 분석 장비인 까닭이다.

XPS의 가장 중요한 응용분야 중의 하나는 AR-XPS(Angle-resolved XPS)를 이용한 박막의 두께 측정이다. 이는 앞에서 언급한 XPS에서 분석하는 광전자의 감쇠 길이 λ 즉, 검출 두께 또는 정보의 깊이가 수 원자층에 불과하고 광전자의 탈출 각도(take-off angle)를 조절하여 그 두께를 증감시킬 수 있기 때문이다. XPS 데이터로부터 박막의 두께를 쉽게 계산하기 위해서 nomogram인 소위 Thickogram이 P. J. Cumpson [3]에 의해서 개발되었다. 그러나 Thickogram은 종이에 복사해서 자와 연필로 직선을 그어 교차점을 읽어 사용하는 것이기 때문에 불편하고 부정확할 수 밖에 없다. 본 XPS를 이용한 박막의 두께 측정 컴퓨터 프르그램은 Thickogram을 기반으로 개발한 웹 프로그램으로 누구나 인터넷을 통해 웹사이트에 접속하여 본인이 측정하고자 하는 박막의 두께를 쉽게 계산할 수 있다. 프로그래밍 언어로는 파이썬(Python) [4] 중에서도 브이파이썬 (VPython) [5]을 사용하였다.

다음은 Thickogram이 어떻게 유도되고 사용되는지에 대한 간략한 설명이다. 박막(overlayer: o로 표기)에 의해서 기판(substrate: s로 표기)으로부터 유래한 peak intensity Is 는 0 ≤ θ ≤ 60° 범위에서 지수적(exponential attenuation)으로 감소한다. 따라서 peak intensity Is 는 다음과 같이 표현할 수 있다.

Is/ss=expt/λs cos θ

그리고 peak intensity Io

Io/so=1expt/λo cos θ

이다. 여기서, λoλs 는 각각 overlayer와 substrate에서 시작된 overlayer 내에서의 광전자 감쇠 길이이고 soss는 그들의 감도 인자(sensitivity factor)이다. t는 박막의 두께, θ 는 방출 각도(시료 표면의 수직 축에 대해서 상대적으로 측정된, 즉 수직 방출은 θ = 0) 이다. 이 두식을 결합하여 정리하면 다음과 같다.

Io/soIs/ss=1et/λo cos θet/λs cos θ
In Io/soIs/ss=In1et/λo cos θInet/λs cos θ=In1et/λo cos θ+tλs cos θ

그런데

1et/λo cos θ=et/2λo cos θet/2λo cos θ22et/2λo cos θ=sinht/2λo cos θ2et/2λo cos θ

이다. 즉,

In 1et/λo cos θ=In sinht2λo cos θ+In 2t2λo cos θ

이다.

따라서 식 (4) 는 다음과 같이 쓸 수 있다.

In Io/soIs/ss=In sinht2λo cos θ+In 2t2λo cos θ+tλs cos θ

이를 이항하여 정리하면

In Io/soIs/ss+t2λo cos θtλs cos θIn 2=In sinht2λo cos θ
In Io/soIs/ssλoλs12tλo cos θIn 2=In sinht2λo cos θ

이다.

이 때 Peak들의 운동에너지는 스펙트럼으로부터 쉽게 얻을 수 있기 때문에 overlayer내에서의 substrate와 overlayer의 광전자들의 감쇠 길이의 비율을 사용하는 것 보다는 운동에너지의 비율을 사용하는 것이 더 편리하다. 따라서 다음과 같은 식이 성립한다 [6,7]:

λoλs=Eo Es 0.75

최종적으로 Thickogram의 식은 다음과 같이 표현할 수 있다.

In Io/soIs/ssEoEs 0.7512tλo cos θIn 2=In sinht2λo cos θ

이 방정식의 해가 바로 tλo cos θ 이고 이를 통하여 박막의 두께 t를 구할 수 있다.

Figure 1은 0 ≤ θ ≤ 60° 내의 방출 각도에서 substrate와 overlayer의 intensity 데이터로부터 박막의 두께를 구하는 Thickogram의 사용 예를 보여주고 있다. 왼쪽의 수직 축은 substrate Is 와 overlayer Io 으로부터 측정된 peak intensity의 비율의 위치를 나타낸다 (각각은 그것들의 감도인자인 ssso 로 나누었음). Figure 1의 A점으로 표시되어 있다. 오른쪽 아래의 logarithmic grid 곡선은 같은 intensity 비율 그리고 substrate peak와 overlayer peak의 운동에너지 비율, Eo/Es 을 나타내었고 B점으로 표시되어 있다. 두 점 사이에 연필로 그려진 직선과 박막 두께의 크기 를 내포하는 곡선의 교차점이 바로 C점이고 이 값에 λo cos θ를 곱하면 두께 t의 값을 구할 수 있다. 여기서 θ 는 sample 수직 축에서의 방출 각도이고 λo 는 overlayer 내의 광전자 감쇠 길이이다. 식 (11) 의 오른쪽 항은 Fig. 1에서 박막 두께의 크기를 내포하는 곡선으로 그려졌다. 왼쪽 항은 t에 선형적으로 변하는 항으로 A점과 B점을 잇는 직선을 의미한다. 점선으로 그려진 3 이상의 값 영역에서는 박막의 두께를 측정하기 어렵다. Thickogram은 약 500 eV 이상의 운동에너지와 약 60°까지의 방출 각도에 해당하는 넓은 영역에 걸쳐 XPS로 박막의 두께를 측정할 수 있다. 방출 각도가 45° 에 근접하면 거의 정확한 결과를 낼 수 있다.

Figure 1. (Color online) Thickogram for film thickness measurement. Point A on the vertical axis on the left is the measured ratio of peak intensities divided by their sensitivity factors. Point B in the curved logarithmic grid at the lower right is the ratio of the kinetic energies. A straight line drawn between these points intersects the curved thickness scale at point C which is t/λo cos θ.

Equation (11)은 다음과 같이 A,B, x 로 치환할 경우

A=Io/soIs/ss, B=EoEs, x=tλo cos θ

매우 간단히 표시할 수 있다:

InA2B0.7512x=In sinhx2

즉,

InA2B0.7512xIn sinhx2=0

이다. 실험에서 상수 A,B가 주어지면 방정식 (14)의 해 x를 구한다. 컴퓨터 프로그램에서는 함수

fABA,B,x=InA2B0.7512xIn sinhx2

를 정의하고 fAB(A,B, x) = 0 을 구하는 solve_fAB_0(A,B) 를 작성하였다. Figure 2 에 이를 구현하는 파이썬 프로그램이 나타나 있다.

Figure 2. (Color online) Program listing of the function fAB(A,B, x) which is to be sovled for x when the function has the value of zero. The equation solver solve_fAB_0(A,B) which has the same algorithm as in Fig.3 is programmed with the incremental search method.

방정식 (14)의 해는 해석적 방법으로는 구할 수 없기 때문에 수치적 해법을 적용하였으며 증분법(incremental search method)을 사용하였다 [8]. 방정식 f(x) = 0 이 중근이 아닌 실근을 갖는 경우에는 근의 전후에서 함수 f(x)의 부호가 바뀐다. 증분법이란 어떤 초기값 x0 로부터 시작하여, x값을 어떤 작은 증분 Δx씩 계속 증가시켜서 함수값의 부호가 변하게 되는 구간 (xi, xi+1)를 찾아내고 다시 xix0로 설정하고 Δx를 보다 작게 하여 다시 값이 변하는 구간을 찾아낸다. 증분법이란 이와 같은 방법을 계속 되풀이하여 원하는 오차의 한계 내에서 근을 찾아내는 방법이다.

구현한 증분법의 알고리즘이 정확한 것임을 검증하기 위하여 다음의 방정식 f(x) = cos(x)–x = 0 의 해를 파이썬으로 구한 값과 상용 소프트웨어인 Mathematica [9]로 구한 값과 비교하였다. Figure 3이 파이썬으로 구현한 프로그램이고 그 결과는 Fig. 4에 나타나 있다. 구한 값은 x = 0.739085133215 이다. Figure 5는 Mathematica로 구한 값을 보여주고 있는데 그 값이 소수점 12째 자리까지 일치함을 볼 수 있다. 결국 Fig. 2에 작성된 solve_fAB_0(A,B) 의 알고리즘이 정확함을 알 수 있다. 이렇게 구한 x 값에 λo cos θ 를 곱하면 박막의 두께 t의 값을 구할 수 있는 것이다.

Figure 3. (Color online) Python program for the solver of the equation f(x) = cos(x)–x = 0 with the algorithm of the incremental search method. The initial deltax which is the increment has the value of 0.1. The while loop is maintained until the deltax reaches the eps below 1.0e-12.

Figure 4. (Color online) Print out of the results of the python program in Fig. 3 with the algorithm of the incremental search method. The loop is terminated at i = 59 with the value of x = 0.739085133215. The increment deltax has reached the value of 1.0e-13.

Figure 5. (Color online) FindRoot of the equation f(x) = cos(x)–x = 0 with the commercial software of Mathematica. The plot of the functions cos(x) and x in the region between 0 and 1.5 is shown in the graph. The calculated value of x = 0.739085133215 is found with the working precision of 12.

Figure 6은 프로그램의 전체적인 layout을 보여주고 있으며 웹사이트의 주소 [10]는

Figure 6. (Color online) Original layout of the web site https://www.glowscript.org/#/user/jwsslee/folder/Private/program/thickogram [10]. The black vertical axis on the left is the measured ratio of peak intensities divided by their sensitivity factors in logarithmic scale. The green plot is the curve of the function log(sinh(x/2)) on the left of the blue curved logarithmic grid.

이다. Microsoft Edge와 Google Chrome 등과 같은 웹브라우저에서만 실행 가능하며 Microsoft Internet Explorer에서는 실행이 안된다. 프로그램의 소스코드는 웹사이트 [10]의 왼쪽 위에 있는 파란색 링크 “View this program”을 클릭하면 내용을 전부 볼 수 있다. EoB: (eV) 는 overlayer peak의 binding energy (eV)이고 EsB: (eV)는 substrate peak의 binding energy (eV)이다. Io 는 overlayer peak의 intensity이고 Is 는 substrate peak의 intensity이다. So/Ss(Ro) 는 sensitivity factor의 비를 나타낸다. Lambda (L): (nm)는 감쇠길이 λo (nm)이다. Theta: (deg)는 emission angle (deg)을 나타내며 시료 표면의 법선은 0도이다. X-ray Source (eV)는 X-선원으로 Mg Kα (1253.6 eV) 이고 Al Kα (1486.6 eV) 이다. 이들 값들을 모두 입력하고 버튼 “CALCULATE”을 클릭하면 박막의 두께가 계산되어 나온다.

Thickogram이 올바르게 작동하는지를 확인하기 위하여 Cumpson 교수의 논문 [3]의 페이지 404에 나와 있는 Figure 1의 예제를 적용하였다. 결과는 Fig. 7에 보여주 고 있다. x는 1.406074로 박막의 두께는 λo cos θ 즉, (2.07 nm)cos(45°)를 곱하여 t = 2.05809 nm 이다. 논문 [3]에서 종이로 출력된 Thickogram으로 계산한 결과는 2.1 nm 이다. ± 10%의 오차 범위 내에서 일치한다.

Figure 7. (Color online) Final results of the web program for an example to calculate the film thickness shown in the paper of P. J. Cumpson [3]. The intersection of the red straight line with the green curve has the value of 1.406074 which is the numerical result of the program in Fig. 2. The film thickness t is then calculated with the value of intersection multiplied by λo cos θ.

Thickogram을 종이로 출력한 후 연필과 자로 직선을 그어 x 값을 읽어내는 과정을 컴퓨터 프로그램으로 자동화시켰으며 누구나 쉽게 박막의 두께를 계산할 수 있도록 인터넷 상에 오픈소스로 웹사이트를 제공하였다. 시작 웹사이트는 다음과 같으며 [11], Fig. 8에 나타나 있다.

Figure 8. (Color online) Starting web site https://web.hallym.ac.kr/~jwlee/thickogram [11] to open the web program in the web site [10]. The input parameters of the web program are explained at the bottom of the web page.

주의할 것은 web.hallym.ac.kr 서버의 안전이 취약하여 Microsoft Edge나 Google Chrome과 같은 웹브라우저에서는 처음 접속을 할 때 거부한다는 사실이다. 이럴 경우 안전하지 않아도 계속 접속하겠다는 옵션을 선택하면 아무 문제 없이 접속할 수 있다. 보다 많은 연구자들이 본 논문에서 개발한 웹사이트를 이용하기를 바란다.

  1. S. Hofmann, Auger- and X-Ray Photoelectron Spectroscopy in Materials Science. (Springer, Berlin, 2013), p 7.
    CrossRef
  2. J. C. Vickerman and I. S. Gilmore, Surface Analysis - The Principal Techniques. 2nd Edition. (Wiley, Chichester, 2009), p 19.
    CrossRef
  3. P. J. Cumpson, Surf. Interface Anal. 29, 403 (2000).
    CrossRef
  4. Python homepage, https://www.python.org.
  5. VPython homepage, https://vpython.org.
  6. P. J. Cumpson, Surf. Interface Anal. 25, 447 (1997).
    CrossRef
  7. A. Jablonski and C. J. Powell, J. Vac. Sci. Technol. A 15, 2095 (1997).
    CrossRef
  8. C. S. Kim, Visual Computational Physics in Korean. (Bookshill, Seoul, 1999), p 78.

Stats or Metrics

Share this article on :

Related articles in NPSM