alexandre a. p. suaide um novo sistema de aquisição de dados para o laboratório pelletron/linac...
TRANSCRIPT
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
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...
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
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...
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
Alexandre A. P. Suaide
ROOT – Um pouco de propagandaROOT – Um pouco de propaganda• Várias opções de histogramas em 2 dimensões
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
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
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
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?
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...
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
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
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++)
Alexandre A. P. Suaide
SPMRoot – A interface com o usuárioSPMRoot – A interface com o usuário
Menu principalBarra de comandos
Status
Log
Alexandre A. P. Suaide
SPMRoot – O Menu principalSPMRoot – O Menu principal
Alexandre A. P. Suaide
SPMRoot – StatusSPMRoot – Status
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
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
Alexandre A. P. Suaide
As opções de DISPLAYAs opções de DISPLAY• Janelas gráficas (Canvas), Browsers, PelTools.
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.
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)
Alexandre A. P. Suaide
Visualizando histogramas... Canvas e menus no clique do mouse
Visualizando histogramas... Canvas e menus no clique do mouse
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
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
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()
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
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
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
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
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
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 (?)
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