Implementing full loop function for Higgs-gluon-gluon vertex

Asked by Hiren Patel

Hi,

We have a model with a new heavy Higgs. And this heavy Higgs mixes with the standard model Higgs making it possible for the new Higgs to decay (and be produced) by a Higgs-gluon-gluon vertex mediated by a top quark loop.

We want to implement the Higgs-gluon-gluon vertex with the full loop function (retaining the real and imaginary parts). We tried this in FeynRules 2 including the logarithm of ratio of square-roots of mass ratios. We used:

    2 + (4r−1)ln(− [1−√(1-4r)]/[1+√(1-4r)])^2, where r = mt^2/mH^2

which is valid for all real mH provided the logs and sqrts are evaluated on the principal branch. (We plotted this in Mathematica and it works)

Remarkably, MG5 also worked and gave widths/production cross sections similar to those calculated separately, BUT ONLY when the heavy Higgs is heaver than two top quarks: mH>2*mt. When we try to simulate with mH<2*mt the widths/production rates involving the gluon collapses to ZERO. This tells me that it has trouble evaluating the loop function.

What do we need to do so that MG5 properly evaluates this function for all mH?

Helpful notes:
when mH>2mt, the square roots are real, and the logarithm becomes complex.
when mH<2mt, the square roots is pure imaginary, the logarithm is pure imaginary, but the square is real.

Thanks!

Question information

Language:
English Edit question
Status:
Answered
For:
MadGraph5_aMC@NLO Edit question
Assignee:
Valentin Hirschi Edit question
Last query:
Last reply:
Revision history for this message
Valentin Hirschi (valentin-hirschi) said :
#1

Hi,

The behavior of the fortran model generated from your UFO depends a bit on the implementation of the latter.
First, you must make sure that whatever expression in argument of the square roots and logarithms is always complex-valued (even if purely real) so as to make sure that the fortran intrinsic functions 'log' and 'sqrt' behave as expected.
Even then there is no guarantee that you would evaluate these expressions in the right analytical branch, because that depends on physics input.
What I would suggest then is to output your process, and look at the fortran expression (corresponding to the python expression in the UFO) in the coupling definitions placed in the files '<process_output_name>/Source/MODEL/coupling*.f'.
You can then modify them directly so as to make sure that they reproduces the physical result (i.e. following the prescription you adopted for reproducing the curve on mathematica).

Now before commenting further on this, let me draw your attention to a new feature we very recently implemented in MG5_aMC: automated event generation for loop-induced processes (see ref. http://arxiv.org/abs/1507.00020).
Indeed, in the latest version 2.3.0 of MG5a_MC, Your process can now simply be simulated with

import HeavyHiggsNLOModel
(display diagrams) <- if you want to see the post-scripts of the loop-induced diagrams
generate g g > H [QCD] (or even g g > H g, g g > H + n*g, n=1,2,3)
display diagrams loop
output gg_HeavyH
launch -f

with the exact loop-induced matrix-element being computed and used for the simulation.
Going this route, you wouldn't need an 'effective vertex' since MadLoop in MG5_aMC would really generate and compute the exact loops for you.

If your Heavy Higgs has couplings which map directly onto the SM ones (i.e. only the numerical value change), then you can directly use the model 'loop_sm' instead of 'HeavyHiggsNLOModel' and you are good to go by simply specifying the appropriate values in 'param_card.dat'.
Also, Notice that you can also use the 'Higgs characterisation model', publicly available at 'https://feynrules.irmp.ucl.ac.be/wiki/NLOModels' which includes more general Higgs couplings that might better map onto your Higgs (be sure in this case however to turn off the Higgs-glu-glu effective tree-level vertex which would give you a tree-level contribution.

If none of the above models fulfills your needs, you will have to design your own UFO model including the new Heavy Higgs physics.
Notice that even though loop-induced processes are UV finite, you would still need (on top of adding the Heavy Higgs and its couplings to fermions) to specify in the UFO model the additional Feynman Rules reproducing the so-called R2 counterterms corresponding to the triangle-loop g g H (and the box-one g g h H is you plan on simulating it too).
These additional Feynman rules are extremely simple (see page 6 of ref. http://arxiv.org/abs/0903.0356 for their expression) and there are mainly two ways in which you can produce your UFO model file that includes them:

a) Start from the model UFO model for QCD corrections in the standard model, located in 'models/loop_sm'. Copy it to a new directory 'HeavyHiggsNLOModel' for example, remove the '*.pkl' files in it, and :
 ===> In particles.py, add the definition of your Heavy Higgs.
 ===> In vertices.py, add the tree-level coupling of your Heavy Higgs to the massive quarks.
 ===> in CT_vertices.py, add the R2 feynman rules corresponding to your Hgg and Hggg loops, by following what is done for the SM Higgs. This amounts to replicating the following structures but for the case of your heavy Higgs.

# R2 for the Higgs interactions

V_GGH = CTVertex(name = 'V_GGH',
              particles = [ P.G, P.G, P.H ],
              color = [ 'Tr(1,2)' ],
              lorentz = [ L.VVS1 ],
              loop_particles = [[[P.c]],[[P.b]],[[P.t]]],
              couplings = {(0,0,0):C.R2_GGHc,(0,0,1):C.R2_GGHb,(0,0,2):C.R2_GGHt},
              type = 'R2')

V_GGHH = CTVertex(name = 'V_GGHH',
              particles = [ P.G, P.G, P.H, P.H ],
              color = [ 'Tr(1,2)' ],
              lorentz = [ L.R2_GGHH ],
              loop_particles = [[[P.c]],[[P.b]],[[P.t]]],
              couplings = {(0,0,0):C.R2_GGHHc,(0,0,1):C.R2_GGHHb,(0,0,2):C.R2_GGHHt},
              type = 'R2')

     Finally, using the madgraph command 'check brs g g > H [virt=QCD]' is an easy way of making sure your implementation is correct since the ward identities tested by this command depend on having the correct R2 contribution.

  b) Use the NLO_CT module of FeynRules 2 to automatically produce a UFO file with all loop information (all UV and all R2 counterterms) included in it. See ref. http://arxiv.org/abs/1406.3030 for information on its usage.

Can you help with this problem?

Provide an answer of your own, or ask Hiren Patel for more information if necessary.

To post a message you must log in.