Sho's website

FeynLecture: Tools for BSM Physics

Lecture slides
Materials for “Lecture A”
Short URL for this page


This is an introductory course of computer-based collider physics.

This course consists of two lectures. Lecture A focuses on how to use the FeynArts+FormCalc+LoopTools suite, which is widely used for automatic calculation of scattering amplitudes, as well as FeynRules, which helps to express your model (Lagrangian) in computer codes.

Lecture B is a very basic introduction of MadGraph5, i.e., collider simulation. A brief introduction of how to analyze the generated events using Python codes are also included.


In Lecture A, you will learn how to automate your Feynman-diagram calculation.

  • Using FeynArts, you can automatically generate Feynman diagrams for any Standard Model processes.
  • Using FormCalc, you can automatically calculate the tree-level amplitudes of 2-to-2 Standard Model processes.
  • Using FormCalc and LoopTools, you can automatically calculate 1-loop level amplitudes of simple Standard Model processes.
  • You have a basic idea of how to implement your model with FeynRules.
  • You can perform the amplitude calculation above with your implemented FeynRules model.

In Lecture B, you will learn the basic idea of collider simulation using MadGraph5.

  • You can explain what the term “Monte Carlo simulation” means.
  • You can calculate the cross section of basic Standard Model process.
  • With FeynRules, you can calculate the cross section of simple processes in (theoretically-) “any” models.
  • You have a basic understanding of [[Pythia]]/[[Delphes]] detector simulation.
  • You can invoke [[Pythia]]/[[Delphes]] detector simulation.
  • You have a basic idea of how to analyze the generated events, using [[Python]].

Historical Information

Lecture A is based on the lecture I gave in February 2012 at Osaka University with request from Odakin. It was designed as 2.5 days lecture, and it took 16 hours including the environment set-up.

Then, in October 2016 I was asked by Seong Chan to give a 4-day lecture course in Yonsei University, when I also include Lecture B.

Lecture Materials

Lecture slides are summarized in GitHub Page. Materials for “Lecture A” is maintained on GitHub. See releases for archive files.

Lecture A: Automated analytic calculation of matrix elements

Lecture B: Monte Carlo simulation

  • Lecture 0 : What is Monte Carlo simulation?
  • Lecture 1 : MadGaraph5 basic
    • , the most boring example
    • Theoretical knowledge
  • Lecture 2 : MadGaraph5 basic-plus
    • How to use other models?
    • MSSM cross sections
  • Lecture 3 : Detector simulation with Pythia-PGS + Delphes
  • Lecture 4 : Analysis


Oct. 2016 Yonsei University

Oct. 11 (Tue) 10:00‒12:00 (615B)
Installation help-desk (Lecture 0: precourse work)
Oct. 11 (Tue) 17:00‒19:00 (352)
Lecture A-1: FA+FC Tree-level amplitude
Oct. 12 (Wed) 10:00‒12:00 (B101)
Lecture B-1: MG5 Standard Model Tree-level
Oct. 12 (Wed) 17:00‒19:00 (352)
Lecture A-2: FeynRules for your own model
Oct. 13 (Thu) 10:00‒12:00 (615B)
Lecture B-2: MG5 for other models
Oct. 13 (Thu) 17:00‒19:00 (352)
Lecture A-3: LoopTools
Oct. 14 (Fri) 10:00‒12:00 (615B)
extra topics? (CheckMATE / MadAnalysis /
Oct. 14 (Fri) 17:00‒19:00 (352)
extra topics? (CheckMATE / MadAnalysis /

Feb. 2012 Osaka University

Feb. 8 (Wed) morning
Installation help-desk and Lecture 0: precourse work
Feb. 8 (Wed) afternoon + Feb. 9 (Thu) morning
Lecture A-1: FA+FC Tree-level amplitude
Feb. 9 (Thu) afternoon + Feb. 10 (Fri) morning
Lecture A-2: FeynRules for your own model
Feb. 10 (Fri) afternoon
Lecture A-3: LoopTools

Installation Tips

As you know, you have to AppendTo[$Path, /the/directory/of/the/packages] to use FeynArts etc. You can use this $Path as the default configuration if you add these commands into the "initialization file" found in $HOME/.Mathematica/Kernel/init.m, $HOME/Library/Mathematica/Kernel/init.m, etc. (depending on the platform).

Actually I installed all the packages I use in $HOME/Documents/Mathematica/lib/, and wrote the following commands in init.m:

Global`$LibDirectory=FileNameJoin[{$HomeDirectory, "Documents", "Mathematica", "lib"}]
AppendTo[$Path, Global`$LibDirectory];
$Path = Join[$Path, Select[FileNames["*", Global`$LibDirectory], FileType[#] == Directory &]];

which add all the directories $HOME/Documents/Mathematica/lib/* into $Path.