alexandre suaide aula 3. scanroot scanroot = root + scan –o scanroot corresponde a uma...

22
Alexandre Suaide Aula 3

Upload: internet

Post on 17-Apr-2015

137 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

Alexandre SuaideAula 3

Page 2: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

ScanROOTScanROOT

• ScanROOT = ROOT + SCAN– O ScanROOT corresponde a uma modificação no

ROOT para incluir ferramentas de análise específicas do Pelletron

• Comandos– scanroot

• Para iniciar o programa– scanroot –h

• Mostra um help com as opções de inicialização– scanroot –d

• Inicia o scanroot em modo de debug– scanroot –n

• Inicia o scanroot sem abrir os menus

Page 3: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

Interface gráfica e analogia com funções pré-definidas

Interface gráfica e analogia com funções pré-definidas

Todas os botões do menu do ScanROOT possuem análogos na linha de comando

openInput(“nome.fil”)closeInput()openOutput(“nome.fil”)closeOutput()saveOnlyNewPar(bool) hac(“histogram.cxx”)saveHist(“histogram.root”)addHist(“histToAdd.root”)loadL2(“l2File.cxx”)unloadL2()zero()zero(“histName”)go()go(NEventos)setNPar(NParameters)init()finish()tools()debug(bool)stat()help()

Page 4: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

Como rodar um arquivo .FIL e criar histogramas

Como rodar um arquivo .FIL e criar histogramas

• Através da interface gráfica– Load Histograms

• Abra o arquivo .cxx (ou .so) contendo as funções de preenchimento dos histogramas

– Open .FIL• Escolha o arquivo .FIL adequado

– Zero• Digite * para zerar todos histogramas. • Não utilizar caso queira somara a estatística de

vários runs– Go

• Digite o número de eventos a serem processados (ou deixe em branco para processar todos os arquivos)

– Save histograms• Escolha o nome do arquivo a ser salvo

Page 5: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

Acessando os histogramas com TBrowserAcessando os histogramas com TBrowser

• Abrir uma janela do browser– Menu -> PelTools Menu -> Browser

• Os histogramas ficam armazenados no diretórios SCAN_Histograms

Page 6: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

Automatizando o processamento dos arquivos .FIL

Automatizando o processamento dos arquivos .FIL

• Como os comandos do menu do ScanRoot também estão disponíveis através de funções, pode-se utilizar macros para automatizar o processamento de dados

• Exemplo: arquivo macro.Cvoid macro(){

hac(“histogramas.cxx”);openInput(“run01.fil”);zero();go();saveHist(“run01.root”);openInput(“run02.fil”);zero();go();saveHist(“run02.root”);

}• No prompt do scanRoot digite:

.x macro.C

Page 7: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

Como processar os dados?Como processar os dados?

• As análises de dados no Pelletron concentram-se em fazer histogramas e contas com os dados brutos para posterior analise.– Processamento dos arquivos .FIL– Histogramas.cxx (ou qualquer outro nome)

• 4 funções (duas delas são obrigatórias)– bookHistograms(ScanRoot *scan)

» Cria os histogramas e faz o link entre o scanRoot e a rotina de processamento

– fill(int npar, float* par) (ou qualquer nome)» Processa os dados a cada evento

– init() (opcional)» Inicializa o processamento de um novo run

– finish() (opcional)» Encerra o processamento de um run

Page 8: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

Histogramas.cxxHistogramas.cxx

• 3 blocos– Definição das

diretivas de pré-compilação• O gcc (compilador

c++) não conhece o ROOT. Deve-se indicar quais as classes do ROOT devem ser adicionadas durante a compilação

– Definição de variáveis globais• Variáveis que serão

utilizadas em todas as funções

– Funções do programa• bookHistograms, fill,

init, etc...

Page 9: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

Diretivas de pré-compilaçãoDiretivas de pré-compilação

• O gcc (compilador) não conhece o ROOT. Conhece apenas o c++ padrão.– As diretivas #include “arquivo” incluem as definições das classes do ROOT

– Como eu sei qual arquivo deve ser incluído• Na documentação do

ROOT para cada classe que será utilizada pelo programa

– Deve-se sempre incluir o ScanRoot.h para o compilador reconhecer o objeto ScanRoot.

Page 10: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

Variáveis globaisVariáveis globais

• A forma mais simples de acessar variáveis entre diferentes funções é torná-las globais– Definição das

variáveis fora do escopo das funções

• Nesse exemplo, os ponteiros para os histogramas são definidos como globais

Page 11: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

Funções (bookHistograms)Funções (bookHistograms)

• bookHistograms(ScanRoot *scan)– O nome dessa função deve ser sempre esse– Executada somente quando o programa é carregado

na memória– Cria os histogramas– Faz o link entre a sua função de análise e o ScanROOT

Page 12: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

Funções (fillHistograms)Funções (fillHistograms)

• fillHistograms(short npar, float* par)– O nome dessa função pode variar.

• Deve-se ter o cuidado no momento de linkar com o ScanRoot na função bookHistograms

– Executada a cada evento – Preenche os histogramas e faz contas com os parâmetros– Pode fazer o que você quiser, inclusive chamar outras

funções

Page 13: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

Analisando os dados: PelToolsAnalisando os dados: PelTools

• Após os dados serem processados, os histogramas podem ser salvos ou analisados. – Os histogramas

podem ser acessados com o Browser, no diretório Scan_Histograms

• PelTools– Ferramentas para

análise de dados• Menu->PelTools

Menu– A maioria das

operações são realizadas sobre os histogramas na tela gráfica (TCanvas) padrão• Aquela com a borda

colorida

Page 14: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

Fazendo ajustes de picosFazendo ajustes de picos

• Picos podem ser ajustados usando o próprio ROOT– TF1 e hist->Fit()

• O pelTools tem uma função de ajuste de picos– Picos gaussianos

• simétricos ou não– Fundo polinomial

• Procedimento– Desenhe o espectro a

ser ajustado na tela (TCanvas) ativa

– Ajuste os limites inferior e superior para o ajuste na própria escala do gráfico

– Pressione o botão Fit 1D peaks

Page 15: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

Fazendo ajustes de picosFazendo ajustes de picos

• Ajustar as configurações no painel de ajustes– Tipo de pico– Tipo de fundo

• Ajustar, se necessário, os limites nos parâmetros do ajuste– Clicar em Details

• Marcar, com o mouse, as posições dos picos– E larguras, dependendo do

tipo de seleção feita• Marcar, com o mouse, os

pontos a serem utilizados para pré-ajuste do fundo– Se não for marcado, o

programa assume o primeiro e último ponto válido para o fit

– Se marcar background independente, o ajuste do fundo é feito independentemente dos picos

Page 16: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

Fazendo ajustes de picosFazendo ajustes de picos

• Clicar em Fit para ajustar– Clicar em Fit utiliza os

seus parâmetros iniciais para o ajuste.

– Clicar em Improve Fit, usa os parâmetros do último Fit como início para uma próxima rodada

• Clicar em Reset limpa tudo• Clicar em Draw, desenha

os chutes iniciais

Page 17: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

Bananas não são abacaxis muito grandes...Bananas não são abacaxis muito grandes...

• Bananas são poligonais criadas para selecionar regiões de histogramas bi-dimensionais– Bananas no ROOT são

objetos da classe TCutG• Criando bananas e

salvando-as em arquivos– No menu do PelTools

clicar em• New cut file (ou Open

cut file)• Create cut

– Desenhar a banana (duplo clique fecha a banana)

• Save current cut– Digitar o nome da

banana a ser salva no arquivo

Page 18: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

Usando bananas e fazendo contas com parâmetros

Usando bananas e fazendo contas com parâmetros

• Receita– Deve-se criar variáveis globais para

acomodar os ponteiros para as bananas– Abre-se o arquivo de bananas no

bookHistograms• Não fechar os arquivos

– Usa a função TCutG->IsInside(x,y) para verificar se o par de parâmetros está ou não dentro da banana• Checar se os parâmetros existem antes

aumenta consideravelmente a velocidade de processamento.

Page 19: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

Exemplo: fazer um espectro calibrado e com vínculo a uma banana

Exemplo: fazer um espectro calibrado e com vínculo a uma banana

Checar a existência dos parâmetros antes das

contas aumenta muito a velocidade

O vetor par[] contém os dados extraídos do .FIL. Outras grandezas podem

ser variáveis normais

Use a função IsInside(x,y) para verificar se o par está

no interior da banana

O arquivo de bananas não deve ser fechado caso

contrário o objeto é removido da memória

Page 20: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

Resultando em...Resultando em...

• O programa anterior, cria um espectro bi-dimensional calibrado em energia além de criar um espectro calibrado vinculado a uma banana

Page 21: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

O que foi visto até aquiO que foi visto até aqui

• Usar o ROOT se resume em:– Saber um pouco de c++– Conhecer as classes do ROOT

• Muito pode ser feito com algumas classes básicas– Histogramas, gráficos e funções

– Ser criativo para aproveitar as ferramentas• O ScanRoot consiste de

– Uma série de classes e funções para incluir ferramentas típicas do dia a dia do Pelletron• Processamento dos dados no nosso formato

• Como eu posso avançar?– Tentando...

• Nesse ambiente, tentar resolver os problemas é a melhor forma de aprendizado...

– e perguntando• Sintam-se à vontade para me encher a paciência

Page 22: Alexandre Suaide Aula 3. ScanROOT ScanROOT = ROOT + SCAN –O ScanROOT corresponde a uma modificação no ROOT para incluir ferramentas de análise específicas

e para finalizare para finalizar