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. |