Você está na página 1de 13

Faculdade de Ciências e

Tecnologias da Universidade Nova


de Lisboa

Simulação de um espectrómetro
XRF planar

Aluno: Orientador:
João Fonseca Prof.Pedro Amaro

27 de Fevereiro de 2018

.
Conteúdo
1 Introdução 2

2 Tarefas 2
2.1 Tarefas Gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Tarefas Individuais . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2.1 Implementação de um módulo de amostra . . . . . . . 4
2.2.2 Analise de seis elementos puros . . . . . . . . . . . . . 8

3 Conclusão 11

1
1 Introdução
Este estágio tem como objetivo simular um espectrómetro de fluorescência
de raios X.
Para a construção da simulação, isto é, simular computacionalmente os
fenómenos físicos inerentes ao aparelho, recorreu-se ao software Geant 4 [1]
que através das suas bibliotecas em c++ permitiu construir todos os fenó-
menos físicos e geometrias do espectrómetro, detetor e amostras. Quanto à
análise de dados foi utilizado como ferramenta o programa ROOT [2], que
permitiu obter os espetros caraterísticos dos elementos devido á transição
dos eletrões entre os níveis atómicos de energia.
Este estágio abriu algumas portas quer para o mundo da física experi-
mental, quer para o mundo da física computacional. Física experimental
pela necessidade de compreender os conceitos básicos da espetroscopia de
fluorescência de raios X e física computacional a partir da aprendizagem do
programa de simulação Geant 4 [1] (com decurso de todo o estágio), que
depois de consolidados alguns conhecimentos em c++, permitiu a simulação
do exemplo B1 fornecido pelo Geant 4 [1] e posteriormente a construção das
geometrias do tubo de raios X, amostra e detetor. Consequentemente e com
auxílio do programa ROOT [2] conseguiu-se obter os histogramas típicos da
fluorescência de raios X. O programa GIT [3] também foi uma ferramenta ful-
cral permitindo a coordenação das diferentes versões de código pertencentes
aos elementos dos grupo.
No decorrer dos trabalhos, o grupo juntamente com o professor responsá-
vel optou por separar o volume de trabalho em dois, sendo que parte seria rea-
lizada pelos diferentes membros em conjunto e outra parte seria sub-dividida
e atribuída como trabalho individual para cada um dos membros do grupo
apesar da cooperação entre membros nas tarefas individuais.

2 Tarefas
2.1 Tarefas Gerais
Nesta secção farei uma breve descrição dos trabalhos realizados em con-
junto durante as semanas.
• Semana 1:
Iniciou-se o trabalho com os básicos, isto é :

2
– Aprendizagem da linguagem de programação c++, sendo que grande
parte da informação proveio da plataforma online SoloLearn.
– Aprendizagem dos conceitos básicos do programa Geant 4 [1], a
maior parte dos conteúdos proveio do documento Book For Appli-
cation Developers. Encontram-se no livro as informações necessá-
rias para correr o exemplo B1 e compreender melhor as classes e
os respetivos métodos necessários para utilizar o programa.
– Aprendizagem introdutória do programa ROOT [2] através do li-
vro A ROOT Guide For Beginners.
– Simulação do exemplo B1.

Figura 1: Geometrias obtidas no exemplo B1

– Implementação de geometrias simples nomeadamente World, Amos-


tra, Recetor/Detetor e Emissor. Posteriormente foram criados
os materiais da Amostra e do Recetor/Detetor sendo este último
constituído por vácuo.
– Definição de uma classe para gerir os materiais: XRFMaterials
– Inclusão das bibliotecas do ROOT no ficheiro CMakeList.txt de
maneira a conciliar as suas bibliotecas com o Geant 4 [1].

3
• Semana 2:

– Continuação da Aprendizagem do programa Geant 4 [1].


– Obtenção de espetros de fluorescência de Raios X.

• Semana 3:

– Resolução de bugs e melhorias ao programa.


– Testes e alterações das PhysicsLists, que de forma lata é a classe
que contem a lista de processos físicos associados a cada partícula.
Desta forma, optou-se pela PhysicsLists EmLowEP uma vez que
é dedicada a física de baixas energias.

• Semana 4:

– Continuação da resolução de problemas e melhorias no programa.

2.2 Tarefas Individuais


Passo a descrever com mais detalhe as tarefas individuais que me foram
atribuídas:

2.2.1 Implementação de um módulo de amostra


I Introdução
Inicialmente a minha tarefa seria implementar um modulo de uma amos-
tra com diferentes composições e elementos atómicos. Era necessário imple-
mentar código que permitisse passar para o programa a espessura de cada
camada das amostras, a composição e elementos atómicos. Informações que
estariam em dois ficheiros externos do tipo txt.
Primordialmente os parâmetros era introduzidos manualmente, isto é, o
utilizador estava sujeito a introduzir ou eliminar a variável thickness(espessura
da camada) mediante o numero de camadas que pretendia, assim como criar
a posição espacial da camada.
Mediante estas barreiras procurei fazer algumas alterações, de modo a
ser apenas necessário inserir o nome de um ficheiro (ficheiro que contém as
espessuras, path para o ficheiro da composição de cada camada e respetivo
nome) como parâmetro de uma função.

4
II Ficheiros
Os ficheiros a tratar apresentam a seguinte forma :

Figura 2: No lado direito ficheiro com as espessuras, no lado esquerdo ficheiro


com os materiais

III Métodos e variáveis da Classe XRFMaterials


Na classe XRFMaterials foram criadas duas estruturas publi-
cas nomeadamente:

• struct Info
Variáveis :
– G4double thickness: Espessura da camada.
– G4String matFileName: Nome do ficheiro que contém a
composição da camada.
– G4String matFilePath: Path para o ficheiro da composi-
ção.
• struct Amostra
Variáveis:
– G4Material* material : Objecto do tipo G4Material.
– G4double densidade: Densidade da camada.

5
– G4int numeroElementos: Número de elementos presentes
na camada.

Posteriormente foram declarados como privados dois vetores


de estruturas, referentes às estruturas anteriores.
Para poder aceder com facilidade aos dados necessários foram
criados os seguintes métodos :

• G4int getNumeroDeAmostras():
Retorna o número de amostras.
• G4double getThickness(int numeroDaAmostra):
Retorna a espessura da amostra retornando o vetor infoA-
mostras[numeroDaAmostra].matFileName;
• G4String getMatFileName(int numeroDaAmostra):
Retorna o nome do ficheiro com os materiais de forma análoga
ao método anterior.
• G4String getMatFilePath(int numeroDaAmostra) :
Retorna o path do ficheiro de materiais.
• G4Material* GetMaterial(int numeroDoMaterial):
Retorna o G4Material.
• void abreAmostras(G4String nomeDoFicheiro):
Função que recebe como parâmetro um ficheiro, especifica-
mente o ficheiro onde estão as informações a passar para a
struct Info.
• void criaMateriais():
É criado um novo material associado a cada camada da amos-
tra.

6
IV Métodos e variáveis da classe XRFDetectorConstruction
Na classe XRFDetectorConstruction foi criada uma estrutura
privada :
• struct World
Variáveis :
• G4Material* worldMaterial ;
• G4Box* solidWorld ;
• G4LogicalVolume* logicWorld ;
• G4VPhysicalVolume* physWorld ;
Os métodos criados foram :
• void criaWorld(G4NistManager* nist);
Cria o primeiro mundo.
• void criaPosicoes(XRFMaterials obj);
Função que cria as posições das amostras.
• void criaGeometriaAmostras(XRFMaterials obj,G4LogicalVolume*
logicWorld);
Função que cria a geometria das amostras.
V Conclusão
Feitas estas alterações, é apenas necessário alterar no topo da
página do header file XRFMaterials.h a constante NUMERODE-
AMOSTRAS para o numero de amostras que se pretende e inserir
como parâmetro da função void abreAmostras(G4String nomeDo-
Ficheiro) o nome do ficheiro que contém a(s) espessura(s) da(s)
camada(s).

7
2.2.2 Analise de seis elementos puros
I Introdução
Na fluorescência de raios X gerados por uma fonte, estes irradiam em
direção a uma amostra. Neste caso, a fonte é um tubo de raio X.
Os elementos presentes na amostra vão emitir radiação X fluorescente,
com energias discretas características de cada elemento. Através da medição
das energias emitidas pela amostra é possível determinar que elementos estão
presentes.
O modelo clássico do átomo prevê um núcleo positivamente carregado
com protões e partículas sem carga, os neutrões, rodeados por eletrões agru-
pados em orbitais discretas. As energias dos eletrões dependem da órbita
que ocupam e do elemento a que pertencem. Quando um átomo é bombar-
deado por partículas como os fotões da radiação X, se a energia for suficiente
é possível expelir um eletrão do átomo. A orbital fica com uma lacuna e o
átomo, de modo a restaurar a configuração original, substitui a lacuna por
um eletrão de uma camada exterior.
Os raios X emitidos pela amostra dependem da diferença de energia entre
a lacuna e a orbital do eletrão que a preenche. Cada elemento possui níveis de
energia característicos, porém os espetros obtidos diferem de elemento para
elemento, pretendendo-se assim verificar se as diferenças nos picos e fundo
dependem de Z ou da densidade.

II Produção caraterística de radiação de fluorescência de raios X


As camadas eletrónicas são diferentes, a orbital mais próxima do núcleo
denomina-se orbital k , seguido pelas orbitais L,M etc. As orbitais possuem
também sub-orbitais.
Para expelir um eletrão, a energia incidente deve ser superior à energia de
ligação do eletrão. Quando este é expelido a radiação é absorvida e quanto
maior a radiação, maior a fluorescência. Contudo, se a energia for muito
alta, muitos dos fotões não vão ser absorvidos e apenas poucos eletrões vão
ser removidos. Na imagem abaixo podemos verificar que energias elevadas são
pouco absorvidas e consequentemente produzem baixa fluorescência. Quando
a energia de fluorescência é baixa e se aproxima da energia de ligação, verifica-
se que a absorção aumenta. A fluorescência é mais elevada quando a energia
é ligeiramente acima da energia de ligação.

8
Figura 3: Absorção versus energia

O rendimento da fluorescência é a razão entre o numero de fotões fluo-


rescentes emitidos e o numero de lacunas.
A figura abaixo mostra o rendimento de fluorescência em função do nu-
mero atómico para as orbitais K e L. É visível que o rendimento é inferior
para elementos leves, explicando a dificuldade de medi-los.

Figura 4: Rendimento de fluorescência para os eletrões k e L.Brouwer, P.


(2003). Theory of XRF. Almelo: PANalytical.

9
III Analise de seis elementos puros
Através do programa Geant 4 [1], foram simuladas seis amostras de ele-
mentos puros para o mesmo perfil de tubo. Confirma-se que elementos mais
leves como o alumínio e o magnésio possuem um fundo maior e é difícil de-
tetar os picos de fluorescência. Todavia, os elementos mais pesados possuem
espetros mais bem definidos, com menor fundo e picos caraterísticos fáceis
de observar.

Figura 5: Plot do numero de contagens dos seis elementos em função da


energia.

10
3 Conclusão
Os objetivos delineados foram alcançados. A simulação encontra-se fun-
cional, produzindo espectros que traduzem corretamente os modelos físicos
e geometrias presentes. São realizados histogramas que revelam valores pró-
ximos dos valores tabelados.
Foi possível consolidar vários conceitos, como a linguagem de progra-
mação c++ e a espetroscopia de fluorescência de raio X. Esta simulação
permite planear previamente os resultados de experiências, facilitando o pla-
neamento das mesmas. A aprendizagem dos programas ROOT [2] e Geant 4
[1] mostrou-se desafiante na medida em que se inseria numa área pouco tra-
balhada ao longo do percurso académico até ao momento. Os conhecimentos
adquiridos na área da Física Computacional são indubitavelmente uma mais
valia nos dias de hoje.

11
Referências
[1] Geant4.web.cern.ch. (2018). Geant4 Book For Ap-
plication Developers — Book For Application De-
velopers 10.4 documentation. [online] Available at:
http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/ForApplicationDeveloper/

[2] Root.cern.ch. (2018). ROOT a Data analysis Framework | ROOT a Data


analysis Framework. [online] Available at: https://root.cern.ch/

[3] Git-scm.com. (2018). Git. [online] Available at: https://git-scm.com/

12