~maddevelopers/mg5amcnlo/GGVV_plugin

1 by Valentin Hirschi
1. First version of the GGVV amp plugin for MG5aMC which can in principle
1
######################################################################
2
#                                                                    #
3
#                          GGVV MG5aMC plugin                        #
4
#																	 #
5
#  for the computation of the virtual ME of any process of the class #
6
#                             g g > V^* V^* 						 #
7
#  with arbitrary SM vector V decays.								 #
8
#																	 #
9
#                        Author: Valentin Hirschi                    #
10
#                                                   			     #
11
#  Based on analytical FormFactors provided in                       #
12
#                                                                    #
13
#  Andreas von Manteuffel, Lorenzo Tancredi:                         #
14
#  "The two-loop helicity amplitudes for gg -> V1V2 -> 4 leptons",   #
15
#  arXiv:1503.08835                                                  #
16
#                                                                    #
17
######################################################################
18
19
20
1. Installation and requirements
21
--------------------------------
22
23
1.1 GMP, CLN and GINAC
24
----------------------
25
26
The following three dependencies must be installed, in this order, and
27
prior to using this plugin:
28
29
GMP
30
CLN
31
GINAC
32
33
1.2 GGVVamp
34
-----------
35
36
Then the library of the in-house version of the GGVVAmp must be compiled
37
in the directory <MG5aMC_root_path>/PLUGIN/GGVV/ggvvamp-1.0.
38
First fill in the value of the following three Makefile variables:
39
40
GMP_LOCATION   = <SPECIFY_YOUR_GMP_INSTALLATION_PREFIX_HERE>
41
CLN_LOCATION   = <SPECIFY_YOUR_CLN_INSTALLATION_PREFIX_HERE>
42
GINAC_LOCATION = <SPECIFY_YOUR_GINAC_INSTALLATION_PREFIX_HERE>
43
44
in the file <MG5aMC_root_path>/PLUGIN/GGVV/ggvvamp-1.0/Makefile
45
46
Then both the static and dynamic libraries for GGVVamp can be compiled with:
47
48
cd <MG5aMC_root_path>/PLUGIN/GGVV/ggvvamp-1.0
49
make -j8 libggvvamp.a
50
make -j8 libggvvamp.so
51
52
Depending on your system the compilation can take several hours, so make sure
53
to specify a parallel compilation with as many cores as you have available.
54
55
You can quickly the sanity of your installation to this point by compiling
56
and running the standalone executable './GGVVME_no_thread':
57
58
cd <MG5aMC_root_path>/PLUGIN/GGVV/ggvvamp-1.0
59
make GGVVME_no_thread
60
./GGVVME_no_thread
61
62
The first kinematic configuration evaluated should return the following:
63
64
 ---------------------------------
65
 n  E  px  py  pz  m
66
 1   0.5000000E+03  0.0000000E+00  0.0000000E+00  0.5000000E+03  0.0000000E+00
67
 2   0.5000000E+03  0.0000000E+00  0.0000000E+00 -0.5000000E+03  0.0000000E+00
68
 3   0.5000000E+03  0.1090640E+03  0.4373705E+03 -0.1962062E+03  0.9118800E+02
69
 4   0.5000000E+03 -0.1090640E+03 -0.4373705E+03  0.1962062E+03  0.9118800E+02
70
 ---------------------------------
71
 One-loop ME:    4.1947022165801595
72
 two-loop ME:    173.44105071267427
73
 ---------------------------------
74
75
Notice that the 'One-loop ME' and 'two-loop ME' are *NOT* matrix evaluation
76
but just the sum of the real and imaginary part of all form-factors that are
77
only intended to be used as "hash output" to check the sanity of the installation.
78
79
1.3 Envrionment variables and linking
80
-------------------------------------
81
82
We recommend to make the lib directories of GMP, CLN and GINAC as well as the 
83
directory '<MG5aMC_root_path>/PLUGIN/GGVV/ggvvamp-1.0' available in your
84
environment variable LD_LIBRARY_PATH (as well as DYLD_LIBRARY_PATHS on MacOS)
85
so that this plugin can automatically detect their locations.
86
Alternatively, the corresponding installation prefixes can be speicified
87
explicitely in the following file of the plugin:
88
89
   <MG5aMC_root_path>/PLUGIN/GGVV/GGVV_dependencies_prefixes.dat
90
91
Beware however that having all the paths available in the environment variables
92
above mentionned is mandatory for using dynamic linking (which is quite preferrable
93
in this case since GGVV amp weighs more than a GB).
94
For this reason, the plugin uses static linking by default, but this behavior can
95
be changed prior the output of a process by running the following command in the
96
MG5_aMC GGVV command-line interface:
97
98
GGVV >set_linking_mode dynamic
99
100
or toggled back with
101
102
GGVV >set_linking_mode static 
103
104
2. Running and testing MG5aMC GGVV plugin
105
-----------------------------------------
106
107
Processes of the class 'g g > V^* V^*' with arbitrary SM vector V decays.
108
In many cases however the syntax to be used for generation is not directly straightforward
109
as we opted to generate the one-loop amplitude with MadLoop and only the two-loop amplitude
110
with GGVV, to allow for more possibilities.
111
112
It is therefore best to start by running the example process
113
  g g > e+ e- e+ e- 
114
including all box contributions (feature both Z-bosons and off-shell photons).
115
This will also serve as a cross-check of the correct behavior of the plugin.
116
Indeed, by running the following example cards, you will obtain the one-loop squared ME
117
for this process using GGVV amplitudes first and then with MadLoop standalone, and you
118
will be able to make sure the results match.
119
This can be done as follows for the output using GGVV amplitudes:
120
121
./bin/mg5_aMC --mode=GGVV PLUGIN/GGVV/CrossCheck_GGVV_epemepem.mg5
122
123
While for MadLoop standalone result the command is:
124
125
./bin/mg5_aMC PLUGIN/GGVV/CrossCheck_ML_epemepem.mg5
126
127
These cards are commented and the reader is encouraged to read them in order to
128
gain an understanding of how the generation commands work.
129
Also, the expected output of the code is included in the comments of the card
130
and can be used for validation.
131
132
Finally, notice that the GGVV UFO model store in 'PLUGIN/GGVV/GGVV_UFO_model' has
133
special external parameters that are intended to steer the computation of GGVV amplitudes.
134
These can be accessed and modified in the param_card.dat of the output in:
135
136
<PROC_OUTPUT>/Cards/param_card.dat
137
138
and are:
139
140
  40001 2.0e+00        # n_loops
141
  40002 1.0e-07        # requiredRelativeAccuracy
142
  40003 5.0e+00        # NFforAlphaSRunning
143
  50001 1.0e+00        # include_d_quark 
144
  50002 1.0e+00        # include_u_quark 
145
  50003 1.0e+00        # include_s_quark 
146
  50004 1.0e+00        # include_c_quark 
147
  50005 1.0e+00        # include_b_quark 
148
  50006 1.0e+00        # include_t_quark 
149
150
Most importantly you can freely toggle between computing the 1-loop squared
151
and the 2-loop x 1-loop by adjusting the paramter n_loops from 1.0 to 2.0.
152
153
The number of flavours specified only the parameter Nf that will appear
154
in the running of the LO contribution, so that the mu_r dependence of the 
155
two-loop form factors can be adjusted accordingly, while the actual list of
156
flavors that are allowed in the two-loop form factors is controled via the
157
'include_<flavor>_quark parameters.
158
The parameter 'requiredRelativeAccuracy' allows to adjust the threshold 
159
controlling when the numerical accuracy rescue system of GGVVamp must be activated.
160
161
Finally, notice that the quark masses are always neglected (i.e. equiv to zero) in
162
the two-loop form factors, however if you specify non-zero quark masses in the
163
param_card.dat they *will* be used in the computation of the one-loop amplitudes
164
(computed by MadLoop) that will multiply the two-loop form factors.
165
This might or might not be the anticipated result, this is why it should be stressed here.