including renormalization scale-dependent couplings

Asked by Samuel Homiller

Dear MG5 Authors,

I'm attempting to modify a model file that works at NLO to include a Yukawa coupling that is shifted by a function of the renormalization scale (as in https://arxiv.org/pdf/1808.01660.pdf, Eq. 2.5). While model files such as loop_sm have a mu_R defined in parameters.py, I want to ensure that the value that enters my modified coupling is the dynamical renormalization scale choice that I select in the run_card (e.g, H_T/2).

It seems as though the mu_R variable in parameters.py is an external parameter, and is typically set to MZ by default -- is this same variable changed event by event in the computation, so that I can write formulas involving it for other internal parameters, or would this have to be done with a more intricate hack elsewhere? If that's the case, could you perhaps point me to the correct file I should be modifying after generating the process?

Thanks very much for the help

Sam

Question information

Language:
English Edit question
Status:
Solved
For:
MadGraph5_aMC@NLO Edit question
Assignee:
marco zaro Edit question
Solved by:
marco zaro
Solved:
Last query:
Last reply:
Revision history for this message
Olivier Mattelaer (olivier-mattelaer) said :
#1

Hi,

This is a question for Marco Zaro.
Note that he is currently in holliday.
I do not know how long/short are his holliday but it can be for a month (or more). So please be patient.

Olivier

Revision history for this message
Best marco zaro (marco-zaro) said :
#2

Dear Sam,
thanks for your patience, I was on parental leave after the birth of my son.
In order to do what you need, please be aware that with MG5_aMC v 2.X all diagrams need to have the same power of the bottom yukawa (assuming this is the parameter you want to have running). In v 3 (the version which enables EW corrections) this limitation is lifted.
Note also that you need to change the UFO model in order to have the correct renormalisation condition (the default is on-shell).
For the latter, you need to look for the coupling which enters the b bx h vertex of your model, and set the finite part to zero. I can help you with this, if needed.

Finally, the code that you get after generate/output has to be modified in the following way, depending on the version you have:

- MG5_aMC v2.X: Inside the Source/extra_weights.f file, one has to change this block (I write the parts of the code between two lines of '=')

================================================================
c input of cpower (checked against calculated value)
         double precision,parameter :: cpowerinput=0d0
c switch for running muR-dependent factor runfac=1(running)/0(fixed)
         integer,parameter :: runfac=0
c WARNING: If you set runfac=1 to include a muR-dependent factor
c make sure you modified the function rwgt_muR_dep_fac in
c reweight_xsec.f and compute_cpower in fks_singular.f
c appropiately to include all muR dependent overall factors
c (except for alpha_s) in the calculation. This procedure
c will be incorrect, if you miss one of the muR dependent
c factors or if there is a not factorizing muR dependent term.
c You also have to set ren_group_coeff_in and cpowerinput
c to the proper values.

c first order coefficient of renormalization group equation of the
c muR-dependent factor,
c e.g. for masses: ren_group_coeff = gamma0 = 3/2*C_F,
c i.e. also for Yukawa: ren_group_coeff = gamma0
         integer,parameter :: ren_group_coeff_in=0d0
================================================================

to (change cpowerinput to 2d0, which is the power of yb that you have, runfac to 1 and ren_group_coeff to 2d0), so that it will look like

================================================================
c input of cpower (checked against calculated value)
         double precision,parameter :: cpowerinput=2d0
c switch for running muR-dependent factor runfac=1(running)/0(fixed)
         integer,parameter :: runfac=1
c WARNING: If you set runfac=1 to include a muR-dependent factor
c make sure you modified the function rwgt_muR_dep_fac in
c reweight_xsec.f and compute_cpower in fks_singular.f
c appropiately to include all muR dependent overall factors
c (except for alpha_s) in the calculation. This procedure
c will be incorrect, if you miss one of the muR dependent
c factors or if there is a not factorizing muR dependent term.
c You also have to set ren_group_coeff_in and cpowerinput
c to the proper values.

c first order coefficient of renormalization group equation of the
c muR-dependent factor,
c e.g. for masses: ren_group_coeff = gamma0 = 3/2*C_F,
c i.e. also for Yukawa: ren_group_coeff = gamma0
         integer,parameter :: ren_group_coeff_in=2d0
================================================================

Then, inside SubProcesses/reweight_xsec.f
one has to uncomment, inside the function rwgt_muR_dep_fac (at the beginning of the file)
all the lines between

      IF(wgtcpower .ne. 0d0 .and. runfac .eq. 1) THEN

and
 ELSE
(just remove all the 'c$$$’)

This is the function that computes the running of yb. Note that the ‘4d0’ that appears as the third-to-last argument of the functions runalpha and runmass is the number of flavours, and it has to be changed to 5d0 if the bottom quark **pole mass** is zero
Note also that the current implementation follows the recommendations that we have used in the HXSWG, that is to run yb up the central value of the factorization scale with the highest number of loops that are known (4), and to do the variations with a running consistent with the order of the computations, so 2 loops at NLO and one loop at LO (the number of loops is the next-to-last argument of the functions). I do not know what you want to do in this case, I would say it is up to you to decide.
Finally, one has to fill the MB (pole mass) and YMB (yukawa) of the bottom in the param_card in a consistent manner: they are related by the scheme translation, e.g. what has been used in the HXSWG is (chapter I.1 of 1610.07922)
MB_OS = 4.92
MB_MSbar = 4.18 (this should go into YMB in the param_card).

- MG5_aMC v3.X: the content of extra_weight is slightly different (for the changes inside reweight_xsec.f it is the same as in 2.X).
In particular, there is no fixed power of yb that you need to change, but you need to assign a specific order tag (like QCD, QED, etc) to yb, so that all and only the couplings identified with that tag will be computed correctly. Note that you can leave it to QED if the hbb vertex is the **only** EW vertex that you have around. Note also that this has never been tested, and it is not supposed to work, for non-QCD corrections. The relevant part in extra_weight.f is

================================================================
c position of cpower
         integer,parameter :: cpower_pos=0
c switch for running muR-dependent factor runfac=1(running)/0(fixed)
         integer,parameter :: runfac=0
c WARNING: If you set runfac=1 to include a muR-dependent factor
c make sure you modified the function rwgt_muR_dep_fac in
c reweight_xsec.f and compute_cpower in fks_singular.f
c appropiately to include all muR dependent overall factors
c (except for alpha_s) in the calculation. This procedure
c will be incorrect, if you miss one of the muR dependent
c factors or if there is a not factorizing muR dependent term.
c You also have to set ren_group_coeff_in and cpowerinput
c to the proper values.

c first order coefficient of renormalization group equation of the
c muR-dependent factor,
c e.g. for masses: ren_group_coeff = gamma0 = 3/2*C_F,
c i.e. also for Yukawa: ren_group_coeff = gamma0
         integer,parameter :: ren_group_coeff_in=0d0

================================================================

for runfac and re_group_coeff_in it is the same as above. For cpower_pos, you need to open any of the orders.inc files that you have in SubProcesses/P0*, and see the list of the orders, e.g. you may have something like (depends on the model you have)

      DATA ORDERNAMES / 'QCD', 'QED', 'YB', 'YT'/

In this case, if you want to reweight the YB-type couplings (the third in the list), you must then set cpower_pos to 3

This should be all you need.

Let me know if you have further questions.

Best wishes,

Marco

Revision history for this message
Samuel Homiller (shomiller) said :
#3

Dear Marco,

Thanks so much for the detailed response, and congratulations on the birth of your son! This is very helpful and I think is everything that I was looking for. I'll be sure to let you know if I have any other questions.

Best,
Sam

Revision history for this message
Samuel Homiller (shomiller) said :
#4

Thanks marco zaro, that solved my question.

Revision history for this message
marco zaro (marco-zaro) said :
#5

An update to the solution I proposed.
It turns out that for V2.x one step is missing:
one needs to edit SubProcesses/fks_singular.f and change the
       subroutine compute_cpower(p_born,cpower)
one needs to change the statement
      cpower = -1d0
      return
to
      cpower = cpowerinput
      return

the solution proposed for V3.x is correct, and does not need this extra step.