3
$\begingroup$

I am totally confused: I can't distinguish the packages FeynRules, FeynCalc, FeynArts, FormCalc, LoopTools properly.

Once I installed FeynRules I think. It seems to include the packages FeynCalc and FeynArts. Am I right? Does it also include LoopTools?

Is FormCalc = FeynCalc? Or are these different packages? What are the differences?

At the end I would like to calculate cross sections for Feynman diagrams. Do I have everything for that with FeynRules? Do I need to install FORM for using FormCalc or FeynCalc?

Looking in the internet is confusing me more and more. There are all these names mixed somehow…

Do I have loaded FeynArts and FeynCalc when I write

$LoadFeynArts = True;

Needs["FeynCalc`"];

? Or do I need to load FeynCalc extra?

Thank you for your answers in advance!

$\endgroup$
  • 2
    $\begingroup$ FeynCalc can automatically patch the source code of FeynArts. However, the patched code is slightly modified (some names are modifiled). FormCalc and FormCalc are two totally different packages. FormCalc uses FORM to reduce amplitudes. FeynRules generates the model files that can be imported by FeynArts. LoopTools is a packge to numerically evaluate Passarino-Veltman scalar integrals. $\endgroup$ – Wen Chern Aug 1 at 20:12
  • 3
    $\begingroup$ @WenChern "FormCalc and FormCalc are two totally different packages. " Yeah, one can become quite puzzled with these words... ;) $\endgroup$ – Henrik Schumacher Aug 1 at 21:00
  • 1
    $\begingroup$ @ Henrik Schumacher Sorry, I meant "FeynCalc and FormCalc". $\endgroup$ – Wen Chern Aug 1 at 21:14
  • $\begingroup$ @WenChern Thank you. Now I know they are all different packages. Do I need to install FORM for FormCalc? What is better FormCalc or FeynCalc and why? $\endgroup$ – Kathi Aug 2 at 10:15
  • 1
    $\begingroup$ @Kathi Yes. In order to use FormCalc, you have to have FORM installed. The advantage of FormCalc is that it is much faster than FeynCalc, since it uses FORM. However, FeynCalc is more user-friendly. Because by using FeynCalc, you can do the calculation step by step, and sometimes we do need to know the intermediate result. $\endgroup$ – Wen Chern Aug 2 at 17:27
3
$\begingroup$

A typical 1-loop calculation can be roughly (I'm obviously oversimplifying things here) understood as a sequence of the following steps

  1. You write down the Largrangian of your model, e.g. QCD, QED, EW SM, MSSM etc. and generate the corresponding Feynman rules. This is something FeynRules can do for your automatically.

  2. You use the obtained Feynman rules to generate Feynman diagrams for the process you are interested in. This can be done with FeynArts. The rules from FeynRules can be conveniently exported into the FeynArts format, which makes the usage of FeynRules+FeynArts very convenient.

However, it is worth noting that FeynRules can also export Feynman rules to many other formats. Furthermore, Feynman diagrams can be also generated using QGRAF, although QGRAF lacks a Mathematica interface and is more popular among multiloop people than people doing solely 1-loop calculations.

Finally, the diagram generator (be it FeynArts, QGRAF or anything else) gives you a list of amplitudes that need to be evaluated.

  1. You can handle the amplitude evaluation using your own codes written e.g. in FORM, Mathematica, Maple, Reduce etc. or you can use one of the existing tools on the market. If you employ FeynArts, then FormCalc or FeynCalc are quite convenient, as they can import the output of FeynArts directly. Again, there are many other packages for doing similar things, e.g. Package-X or HEPMath .

  2. At 1-loop it is convenient to handle loop integrals using the Passarino-Veltman technique, where you first reduce all tensor integrals to scalars and then evaluate the resulting scalar functions (Passarino-Veltman functions) numerically or analytically. Numerical evaluation is usually more common (especially among pheno people), so one can do it using tools such as LoopTools, Collier etc. Again, for people who employ FeynCalc or FormCalc, LoopTools is often the first choice.

  3. At the end of the day you need to integrate over the phase space if you are interested in a cross-section, decay rate or a similar observable. Some packages like FormCalc come with special routines for automatizing this step. Otherwise one can also write some code by hand, employing popular libraries for numerical MC integration such as Cuba.

Notice that there are frameworks like MadGraph or GoSam that essentially implement all the above steps in one package. But depending on what you want to do, they might offer less flexibility.

FORM by itself does not calculate Feynman diagrams for you. It is a symbolic manipulation system which can be used to write codes for QFT calculations. It has some nice things like Dirac algebra or index contractions working out-of-the box, though. You are free to write your symbolic evaluation codes using FORM (or Mathematica or Maple) from scratch, but depending on your programming skills that might take quite some time.

In practice, people often adopt a hybrid approach: Do some parts of the calculation using the existing packages (like FeynCalc or FormCalc) and employ some hand-written codes (e.g. in FORM) for the rest.

The differences between FeynCalc and FormCalc have already been mentioned in the comments.

So you already know that these are two completely different packages maintained by different people and following different philosophies.

I'd just like to add that in FormCalc you have the CalcFeynAmp routine that handles the evaluation of the amplitude and does 90% of work for you. It's fast and you don't necessarily need to understand every step of the calculation. In FeynCalc you have hundreds of functions for doing different things and combining them in a suitable way might be nontrivial. If you don't understand how to calculate Feynman diagrams by pen and paper, you might very likely mess it up also when using FeynCalc.

However, if you need to do something more sophisticated than calculating a matrix element squared, FeynCalc might be a better fit, before you start writing own codes from scratch.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.