Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MG5aMC status #867

Open
42 of 44 tasks
oliviermattelaer opened this issue Jun 21, 2024 · 8 comments
Open
42 of 44 tasks

MG5aMC status #867

oliviermattelaer opened this issue Jun 21, 2024 · 8 comments
Assignees

Comments

@oliviermattelaer
Copy link
Member

oliviermattelaer commented Jun 21, 2024

Here is an issue to track the issue on the mainstream repo that need to be fixed before allowing to be merged in the official repo (this follows branch gpucpp_for360)

  • Standalone (simple test)
  • Madevent (tree-level) (simple test)
    • compile
    • correct cross-section
    • check helicity
    • check color selection
  • Madevent (tree-level no grouping) (simple test)
    • compile
    • correct cross-section (fix scale, kinematical scale)
    • correct cross-section (CKKW scale)
    • check handling of cut in this mode
    • check helicity
    • check color selection
  • Madevent for e+ e- > e+ e- (no PDF)
    • correct cross-section
    • check helicity (45.01% vs 44.89%)
  • Madevent for dy+3j
    • correct cross-section (125.1 +- 0.2817 pb)
    • helicity correctly detected for hel-recycling
  • CKKW missmatch ??
    • DY3j (4 sigma ...)
    • ep collision (1 sigma)
  • loop standalone (simple test)
  • loop square standalone (simple test)
  • Madevent (loop induced)
    • compile
    • correct cross-section
    • check helicity
    • check color selection
  • NLO (simple test)
  • unittest (mainly IOtest to update)
  • acceptance test
    • handling of lepton PDF with vector_id
    • handling of custom_fct legacy code (issue with vector.inc)
    • loop not correct in the unitary gauge (detected by test_ML_check_full_epem_ttx)
    • check why some tests fail on the CI level (believed to be 3.5.3 issue -> to recheck when merging with 3.6.0->confirmed)
  • aloha test
  • plugin test
  • Madweight (check line 4012 of export_v4)
  • Madspin
  • parralel test suite
    • test_short_cross_pol (segfault)
    • MadWeight does not compile (auto_dsig issue)
  • merging with actual gpucpp_goodhel (and the REAL 3.6.0)

Note that fixing a point can break another one, so this will likely oscillate

@oliviermattelaer
Copy link
Member Author

oliviermattelaer commented Jul 4, 2024

LOOP INDUCED

  • coupling access:
    • The loop matrix-element does not have dedicated vector_id instruction
    • model has it
    • value is anyway passed correctly, so no need to specify that we always use the first value)
  • had to change the signature of smatrix$id
    • changing the signature is not enough since color/helicity assignment is then buggy
    • removed the hel_buff from loop_induced (both from sum and MC over hel)
      • random_hel is obviously useless for MC over hel ...
    • add the nice fortran function to associated color

@oliviermattelaer oliviermattelaer self-assigned this Jul 4, 2024
@oliviermattelaer oliviermattelaer pinned this issue Jul 5, 2024
@oliviermattelaer
Copy link
Member Author

oliviermattelaer commented Jul 19, 2024

MADEVENT no grouping

  • fail to compile (note 3.6.0 does not have such issue)
	    auto_dsig.f:521:31:

	      202 |       SUBROUTINE WRITE_GOOD_HEL(STREAM_ID)
	          |                               2
	    ......
	      521 |       SUBROUTINE WRITE_GOOD_HEL(STREAM_ID)

also code duplication for READ_GOOD_HEL -> wrong template


	      388 |       IF (PASSCUTS(PP)) THEN
	          |                     1
	    Error: Symbol ‘pp’ at (1) has no IMPLICIT type; did you mean ‘lpp’?

-> passed to P1
-> not good -> remove the passcuts for the moment (via export_v4.py)
-> need to check that cut are indeed apply higher in the code (like they should)

auto_dsig.f:391:12:

	      391 |             IB(1) = 1
	          |            1
	    Error: Function ‘ib’ at (1) has no IMPLICIT type
	    auto_dsig.f:392:12:

	      392 |             IB(2) = 2
	          |            1
	    Error: Function ‘ib’ at (1) has no IMPLICIT type
	    auto_dsig.f:394:12:

-> added definition of IB(1)/IB(2) even if variable is not used in this context

coupl.inc:34:41:

	       34 |       DOUBLE COMPLEX GC_10(VECSIZE_MEMMAX), GC_11(VECSIZE_MEMMAX)
	          |                                         1
	    Error: Symbol ‘vecsize_memmax’ at (1) has no IMPLICIT type
	    matrix.f:312:44:

	      312 |       CALL VVV1P0_1(W(1,1),W(1,2),GC_10(IVEC),ZERO, FK_ZERO,W(1,5))
	          |                                            1
	    Error: Symbol ‘ivec’ at (1) has no IMPLICIT type; did you mean ‘ic’?

-> need update of madgraph/iolibs/template_files/matrix_madevent_v4.inc

	    Undefined symbols for architecture arm64:
	      "_get_helicities_", referenced from:
	          _write_leshouche_ in unwgt.o
	      "_prepare_grouping_choice_", referenced from:
	          _sample_full_ in libdsample.a(dsample.o)
	      "_select_color_", referenced from:
	          _smatrix_ in matrix.o
	      "_select_grouping_", referenced from:
	          _sample_full_ in libdsample.a(dsample.o)
	    ld: symbol(s) not found for architecture arm64
	    collect2: error: ld returned 1 exit status
	    make: *** [madevent] Error 1

-> added dummy function for prepare_grouping_choice/select_grouping function
-> define (from the group mode) the missing function in the non group auto_dsig version

At line 656 of file auto_dsig.f
Fortran runtime error: Index '2' of dimension 3 of array 'icolamp' above upper bound of 1

-> need to adapt the select color? -> enforce IPROC=1 solves the issue

wrong cross-section

  • cross-section matches only in fix-scale
  • issue with the running point by point ...
  • more specifically the issue is with mu_R not with mu_F (and therefore not with the computation of the dynamical scale)
  • no call to update_scale_coupling in auto_dsig.f -> added via a context -> fixed
  • but CKKW merging scale not working (PDF called before setting of the scale!) -> move the computation before the call to the PDF -> fixed

@oliviermattelaer
Copy link
Member Author

oliviermattelaer commented Aug 8, 2024

Drell-Yan +3 j issues

helicity recycling crashing

  • occurs both for ickkw=0 and ickkw=1
  • p p > l+ l- 3g works in standalone
  • g g > l+ l- 3j has the issue!
 cluster.f: Error. Invalid combination.
 error for clustering
 cluster.f: Error. Invalid combination.
 error for clustering
 cluster.f: Error. Invalid combination.
 error for clustering
 cluster.f: Error. Invalid combination.
 error for clustering
 cluster.f: Error. Invalid combination.
 error for clustering
At line 669 of file cluster.f
Fortran runtime error: Index '1665470336' of dimension 1 of array 'imap' above upper bound of 7

one potential fix is

--- a/Template/LO/SubProcesses/cluster.f
+++ b/Template/LO/SubProcesses/cluster.f
@@ -552,6 +552,8 @@ c**************************************************************************
       if (btest(mlevel,1))
      $   write (*,*)'New event'

+      iwin = 0
+      jwin = 0
       cluster=.false.
       clustered=.false.
       do i=0,3
@@ -663,7 +665,8 @@ c        Set info for LH clustering output
 c     initialize graph storage
       igraphs(0)=0
       nleft=nexternal
-c     cluster
+c     cluster
+      if (iwin.eq.0.or.jwin.eq.0) stop 21
       do n=1,nexternal-2
 c     combine winner
          imocl(n)=imap(iwin,2)+imap(jwin,2)
diff --git a/Template/LO/SubProcesses/reweight.f b/Template/LO/SubProcesses/reweight.f
index a51f0e4c3..76ea80172 100644
--- a/Template/LO/SubProcesses/reweight.f
+++ b/Template/LO/SubProcesses/reweight.f
@@ -643,7 +643,10 @@ c     Variables for keeping track of jets
             enddo
             s_rwfact(ivec)=1d0
          endif
-      return
+         return
+      elseif(init_mode)then ! helicity recycling mode
+          scale = 91.188
+          return ! avoid CKKW scale choice for hel-recycling to avoid isssue with channel-flipping
       endif
 c
 c   Cluster the configuration

The modification of the first file is a pure sanity check to ensure that such issue only occur when checking helicity recycling.
The second is assuming that the clustering does not work in seaking helicity due to the swapping between channel ...
and just use a fix scale here ...
It might be better to do that in setscales.f and to switch fortran variable for fix-scale ...
But the real ugly point is why this is occuring... (3.6.0 does not have such issue), so this sounds a work around to a bug that remains (and that will annoy us later?)
But I guess for the moment, I will check the cross-section

  • patch confirmed to fix the helicity crash for all subprocesses

missmatch of cross-section

  • p p > l+ l- 3g OK (LTS: 2.083 +- 0.006164 pb vs gpucpp_for360: 2.088 +- 0.005693 pb)
  • g g > l+ l- 3j OK (LTS: 7.957 +- 0.02209 pb vs gpucpp_for360: 7.931 +- 0.02541)
  • full OK (helicity issue bypassed + no ickkw): 67.75 +- 0.1716 pb vs 68.34 +- 0.2027 pb (LTS)
  • full 4 sigma (helicity issue bypassed + with ickkw): 122.8 pb vs 125.1 pb (LTS)
  • full OK (helicity issue bypassed + with ickkw, no pdf rewgt, chcluster=F): 103.1 +- 0.2657 vs 104 +- 0.2829(LTS)
  • full 4.5 sigma (helicity issue bypassed + with ickkw, no pdf rewgt, chcluster=T): 96.41 +- 0.2482 pb vs 99.15 +- 0.2743 pb
  • full 4sigma (helicity issue bypassed + with ickkw, pdf rewgt, chcluster=F): 122.8 pb vs 125.1 pb (LTS)

@oliviermattelaer
Copy link
Member Author

oliviermattelaer commented Aug 8, 2024

Acceptance tests:

striketrough means something that I can not test locally (so need to check the CI report when the others are fixed)

  • acceptance tests (locally or CI):
    • test_hepmc_decay (related to the lhef optimization that avoid to parse all momenta)
    • test_lhe_none_decay (same as test_hepmc_decay)
    • test_standalone_cpp_output (templating of the path of file had a subtle typo)
    • test_tt_semi (madweight)
    • test_zh (madweight)
      • change the class that write the vector.inc file
      • need to udpate the script that automatically change the template to MW to support vector.inc
    • test_madevent_ufo_aloha (lepton_pdf_issue --no support for vector code--
    • test_output_madevent_directory lepton_pdf_issue
      - no support for vector code
      - issue with v4 model (add support for sm_v4 such that code compiles + add warning/... to avoid user to use v4 model
    • test_save_load (usual working alone)
    • test_customised_madevent_via_run_card
      • custom_fct includes run.inc -> which requires a previous "include vector.inc"
      • can either be fixed by including such include in the "vector.inc" in the test (and left the burden on the user)
      • by ALWAYS including in run.inc the vector.inc (can be problematic, since the model also has such issue and no ifguard)
      • by automatically editing the function if this happens (too complex?)
    • test_eft_running (issue with configuration file --solve locally by installing Running code) + issue with missing include in the running code extension
    • CI for test_eft_running
    • test_all (no clue)
    • test_ML_check_cms_aem_emvevex
    • test_e_p_collision
    • test_ML_check_full_epem_ttx (issue to evaluate such loop in unitary gauge)
    • test_nlo_reweighting (PDF on CI: transient?)-> reproducible on Milan
      • to be consider later (change to misc.py and/or reweight_interface.py) Maybe fixed after merging with goodhel (confirmed)

@oliviermattelaer
Copy link
Member Author

oliviermattelaer commented Aug 9, 2024

CROSS-SECTION MISSMATCH EP collision

  • default test: LTS: 3959+-30 GPU: 3870+-50
  • NO CKM: 4524 +- 33 GPU: 4555 +- 56.42
  • NO CKM (dyn_scale=3): 4524 +- 33 GPU: 4555 +- 56.42
  • default test (500k): LTS: 3932 +- 1.701 GPU: 3932 +- 1.774

-> NO ISSUE HERE (just need to update central value for the test)

@oliviermattelaer
Copy link
Member Author

oliviermattelaer commented Aug 12, 2024

test_ML_check_full_epem_ttx

simpler reproducer via script

set loop_optimized_output False
set gauge unitary
generate e+ e- > t t~ [virt=QCD]
output
launch

observation:

  • seems working if loop_optimized_output True
  • diff with LTS has the following weird diff for loop_num (see below)
  • fixing the loop_num file seems to fix the issue
  • linked to a "not safe" try ... except in helas_call_writers
  • now code is crashing with an explicit "KeyError : 'LC(1)'"
  • debug file point to "model vectorization" change to the code: if coupling_dep and 'aS' in coupling_dep[c]: (helas_objects.py", line 1589)
  • FIXED

weird diff in loop_num

diff ./loop_num.f /Users/omattelaer/Documents/git_workspace/LTS/PROC_SA_loop_sm_1/SubProcesses/P0_epem_ttx/loop_num.f
136,138c136,138
<
<
<
---
>           CALL FFV1LP0_3(WL(1,2),W(1,WE(1),H),LC(1),ML(3),ZERO,WL(1,3))
>           CALL FFV1L_2(W(1,WE(2),H),WL(1,3),LC(2),ML(4),ZERO,WL(1,4))
>           CALL FFV1L_2(WL(1,4),W(1,WE(3),H),LC(3),ML(5),ZERO,WL(1,5))
146,148c146,149
<
<
<
---
>           CALL FFV1LP0_3(WL(1,2),W(1,WE(1),H),LC(1),ML(3),ZERO,WL(1,3))
>           CALL FFV1L_2(W(1,WE(2),H),WL(1,3),LC(2),ML(4),ZERO,WL(1,4))
>           CALL FFV2_5L_2(WL(1,4),W(1,WE(3),H),LC(3),LC(4),ML(5),ZERO
>      $     ,WL(1,5))
316,318c317,322
<
<
<
---
>           CALL MP_FFV1LP0_3(WL(1,2),W(1,WE(1),H),LC(1),ML(3),ZERO,WL(1
>      $     ,3))
>           CALL MP_FFV1L_2(W(1,WE(2),H),WL(1,3),LC(2),ML(4),ZERO,WL(1,4)
>      $     )
>           CALL MP_FFV1L_2(WL(1,4),W(1,WE(3),H),LC(3),ML(5),ZERO,WL(1,5)
>      $     )

@oliviermattelaer
Copy link
Member Author

oliviermattelaer commented Aug 13, 2024

Merging with branch gpucpp_goodhel (and therefore latest 3.6.0 commit)

  • fail unitest on file_writers (function had a merging issue that I overlooked)
Screenshot 2024-08-14 at 07 03 25

@oliviermattelaer
Copy link
Member Author

oliviermattelaer commented Aug 14, 2024

parralel test gpucpp

FAILED (failures=15)
test_short_cross_sqso1 test_gauge_4_e500 test_gauge_6_e500 test_gauge_6_e90 test_long_sm_vs_stored_HCR_dxd_wpwm_QCD test_long_sm_vs_stored_HCR_dxd_wpwm_QED test_long_sm_vs_stored_HCR_dxd_zz_QCD test_long_sm_vs_stored_HCR_dxd_zz_QED test_long_sm_vs_stored_HCR_uxd_wmz_QCD test_long_sm_vs_stored_HCR_uxd_wmz_QED test_long_sm_vs_stored_HCR_uxu_wpwm_QCD test_long_sm_vs_stored_HCR_uxu_wpwm_QED test_long_sm_vs_stored_HCR_uxu_zz_QCD test_long_sm_vs_stored_HCR_uxu_zz_QED test_long_sm_vs_stored_HCR_wpwm_wpwm_QED
FAILED ( errors=16)
test_mg5_heft_23 test_mg5_minitest_mssm test_mg5_minitest_sm test_mg5_mssm_13 test_mg5_mssm_23_p1 test_mg5_mssm_23_p2 test_mg5_sm_13 test_mg5_sm_22 test_mg5_sm_23_p3 test_short_cross_pol test_short_cross_sm1 test_short_OfflineHEPToolsInstaller test_short_mw_tt_full_lept test_short_mw_tt_semi test_short_mw_wa_refine test_short_ppgogo_amcatnlo_nlo
Bypassed 11:
test_long_mssm_vs_stored_HCR_gg_t1t1xg_QCD test_long_mssm_vs_stored_HCR_uux_gogog_QCD test_mg5_mssm_22 test_mg5_sm_23_p1 test_mg5_sm_23_p2 test_paralel_cross_sm test_cross_gauge_p2 test_gauge_2 test_gauge_loop_p1 test_gauge_loop_p2 test_short_jet_veto_xsec

status for 360

FAILED (failures=12)
test_gauge_4_e500 test_long_sm_vs_stored_HCR_dxd_wpwm_QCD test_long_sm_vs_stored_HCR_dxd_wpwm_QED test_long_sm_vs_stored_HCR_dxd_zz_QCD test_long_sm_vs_stored_HCR_dxd_zz_QED test_long_sm_vs_stored_HCR_uxd_wmz_QCD test_long_sm_vs_stored_HCR_uxd_wmz_QED test_long_sm_vs_stored_HCR_uxu_wpwm_QCD test_long_sm_vs_stored_HCR_uxu_wpwm_QED test_long_sm_vs_stored_HCR_uxu_zz_QCD test_long_sm_vs_stored_HCR_uxu_zz_QED test_long_sm_vs_stored_HCR_wpwm_wpwm_QED
FAILED ( errors=14)
test_mg5_heft_23 test_mg5_minitest_mssm test_mg5_minitest_sm test_mg5_mssm_13 test_mg5_mssm_22 test_mg5_mssm_23_p1 test_mg5_mssm_23_p2 test_mg5_sm_13 test_mg5_sm_22 test_mg5_sm_23_p1 test_mg5_sm_23_p2 test_mg5_sm_23_p3 test_paralel_cross_sm test_short_OfflineHEPToolsInstaller
Bypassed 2:
test_cross_gauge_p2 test_short_jet_veto_xsec

to investigate first:

  • test_short_cross_pol

    from madevent_forhel
    At line 1228 of file auto_dsig.f
    Fortran runtime error: Index '2' of dimension 1 of array 'icolamp' above upper bound of 1
    
  • test_short_cross_sm1

  • test_short_mw_tt_full_lept

 gfortran -w -fPIC  -ffixed-line-length-132 -w  -c -o auto_dsig1.o auto_dsig1.f
	    auto_dsig1.f:87:16:

	       87 |           QSCALE=0D0
	          |                1
	    Error: Symbol ‘qscale’ at (1) has no IMPLICIT type
	    auto_dsig1.f:84:14:

	       84 |       IF (ABS(LPP(IB(1))).GE.1) THEN
	          |              1
	    Error: Function ‘lpp’ at (1) has no IMPLICIT type
	    auto_dsig1.f:86:18:

Adding CI for

  • test_short_cross_sqso1
  • test_gauge_4_e500
  • test_gauge_6_e500
  • test_gauge_6_e90
  • test_long_sm_vs_stored_HCR_dxd_wpwm_QCD
  • test_long_sm_vs_stored_HCR_dxd_wpwm_QED
  • test_long_sm_vs_stored_HCR_dxd_zz_QCD
  • test_long_sm_vs_stored_HCR_dxd_zz_QED
  • test_long_sm_vs_stored_HCR_uxd_wmz_QCD
  • test_long_sm_vs_stored_HCR_uxd_wmz_QED
  • test_long_sm_vs_stored_HCR_uxu_wpwm_QCD
  • test_long_sm_vs_stored_HCR_uxu_wpwm_QED
  • test_long_sm_vs_stored_HCR_uxu_zz_QCD
  • test_long_sm_vs_stored_HCR_uxu_zz_QED
  • test_long_sm_vs_stored_HCR_wpwm_wpwm_QED
  • test_mg5_heft_23
  • test_mg5_minitest_mssm
  • test_mg5_minitest_sm
  • test_mg5_mssm_13
  • test_mg5_mssm_23_p1
  • test_mg5_mssm_23_p2
  • test_mg5_sm_13
  • test_mg5_sm_22
  • test_mg5_sm_23_p3
  • test_short_cross_pol
  • test_short_cross_sm1
  • test_short_OfflineHEPToolsInstaller
  • test_short_mw_tt_full_lept
  • test_short_mw_tt_semi
  • test_short_mw_wa_refine
  • test_short_ppgogo_amcatnlo_nlo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant