alexandre suaide aula 3. scanroot scanroot = root + scan –o scanroot corresponde a uma...
Post on 17-Apr-2015
137 Views
Preview:
TRANSCRIPT
Alexandre SuaideAula 3
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
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()
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
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
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
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
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...
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.
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
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
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
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
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
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
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
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
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.
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
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
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
e para finalizare para finalizar
top related