... | @@ -174,9 +174,9 @@ Pode-se conferir a [versão do código](https://git.cta.if.ufrgs.br/ALICE-open-d |
... | @@ -174,9 +174,9 @@ Pode-se conferir a [versão do código](https://git.cta.if.ufrgs.br/ALICE-open-d |
|
|
|
|
|
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.
|
|
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).
|
|
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 15 trilhas, projetadas no plano xy, isto é, sem a dimensão longitudinal do detector (a direção z).
|
|
|
|
|
|
![visualizationXY](uploads/5e515d14305968edd19cef4e728b8002/visualizationXY.png)
|
|
![visualizationXY](uploads/9e3eb168a8223e2d22f4a461c5e35f0c/visualizationXY.png)
|
|
|
|
|
|
Deve-se conseguir obter a mesma figura fazendo todo o processo explicado utilizando um dos arquivos ESD da [lista mencionada do CERN Open Data Portal](http://opendata.cern.ch/record/1102). Segue a sequência de passos:
|
|
Deve-se conseguir obter a mesma figura fazendo todo o processo explicado utilizando um dos arquivos ESD da [lista mencionada do CERN Open Data Portal](http://opendata.cern.ch/record/1102). Segue a sequência de passos:
|
|
1. Fazer o download [deste *branch* do repositório AliESD_Example](https://git.cta.if.ufrgs.br/ALICE-open-data/AliESD_Example/tree/Breno), que atualmente contém os programas necessários, e entrar no diretório *sol-analitica* ;
|
|
1. Fazer o download [deste *branch* do repositório AliESD_Example](https://git.cta.if.ufrgs.br/ALICE-open-data/AliESD_Example/tree/Breno), que atualmente contém os programas necessários, e entrar no diretório *sol-analitica* ;
|
... | @@ -186,7 +186,7 @@ Deve-se conseguir obter a mesma figura fazendo todo o processo explicado utiliza |
... | @@ -186,7 +186,7 @@ Deve-se conseguir obter a mesma figura fazendo todo o processo explicado utiliza |
|
|
|
|
|
Para maiores detalhes no algoritmo de desenvolvimento do programa da evolução temporal das trilhas, confira a [apresentação de slides](uploads/0c0b72838bac57c009258eee0220bdd0/Slides-programa.odp).
|
|
Para maiores detalhes no algoritmo de desenvolvimento do programa da evolução temporal das trilhas, confira a [apresentação de slides](uploads/0c0b72838bac57c009258eee0220bdd0/Slides-programa.odp).
|
|
|
|
|
|
É 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.
|
|
É 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. Tal restrição não foi imposta no desenvolvimento da animação das trilhas em três dimensões, descrito a seguir.
|
|
|
|
|
|
### Animação no Blender
|
|
### Animação no Blender
|
|
|
|
|
... | @@ -262,9 +262,9 @@ Analogamente, consulta-se o código para efetuar translações, mudanças na esc |
... | @@ -262,9 +262,9 @@ Analogamente, consulta-se o código para efetuar translações, mudanças na esc |
|
|
|
|
|
Desta maneira, por exemplo, para auxiliar na tarefa mencionada, criou-se a função `subtract(that,fromThat)`, em que dois objetos são dados como entrada - o objeto *that* e o objeto *fromThat*. A função então faz a operação booleana da diferença entre o segundo e o primeiro objeto, isto é, "subtrai" o objeto *that* do objeto *fromThat*, por fim excluindo este último.
|
|
Desta maneira, por exemplo, para auxiliar na tarefa mencionada, criou-se a função `subtract(that,fromThat)`, em que dois objetos são dados como entrada - o objeto *that* e o objeto *fromThat*. A função então faz a operação booleana da diferença entre o segundo e o primeiro objeto, isto é, "subtrai" o objeto *that* do objeto *fromThat*, por fim excluindo este último.
|
|
|
|
|
|
Foi criado um arquivo modelo no Blender, de nome [alice-geometry.blend](uploads/0849d5d717aa8d6c520ea55b3762e4ed/alice-geometry.blend), onde era testado o código para gerar cada peça do detector e, assim, armazenar a geometria junto com o respectivo código salvos. A partir do mesmo, era copiado o código e colado no arquivo `scene_functions.py`, em que constam as funções para gerar os objetos da cena, conforme explicado na seção anterior [Animação no Blender](https://git.cta.if.ufrgs.br/ALICE-open-data/alice-open-data/wikis/home#anima%C3%A7%C3%A3o-no-blender). As definições das funções de simplificação do código - como a função `subtract()` -, todavia, foram adicionadas a um novo arquivo chamado [blender_functions.py](https://git.cta.if.ufrgs.br/ALICE-open-data/alice-blender-animation/blob/master/animate/blender_functions.py), [acrescentado também ao repositório principal do projeto](https://git.cta.if.ufrgs.br/ALICE-open-data/alice-blender-animation/commit/9a4e8e0b07a7be0eb15a01abdb14700cab1532cf), com a finalidade de maior organização dos códigos.
|
|
Foi criado um arquivo modelo no Blender, de nome [alice-geometry.blend](uploads/e4b1b10fa1a719b0af5b57762d740a78/alice-geometry.blend), onde era testado o código para gerar cada peça do detector e, assim, armazenar a geometria junto com o respectivo código salvos. A partir do mesmo, era copiado o código e colado no arquivo `scene_functions.py`, em que constam as funções para gerar os objetos da cena, conforme explicado na seção anterior [Animação no Blender](https://git.cta.if.ufrgs.br/ALICE-open-data/alice-open-data/wikis/home#anima%C3%A7%C3%A3o-no-blender). As definições das funções de simplificação do código - como a função `subtract()` -, todavia, foram adicionadas a um novo arquivo chamado [blender_functions.py](https://git.cta.if.ufrgs.br/ALICE-open-data/alice-blender-animation/blob/master/animate/blender_functions.py), [acrescentado também ao repositório principal do projeto](https://git.cta.if.ufrgs.br/ALICE-open-data/alice-blender-animation/commit/9a4e8e0b07a7be0eb15a01abdb14700cab1532cf), com a finalidade de maior organização dos códigos.
|
|
|
|
|
|
![Screenshot_from_2020-03-20_20-51-27](uploads/f781bba8c04a9d724b6e3651d6f1dadc/Screenshot_from_2020-03-20_20-51-27.png)
|
|
![Screenshot_from_2020-04-16_21-36-14](uploads/44b4515642b1384ed8bd9570aff98f62/Screenshot_from_2020-04-16_21-36-14.png)
|
|
|
|
|
|
Vale lembrar que as cores são meramente ilustrativas e não representam a realidade.
|
|
Vale lembrar que as cores são meramente ilustrativas e não representam a realidade.
|
|
|
|
|
... | @@ -275,7 +275,7 @@ A função `addALICE_Geometry()` é aquela dentro do arquivo `scene_functions.py |
... | @@ -275,7 +275,7 @@ A função `addALICE_Geometry()` é aquela dentro do arquivo `scene_functions.py |
|
|
|
|
|
#### TPC - Time Projection Chamber
|
|
#### TPC - Time Projection Chamber
|
|
|
|
|
|
O TPC foi a primeira peça adicionada à animação, presente desde as [primeiras versões do projeto da animação](https://git.cta.if.ufrgs.br/ALICE-open-data/alice-blender-animation/commit/97bfee727daac019f638e5ef7ffc19d2d1903c38). Anteriormente, porém, como pode ser observado no link, tratava-se apenas de um grande cilindro com o raio e comprimento próximos às dimensões reais. Na nova geometria, o TPC está representado por dois cilindros concêntricos, um para representar a parte ativa de sua câmara interna e outro para a externa.
|
|
O TPC foi a primeira peça adicionada à animação, presente desde as [primeiras versões do projeto da animação](https://git.cta.if.ufrgs.br/ALICE-open-data/alice-blender-animation/commit/97bfee727daac019f638e5ef7ffc19d2d1903c38). Anteriormente, porém, como pode ser observado no link, tratava-se apenas de um grande cilindro com o raio e comprimento próximos às dimensões reais. Na seguinte geometria, o TPC está representado por dois cilindros concêntricos, um para representar a parte ativa de sua câmara interna e outro para a externa.
|
|
|
|
|
|
![Screenshot_from_2020-03-23_14-36-52](uploads/8e3603eccf47f30f12daacddcffd035f/Screenshot_from_2020-03-23_14-36-52.png)
|
|
![Screenshot_from_2020-03-23_14-36-52](uploads/8e3603eccf47f30f12daacddcffd035f/Screenshot_from_2020-03-23_14-36-52.png)
|
|
|
|
|
... | @@ -286,6 +286,10 @@ O TPC foi a primeira peça adicionada à animação, presente desde as [primeira |
... | @@ -286,6 +286,10 @@ O TPC foi a primeira peça adicionada à animação, presente desde as [primeira |
|
|
|
|
|
![Screenshot_from_2020-03-23_14-33-10](uploads/ae0fa17a742778e2d25c27e07a73fe69/Screenshot_from_2020-03-23_14-33-10.png)
|
|
![Screenshot_from_2020-03-23_14-33-10](uploads/ae0fa17a742778e2d25c27e07a73fe69/Screenshot_from_2020-03-23_14-33-10.png)
|
|
|
|
|
|
|
|
No entanto, para fins da animação, foi optado por manter a representação do TPC como um cilindro único:
|
|
|
|
|
|
|
|
![Screenshot_from_2020-04-16_21-31-23](uploads/01ac7047fb6a12315e301b017665c934/Screenshot_from_2020-04-16_21-31-23.png)
|
|
|
|
|
|
#### EMCal - Electromagnetic Calorimeter
|
|
#### EMCal - Electromagnetic Calorimeter
|
|
|
|
|
|
![Screenshot_from_2020-03-23_14-41-33](uploads/32b4e5dbc41694935a2d596a638376ad/Screenshot_from_2020-03-23_14-41-33.png)
|
|
![Screenshot_from_2020-03-23_14-41-33](uploads/32b4e5dbc41694935a2d596a638376ad/Screenshot_from_2020-03-23_14-41-33.png)
|
... | | ... | |