permalink: /aio/index.html —
Introduction to LHC Event Generation Chain
Overview
Teaching: 30 min
Exercises: 5 minQuestions
What are the monte carlo tools used to generate events at LHC?
How do the tools differ from each other?
Objectives
Learn about common monte carlo tools at the LHC
Introduce the steps involved in LHC event generation
Particle Physics collider experiments involve the study of scattering processes wherein two initial particles scatter into final particles leading to two or more particles in the final state. In the present times, the Large Hadron Collider at CERN is the largest particle collider and it consists of four experiments, namely, the general purpose experiments viz. ATLAS and CMS, the LHCb which concerns the flavour physics studies, and the ALICE experiment which involves studies related to Heavy-ions. There are also other ongoing experiments such as the Belle2 experiment, and others. Moreover, future colliders such as the Future Circular Collider (ee, hh), International Linear Collider (ee), and Muon Colliders are also being planned.
The particle physicist working on the present and future collider experiments (in particular, the detector) often make use of “Monte Carlo Event Generators” to study the physics process of interest. A Monte Carlo Event Generator is a tool that makes use of the “Monte Carlo” technique to simulate a scattering process (‘event’). In particular, the typical workflow involved in particle physics is as follows - Theorists design physics models that may be tested at the collider experiments; these physics models are then brought to a form such that they can be used computationally in Monte Carlo Event Generators. The model building stage can be achieved by using, for instance, FeynRules framework. The output of tools like FeynRules is often produced in a Universal Feynman Rules Output (UFO) files which are then shared by theorist/phenomenologist on HEP forums such as this one LINK.
The obtained UFO files are then used in a Monte Carlo Event Generator that generates the (parton level) matrix elements for the physics process (for example, MadGraph5_aMC@NLO, Whizard). These parton level events then undergo a parton shower in software such as Pythia8. The parton-showered files are then processed so as to apply fast/full detector simulation. Monte Carlo tools forms the backbone of particle physics. These tools are not only useful in collider phenomenology, but also in the neutrino experiments.
However, Monte Carlo Event Generators are often used as blackboxes. Therefore, it is crucial to decipher the underlying physics and computational techniques that are used in the development of these tools, which will also lead to a better understanding of the limits of these tools. This tutorial is dedicated to understanding the main methods that are used by the Monte Carlo Event Generator as well as learning some of the well-know event generators like the MadGraph5_aMC@NLO, Pythia8 and Whizard3.
As optional studies, one will also learn some basics of Generative Adversarial Neural Network to generate Monte Carlo Samples.
Key Points
Introduction to Monte Carlo Integration Techniques
Overview
Teaching: 30 min
Exercises: 5 minQuestions
How to integrate a function using a monte carlo method?
What is the acceptance-rejection method?
Objectives
Understand basics of Monte Carlo integration technique
(Pseudo) Random Numbers:
Random numbers are a sequence of numbers \(r_1, r_2, ...r_N\) such that there are no correlations between \(r_i\) and \(r_j\), where \(i,j \in N\). However, computationally, it is not possible to define a sequence of truly random numbers. One may define pseudorandom numbers on a computer using for example the following equation:
[r_{i+1} = (a r_{i} + c)~ mod(M)]
such that \(r_{1}\) is a number provided by the user and referred to as “seed”. The following python code shows how one may generate their own random numbers (using the linear congruent algorithm):
import math
def genrandom(ri, a, b, M):
ri1 = (a * ri + b) % M
return ri1
Using this function, one can generate a sequence random numbers. One notices that the random numbers tends to repeat themselves after a sequence of length M. For instance, the following program shows the sequence of numbers generated by the random number generator:
r, a, b, M = 1, 1, 1, 5
for i in range(M * 3):
r = genrandom(r, 1, 1, 5)
print(r)
Python comes alongwith modules, such as random
, numpy
, which may be used to generate random numbers. For instance, a uniform sequence of random numbers, that is, random numbers between [0, 1] may be generated by iterating over the following base program:
import random
random.random()
Monte Carlo Inegration Technique
In order to use the Monte Carlo Integration technique, we use the following observation that an integral \(\int_{a}^{b} f(x) dx\) can be written as \(\frac{b-a}{N} \Sigma_{i=1}^{N} f(x_i)\), where \(x_i\) belong to the phase space over which the integration is carried out. The following is the python implementation of the technique where we integrate the \(f(x) = 2x\) with b = 1, a = 0.
import random
def func(x):
return 2 * x
# evaluate f(x_i) at each point and add
Npoint = 100
fi_sum = 0
for i in range(Npoint): # we use 100 points
fi_sum += func(random.random())
# integration result
b = 1
a = 0
N = Npoint
result = (b - a) / N * fi_sum
print(result)
Notice that the obtained result may fluctuate depending on how many number of points are used to integrate.
Acceptance-Rejection Technique
A common Monte Carlo technique in integrating a function is the acceptance-rejection method which proceeds as follows:
- Generate a random number, x uniformly distributed between [xmin, xmax].
- A second random number, u, is then generated between [0, fmax].
-
Accept x, if u < f(x), otherwise reject x.
Python based examples to be added for acceptance-rejection method.
Key Points
How to make your own Monte Carlo Event Generator
Overview
Teaching: 30 min
Exercises: 5 minQuestions
How to make your own monte carlo event generator using basic python?
Objectives
Motivation on how the a monte carlo event generator works?
We may make use of the following papers/software to develop this episode.
- Papers:
- A. Papaefstathiou, How-to: write a parton-level Monte Carlo particle physics event generator. Eur. Phys. J. Plus 135, 497 (2020).
- A. Desai, Monte Carlo Event Generator for the ABC Model (Pre-print), https://zenodo.org/record/8181098.
-
Software:
Key Points
Madgraph5 - Matrix Element Generator
Overview
Teaching: 30 min
Exercises: 5 minQuestions
How to calculate cross section and generate events using Madgraph5?
Objectives
Learn about Madgraph5
Key Points
Hadronization - Pythia8
Overview
Teaching: 30 min
Exercises: 5 minQuestions
How to calculate cross section and generate events using Pythia8?
Objectives
Learn about Madgraph5
Key Points
LHC Event Generation Chain: Madgraph5_aMC@NLO and Pythia8
Overview
Teaching: 30 min
Exercises: 5 minQuestions
How to use Madgraph5_aMC@NLO and Pythia8 together?
Objectives
Key Points
Lepton Collider Event Generator: Whizard
Overview
Teaching: 30 min
Exercises: 5 minQuestions
How to generate events using Whizard?
Objectives
Learn about Whizard3
Key Points
(Optional) Generative Adversarial Neural Network to generate LHC events
Overview
Teaching: 30 min
Exercises: 5 minQuestions
How to use Generative Adversarial Neural Network to generate LHC events?
Objectives
Key Points
Summary
Overview
Teaching: 20 min
Exercises: 20 minQuestions
Objectives
Key Points