Suppressing counterterms in Reweighting Mode

Asked by Jay Sandesara


We are trying to produce tree * loop induced interference events using dim-6 operators cpG (ggH contact interaction, so tree) and ctp (dim6 Yukawa modification operator), using the SMEFTatNLO UFO model.

With the help from the SMEFTatNLO authors, we were able to successfully produce such events for SM(loop induced)*cpG , using the following syntax in reweighting mode:

change process g g > h > z z QED=2 QCD=2 NP=2 NP^2==2 [virt=QCD]

Thanks to the NP^2==2 we do not need to worry about having ggH correction diagrams in the virtual corrections here.

However, for cpG*ctp, we need the following syntax:

change process g g > h > z z QED=2 QCD=2 NP=2 NP^2==4 [virt=QCD] /g

The '/g' , we hoped, would remove the ggH virtual correction diagrams that have gluon loops and only keeps the contributions from loop induced diagrams. We were hoping this '/g' would make this work but it seems there might still be counterterms that are causing unwanted behaviour in the results.

For instance, changing the sign of cpG or ctp operators does not seem to flip the sign of the xsection unless cpG is suppressed to a really low value. See the results below (all values are in pb):

cpG 1.0 ctp 1.0 : 0.0035176
cpG -1.0 ctp 1.0 : 0.008280
cpG -1.0 ctp -1.0 : 0.0035176
cpG 1.0 ctp -1.0 : 0.008280
cpG 1e-11 ctp 1.0 : -2.38e-15
cpG -1e-11 ctp 1.0 : 2.38e-15
cpG 1e-11 ctp 2.0 : -4.76e-15
cpG -1e-11 ctp 2.0 : 4.76e-15

So it seeems that the xsec is linearly dependant on ctp and in the following way as one would expect if there were counterterms:

xsec = A * cpg * ctp + B * cpg * cpg

My question is, if you agree with our above hypothesis, how do we suppress or completely remove the counterterms. Is it possible?

Jay Sandesara

Question information

English Edit question
MadGraph5_aMC@NLO Edit question
No assignee Edit question
Solved by:
Jay Sandesara
Last query:
Last reply:
Revision history for this message
Jay Sandesara (jaysandesara) said :

We thought of a way to do this in an indirect manner: by calculating the weight for B*cpg*cpg for a given cpg value by suppressing ctp and then subtracting this weight from the total weight of A*cpg*ctp + B*cpg*cpg (now with ctp not suppressed) to get the required A*cpg*cpg.

Closing this thread for now. But please let me know if there is a cleaner way.

Jay Sandesara

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) said :

Dear Jay,

If I look at the model (if I'm using the same as you),
I see the following:
V_616 = CTVertex(name = 'V_616',
                 type = 'UV',
                 particles = [ P.g, P.g, P.H ],
                 color = [ 'Identity(1,2)' ],
                 lorentz = [ L.VVS12, L.VVS13, L.VVS15 ],
                 loop_particles = [ [ [P.b], [P.c], [P.d], [P.s], [P.u] ], [ [P.g] ], [ [P.t] ] ],
                 couplings = {(0,0,0):C.UVGC_1918_351,(0,0,2):C.UVGC_1918_352,(0,2,1):C.UVGC_1755_110,(0,1,2):C.UVGC_1794_165})

When looking at the amplitude associated to your syntax I see:

C Counter-term amplitude(s) for loop diagram number 2
      CALL VVS12_0(W(1,1),W(1,2),W(1,6),UVGC_1918_351,AMPL(1,1))
      CALL VVS12_0(W(1,1),W(1,2),W(1,6),UVGC_1918_351,AMPL(1,2))
      CALL VVS12_0(W(1,1),W(1,2),W(1,6),UVGC_1918_351,AMPL(1,3))
      CALL VVS12_0(W(1,1),W(1,2),W(1,6),UVGC_1918_351,AMPL(1,4))
      CALL VVS12_0(W(1,1),W(1,2),W(1,6),UVGC_1918_351,AMPL(1,5))
      CALL VVS12_0(W(1,1),W(1,2),W(1,6),UVGC_1918_351_1EPS,AMPL(2,6))
      CALL VVS12_0(W(1,1),W(1,2),W(1,6),UVGC_1918_351_1EPS,AMPL(2,7))
      CALL VVS12_0(W(1,1),W(1,2),W(1,6),UVGC_1918_351_1EPS,AMPL(2,8))
      CALL VVS12_0(W(1,1),W(1,2),W(1,6),UVGC_1918_351_1EPS,AMPL(2,9))
      CALL VVS12_0(W(1,1),W(1,2),W(1,6),UVGC_1918_351_1EPS,AMPL(2,10))
      CALL VVS12_0(W(1,1),W(1,2),W(1,6),UVGC_1918_352,AMPL(1,11))
      CALL VVS11_0(W(1,1),W(1,2),W(1,6),R2GC_1298_468,AMPL(1,12))

So here one can see that the "/g" had the expected effect, i.e. the counter-term associated to a gluon running in the loop (UVGC_1755_110) is indeed not included in the list of associated counter-term.
Note that here 1794_165 is not included since I have remove it at model level since that one is proportional to ctg.

So the counter-term that you still have is 1918_351 and 1918_352 which are related to counter-term associated to the quark loop but still proportional to cpg.

I do not know the model, so I can not comment more on if this is a model issue or not, but on the side of MG5aMC, the code behaves as it should removing the couter-term indicated by the model and nothing else. I believe that the issue is that you still have cpg dependencies in your loop.