Alexandre Suaide aula 1. Ferramentas para análise de dados Paradigma 1 –Ferramentas prontas para executar tarefas específicas para análise de dados Origin

  • View
    118

  • Download
    7

Embed Size (px)

Text of Alexandre Suaide aula 1. Ferramentas para análise de dados Paradigma 1 –Ferramentas prontas para...

  • Slide 1
  • Alexandre Suaide aula 1
  • Slide 2
  • Ferramentas para anlise de dados Paradigma 1 Ferramentas prontas para executar tarefas especficas para anlise de dados Origin Excel MathCad Mathematica DAMM SCAN Etc A flexibilidade limitada ao que cada programa oferece Paradigma 2 Ferramentas que permitem cada usurio criar o prprio ambiente de anlise de dados Linguagens de programao PAW ROOT A flexibilidade muito elevada custo de uma interveno maior do usurio
  • Slide 3
  • Objetivos Iniciar as pessoas que no so familiares com o uso intensivo de programao para anlise de dados Fornecer a base da linguagem e filosofia de objetos C++ e ROOT Esclarecer dvidas sobre as ferramentas especficas construdas para o Pelletron ScanRoot e SPMRoot 3 seminrios C++ e ROOT (bsico) ROOT (anlise) e ScanRoot ScanRoot e sendo criativo com o Root
  • Slide 4
  • Por que ROOT? Uma anlise slida se constri a partir de mtodos confiveis que no imponham limitaes criatividade do pesquisador Anlise Nvel mais fundamental. Interface com S.O. Ferramentas bsicas I/O, ferramentas grficas, mtodos de clculo Ferramentas de visualizao e manipulao grfica Interface entre o usurio e as ferramentas de anlise
  • Slide 5
  • Ento, o que ROOT? Conjunto de bibliotecas escritas em c++ cuja finalidade permitir o desenvolvimento de tcnicas de simulao, aquisio e anlise de dados As bibliotecas seguem a filosofia de programao orientada a objeto A interface com o usurio se faz de trs modos Prompt de comando Interpretador c/c++ (CINT) Permite total acesso a funcionalidade do ROOT e c++ O prompt de comando atua como um compilador em tempo real. Interface grfica Permite manipulao de objetos grficos (histogramas, grficos, objetos, menus, etc) Compilador c++ (gcc em Linux e VC em windows) Permite compilar programas avanados e criar novos programas especficos, utilizando a funcionalidade do ROOT ScanRoot, SPMRoot Necessita conhecimento de c++ para fazer bom proveito do sistema
  • Slide 6
  • Comandos bsicos Como iniciar o programa Digite root Como sair do ROOT Digite.q Estranho, mas como o ROOT um interpretador c++, os comandos internos do mesmo tm que ser diferenciados. Assim, todos os comandos do ROOT comeam com.. Os comandos mais importantes, alem do.q so .L para carregar um programa (macro) na memria .x para carregar e executar um programa .h para um help dos comandos disponveis
  • Slide 7
  • A interface do ROOT Use a tecla TAB para obter ajuda root [0] b = new TB root [1] b = new TBrow root [2] b = new TBrowser( til para descobrir a lista de mtodos Descobrir tambm lista de parmetros
  • Slide 8
  • Meu primeiro programa em c++ Utilize o seu editor de textos favorito (vi, nedit, emacs, etc.) Entre no root e digite root [0]:.x hello.C Hello Alex root [1]: _ void hello() { cout
  • Comentrios e IO bsico Comentrios /* comentrio de bloco */ // comentrio de linha IO bsico Uso dos operadores >> (puxar) e peso; Muda de linha
  • Slide 12
  • Loops for ( cond. inicial; condio de teste; alterao) { comandos } for(int i=0; i
  • Histogramas de 1 dimenso Criando um Histograma de 1 dimenso TH1F *h = new TH1F(nome,ttulo, Nbins, Xmin, Xmax); TH1F h (nome,ttulo, Nbins, Xmin, Xmax); void exemplo_TH1() { TRandom *r = new TRandom(); TH1F *h1 = new TH1F("histograma","Exemplo histograma",50,0,10); for(int i = 0;iGaus(5,1); h1->Fill(x); } h1->Draw(); } Para rodar esse exemplo, assim como os Seguintes, salve-o em um arquivo, por Exemplo, teste.C e digite, no prompt do ROOT root [0].L teste.C root [1] exemplo_TH1();
  • Slide 22 Gaus(5,1); float y = r->Gaus(3,0.5); h2->Fill(x,y); } h2->Draw(); }">
  • Histogramas de 2 dimenses Muito similar ao TH1 TH2F *h = new TH2F(nome,ttulo, NbinsX, Xmin, Xmax, NBinsY, Ymin, Ymax); TH2F h (nome,ttulo, NbinsX, Xmin, Xmax, NbinsY, Ymin,Ymax); void exemplo_TH2() { TRandom *r = new TRandom(); TH2F *h2 = new TH2F("h","Exemplo Th2",50,0,10,50,0,5); for(int i = 0;iGaus(5,1); float y = r->Gaus(3,0.5); h2->Fill(x,y); } h2->Draw(); }
  • Slide 23
  • Grficos X-Y Criar grficos a partir de uma tabela como tirar doce da mo de criana... TGraph e TGraphError ... = new TGraph(N,x,y); ... = new TGraphErrors(N,x,y,ex,ey); Onde N = nmero de pontos x, y so ponteiros para os vetores com os dados ex, ey so ponteiros para os vetores com os erros
  • Slide 24
  • Um exemplo de grfico void exemplo_TGraph() { float x[] = {1,2,3,4,5,6}; float y[] = {0.1,0.3,0.5,0.7,0.9,1.1}; float ex[] = {0.1,0.1,0.1,0.1,0.1,0.1}; float ey[] = {0.02,0.03,0.02,0.04,0.03,0.05}; TGraphErrors *g = new TGraphErrors(6,x,y,ex,ey); g->SetMarkerStyle(20); // para circulo g->Draw("AP"); // A desenha os eixos, P desenha pontos }
  • Slide 25
  • Criando funes O ROOT possui classes para definir funes. TF1, TF2 e TF3 Uso TF1 *f = new TF1(nome,formula,min,max); A frmula deve ser escrita usando a sintaxe padro de c++. Parmetros variveis devem vir entre brackets [0], [1], etc As variveis so x, y e z Alguns mtodos interessantes SetParameter(), GetParameter(), GetParError(), GetChisquare(), Eval(), etc.
  • Slide 26 SetParameter(0,1); f1->SetParameter(1,3)"> SetParameter(0,1); f1->SetParameter(1,3); f1->SetParameter(2,6); f1->Draw(); } O fim de um comando s ocorre quando se coloca o ;"> SetParameter(0,1); f1->SetParameter(1,3)" title="Um exemplo simples void exemplo_Func() { TF1 *f1 = new TF1("func", "[0]*exp(-x/[1])*sin([2]*x)", 0,6.28); f1->SetParameter(0,1); f1->SetParameter(1,3)">
  • Um exemplo simples void exemplo_Func() { TF1 *f1 = new TF1("func", "[0]*exp(-x/[1])*sin([2]*x)", 0,6.28); f1->SetParameter(0,1); f1->SetParameter(1,3); f1->SetParameter(2,6); f1->Draw(); } O fim de um comando s ocorre quando se coloca o ;
  • Slide 27
  • Como obter informaes Vrios tutoriais de ROOT em http://www.dfn.if.usp.br/~suaide/pelletron/links.htmhttp://www.dfn.if.usp.br/~suaide/pelletron/links.htm Referncias e documentao do ROOT http://root.cern.chhttp://root.cern.ch Pgina principal do root http://root.cern.ch/root/Categories.htmlhttp://root.cern.ch/root/Categories.html Documentao sobre as classes do root http://root.cern.ch/root/Tutorials.htmlhttp://root.cern.ch/root/Tutorials.html Tutoriais com exemplos simples, passo a passo http://root.cern.ch/root/HowTo.htmlhttp://root.cern.ch/root/HowTo.html Como resolver problemas comuns
  • Slide 28
  • Resumo Root uma coleo de classes para anlise de dados com um interpretador c++ C++ Pequena introduo dos conceitos mais bsicos Comandos mais comuns Classes e objetos ROOT Como criar e preencher histogramas Grficos e funes
  • Slide 29
  • Prxima semana Histogramas, grficos e funes Como utiliz-los mais a fundo Projees Ajustes Cortes Etc. ScanRoot (e SPMRoot) Como usar a interface Como processar os dados adquiridos com o SPMRoot

Recommended

View more >