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

Crie uma nova questão com ---+++ dentro da seção correspondente (CMSSW, ROOT, grid, ...) 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

CMSSW

How to setup random seeds in the Python config file.

(Thiago) Add the following lines to your _cfg.py file:

import uuid
import random
x = uuid.uuid4()
random.seed(x)

and them, after you load the RandomNumberGeneratorService (usually wish something like process.load('Configuration.StandardSequences.Services_cff') ), add:

randService = process.RandomNumberGeneratorService
for param in [x for x in randService.parameterNames_()
             if type(getattr(randService, x)) == cms.PSet]:
   getattr(randService, param).initialSeed = random.randint(1,100000)

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?

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

Como montar minha própria coleção de traços?

(Caio) Tenho um arquivo de dados RAW-RECO e gostaria de montar uma de coleção de traços (como o "generalTracks", mas um "myTracks") onde eu coloco apenas traços que passaram por uma certa seleção de High Level Triggers. Quero salvar essa colação "myTracks" em outro arquivo de dados para ser rodado via cmsRun. Como fazer isso?

ROOT

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?

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

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;
}

Grid

Utilizando condorg

(Franciole) Temos utilizado o cluster com o condorg para fazer parte de nossas analises. Os jobs variam desde producao de ntuplas, pequenas producoes de MC, codigos privados do ROOT e por ai vai. No entanto, temos cada um uma solucao particular para seu problema. Sera que poderiamos partilhar essas solucoes? Sera que isso ajudaria num futuro proximo?

(Caio) Eu crio uma TTree com o cmsRun a partir dos dados e rodo o ROOT diretamente via condor sobre essa TTree. A maneira de fazer isso é como usual:

Primeiro compacta-se a área do CMSSW onde está a análise (a Tree do root deve ser compactada junta)

tar -czvf CMSSW_3_6_2.tgz CMSSW_3_6_2/

depois pega o proxy:

grid-proxy-init -debug -verify

voms-proxy-init -voms cms

e submete o job com

condor_submit condor_run

O script que eu passo pro condor pra rodar o root é esse aqui (veja essa página para informações úteis sobre programação em bash). Esse aqui é o arquivo de configuração do condor.

(Cesar) Eu utilizo um script similar a esse do Caio para executar o cmsRun com o condor_g (condor_test). Testei uns dois dias atrás e funcionou na versão CMSSW_4_2_5. O arquivo de configuração no caso lê um arquivo .root do dCache. Não consegui fazer funcionar quando o aquivo .root está na tarball, ou seja, em um dos subdiretórios do CMSSW (Alguém tem alguma idéia? Já tentei usar $WORKING_DIR/CMSSW_4_2_5/src/flatTuple/patTuple_PATandPF2PAT.root e $IWD/CMSSW_4_2_5/src/flatTuple/patTuple_PATandPF2PAT.root, uma vez que o caminho na access, por exemplo, seria /home/bernardes/CMSSW_4_2_5/src/flatTuple/patTuple_PATandPF2PAT.root). A solução encontrada no momento foi copiar o arquivo para meu diretório no dCache, usando:

srmcp -2 file:///CMSSW_4_2_5/src/flatTuple/patTuple_PATandPF2PAT.root srm://osg-se.sprace.org.br:8443/srm/managerv2?SFN=/pnfs/sprace.org.br/data/cms/store/user/caber/te st/patTuple_PATandPF2PAT.root

Abrindo um arquivo no dcap e dicas sobre srmcp

(Caio) É possível abrir o root passando um arquivo que está no dcap como parâmetro. A sintaxe (graças ao Marco) está dada nesse exemplo, onde é aberto o arquivo 7TeV_Jul16th_Tree_All+-Tracks_2Nch150_noSplitTracks-beamSpot_Rxy.root

root dcap://osg-se.sprace.org.br:/pnfs/sprace.org.br/data/cms/store/user/lagana/7TeV_Jul16th_Tree_All+-Tracks_2Nch150_noSplitTracks-beamSpot_Rxy.root
root [0] 
Attaching file dcap://osg-se.sprace.org.br:/pnfs/sprace.org.br/data/cms/store/user/lagana/7TeV_Jul16th_Tree_All+-Tracks_2Nch150_noSplitTracks-beamSpot_Rxy.root as _file0...
root [2] _file0->ls()
TDCacheFile**           dcap://osg-se.sprace.org.br/pnfs/sprace.org.br/data/cms/store/user/lagana/7TeV_Jul16th_Tree_All+-Tracks_2Nch150_noSplitTracks-beamSpot_Rxy.root
 TDCacheFile*           dcap://osg-se.sprace.org.br/pnfs/sprace.org.br/data/cms/store/user/lagana/7TeV_Jul16th_Tree_All+-Tracks_2Nch150_noSplitTracks-beamSpot_Rxy.root
  KEY: TTree    track_tree;2    track_tree
  KEY: TTree    track_tree;1    track_tree
  KEY: TH1F     Rxy;1   Rxy
  KEY: TTree    ev_tree;1       ev_tree

Para copiar um arquivo via srmcp é útil essa sintaxe:

srmcp srm://osg-se.sprace.org.br:8443/pnfs/sprace.org.br/data/cms/store/himc/Fall10/Hydjet_Quenched_MinBias_2760GeV/GEN-SIM-RECO/Pyquen_GammaJet_pt15_MC_38Y_V12-v2/0001//2439BAA1-FDDF-DF11-ACC0-001D096760DE.root file:////home/lagana/2439BAA1-FDDF-DF11-ACC0-001D096760DE.root

Copiando via srmcp do castor para o SPRACE:

srmcp --debug=true -srm_protocol_version=2 srm://srm-cms.cern.ch:8443/srm/managerv2?SFN=/castor/cern.ch/user/m/mohammed/MC_PYTHIA8/edmfile_9900.root file:////home/lagana/edmfile_9900.root

Exemplo de srmls

. /OSG/client-1.2/setup.sh

voms-proxy-init -voms cms

srmls srm://osg-se.sprace.org.br:8443/srm/managerv2?SFN=/pnfs/sprace.org.br/data/cms/store/user/

Analysis in 2012

(Thiago) I am going to prepare a Twiki about the analyses we will be setting up in 2012. It will reside in AnalysisSPRACE2012

Subscription

Para receber um email de notificação toda vez que alguém faz alguma modificação no Analysis Open Space, coloque seu nome nessa área do WebNotify.

-- CaioLagana - 18 Jul 2011 -- ThiagoTomei - 09 May 2012

Topic attachments
I Attachment History Action Size Date Who Comment
Unknown file formatEXT condor_ROOT r2 r1 manage 0.6 K 2011-10-21 - 18:38 CaioLagana script para rodar ROOT via condor
Unknown file formatEXT condor_run r1 manage 0.5 K 2011-09-20 - 02:50 CaioLagana condor default script
Unknown file formatEXT condor_run_root r1 manage 0.5 K 2011-10-21 - 18:39 CaioLagana script para rodar ROOT via condor
Unknown file formatEXT condor_test r1 manage 0.9 K 2011-09-20 - 10:01 CesarBernardes condor_test
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 | r27 < r26 < r25 < r24 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r25 - 2012-05-12 - ThiagoTomei
 

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