MadGraph prediction for neutrino trident production

Asked by Maksym Ovchynnikov

Hi! I am trying to calculate the cross-section of a process

nu_mu + gamma -> mu+ + mu- + nu_mu

in the limit s_nu gamma >> m_mu^2. The cross-section of this process under the limit has been derived analytically in https://arxiv.org/pdf/1406.2332.pdf . Please take a look at Eq. 9, where

CV = 1/2 + sin^2(theta_W)*2, CA = 1/2

I have also derived it independently.

I assume that e.g. at s > 10 GeV^2 the approximation s >> 4*m_mu^2 works well (as the ratio is >200), and it makes sense to compare the predictions of MG with the analytic formula. To generate the cross-section in MG, I used (the loop_sm model is necessary since m_mu != 0.)

import model loop_sm
generate vm a > mu+ mu- vm

Then, I changed the run_card.dat accordingly (please see the comment below), where I assumed equal energies of nu and gamma, such that s_nu gamma = (Enu+Egamma)^2.

The values of the cross-section for various energies predicted by MG is shown in this screenshot (https://www.dropbox.com/s/c5pc11vyoab0gz4/Screenshot%202022-08-23%20134524.png?dl=0).

However, the problem is that there is a difference at any s from 10 GeV^2 to 300 GeV^2, please see the plot (https://www.dropbox.com/s/dgshcw2804c921i/mg.pdf?dl=0)

Could you please tell me whether I made something wrong with the MG part? If not, then what may be a reason for the discrepancy?

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
Maksym Ovchynnikov (name-xxx) said :
#1

run_card.dat :

#*********************************************************************
# MadGraph5_aMC@NLO *
# *
# run_card.dat MadEvent *
# *
# This file is used to set the parameters of the run. *
# *
# Some notation/conventions: *
# *
# Lines starting with a '# ' are info or comments *
# *
# mind the format: value = variable ! comment *
# *
# To display more options, you can type the command: *
# update to_full *
#*********************************************************************
#
#*********************************************************************
# Tag name for the run (one word) *
#*********************************************************************
  tag_1 = run_tag ! name of the run
#*********************************************************************
# Number of events and rnd seed *
# Warning: Do not generate more than 1M events in a single run *
#*********************************************************************
  10000 = nevents ! Number of unweighted events requested
  0 = iseed ! rnd seed (0=assigned automatically=default))
#*********************************************************************
# Collider type and energy *
# lpp: 0=No PDF, 1=proton, -1=antiproton, 2=elastic photon of proton,*
# +/-3=PDF of electron/positron beam *
# +/-4=PDF of muon/antimuon beam *
#*********************************************************************
     0 = lpp1 ! beam 1 type
     0 = lpp2 ! beam 2 type
     15.0 = ebeam1 ! beam 1 total energy in GeV
     15.0 = ebeam2 ! beam 2 total energy in GeV
#*********************************************************************
# Beam polarization from -100 (left-handed) to 100 (right-handed) *
#*********************************************************************
     -100.0 = polbeam1 ! beam polarization for beam 1
     0.0 = polbeam2 ! beam polarization for beam 2

#*********************************************************************
# PDF CHOICE: this automatically fixes alpha_s and its evol. *
# pdlabel: lhapdf=LHAPDF (installation needed) [1412.7420] *
# iww=Improved Weizsaecker-Williams Approx.[hep-ph/9310350] *
# eva=Effective W/Z/A Approx. [21yy.zzzzz] *
# none=No PDF, same as lhapdf with lppx=0 *
#*********************************************************************
     nn23lo1 = pdlabel1 ! PDF type for beam #1
     nn23lo1 = pdlabel2 ! PDF type for beam #2
     230000 = lhaid ! if pdlabel=lhapdf, this is the lhapdf number
# To see heavy ion options: type "update ion_pdf"
#*********************************************************************
# Renormalization and factorization scales *
#*********************************************************************
 False = fixed_ren_scale ! if .true. use fixed ren scale
 False = fixed_fac_scale1 ! if .true. use fixed fac scale for beam 1
 False = fixed_fac_scale2 ! if .true. use fixed fac scale for beam 2
 91.188 = scale ! fixed ren scale
 91.188 = dsqrt_q2fact1 ! fixed fact scale for pdf1
 91.188 = dsqrt_q2fact2 ! fixed fact scale for pdf2
 -1 = dynamical_scale_choice ! Choose one of the preselected dynamical choices
 1.0 = scalefact ! scale factor for event-by-event scales

   0 = ievo_eva ! scale evolution for EW pdfs (eva):
                         ! 0 for evo by q^2; 1 for evo by pT^2

#*********************************************************************
# Type and output format
#*********************************************************************
  False = gridpack !True = setting up the grid pack
  -1.0 = time_of_flight ! threshold (in mm) below which the invariant livetime is not written (-1 means not written)
  average = event_norm ! average/sum. Normalization of the weight in the LHEF
# To see MLM/CKKW merging options: type "update MLM" or "update CKKW"

#*********************************************************************
#
#*********************************************************************
# Phase-Space Optimization strategy (basic options)
#*********************************************************************
   0 = nhel ! using helicities importance sampling or not.
                             ! 0: sum over helicity, 1: importance sampling
   2 = sde_strategy ! default integration strategy (hep-ph/2021.00773)
                             ! 1 is old strategy (using amp square)
        ! 2 is new strategy (using only the denominator)
# To see advanced option for Phase-Space optimization: type "update psoptim"
#*********************************************************************
# Generation bias, check the wiki page below for more information: *
# 'cp3.irmp.ucl.ac.be/projects/madgraph/wiki/LOEventGenerationBias' *
#*********************************************************************
 None = bias_module ! Bias type of bias, [None, ptj_bias, -custom_folder-]
 {} = bias_parameters ! Specifies the parameters of the module.
#
#*******************************
# Parton level cuts definition *
#*******************************
  0.0 = dsqrt_shat ! minimal shat for full process
#
#
#*********************************************************************
# BW cutoff (M+/-bwcutoff*Gamma) ! Define on/off-shell for "$" and decay
#*********************************************************************
  15.0 = bwcutoff ! (M+/-bwcutoff*Gamma)
#*********************************************************************
# Standard Cuts *
#*********************************************************************
# Minimum and maximum pt's (for max, -1 means no cut) *
#*********************************************************************
 0.0 = ptl ! minimum pt for the charged leptons
 0.0 = misset ! minimum missing Et (sum of neutrino's momenta)
 -1.0 = ptlmax ! maximum pt for the charged leptons
 -1.0 = missetmax ! maximum missing Et (sum of neutrino's momenta)
 {} = pt_min_pdg ! pt cut for other particles (use pdg code). Applied on particle and anti-particle
 {} = pt_max_pdg ! pt cut for other particles (syntax e.g. {6: 100, 25: 50})
#
# For display option for energy cut in the partonic center of mass frame type 'update ecut'
#
#*********************************************************************
# Maximum and minimum absolute rapidity (for max, -1 means no cut) *
#*********************************************************************
 -1 = etal ! max rap for the charged leptons
 0.0 = etalmin ! main rap for the charged leptons
 {} = eta_min_pdg ! rap cut for other particles (use pdg code). Applied on particle and anti-particle
 {} = eta_max_pdg ! rap cut for other particles (syntax e.g. {6: 2.5, 23: 5})
#*********************************************************************
# Minimum and maximum DeltaR distance *
#*********************************************************************
 0.0 = drll ! min distance between leptons
 -1.0 = drllmax ! max distance between leptons
#*********************************************************************
# Minimum and maximum invariant mass for pairs *
#*********************************************************************
 0.0 = mmll ! min invariant mass of l+l- (same flavour) lepton pair
 -1.0 = mmllmax ! max invariant mass of l+l- (same flavour) lepton pair
 {} = mxx_min_pdg ! min invariant mass of a pair of particles X/X~ (e.g. {6:250})
 {'default': False} = mxx_only_part_antipart ! if True the invariant mass is applied only
                       ! to pairs of particle/antiparticle and not to pairs of the same pdg codes.
 #*********************************************************************
 # Minimum and maximum invariant mass for all letpons *
 #*********************************************************************
 0.0 = mmnl ! min invariant mass for all letpons (l+- and vl)
 -1.0 = mmnlmax ! max invariant mass for all letpons (l+- and vl)
 #*********************************************************************
 # Minimum and maximum pt for 4-momenta sum of leptons / neutrino *
 # for pair of lepton includes only same flavor, opposite charge
 #*********************************************************************
 0.0 = ptllmin ! Minimum pt for 4-momenta sum of leptons(l and vl)
 -1.0 = ptllmax ! Maximum pt for 4-momenta sum of leptons(l and vl)
#*********************************************************************
# Inclusive cuts *
#*********************************************************************
 0.0 = xptl ! minimum pt for at least one charged lepton
 #*********************************************************************
 # Control the pt's of leptons sorted by pt *
 #*********************************************************************
 0.0 = ptl1min ! minimum pt for the leading lepton in pt
 0.0 = ptl2min ! minimum pt for the second lepton in pt
 -1.0 = ptl1max ! maximum pt for the leading lepton in pt
 -1.0 = ptl2max ! maximum pt for the second lepton in pt
#*********************************************************************
# maximal pdg code for quark to be considered as a light jet *
# (otherwise b cuts are applied) *
#*********************************************************************
 4 = maxjetflavor ! Maximum jet pdg code
#*********************************************************************
#
#*********************************************************************
# Store info for systematics studies *
# WARNING: Do not use for interference type of computation *
#*********************************************************************
   True = use_syst ! Enable systematics studies
#
systematics = systematics_program ! none, systematics [python], SysCalc [depreceted, C++]
['--mur=0.5,1,2', '--muf=0.5,1,2', '--pdf=errorset'] = systematics_arguments ! see: https://cp3.irmp.ucl.ac.be/projects/madgraph/wiki/Systematics#Systematicspythonmodule

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

Hi,

I have not read the full paper, but given the feynman diagram they quote and the following sentences:
"in what follows
we provide analytical results using the equivalent pho-
ton approximation (EPA) [14, 15]."

But the computation that you are doing is for fixed energy photon and not photon in EPA approximation.
So are you sure that such number should match?

Cheers,

Olivier

Revision history for this message
Maksym Ovchynnikov (name-xxx) said :
#3

Dear Olivier,

They approximate the cross section with the virtual photon by a cross-section with an external photon, with a distribution in energies associated to this photon. Eq. 9 is the cross section of this sub-process, before convoluting with the distribution function.

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

Ok, I see,

Now I do not understand your point concerning the model.
the loop_sm model has also the muon mass set to zero...

So here I have used the model sm-lepton_masses
and the following script:

import model sm-lepton_masses
generate vm a > mu+ mu- vm
output
launch
set no_parton_cut
set lpp 0
set ebeam 15
launch
set fixed_scale 90
launch
set sde_strategy 1

and the three cross-section computed are (2.9.12)
0.04067 ± 0.00014
0.04086 ± 0.00013
0.0407 ± 0.00011
The three run are done with various technical/physics parameter to check that everything is indeed under-control.

The question is why you do have a factor of two compare to me here (which might be related to the muon mass actually).

Cheers,

Olivier

Can you help with this problem?

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

To post a message you must log in.