Grupo de estudos dos Dados Abertos do Experimento ALICE
ALICE: A Large Ion Collider Experiment, um experimento de física de partículas do Large Hadron Collider, CERN
Fonte: http://aliceinfo.cern.ch/Public/ev411_run244918.png
Descrição do Projeto
O projeto visa à familiarização e divulgação das técnicas de análise de dados do experimento ALICE, um dos detectores do LHC, desenvolvido com o objetivo de estudar uma fase da matéria denominada quark gluon plasma. Todo ano, o LHC realiza séries de colisões entre pacotes de núcleos de átomos de chumbo (Pb), que são pesados o suficiente para liberar os quarks contidos dentro de seus prótons e nêutrons e criar novas partículas, ao se chocarem. O detector ALICE recolhe informação de tais colisões, como partes das trajetórias de certas partículas, sua posição inicial e carga. O projeto em questão busca construir conhecimento acerca da forma como são interpretados e utilizados os dados, sendo um dos principais objetivos a elaboração de um sistema de visualização 3D das colisões chumbo-chumbo que serve, sobretudo, para fins didáticos e de aprendizagem.
Principais Características
- Este grupo de estudos utilizará os dados do Experimento ALICE disponíveis no CERN Open Data Portal
- Os eventos estudados englobam princípios da Física de Partículas Elementares e da Teoria da Relatividade Especial.
Atividades Preliminares
Para fins de familiarização com os conteúdos necessários para o entendimento do projeto, são relevantes os arquivos e links disponíveis abaixo.
- Introdução ao Plasma de Quarks e Glúons
- Introdução ao Detector ALICE
Histórico
Data | Evento |
---|---|
31/07/19 | Apresentação do projeto e seus objetivos |
01/08/19 | Definição da estrutura da Wiki e Tarefas |
14/08/19 | Criação de exemplo que processa os arquivos AliESDs.root no aliroot |
16/08/19 | Encontro do Grupo |
02/09/19 | Atualização do código exemplo para inserir coordenadas dos vértices das trilhas |
07/09/2019 | Implementação de programa em C para gerar a evolução das posições das partículas no tempo |
13/09/2019 | Apresentação de slides que explica a estrutura do programa em C |
30/09/2019 | Criado repositório Breno que diferencia modelo padrão do código exemplo do modelo gerado para utilização do programa em C para gerar a evolução das posições das partículas no tempo |
01/10/2019 | Apresentação de slides que resume o progresso do projeto até o momento, para apresentação na Reunião Geral do CTA |
02/10/2019 | 2º Encontro do Grupo |
11/10/2019 | Adicionado no repositório o programa em C para gerar a evolução das posições das partículas no tempo, agora considerando efeitos relativísticos. |
Tarefas
Abaixo, são descritas as tarefas propostas para o decorrer do projeto, que serão atualizadas na medida em que for obtido maior grau de precisão de seus objetivos. O progresso das mesmas, bem como a tarefa atual, está disponível na seção Tarefas.
Tarefa 0: Organizar a documentação do projeto.
Esta Wiki é feita a partir do Modelo de Documentação Padrão do CTA. O registro dos progressos serão feitos nas Tarefas, enquanto os sumários dos encontros do grupo estarão nos Fóruns.
Tarefa: Familiarização com as ferramentas de análise de dados. Listar opções e documentar procedimentos de uso. Enquanto as ferramentas necessárias para uso dos dados abertos estão descritas no CERN Open Data Portal, pode ser utilizado o Aliroot oficial de análise de dados da colaboração ALICE - cujos links são os dois primeiros abaixo -, apesar de talvez nem tudo estar acessível publicamente.
-
- Raw-data Display and Visual Reconstruction Validation in ALICE - Matevˇz Tadel
Tarefa: Geração de gráficos, tabelas e estatísticas dos dados. Primeiramente, visa-se executar exemplos com um evento isolado, para depois generalizar os resultados para uma infinidade de eventos. Cada choque de pacotes de núcleos atômicos constitui um evento.
- Distribuição de multiplicidade de partículas dos eventos, distribuição de p_t (momento relativístico transversal) e posições dos vértices.
- Caracterização das trilhas: tipo de partícula e variáveis cinemáticas.
Tarefa: Criação das trilhas no Blender.
- Exemplos (alguns são simulações)
- Ver último minuto de Preparing for heavy ion collisions
- Quark gluon plasma (QGP) @ RHIC
- Quark Gluon Plasma (QGP) Video 1
- Quark Gluon Plasma (QGP) Video 2
- CERN-MOVIE-2010
- Heavy Ion Collision Event Animation (ATLAS)
- ALICE Animations
Desafio da primeira fase do Grupo de Estudos: A partir dos conhecimentos adquiridos com as etapas anteriores, criar visualizações 3D dos dados obtidos pelo detector ALICE. As visualizações serão utilizadas em atividades de divulgação científica.
Documentação
A análise de dados provenientes das colisões de partículas do detector ALICE pode ser feita por meio de duas principais abordagens: através de uma plataforma de máquina virtual, já previamente configurada com uma interface que torna a análise intuitiva e mais direta, ou através de um software de análise de dados, chamado Aliroot, que com o auxílio de programas na linguagem C++, obtém a informação diretamente dos arquivos disponíveis. Ao passo que a máquina virtual torna os processos mais simplificados, a abordagem do software proporciona maior capacidade de familiarização com o quadro geral do armazenamento de dados e sua obtenção, portanto o projeto dedica-se especialmente a este último método. De qualquer maneira, estão documentadas aqui características de ambas as abordagens.
Abordagem do software Aliroot
Conhecida como ALICE Off-line Project, por não precisar de conexão à internet durante a análise dos dados, consiste essencialmente no download de arquivos do tipo ESD - Event Summary Data - com extensão .root, diretamente do portal de dados abertos do CERN, e em seguida na execução de programas específicos para coletar e fazer reconstruções e simulações com os dados desejados. Cada arquivo contém informações a respeito de uma série de eventos, sendo cada evento definido como uma colisão de pacotes de partículas (que podem se tratar de colisões próton-próton ou chumbo-chumbo). Como mostra a imagem abaixo, a reconstrução do evento é feita com a ajuda de uma simulação prévia:
Fonte: http://alice-offline.web.cern.ch/Activities/Reconstruction/index.html
O próprio CERN disponibiliza páginas que introduzem a análise no ALICE e também a plataforma de análise ALICE. Foi desenvolvida, também, de maneira extraoficial, uma abordagem alternativa utilizando a linguagem de programação Rust.
O grupo de pesquisa instalou o software Aliroot seguindo as instruções disponíveis no repositório AliESD_Example deste GitLab. É recomendável clonar o repositório (usando o comando git clone https://git.cta.if.ufrgs.br/ALICE-open-data/AliESD_Example.git
) em um diretório de nome alice, onde também deve ser instalado o Aliroot. O último passo no arquivo README.md, referente à instrução de instalação, pede para executar o macro runAnalysis.C
, que se trata de um código exemplo, na linguagem C++, que realiza uma análise sobre um determinado arquivo ESD, que deve ser baixado diretamente do CERN Open Data Portal. Para teste, recomenda-se os arquivos da amostra Pb-Pb data sample at the collision energy of 2.76 TeV per nucleon pair from run number 139038. Tais arquivos ESD devem ser colocados no diretório clonado do repositório do Git, de nome AliESD_Example, e devem ser referenciados no macro runAnalysis.C
na linha
chain->Add("AliESDs.root");
em que "AliESDs.root"
é o arquivo ESD. Podem ser adicionados outros arquivos ESD; basta repetir o comando e acrescentar outros arquivos à cadeia.
O código que determina o tipo de análise que será feita, no entanto, está no arquivo AliAnalysisTaskMyTask.cxx
. Este faz um loop nas trilhas das partículas resultantes da colisão entre íons e escreve arquivos com informações relevantes para a caracterização das mesmas, como o momentum nas três dimensões espaciais e a carga. A função que deve ser editada para alterar os dados extraídos é a função UserExec
, da classe AliAnalysisTaskMyTask
.
Para uma melhor referência dos dados que podem ser obtidos no arquivo ESD, pode-se usar as estruturas chamadas TTree, espécie de plataforma desenvolvida pelo CERN para armazenar informações de experimentos com altas energias. Basta acessar o Aliroot e, em seguida, abrir o TBrowser, no qual podem ser reconhecidos os membros de arquivos do tipo .root, conforme abaixo:
aliroot
new TBrowser
Isso abrirá uma janela de navegação; deve ser selecionado algum arquivo ESD, como ilustra a imagem.
Mais informações a respeito das funções criadas para obter os dados dos arquivos ESD podem ser encontradas nas bibliotecas do GitHub do Aliroot. As principais bibliotecas utilizadas foram:
- AliESDEvent.h
- AliESDVertex.h
- AliESDtrack.h
- AliExternalTrackParam.h (porém essa não se encontra no mesmo endereço que as outras)
Podem ser úteis, também, os seguintes itens:
- Slides do ALICE Offline tutorial (Slide 30 mostra uso de PID - Particle Identification)
- Dicas do uso do Aliroot
- Códigos relevantes:
- Unidades de medida utilizadas na Física de Partículas:
Evolução das partículas no tempo
A partir da edição do código exemplo mencionado acima, na função UserExec
do arquivo AliAnalysisTaskMyTask.cxx
, foi executada uma análise para escrever arquivos texto contendo dados relevantes relacionados às informações gerais de cada evento e às trilhas destes, chamados respectivamente esd-summary.dat
e esd-detail.dat
.
O primeiro contém o número de trilhas do evento, as coordenadas x, y e z do vértice da colisão, de acordo com o sistema de coordenadas cartesianas utilizado, e o módulo do campo magnético gerado pelo solenoide que envolve a região.
[IMAGEM COM O SISTEMA DE COORDENADAS]
O segundo contém a massa da partícula associada a cada trilha, bem como sua carga e componentes do momentum linear e velocidade nas direções x, y e z no instante da colisão - também de acordo com o sistema de coordenadas, sendo usados valores negativos para sentidos contrários ao de crescimento de cada eixo.
Pode-se conferir a versão do código AliAnalysisTaskMyTask.cxx
que gera tais arquivos. Note que a velocidade não é obtida diretamente de uma função do Aliroot, mas calculada a partir dos valores de momentum linear usando cálculos de relatividade, pois tratam-se de partículas em velocidades próximas à da luz.
Através destas informações básicas é possível construir um modelo simplificado da evolução de cada partícula no tempo, utilizando equações do Eletromagnetismo. O modelo é simplificado pois não inclui decaimento de partículas ou quaisquer tipo de interações com a matéria ou mesmo entre elas próprias durante sua propagação. Dito isso, foi elaborado um programa na linguagem C - como pode-se dizer, um subset da linguagem C++ -, de nome sol-analitica.tpc.c
, que lê os arquivos gerados esd-summary.dat
e esd-detail.dat
e gera um terceiro arquivo texto de nome positions.txt
, que contém a evolução das trajetórias das partículas no tempo. Este último possui cinco colunas: a primeira, com o índice da trilha; a segunda, com vários instantes de tempo; a terceira, quarta e quinta com as respectivas coordenadas em x, y e z daquela trilha. As coordenadas das partículas são representadas apenas no interior do raio externo do TPC.
Assim, pode-se gerar gráficos com uma "aproximação", pelos motivos mencionados, de um evento selecionado a partir de um arquivo ESD. A imagem abaixo é a representação das trajetórias de um evento com 24 trilhas, projetadas no plano xy, isto é, sem a dimensão longitudinal do detector (a direção z).
[IMAGEM MENCIONADA COM UNIDADES!!!]
Deve-se conseguir obter a mesma figura fazendo todo o processo explicado utilizando o arquivo ESD de número N da lista mencionada do CERN Open Data Portal. Segue a sequência de passos:
- Clonar o repositório de AliESD_Example, que contém os programas necessários, e entrar no diretório sol-analitica;
- Com o Aliroot instalado (instruções em README.md), executar o programa
runAnalysis.C
no ambiente ROOT do ALICE; - Compilar e executar o programa
sol-analitica-tpc.c
; - Plotar um gráfico das colunas 3 e 4 do arquivo
positions.txt
, que contém as coordenadas x e y das trilhas.
[EDITAR APRESENTAÇÃO DE SLIDES QUE EXPLICA O PROGRAMA] Para maiores detalhes no algoritmo de desenvolvimento do programa da evolução temporal das trilhas, confira a apresentação de slides.
É passível de observação que todos os códigos foram programados a fim de selecionar um evento com um número "razoável" de trilhas - entre 15 e 30 - a partir dos ESDs, de maneira a impedir uma poluição visual da representação gráfica do mesmo, no caso de um número excessivamente grande de trilhas, ou a análise de um evento com um número demasiado baixo de trilhas.
[EM BREVE SEÇÃO SOBRE OS HISTOGRAMAS (com link para instruções de histogramas)]
Abordagem utilizando máquina virtual
É o método indicado pelo CERN para análise dos dados abertos disponíveis no portal.
Próximos Passos
Investigar a reconstrução analítica das trilhas, através da informação resultante dos clusters do TPC (Time Projection Chamber) e, em seguida, incorporá-las ao exemplo de análise. Para isso, deve-se procurar nas bibliotecas do GitHub do Aliroot as funções desejadas. Busca-se também aperfeiçoar o programa em C que fornece a evolução das posições das partículas de um evento no tempo, conforme disponível nas Tarefas, para incluir efeitos relativísticos e campo magnético variável. Acessar A fast introduction to the tracking and to the Kalman filter. Buscamos, também, construir histogramas com as informações a respeito dos tipos de partícula que representa cada trilha da colisão, utilizando as instruções do CERN ou códigos em R ou Python.
Glossário
Aqui são descritos termos importantes para o assunto da pesquisa.
A partir de ALICE Offline Reconstruction:
- Dígito: Sinal digitalizado obtido por uma placa sensível de um detector em um dado instante de tempo.
- Cluster: Conjunto de dígitos adjacentes (no espaço e/ou tempo) que foram presumivelmente gerados pela mesma partícula atravessando o elemento sensível de um detector.
- Ponto do espaço reconstruído: Estimativa da posição onde uma partícula atravessou o elemento sensível de um detector (frequentemente, isso é feito calculando o centro de gravidade do cluster).
- Trilha reconstruída: Conjunto de cinco parâmetros (como a curvatura e os ângulos com respeito aos eixos coordenados) da trajetória da partícula junto com a matriz de covariância estimada em um dado ponto do espaço.
Estudos complementares
- Particle Tracking
- Particle Identification
- Quarkonia Production
- ALICE MasterClasses
- Theory of Special Relativity
- C++ Material
- Git tutorials
- Python
- R
Contatos
- Mantenedor do projeto: Rafael Pezzi
- Gerente do projeto: Breno Lemos
- Outros contribuidores: Lucas Schnorr, Pedro Widniczck