I have a toy UFO model and I want to write a completely new propagator for a massive gluon that contains mathematical functions such as hyperbolic tangents in the denominator

Asked by Mikel

I have a toy UFO model that contains an extra particle: a massive gluon. I tried modifying the propagators.py file writing my propagator. It's a really long propagator, so here is an easier example:

V3 = Propagator(name = "V3",
  numerator = "complex(0,1) * (-1 * Metric(l1, l2) + Metric(l1,'mu')* P('mu', id) * P(l2, id) / Mass(id)**2"

                denominator = " P('mu', id) * P('mu', id)- Mass(id)*Mass(id) + P('mu', id)*P('mu', id)/(144*pi)* (atanh(Sqrt(Mass(id)**2).real - atanh(Sqrt(P('mu', id) * P('mu', id))).imag)"
                )

Can I write this types of propagators in propagators.py or should I write them in another module?

Thanks,
Mikel

Question information

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

The likely issue here is that the function atanh
will not be defined in fortran.
So you will need to add the definition of such function.

I guess in this case the easiest
is to define it in the file
Fortran/functions.f
(you can also define it in function_library.py)

Cheers,

Olivier
> On 15 Jun 2020, at 18:05, Mikel <email address hidden> wrote:
>
> New question #691328 on MadGraph5_aMC@NLO:
> https://answers.launchpad.net/mg5amcnlo/+question/691328
>
> I have a toy UFO model that contains an extra particle: a massive gluon. I tried modifying the propagators.py file writing my propagator. It's a really long propagator, so here is an easier example:
>
> V3 = Propagator(name = "V3",
> numerator = "complex(0,1) * (-1 * Metric(l1, l2) + Metric(l1,'mu')* P('mu', id) * P(l2, id) / Mass(id)**2"
>
> denominator = " P('mu', id) * P('mu', id)- Mass(id)*Mass(id) + P('mu', id)*P('mu', id)/(144*pi)* (atanh(Sqrt(Mass(id)**2).real - atanh(Sqrt(P('mu', id) * P('mu', id))).imag)"
> )
>
> Can I write this types of propagators in propagators.py or should I write them in another module?
>
> Thanks,
> Mikel
>
> --
> You received this question notification because you are an answer
> contact for MadGraph5_aMC@NLO.

Revision history for this message
Mikel (mendizabalmikel) said :
#2

Dear Olivier,

Thanks for the answer. I found another bug. I started building my propagator step by step:

V3 = Propagator(name = "V3",
                numerator = "complex(0,1) * (Gamma('mu', 1, 2) * P('mu'), id + Mass(id) * Identity(1, 2))”,
                denominator = "P('mu', id) * P('mu', id) - Mass(id) * Mass(id) + complex(0,1) * P('mu', id)*P('mu', id)/(144*3.1416)”
  )

When running madgraph, I get the following bug message:

 Command "launch" interrupted with error:
  AttributeError : 'ALOHAExpressionParser' object has no attribute ‘f'

However, if I run it using the following propagator (the default one) mg5_aMC runs fine
  denominator = "P('mu', id) * P('mu', id) - Mass(id) * Mass(id) + complex(0,1) * Mass(id) * Width(id)”

Cheers,
Mikel

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

Hi,

I have tested with this:
V15 = Propagator(name = "V15",
  numerator = " -1 * Metric(1, 2) + (P(1,id)-Metric(1,'a')*P('a',id) ) * P(2,id)/Mass(id)**2 ",
  denominator = "P('mu', id) * P('mu', id) - Mass(id) * Mass(id) + complex(0,1) * P('mu', id)*P('mu', id)/(144*3.1416)"
        )

and it works nicely. Here is one of the helicity routine generated for that modified propagator
C This File is Automatically generated by ALOHA
C The process calculated in this file is:
C Gamma(3,2,-1)*ProjM(-1,1)
C
      SUBROUTINE FFV2PV15_3(F1, F2, COUP, M3, W3,V3)
      IMPLICIT NONE
      COMPLEX*16 CI
      PARAMETER (CI=(0D0,1D0))
      COMPLEX*16 TMP2
      COMPLEX*16 V3(6)
      COMPLEX*16 TMP1
      REAL*8 W3
      REAL*8 P3(0:3)
      REAL*8 M3
      COMPLEX*16 F1(*)
      COMPLEX*16 F2(*)
      COMPLEX*16 DENOM
      COMPLEX*16 COUP
      V3(1) = +F1(1)+F2(1)
      V3(2) = +F1(2)+F2(2)
      P3(0) = -DBLE(V3(1))
      P3(1) = -DBLE(V3(2))
      P3(2) = -DIMAG(V3(2))
      P3(3) = -DIMAG(V3(1))
      TMP1 = (P3(0)*P3(0)-P3(1)*P3(1)-P3(2)*P3(2)-P3(3)*P3(3))
      TMP2 = (F1(3)*(F2(5)*(P3(0)+P3(3))+F2(6)*(P3(1)+CI*(P3(2))))
     $ +F1(4)*(F2(5)*(P3(1)-CI*(P3(2)))+F2(6)*(P3(0)-P3(3))))
      FCT0 = 1D0/(M3*M3)
      DENOM = COUP/((-M3*M3+(1D0 + 0.00221048015166D0*CI)*(TMP1)))
      V3(3)= DENOM*(-1D0)*(+CI*(F1(3)*F2(5)+F1(4)*F2(6)))
      V3(4)= DENOM*(+CI*(F1(3)*F2(6)+F1(4)*F2(5)))
      V3(5)= DENOM*(F1(4)*F2(5)-F1(3)*F2(6))
      V3(6)= DENOM*(-CI*(F1(4)*F2(6))+CI*(F1(3)*F2(5)))
      END

Cheers,

Olivier

Can you help with this problem?

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

To post a message you must log in.