Computerised calculation of ee2mm_1.gif

In this Mathematica notebook, I will demonstrate how to use computers to calculate ee2mm_2.gif. This supplements the calculation in Section 6.3 of my QFT lecture notes and uses the same notation etc. The goal of this notebook is to demonstrate that these calculations can be fully automatised, at least as long as there are no loops are involved.

This notebook runs through on my Linux laptop where I have installed all dependencies. If you want to run this on your own laptop, please install Package X by downloading this zip file and uncompressing it in your $UserBaseDirectory/Applications/ directory. Please also download the file qgraf.wl into the same directory.

To find this folder, you can execute the following code block

ee2mm_3.gif

Installing the diagram generator is more complicated and will not be part of this example.

Load Package X and QGraf

Once you have installed Package X and qgraf.wl we can load it here. Note that this will fail if you have not installed it correct.

ee2mm_4.gif

ee2mm_5.gif

ee2mm_6.gif

Following the recipe

Step 1-4: generating the amplitude

For the first four steps

Draw all Feynman diagrams.

assign momenta to all edges and Lorentz indices to all photon vertices

pick the end of any fermion line and follow the arrow backwards, evaluating as you go

multiply in the polarisation tensors for any external photons and propagators for each internal photon

We can use the diagram generator QGraf. Note that this section of the code has been disabled to avoid accidental deletion

ee2mm_7.gif

ee2mm_8.gif

ee2mm_9.gif

ee2mm_10.gif

ee2mm_11.gif

ee2mm_12.gif

As you can see, the code has generated the diagram we were after using the correct spinors but has dropped a factor of i. Since we will calculate ee2mm_13.gif this would drop out anyway. Also, note that the code has picked momenta labels ee2mm_14.gif for incoming and ee2mm_15.gif for outgoing momenta as well as ‘random’ Lorentz indices.

Please note that Package-X uses always lower indices. This is not formally correct but simplifies the notation and it can always be mapped on the more correct notation.

Step 5-7: finishing the amplitude

Let us relabel the outgoing momenta to match the lecture notes

contract any open index

ee2mm_16.gif

ee2mm_17.gif

if your diagram has any loops, integrate over the unconstrained momenta. If you have any internal fermion loops, calculate the trace over their gamma matrices.

Since we have no loops to integrate, we do nothing

you now have the amplitude M

ee2mm_18.gif

ee2mm_19.gif

Steps 8-10: squaring the amplitude

We can perform these operations manually or we use the function FermionSpinSum to perform steps 8-10

square the amplitude as ee2mm_20.gif

ee2mm_21.gif

ee2mm_22.gif

Note how we have now introduced the index ee2mm_23.gif to avoid collisions!

if you calculate unpolarised scattering, sum over final-state and average over initial-state polarisations.

for fermions, this will result in a trace of γ matrices

ee2mm_24.gif

ee2mm_25.gif

We can now contract the open indices to write terms of scalar products.

ee2mm_26.gif

ee2mm_27.gif

We could express this in terms of s, t, u using

ee2mm_28.gif

ee2mm_29.gif

Kinematics

ee2mm_30.gif

If we want to calculate for example, dσ/dΩ it would be better to write this in terms of cosθ and φ. To do this, let us define the scalar product as

ee2mm_31.gif

and parameterise our momenta (here we once again use a function that is not part of the normal Mathematica suite, therefore the following block is disabled).

ee2mm_32.gif

ee2mm_33.gif

ee2mm_34.gif

We can verify that ee2mm_35.gif, ee2mm_36.gif, and ee2mm_37.gif

ee2mm_38.gif

ee2mm_39.gif

More importantly, we can calculate ee2mm_40.gif

ee2mm_41.gif

ee2mm_42.gif

Our matrix element can be written as

ee2mm_43.gif

ee2mm_44.gif

The velocity of the muon is defined as

ee2mm_45.gif

ee2mm_46.gif

ee2mm_47.gif

Step 11-12: cross section

We can now calculate the cross section as

calculate the cross section as

ee2mm_48.gif

ee2mm_49.gif

Using what we know about the phase space

ee2mm_50.gif

We have

ee2mm_51.gif

ee2mm_52.gif

ee2mm_53.gif

ee2mm_54.gif

In the lecture we then set m=0 and identified the velocity of the muon β

ee2mm_55.gif

ee2mm_56.gif

We can now set for example the muon mass to zero, i.e. β=1

ee2mm_57.gif

ee2mm_58.gif

or calculate the total cross section

integrate over phase space

ee2mm_59.gif

ee2mm_60.gif

Plots

We can now show our result. For example at the KLOE experiment which has ee2mm_61.gif, we have

ee2mm_62.gif

ee2mm_63.gif

ee2mm_64.gif

ee2mm_65.gif

ee2mm_66.gif

ee2mm_67.gif

ee2mm_68.gif

ee2mm_69.gif

ee2mm_70.gif

Going beyond the lecture (not examinable)

We can also calculate the one-loop corrections to this.

ee2mm_71.gif

ee2mm_72.gif

ee2mm_73.gif

ee2mm_74.gif

ee2mm_75.gif

Note that we now have both closed fermion loops (first row of diagrams) and unconstrained momenta. The generator chose a specific routing for us, i.e. it identified a momentum to be the loop momentum ee2mm_76.gif. We can use the technology we are developing in Chapter 7 to calculate this in dimensional regularisation

Export for the web

ee2mm_77.gif

ee2mm_78.gif

Created with the Wolfram Language