33
Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Embed Size (px)

Citation preview

Page 1: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC

Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC

Alexandre A. P. Suaide

Page 2: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

MotivaçãoMotivação

• Sistemas complexos de deteção– Muitos detetores, muitos parâmetros de deteção (centenas)

• Detetor de neutrons + detetores de partículas + coincidências

– Múltiplos crates de CAMAC

• O SPM não funciona...

Page 3: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

RequisitosRequisitos

• Compatível com hardware existente (CAMAC)• Arquivo de dados compatível com o sistema atual (L002, .FIL)• Suporte a altas taxas de transferência

– 3-4k eventos/s com 512 parâmetros/evento

• Suporte a vários crates• Grande flexibilidade de histogramação• Grande flexibilidade de análise e seleção de eventos• Fácil manutenção e potencial para crescimento• Interface gráfica

– Totalmente acessível a partir de cliques de mouse

• Programação moderna – c++ orientado a objetos

– Desenvolvido utilizando as bibliotecas do ROOT

Page 4: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

ROOT – Uma das ferramentas mais poderosas em termos de análise de dados

ROOT – Uma das ferramentas mais poderosas em termos de análise de dados

• Desenvolvido no CERN especialmente para a comunidade de Física Nuclear

• Poderosas ferramentas de análise de dados, histogramação, simulação de eventos, desenvolvimento de GUI e desenho

• Totalmente escrito em c++– Disponível gratuitamente para várias plataformas

• windows, linux, AIX, Sun, Alpha, etc

– Interpretador e compilador c++ gratuito

• Amplamente utilizado e testado nos maiores laboratórios e universidades do mundo– CERN, LBL, BNL, FermiLab, LBL, GSI, MSU, USP, etc...

Page 5: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

ROOT – Um pouco de propagandaROOT – Um pouco de propaganda

• Várias opções de histogramas e gráficos em 1 dimensão

Page 6: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

ROOT – Um pouco de propagandaROOT – Um pouco de propaganda• Várias opções de histogramas em 2 dimensões

Page 7: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

SPMRoot – um novo sistema de aquisiçãoSPMRoot – um novo sistema de aquisição

• Baseado em uma versão modificada do driver do CAMAC escrito pelo Ribas – Compatível com o SPM– Buffers de memória maiores– Proteções contra overflow de memória– Habilitação de até 4 crates

• Uso intensivo do ROOT para GUI, IO, histogramação, etc.

• Possibilidade de ter um trigger de software• Velho e bom EVS/ADAC combo• Histogramação feita através de uma rotina em c++

definida pelo usuário– Alta flexibilidade

Page 8: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

Estrutura da aquisição de dadosEstrutura da aquisição de dados

SPMRoot

CamacIO

PelIO

ScanRoot

PelTools

Driver CAMAC

ROOT

Interface comHistogramaçã

oe

trigger

Pacote deanálise de

dados

IO

Page 9: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

Como funcionaComo funciona

Idle100 ms

Processa requisição

Tem Evento?

S

Passoutrigger?

Gravaevento

histograma

1000 eventos?

S S

S

N N

N

Page 10: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

Verifica se há evento no bufferVerifica se há evento no buffer

Idle100 ms

Processa requisição

Tem Evento?

S

Passoutrigger?

Gravaevento

histograma

1000 eventos?

S S

S

N N

N

• Driver do CAMAC (Ribas + algumas modificações)– O driver do CAMAC responde ao LAM– Gera um evento de acordo com o definido pelo usuário (EVS)– Armazena em um buffer de memória

• Tamanho total de 256 kBytes– Dividido em buffers menores, cujo tamanho é definido pelo

usuário» Os dados são transferidos para o programa somente

quando há mini-buffers cheios

– As modificações envolveram o tamanho do buffer e algumas proteções para overflows que estavam ocorrendo para altas taxas de contagem de eventos muito grandes e múltiplos crates

Tem Evento?

Page 11: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

Trigger a nível de softwareTrigger a nível de software

Idle100 ms

Processa requisição

Tem Evento?

S

Passoutrigger?

Gravaevento

histograma

1000 eventos?

S S

S

N N

N

Passoutrigger?

• L2Trigger (Level 2)– Executado a nível de software– Decide se o evento vai ser gravado ou não

• Código programado pelo usuário em c++/ROOT– Limitado somente pela criatividade do usuário

– Opções para diminuir o tamanho do arquivo de dados

• Gravar somente eventos em coincidência• Gravar eventos de cuja partícula tenha uma certa

massa, Z, etc

– Opcional...

Page 12: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

Grava eventoGrava evento

Idle100 ms

Processa requisição

Tem Evento?

S

Passoutrigger?

Gravaevento

histograma

1000 eventos?

S S

S

N N

N

• Gravação de evento– Formato .FIL compatível com SCAN– Sim ou não, depende do usuário– Gravação em disco

• Fita em fase de implementação

– Novidades• Divisão do arquivo se ele passar um certo tamanho

– 100, 200 ou 400 MBytes– Pode ser desabilitado pelo usuário

Gravaevento

Page 13: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

HistogramasHistogramas

Idle100 ms

Processa requisição

Tem Evento?

S

Passoutrigger?

Gravaevento

histograma

1000 eventos?

S S

S

N N

N

• Todo evento válido chama a rotina de histogramação– O usuário pode definir, na rotina de histogramação,

como e quando um evento é histogramado– Código em c++/ROOT

• Total liberdade, depende somente da criatividade do usuário

– Tempo morto monitorado pelo programa• Não há, nesta versão, nenhum controle imposto pelo

programa

histograma

Page 14: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

Iniciando o programaIniciando o programa

• Digite– Spmroot [opções]

• -d = habilita modo de degub– Imprime o conteúdo de cada um dos eventos, além de outras

informações (muito mais lento, afinal é um modo de debug)• -c = habilita prompt de comando para o interpretador ROOT/Cint

– Propicia acesso a todos os recursos do ROOT e um interpretador c++ (>90% compatibilidade com ANSI c++)

Page 15: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

SPMRoot – A interface com o usuárioSPMRoot – A interface com o usuário

Menu principalBarra de comandos

Status

Log

Page 16: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

SPMRoot – O Menu principalSPMRoot – O Menu principal

Page 17: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

SPMRoot – StatusSPMRoot – Status

Page 18: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

Iniciando um run em 4 passos simplesIniciando um run em 4 passos simples• Carregar o EVO • Carregar as definições de histogramas

• Ligar modo FILA • Iniciar o run

Page 19: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

Algumas opções mais avançadasAlgumas opções mais avançadas• Configurando scalers (máximo 10 módulos de scalers)

• Tamanho do buffer do CAMAC e número de parâmetros

Page 20: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

As opções de DISPLAYAs opções de DISPLAY• Janelas gráficas (Canvas), Browsers, PelTools.

Page 21: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

Como fazer histogramasComo fazer histogramas• Pequena rotina em c++

– Todo o poder do c++ e do ROOT disponíveis

• Não precisa compilar– O SPMRoot compila sozinho

• Mesmo programa pode ser usado offline

– Espere pelo ScanRoot

• Header– Incluir bibliotecas básicas– Definir variáveis globais

• 4 funções (2 obrigatórias)– bookHistograms()– fillHistograms()– Init()– Finish()

• Clicar em– File → Load Histogram Def.

Page 22: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

Visualizando histogramasVisualizando histogramas

• O TBrowser– Similar ao windows explorer

• Directories, files, etc.

– Display → new TBrowser

• Duplo clique no icone

DiretóriosSPM_Histograms

etc

Histogramas(conteúdo dos

diretórios)

Page 23: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

Visualizando histogramas... Canvas e menus no clique do mouse

Visualizando histogramas... Canvas e menus no clique do mouse

Page 24: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

Outras opções de visualizaçãoOutras opções de visualização

• Múltiplas telas em uma única janela– Clique com botão

direito na janela e Divide

• Múltiplas janelas

– Menu Display → new TCanvas

Page 25: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

Analisando dadosAnalisando dados

• Usando o prompt de comando (RootCint)– Alta flexibilidade

• Interpretador c++/ROOT

• Usando o PelTools– Pequena interface gráfica que

auxilia, dentre outras coisas• Criação de bananas (TCutG)• Projeção de histogramas• Ajustes de picos, etc

– Acesse de Display → PelTools Menu

Page 26: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

Processando dados offline - ScanRootProcessando dados offline - ScanRoot

• Programa desenvolvido em c++/ROOT para processar arquivos .FIL (similar ao SCAN)– digite scanroot

• Comandos básicos– hac(“filename”)

• Carrega arquivo de definição de histogramas (mesmo formato do SPMRoot)

– openInput(“filename”)• Abre o .FIL

– openOutput(“filename”,outNumber)• Abre um novo arquivo FIL para gravação

– loadL2(“filename”)• Carrega definição de trigger de software

– saveHist(“filename”)• Grava arquivo de histogramas

– go(N)• Processa N eventos (N=0 processa o arquivo inteiro)

– tools()• Abre a janela de PelTools

– help()

Page 27: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

Velocidade de processamentoVelocidade de processamento

• Arquivo .FIL – 3.5 M eventos

– Média de 2 parâmetros/evento

• Criação de 1 espectro bi-paramétrico simples

• Aqui vale a discussão qual instantâneo é mais rápido 0 0,5 1 1,5 2

tempo (segundos)

Tempo de processamento

SCAN

ScanRoot

Page 28: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

Tamanho do arquivo de histogramasTamanho do arquivo de histogramas

• Arquivo de histogramas – 3.5 M eventos

– 1 espectro bi-paramétrico

• 512 x 512 canais (H32)

• O ROOT tem grandes vantagens porque os histogramas são gravados de forma mais eficiente enquanto o HIS é totalmente descompactado

30

1024

0 500 1000 1500

tamanho (kBytes)

Tamanho do arquivo de saída

HIS

ROOT

Page 29: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

Limite de histogramaçãoLimite de histogramação

• Arquivo de histogramas – Espectro bi-paramétrico

• 512 x 512 canais (H32)

• Detetor de neutrons– Aprox. 200 histogramas

• HIS– 15 2D (512x512) hist.– Request of 16777220 bytes

is larger than maximum 16777216

• Praticamente não há limite físico no ROOT, limitado basicamente pelo sistema operacional

– 2GB no ROOT v. 3.04.05

>15000

15

0 5000 100001500020000

Número máximo de histogramas

Número máximo de histogramas

HIS

ROOT

Page 30: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

Limites de aquisição de dadosLimites de aquisição de dados

• Fração de eventos perdidos– Detetor de nêutrons

completo• 72 histogramas

multicanais• 96 histogramas bi-

paramétricos• 70 parâmetros/evento em

média

– Micro PIII 1 GHz, 256 MB

– Histogramando todos os eventos

– Mostrando 1 histograma na tela, atualizando a cada 5 minutos

0

0,05

0,1

(%)

100 500 1000 1500 2000 2500 3000

Taxa de contagem (Hz)

Fração de eventos perdidos

Page 31: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

STATUSSTATUS

• Versão 1 disponível– SPMRoot

– ScanRoot

– PelTools

– Driver controlador CAMAC c111A turbo

• Testado com o detetor de neutrons• 1 semana de tomada de dados para a tese do Pedro

– 6,7Li + In, 12 telescópios Egás-ESi-E + 5 monitores de Si

• Ainda não implementado/testado– IO em fita

• Vale a pena?????• 1 fita hexabyte de 5 GBytes = R$40-50• 1 HD 120 GBytes = R$400

– Múltiplos crates de CAMAC

• Manual na sala de controle e na web• http://star4.if.usp.br/~suaide/pelletron/index.htm

Page 32: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

O Futuro...O Futuro...

• Testar múltiplos crates– Implementado na teoria...

• Versão 2– Otimização de performance

• Otimização do driver do CAMAC • Otimização de alguns métodos do SPMRoot• Melhorar a estética de programação

– Incluir IO em fita???– Driver para o controlador CAMAC DSP 6002– Melhorar a interface???

• Depende das sugestões dos usuários

– Mais ferramentas de análise no PelTools

• Além da versão 2– Incluir processamento paralelo para aumentar performance (?)

Page 33: Alexandre A. P. Suaide Um novo sistema de aquisição de dados para o Laboratório Pelletron/LINAC Alexandre A. P. Suaide

Alexandre A. P. Suaide

Algumas informações úteisAlgumas informações úteis

• http://root.cern.ch– Web site do ROOT

• http://dfn.if.usp.br/~suaide/root– Alguns documentos, cursos, apresentações e tutoriais sobre o

ROOT

• http://star4.if.usp.br/~suaide/pelletron/index.htm– Manual dos programas mostrados nessa apresentação

• http://dfn.if.usp.br/~suaide/pelletron/talks/Aquisicao.ppt– Esta apresentação