MadGraph

Instalación, y generación de datos con MadGraph


Principal CMS-GFIF(external link) | Siguiente Sintaxis Básica(external link)


Descarga e instalación.


El sitio oficial está en: https://launchpad.net/mg5amcnlo(external link)

Ahí se puede consultar la versión mas reciente de dicho paquete, que para el momento de describir este Wiki era la versión v2.5.2(external link).

Se puede descargar directamente en el link (aquí o en la pagina oficial), o también usando el comando wget (que es el caso nuestro). luego se debe de descomprimir, ejecutar e instalar complementos necesarios.

A continuación se muestra paso a paso el procedimiento anteriormente descrito en una terminal de bash (puede usarse como script)

#!/bin/bash

#Descarga del paquete
wget https://launchpad.net/mg5amcnlo/2.0/2.5.x/+download/MG5_aMC_v2.5.2.tar.gz 

#Descompresión del paquete
tar -xzvf MG5_aMC_v2.5.2.tar.gz

cd MG5_aMC_v2.5.2
./bin/mg5_aMC


Dentro de la linea de comandos de MadGraph(MG) se instalan las otras dependencias que se van a usar.
  • Notas:
    • Para salir de la interfaz de MG se escribe el comando exit o se termina con ctr + C.
    • Para poder instalar Delphes, debe de tener root instalado y cargado el path en el sistema (ver Instalación de root(external link))
    • Si se quiere se puede guardar los siguientes comandos como un archivo de texto y pasarlos a mg5_aMC como argumento, e.g. ./bin/mg5_aMC comandos.txt (sin MG5_aMC> esto es para indicar que estamos dentro de la linea de comandos de MG.)

MG5_aMC> install lhapdf6
MG5_aMC> install hepmc
MG5_aMC> install pythia8
MG5_aMC> install Delphes


Parche

En la versión v2.5.2, hay un error, que se corrige ejecutando el siguiente código en la terminal, ubicados en la carpeta MG5_aMC_v2.5.2
cd HEPTools/lhapdf6/share/LHAPDF
wget https://www.hepforge.org/archive/lhapdf/pdfsets/6.1/NNPDF23_lo_as_0130_qed.tar.gz
tar -xzvf NNPDF23_lo_as_0130_qed.tar.gz


Principal CMS-GFIF(external link) | Siguiente Sintaxis Básica(external link)


...page...
Anterior Descarga e instalación(external link) | Tarjetas de configuración Siguiente(external link)


Sintaxis Básica


De aquí en adelante, se supone que se está dentro de la interfaz de MadGraph (i.e. ejecutando el comando ./bin/mg5_MC, luego se omite el MG5_aMC>)

  • El símbolo " > " se usa para separar estados finales de iniciales.
  • Usando x x > y > z z z , se requiere que en el proceso de dos particulars x a tres ys, la partícula z sea la intermediaria, i.e. esté en el canal s.
  • para prohibir una partícula en el canal s de un proceso, se usa " $ ", e.g. x x > z z $y, en el proceso de dos xs a dos zs, no puede haber ninguna partícula y en el canal s.
  • De forma general con " / " se puede prohibir que una partícula aparezca en los diagramas internos, e.g. x x > z z / y, prohíbe que en el proceso se tengan ys internos.
  • Se puede especificar procesos en cadena, usando comas, por ejemplo, si se quiere que dos partículas x, vayan a w y, y luego w vaya a z e y a e, entonces la sintaxis será: x x > w y, w > z, y > e.
  • El comando define sirve para definir multi-partículas.
  • Se pueden añadir tantos procesos como se quieran por medio del comando add process

Ejemplo: Para hacer la simulación de el proceso de producción de un par de quarks top a partir de dos protones
define p = u u~ d d~ c c~ s s~ b b~ g
generate p p > t t~
output ExclusiveTTbar5Flavourp
Donde en la primera linea lo que se hace es declarar una multi-partícula, en el segundo se pide que se generen eventos de dos protones a un par top anti-top, y en la tercera y última linea se indica la carpeta de salida del programa, i.e. donde MadGraph generará todas los archivos resultado (MadGraph, Delphes, Pythia..)

En este punto solo genera los archivos de configuración de los programas, para llevar a cavo la simulación hay dos maneras:
  • Directamente en la linea de comandos de MG, luego del comando generate, se ejecuta el comando launch, lo cual hará que MG pregunte por el uso de programas complemento así
************************************************************
*                                                          *
*                      W E L C O M E to                    *
*             M A D G R A P H 5 _ a M C @ N L O            *
*                      M A D E V E N T                     *
*                                                          *
*                 *                       *                *
*                   *        * *        *                  *
*                     * * * * 5 * * * *                    *
*                   *        * *        *                  *
*                 *                       *                *
*                                                          *
*         VERSION 2.5.2                 2016-12-10         *
*                                                          *
*    The MadGraph5_aMC@NLO Development Team - Find us at   *
*    https://server06.fynu.ucl.ac.be/projects/madgraph     *
*                                                          *
*               Type 'help' for in-line help.              *
*                                                          *
************************************************************
INFO: load configuration from /scratch/cms/Datos/ExclusiveTTbar5Flavourp/Cards/me5_configuration.txt  
INFO: load configuration from /home/camilo/HEPTools/MadGraph/MG5_aMC_v2_5_2-root6/input/mg5_configuration.txt  
INFO: load configuration from /scratch/cms/Datos/ExclusiveTTbar5Flavourp/Cards/me5_configuration.txt  
Using default text editor "vi". Set another one in ./input/mg5_configuration.txt
generate_events run_01
The following switches determine which programs are run:
/--------------------------------------------------------------------------------------------------\
|  1. Choose the shower/hadronization program:                           shower = Not installed    |
|  2. Choose the detector simulation program:                          detector = Requires a shower|
|  3. Run an analysis package on the events generated:                 analysis = No analysis tool interfaced to MG5aMC.|
|  4. Decay particles with the MadSpin module:                          madspin = OFF              |
|  5. Add weights to events for different model hypothesis:            reweight = OFF              |
\--------------------------------------------------------------------------------------------------/
  Either type the switch number (1 to 5) to change its setting,
  Set any switch explicitly (e.g. type 'madspin=ON' at the prompt)
  Type 'help' for the list of all valid option
  Type '0', 'auto', 'done' or just press enter when you are done.
 [0, auto, done, madspin=ON, madspin=OFF, madspin, reweight=ON, reweight=OFF, reweight, parton, ... ][60s to answer]

Por el momento se usarán las opciones por defecto, i.e. (ambas cero)

  • La segunda opción (mas adecuada para el scripting), es la de salir de la linea de comandos de MG, e ir a la carpeta (dentro de la carpeta de salida) y ejecutar
./bin/mg5_aMC

Lo cual como en el primer caso mostrara las opciones del uso de programas complementarios (por el momento 0, 0)

Niveles de la simulación


Usando las diferentes herramientas que se instalaron dentro de MG, se puede escoger hasta que punto se quieren simular los eventos, esto es:
  1. MadEvent: Cuando solo se usa la utilidad de MadEvent?, se llega hasta el nivel partónico en la simulación (opciones por defecto).
  2. Pythia: Esta herramienta simula la hadronización y las lluvias (Showering). Cuando se ejecuta ./bin/mg5_aMC o se hace launch se da la opción 1, o se ejecuta directamente ./bin/madevent opciones 0 y 0.
  3. Delphes: En esté punto se puede simular la interacción con los diferentes detectores. Cuando se ejecuta madevent o se hace launch se da la opción 2.

Anterior Descarga e instalación(external link) | Tarjetas de configuración Siguiente(external link)


...page...
Anterior Sintaxis Básica(external link) | Simulación Hadrónica Siguiente(external link)


Tarjetas de configuración


Dependiendo del grado de la simulación (partónico, hadrónico o detector), MG generará las llamadas tarjetas de configuración de las diferentes herramientas (MadEvent, Pythia, Delphes), dentro de la carpeta Cards en la carpeta de salida del programa. Cada una de estas tarjetas indica como se configuró los programas para la generación de los eventos. A continuación se listan algunas de ellas, y se muestran ejemplos de modificaciones posibles.

proc_card_mg5.dat

Ésta tarjeta se genera automáticamente, cuando se genera la salida (output) de MG, contiene el proceso que se declaró.
Ejemplo: presione [ + ] para ver
[+]

param_card.dat

En ésa tarjeta se tienen los parámetros del modelo que se usa para generar los eventos. Por defecto el modelo estándar (SM).
Nota: Para ver como se implementan otros modelos ver https://arxiv.org/abs/1507.06349(external link).

Ejemplo: presione [ + ] para ver
[+]

run_card.dat

En la run card, se controlan los parámetros de la simulación. Contiene, por ejemplo el número de eventos a generar (por defecto 10000, no se recomienda mas de 50000), las propiedades del haz de partículas del acelerador, restricciones cinemáticas, etc.
Ejemplo: presione [ + ] para ver
[+]

pythia_card.dat

Controla el funcionamiento de pythia, que es la herramienta encargada de hacer la hadronización,

Ejemplo: presione [ + ] para ver
[+]

pgs_card.dat y/o delphes_card.dat

Controla los parámetros del detector, en este tutorial se usa Delphes configurado para CMS (Por defecto).
Ejemplo: presione [ + ] para ver
[+]

plot_card.dat o pythia8_card.dat

Controla los plots que se quieren hacer luego de que se generan los eventos.
Ejemplo: presione [ + ] para ver
[+]

me5 configuration.txt

En ésta tarjeta se encuentran las configuraciones várias, como el uso del cluster, compiladores, uso del navegador, etc.
Ejemplo: presione [ + ] para ver
[+]


Anterior Sintaxis Básica(external link) | Simulación Hadrónica Siguiente(external link)


...page...
Anterior Tarjetas de configuración(external link) | Merging - Matching Siguiente(external link)


Simulación Hadrónica

Como se dijo anteriormente, la simulación hadrónica, se hace luego de que MadEvent(ME) genera los eventos a nivel partónico. En éste tutorial se utilizará el paquete Pythia8 previamente instalado. Recordando que Pythia se puede ejecutar directamente desde MG, creando una tarjeta de configuración pythya8.dat en la carpeta Cards y ejecutando ./bin/mg5_aMC, o ejecutando en la carpeta de salida ./bin/madevent opciones 0 y 0. A continuación se muestran las tres opciones suponiendo una carpeta de salida (output) llamada "InclusiveTTbar1J".

Directamente desde MG:
Primero se ejecuta MG,
./PATH_TO_MADGRAPH/bin/mg5_aMC

Luego se introducen cuales procesos se quieren simular
define p = u u~ d d~ c c~ s s~ b b~ g
define j = p
generate p p > t t~ @0
add process p p > t t~ j @1
output InclusiveTTbar1J
launch

Nota: En la primera linea se define el elemento j (jet) como una multi-partícula igual al proton (se puede definir como se quiera).
En la segunda linea se pide que el proceso que se genere sea el de dos protones yendo a un par quarks top anti-top, donde "@0" quiere decir que es no hay elementos extras.
Por último en la tercera linea se le pide genere eventos de dos protones yendo a un par quarks top anti-top, donde "@1" quiere decir que el jet es un elemento extra.

A continuación, MadGraph mostrará un set de opciones, así:
************************************************************
*                                                          *
*                      W E L C O M E to                    *
*             M A D G R A P H 5 _ a M C @ N L O            *
*                      M A D E V E N T                     *
*                                                          *
*                 *                       *                *
*                   *        * *        *                  *
*                     * * * * 5 * * * *                    *
*                   *        * *        *                  *
*                 *                       *                *
*                                                          *
*         VERSION 2.5.2                 2016-12-10         *
*                                                          *
*    The MadGraph5_aMC@NLO Development Team - Find us at   *
*    https://server06.fynu.ucl.ac.be/projects/madgraph     *
*                                                          *
*               Type 'help' for in-line help.              *
*                                                          *
************************************************************
INFO: load configuration from /scratch/cms/Datos/Trash/ejemplo/Cards/me5_configuration.txt  
INFO: load configuration from /home/camilo/HEPTools/MadGraph/MG5_aMC_v2_5_2-root6/input/mg5_configuration.txt  
INFO: load configuration from /scratch/cms/Datos/Trash/ejemplo/Cards/me5_configuration.txt  
Using default text editor "vi". Set another one in ./input/mg5_configuration.txt
generate_events run_01
The following switches determine which programs are run:
/--------------------------------------------------------------------------------------------------\
|  1. Choose the shower/hadronization program:                           shower = OFF              |
|  2. Choose the detector simulation program:                          detector = OFF              |
|  3. Run an analysis package on the events generated:                 analysis = No analysis tool interfaced to MG5aMC.|
|  4. Decay particles with the MadSpin module:                          madspin = OFF              |
|  5. Add weights to events for different model hypothesis:            reweight = OFF              |
\--------------------------------------------------------------------------------------------------/
  Either type the switch number (1 to 5) to change its setting,
  Set any switch explicitly (e.g. type 'madspin=ON' at the prompt)
  Type 'help' for the list of all valid option
  Type '0', 'auto', 'done' or just press enter when you are done.
 [0, auto, done, delphes, delphes=ON, delphes=OFF, shower=OFF, shower=PYTHIA8, shower, detector=OFF, ... ][60s to answer] 
>


donde se pone 1 para activar la opción de shower, así:
The following switches determine which programs are run:
/--------------------------------------------------------------------------------------------------\
|  1. Choose the shower/hadronization program:                           shower = PYTHIA8          |
|  2. Choose the detector simulation program:                          detector = OFF              |
|  3. Run an analysis package on the events generated:                 analysis = No analysis tool interfaced to MG5aMC.|
|  4. Decay particles with the MadSpin module:                          madspin = OFF              |
|  5. Add weights to events for different model hypothesis:            reweight = OFF              |
\--------------------------------------------------------------------------------------------------/
  Either type the switch number (1 to 5) to change its setting,
  Set any switch explicitly (e.g. type 'madspin=ON' at the prompt)
  Type 'help' for the list of all valid option
  Type '0', 'auto', 'done' or just press enter when you are done.
 [0, auto, done, delphes, delphes=ON, delphes=OFF, shower=OFF, shower=PYTHIA8, shower, detector=OFF, ... ][60s to answer] 
>

finalizando con la cantidad de enters necesarios para que el programa se ejecute. Pythia entrega como resultado un archivo comprimido llamado (por defecto) "tag_1_pythia8_events.hepmc.gz"

Usando una targeta de configuración:
Dentro de la carpeta "InclusiveTTbar1J/Cards/" está la tarjeta por defecto de pythia8 llamada "pythia8_card_default.dat", si se copia esta tarjeta con el nombre de "pythia8_card.dat" (con los cambios que se necesiten) en este mismo directorio y se ejecuta Madgraph, la opción de usar Pythia8 estará por defecto. (muy útil cuando se hace scripting)


Usando MadEvent?
Luego de haber generado la carpeta de salida, se procede a dicha carpeta y se llama a madevent
./bin/madevent

luego que se abra la linea de comandos del madevent, se pone lo siguiente:
ExclusiveTTbar>pythia8 run_##
>0
>0

donde ## es el número del run que se quiere hadronizar con Pythia.


Anterior Tarjetas de configuración(external link) | Merging - Matching Siguiente(external link)


...page...
Anterior Simulación Hadrónica(external link) | Simulación del detector Siguiente(external link)


Merging - Matching

El objetivo de cualquier procedimiento de Matching (emparejamiento) de parton-jets es principalmente evitar la superposición entre descripciones en el espacio de fase dadas por generadores de elementos de matriz y softwares de showering o hadronización, cuando se simula un proceso de múltiples jets. Podría surgir la pregunta de ¿porque usar ambos en primer lugar? La motivación es la siguiente:
  • Los programas Monte Carlo de Parton Shower (PS) como Pythia y Herwig describen la radiación de los partones como sucesivas emisiones del parton utilizando técnicas de cadena de Markov basadas en factores de forma Sudakov. Esta descripción es formalmente correcta sólo en el límite de las emisiones blandas y colineales. Sin embargo, para la producción de showering de radiación de QCD duros y ampliamente separados, ésta descripción se descompone debido a la falta de términos de subleading e interferencia. Para ese caso, es necesario utilizar las amplitudes completas a nivel de árbol (perturbative QCD) para la producción de partículas pesadas más partes duras adicionales.
Así la descripción del Elemento Matriz (ME) diverge cuando los componentes se vuelven suaves o colineales, mientras que la descripción de la PS se rompe cuando los partos se vuelven duros y están muy separados

Para realizar un buen merging (primera aprox, para una descripción completa ver la referencia al final) se debe de tener en cuenta dos variables sobre las cuales se debe cortar: xqcut y qcut. La primera se configura en MG (se configura en la run_card.dat) y la segunda en Pythia (pythia8_card.dat). Para encontrar los valores óptimos de las variables de merging debe realizarse la simulación de los eventos del proceso de interés por MG y Pythia, y para cada valor del xqcut se debe realizar un scan sobre qcut hasta encontrar un valor óptimo, teniendo en cuenta que xqcut < qcut. El valor óptimo se determina cuando la sección eficaz se estabiliza.

Nota: Los siguientes parámetros de la run card deben ser ajustados:
30.0
= xqcut ! minimum kt jet measure between partons
#*********************************************************************
# Store info for systematics studies
*
# WARNING: Do not use for interference type of computation
*
#*********************************************************************
False = use_syst ! Enable systematics studies
#
Y en la pythia8 card
! --------------------------------------------------------------------
! Parameters relevant only when performing MLM merging, which can be
! turned on by setting ickkw to ’1’ in the run_card and chosing a
! positive value for the parameter xqcut.
! For details, see section ’Jet Matching’ on the left-hand menu of
!
http://home.thep.lu.se/~torbjorn/pythia81html/Welcome.html
! --------------------------------------------------------------------
! If equal to -1.0, MadGraph5_aMC@NLO will set it automatically based
! on the parameter ’xqcut’ of the run_card.dat
JetMatching:qCut
= 45.0
! Use default kt-MLM to match parton level jets to those produced by the
! shower. But the other Shower-kt scheme is available too with this option.
JetMatching:doShowerKt
= on
! A value of -1 means that it is automatically guessed by MadGraph.
! It is however always safer to explicitly set it.
JetMatching:nJetMax
= 2


Ver mas en madgraph-wiki(external link)

Anterior Simulación Hadrónica(external link) | Simulación del detector Siguiente(external link)


...page...
Anterior Simulación Hadrónica(external link) | CMS-GFIF Principal(external link)


Simulación del Detector





Anterior Simulación Hadrónica(external link) | CMS-GFIF Principal(external link)






El documento original está disponible en https://clustercien.udea.edu.co/web/tiki-index.php?page=MadGraph