Agenda 27/Nov/2008
Table of Contents
1. Metodologia de grupo
~5 pessoas =>
- Pedro - UED D0
- Ângelo - UED D0
- Thiago - RS/V+J CMS
- Flavia - RS/V+J CMS
- Sandra - HI CMS
- Lietti - TBA
- Francioli - B CMS
2. Objetivos
- Desenvolver a metodologia
- Para treinar, refazer uma análise já feita
3. Refazer análise de V+jets
- Distribuir Analysis note - com Highlights se possível.
- Não consegui colocar Highlights, mas o ideal é ler o Resumo, a Introdução, a Conclusão e passar os olhos pelo resto.
- Re-gerar o MC -> Alpgen (todo mundo) -> Hands-on - semana que vem (Fast Simulation + Geant no cluster)
- Eu acho que no próximo meeting não vamos nem usar o CMSSW - o Alpgen em si é um executável standalone. Depois vamos colocar aqui um PDF com o tutorial.
- Aliás, pra quê um PDF? O tutorial vem direto abaixo.
- Lietti - Abrir conta pra que falta na Access
- Thiago - mandar um tutorial do que temos que fazer pra construir o CMSSW (e qual versão) na Access (vamos usar a versão em Python?).
4. Alpgen tutorial p/ hoje
Preparativos
Gerar eventos com pesos (weighted events)
- Rodar o código no modo de documentação para descobrir as opções do programa
./zjetgen
Entre com a opção 4: write to par.list parameter options and defaults, then stop
. Abra o arquivo par.list, e estude as opções disponíveis.
- Escrever arquivo de entrada para gerar eventos com pesos, com o seguinte conteúdo:
1 ! imode
z2j ! label for files
0 ! start with: 0=new grid, 1=previous warmup grid, 2=previous generation grid
50000 4 ! Nevents/iteration, N(warm-up iterations)
200000 ! Nevents generated after warm-up
*** The above 5 lines provide mandatory inputs for all processes
*** (Comment lines are introduced by the three asterisks)
*** The lines below modify existing defaults for the hard process under study
*** For a complete list of accessible parameters and their values,
*** input 'print 1' (to display on the screen) or 'print 2' to write to file
ih2 1 ! LHC - pp collisions
ebeam 7000 ! LHC - 7 TeV beams
ickkw 1 ! MLM matching
njets 2 ! total number of jets
ptjmin 20 ! ptmin for fwd jets
etajmax 5.0 ! full rap range for jets
drjmin 0.7 ! separation between jets
ilep 0 ! Z -> l+l- decay
Mude o número de jatos e o nome dos arquivo de saída (label for files
na lista acima) pro que o seu grupo for fazer.
- Rodar o programa com essa entrada - assumindo que o arquivo de entrada chama-se "input":
./zjetgen < input
- Essa etapa
(imode =1)
produziu os eventos com pesos - verifique a presença do arquivo de eventos com pesos (com a extensão .wgt
) na sua área.
Gerar eventos sem pesos (unweighted events)
gerados |
warm up |
cs(wgt)pb |
scan events |
cs(unw)pb |
unw |
unweighting efficiency |
200000 |
10x10000 |
272 |
11892 |
246 |
536 |
0.05 |
200000 |
5x40000 |
280 |
9006 |
254 |
492 |
0.05 |
200000 |
10x20000 |
282 |
11326 |
258 |
525 |
0.05 |
200000 |
20x10000 |
272 |
19221 |
297 |
758 |
0.04 |
200000 |
10x40000 |
281 |
10235 |
258 |
258 |
0.03 |
200000 |
20x20000 |
280 |
8213 |
254 |
63 |
0.01 |
200000 |
40x10000 |
275 |
12828 |
246 |
69 |
0.01 |
400000 |
20x20000 |
283 |
11155 |
257 |
404 |
0.04 |
400000 |
40x10000 |
277 |
14906 |
252 |
715 |
0.05 |
- O número de scan events não é exatamente igual ao número de eventos gerados porque é realizado um pre unweighted já na primeira fase. O unweighted é realizado pegando o peso (w) e o maior valor da seção de choque (max) (com boa aproximação, o maior peso). É comparado w > x*max, onde x é um número aleatório de 0 a 1. Se w > x*max, o evento é aceito. Dessa forma temos uma distribuição sem peso para cada evento. Na primeira fase os eventos são selecionados de forma a que se w > x*.01*max ele é aceito. Dessa forma, não eliminamos o peso do evento (eventos com wmax e com 0.1 wmax são aceitos sempre, não damos preferência ao com maior peso) mas selecionamos apenas eventos com maior chance de passar na segunda fase. Não é totalmente claro para mim porque isso é feito. Talvez para salvar espaço ao não gravar todos os eventos gerados. E vemos que a chance de um evento não passar nesse primeiro corte e passar no segundo é incrivelmente remota.
Showering, matching e hadronização - CMSSW
- Prepare uma área do CMSSW_2_1_17, em alguma outra área separada - no exemplo, vamos montar na nossa $HOME. Em particular, se você ainda não o fez, siga as instruções iniciais (para setar a variável
$OSG_APP$
) em CMSSWinSprace.
cd $HOME
cmsrel CMSSW_2_1_17
cd CMSSW_2_1_17/src
cmsenv
- Copie e compile o pacote
GeneratorInterface/AlpgenInterface
, que faz a interface do Alpgen com o CMSSW. Ignore os magníficos warnings de compilação da parte em FORTRAN.
cp -r /home/trtomei/GeneratorInterface .
cd GeneratorInterface/AlpgenInterface/
scram b
- Entre no diretório
tutorial
, e copie os arquivos nomeDoSeuArquivo.unw
e nomeDoSeuArquivo_unw.par
de onde eles estiverem pra lá. No exemplo, vamos supor que fosse z2j
.
cd tutorial
cp $HOME/alpgen/zjetwork/z2j.unw .
cp $HOME/alpgen/zjetwork/z2j_unw.par .
- Edite o arquivo
Alpgen_cfg.py
, trocando o nome do arquivo de entrada (file:alpgen
) pelo do seu arquivo (file:z2j
). Faça o mesmo com o arquivo de saída (mude alpgen.root
para z2j.root
. Aproveite e dê uma olhada na (nova) estrutura do arquivo. É um arquivo Python, com módulos específicos do CMS.
- Rode o arquivo
Alpgen_cfg.py
cmsRun Alpgen_cfg.py
- Essa etapa performou o showering, o matching, a hadronização e escreveu arquivos EDM (Event Data Model, o formato de dados do CMS) que contém a seguinte informação:
- Um LHERunInfoProduct, contendo informações sobre o "Run", isto é, sobre as condições com as quais este grupo de eventos foi gerado.
- Um conjunto de LHEEventProducts, contendo informações sobre o espalhamento duro de cada evento.
- Um conjunto de HepMCProducts, contendo uma descrição completa da informação de Monte Carlo de cada evento. Este arquivo é do tier GEN, e pode agora ser utilizado pelo CMSSW para realizar a simulação (SIM), digitização (DIGI) e reconstrução (RECO), gerando no final arquivos idênticos aos obtidos de verdade no CMS.
Perceba também que nem todos os eventos passam pelo matching. A eficiência depende do número de partons. Você pode checar sua eficiência na saída do Pythia, pela linha
********* Fraction of events that fail fragmentation cuts = X *********
A eficiência é 1-X. Para 0, 1, 2, 3+ jatos, as eficiências esperadas são ~ 0.8, 0.55, 0.35 e 0.35, respectivamente.
--
ThiagoTomei - 27 Nov 2008