A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Alexandre Suaide Aula 3.

Apresentações semelhantes


Apresentação em tema: "Alexandre Suaide Aula 3."— Transcrição da apresentação:

1 Alexandre Suaide Aula 3

2 ScanROOT 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

3 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()

4 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

5 Acessando os histogramas com TBrowser
Abrir uma janela do browser Menu -> PelTools Menu -> Browser Os histogramas ficam armazenados no diretórios SCAN_Histograms

6 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.C void macro() { hac(“histogramas.cxx”); openInput(“run01.fil”); zero(); go(); saveHist(“run01.root”); openInput(“run02.fil”); saveHist(“run02.root”); } No prompt do scanRoot digite: .x macro.C

7 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

8 Histogramas.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...

9 Diretivas 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.

10 Variá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

11 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

12 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

13 Analisando 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

14 Fazendo 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

15 Fazendo 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

16 Fazendo 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

17 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

18 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.

19 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

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

21 O 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 

22 e para finalizar


Carregar ppt "Alexandre Suaide Aula 3."

Apresentações semelhantes


Anúncios Google