Wolfram Language Paclet Repository
Community-contributed installable additions to the Wolfram Language
Computes 2-to-2 scattering matrix amplitudes for arbitrary quantum field theories
            Contributed by: Andreas Ekstedt
Oliver Gould
Joonas Hirvonen
Benoit Laurent
Lauri Niemi
Philipp Schicho
Jorinde van de Vis
          
Computes 2-to-2 scattering matrix amplitudes for arbitrary quantum field theories
 
            
              To install this paclet in your Wolfram Language environment,
              evaluate this code:
              
                PacletInstall["WallGo/WallGoMatrix"]
              
            
                To load the code after installation, evaluate this code:
                
                  Needs["WallGo`WallGoMatrix`"]
                
              
We consider an SU(3) gauge theory in the adjoint representation, with Dynkin index {1,1}and representation dimension R = 8.
| In[1]:= |  | 
No scalar fields are included in the model:
| In[2]:= |  | 
Fermions are implemented as Weyl spinors. To construct one Dirac fermion, a left-handed and a right-handed Weyl fermion are combined:
| In[3]:= |  | 
For QCD, we introduce six fermion generations (Nf = 6):
| In[4]:= | ![RepFermion3Gen = {RepFermion1Gen, RepFermion1Gen, RepFermion1Gen, RepFermion1Gen, RepFermion1Gen, RepFermion1Gen} // Flatten[#, 1] &;](https://www.wolframcloud.com/obj/resourcesystem/images/c2d/c2d03976-f5c0-4c58-a9fc-287fdf2643fc/4ff2905fd2ceecde.png) | 
The input tensors defining the gauge interactions are then allocated via:
| In[5]:= | ![{gvvv, gvff, gvss, \[Lambda]1, \[Lambda]3, \[Lambda]4, \[Mu]ij, \[Mu]IJ, \[Mu]IJC, Ysff, YsffC} = AllocateTensors[Group, RepAdjoint, CouplingName, RepFermion3Gen, RepScalar];](https://www.wolframcloud.com/obj/resourcesystem/images/c2d/c2d03976-f5c0-4c58-a9fc-287fdf2643fc/56e7f68126b71547.png) | 
Finally, the model is imported into the working environment using:
| In[6]:= | ![ImportModel[Group, gvvv, gvff, gvss, \[Lambda]1, \[Lambda]3, \[Lambda]4, \[Mu]ij, \[Mu]IJ, \[Mu]IJC, Ysff, YsffC, Verbose -> False];](https://www.wolframcloud.com/obj/resourcesystem/images/c2d/c2d03976-f5c0-4c58-a9fc-287fdf2643fc/7d1d41103f79c3d2.png) | 
We now define the particle content of the model using CreateParticle.
Representation for the top quark:
| In[7]:= | ![RepTop = CreateParticle[{1, 2}, "F", mq2, "Top"]](https://www.wolframcloud.com/obj/resourcesystem/images/c2d/c2d03976-f5c0-4c58-a9fc-287fdf2643fc/34347cb7ec534fdd.png) | 
| Out[7]= |  | 
Representation for the gluon:
| In[8]:= | ![RepGluon = CreateParticle[{1}, "V", mg2, "Gluon"]](https://www.wolframcloud.com/obj/resourcesystem/images/c2d/c2d03976-f5c0-4c58-a9fc-287fdf2643fc/14af82fe61439f51.png) | 
| Out[8]= |  | 
Representation for the five light quarks:
| In[9]:= | ![LightQuarks = CreateParticle[{3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, "F", mq2, "LightParticle"]](https://www.wolframcloud.com/obj/resourcesystem/images/c2d/c2d03976-f5c0-4c58-a9fc-287fdf2643fc/6a3418630c9f9b99.png) | 
| Out[9]= |  | 
Out-of-equilibrium particles (e.g. heavy degrees of freedom such as the top quark and gluon) are collected as:
| In[10]:= |  | 
Light particles, which are never incoming states, are collected separately:
| In[11]:= |  | 
Generate a matrix element file truncated at leading logarithmic order, without exporting it to file.
| In[12]:= | ![MatrixElements = ExportMatrixElements[
  None,
  ParticleList,
  LightParticleList,
  {
   TruncateAtLeadingLog -> True,
   Format -> {"json", "txt"}
   }
  ]](https://www.wolframcloud.com/obj/resourcesystem/images/c2d/c2d03976-f5c0-4c58-a9fc-287fdf2643fc/2ce79988f87aa484.png) | 
| Out[12]= |  | 
Generate a matrix element file that includes all contributions, without truncation at leading logarithmic order. When the option TagLeadingLog -> True is used, leading-logarithmic enhancements are additionally marked with logEnhanced tags in the output.
| In[13]:= | ![OutputFile = "matrixElements.qcd";
MatrixElements = ExportMatrixElements[
   OutputFile,
   ParticleList,
   LightParticleList,
   {
    TruncateAtLeadingLog -> False,
    TagLeadingLog -> True,
    Format -> {"json", "txt"}
    }
   ] // Collect[#, logEnhanced] &](https://www.wolframcloud.com/obj/resourcesystem/images/c2d/c2d03976-f5c0-4c58-a9fc-287fdf2643fc/730a53d89225300b.png) | 


| Out[14]= |  | 
Wolfram Language Version 13
GNU General Public License v3.0 or later