Tags:
, view all tags

Analysis Open Space

Introdução

Este é um espaço para que sejam discutidas questões relacionadas a análises desenvolvidas no grupo do SPRACE. Objetivos e condutas gerais são:

  • Colocar para o grupo problemas de caráter técnico (CMSSW, ROOT, condorg, crab, etc...) ou físico (questões teóricas)
  • Todos estão convidados a responder/opinar sobre os problemas colocados
  • Perguntas e respostas devem ser mantidas na página para referência futura
  • Coloque seu nome entre parêntesis ao fazer uma pergunta ou dar uma resposta

Open Space

Espaço para questões. Crie uma nova questão com ---+++ para que ela apareça no sumário no topo da página (como no Exemplo 1 abaixo).

Exemplo 1: Como uso LaTeX no ROOT?

(Fulano) Preciso fazer o título de um gráfico com símbolo LaTeX, como faço?

(Cicrano) É só usar # antes do comando (ao invés de usar /)

(Beutrano) Por exemplo ->SetTitle("#theta (graus)")

(Fulano) Ok, resolvido

Histogramas de 4 ou mais dimensões no ROOT

(Caio) Sei que é possível fazer histogramas de até 10 dimensões no ROOT. Como declará-los e manipular seu conteúdo?

ROOT: Dois Pads num Canvas sem o espaço em branco

(Angelo) Já vi no ROOT casos em que dois Pads (um em cima do outro) aparecem num único Canvas, mas sem a linha branca que aparece entre dois Pads quando se usa, por exemplo:

canvas->Divide(1,2)
canvas->cd(1)
canvas->cd(2)
Por exemplo: o Pad superior mostraria dois histogramas (data/MC), enquanto que o inferior mostraria algo como "(Data - MC)/sigma". Acredito que não se trata de usar canvas->Divide(1,2). Porém, deve haver alguma forma de dizer onde começa e onde termina cada Pad. Alguma idéia?

(Caio) Estava fazendo uns testes e encontrei essa opção:

//faz o seu Canvas
TCanvas *canvas = new TCanvas();
//depois cria dois Pads
TPad *pad1 = new TPad();
TPad *pad2 = new TPad();
//e desenha seus pads dentro do canvas
canvas->cd();
pad1->Draw();
pad2->Draw();
//os pads vao cobrir todo o canvas, precisa ir com o mouse e redimensionar eles
//note que o pad2 vai ficar por cima do pad1
//aí vc desenha seu gráfico principal no pad1
pad1->cd();
grafico->Draw("ap");
//e o de residuos no pad 2
pad2->cd();
residuos->Draw();
//ai tem que ajustar com o mouse pro pad2 ficar por cima do eixo-X do pad 1

Esse gráfico é um exemplo de como as coisas podem ficar, e esse é o arquivo root correspondente. É uma solução meio grosseira, mas funcional. Alguma idéia melhor?

(Angelo) Após testar o seu método, achei uma novo caminho que permite fazer tudo automático sem a necessidade de usar o mouse. Basta colocar as dimensões correspondentes do pad usando Pad(), além de funcões como SetTopMargin() e SetBottomMargin():

TCanvas *canvas = new TCanvas();
canvas->cd();
// Aqui você declara as dimensões do pad superior, por exemplo.
// A ordem correta é TPad("", "", xMin, yMin, xMax, yMax)
TPad *pad1 = new TPad("pad1","",0.,0.3,1.,1.);
pad1->Draw();
pad1->cd();
// Desapareça com que o espaço em branco na parte de baixo do pad superior.
pad1->SetBottomMargin(0.);
// Se preferir, apague o label e o título do eixo "x" do gráfico superior.
grafico1->GetXaxis()->SetLabelSize(0.);
grafico1->GetXaxis()->SetTitleSize(0.);
grafico1->Draw();
canvas->cd();
// Aqui o pad inferior é declarado.
// Veja que o eixo vertical ("y") do pad2 termina onde o pad1 começa.
TPad *pad2 = new TPad("pad2","",0.,0.,1.,0.3);
pad2->Draw();
pad2->cd();
// Desapareça com que o espaço em branco no top do pad inferior
pad2->SetTopMargin(0.0);
// Diga ao ROOT onde que o gráfico do pad inferior vai ser iniciado.
// Isto é importante para permitir que o label do eixo "x" apareça e não seja cortado.
pad2->SetBottomMargin(0.2);
// É provável que não seja possível ver o label do gráfico do pad2, pois pode
// estar automaticamente com tamanho "0".
// Caso isso acontença, forneça o tamanho do label e do título. Por exemplo:
grafico2->GetXaxis()->SetLabelSize(0.07);
grafico2->GetXaxis()->SetTitleSize(0.07);
grafico2->Draw();

(CMSSW) Como encontrar Monte Carlo correspondente ao conjunto de dados

(Caio) Preciso encontrar o MC correspondente a um determinado conjunto de dados. O MC deve simular o alinhamento/funcionamento do detector durante aquela tomada de dados. Como fazer isso? Nesse caso os dados são:

/MinimumBias/Run2010A-Apr21ReReco-v1/RECO com CMSSW_4_2_1_patch1 e global tag FT_R_42_V10A.

Esse link tem informações sobre os dados de 2010 e esse outro sobre os MC, mas como relacionar esses dados com esses MCs? Qual MC corresponde a qual dado? Tem a ver com a estação do ano?

Como construir histogramas com bins não homogêneos?

(Angelo) Esse é um exemplo de como plotar histogramas com bins variáveis (Franciole's example):

void variable_bin(){

  //histo with variable size bins

  //# of bins = 3 
  int nbins = 3;

  //# of edges. Includes the lowest and highest
  const int nedges = nbins+1;

  //Defines edges
  float xbins[nedges] = {0.0,1.0,3.0,6.0};

  //creates histo
  TH1F *hvar = new TH1F("hvar","hvar title",nbins,xbins);

  //Writes width of all bins
  //Note bin zero is reserved for other purposes (see ROOT documentation)
  //size will be equals to 1
  std::cout << "first bin size:  " << hvar->GetBinWidth(1) << std::endl;
  std::cout << "second bin size: " << hvar->GetBinWidth(2) << std::endl;
  std::cout << "third bin size:  " << hvar->GetBinWidth(3) << std::endl;
}

Encontrando datasets

(Caio) No CMS, dados são encontrados no site DAS, que é uma versão melhorada do DBS. O DAS é muito mais rápido que o DBS, entretanto me parece que as informações sobre os dados no DBS são mais completas que do DAS. Assim, a melhor opção é fazer sua busca pelo DAS e, quando encontrar o conjunto e dados certo, ir para o DBS para pegar todas as informações.

Exemplos de comandos DAS para busca de dados

  • dataset = /Min*Bias*TuneZ2*7TeV*pythia6*Summer11*AODSIM (Asterisco vale como caractere "coringa", e.g. são semelhantes: "heavy_ion" "h*y_ion" "heav*y_ion" "heavy_ion*"
  • dataset = /MinimumBias/Run2010A*AOD
  • block = /MinimumBias/Run2010A-Apr21ReReco-v1/AOD#f9fe2e80-703d-11e0-9135-003048f1c5d0
  • release dataset = *7TeV*pythia*GEN-SIM-RECO Mostra todas as releases do CMSSW que tem esse dataset
  • dataset release = CMSSW_4_2_1_patch1 Mostra todos os datasets que têm essa release do CMSSW
  • dataset site = T2_BR_SPRACE Mostra todos os datasets no site do SPRACE

-- CaioLagana - 18 Jul 2011

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng dois-pads-num-canvas.png r1 manage 10.0 K 2011-07-23 - 17:26 CaioLagana Teste para desenhar dois graficos sem espaço entre eles
Unknown file formatroot dois-pads-num-canvas.root r1 manage 19.0 K 2011-07-23 - 19:18 CaioLagana  
Edit | Attach | Print version | History: r57 | r15 < r14 < r13 < r12 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r13 - 2011-09-17 - CaioLagana
 

This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback

antalya escort bursa escort eskisehir escort istanbul escort izmir escort