Merge lp:~maddevelopers/mg5amcnlo/3.0.1_4FS_merged3.0.2_latest into lp:~maddevelopers/mg5amcnlo/3.0.3

Proposed by marco zaro
Status: Needs review
Proposed branch: lp:~maddevelopers/mg5amcnlo/3.0.1_4FS_merged3.0.2_latest
Merge into: lp:~maddevelopers/mg5amcnlo/3.0.3
Diff against target: 87099 lines (+22872/-20294)
965 files modified
MadSpin/decay.py (+131/-89)
MadSpin/interface_madspin.py (+81/-37)
Template/LO/Cards/pythia8_card_default.dat (+2/-0)
Template/LO/Cards/run_card.dat (+1/-1)
Template/LO/Source/PDF/PhotonFlux.f (+12/-9)
Template/LO/Source/PDF/pdf.f (+3/-3)
Template/LO/Source/PDF/pdg2pdf.f (+3/-3)
Template/LO/Source/PDF/pdg2pdf_lhapdf6.f (+3/-3)
Template/LO/Source/kin_functions.f (+5/-3)
Template/LO/Source/setrun.f (+16/-0)
Template/LO/SubProcesses/genps.f (+2/-1)
Template/LO/SubProcesses/reweight.f (+2/-2)
Template/LO/SubProcesses/unwgt.f (+10/-1)
Template/LO/bin/generate_events (+19/-12)
Template/LO/bin/internal/Gridpack/gridrun (+9/-2)
Template/LO/bin/internal/addmasses_optional.py (+16/-13)
Template/LO/bin/madevent (+22/-14)
Template/MadWeight/Python/Info.py (+21/-18)
Template/MadWeight/Python/clean.py (+9/-7)
Template/MadWeight/Python/expand_MadWeight.py (+4/-2)
Template/MadWeight/Python/madweight.py (+15/-12)
Template/MadWeight/Python/put_banner.py (+13/-9)
Template/MadWeight/Python/splitbanner.py (+10/-7)
Template/MadWeight/Python/tests.py (+6/-3)
Template/MadWeight/bin/madweight.py (+7/-5)
Template/MadWeight/mod_file/check_model.py (+3/-1)
Template/MadWeight/mod_file/mod_file.py (+6/-3)
Template/NLO/Cards/run_card.dat (+3/-2)
Template/NLO/FixedOrderAnalysis/HwU.f (+79/-1)
Template/NLO/FixedOrderAnalysis/analysis_td_hw_orders.f (+190/-0)
Template/NLO/FixedOrderAnalysis/dbook.f (+36/-39)
Template/NLO/FixedOrderAnalysis/rbook_fe8.f (+22/-24)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_V.f (+2/-1)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_h.f (+2/-1)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_hjj.f (+2/-1)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_leptons.f (+2/-1)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_lplm.f (+2/-1)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_lvl.f (+2/-1)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_taptam.f (+2/-1)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_tj.f (+2/-1)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_ttx.f (+2/-1)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_ttx_v2.f (+2/-1)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_rates.f (+2/-1)
Template/NLO/MCatNLO/Makefile_MadFKS (+4/-4)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_V.f (+2/-1)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_h.f (+2/-1)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_hjj.f (+2/-1)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_leptons.f (+2/-1)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_lplm.f (+2/-1)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_lvl.f (+2/-1)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_taptam.f (+2/-1)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_tj.f (+2/-1)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_ttx.f (+2/-1)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_ttx_v2.f (+2/-1)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_rates.f (+2/-1)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_V.f (+2/-1)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_h.f (+2/-1)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_hjj.f (+2/-1)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_leptons.f (+2/-1)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_lplm.f (+2/-1)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_lvl.f (+2/-1)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_taptam.f (+2/-1)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_tj.f (+2/-1)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_ttx.f (+2/-1)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_ttx_v2.f (+2/-1)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_rates.f (+2/-1)
Template/NLO/MCatNLO/include/LHEFRead.h (+20/-3)
Template/NLO/MCatNLO/srcHerwig/madfks_hwlhin.f (+2/-1)
Template/NLO/MCatNLO/srcPythia/madfks_pylhin.f (+2/-1)
Template/NLO/MCatNLO/srcPythia8/Pythia8.cc (+2/-2)
Template/NLO/MCatNLO/srcPythia8/Pythia82.cc (+2/-2)
Template/NLO/Source/PDF/makefile (+6/-10)
Template/NLO/Source/extra_weights.f (+1/-1)
Template/NLO/Source/make_opts.inc (+6/-5)
Template/NLO/Source/setrun.f (+2/-2)
Template/NLO/SubProcesses/ajob_template (+4/-0)
Template/NLO/SubProcesses/cuts.f (+3/-146)
Template/NLO/SubProcesses/driver_mintFO.f (+17/-16)
Template/NLO/SubProcesses/fks_singular.f (+91/-56)
Template/NLO/SubProcesses/handling_lhe_events.f (+1/-1)
Template/NLO/SubProcesses/iproc_map.f (+13/-3)
Template/NLO/SubProcesses/madfks_plot.f (+33/-16)
Template/NLO/SubProcesses/makefile_fks_dir (+17/-15)
Template/NLO/SubProcesses/open_output_files.f (+12/-0)
Template/NLO/SubProcesses/pineappl_common.inc (+13/-12)
Template/NLO/SubProcesses/pineappl_interface.cc (+370/-39)
Template/NLO/SubProcesses/pineappl_interface_dummy.f (+0/-14)
Template/NLO/SubProcesses/recmom.f (+139/-0)
Template/NLO/SubProcesses/reweight_pineappl.inc (+1/-1)
Template/NLO/SubProcesses/setcuts.f (+2/-0)
Template/NLO/SubProcesses/test_soft_col_limits.f (+48/-20)
Template/NLO/SubProcesses/weight_lines.f (+7/-1)
Template/NLO/Utilities/NLO_Born3.py (+7/-4)
Template/NLO/Utilities/VetoPrefactors/resum_reweighter.py (+2/-1)
Template/NLO/Utilities/VetoPrefactors/virt_reweighter.py (+2/-1)
Template/NLO/Utilities/collect_plots.py (+3/-1)
Template/NLO/Utilities/makefile (+3/-3)
Template/NLO/bin/aMCatNLO (+22/-15)
Template/NLO/bin/calculate_xsect (+15/-8)
Template/NLO/bin/generate_events (+15/-8)
Template/NLO/bin/internal/split_jobs.py (+15/-11)
Template/NLO/bin/shower (+14/-8)
UpdateNotes.txt (+92/-4)
VERSION (+2/-2)
aloha/aloha_fct.py (+24/-21)
aloha/aloha_lib.py (+23/-16)
aloha/aloha_object.py (+4/-1)
aloha/aloha_parsers.py (+44/-76)
aloha/aloha_writers.py (+50/-29)
aloha/create_aloha.py (+39/-28)
aloha/template_files/wavefunctions.py (+11/-9)
bin/compile.py (+12/-10)
bin/create_aloha_release.py (+5/-3)
bin/create_release.py (+23/-19)
bin/mg5_aMC (+15/-7)
input/.mg5_configuration_default.txt (+8/-6)
madgraph/__init__.py (+2/-1)
madgraph/core/base_objects.py (+217/-302)
madgraph/core/color_algebra.py (+19/-6)
madgraph/core/color_amp.py (+10/-11)
madgraph/core/diagram_generation.py (+63/-67)
madgraph/core/drawing.py (+19/-25)
madgraph/core/helas_objects.py (+322/-353)
madgraph/fks/fks_base.py (+30/-30)
madgraph/fks/fks_common.py (+24/-25)
madgraph/fks/fks_helas_objects.py (+29/-21)
madgraph/interface/amcatnlo_interface.py (+84/-71)
madgraph/interface/amcatnlo_run_interface.py (+123/-237)
madgraph/interface/coloring_logging.py (+3/-1)
madgraph/interface/common_run_interface.py (+266/-215)
madgraph/interface/extended_cmd.py (+79/-53)
madgraph/interface/launch_ext_program.py (+26/-23)
madgraph/interface/loop_interface.py (+10/-8)
madgraph/interface/madevent_interface.py (+92/-87)
madgraph/interface/madgraph_interface.py (+414/-257)
madgraph/interface/madweight_interface.py (+22/-18)
madgraph/interface/master_interface.py (+25/-12)
madgraph/interface/reweight_interface.py (+69/-50)
madgraph/iolibs/drawing_eps.py (+6/-0)
madgraph/iolibs/export_cpp.py (+32/-35)
madgraph/iolibs/export_fks.py (+94/-54)
madgraph/iolibs/export_python.py (+5/-5)
madgraph/iolibs/export_v4.py (+797/-105)
madgraph/iolibs/file_writers.py (+23/-17)
madgraph/iolibs/files.py (+19/-9)
madgraph/iolibs/gen_infohtml.py (+2/-0)
madgraph/iolibs/group_subprocs.py (+47/-32)
madgraph/iolibs/helas_call_writers.py (+48/-42)
madgraph/iolibs/import_v4.py (+23/-25)
madgraph/iolibs/save_load_object.py (+53/-37)
madgraph/iolibs/save_model.py (+14/-15)
madgraph/iolibs/template_files/__init__.py (+2/-1)
madgraph/iolibs/template_files/loop_optimized/check_sa_all.py.inc (+36/-34)
madgraph/iolibs/template_files/loop_optimized/loop_matrix_standalone.inc (+12/-3)
madgraph/iolibs/template_files/makefile_sa_f2py (+15/-7)
madgraph/iolibs/template_files/matrix_madevent_group_v4.inc (+10/-1)
madgraph/iolibs/template_files/mg4_proc_card.py (+1/-0)
madgraph/iolibs/ufo_expression_parsers.py (+16/-13)
madgraph/loop/MadLoopBannerStyles.py (+3/-1)
madgraph/loop/loop_base_objects.py (+60/-92)
madgraph/loop/loop_color_amp.py (+4/-6)
madgraph/loop/loop_diagram_generation.py (+33/-42)
madgraph/loop/loop_exporters.py (+66/-53)
madgraph/loop/loop_helas_objects.py (+48/-64)
madgraph/madevent/combine_grid.py (+9/-7)
madgraph/madevent/combine_runs.py (+3/-1)
madgraph/madevent/gen_crossxhtml.py (+7/-4)
madgraph/madevent/gen_ximprove.py (+22/-20)
madgraph/madevent/sum_html.py (+29/-20)
madgraph/madweight/Cards.py (+19/-15)
madgraph/madweight/MW_driver.py (+10/-6)
madgraph/madweight/MW_fct.py (+11/-5)
madgraph/madweight/MW_info.py (+13/-10)
madgraph/madweight/blob_solution.py (+14/-10)
madgraph/madweight/change_tf.py (+28/-23)
madgraph/madweight/create_param.py (+20/-17)
madgraph/madweight/create_run.py (+23/-19)
madgraph/madweight/diagram_class.py (+12/-8)
madgraph/madweight/mod_file.py (+12/-9)
madgraph/madweight/particle_class.py (+3/-2)
madgraph/madweight/proc_info.py (+9/-6)
madgraph/madweight/substructure_class.py (+5/-3)
madgraph/madweight/verif_event.py (+35/-32)
madgraph/madweight/write_MadWeight.py (+32/-26)
madgraph/various/FO_analyse_card.py (+22/-1)
madgraph/various/banner.py (+181/-142)
madgraph/various/cluster.py (+106/-93)
madgraph/various/combine_plots.py (+283/-281)
madgraph/various/diagram_symmetry.py (+14/-11)
madgraph/various/hepmc_parser.py (+138/-73)
madgraph/various/histograms.py (+130/-124)
madgraph/various/lhe_parser.py (+288/-247)
madgraph/various/misc.py (+245/-122)
madgraph/various/plot_djrs.py (+6/-3)
madgraph/various/process_checks.py (+112/-100)
madgraph/various/progressbar.py (+11/-7)
madgraph/various/q_polynomial.py (+35/-26)
madgraph/various/rambo.py (+10/-7)
madgraph/various/shower_card.py (+7/-4)
madgraph/various/systematics.py (+38/-29)
mg5decay/decay_objects.py (+191/-236)
models/MSSM_SLHA2/__init__.py (+11/-10)
models/MSSM_SLHA2/build_restrict.py (+1/-0)
models/MSSM_SLHA2/coupling_orders.py (+2/-1)
models/MSSM_SLHA2/couplings.py (+3/-2)
models/MSSM_SLHA2/decays.py (+3/-2)
models/MSSM_SLHA2/function_library.py (+2/-1)
models/MSSM_SLHA2/lorentz.py (+3/-2)
models/MSSM_SLHA2/object_library.py (+3/-1)
models/MSSM_SLHA2/parameters.py (+5/-4)
models/MSSM_SLHA2/particles.py (+3/-2)
models/MSSM_SLHA2/vertices.py (+5/-4)
models/MSSM_SLHA2/write_param_card.py (+11/-8)
models/__init__.py (+35/-9)
models/check_param_card.py (+54/-49)
models/hgg_plugin/__init__.py (+8/-7)
models/hgg_plugin/coupling_orders.py (+2/-1)
models/hgg_plugin/couplings.py (+3/-2)
models/hgg_plugin/function_library.py (+2/-1)
models/hgg_plugin/lorentz.py (+3/-2)
models/hgg_plugin/object_library.py (+3/-1)
models/hgg_plugin/parameters.py (+5/-4)
models/hgg_plugin/particles.py (+3/-2)
models/hgg_plugin/vertices.py (+5/-4)
models/hgg_plugin/write_param_card.py (+11/-8)
models/import_ufo.py (+71/-59)
models/loop_sm/CT_couplings.py (+3/-3)
models/loop_sm/CT_parameters.py (+3/-3)
models/loop_sm/CT_vertices.py (+5/-4)
models/loop_sm/__init__.py (+14/-10)
models/loop_sm/coupling_orders.py (+2/-1)
models/loop_sm/couplings.py (+3/-2)
models/loop_sm/function_library.py (+6/-2)
models/loop_sm/lorentz.py (+3/-3)
models/loop_sm/object_library.py (+4/-2)
models/loop_sm/parameters.py (+3/-6)
models/loop_sm/particles.py (+4/-3)
models/loop_sm/vertices.py (+5/-5)
models/loop_sm/write_param_card.py (+10/-8)
models/model_reader.py (+11/-9)
models/sm/__init__.py (+4/-2)
models/sm/build_restrict.py (+1/-0)
models/sm/decays.py (+3/-2)
models/sm/function_library.py (+4/-1)
models/sm/object_library.py (+2/-1)
models/sm/parameters.py (+2/-1)
models/sm/write_param_card.py (+11/-10)
models/taudecay_UFO/__init__.py (+9/-8)
models/taudecay_UFO/coupling_orders.py (+2/-1)
models/taudecay_UFO/couplings.py (+3/-2)
models/taudecay_UFO/function_library.py (+2/-1)
models/taudecay_UFO/lorentz.py (+3/-2)
models/taudecay_UFO/object_library.py (+6/-4)
models/taudecay_UFO/parameters.py (+5/-4)
models/taudecay_UFO/particles.py (+4/-3)
models/taudecay_UFO/propagators.py (+2/-1)
models/taudecay_UFO/vertices.py (+5/-4)
models/taudecay_UFO/write_param_card.py (+210/-207)
models/usermod.py (+40/-37)
models/write_param_card.py (+33/-16)
tests/IOTests.py (+66/-67)
tests/__init__.py (+1/-0)
tests/acceptance_tests/test_cmd.py (+47/-35)
tests/acceptance_tests/test_cmd_amcatnlo.py (+14/-12)
tests/acceptance_tests/test_cmd_madevent.py (+19/-16)
tests/acceptance_tests/test_cmd_madloop.py (+5/-2)
tests/acceptance_tests/test_cmd_reweight.py (+31/-20)
tests/acceptance_tests/test_histograms.py (+1/-0)
tests/acceptance_tests/test_madspin.py (+1/-0)
tests/acceptance_tests/test_madweight.py (+9/-7)
tests/acceptance_tests/test_model_equivalence.py (+16/-10)
tests/acceptance_tests/test_output_files.py (+1/-0)
tests/input_files/DM_pion/CT_couplings.py (+3/-2)
tests/input_files/DM_pion/CT_vertices.py (+5/-4)
tests/input_files/DM_pion/__init__.py (+11/-10)
tests/input_files/DM_pion/coupling_orders.py (+2/-1)
tests/input_files/DM_pion/couplings.py (+3/-2)
tests/input_files/DM_pion/decays.py (+3/-2)
tests/input_files/DM_pion/function_library.py (+2/-1)
tests/input_files/DM_pion/lorentz.py (+3/-2)
tests/input_files/DM_pion/object_library.py (+6/-4)
tests/input_files/DM_pion/parameters.py (+5/-4)
tests/input_files/DM_pion/particles.py (+4/-3)
tests/input_files/DM_pion/propagators.py (+2/-1)
tests/input_files/DM_pion/py.py (+2/-0)
tests/input_files/DM_pion/vertices.py (+5/-4)
tests/input_files/DM_pion/write_param_card.py (+226/-207)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%b_sf_001.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%b_sf_002.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%b_sf_003.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%b_sf_004.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%b_sf_005.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%b_sf_006.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%b_sf_007.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%b_sf_008.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%born.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%born_conf.inc (+1/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%born_hel.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%parton_lum_0.f (+1/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%b_sf_001.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%b_sf_002.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%b_sf_003.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%b_sf_004.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%b_sf_005.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%b_sf_006.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%b_sf_007.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%b_sf_008.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%born.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%born_conf.inc (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%born_hel.f (+8/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%parton_lum_0.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%b_sf_001.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%b_sf_002.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%b_sf_003.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%b_sf_004.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%b_sf_005.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%b_sf_006.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%b_sf_007.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%b_sf_008.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%born.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%born_conf.inc (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%born_hel.f (+8/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%parton_lum_0.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%b_sf_001.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%b_sf_002.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%b_sf_003.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%b_sf_004.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%b_sf_005.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%b_sf_006.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%b_sf_007.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%b_sf_008.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%born.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%born_conf.inc (+1/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%born_hel.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%matrix_1.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%matrix_2.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%matrix_3.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%matrix_4.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%matrix_5.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_1.f (+1/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_2.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_3.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_4.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_5.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%b_sf_001.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%b_sf_002.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%b_sf_003.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%b_sf_004.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%b_sf_005.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%b_sf_006.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%b_sf_007.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%b_sf_008.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%born.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%born_conf.inc (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%born_hel.f (+8/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%matrix_1.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%matrix_2.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%matrix_3.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%parton_lum_1.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%parton_lum_2.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%parton_lum_3.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%b_sf_001.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%b_sf_002.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%b_sf_003.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%b_sf_004.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%b_sf_005.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%b_sf_006.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%b_sf_007.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%b_sf_008.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%born.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%born_conf.inc (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%born_hel.f (+8/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%matrix_1.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%matrix_2.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%matrix_3.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%parton_lum_1.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%parton_lum_2.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%parton_lum_3.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ag_ttx%b_sf_001.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ag_ttx%b_sf_002.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ag_ttx%b_sf_003.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ag_ttx%b_sf_004.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ag_ttx%b_sf_005.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ag_ttx%born.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ag_ttx%born_conf.inc (+1/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ag_ttx%born_hel.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ag_ttx%matrix_1.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ag_ttx%matrix_2.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ag_ttx%matrix_3.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ag_ttx%matrix_4.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ag_ttx%matrix_5.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ag_ttx%parton_lum_1.f (+1/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ag_ttx%parton_lum_2.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ag_ttx%parton_lum_3.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ag_ttx%parton_lum_4.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ag_ttx%parton_lum_5.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%amp_split_orders.inc (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%b_sf_001.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%b_sf_002.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%b_sf_003.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%b_sf_004.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%b_sf_005.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%b_sf_006.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%b_sf_007.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%b_sf_008.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%born.f (+8/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%born_conf.inc (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%born_hel.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%fks_info.inc (+51/-51)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%matrix_1.f (+74/-35)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%matrix_2.f (+76/-37)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%matrix_3.f (+35/-74)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%matrix_4.f (+37/-76)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%matrix_5.f (+76/-37)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%matrix_6.f (+37/-76)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%parton_lum_1.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%parton_lum_2.f (+9/-9)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%parton_lum_3.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%parton_lum_4.f (+9/-9)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%parton_lum_5.f (+9/-9)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ddx_ttx%parton_lum_6.f (+9/-9)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%amp_split_orders.inc (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%b_sf_001.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%b_sf_002.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%b_sf_003.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%b_sf_004.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%b_sf_005.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%b_sf_006.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%b_sf_007.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%b_sf_008.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%born.f (+8/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%born_conf.inc (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%born_hel.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%fks_info.inc (+49/-49)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%matrix_1.f (+74/-35)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%matrix_2.f (+76/-37)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%matrix_3.f (+35/-74)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%matrix_4.f (+37/-76)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%matrix_5.f (+76/-37)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%matrix_6.f (+37/-76)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%parton_lum_1.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%parton_lum_2.f (+9/-9)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%parton_lum_3.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%parton_lum_4.f (+9/-9)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%parton_lum_5.f (+9/-9)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_dxd_ttx%parton_lum_6.f (+9/-9)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ga_ttx%b_sf_001.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ga_ttx%b_sf_002.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ga_ttx%b_sf_003.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ga_ttx%b_sf_004.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ga_ttx%b_sf_005.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ga_ttx%born.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ga_ttx%born_conf.inc (+1/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ga_ttx%born_hel.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ga_ttx%matrix_1.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ga_ttx%matrix_2.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ga_ttx%matrix_3.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ga_ttx%matrix_4.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ga_ttx%matrix_5.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ga_ttx%parton_lum_1.f (+1/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ga_ttx%parton_lum_2.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ga_ttx%parton_lum_3.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ga_ttx%parton_lum_4.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_ga_ttx%parton_lum_5.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%b_sf_001.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%b_sf_002.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%b_sf_003.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%b_sf_004.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%b_sf_005.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%b_sf_006.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%b_sf_007.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%b_sf_008.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%born.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%born_conf.inc (+1/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%born_hel.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%matrix_1.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%matrix_2.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%matrix_3.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%matrix_4.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%matrix_5.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%matrix_6.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%matrix_7.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%matrix_8.f (+12/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%matrix_9.f (+3/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%parton_lum_1.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%parton_lum_2.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%parton_lum_3.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%parton_lum_4.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%parton_lum_5.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%parton_lum_6.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%parton_lum_7.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%parton_lum_8.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_gg_ttx%parton_lum_9.f (+1/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%amp_split_orders.inc (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%b_sf_001.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%b_sf_002.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%b_sf_003.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%b_sf_004.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%b_sf_005.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%b_sf_006.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%b_sf_007.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%b_sf_008.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%born.f (+8/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%born_conf.inc (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%born_hel.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%fks_info.inc (+51/-51)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%matrix_1.f (+74/-35)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%matrix_2.f (+76/-37)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%matrix_3.f (+35/-74)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%matrix_4.f (+37/-76)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%matrix_5.f (+76/-37)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%matrix_6.f (+37/-76)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%parton_lum_1.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%parton_lum_2.f (+9/-9)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%parton_lum_3.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%parton_lum_4.f (+9/-9)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%parton_lum_5.f (+9/-9)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uux_ttx%parton_lum_6.f (+9/-9)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%amp_split_orders.inc (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%b_sf_001.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%b_sf_002.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%b_sf_003.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%b_sf_004.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%b_sf_005.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%b_sf_006.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%b_sf_007.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%b_sf_008.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%born.f (+8/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%born_conf.inc (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%born_hel.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%fks_info.inc (+49/-49)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%matrix_1.f (+74/-35)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%matrix_2.f (+76/-37)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%matrix_3.f (+35/-74)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%matrix_4.f (+37/-76)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%matrix_5.f (+76/-37)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%matrix_6.f (+37/-76)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%parton_lum_1.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%parton_lum_2.f (+9/-9)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%parton_lum_3.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%parton_lum_4.f (+9/-9)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%parton_lum_5.f (+9/-9)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksrealew/%SubProcesses%P0_uxu_ttx%parton_lum_6.f (+9/-9)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%COLLIER_interface.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%CT_interface.f (+4/-15)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%TIR_interface.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%born_matrix.f (+5/-5)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%coef_construction_1.f (+1/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%helas_calls_ampb_1.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%loop_matrix.f (+3/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%mp_coef_construction_1.f (+1/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%mp_compute_loop_coefs.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%mp_helas_calls_ampb_1.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%polynomial.f (+0/-36)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%b_sf_001.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%born.f (+7/-7)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%born_conf.inc (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%born_hel.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%matrix_1.f (+8/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%matrix_2.f (+8/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%matrix_3.f (+8/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%parton_lum_1.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%parton_lum_2.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%parton_lum_3.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%COLLIER_interface.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%CT_interface.f (+4/-15)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%TIR_interface.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%born_matrix.f (+5/-5)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%coef_construction_1.f (+1/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%helas_calls_ampb_1.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%loop_matrix.f (+3/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%mp_coef_construction_1.f (+1/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%mp_compute_loop_coefs.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%mp_helas_calls_ampb_1.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%polynomial.f (+0/-36)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%b_sf_001.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%born.f (+7/-7)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%born_conf.inc (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%born_hel.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%matrix_1.f (+8/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%matrix_2.f (+8/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%matrix_3.f (+8/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%parton_lum_1.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%parton_lum_2.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%parton_lum_3.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_001.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_002.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_003.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_004.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_005.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_006.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_007.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_008.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_conf.inc (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_hel.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%matrix_1.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%parton_lum_1.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%V0_dxu_veep%COLLIER_interface.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%V0_dxu_veep%CT_interface.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%V0_dxu_veep%TIR_interface.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%V0_dxu_veep%born_matrix.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%V0_dxu_veep%coef_construction_1.f (+49/-49)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%V0_dxu_veep%helas_calls_ampb_1.f (+10/-10)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%V0_dxu_veep%loop_matrix.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%V0_dxu_veep%mp_coef_construction_1.f (+55/-55)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%V0_dxu_veep%mp_compute_loop_coefs.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%V0_dxu_veep%mp_helas_calls_ampb_1.f (+11/-11)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%V0_dxu_veep%polynomial.f (+40/-40)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%b_sf_001.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%born.f (+9/-9)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%born_conf.inc (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%born_hel.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%matrix_1.f (+13/-13)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%matrix_2.f (+13/-13)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%matrix_3.f (+13/-13)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%parton_lum_1.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%parton_lum_2.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_dxu_veep%parton_lum_3.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%V0_udx_veep%COLLIER_interface.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%V0_udx_veep%CT_interface.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%V0_udx_veep%TIR_interface.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%V0_udx_veep%born_matrix.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%V0_udx_veep%coef_construction_1.f (+49/-49)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%V0_udx_veep%helas_calls_ampb_1.f (+10/-10)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%V0_udx_veep%loop_matrix.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%V0_udx_veep%mp_coef_construction_1.f (+55/-55)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%V0_udx_veep%mp_compute_loop_coefs.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%V0_udx_veep%mp_helas_calls_ampb_1.f (+11/-11)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%V0_udx_veep%polynomial.f (+40/-40)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%b_sf_001.f (+6/-6)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%born.f (+9/-9)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%born_conf.inc (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%born_hel.f (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%matrix_1.f (+13/-13)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%matrix_2.f (+13/-13)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%matrix_3.f (+13/-13)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%parton_lum_1.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%parton_lum_2.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_wprod_fksew/%SubProcesses%P0_udx_veep%parton_lum_3.f (+2/-2)
tests/input_files/IOTestsComparison/IOExportPythia8Test/write_cpp_go_process_cc_file/cpp_go_process.cc (+6/-6)
tests/input_files/IOTestsComparison/IOExportPythia8Test/write_dec_multiprocess_files/write_dec_multiprocess_files.cc (+95/-95)
tests/input_files/IOTestsComparison/IOHistogramTest/DJR_histograms/CKKWL_djrs_output.HwU (+806/-806)
tests/input_files/IOTestsComparison/IOHistogramTest/DJR_histograms/CKKWL_djrs_output.gnuplot (+16/-16)
tests/input_files/IOTestsComparison/IOHistogramTest/DJR_histograms/MLM_djrs_output.HwU (+925/-925)
tests/input_files/IOTestsComparison/IOHistogramTest/DJR_histograms/MLM_djrs_output.gnuplot (+12/-12)
tests/input_files/IOTestsComparison/MECmdShell/check_html_long_process_strings/info.html (+10/-10)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%CT_interface.f (+154/-154)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%helas_calls_ampb_1.f (+35/-35)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%helas_calls_uvct_1.f (+18/-18)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%mp_helas_calls_ampb_1.f (+35/-35)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%mp_helas_calls_uvct_1.f (+18/-18)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%CT_interface.f (+0/-302)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%born_matrix.f (+20/-20)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%helas_calls_ampb_1.f (+28/-28)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%loop_matrix.f (+1/-2)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%mp_helas_calls_ampb_1.f (+28/-28)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%polynomial.f (+42/-79)
tests/input_files/IOTestsComparison/TestMadWeight/modification_to_cuts/cuts.f (+1739/-1739)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%coupl.inc (+17/-17)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%coupl_write.inc (+8/-8)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%couplings1.f (+3/-4)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%couplings2.f (+14/-14)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%input.inc (+12/-12)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%intparam_definition.inc (+6/-6)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%model_functions.f (+8/-8)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%mp_coupl.inc (+21/-20)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%mp_coupl_same_name.inc (+17/-17)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%mp_couplings2.f (+16/-16)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%mp_input.inc (+8/-8)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%mp_intparam_definition.inc (+6/-6)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/born_matrix.f (+3/-3)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/loop_matrix.f (+39/-39)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/mp_born_amps_and_wfs.f (+29/-29)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%coupl.inc (+23/-25)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%coupl_write.inc (+14/-14)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%couplings1.f (+3/-4)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%couplings2.f (+16/-24)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%couplings3.f (+20/-12)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%input.inc (+14/-14)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%intparam_definition.inc (+5/-8)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%model_functions.f (+8/-8)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%mp_coupl.inc (+30/-30)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%mp_coupl_same_name.inc (+23/-23)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%mp_couplings2.f (+18/-30)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%mp_couplings3.f (+26/-14)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%mp_input.inc (+23/-24)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%mp_intparam_definition.inc (+5/-8)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/born_matrix.f (+4/-4)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/loop_matrix.f (+212/-212)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/mp_born_amps_and_wfs.f (+162/-162)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%coupl.inc (+17/-17)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%coupl_write.inc (+8/-8)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%couplings1.f (+3/-4)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%couplings2.f (+14/-14)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%input.inc (+12/-12)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%intparam_definition.inc (+6/-6)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%model_functions.f (+8/-8)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%mp_coupl.inc (+21/-20)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%mp_coupl_same_name.inc (+17/-17)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%mp_couplings2.f (+16/-16)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%mp_input.inc (+8/-8)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%mp_intparam_definition.inc (+6/-6)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/born_matrix.f (+3/-3)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/coef_construction_1.f (+5/-5)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/helas_calls_ampb_1.f (+21/-21)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/helas_calls_uvct_1.f (+8/-8)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/mp_coef_construction_1.f (+5/-5)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/mp_helas_calls_ampb_1.f (+21/-21)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/mp_helas_calls_uvct_1.f (+8/-8)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/polynomial.f (+140/-140)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%coupl.inc (+23/-25)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%coupl_write.inc (+14/-14)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%couplings1.f (+3/-4)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%couplings2.f (+16/-24)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%couplings3.f (+20/-12)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%input.inc (+14/-14)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%intparam_definition.inc (+5/-8)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%model_functions.f (+8/-8)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%mp_coupl.inc (+30/-30)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%mp_coupl_same_name.inc (+23/-23)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%mp_couplings2.f (+18/-30)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%mp_couplings3.f (+26/-14)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%mp_input.inc (+23/-24)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%mp_intparam_definition.inc (+5/-8)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/CT_interface.f (+134/-134)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/born_matrix.f (+4/-4)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/coef_construction_1.f (+17/-17)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/helas_calls_ampb_1.f (+114/-114)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/helas_calls_uvct_1.f (+48/-48)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/loop_CT_calls_1.f (+4/-4)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/mp_coef_construction_1.f (+17/-17)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/mp_helas_calls_ampb_1.f (+114/-114)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/mp_helas_calls_uvct_1.f (+48/-48)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%coupl.inc (+12/-12)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%coupl_write.inc (+1/-1)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%couplings2.f (+1/-1)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%input.inc (+6/-6)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%intparam_definition.inc (+5/-5)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%model_functions.f (+8/-8)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%mp_coupl.inc (+17/-17)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%mp_coupl_same_name.inc (+12/-12)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%mp_couplings2.f (+1/-1)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%mp_input.inc (+6/-6)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%mp_intparam_definition.inc (+5/-5)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/ddx_ttx/loop_matrix.f (+24/-24)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/ddx_ttx/mp_born_amps_and_wfs.f (+18/-18)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%coupl.inc (+23/-21)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%coupl_write.inc (+10/-10)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%couplings2.f (+13/-18)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%couplings3.f (+12/-7)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%input.inc (+8/-10)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%intparam_definition.inc (+5/-8)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%model_functions.f (+8/-8)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%mp_coupl.inc (+25/-25)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%mp_coupl_same_name.inc (+21/-21)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%mp_couplings2.f (+15/-22)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%mp_couplings3.f (+16/-9)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%mp_input.inc (+37/-37)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%mp_intparam_definition.inc (+5/-8)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/loop_matrix.f (+59/-59)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/mp_born_amps_and_wfs.f (+53/-53)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/helas_calls_ampb_1.f (+14/-14)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/helas_calls_uvct_1.f (+4/-4)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/mp_helas_calls_ampb_1.f (+14/-14)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/mp_helas_calls_uvct_1.f (+4/-4)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/polynomial.f (+42/-42)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%coupl.inc (+23/-21)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%coupl_write.inc (+10/-10)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%couplings2.f (+13/-18)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%couplings3.f (+12/-7)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%input.inc (+8/-10)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%intparam_definition.inc (+5/-8)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%model_functions.f (+8/-8)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%mp_coupl.inc (+25/-25)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%mp_coupl_same_name.inc (+21/-21)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%mp_couplings2.f (+15/-22)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%mp_couplings3.f (+16/-9)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%mp_input.inc (+37/-37)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%mp_intparam_definition.inc (+5/-8)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/CT_interface.f (+143/-143)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/helas_calls_ampb_1.f (+35/-35)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/helas_calls_uvct_1.f (+18/-18)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/mp_helas_calls_ampb_1.f (+35/-35)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/mp_helas_calls_uvct_1.f (+18/-18)
tests/input_files/LoopSMEWTest/CT_couplings.py (+5/-3)
tests/input_files/LoopSMEWTest/CT_parameters.py (+5/-3)
tests/input_files/LoopSMEWTest/CT_vertices.py (+6/-4)
tests/input_files/LoopSMEWTest/__init__.py (+13/-12)
tests/input_files/LoopSMEWTest/coupling_orders.py (+3/-1)
tests/input_files/LoopSMEWTest/couplings.py (+5/-3)
tests/input_files/LoopSMEWTest/function_library.py (+3/-1)
tests/input_files/LoopSMEWTest/lorentz.py (+3/-2)
tests/input_files/LoopSMEWTest/object_library.py (+5/-2)
tests/input_files/LoopSMEWTest/parameters.py (+4/-4)
tests/input_files/LoopSMEWTest/particles.py (+4/-3)
tests/input_files/LoopSMEWTest/vertices.py (+6/-4)
tests/input_files/LoopSMEWTest/write_param_card.py (+11/-8)
tests/input_files/LoopSMTest/CT_couplings.py (+3/-2)
tests/input_files/LoopSMTest/CT_parameters.py (+3/-3)
tests/input_files/LoopSMTest/CT_vertices.py (+6/-4)
tests/input_files/LoopSMTest/__init__.py (+13/-11)
tests/input_files/LoopSMTest/coupling_orders.py (+3/-1)
tests/input_files/LoopSMTest/couplings.py (+3/-2)
tests/input_files/LoopSMTest/function_library.py (+2/-1)
tests/input_files/LoopSMTest/lorentz.py (+3/-2)
tests/input_files/LoopSMTest/object_library.py (+7/-4)
tests/input_files/LoopSMTest/parameters.py (+4/-4)
tests/input_files/LoopSMTest/particles.py (+4/-3)
tests/input_files/LoopSMTest/vertices.py (+6/-4)
tests/input_files/LoopSMTest/write_param_card.py (+12/-8)
tests/input_files/fourfermion_UFO/__init__.py (+9/-8)
tests/input_files/fourfermion_UFO/coupling_orders.py (+2/-1)
tests/input_files/fourfermion_UFO/couplings.py (+3/-2)
tests/input_files/fourfermion_UFO/decays.py (+3/-2)
tests/input_files/fourfermion_UFO/function_library.py (+2/-1)
tests/input_files/fourfermion_UFO/lorentz.py (+3/-2)
tests/input_files/fourfermion_UFO/object_library.py (+3/-1)
tests/input_files/fourfermion_UFO/parameters.py (+5/-4)
tests/input_files/fourfermion_UFO/particles.py (+3/-2)
tests/input_files/fourfermion_UFO/vertices.py (+5/-4)
tests/input_files/fourfermion_UFO/write_param_card.py (+11/-8)
tests/input_files/full_sm_UFO/__init__.py (+7/-6)
tests/input_files/full_sm_UFO/couplings.py (+216/-215)
tests/input_files/full_sm_UFO/function_library.py (+2/-1)
tests/input_files/full_sm_UFO/lorentz.py (+76/-75)
tests/input_files/full_sm_UFO/object_library.py (+3/-1)
tests/input_files/full_sm_UFO/parameters.py (+400/-399)
tests/input_files/full_sm_UFO/particles.py (+385/-384)
tests/input_files/full_sm_UFO/vertices.py (+456/-455)
tests/input_files/full_sm_UFO/write_param_card.py (+4/-2)
tests/input_files/import_vertexlist.py (+2/-2)
tests/input_files/loop_MSSM/CT_couplings.py (+3/-2)
tests/input_files/loop_MSSM/CT_vertices.py (+5/-4)
tests/input_files/loop_MSSM/__init__.py (+10/-9)
tests/input_files/loop_MSSM/coupling_orders.py (+2/-1)
tests/input_files/loop_MSSM/couplings.py (+3/-2)
tests/input_files/loop_MSSM/function_library.py (+2/-1)
tests/input_files/loop_MSSM/lorentz.py (+3/-2)
tests/input_files/loop_MSSM/object_library.py (+6/-4)
tests/input_files/loop_MSSM/parameters.py (+5/-4)
tests/input_files/loop_MSSM/particles.py (+4/-3)
tests/input_files/loop_MSSM/propagators.py (+2/-1)
tests/input_files/loop_MSSM/vertices.py (+5/-4)
tests/input_files/loop_MSSM/write_param_card.py (+210/-207)
tests/input_files/loop_smgrav/CT_couplings.py (+3/-2)
tests/input_files/loop_smgrav/CT_parameters.py (+3/-2)
tests/input_files/loop_smgrav/CT_vertices.py (+5/-4)
tests/input_files/loop_smgrav/__init__.py (+11/-10)
tests/input_files/loop_smgrav/coupling_orders.py (+2/-1)
tests/input_files/loop_smgrav/couplings.py (+3/-2)
tests/input_files/loop_smgrav/function_library.py (+2/-1)
tests/input_files/loop_smgrav/lorentz.py (+3/-2)
tests/input_files/loop_smgrav/object_library.py (+6/-4)
tests/input_files/loop_smgrav/parameters.py (+5/-4)
tests/input_files/loop_smgrav/particles.py (+4/-3)
tests/input_files/loop_smgrav/vertices.py (+5/-4)
tests/input_files/loop_smgrav/write_param_card.py (+11/-8)
tests/input_files/run_card_nlo.dat (+1/-1)
tests/input_files/sm_with_custom_propa/__init__.py (+11/-10)
tests/input_files/sm_with_custom_propa/build_restrict.py (+1/-0)
tests/input_files/sm_with_custom_propa/coupling_orders.py (+2/-1)
tests/input_files/sm_with_custom_propa/couplings.py (+3/-2)
tests/input_files/sm_with_custom_propa/decays.py (+3/-2)
tests/input_files/sm_with_custom_propa/function_library.py (+2/-1)
tests/input_files/sm_with_custom_propa/lorentz.py (+3/-2)
tests/input_files/sm_with_custom_propa/object_library.py (+3/-1)
tests/input_files/sm_with_custom_propa/parameters.py (+5/-4)
tests/input_files/sm_with_custom_propa/particles.py (+4/-3)
tests/input_files/sm_with_custom_propa/propagators.py (+2/-1)
tests/input_files/sm_with_custom_propa/vertices.py (+5/-4)
tests/input_files/sm_with_custom_propa/write_param_card.py (+11/-8)
tests/parallel_tests/compare_gauge.py (+4/-3)
tests/parallel_tests/compare_with_old_mg5_version.py (+26/-23)
tests/parallel_tests/decay_comparator.py (+44/-42)
tests/parallel_tests/loop_me_comparator.py (+29/-32)
tests/parallel_tests/loop_sample_script.py (+4/-3)
tests/parallel_tests/madevent_comparator.py (+12/-9)
tests/parallel_tests/me_comparator.py (+13/-13)
tests/parallel_tests/sample_script.py (+3/-2)
tests/parallel_tests/test_MG5aMC_distribution.py (+7/-6)
tests/parallel_tests/test_ML5.py (+13/-12)
tests/parallel_tests/test_ML5EW.py (+14/-13)
tests/parallel_tests/test_ML5MSSMQCD.py (+6/-5)
tests/parallel_tests/test_aloha.py (+221/-123)
tests/parallel_tests/test_cmd_amcatnlo.py (+4/-5)
tests/parallel_tests/test_madweight.py (+17/-13)
tests/test_manager.py (+106/-72)
tests/time_db (+127/-123)
tests/unit_tests/__init__.py (+1/-0)
tests/unit_tests/core/test_IOTest_examples.py (+1/-0)
tests/unit_tests/core/test_base_objects.py (+10/-7)
tests/unit_tests/core/test_color_algebra.py (+1/-0)
tests/unit_tests/core/test_color_amp.py (+7/-5)
tests/unit_tests/core/test_diagram_generation.py (+3/-0)
tests/unit_tests/core/test_drawing.py (+8/-5)
tests/unit_tests/core/test_get_s_and_t_channels.py (+1/-0)
tests/unit_tests/core/test_helas_objects.py (+30/-39)
tests/unit_tests/fks/test_extra_ew.py (+94/-88)
tests/unit_tests/fks/test_fks_base.py (+81/-41)
tests/unit_tests/fks/test_fks_common.py (+13/-6)
tests/unit_tests/fks/test_fks_generate_loop.py (+4/-6)
tests/unit_tests/fks/test_fks_helas_objects.py (+11/-18)
tests/unit_tests/fks/test_fks_qed.py (+5/-3)
tests/unit_tests/interface/test_cmd.py (+6/-4)
tests/unit_tests/interface/test_edit_card.py (+1/-0)
tests/unit_tests/interface/test_madevent.py (+1/-0)
tests/unit_tests/iolibs/test_drawing_eps.py (+9/-6)
tests/unit_tests/iolibs/test_export_cpp.py (+32/-24)
tests/unit_tests/iolibs/test_export_fks.py (+36/-31)
tests/unit_tests/iolibs/test_export_python.py (+6/-4)
tests/unit_tests/iolibs/test_export_v4.py (+22/-19)
tests/unit_tests/iolibs/test_file_writers.py (+6/-4)
tests/unit_tests/iolibs/test_files.py (+1/-0)
tests/unit_tests/iolibs/test_group_subprocs.py (+7/-3)
tests/unit_tests/iolibs/test_helas_call_writers.py (+24/-23)
tests/unit_tests/iolibs/test_histograms.py (+3/-1)
tests/unit_tests/iolibs/test_import_v4.py (+20/-7)
tests/unit_tests/iolibs/test_link_to_ufo.py (+1/-0)
tests/unit_tests/iolibs/test_misc.py (+1/-0)
tests/unit_tests/iolibs/test_save_model.py (+3/-1)
tests/unit_tests/iolibs/test_ufo_parsers.py (+3/-1)
tests/unit_tests/loop/test_import_LoopUFOModel.py (+1/-0)
tests/unit_tests/loop/test_loop_diagram_generation.py (+4/-1)
tests/unit_tests/loop/test_loop_drawing.py (+20/-12)
tests/unit_tests/loop/test_loop_exporters.py (+3/-2)
tests/unit_tests/loop/test_loop_helas_objects.py (+61/-58)
tests/unit_tests/madevent/test_combine_runs.py (+1/-0)
tests/unit_tests/madspin/test_madspin.py (+11/-6)
tests/unit_tests/madweight/test_export_v4.py (+2/-1)
tests/unit_tests/madweight/test_permutation.py (+1/-0)
tests/unit_tests/various/test_4fermion_models.py (+12/-6)
tests/unit_tests/various/test_FO_analyse_card.py (+2/-0)
tests/unit_tests/various/test_banner.py (+5/-3)
tests/unit_tests/various/test_check_param_card.py (+11/-9)
tests/unit_tests/various/test_cmd.py (+7/-5)
tests/unit_tests/various/test_decay.py (+9/-7)
tests/unit_tests/various/test_diagram_symmetry.py (+6/-6)
tests/unit_tests/various/test_diquark_models.py (+1/-0)
tests/unit_tests/various/test_histograms.py (+1/-0)
tests/unit_tests/various/test_import_ufo.py (+30/-8)
tests/unit_tests/various/test_lhe_parser.py (+10/-5)
tests/unit_tests/various/test_misc.py (+2/-0)
tests/unit_tests/various/test_model_reader.py (+1/-0)
tests/unit_tests/various/test_process_checks.py (+3/-2)
tests/unit_tests/various/test_rambo.py (+2/-0)
tests/unit_tests/various/test_shower_card.py (+4/-0)
tests/unit_tests/various/test_test_finder.py (+1/-0)
tests/unit_tests/various/test_usermod.py (+23/-10)
tests/unit_tests/various/test_write_param.py (+17/-5)
vendor/IREGI/src/oneloop/create.py (+1/-0)
vendor/IREGI/src/oneloop/example_cpp/create.py (+1/-0)
vendor/IREGI/src/oneloop/src/avh_olo.py (+1/-0)
vendor/IREGI/src/oneloop/src/avh_pc.py (+3/-1)
vendor/IREGI/src/oneloop/src/avh_pc_exe.py (+3/-1)
vendor/IREGI/src/oneloop/src/avh_pc_olo.py (+1/-0)
vendor/StdHEP/mcfio/src/GNUmakefile (+1/-1)
vendor/StdHEP/src/inc/stdevent.h (+4/-0)
vendor/StdHEP/src/stdhep/GNUmakefile (+1/-1)
vendor/StdHEP/src/stdhep/mcf_hepev4_xdr.c (+1/-1)
vendor/StdHEP/src/stdhep/mcf_hepup_xdr.c (+1/-1)
vendor/StdHEP/src/stdhep_arch (+1/-1)
vendor/ply/cpp.py (+23/-19)
vendor/ply/lex.py (+5/-2)
vendor/ply/yacc.py (+45/-12)
To merge this branch: bzr merge lp:~maddevelopers/mg5amcnlo/3.0.1_4FS_merged3.0.2_latest
Reviewer Review Type Date Requested Status
Rikkert Frederix Needs Fixing
Valentin Hirschi Pending
Review via email: mp+386427@code.launchpad.net

Commit message

Enables the computation of EW corrections in the 4FS

Description of the change

the possibility of computing EW corrections in the 4FS is added, including in the complex-mass scheme.

To post a comment you must log in.
953. By marco zaro

merged with 3.0.3

Revision history for this message
Rikkert Frederix (frederix) wrote :

Hi Marco,

It looks like you have turned on the compute_6to5flav_cnt() stuff (which is now relevant for the 5to4flav). This should be fixed. (Also, these terms should not be added to the Born -> rather, a new 'type' should be created (current list is in add_wgt() subroutine of fks_singular.f). This will probably require a couple of changes throughout the code, but will be the cleanest and most easy to maintain in the future.

Cheers,
Rikkert

review: Needs Fixing
954. By marco zaro

restored 6to5 cnt function

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

If youu addd at new 'type'
Do not forget that it impacts reweighting/systematics (off-line version).
So please ping me such that I modify those accordingly

Olivier

955. By marco zaro

merged with 3.0.4

956. By olivier-mattelaer

remove loop_qcd_qed_sm_Gmu_4FS and loop_qcd_qed_sm_4FS from model directory -> put online

957. By marco zaro

merged with 3.0.4 rev 973

Unmerged revisions

957. By marco zaro

merged with 3.0.4 rev 973

956. By olivier-mattelaer

remove loop_qcd_qed_sm_Gmu_4FS and loop_qcd_qed_sm_4FS from model directory -> put online

955. By marco zaro

merged with 3.0.4

954. By marco zaro

restored 6to5 cnt function

953. By marco zaro

merged with 3.0.3

952. By marco zaro

merged with 2.7.3

951. By marco zaro

merged with 3.0.2 rev 984

950. By marco zaro

update notes

949. By marco zaro

fix in the function that changes the number-of-flavour scheme.
      Was raising an error if a given coupling order could not be found.
            Now it has been fixed

948. By Hua-Sheng Shao

A crucial fix for B0F, where the tiny in sqrt should be smaller than that in log. The fix allows a correct Riemann sheet for B0F(MW**2,MB**2,MT**2).

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'MadSpin/decay.py'
--- MadSpin/decay.py 2020-06-21 21:31:33 +0000
+++ MadSpin/decay.py 2021-01-08 10:23:50 +0000
@@ -1,7 +1,12 @@
1#!/usr/bin/env python1#!/usr/bin/env python
22
3from __future__ import division3from __future__ import division
4from __future__ import absolute_import
5from __future__ import print_function
4from madgraph.interface import reweight_interface6from madgraph.interface import reweight_interface
7from six.moves import map
8from six.moves import range
9from six.moves import zip
510
6################################################################################11################################################################################
7#12#
@@ -94,7 +99,7 @@
94 99
95 p=[]100 p=[]
96 string=""101 string=""
97 for id in xrange(len(self.particle)):102 for id in range(len(self.particle)):
98 particle = self.particle[map_event[id] + 1]103 particle = self.particle[map_event[id] + 1]
99 if particle["istup"] < 2:104 if particle["istup"] < 2:
100 mom = particle["momentum"]105 mom = particle["momentum"]
@@ -115,28 +120,26 @@
115 pattern = re.compile(r'''<\s*wgt id=[\'\"](?P<id>[^\'\"]+)[\'\"]\s*>\s*(?P<val>[\ded+-.]*)\s*</wgt>''')120 pattern = re.compile(r'''<\s*wgt id=[\'\"](?P<id>[^\'\"]+)[\'\"]\s*>\s*(?P<val>[\ded+-.]*)\s*</wgt>''')
116 data = pattern.findall(self.rwgt)121 data = pattern.findall(self.rwgt)
117 if len(data)==0:122 if len(data)==0:
118 print self.rwgt123 print(self.rwgt)
119 try:124 try:
120 text = ''.join(' <wgt id=\'%s\'> %+15.7e </wgt>\n' % (pid, float(value) * factor)125 text = ''.join(' <wgt id=\'%s\'> %+15.7e </wgt>\n' % (pid, float(value) * factor)
121 for (pid,value) in data) 126 for (pid,value) in data)
122 except ValueError, error:127 except ValueError as error:
123 raise Exception, 'Event File has unvalid weight. %s' % error128 raise Exception('Event File has unvalid weight. %s' % error)
124 self.rwgt = self.rwgt[:start] + '<rwgt>\n'+ text + self.rwgt[stop:] 129 self.rwgt = self.rwgt[:start] + '<rwgt>\n'+ text + self.rwgt[stop:]
125130
126 def string_event_compact(self):131 def string_event_compact(self):
127 """ return a string with the momenta of the event written 132 """ return a string with the momenta of the event written
128 in an easy readable way133 in an easy readable way
129 """134 """
130 line=""135 line=[]
131 for part in range(1,len(self.particle)+1):136 for part in range(1,len(self.particle)+1):
132 line+=str(self.particle[part]["pid"])+" "137 pid = self.particle[part]["pid"]
133 line+=str(self.particle[part]["momentum"].px)+" "138 m = self.particle[part]["momentum"]
134 line+=str(self.particle[part]["momentum"].py)+" "139 line.append("%i %s %.7g %.7g %.7g %.7g" %
135 line+=str(self.particle[part]["momentum"].pz)+" "140 (pid, m.px, m.py, m.pz, m.E, m.m))
136 line+=str(self.particle[part]["momentum"].E)+" " 141 line.append('')
137 line+=str(self.particle[part]["momentum"].m)+" " 142 return "\n".join(line)
138 line+="\n"
139 return line
140 143
141 def get_tag(self):144 def get_tag(self):
142 145
@@ -170,7 +173,7 @@
170 (self.nexternal,self.ievent,self.wgt,self.scale,self.aqed,self.aqcd)173 (self.nexternal,self.ievent,self.wgt,self.scale,self.aqed,self.aqcd)
171 line+=line1+"\n"174 line+=line1+"\n"
172 scales= []175 scales= []
173 for item in range(1,len(self.event2mg.keys())+1):176 for item in range(1,len(list(self.event2mg.keys()))+1):
174 part=self.event2mg[item]177 part=self.event2mg[item]
175 if part>0:178 if part>0:
176 particle_line=self.get_particle_line(self.particle[part])179 particle_line=self.get_particle_line(self.particle[part])
@@ -556,7 +559,7 @@
556 # I don't expect this to be inefficient, since there is a BW cut 559 # I don't expect this to be inefficient, since there is a BW cut
557560
558 if tree["nbody"] > 2:561 if tree["nbody"] > 2:
559 raise Exception, 'Phase Space generator not yet ready for 3 body decay'562 raise Exception('Phase Space generator not yet ready for 3 body decay')
560563
561 if ran==1:564 if ran==1:
562 decay_mom=generate_2body_decay(index2mom[res]["momentum"],mA, all_mass[0],all_mass[1])565 decay_mom=generate_2body_decay(index2mom[res]["momentum"],mA, all_mass[0],all_mass[1])
@@ -874,7 +877,7 @@
874 line+=str(d1)+" + "877 line+=str(d1)+" + "
875 line+=str(d2)+" , type="878 line+=str(d2)+" , type="
876 line+=branch["type"]879 line+=branch["type"]
877 print line880 print(line)
878881
879class AllMatrixElement(dict):882class AllMatrixElement(dict):
880 """Object containing all the production topologies required for event to decay.883 """Object containing all the production topologies required for event to decay.
@@ -921,7 +924,7 @@
921 logger.warning("No Branching ratio applied for %s. Please check if this is expected" % init[0])924 logger.warning("No Branching ratio applied for %s. Please check if this is expected" % init[0])
922 br *= self.get_br(decay)925 br *= self.get_br(decay)
923 else:926 else:
924 raise MadGraph5Error,"No valid decay for %s. No 2 body decay for that particle. (three body are not supported by MadSpin)" % init[0]927 raise MadGraph5Error("No valid decay for %s. No 2 body decay for that particle. (three body are not supported by MadSpin)" % init[0])
925928
926 929
927930
@@ -1127,7 +1130,7 @@
11271130
1128 # Reorganize s-channel vertices to get a list of all1131 # Reorganize s-channel vertices to get a list of all
1129 # subprocesses for each vertex1132 # subprocesses for each vertex
1130 schannels = zip(*[s for s,t in stchannels])1133 schannels = list(zip(*[s for s,t in stchannels]))
1131 else:1134 else:
1132 schannels = []1135 schannels = []
11331136
@@ -1168,7 +1171,7 @@
1168 if decay['decay_tag']==decay_tag: return decay1171 if decay['decay_tag']==decay_tag: return decay
11691172
1170 msg = 'Unable to retrieve decay from decay_tag\n%s\n%s' %(production_tag, decay_tag)1173 msg = 'Unable to retrieve decay from decay_tag\n%s\n%s' %(production_tag, decay_tag)
1171 raise Exception, msg1174 raise Exception(msg)
1172 1175
1173 def get_random_decay(self, production_tag,first=[]):1176 def get_random_decay(self, production_tag,first=[]):
1174 """select randomly a decay channel"""1177 """select randomly a decay channel"""
@@ -1384,32 +1387,32 @@
1384 initial=item1387 initial=item
1385 if item not in [ particle['name'] for particle in base_model['particles'] ] \1388 if item not in [ particle['name'] for particle in base_model['particles'] ] \
1386 and item not in [ particle['antiname'] for particle in base_model['particles'] ]:1389 and item not in [ particle['antiname'] for particle in base_model['particles'] ]:
1387 raise Exception, "No particle "+item+ " in the model "+model1390 raise Exception("No particle "+item+ " in the model "+model)
1388 continue1391 continue
1389 elif item=='>': continue # case 2: we have the > symbole1392 elif item=='>': continue # case 2: we have the > symbole
1390 elif item not in ponctuation : # case 3: we have a particle originating from a branching1393 elif item not in ponctuation : # case 3: we have a particle originating from a branching
1391 final.append(item)1394 final.append(item)
1392 if next_symbol=='' or next_symbol in ponctuation:1395 if next_symbol=='' or next_symbol in ponctuation:
1393 #end of a splitting, verify that it exists1396 #end of a splitting, verify that it exists
1394 if initial not in self.br.keys():1397 if initial not in list(self.br.keys()):
1395 logger.debug('Branching fractions of particle '+initial+' are unknown')1398 logger.debug('Branching fractions of particle '+initial+' are unknown')
1396 return 01399 return 0
1397 if len(final)>2:1400 if len(final)>2:
1398 raise Exception, 'splittings different from A > B +C are currently not implemented '1401 raise Exception('splittings different from A > B +C are currently not implemented ')
13991402
1400 if final[0] in multiparticles.keys():1403 if final[0] in list(multiparticles.keys()):
1401 set_B=[pid2label[pid] for pid in multiparticles[final[0]]]1404 set_B=[pid2label[pid] for pid in multiparticles[final[0]]]
1402 else:1405 else:
1403 if final[0] not in [ particle['name'] for particle in base_model['particles'] ] \1406 if final[0] not in [ particle['name'] for particle in base_model['particles'] ] \
1404 and final[0] not in [ particle['antiname'] for particle in base_model['particles'] ]:1407 and final[0] not in [ particle['antiname'] for particle in base_model['particles'] ]:
1405 raise Exception, "No particle "+item+ " in the model "1408 raise Exception("No particle "+item+ " in the model ")
1406 set_B=[final[0]]1409 set_B=[final[0]]
1407 if final[1] in multiparticles.keys():1410 if final[1] in list(multiparticles.keys()):
1408 set_C=[pid2label[pid] for pid in multiparticles[final[1]]]1411 set_C=[pid2label[pid] for pid in multiparticles[final[1]]]
1409 else:1412 else:
1410 if final[1] not in [ particle['name'] for particle in base_model['particles'] ] \1413 if final[1] not in [ particle['name'] for particle in base_model['particles'] ] \
1411 and final[1] not in [ particle['antiname'] for particle in base_model['particles'] ]:1414 and final[1] not in [ particle['antiname'] for particle in base_model['particles'] ]:
1412 raise Exception, "No particle "+item+ " in the model "+model1415 raise Exception("No particle "+item+ " in the model "+model)
1413 set_C=[final[1]]1416 set_C=[final[1]]
14141417
1415 splittings={}1418 splittings={}
@@ -1538,7 +1541,7 @@
1538 ff.close()1541 ff.close()
1539 1542
1540 lhapdf = False1543 lhapdf = False
1541 if os.environ.has_key('lhapdf'):1544 if 'lhapdf' in os.environ:
1542 lhapdf = os.environ['lhapdf']1545 lhapdf = os.environ['lhapdf']
1543 del os.environ['lhapdf']1546 del os.environ['lhapdf']
1544 1547
@@ -1566,7 +1569,7 @@
1566 1569
1567 label2pid = self.label2pid1570 label2pid = self.label2pid
1568 pid2label = self.label2pid1571 pid2label = self.label2pid
1569 for res in self.br.keys():1572 for res in list(self.br.keys()):
1570 particle=self.model.get_particle(label2pid[res])1573 particle=self.model.get_particle(label2pid[res])
1571 if particle['self_antipart']: 1574 if particle['self_antipart']:
1572 continue1575 continue
@@ -1588,7 +1591,7 @@
1588 self.br[anti_res][chan]['daughters']=[]1591 self.br[anti_res][chan]['daughters']=[]
1589 self.br[anti_res][chan]['daughters'].append(d1bar)1592 self.br[anti_res][chan]['daughters'].append(d1bar)
1590 self.br[anti_res][chan]['daughters'].append(d2bar)1593 self.br[anti_res][chan]['daughters'].append(d2bar)
1591 if decay.has_key('width'):1594 if 'width' in decay:
1592 self.br[anti_res][chan]['width']=decay['width'] 1595 self.br[anti_res][chan]['width']=decay['width']
15931596
1594 def launch_width_evaluation(self,resonances, mgcmd):1597 def launch_width_evaluation(self,resonances, mgcmd):
@@ -1847,7 +1850,7 @@
1847 if line =="": break1850 if line =="": break
1848 list_line=line.split()1851 list_line=line.split()
1849 if len(list_line)>2:1852 if len(list_line)>2:
1850 if list_line[0]=="DECAY" and int(list_line[1]) in pid2widths.keys():1853 if list_line[0]=="DECAY" and int(list_line[1]) in list(pid2widths.keys()):
1851 list_line[2]=str(pid2widths[int(list_line[1])]) 1854 list_line[2]=str(pid2widths[int(list_line[1])])
1852 line=""1855 line=""
1853 for item in list_line:1856 for item in list_line:
@@ -2049,7 +2052,7 @@
2049 else:2052 else:
2050 try:2053 try:
2051 self.all_ME, self.all_decay,self.width_estimator = save_load_object.load_from_file(pjoin(self.path_me,"production_me", "all_ME.pkl"))2054 self.all_ME, self.all_decay,self.width_estimator = save_load_object.load_from_file(pjoin(self.path_me,"production_me", "all_ME.pkl"))
2052 except Exception,error:2055 except Exception as error:
2053 logger.debug(str(error))2056 logger.debug(str(error))
2054 self.generate_all_matrix_element()2057 self.generate_all_matrix_element()
2055 self.save_to_file(pickle_info,2058 self.save_to_file(pickle_info,
@@ -2310,7 +2313,7 @@
2310 Please relaunch MS with more events/PS point by event in the2313 Please relaunch MS with more events/PS point by event in the
2311 computation of the maximum_weight.2314 computation of the maximum_weight.
2312 """ % (report['over_weight'], event_nb, 100 * report['over_weight']/event_nb ) 2315 """ % (report['over_weight'], event_nb, 100 * report['over_weight']/event_nb )
2313 raise MadSpinError, error2316 raise MadSpinError(error)
2314 2317
2315 error = True2318 error = True
2316 elif report['%s_f' % (decay['decay_tag'],)] > max(0.01*report[decay['decay_tag']],3):2319 elif report['%s_f' % (decay['decay_tag'],)] > max(0.01*report[decay['decay_tag']],3):
@@ -2321,7 +2324,7 @@
2321 report['%s' % (decay['decay_tag'],)],\2324 report['%s' % (decay['decay_tag'],)],\
2322 100 * report['%s_f' % (decay['decay_tag'],)] / report[ decay['decay_tag']] ,\2325 100 * report['%s_f' % (decay['decay_tag'],)] / report[ decay['decay_tag']] ,\
2323 decay['decay_tag']) 2326 decay['decay_tag'])
2324 raise MadSpinError, error2327 raise MadSpinError(error)
2325 2328
2326 2329
2327 decayed_event.change_wgt(factor= self.branching_ratio) 2330 decayed_event.change_wgt(factor= self.branching_ratio)
@@ -2491,7 +2494,6 @@
2491 return decay_mapping2494 return decay_mapping
2492 2495
2493 BW_cut = self.options['BW_cut'] 2496 BW_cut = self.options['BW_cut']
2494
2495 #class the decay by class (nbody/pid)2497 #class the decay by class (nbody/pid)
2496 nbody_to_decay = collections.defaultdict(list)2498 nbody_to_decay = collections.defaultdict(list)
2497 for decay in self.all_decay.values():2499 for decay in self.all_decay.values():
@@ -2525,7 +2527,6 @@
2525 '\n'.join(str(tree[i]['momentum']) for i in range(1, len(tree))2527 '\n'.join(str(tree[i]['momentum']) for i in range(1, len(tree))
2526 if i in tree))2528 if i in tree))
2527 2529
2528
2529 values = {} 2530 values = {}
2530 for i in range(len(decays)):2531 for i in range(len(decays)):
2531 if any([valid[(i,j)] for j in range(len(decays)) if i !=j]):2532 if any([valid[(i,j)] for j in range(len(decays)) if i !=j]):
@@ -2559,7 +2560,6 @@
2559 comment+= "%4e " % valid[(i,j)]2560 comment+= "%4e " % valid[(i,j)]
2560 comment+= "|"+ os.path.basename(decays[i]['path']) 2561 comment+= "|"+ os.path.basename(decays[i]['path'])
2561 logger.debug(comment)2562 logger.debug(comment)
2562
2563 # store the result in the relation object. (using tag as key)2563 # store the result in the relation object. (using tag as key)
2564 for i in range(len(decays)):2564 for i in range(len(decays)):
2565 tag_i = decays[i]['tag'][2:]2565 tag_i = decays[i]['tag'][2:]
@@ -2654,7 +2654,7 @@
2654 pass2654 pass
2655 try:2655 try:
2656 shutil.rmtree(pjoin(path_me,'production_me'))2656 shutil.rmtree(pjoin(path_me,'production_me'))
2657 except Exception, error:2657 except Exception as error:
2658 pass2658 pass
2659 path_me = self.path_me 2659 path_me = self.path_me
2660 2660
@@ -2683,7 +2683,7 @@
2683 if name == 'all':2683 if name == 'all':
2684 continue2684 continue
2685 #self.banner.get('proc_card').get('multiparticles'):2685 #self.banner.get('proc_card').get('multiparticles'):
2686 mgcmd.do_define("%s = %s" % (name, ' '.join(`i` for i in pdgs)))2686 mgcmd.do_define("%s = %s" % (name, ' '.join(repr(i) for i in pdgs)))
2687 2687
2688 2688
2689 mgcmd.exec_cmd("set group_subprocesses False")2689 mgcmd.exec_cmd("set group_subprocesses False")
@@ -2701,7 +2701,7 @@
2701 2701
2702 mgcmd.exec_cmd(commandline, precmd=True)2702 mgcmd.exec_cmd(commandline, precmd=True)
2703 commandline = 'output standalone_msP %s %s' % \2703 commandline = 'output standalone_msP %s %s' % \
2704 (pjoin(path_me,'production_me'), ' '.join(self.list_branches.keys())) 2704 (pjoin(path_me,'production_me'), ' '.join(list(self.list_branches.keys())))
2705 mgcmd.exec_cmd(commandline, precmd=True) 2705 mgcmd.exec_cmd(commandline, precmd=True)
2706 logger.info('Done %.4g' % (time.time()-start))2706 logger.info('Done %.4g' % (time.time()-start))
27072707
@@ -2722,19 +2722,19 @@
2722 if self.all_ME.has_particles_ambiguity:2722 if self.all_ME.has_particles_ambiguity:
2723 final_states.add(self.pid2label[-1*self.pid2label[label]])2723 final_states.add(self.pid2label[-1*self.pid2label[label]])
2724 final_states.add(label)2724 final_states.add(label)
2725 for key in self.list_branches.keys():2725 for key in list(self.list_branches.keys()):
2726 if key not in final_states and key not in self.mgcmd._multiparticles:2726 if key not in final_states and key not in self.mgcmd._multiparticles:
2727 if (len(self.list_branches)>1):2727 if (len(self.list_branches)>1):
2728 del self.list_branches[key]2728 del self.list_branches[key]
2729 elif not self.options["onlyhelicity"]:2729 elif not self.options["onlyhelicity"]:
2730 raise Exception, " No decay define for process."2730 raise Exception(" No decay define for process.")
2731 logger.info('keeping dummy decay for passthrough mode')2731 logger.info('keeping dummy decay for passthrough mode')
27322732
2733 # 4. compute the full matrix element -----------------------------------2733 # 4. compute the full matrix element -----------------------------------
2734 if not self.options["onlyhelicity"]:2734 if not self.options["onlyhelicity"]:
2735 logger.info('generating the full matrix element squared (with decay)')2735 logger.info('generating the full matrix element squared (with decay)')
2736 start = time.time()2736 start = time.time()
2737 to_decay = self.mscmd.list_branches.keys()2737 to_decay = list(self.mscmd.list_branches.keys())
2738 decay_text = []2738 decay_text = []
2739 for decays in self.mscmd.list_branches.values():2739 for decays in self.mscmd.list_branches.values():
2740 for decay in decays:2740 for decay in decays:
@@ -2757,13 +2757,13 @@
2757 # remove decay with 0 branching ratio.2757 # remove decay with 0 branching ratio.
2758 mgcmd.remove_pointless_decay(self.banner.param_card)2758 mgcmd.remove_pointless_decay(self.banner.param_card)
2759 commandline = 'output standalone_msF %s %s' % (pjoin(path_me,'full_me'),2759 commandline = 'output standalone_msF %s %s' % (pjoin(path_me,'full_me'),
2760 ' '.join(self.list_branches.keys()))2760 ' '.join(list(self.list_branches.keys())))
2761 mgcmd.exec_cmd(commandline, precmd=True)2761 mgcmd.exec_cmd(commandline, precmd=True)
2762 logger.info('Done %.4g' % (time.time()-start))2762 logger.info('Done %.4g' % (time.time()-start))
2763 elif self.options["onlyhelicity"]:2763 elif self.options["onlyhelicity"]:
2764 logger.info("Helicity Matrix-Element") 2764 logger.info("Helicity Matrix-Element")
2765 commandline = 'output standalone_msF %s %s' % \2765 commandline = 'output standalone_msF %s %s' % \
2766 (pjoin(path_me,'full_me'), ' '.join(self.list_branches.keys())) 2766 (pjoin(path_me,'full_me'), ' '.join(list(self.list_branches.keys())))
2767 mgcmd.exec_cmd(commandline, precmd=True) 2767 mgcmd.exec_cmd(commandline, precmd=True)
2768 logger.info('Done %.4g' % (time.time()-start)) 2768 logger.info('Done %.4g' % (time.time()-start))
27692769
@@ -2875,7 +2875,7 @@
2875 try:2875 try:
2876 proc_nb = int(proc_nb)2876 proc_nb = int(proc_nb)
2877 except ValueError:2877 except ValueError:
2878 raise MadSpinError, 'MadSpin didn\'t allow order restriction after the @ comment: \"%s\" not valid' % proc_nb2878 raise MadSpinError('MadSpin didn\'t allow order restriction after the @ comment: \"%s\" not valid' % proc_nb)
2879 proc_nb = '@%i' % proc_nb 2879 proc_nb = '@%i' % proc_nb
2880 else:2880 else:
2881 baseproc = new_proc2881 baseproc = new_proc
@@ -2896,7 +2896,7 @@
2896 else:2896 else:
2897 part = baseproc.split(',')2897 part = baseproc.split(',')
2898 if any('(' in p for p in part):2898 if any('(' in p for p in part):
2899 raise Exception, 'too much decay at MG level. this can not be done for the moment)' 2899 raise Exception('too much decay at MG level. this can not be done for the moment)')
2900 else:2900 else:
2901 decay_part = []2901 decay_part = []
2902 for p in part[1:]:2902 for p in part[1:]:
@@ -2912,7 +2912,7 @@
2912 # Compute the width branching ratio. Doing this at this point allows2912 # Compute the width branching ratio. Doing this at this point allows
2913 #to remove potential pointless decay in the diagram generation.2913 #to remove potential pointless decay in the diagram generation.
2914 resonances = decay_misc.get_all_resonances(self.banner, 2914 resonances = decay_misc.get_all_resonances(self.banner,
2915 self.mgcmd, self.mscmd.list_branches.keys())2915 self.mgcmd, list(self.mscmd.list_branches.keys()))
29162916
2917 logger.debug('List of resonances:%s' % resonances)2917 logger.debug('List of resonances:%s' % resonances)
2918 path_me = os.path.realpath(self.path_me) 2918 path_me = os.path.realpath(self.path_me)
@@ -3030,9 +3030,9 @@
30303030
3031 if __debug__:3031 if __debug__:
3032 if(os.path.getsize(pjoin(path_me, mode,'SubProcesses', 'parameters.inc'))<10):3032 if(os.path.getsize(pjoin(path_me, mode,'SubProcesses', 'parameters.inc'))<10):
3033 print pjoin(path_me, mode,'SubProcesses', 'parameters.inc')3033 print(pjoin(path_me, mode,'SubProcesses', 'parameters.inc'))
3034 raise Exception, "Parameters of the model were not written correctly ! %s " %\3034 raise Exception("Parameters of the model were not written correctly ! %s " %\
3035 os.path.getsize(pjoin(path_me, mode,'SubProcesses', 'parameters.inc'))3035 os.path.getsize(pjoin(path_me, mode,'SubProcesses', 'parameters.inc')))
30363036
30373037
3038 def extract_resonances_mass_width(self, resonances):3038 def extract_resonances_mass_width(self, resonances):
@@ -3050,7 +3050,7 @@
3050 part=abs(self.pid2label[particle_label])3050 part=abs(self.pid2label[particle_label])
3051 #mass = self.banner.get('param_card','mass', abs(part))3051 #mass = self.banner.get('param_card','mass', abs(part))
3052 width = self.banner.get('param_card','decay', abs(part))3052 width = self.banner.get('param_card','decay', abs(part))
3053 except ValueError, error:3053 except ValueError as error:
3054 continue3054 continue
3055 else:3055 else:
3056 if (width.value > 0.001): 3056 if (width.value > 0.001):
@@ -3153,7 +3153,6 @@
3153 continue # No decay for this process3153 continue # No decay for this process
3154 atleastonedecay = True3154 atleastonedecay = True
3155 weight = self.get_max_weight_from_fortran(decay['path'], event_map,numberps,self.options['BW_cut'])3155 weight = self.get_max_weight_from_fortran(decay['path'], event_map,numberps,self.options['BW_cut'])
3156
3157 #weight=mg5_me_full*BW_weight_prod*BW_weight_decay/mg5_me_prod3156 #weight=mg5_me_full*BW_weight_prod*BW_weight_decay/mg5_me_prod
3158 if tag in max_decay:3157 if tag in max_decay:
3159 max_decay[tag] = max([max_decay[tag], weight])3158 max_decay[tag] = max([max_decay[tag], weight])
@@ -3291,10 +3290,12 @@
3291 path, std_in)3290 path, std_in)
32923291
3293 return max_weight3292 return max_weight
3294 3293
3294 nb_load = 0
3295 def loadfortran(self, mode, path, stdin_text, first=True):3295 def loadfortran(self, mode, path, stdin_text, first=True):
3296 """ call the fortran executable """3296 """ call the fortran executable """
32973297
3298 self.nb_load +=1
3298 tmpdir = ''3299 tmpdir = ''
3299 if ('full',path) in self.calculator:3300 if ('full',path) in self.calculator:
3300 external = self.calculator[('full',path)]3301 external = self.calculator[('full',path)]
@@ -3304,17 +3305,32 @@
3304 tmpdir = path3305 tmpdir = path
33053306
3306 executable_prod="./check"3307 executable_prod="./check"
3308 my_env = os.environ.copy()
3309 my_env["GFORTRAN_UNBUFFERED_ALL"] = "y"
3307 external = Popen(executable_prod, stdout=PIPE, stdin=PIPE, 3310 external = Popen(executable_prod, stdout=PIPE, stdin=PIPE,
3308 stderr=STDOUT, cwd=tmpdir)3311 stderr=STDOUT, cwd=tmpdir, env=my_env)
3309 self.calculator[('full',path,)] = external 3312 self.calculator[('full',path,)] = external
3310 self.calculator_nbcall[('full',path)] = 1 3313 self.calculator_nbcall[('full',path)] = 1
33113314
3312 try:3315 try:
3313 external.stdin.write(stdin_text)3316 external.stdin.write(stdin_text.encode())
3314 except IOError:3317 external.stdin.flush()
3318 except IOError as error:
3315 if not first:3319 if not first:
3316 raise3320 raise
3317 try:3321 try:
3322 external.stdin.close()
3323 except Exception as error:
3324 misc.sprint(error)
3325 try:
3326 external.stdout.close()
3327 except Exception as error:
3328 misc.sprint(error)
3329 try:
3330 external.stderr.close()
3331 except Exception as error:
3332 misc.sprint(error)
3333 try:
3318 external.terminate()3334 external.terminate()
3319 except:3335 except:
3320 pass3336 pass
@@ -3346,7 +3362,7 @@
33463362
3347 if len(self.calculator) > self.options['max_running_process']:3363 if len(self.calculator) > self.options['max_running_process']:
3348 logger.debug('more than %s calculators. Perform cleaning' % self.options['max_running_process'])3364 logger.debug('more than %s calculators. Perform cleaning' % self.options['max_running_process'])
3349 nb_calls = self.calculator_nbcall.values()3365 nb_calls = list(self.calculator_nbcall.values())
3350 nb_calls.sort()3366 nb_calls.sort()
3351 cut = max([nb_calls[len(nb_calls)//2], 0.001 * nb_calls[-1]])3367 cut = max([nb_calls[len(nb_calls)//2], 0.001 * nb_calls[-1]])
3352 for key, external in list(self.calculator.items()):3368 for key, external in list(self.calculator.items()):
@@ -3375,7 +3391,7 @@
3375 """routine to return the matrix element"""3391 """routine to return the matrix element"""
33763392
3377 if mode != "decay":3393 if mode != "decay":
3378 raise Exception, "This function is only secure in mode decay."3394 raise Exception("This function is only secure in mode decay.")
33793395
3380 tmpdir = ''3396 tmpdir = ''
3381 if (mode, production) in self.calculator:3397 if (mode, production) in self.calculator:
@@ -3390,30 +3406,40 @@
3390 tmpdir = pjoin(self.path_me,'%s_me' % mode, 'SubProcesses',3406 tmpdir = pjoin(self.path_me,'%s_me' % mode, 'SubProcesses',
3391 production)3407 production)
3392 executable_prod="./check"3408 executable_prod="./check"
3393 external = Popen(executable_prod, stdout=PIPE, stdin=PIPE, 3409 my_env = os.environ.copy()
3394 stderr=STDOUT, cwd=tmpdir)3410 my_env["GFORTRAN_UNBUFFERED_ALL"] = "y"
3411 external = Popen(executable_prod, stdout=PIPE, stdin=PIPE,
3412 stderr=STDOUT, cwd=tmpdir,
3413 env=my_env,
3414 bufsize=0)
3415 assert (mode, production) not in self.calculator
3395 self.calculator[(mode, production)] = external 3416 self.calculator[(mode, production)] = external
3396 self.calculator_nbcall[(mode, production)] = 1 3417 self.calculator_nbcall[(mode, production)] = 1
33973418
3398 external.stdin.write(stdin_text)3419
3420 external.stdin.write(stdin_text.encode())
3399 if mode == 'prod':3421 if mode == 'prod':
3400 info = int(external.stdout.readline())3422 info = int(external.stdout.readline().decode())
3401 nb_output = abs(info)+13423 nb_output = abs(info)+1
3402 else:3424 else:
3403 info = 13425 info = 1
3404 nb_output = 13426 nb_output = 1
3405 3427 std = []
3406 prod_values = ' '.join([external.stdout.readline() for i in range(nb_output)])3428 for i in range(nb_output):
3429 external.stdout.flush()
3430 line = external.stdout.readline().decode()
3431 std.append(line)
3432 prod_values = ' '.join(std)
3433 #prod_values = ' '.join([external.stdout.readline().decode() for i in range(nb_output)])
3407 if info < 0:3434 if info < 0:
3408 print 'ZERO DETECTED'3435 print('ZERO DETECTED')
3409 print prod_values3436 print(prod_values)
3410 print stdin_text3437 print(stdin_text)
3411 os.system('lsof -p %s' % external.pid)3438 os.system('lsof -p %s' % external.pid)
3412 return ' '.join(prod_values.split()[-1*(nb_output-1):])3439 return ' '.join(prod_values.split()[-1*(nb_output-1):])
3413
3414 if len(self.calculator) > self.options['max_running_process']:3440 if len(self.calculator) > self.options['max_running_process']:
3415 logger.debug('more than 100 calculator. Perform cleaning')3441 logger.debug('more than 100 calculator. Perform cleaning')
3416 nb_calls = self.calculator_nbcall.values()3442 nb_calls = list(self.calculator_nbcall.values())
3417 nb_calls.sort()3443 nb_calls.sort()
3418 cut = max([nb_calls[len(nb_calls)//2], 0.001 * nb_calls[-1]])3444 cut = max([nb_calls[len(nb_calls)//2], 0.001 * nb_calls[-1]])
3419 for key, external in list(self.calculator.items()):3445 for key, external in list(self.calculator.items()):
@@ -3426,7 +3452,6 @@
3426 del self.calculator_nbcall[key]3452 del self.calculator_nbcall[key]
3427 else:3453 else:
3428 self.calculator_nbcall[key] = self.calculator_nbcall[key] //103454 self.calculator_nbcall[key] = self.calculator_nbcall[key] //10
3429
3430 if mode == 'prod':3455 if mode == 'prod':
3431 return prod_values3456 return prod_values
3432 else:3457 else:
@@ -3457,7 +3482,7 @@
3457 #print part3482 #print part
3458 decay_struct[part]['mg_tree']=[]3483 decay_struct[part]['mg_tree']=[]
34593484
3460 nb_res=len(decay_struct[part]["tree"].keys())3485 nb_res=len(list(decay_struct[part]["tree"].keys()))
3461 for res in range(-1,-nb_res-1,-1):3486 for res in range(-1,-nb_res-1,-1):
3462 label=abs(decay_struct[part]["tree"][res]['label'])3487 label=abs(decay_struct[part]["tree"][res]['label'])
3463 mass=self.pid2massvar[label]3488 mass=self.pid2massvar[label]
@@ -3533,7 +3558,7 @@
3533 else:3558 else:
3534 # now we need to write the decay products in the event3559 # now we need to write the decay products in the event
3535 # follow the decay chain order, so that we can easily keep track of the mother index 3560 # follow the decay chain order, so that we can easily keep track of the mother index
3536 for res in range(-1,-len(decay_struct[part]["tree"].keys())-1,-1):3561 for res in range(-1,-len(list(decay_struct[part]["tree"].keys()))-1,-1):
3537 index_d1=decay_struct[part]['mg_tree'][-res-1][1]3562 index_d1=decay_struct[part]['mg_tree'][-res-1][1]
3538 index_d2=decay_struct[part]['mg_tree'][-res-1][2]3563 index_d2=decay_struct[part]['mg_tree'][-res-1][2]
3539 3564
@@ -3596,7 +3621,7 @@
3596 # follow the decay chain order, so that we can easily keep track of the mother index3621 # follow the decay chain order, so that we can easily keep track of the mother index
3597 3622
3598 map_to_part_number={}3623 map_to_part_number={}
3599 for res in range(-1,-len(decay_struct[part]["tree"].keys())-1,-1):3624 for res in range(-1,-len(list(decay_struct[part]["tree"].keys()))-1,-1):
3600 index_res_for_mom=decay_struct[part]['mg_tree'][-res-1][0]3625 index_res_for_mom=decay_struct[part]['mg_tree'][-res-1][0]
3601 if (res==-1):3626 if (res==-1):
3602 part_number+=13627 part_number+=1
@@ -3736,8 +3761,8 @@
3736 d2colup2=colup23761 d2colup2=colup2
3737 d2colup1=maxcol 3762 d2colup1=maxcol
3738 else:3763 else:
3739 raise Exception, 'color combination not treated by MadSpin (yet). (%s,%s,%s)' \3764 raise Exception('color combination not treated by MadSpin (yet). (%s,%s,%s)' \
3740 % (colord1,colord2,colormother)3765 % (colord1,colord2,colormother))
3741 part_number+=13766 part_number+=1
3742 index_d1_for_mom=decay_struct[part]['mg_tree'][-res-1][1]3767 index_d1_for_mom=decay_struct[part]['mg_tree'][-res-1][1]
3743 mom=momenta_in_decay[index_d1_for_mom].copy()3768 mom=momenta_in_decay[index_d1_for_mom].copy()
@@ -3819,14 +3844,14 @@
3819 mothup1=curr_event.resonance[part]["mothup1"] 3844 mothup1=curr_event.resonance[part]["mothup1"]
3820 mothup2=curr_event.resonance[part]["mothup2"] 3845 mothup2=curr_event.resonance[part]["mothup2"]
3821 if mothup1==index:3846 if mothup1==index:
3822 if mothup2!=index: print "Warning: mothup1!=mothup2"3847 if mothup2!=index: print("Warning: mothup1!=mothup2")
3823 curr_event.resonance[part]["mothup1"]=part_number3848 curr_event.resonance[part]["mothup1"]=part_number
3824 curr_event.resonance[part]["mothup2"]=part_number3849 curr_event.resonance[part]["mothup2"]=part_number
3825 for part in curr_event.particle.keys():3850 for part in curr_event.particle.keys():
3826 mothup1=curr_event.particle[part]["mothup1"] 3851 mothup1=curr_event.particle[part]["mothup1"]
3827 mothup2=curr_event.particle[part]["mothup2"] 3852 mothup2=curr_event.particle[part]["mothup2"]
3828 if mothup1==index:3853 if mothup1==index:
3829 if mothup2!=index: print "Warning: mothup1!=mothup2"3854 if mothup2!=index: print("Warning: mothup1!=mothup2")
3830 curr_event.particle[part]["mothup1"]=part_number3855 curr_event.particle[part]["mothup1"]=part_number
3831 curr_event.particle[part]["mothup2"]=part_number3856 curr_event.particle[part]["mothup2"]=part_number
38323857
@@ -3844,7 +3869,7 @@
3844 max_br = max([m['total_br'] for m in self.all_ME.values()])3869 max_br = max([m['total_br'] for m in self.all_ME.values()])
3845 if max_br >= 1:3870 if max_br >= 1:
3846 if max_br > 1.0001:3871 if max_br > 1.0001:
3847 raise MadSpinError, 'BR is larger than one.'3872 raise MadSpinError('BR is larger than one.')
3848 max_br = 13873 max_br = 1
3849 for production in self.all_ME.values():3874 for production in self.all_ME.values():
3850 if production['total_br'] < max_br:3875 if production['total_br'] < max_br:
@@ -3966,30 +3991,45 @@
3966 for (mode, path) in self.calculator:3991 for (mode, path) in self.calculator:
3967 if mode=='decay':3992 if mode=='decay':
3968 external = self.calculator[(mode, path)]3993 external = self.calculator[(mode, path)]
3994 try:
3995 external.stdin.close()
3996 except Exception as error:
3997 misc.sprint(error)
3998 continue
3999 try:
4000 external.stdout.close()
4001 except Exception as error:
4002 misc.sprint(error)
4003 continue
3969 external.terminate()4004 external.terminate()
3970 del external4005 del external
3971 elif mode=='full':4006 elif mode=='full':
3972 stdin_text="5 0 0 0 0\n" # before closing, write down the seed 4007 stdin_text="5 0 0 0 0\n".encode() # before closing, write down the seed
3973 external = self.calculator[('full',path)]4008 external = self.calculator[('full',path)]
3974 try:4009 try:
3975 external.stdin.write(stdin_text)4010 external.stdin.write(stdin_text)
3976 except Exception:4011 external.stdin.flush()
4012 except Exception as error:
4013 misc.sprint(error)
4014 raise
3977 continue4015 continue
3978 ranmar_state=external.stdout.readline()4016 ranmar_state=external.stdout.readline().decode()
3979 ranmar_file=pjoin(path,'ranmar_state.dat')4017 ranmar_file=pjoin(path,'ranmar_state.dat')
3980 ranmar=open(ranmar_file, 'w')4018 ranmar=open(ranmar_file, 'w')
3981 ranmar.write(ranmar_state)4019 ranmar.write(ranmar_state)
3982 ranmar.close()4020 ranmar.close()
3983 try:4021 try:
3984 external.stdin.close()4022 external.stdin.close()
3985 except Exception:4023 except Exception as error:
3986 continue4024 misc.sprint(error)
3987 try:4025 try:
3988 external.stdout.close()4026 external.stdout.close()
3989 except Exception:4027 except Exception as error:
3990 continue4028 misc.sprint(error)
3991 external.terminate()4029 external.terminate()
3992 del external4030 del external
4031 else:
4032 misc.sprint('not closed', mode, type(mode))
3993 else:4033 else:
3994 try:4034 try:
3995 external = self.calculator[('full', path_to_decay)]4035 external = self.calculator[('full', path_to_decay)]
@@ -4002,7 +4042,7 @@
4002 external.stdout.close()4042 external.stdout.close()
4003 external.terminate() 4043 external.terminate()
4004 del external4044 del external
40054045
4006 self.calculator = {}4046 self.calculator = {}
40074047
40084048
@@ -4058,7 +4098,7 @@
4058 if name == 'all':4098 if name == 'all':
4059 continue4099 continue
4060 #self.banner.get('proc_card').get('multiparticles'):4100 #self.banner.get('proc_card').get('multiparticles'):
4061 mgcmd.do_define("%s = %s" % (name, ' '.join(`i` for i in pdgs)))4101 mgcmd.do_define("%s = %s" % (name, ' '.join(repr(i) for i in pdgs)))
4062 4102
4063 4103
4064 mgcmd.exec_cmd("set group_subprocesses False")4104 mgcmd.exec_cmd("set group_subprocesses False")
@@ -4087,7 +4127,7 @@
4087 # 4. compute the full matrix element -----------------------------------4127 # 4. compute the full matrix element -----------------------------------
4088 logger.info('generating the full matrix element squared (with decay)')4128 logger.info('generating the full matrix element squared (with decay)')
4089# start = time.time()4129# start = time.time()
4090 to_decay = self.mscmd.list_branches.keys()4130 to_decay = list(self.mscmd.list_branches.keys())
4091 decay_text = []4131 decay_text = []
4092 for decays in self.mscmd.list_branches.values():4132 for decays in self.mscmd.list_branches.values():
4093 for decay in decays:4133 for decay in decays:
@@ -4172,6 +4212,8 @@
41724212
4173 def compile(self):4213 def compile(self):
4174 logger.info('Compiling code')4214 logger.info('Compiling code')
4215 #my_env = os.environ.copy()
4216 #os.environ["GFORTRAN_UNBUFFERED_ALL"] = "y"
4175 misc.compile(cwd=pjoin(self.path_me,'madspin_me', 'Source'),4217 misc.compile(cwd=pjoin(self.path_me,'madspin_me', 'Source'),
4176 nb_core=self.mgcmd.options['nb_core']) 4218 nb_core=self.mgcmd.options['nb_core'])
4177 misc.compile(['all'],cwd=pjoin(self.path_me,'madspin_me', 'SubProcesses'),4219 misc.compile(['all'],cwd=pjoin(self.path_me,'madspin_me', 'SubProcesses'),
41784220
=== modified file 'MadSpin/interface_madspin.py'
--- MadSpin/interface_madspin.py 2020-06-16 19:24:01 +0000
+++ MadSpin/interface_madspin.py 2021-01-08 10:23:50 +0000
@@ -14,6 +14,8 @@
14################################################################################14################################################################################
15""" Command interface for MadSpin """15""" Command interface for MadSpin """
16from __future__ import division16from __future__ import division
17from __future__ import absolute_import
18from __future__ import print_function
17import collections19import collections
18import logging20import logging
19import math21import math
@@ -24,6 +26,8 @@
24import sys26import sys
25import time27import time
26import glob28import glob
29import six
30from six.moves import range
2731
2832
29pjoin = os.path.join33pjoin = os.path.join
@@ -150,6 +154,7 @@
150 self.mg5cmd = master_interface.MasterCmd()154 self.mg5cmd = master_interface.MasterCmd()
151 self.seed = None155 self.seed = None
152 self.err_branching_ratio = 0156 self.err_branching_ratio = 0
157 self.me_run_name = "" # Events diretory name where to stotre the events (used by madevent) not use internally
153 158
154 159
155 if event_path:160 if event_path:
@@ -254,7 +259,7 @@
254 process = self.banner.get_detail('proc_card', 'generate')259 process = self.banner.get_detail('proc_card', 'generate')
255 if not process:260 if not process:
256 msg = 'Invalid proc_card information in the file (no generate line):\n %s' % self.banner['mg5proccard']261 msg = 'Invalid proc_card information in the file (no generate line):\n %s' % self.banner['mg5proccard']
257 raise Exception, msg262 raise Exception(msg)
258 process, option = mg_interface.MadGraphCmd.split_process_line(process)263 process, option = mg_interface.MadGraphCmd.split_process_line(process)
259 self.proc_option = option264 self.proc_option = option
260 265
@@ -414,7 +419,7 @@
414 logger.warning("polarization option used with spinmode=onshell. This combination is not validated and is by construction using sub-optimal method which can likely lead to bias in some situation. Use at your own risk.")419 logger.warning("polarization option used with spinmode=onshell. This combination is not validated and is by construction using sub-optimal method which can likely lead to bias in some situation. Use at your own risk.")
415420
416 decay_process, init_part = self.decay.reorder_branch(decaybranch)421 decay_process, init_part = self.decay.reorder_branch(decaybranch)
417 if not self.list_branches.has_key(init_part):422 if init_part not in self.list_branches:
418 self.list_branches[init_part] = []423 self.list_branches[init_part] = []
419 self.list_branches[init_part].append(decay_process)424 self.list_branches[init_part].append(decay_process)
420 del decay_process, init_part 425 del decay_process, init_part
@@ -491,7 +496,7 @@
491496
492 # Format497 # Format
493 if len(args) == 1:498 if len(args) == 1:
494 opts = self.options.keys() + ['seed', "spinmode"]499 opts = list(self.options.keys()) + ['seed', "spinmode"]
495 return self.list_completion(text, opts) 500 return self.list_completion(text, opts)
496 elif len(args) == 2:501 elif len(args) == 2:
497 if args[1] == 'BW_effect':502 if args[1] == 'BW_effect':
@@ -508,20 +513,20 @@
508 def help_set(self):513 def help_set(self):
509 """help the set command"""514 """help the set command"""
510 515
511 print 'syntax: set OPTION VALUE'516 print('syntax: set OPTION VALUE')
512 print ''517 print('')
513 print '-- assign to a given option a given value'518 print('-- assign to a given option a given value')
514 print ' - set max_weight VALUE: pre-define the maximum_weight for the reweighting'519 print(' - set max_weight VALUE: pre-define the maximum_weight for the reweighting')
515 print ' - set BW_effect True|False: [default:True] reshuffle the momenta to describe'520 print(' - set BW_effect True|False: [default:True] reshuffle the momenta to describe')
516 print ' corrrectly the Breit-Wigner of the decayed particle'521 print(' corrrectly the Breit-Wigner of the decayed particle')
517 print ' - set seed VALUE: fix the value of the seed to a given value.'522 print(' - set seed VALUE: fix the value of the seed to a given value.')
518 print ' by default use the current time to set the seed. random number are'523 print(' by default use the current time to set the seed. random number are')
519 print ' generated by the python module random using the Mersenne Twister generator.'524 print(' generated by the python module random using the Mersenne Twister generator.')
520 print ' It has a period of 2**19937-1.'525 print(' It has a period of 2**19937-1.')
521 print ' - set max_running_process VALUE: allow to limit the number of open file used by the code'526 print(' - set max_running_process VALUE: allow to limit the number of open file used by the code')
522 print ' The number of running is raising like 2*VALUE'527 print(' The number of running is raising like 2*VALUE')
523 print ' - set spinmode=none: mode with simple file merging. No spin correlation attempt.'528 print(' - set spinmode=none: mode with simple file merging. No spin correlation attempt.')
524 print ' This mode allows 3 (and more) body decay.'529 print(' This mode allows 3 (and more) body decay.')
525 530
526 def do_define(self, line):531 def do_define(self, line):
527 """ """532 """ """
@@ -547,14 +552,14 @@
547 """ """552 """ """
548 try:553 try:
549 return self.mg5cmd.complete_define(*args)554 return self.mg5cmd.complete_define(*args)
550 except Exception,error:555 except Exception as error:
551 misc.sprint(error)556 misc.sprint(error)
552 557
553 def complete_decay(self, *args):558 def complete_decay(self, *args):
554 """ """559 """ """
555 try:560 try:
556 return self.mg5cmd.complete_generate(*args)561 return self.mg5cmd.complete_generate(*args)
557 except Exception,error:562 except Exception as error:
558 misc.sprint(error)563 misc.sprint(error)
559 564
560 def check_launch(self, args):565 def check_launch(self, args):
@@ -568,29 +573,53 @@
568 # Validity check. Need lhe version 3 if matching is on573 # Validity check. Need lhe version 3 if matching is on
569 if self.banner.get("run_card", "lhe_version") < 3 and \574 if self.banner.get("run_card", "lhe_version") < 3 and \
570 self.banner.get("run_card", "ickkw") > 0:575 self.banner.get("run_card", "ickkw") > 0:
571 raise Exception, "MadSpin requires LHEF version 3 when running with matching/merging"576 raise Exception("MadSpin requires LHEF version 3 when running with matching/merging")
572577
573 def help_launch(self):578 def help_launch(self):
574 """help for the launch command"""579 """help for the launch command"""
575 580
576 print '''Running Madspin on the loaded events, following the decays enter581 print('''Running Madspin on the loaded events, following the decays enter
577 An example of a full run is the following:582 An example of a full run is the following:
578 import ../mssm_events.lhe.gz583 import ../mssm_events.lhe.gz
579 define sq = ur ur~584 define sq = ur ur~
580 decay go > sq j585 decay go > sq j
581 launch586 launch
582 '''587 ''')
588
589 self.parser_launch.print_help()
590
591 def parser_launch(self):
592 usage = """launch [-n RUN_NAME]
593 """
594 parser = misc.OptionParser(usage=usage)
595 parser.add_option("-n", "--name",
596 default="",
597 help="When NOT run in standalone instruct MG5aMC where to store the events file")
598 return parser
599
600 def parse_launch(self, line):
601
602 args = self.split_arg(line)
603 return self.parser_launch().parse_args(args)
604
583605
584 @misc.mute_logger()606 @misc.mute_logger()
585 def do_launch(self, line):607 def do_launch(self, line):
586 """end of the configuration launched the code"""608 """end of the configuration launched the code"""
587 609
610 (options, args) = self.parse_launch(line)
611
612 if options.name:
613 self.me_run_name = options.name # Only use by MG5aMC
614 else:
615 self.me_run_name = ''
616
588 if self.options["spinmode"] in ["none"]:617 if self.options["spinmode"] in ["none"]:
589 return self.run_bridge(line)618 return self.run_bridge(line)
590 elif self.options["spinmode"] == "onshell":619 elif self.options["spinmode"] == "onshell":
591 return self.run_onshell(line)620 return self.run_onshell(line)
592 elif self.options["spinmode"] == "bridge":621 elif self.options["spinmode"] == "bridge":
593 raise Exception, "Bridge mode not available."622 raise Exception("Bridge mode not available.")
594 623
595 if self.options['ms_dir'] and os.path.exists(pjoin(self.options['ms_dir'], 'madspin.pkl')):624 if self.options['ms_dir'] and os.path.exists(pjoin(self.options['ms_dir'], 'madspin.pkl')):
596 return self.run_from_pickle()625 return self.run_from_pickle()
@@ -622,7 +651,7 @@
622651
623 if self.options['seed'] > 30081*30081: # can't use too big random number652 if self.options['seed'] > 30081*30081: # can't use too big random number
624 msg = 'Random seed too large ' + str(self.options['seed']) + ' > 30081*30081'653 msg = 'Random seed too large ' + str(self.options['seed']) + ' > 30081*30081'
625 raise Exception, msg654 raise Exception(msg)
626655
627 #self.options['seed'] = self.seed656 #self.options['seed'] = self.seed
628 text = '%s\n' % '\n'.join([ line for line in self.history if line])657 text = '%s\n' % '\n'.join([ line for line in self.history if line])
@@ -716,13 +745,13 @@
716 745
717 orig_block = generate_all.banner.param_card[name]746 orig_block = generate_all.banner.param_card[name]
718 if block != orig_block: 747 if block != orig_block:
719 raise Exception, """The directory %s is specific to a mass spectrum. 748 raise Exception("""The directory %s is specific to a mass spectrum.
720 Your event file is not compatible with this one. (Different param_card: %s different)749 Your event file is not compatible with this one. (Different param_card: %s different)
721 orig block:750 orig block:
722 %s751 %s
723 new block:752 new block:
724 %s""" \753 %s""" \
725 % (self.options['ms_dir'], name, orig_block, block)754 % (self.options['ms_dir'], name, orig_block, block))
726755
727 #replace init information756 #replace init information
728 generate_all.banner['init'] = self.banner['init']757 generate_all.banner['init'] = self.banner['init']
@@ -808,7 +837,7 @@
808 elif '.hepmc' in filename:837 elif '.hepmc' in filename:
809 self.options['input_format'] = 'hepmc'838 self.options['input_format'] = 'hepmc'
810 else:839 else:
811 raise Exception, "fail to recognized input format automatically"840 raise Exception("fail to recognized input format automatically")
812 841
813 if self.options['input_format'] in ['lhe', 'lhe_no_banner']:842 if self.options['input_format'] in ['lhe', 'lhe_no_banner']:
814 orig_lhe = lhe_parser.EventFile(filename)843 orig_lhe = lhe_parser.EventFile(filename)
@@ -849,7 +878,7 @@
849878
850 if self.options['seed'] > 30081*30081: # can't use too big random number879 if self.options['seed'] > 30081*30081: # can't use too big random number
851 msg = 'Random seed too large ' + str(self.options['seed']) + ' > 30081*30081'880 msg = 'Random seed too large ' + str(self.options['seed']) + ' > 30081*30081'
852 raise Exception, msg881 raise Exception(msg)
853882
854 #self.options['seed'] = self.options['seed']883 #self.options['seed'] = self.options['seed']
855 884
@@ -989,7 +1018,7 @@
9891018
990 for event in orig_lhe:1019 for event in orig_lhe:
991 if counter and counter % 100 == 0 and float(str(counter)[1:]) ==0:1020 if counter and counter % 100 == 0 and float(str(counter)[1:]) ==0:
992 print "decaying event number %s [%s s]" % (counter, time.time()-start)1021 print("decaying event number %s [%s s]" % (counter, time.time()-start))
993 counter +=11022 counter +=1
994 1023
995 # use random order for particles to avoid systematics when more than 1024 # use random order for particles to avoid systematics when more than
@@ -1058,7 +1087,7 @@
1058 # read the event file up to completion1087 # read the event file up to completion
1059 while 1:1088 while 1:
1060 try:1089 try:
1061 decay = decay_file.next()1090 decay = next(decay_file)
1062 except StopIteration:1091 except StopIteration:
1063 # check how far we are1092 # check how far we are
1064 ratio = counter / nb_event 1093 ratio = counter / nb_event
@@ -1069,6 +1098,7 @@
1069 evt_decayfile[particle.pdg].update(new_file)1098 evt_decayfile[particle.pdg].update(new_file)
1070 decay_file = evt_decayfile[particle.pdg][decay_file_nb]1099 decay_file = evt_decayfile[particle.pdg][decay_file_nb]
1071 continue1100 continue
1101
1072 if helicity == decay[0].helicity or helicity==9 or \1102 if helicity == decay[0].helicity or helicity==9 or \
1073 self.options["spinmode"] == "none":1103 self.options["spinmode"] == "none":
1074 break # use that event1104 break # use that event
@@ -1198,7 +1228,7 @@
1198 try:1228 try:
1199 os.remove(pjoin(decay_dir, 'Cards', 'madanalysis5_parton_card_default.dat'))1229 os.remove(pjoin(decay_dir, 'Cards', 'madanalysis5_parton_card_default.dat'))
1200 os.remove(pjoin(decay_dir, 'Cards', 'madanalysis5_parton_card.dat'))1230 os.remove(pjoin(decay_dir, 'Cards', 'madanalysis5_parton_card.dat'))
1201 except Exception,error:1231 except Exception as error:
1202 logger.debug(error)1232 logger.debug(error)
1203 pass 1233 pass
1204 self.me_int[decay_dir] = me5_cmd1234 self.me_int[decay_dir] = me5_cmd
@@ -1245,7 +1275,7 @@
1245 try:1275 try:
1246 os.remove(pjoin(decay_dir, 'Cards', 'madanalysis5_parton_card_default.dat'))1276 os.remove(pjoin(decay_dir, 'Cards', 'madanalysis5_parton_card_default.dat'))
1247 os.remove(pjoin(decay_dir, 'Cards', 'madanalysis5_parton_card.dat'))1277 os.remove(pjoin(decay_dir, 'Cards', 'madanalysis5_parton_card.dat'))
1248 except Exception,error:1278 except Exception as error:
1249 logger.debug(error)1279 logger.debug(error)
1250 pass 1280 pass
1251 self.me_int[decay_dir] = me5_cmd1281 self.me_int[decay_dir] = me5_cmd
@@ -1282,6 +1312,16 @@
1282 me5_cmd.exec_cmd("exit")1312 me5_cmd.exec_cmd("exit")
1283 out[i] = lhe_parser.EventFile(pjoin(decay_dir, "Events", 'run_01', 'unweighted_events.lhe.gz')) 1313 out[i] = lhe_parser.EventFile(pjoin(decay_dir, "Events", 'run_01', 'unweighted_events.lhe.gz'))
1284 else:1314 else:
1315 if not self.seed:
1316 if hasattr(self, 'mother'):
1317 try:
1318 self.seed = 100 + self.mother.run_card['iseed']
1319 except:
1320 self.seed = random.randint(0, int(30081*30081))
1321 self.seed += 1
1322 if self.seed > 30081*30081:
1323 self.seed -= 30081*30081
1324 logger.info('Will use seed %s' % (self.seed))
1285 misc.call(['run.sh', str(int(1.2*nb_event)), str(self.seed)], cwd=decay_dir) 1325 misc.call(['run.sh', str(int(1.2*nb_event)), str(self.seed)], cwd=decay_dir)
1286 out[i] = lhe_parser.EventFile(pjoin(decay_dir, 'events.lhe.gz')) 1326 out[i] = lhe_parser.EventFile(pjoin(decay_dir, 'events.lhe.gz'))
1287 if cumul:1327 if cumul:
@@ -1360,7 +1400,7 @@
13601400
1361 if self.seed > 30081*30081: # can't use too big random number1401 if self.seed > 30081*30081: # can't use too big random number
1362 msg = 'Random seed too large ' + str(self.seed) + ' > 30081*30081'1402 msg = 'Random seed too large ' + str(self.seed) + ' > 30081*30081'
1363 raise Exception, msg1403 raise Exception(msg)
13641404
1365 self.options['seed'] = self.seed1405 self.options['seed'] = self.seed
1366 1406
@@ -1538,7 +1578,7 @@
1538 # file if needed.1578 # file if needed.
1539 while 1:1579 while 1:
1540 try:1580 try:
1541 decay = decay_file.next()1581 decay = next(decay_file)
1542 break1582 break
1543 except StopIteration:1583 except StopIteration:
1544 eff = self.efficiency1584 eff = self.efficiency
@@ -1580,7 +1620,7 @@
1580 logger.info( "Event %s/%s : %2fs" % (i, nevents, time.time()-start))1620 logger.info( "Event %s/%s : %2fs" % (i, nevents, time.time()-start))
1581 maxwgt = 01621 maxwgt = 0
1582 orig_lhe.seek(0)1622 orig_lhe.seek(0)
1583 base_event = orig_lhe.next()1623 base_event = next(orig_lhe)
1584 if self.options['fixed_order']:1624 if self.options['fixed_order']:
1585 base_event = base_event[0]1625 base_event = base_event[0]
1586 for j in range(self.options['max_weight_ps_point']):1626 for j in range(self.options['max_weight_ps_point']):
@@ -1674,8 +1714,12 @@
1674 sys.path.insert(0, pjoin(self.path_me, 'madspin_me', 'SubProcesses'))1714 sys.path.insert(0, pjoin(self.path_me, 'madspin_me', 'SubProcesses'))
1675 1715
1676 mymod = __import__("%s.matrix2py" % (pdir))1716 mymod = __import__("%s.matrix2py" % (pdir))
1717 if six.PY3:
1718 from importlib import reload
1719 else:
1720 from imp import reload
1677 reload(mymod)1721 reload(mymod)
1678 mymod = getattr(mymod, 'matrix2py')1722 mymod = getattr(mymod, 'matrix2py')
1679 with misc.chdir(pjoin(self.path_me, 'madspin_me', 'SubProcesses', pdir)):1723 with misc.chdir(pjoin(self.path_me, 'madspin_me', 'SubProcesses', pdir)):
1680 with misc.stdchannel_redirected(sys.stdout, os.devnull):1724 with misc.stdchannel_redirected(sys.stdout, os.devnull):
1681 if not os.path.exists(pjoin(self.path_me, 'Cards','param_card.dat')) and \1725 if not os.path.exists(pjoin(self.path_me, 'Cards','param_card.dat')) and \
@@ -1718,7 +1762,7 @@
1718 try:1762 try:
1719 proc_nb = int(proc_nb)1763 proc_nb = int(proc_nb)
1720 except ValueError:1764 except ValueError:
1721 raise MadSpinError, 'MadSpin didn\'t allow order restriction after the @ comment: \"%s\" not valid' % proc_nb1765 raise MadSpinError('MadSpin didn\'t allow order restriction after the @ comment: \"%s\" not valid' % proc_nb)
1722 proc_nb = '@ %i' % proc_nb 1766 proc_nb = '@ %i' % proc_nb
1723 if self.options['global_order_coupling']:1767 if self.options['global_order_coupling']:
1724 proc_nb = '%s %s' % (proc_nb, self.options['global_order_coupling'])1768 proc_nb = '%s %s' % (proc_nb, self.options['global_order_coupling'])
17251769
=== modified file 'Template/LO/Cards/pythia8_card_default.dat'
--- Template/LO/Cards/pythia8_card_default.dat 2017-02-06 18:35:42 +0000
+++ Template/LO/Cards/pythia8_card_default.dat 2021-01-08 10:23:50 +0000
@@ -12,6 +12,8 @@
12! -------------------------------------------------------------------12! -------------------------------------------------------------------
13! Specify the HEPMC output of the Pythia8 shower. You can set it to:13! Specify the HEPMC output of the Pythia8 shower. You can set it to:
14! auto : MG5aMC will automatically place it the run_<i> directory14! auto : MG5aMC will automatically place it the run_<i> directory
15! autoremove: MG5aMC will automatically remove the file at the end of the run.
16! (usefull when running with Delphes)
15! /dev/null : to turn off the HEPMC output.17! /dev/null : to turn off the HEPMC output.
16! <path> : to select where the HEPMC file must written. It will 18! <path> : to select where the HEPMC file must written. It will
17! therefore not be placed in the run_<i> directory. The19! therefore not be placed in the run_<i> directory. The
1820
=== modified file 'Template/LO/Cards/run_card.dat'
--- Template/LO/Cards/run_card.dat 2020-05-27 07:52:34 +0000
+++ Template/LO/Cards/run_card.dat 2021-01-08 10:23:50 +0000
@@ -28,7 +28,7 @@
28#*********************************************************************28#*********************************************************************
29# Collider type and energy *29# Collider type and energy *
30# lpp: 0=No PDF, 1=proton, -1=antiproton, 2=photon from proton, *30# lpp: 0=No PDF, 1=proton, -1=antiproton, 2=photon from proton, *
31# 3=photon from electron *31# 3=photon from electron, 4=photon from muon *
32#*********************************************************************32#*********************************************************************
33 %(lpp1)s = lpp1 ! beam 1 type 33 %(lpp1)s = lpp1 ! beam 1 type
34 %(lpp2)s = lpp2 ! beam 2 type34 %(lpp2)s = lpp2 ! beam 2 type
3535
=== modified file 'Template/LO/Source/PDF/PhotonFlux.f'
--- Template/LO/Source/PDF/PhotonFlux.f 2020-03-27 13:59:33 +0000
+++ Template/LO/Source/PDF/PhotonFlux.f 2021-01-08 10:23:50 +0000
@@ -6,25 +6,28 @@
6c/* ********************************************************* */6c/* ********************************************************* */
7c provided by Tomasz Pierzchala - UCL7c provided by Tomasz Pierzchala - UCL
88
9 real*8 function epa_electron(x,q2max)9 real*8 function epa_lepton(x,q2max, mode)
10 integer i10 implicit none
11 integer i, mode, imode
12c mode is +3/-3 for electron and +4/-4 for muon
11 real*8 x,phi_f13 real*8 x,phi_f
12 real*8 xin14 real*8 xin(3:4)
13 real*8 alpha15 real*8 alpha
14 real*8 f, q2min,q2max16 real*8 f, q2min,q2max
15 real*8 PI17 real*8 PI
16 data PI/3.14159265358979323846/18 data PI/3.14159265358979323846/
1719
18 data xin/0.511d-3/ !electron mass in GeV20 data xin/0.511d-3, 0.105658d0/ !electron mass in GeV
1921
20 alpha = .007299270122 alpha = .0072992701
2123 imode = abs(mode)
24
22C // x = omega/E = (E-E')/E25C // x = omega/E = (E-E')/E
23 if (x.lt.1) then26 if (x.lt.1) then
24 q2min= xin*xin*x*x/(1-x)27 q2min= xin(imode)*xin(imode)*x*x/(1-x)
25 if(q2min.lt.q2max) then 28 if(q2min.lt.q2max) then
26 f = alpha/2d0/PI*29 f = alpha/2d0/PI*
27 & (2d0*xin*xin*x*(-1/q2min+1/q2max)+30 & (2d0*xin(imode)*xin(imode)*x*(-1/q2min+1/q2max)+
28 & (2-2d0*x+x*x)/x*dlog(q2max/q2min))31 & (2-2d0*x+x*x)/x*dlog(q2max/q2min))
29 32
30 else33 else
@@ -35,7 +38,7 @@
35 endif38 endif
36c write (*,*) x,dsqrt(q2min),dsqrt(q2max),f39c write (*,*) x,dsqrt(q2min),dsqrt(q2max),f
37 if (f .lt. 0) f = 040 if (f .lt. 0) f = 0
38 epa_electron= f41 epa_lepton = f
3942
40 end43 end
4144
4245
=== modified file 'Template/LO/Source/PDF/pdf.f'
--- Template/LO/Source/PDF/pdf.f 2018-02-01 23:17:18 +0000
+++ Template/LO/Source/PDF/pdf.f 2021-01-08 10:23:50 +0000
@@ -29,7 +29,7 @@
29 double precision u_val,d_val,u_sea,d_sea,s_sea,c_sea,b_sea,gluon29 double precision u_val,d_val,u_sea,d_sea,s_sea,c_sea,b_sea,gluon
30 double precision Ctq3df,Ctq4Fn,Ctq5Pdf,Ctq6Pdf,Ctq5L30 double precision Ctq3df,Ctq4Fn,Ctq5Pdf,Ctq6Pdf,Ctq5L
31 double precision q2max31 double precision q2max
32 double precision epa_electron,epa_proton32 double precision epa_lepton,epa_proton
33 include 'pdf.inc'33 include 'pdf.inc'
3434
35 integer mode,Iprtn,Irt35 integer mode,Iprtn,Irt
@@ -297,8 +297,8 @@
297c a "diffractive" photon297c a "diffractive" photon
298c 298c
299 q2max=xmu*xmu299 q2max=xmu*xmu
300 if(ih .eq. 3) then !from the electron300 if(abs(ih) .eq. 3.or.abs(ih) .eq. 4) then !from the electron
301 fx(7)=epa_electron(x,q2max)301 fx(7)=epa_lepton(x,q2max, ih)
302 elseif(ih .eq. 2) then !from a proton without breaking302 elseif(ih .eq. 2) then !from a proton without breaking
303 fx(7)=epa_proton(x,q2max)303 fx(7)=epa_proton(x,q2max)
304 endif 304 endif
305305
=== modified file 'Template/LO/Source/PDF/pdg2pdf.f'
--- Template/LO/Source/PDF/pdg2pdf.f 2019-12-04 21:34:25 +0000
+++ Template/LO/Source/PDF/pdg2pdf.f 2021-01-08 10:23:50 +0000
@@ -24,7 +24,7 @@
24 integer mode,Irt,i,j24 integer mode,Irt,i,j
25 double precision xlast(2),xmulast(2),pdflast(-7:7,2),q2max25 double precision xlast(2),xmulast(2),pdflast(-7:7,2),q2max
26 character*7 pdlabellast(2)26 character*7 pdlabellast(2)
27 double precision epa_electron,epa_proton27 double precision epa_lepton,epa_proton
28 integer ipart,ireuse,iporg,ihlast(2)28 integer ipart,ireuse,iporg,ihlast(2)
29 save xlast,xmulast,pdflast,pdlabellast,ihlast29 save xlast,xmulast,pdflast,pdlabellast,ihlast
30 data xlast/2*-99d9/30 data xlast/2*-99d9/
@@ -131,8 +131,8 @@
131131
132 if(iabs(ipart).eq.7.and.ih.gt.1) then132 if(iabs(ipart).eq.7.and.ih.gt.1) then
133 q2max=xmu*xmu133 q2max=xmu*xmu
134 if(ih.eq.3) then !from the electron134 if(abs(ih).eq.3.or.abs(ih).eq.4) then !from the electron or muonn
135 pdg2pdf=epa_electron(x,q2max)135 pdg2pdf=epa_lepton(x,q2max, ih)
136 elseif(ih .eq. 2) then !from a proton without breaking136 elseif(ih .eq. 2) then !from a proton without breaking
137 pdg2pdf=epa_proton(x,q2max,beamid)137 pdg2pdf=epa_proton(x,q2max,beamid)
138 endif 138 endif
139139
=== removed file 'Template/LO/Source/PDF/pdg2pdf_lhapdf.f'
=== modified file 'Template/LO/Source/PDF/pdg2pdf_lhapdf6.f'
--- Template/LO/Source/PDF/pdg2pdf_lhapdf6.f 2020-03-06 20:47:59 +0000
+++ Template/LO/Source/PDF/pdg2pdf_lhapdf6.f 2021-01-08 10:23:50 +0000
@@ -24,7 +24,7 @@
24 integer i,j,ihlast(20),ipart,iporg,ireuse,imemlast(20),iset,imem24 integer i,j,ihlast(20),ipart,iporg,ireuse,imemlast(20),iset,imem
25 & ,i_replace,ii,ipartlast(20)25 & ,i_replace,ii,ipartlast(20)
26 double precision xlast(20),xmulast(20),pdflast(-7:7,20)26 double precision xlast(20),xmulast(20),pdflast(-7:7,20)
27 double precision epa_proton, epa_electron27 double precision epa_proton, epa_lepton
28 save ihlast,xlast,xmulast,pdflast,imemlast,ipartlast28 save ihlast,xlast,xmulast,pdflast,imemlast,ipartlast
29 data ihlast/20*-99/29 data ihlast/20*-99/
30 data ipartlast/20*-99/30 data ipartlast/20*-99/
@@ -139,8 +139,8 @@
139 pdg2pdf = get_ion_pdf(pdflast(-7, i_replace), ipart, nb_proton(beamid), nb_neutron(beamid))139 pdg2pdf = get_ion_pdf(pdflast(-7, i_replace), ipart, nb_proton(beamid), nb_neutron(beamid))
140 endif140 endif
141 pdg2pdf=pdg2pdf/x141 pdg2pdf=pdg2pdf/x
142 else if(ih.eq.3) then !from the electron142 else if(abs(ih).eq.3.or.abs(ih).eq.4) then !from the electron
143 pdg2pdf=epa_electron(x,xmu*xmu)143 pdg2pdf=epa_lepton(x,xmu*xmu, ih)
144 else if(ih.eq.2) then ! photon from a proton without breaking144 else if(ih.eq.2) then ! photon from a proton without breaking
145 pdg2pdf = epa_proton(x,xmu*xmu)145 pdg2pdf = epa_proton(x,xmu*xmu)
146 else146 else
147147
=== modified file 'Template/LO/Source/kin_functions.f'
--- Template/LO/Source/kin_functions.f 2016-02-10 14:56:17 +0000
+++ Template/LO/Source/kin_functions.f 2021-01-08 10:23:50 +0000
@@ -590,11 +590,13 @@
590C 4-Vector Dot product590C 4-Vector Dot product
591C****************************************************************************591C****************************************************************************
592 implicit none592 implicit none
593 double precision p1(0:3),p2(0:3)593 double precision p1(0:3),p2(0:3), dot2
594 dot=p1(0)*p2(0)-p1(1)*p2(1)-p1(2)*p2(2)-p1(3)*p2(3)594 dot=p1(0)*p2(0)-p1(1)*p2(1)-p1(2)*p2(2)-p1(3)*p2(3)
595595
596 if(dabs(dot).lt.1d-6)then ! solve numerical problem 596 if(dabs(dot).lt.1d-6)then ! solve numerical problem
597 dot=0d0597 dot2 = p1(0)*p2(0)+p1(1)*p2(1)+p1(2)*p2(2)+p1(3)*p2(3)
598 dot2 = max(1e-99,dot2)
599 if (dot/dot2.lt.1e-6) dot=0d0
598 endif600 endif
599601
600 end602 end
601603
=== modified file 'Template/LO/Source/setrun.f'
--- Template/LO/Source/setrun.f 2016-03-04 16:16:23 +0000
+++ Template/LO/Source/setrun.f 2021-01-08 10:23:50 +0000
@@ -83,6 +83,22 @@
83 q2fact(1) = sf1**2 ! fact scale**2 for pdf183 q2fact(1) = sf1**2 ! fact scale**2 for pdf1
84 q2fact(2) = sf2**2 ! fact scale**2 for pdf2 84 q2fact(2) = sf2**2 ! fact scale**2 for pdf2
8585
86 if(pb1.ne.0d0)then
87 if (abs(lpp(1)).eq.1.or.abs(lpp(1)).eq.2)then
88 write(*,*) 'proton/anti-proton beam polarization are not allowed'
89 stop 1
90 endif
91 pol(1)=sign(1+abs(pb1)/100d0,pb1)
92 endif
93 if(pb2.ne.0d0)then
94 if (abs(lpp(2)).eq.1.or.abs(lpp(2)).eq.2)then
95 write(*,*) 'proton/anti-proton beam polarization are not allowed'
96 stop 1
97 endif
98 pol(2)=sign(1+abs(pb2)/100d0,pb2)
99 endif
100
101
86 if(pb1.ne.0d0.and.lpp(1).eq.0) pol(1)=sign(1+abs(pb1)/100d0,pb1)102 if(pb1.ne.0d0.and.lpp(1).eq.0) pol(1)=sign(1+abs(pb1)/100d0,pb1)
87 if(pb2.ne.0d0.and.lpp(2).eq.0) pol(2)=sign(1+abs(pb2)/100d0,pb2)103 if(pb2.ne.0d0.and.lpp(2).eq.0) pol(2)=sign(1+abs(pb2)/100d0,pb2)
88104
89105
=== modified file 'Template/LO/SubProcesses/genps.f'
--- Template/LO/SubProcesses/genps.f 2020-06-15 07:16:51 +0000
+++ Template/LO/SubProcesses/genps.f 2021-01-08 10:23:50 +0000
@@ -572,6 +572,8 @@
572 if (abs(lpp(2)) .eq. 1 .or. abs(lpp(2)) .eq. 2) m2 = 0.938d0572 if (abs(lpp(2)) .eq. 1 .or. abs(lpp(2)) .eq. 2) m2 = 0.938d0
573 if (abs(lpp(1)) .eq. 3) m1 = 0.000511d0573 if (abs(lpp(1)) .eq. 3) m1 = 0.000511d0
574 if (abs(lpp(2)) .eq. 3) m2 = 0.000511d0574 if (abs(lpp(2)) .eq. 3) m2 = 0.000511d0
575 if (abs(lpp(1)) .eq. 4) m1 = 0.105658d0
576 if (abs(lpp(2)) .eq. 4) m2 = 0.105658d0
575 if (mass_ion(1).ge.0d0) m1 = mass_ion(1)577 if (mass_ion(1).ge.0d0) m1 = mass_ion(1)
576 if (mass_ion(2).ge.0d0) m2 = mass_ion(2)578 if (mass_ion(2).ge.0d0) m2 = mass_ion(2)
577 if(ebeam(1).lt.m1.and.lpp(1).ne.9) ebeam(1)=m1579 if(ebeam(1).lt.m1.and.lpp(1).ne.9) ebeam(1)=m1
@@ -1046,7 +1048,6 @@
1046 ptotm(i) = ptot(i)1048 ptotm(i) = ptot(i)
1047 endif1049 endif
1048 enddo1050 enddo
1049c ma2 = dot(pa,pa)
1050c1051c
1051c determine magnitude of p1 in cms frame (from dhelas routine mom2cx)1052c determine magnitude of p1 in cms frame (from dhelas routine mom2cx)
1052c1053c
10531054
=== modified file 'Template/LO/SubProcesses/reweight.f'
--- Template/LO/SubProcesses/reweight.f 2020-05-24 20:16:56 +0000
+++ Template/LO/SubProcesses/reweight.f 2021-01-08 10:23:50 +0000
@@ -1738,9 +1738,9 @@
1738 if (btest(mlevel,3))1738 if (btest(mlevel,3))
1739 $ write(*,*)' set fact scales for PS to ',1739 $ write(*,*)' set fact scales for PS to ',
1740 $ sqrt(q2fact(1)),sqrt(q2fact(2))1740 $ sqrt(q2fact(1)),sqrt(q2fact(2))
1741 else if (abs(lpp(1)).eq.2.or.abs(lpp(1)).eq.3) then1741 else if (abs(lpp(1)).ge.2.and.abs(lpp(1)).le.4) then
1742 q2fact(1)=q2bck(1)1742 q2fact(1)=q2bck(1)
1743 else if (abs(lpp(2)).eq.2.or.abs(lpp(2)).eq.3) then1743 else if (abs(lpp(2)).ge.2.or.abs(lpp(2)).le.4) then
1744 q2fact(2)=q2bck(2)1744 q2fact(2)=q2bck(2)
1745 endif1745 endif
17461746
17471747
=== modified file 'Template/LO/SubProcesses/unwgt.f'
--- Template/LO/SubProcesses/unwgt.f 2020-05-20 11:52:45 +0000
+++ Template/LO/SubProcesses/unwgt.f 2021-01-08 10:23:50 +0000
@@ -145,10 +145,19 @@
145C compute the boost for the requested transformation145C compute the boost for the requested transformation
146 implicit none146 implicit none
147 double precision pin(0:3), pout(0:3)147 double precision pin(0:3), pout(0:3)
148 double precision denom148 double precision denom, control
149149
150 denom = pin(0)*pout(0) - pin(3)*pout(3)150 denom = pin(0)*pout(0) - pin(3)*pout(3)
151 if (denom.ne.0d0) then151 if (denom.ne.0d0) then
152 control = pin(0)*pout(0) + pin(3)*pout(3)
153 if (denom/control.gt.1d-12)then
154 get_betaz = (pin(3) * pout(0) - pout(3) * pin(0)) / denom
155c pass in massless case
156 else if (abs(pin(0)+pin(3)).gt.abs(pin(0))) then
157 get_betaz = (pin(0)**2 - pout(0)**2)/(pin(0)**2 + pout(0)**2)
158 else
159 get_betaz = (pout(0)**2 - pin(0)**2)/(pin(0)**2 + pout(0)**2)
160 endif
152 get_betaz = (pin(3) * pout(0) - pout(3) * pin(0)) / denom161 get_betaz = (pin(3) * pout(0) - pout(3) * pin(0)) / denom
153 else if (pin(0).eq.pin(3)) then162 else if (pin(0).eq.pin(3)) then
154 get_betaz = (pin(0)**2 - pout(0)**2)/(pin(0)**2 + pout(0)**2)163 get_betaz = (pin(0)**2 - pout(0)**2)/(pin(0)**2 + pout(0)**2)
155164
=== modified file 'Template/LO/bin/generate_events'
--- Template/LO/bin/generate_events 2018-03-19 21:56:39 +0000
+++ Template/LO/bin/generate_events 2021-01-08 10:23:50 +0000
@@ -1,4 +1,4 @@
1#! /usr/bin/env python1#! /usr/bin/env python3
2################################################################################2################################################################################
3#3#
4# Copyright (c) 2011 The MadGraph5_aMC@NLO Development team and Contributors4# Copyright (c) 2011 The MadGraph5_aMC@NLO Development team and Contributors
@@ -27,10 +27,17 @@
27root_path = os.path.split(os.path.dirname(os.path.realpath( __file__ )))[0]27root_path = os.path.split(os.path.dirname(os.path.realpath( __file__ )))[0]
28pjoin = os.path.join28pjoin = os.path.join
2929
30if not sys.version_info[0] == 2 or sys.version_info[1] < 6:30if sys.version_info[1] < 7:
31 sys.exit('MadEvent works with python 2.6 or higher (but not python 3.X).\n\31 sys.exit('MadEvent works with python 2.7/3.7 or higher.\n\
32 Please upgrade your version of python.')32 Please upgrade your version of python.')
3333
34try:
35 import six
36except ImportError:
37 message = 'madgraph requires the six module. The easiest way to install it is to run "pip install six --user"\n'
38 message += 'in case of problem with pip, you can download the file at https://pypi.org/project/six/ . It has a single python file that you just need to put inside a directory of your $PYTHONPATH environment variable.'
39 sys.exit(message)
40
34# Check if optimize mode is (and should be) activated41# Check if optimize mode is (and should be) activated
35if __debug__ and (not os.path.exists(pjoin(root_path,'../..', 'bin','create_release.py'))):42if __debug__ and (not os.path.exists(pjoin(root_path,'../..', 'bin','create_release.py'))):
36 subprocess.call([sys.executable] + ['-O'] + sys.argv)43 subprocess.call([sys.executable] + ['-O'] + sys.argv)
@@ -50,7 +57,7 @@
50 try:57 try:
51 import pyreadline as readline58 import pyreadline as readline
52 except:59 except:
53 print "For tab completion and history, install module readline."60 print("For tab completion and history, install module readline.")
54else:61else:
55 import rlcompleter62 import rlcompleter
5663
@@ -81,7 +88,7 @@
81 pass88 pass
8289
83if __debug__:90if __debug__:
84 print 'Running MG5 in debug mode'91 print('Running MG5 in debug mode')
8592
8693
8794
@@ -99,25 +106,25 @@
99 try:106 try:
100 mode = int(argument[1])107 mode = int(argument[1])
101 except:108 except:
102 mode = int(raw_input('Enter 2 for multi-core, 1 for parallel, 0 for serial run\n'))109 mode = int(six.moves.input('Enter 2 for multi-core, 1 for parallel, 0 for serial run\n'))
103 if mode == 0:110 if mode == 0:
104 try:111 try:
105 name = argument[2]112 name = argument[2]
106 except:113 except:
107 name = raw_input('Enter run name\n')114 name = six.moves.input('Enter run name\n')
108 else:115 else:
109 try:116 try:
110 opt = argument[2]117 opt = argument[2]
111 except:118 except:
112 if mode == 1: 119 if mode == 1:
113 opt = raw_input('Enter name for jobs on pbs queue\n')120 opt = six.moves.input('Enter name for jobs on pbs queue\n')
114 else:121 else:
115 opt = int(raw_input('Enter number of cores\n'))122 opt = int(six.moves.input('Enter number of cores\n'))
116 123
117 try:124 try:
118 name = argument[3]125 name = argument[3]
119 except:126 except:
120 name = raw_input('enter run name\n')127 name = six.moves.input('enter run name\n')
121128
122# launch = ME.MadEventCmd(me_dir=root_path)129# launch = ME.MadEventCmd(me_dir=root_path)
123 130
@@ -158,7 +165,7 @@
158 launch = ME.MadEventCmdShell(me_dir=root_path, force_run=True)165 launch = ME.MadEventCmdShell(me_dir=root_path, force_run=True)
159 launch.run_cmd('generate_events %s' % ' '.join(argument[1:]))166 launch.run_cmd('generate_events %s' % ' '.join(argument[1:]))
160 launch.run_cmd('quit')167 launch.run_cmd('quit')
161 except ME.MadEventAlreadyRunning, message:168 except ME.MadEventAlreadyRunning as message:
162 logging.getLogger('madgraph').log(40, str(message))169 logging.getLogger('madgraph').log(40, str(message))
163 sys.exit(1)170 sys.exit(1)
164 except KeyboardInterrupt:171 except KeyboardInterrupt:
@@ -166,7 +173,7 @@
166 launch.run_cmd('quit')173 launch.run_cmd('quit')
167 except:174 except:
168 pass175 pass
169 except Exception, error:176 except Exception as error:
170 logging.error(str(error))177 logging.error(str(error))
171 sys.exit()178 sys.exit()
172 179
173180
=== modified file 'Template/LO/bin/internal/Gridpack/gridrun'
--- Template/LO/bin/internal/Gridpack/gridrun 2017-06-08 18:43:40 +0000
+++ Template/LO/bin/internal/Gridpack/gridrun 2021-01-08 10:23:50 +0000
@@ -19,10 +19,17 @@
19and call immediately the command line interface scripts"""19and call immediately the command line interface scripts"""
2020
21import sys21import sys
22if not sys.version_info[0] == 2 or sys.version_info[1] < 6:22if sys.version_info[1] < 7:
23 sys.exit('MadGraph/MadEvent 5 works only with python 2.6 or later (but not python 3.X).\n\23 sys.exit('MadGraph/MadEvent 5 works only with python 2.7/3.7 or later.\n\
24 Please upgrate your version of python.')24 Please upgrate your version of python.')
2525
26try:
27 import six
28except ImportError:
29 message = 'madgraph requires the six module. The easiest way to install it is to run "pip install six --user"\n'
30 message += 'in case of problem with pip, you can download the file at https://pypi.org/project/six/ . It has a single python file that you just need to put inside a directory of your $PYTHONPATH environment variable.'
31 sys.exit(message)
32
26import os33import os
27import optparse34import optparse
2835
2936
=== modified file 'Template/LO/bin/internal/addmasses_optional.py'
--- Template/LO/bin/internal/addmasses_optional.py 2015-10-15 20:22:39 +0000
+++ Template/LO/bin/internal/addmasses_optional.py 2021-01-08 10:23:50 +0000
@@ -5,8 +5,11 @@
5# Add masses to charged leptons, fix kinematics5# Add masses to charged leptons, fix kinematics
6# Insert W/Z when missing6# Insert W/Z when missing
77
8from __future__ import absolute_import
9from __future__ import print_function
8import math,sys,re10import math,sys,re
9from xml.dom import minidom11from xml.dom import minidom
12from six.moves import range
1013
11#tolerance for energy momentum conservation14#tolerance for energy momentum conservation
12toler = 1e-415toler = 1e-4
@@ -70,7 +73,7 @@
70 self.pz = self.pz/pi*po73 self.pz = self.pz/pi*po
71 def printMe(self):74 def printMe(self):
72 li = [self.px,self.py, self.pz, self.E, self.m]75 li = [self.px,self.py, self.pz, self.E, self.m]
73 print "| %18.10E %18.10E %18.10E %18.10E %18.10E |" % tuple(li) 76 print("| %18.10E %18.10E %18.10E %18.10E %18.10E |" % tuple(li))
7477
75#useful class to describe a particle78#useful class to describe a particle
76class Particle:79class Particle:
@@ -87,7 +90,7 @@
87 self.polar = l[12]90 self.polar = l[12]
88 def printMe(self):91 def printMe(self):
89 li = [self.no, self.id, self.status,self.mo1, self.mo2, self.co1, self.co2, self.mom.px,self.mom.py, self.mom.pz, self.mom.E, self.mom.m, self.life, self.polar]92 li = [self.no, self.id, self.status,self.mo1, self.mo2, self.co1, self.co2, self.mom.px,self.mom.py, self.mom.pz, self.mom.E, self.mom.m, self.life, self.polar]
90 print "%2i | %9i | %4i | %4i %4i | %4i %4i | %18.10E %18.10E %18.10E %18.10E %18.10E | %1.0f. %2.0f" % tuple(li)93 print("%2i | %9i | %4i | %4i %4i | %4i %4i | %18.10E %18.10E %18.10E %18.10E %18.10E | %1.0f. %2.0f" % tuple(li))
91 def writeMe(self):94 def writeMe(self):
92 li = [self.id, self.status,self.mo1, self.mo2, self.co1, self.co2, self.mom.px,self.mom.py, self.mom.pz, self.mom.E, self.mom.m, self.life, self.polar]95 li = [self.id, self.status,self.mo1, self.mo2, self.co1, self.co2, self.mom.px,self.mom.py, self.mom.pz, self.mom.E, self.mom.m, self.life, self.polar]
93 return "%9i %4i %4i %4i %4i %4i %18.10E %18.10E %18.10E %18.10E %18.10E %1.0f. %2.0f\n" % tuple(li) 96 return "%9i %4i %4i %4i %4i %4i %18.10E %18.10E %18.10E %18.10E %18.10E %1.0f. %2.0f\n" % tuple(li)
@@ -108,7 +111,7 @@
108 try:111 try:
109 line=f.readline()112 line=f.readline()
110 except IOError:113 except IOError:
111 print "Problem reading from file ",sys.argv[1]114 print("Problem reading from file ",sys.argv[1])
112 sys.exit(0)115 sys.exit(0)
113 if line.find("<event>")==-1:116 if line.find("<event>")==-1:
114 g.write(line)117 g.write(line)
@@ -121,7 +124,7 @@
121 try:124 try:
122 xmldoc = minidom.parse(sys.argv[1])125 xmldoc = minidom.parse(sys.argv[1])
123 except IOError:126 except IOError:
124 print " could not open file for xml parsing ",sys.argv[1]127 print(" could not open file for xml parsing ",sys.argv[1])
125 sys.exit(0)128 sys.exit(0)
126 129
127 130
@@ -178,7 +181,7 @@
178 if len(noMotherList)==0:181 if len(noMotherList)==0:
179 pass182 pass
180 elif len(noMotherList)%2 != 0:183 elif len(noMotherList)%2 != 0:
181 print "single orphan; do not know how to process"184 print("single orphan; do not know how to process")
182 else:185 else:
183 ki=0186 ki=0
184 while ki<len(noMotherList)-1:187 while ki<len(noMotherList)-1:
@@ -265,7 +268,7 @@
265 pSum = pSum + p.mom268 pSum = pSum + p.mom
266 269
267 if abs(pSum.px)>toler or abs(pSum.py)>toler or abs(pSum.pz)>toler or abs(pSum.E)>toler:270 if abs(pSum.px)>toler or abs(pSum.py)>toler or abs(pSum.pz)>toler or abs(pSum.E)>toler:
268 print "Event does not pass tolerance ",toler271 print("Event does not pass tolerance ",toler)
269 pSum.printMe()272 pSum.printMe()
270 273
271 if 1:274 if 1:
@@ -286,28 +289,28 @@
286289
287 #main part of analysis290 #main part of analysis
288 if len(sys.argv)!=3:291 if len(sys.argv)!=3:
289 print "Usage: addmasses.py <infile> <outfile> "292 print("Usage: addmasses.py <infile> <outfile> ")
290 print " Last modified: Fri Nov 21 10:49:14 CST 2008 "293 print(" Last modified: Fri Nov 21 10:49:14 CST 2008 ")
291 sys.exit(1)294 sys.exit(1)
292 else:295 else:
293 print "Running addmasses.py to add masses and correct kinematics of fixed particles"296 print("Running addmasses.py to add masses and correct kinematics of fixed particles")
294 297
295 #first print out leading information298 #first print out leading information
296 try:299 try:
297 f=open(sys.argv[1],'r')300 f=open(sys.argv[1],'r')
298 except IOError:301 except IOError:
299 print "need a file for reading"302 print("need a file for reading")
300 sys.exit(1)303 sys.exit(1)
301304
302 try:305 try:
303 g=open(sys.argv[2],'w')306 g=open(sys.argv[2],'w')
304 except IOError:307 except IOError:
305 print "need a file for writing"308 print("need a file for writing")
306 sys.exit(1)309 sys.exit(1)
307 310
308 try:311 try:
309 add_masses(f,g)312 add_masses(f,g)
310 except Exception, error:313 except Exception as error:
311 print "addmasses failed with error, %s" % error314 print("addmasses failed with error, %s" % error)
312 sys.exit(1)315 sys.exit(1)
313 316
314317
=== modified file 'Template/LO/bin/madevent'
--- Template/LO/bin/madevent 2018-03-30 07:54:37 +0000
+++ Template/LO/bin/madevent 2021-01-08 10:23:50 +0000
@@ -1,4 +1,4 @@
1#! /usr/bin/env python1#! /usr/bin/env python3
22
3################################################################################3################################################################################
4#4#
@@ -19,10 +19,18 @@
19and call immediately the command line interface scripts"""19and call immediately the command line interface scripts"""
2020
21import sys21import sys
22if not sys.version_info[0] == 2 or sys.version_info[1] < 6:22if sys.version_info[1] < 7:
23 sys.exit('MadGraph/MadEvent 5 works only with python 2.6 or later (but not python 3.X).\n\23 sys.exit('MadGraph/MadEvent 5 works only with python 2.7/3.7 or later.\n\
24 Please upgrate your version of python.')24 Please upgrate your version of python.')
2525
26try:
27 import six
28except ImportError:
29 message = 'madgraph requires the six module. The easiest way to install it is to run "pip install six --user"\n'
30 message += 'in case of problem with pip, you can download the file at https://pypi.org/project/six/ . It has a single python file that you just need to put inside a directory of your $PYTHONPATH environment variable.'
31 sys.exit(message)
32
33
26import os34import os
27import optparse35import optparse
2836
@@ -59,7 +67,7 @@
59 try:67 try:
60 (options, args) = parser.parse_args(sys.argv[1:len(sys.argv)-i])68 (options, args) = parser.parse_args(sys.argv[1:len(sys.argv)-i])
61 done = True69 done = True
62 except MyOptParser.InvalidOption, error:70 except MyOptParser.InvalidOption as error:
63 pass 71 pass
64 else:72 else:
65 args += sys.argv[len(sys.argv)-i:]73 args += sys.argv[len(sys.argv)-i:]
@@ -67,8 +75,8 @@
67 # raise correct error:75 # raise correct error:
68 try:76 try:
69 (options, args) = parser.parse_args()77 (options, args) = parser.parse_args()
70 except MyOptParser.InvalidOption, error:78 except MyOptParser.InvalidOption as error:
71 print error79 print(error)
72 sys.exit(2) 80 sys.exit(2)
7381
74if len(args) == 0:82if len(args) == 0:
@@ -79,7 +87,7 @@
79# Check if optimize mode is (and should be) activated87# Check if optimize mode is (and should be) activated
80if __debug__ and not options.debug and \88if __debug__ and not options.debug and \
81 (not os.path.exists(os.path.join(root_path,'../..', 'bin','create_release.py')) or options.web):89 (not os.path.exists(os.path.join(root_path,'../..', 'bin','create_release.py')) or options.web):
82 print 'launch in debug mode'90 print( 'launch in debug mode')
83 subprocess.call([sys.executable] + ['-O'] + sys.argv)91 subprocess.call([sys.executable] + ['-O'] + sys.argv)
84 sys.exit()92 sys.exit()
8593
@@ -92,7 +100,7 @@
92 try:100 try:
93 import pyreadline as readline101 import pyreadline as readline
94 except:102 except:
95 print "For tab completion and history, install module readline."103 print( "For tab completion and history, install module readline.")
96else:104else:
97 import rlcompleter105 import rlcompleter
98106
@@ -123,7 +131,7 @@
123 pass131 pass
124132
125if __debug__:133if __debug__:
126 print 'Running MG5 in debug mode'134 print( 'Running MG5 in debug mode')
127135
128136
129# Set logging level according to the logging level given by options137# Set logging level according to the logging level given by options
@@ -175,10 +183,10 @@
175 cmd_line = cmd_interface.MadEventCmdShell(force_run=True)183 cmd_line = cmd_interface.MadEventCmdShell(force_run=True)
176 if not hasattr(cmd_line, 'do_%s' % args[0]):184 if not hasattr(cmd_line, 'do_%s' % args[0]):
177 if parser_error:185 if parser_error:
178 print parser_error186 print( parser_error)
179 print 'and %s can not be interpreted as a valid command.' % args[0]187 print( 'and %s can not be interpreted as a valid command.' % args[0])
180 else:188 else:
181 print 'ERROR: %s not a valid command. Please retry' % args[0]189 print( 'ERROR: %s not a valid command. Please retry' % args[0])
182 else:190 else:
183 cmd_line.use_rawinput = False 191 cmd_line.use_rawinput = False
184 cmd_line.run_cmd(' '.join(args))192 cmd_line.run_cmd(' '.join(args))
@@ -192,9 +200,9 @@
192 cmd_line = cmd_interface.MadEventCmdShell(force_run=True)200 cmd_line = cmd_interface.MadEventCmdShell(force_run=True)
193 cmd_line.cmdloop()201 cmd_line.cmdloop()
194except KeyboardInterrupt:202except KeyboardInterrupt:
195 print 'writting history and directory and quit on KeyboardInterrupt' 203 print( 'writting history and directory and quit on KeyboardInterrupt' )
196 pass204 pass
197except cmd_interface.MadEventAlreadyRunning, error:205except cmd_interface.MadEventAlreadyRunning as error:
198 logging.error(str(error))206 logging.error(str(error))
199 sys.exit(1)207 sys.exit(1)
200208
201209
=== modified file 'Template/MadWeight/Python/Info.py'
--- Template/MadWeight/Python/Info.py 2015-10-01 16:00:08 +0000
+++ Template/MadWeight/Python/Info.py 2021-01-08 10:23:50 +0000
@@ -1,18 +1,21 @@
1#!/usr/bin/env python1#!/usr/bin/env python
22
3def giveInfo(class_):3from __future__ import absolute_import
4 if type(class_)!=str:4from __future__ import print_function
5 class_=class_.__class__.__name__5from six.moves import input
6 for info in dir(eval(class_)):6def giveInfo(class_):
7 7 if type(class_)!=str:
8 print class_+'.'+info+' : ',eval(class_+'.'+info+'.__doc__')8 class_=class_.__class__.__name__
99 for info in dir(eval(class_)):
1010
1111 print(class_+'.'+info+' : ',eval(class_+'.'+info+'.__doc__'))
12if __name__=='__main__':12
13 class_=raw_input('enter the name of the class')13
14 try:14
15 import class_15if __name__=='__main__':
16 except:16 class_=input('enter the name of the class')
17 pass17 try:
18 giveInfo(class_)18 import class_
19 except:
20 pass
21 giveInfo(class_)
1922
=== modified file 'Template/MadWeight/Python/clean.py'
--- Template/MadWeight/Python/clean.py 2015-10-01 16:00:08 +0000
+++ Template/MadWeight/Python/clean.py 2021-01-08 10:23:50 +0000
@@ -33,6 +33,8 @@
33##33##
34## BEGIN INCLUDE34## BEGIN INCLUDE
35##35##
36from __future__ import absolute_import
37from __future__ import print_function
36import os38import os
3739
38#1 #########################################################################40#1 #########################################################################
@@ -48,8 +50,8 @@
48 if os.path.isdir(element) and (element[0]=='P' or element[:4]=='MW_P'):50 if os.path.isdir(element) and (element[0]=='P' or element[:4]=='MW_P'):
49 status,mess=clean.suppress_dir(os.path.join(element,run_name))51 status,mess=clean.suppress_dir(os.path.join(element,run_name))
50 if not status:52 if not status:
51 print 'supress ',element,' failed:' 53 print('supress ',element,' failed:')
52 print mess54 print(mess)
5355
54 os.chdir(os.pardir)56 os.chdir(os.pardir)
55 57
@@ -161,14 +163,14 @@
161163
162 if suppres and os.path.isfile(file):164 if suppres and os.path.isfile(file):
163 if 'n' in opt:165 if 'n' in opt:
164 print 'schedulle deleting file',file166 print('schedulle deleting file',file)
165 return 1,mess167 return 1,mess
166 try:168 try:
167 os.remove(file)169 os.remove(file)
168 except:170 except:
169 pass171 pass
170 if 's' not in opt:172 if 's' not in opt:
171 print 'delete file',file173 print('delete file',file)
172 return 1,''174 return 1,''
173 elif suppres:175 elif suppres:
174 return 0, 'not a file'+file176 return 0, 'not a file'+file
@@ -221,9 +223,9 @@
221 if 'n' not in opt:223 if 'n' not in opt:
222 os.rmdir(pos)224 os.rmdir(pos)
223 if 's' not in opt:225 if 's' not in opt:
224 print 'delete dir',pos226 print('delete dir',pos)
225 else:227 else:
226 print 'schedulle removing directory',pos228 print('schedulle removing directory',pos)
227 229
228 return 1,''230 return 1,''
229 else:231 else:
@@ -237,4 +239,4 @@
237 go_to_main_dir()239 go_to_main_dir()
238 #Clean_event('fermi')240 #Clean_event('fermi')
239 #Clean_run('fermi')241 #Clean_run('fermi')
240 print 'no cleaning by default'242 print('no cleaning by default')
241243
=== modified file 'Template/MadWeight/Python/expand_MadWeight.py'
--- Template/MadWeight/Python/expand_MadWeight.py 2011-10-25 14:42:02 +0000
+++ Template/MadWeight/Python/expand_MadWeight.py 2021-01-08 10:23:50 +0000
@@ -1,6 +1,8 @@
1#!/usr/bin/env python1#!/usr/bin/env python
22
3# Module3# Module
4from __future__ import absolute_import
5from __future__ import print_function
4import string6import string
5import os7import os
6import sys8import sys
@@ -11,10 +13,10 @@
1113
12def expand_all(echap=[]):14def expand_all(echap=[]):
13 go_to_main_dir()15 go_to_main_dir()
14 print "copying files"16 print("copying files")
15 copy_file(echap)17 copy_file(echap)
16 del_file()18 del_file()
17 print "modifying files"19 print("modifying files")
18 opt={}20 opt={}
19 opt['nowarning']="""['DESACTIVATE_CUT','DESACTIVATE_BW_CUT','get_user_params','main_make','obj_for_MW']"""21 opt['nowarning']="""['DESACTIVATE_CUT','DESACTIVATE_BW_CUT','get_user_params','main_make','obj_for_MW']"""
20 mod_file.mod_file('./Source/MadWeight/mod_file/MW_pos',opt=opt)22 mod_file.mod_file('./Source/MadWeight/mod_file/MW_pos',opt=opt)
2123
=== modified file 'Template/MadWeight/Python/madweight.py'
--- Template/MadWeight/Python/madweight.py 2013-03-29 20:38:55 +0000
+++ Template/MadWeight/Python/madweight.py 2021-01-08 10:23:50 +0000
@@ -6,12 +6,15 @@
66
77
8#Extension8#Extension
9from __future__ import absolute_import
10from __future__ import print_function
9import string11import string
10import sys12import sys
11import os13import os
12import re14import re
13import time15import time
14import stat16import stat
17from six.moves import input
15# patch if symbolic directory replace by real file18# patch if symbolic directory replace by real file
16sys.path.append('./Source/MadWeight/Python')19sys.path.append('./Source/MadWeight/Python')
17sys.path.append('../Source/MadWeight/Python')20sys.path.append('../Source/MadWeight/Python')
@@ -37,7 +40,7 @@
37def Launch_all_SubProcess(MWparam):40def Launch_all_SubProcess(MWparam):
3841
39 name=MWparam.name42 name=MWparam.name
40 print 'name :',name43 print('name :',name)
41 P_proclist,MW_proclist=MWparam.P_listdir,MWparam.MW_listdir44 P_proclist,MW_proclist=MWparam.P_listdir,MWparam.MW_listdir
42 #create banner45 #create banner
43 if MWparam.run_opt['launch']:46 if MWparam.run_opt['launch']:
@@ -46,14 +49,14 @@
46 banner.write()49 banner.write()
4750
48 if MWparam.run_opt['compilation']:51 if MWparam.run_opt['compilation']:
49 print 'starting program compilation'52 print('starting program compilation')
50 compile_SubProcesses(MW_proclist)53 compile_SubProcesses(MW_proclist)
51 54
52 if MWparam.run_opt['event']:55 if MWparam.run_opt['event']:
53 verif_event(MWparam)56 verif_event(MWparam)
5457
55 if MWparam.run_opt['refine']:58 if MWparam.run_opt['refine']:
56 print "collecting data to find data with a precision less than",MWparam.run_opt['refine']59 print("collecting data to find data with a precision less than",MWparam.run_opt['refine'])
57 collect_schedular(MWparam) 60 collect_schedular(MWparam)
5861
5962
@@ -62,7 +65,7 @@
62 cluster.driver()65 cluster.driver()
6366
64 if MWparam.run_opt['collect']:67 if MWparam.run_opt['collect']:
65 print "collecting data"68 print("collecting data")
66 collect_schedular(MWparam) 69 collect_schedular(MWparam)
6770
6871
@@ -90,7 +93,7 @@
90 if os.path.isfile("./comp_madweight") and exit_status==0 :93 if os.path.isfile("./comp_madweight") and exit_status==0 :
91 os.chdir("..")94 os.chdir("..")
92 else:95 else:
93 print "fortran compilation error"96 print("fortran compilation error")
94 sys.exit()97 sys.exit()
95 os.chdir("..") 98 os.chdir("..")
96 return99 return
@@ -109,7 +112,7 @@
109 if os.path.isfile("./madevent") and exit_status==0:112 if os.path.isfile("./madevent") and exit_status==0:
110 os.chdir("..")113 os.chdir("..")
111 else:114 else:
112 print "fortran compilation error"115 print("fortran compilation error")
113 sys.exit()116 sys.exit()
114 os.chdir("..") 117 os.chdir("..")
115 return 118 return
@@ -142,15 +145,15 @@
142145
143 for dir in MWparam.MW_listdir:146 for dir in MWparam.MW_listdir:
144 if not os.path.exists("SubProcesses/"+dir+"/call_TF.f"): 147 if not os.path.exists("SubProcesses/"+dir+"/call_TF.f"):
145 print "Currently no transfer function loaded ..."148 print("Currently no transfer function loaded ...")
146 listdir=os.listdir('./Source/MadWeight/transfer_function/data')149 listdir=os.listdir('./Source/MadWeight/transfer_function/data')
147 print 'Available transfer functions:\n ',150 print('Available transfer functions:\n ', end=' ')
148 print '\n '.join([content[3:-4] for content in listdir if (content.startswith('TF') and content.endswith('dat'))])151 print('\n '.join([content[3:-4] for content in listdir if (content.startswith('TF') and content.endswith('dat'))]))
149 name=raw_input('Choose your transfer Function\n')152 name=input('Choose your transfer Function\n')
150 P_dir,MW_dir=detect_SubProcess(P_mode=1)153 P_dir,MW_dir=detect_SubProcess(P_mode=1)
151 os.chdir('./Source/MadWeight/transfer_function')154 os.chdir('./Source/MadWeight/transfer_function')
152 change_tf.create_TF_main(name,0,MW_dir)155 change_tf.create_TF_main(name,0,MW_dir)
153 print os.getcwd()156 print(os.getcwd())
154 os.chdir('../../..')157 os.chdir('../../..')
155 break158 break
156159
@@ -173,7 +176,7 @@
173 plot.Differential_Graph(MWparam,auto=1) 176 plot.Differential_Graph(MWparam,auto=1)
174177
175 if MWparam.run_opt['clean']:178 if MWparam.run_opt['clean']:
176 print 'cleaning in progress ....'179 print('cleaning in progress ....')
177 from clean import Clean_run180 from clean import Clean_run
178 if MWparam.run_opt['clean']==1:181 if MWparam.run_opt['clean']==1:
179 Clean_run(MWparam.name)182 Clean_run(MWparam.name)
180183
=== modified file 'Template/MadWeight/Python/put_banner.py'
--- Template/MadWeight/Python/put_banner.py 2011-10-25 14:42:02 +0000
+++ Template/MadWeight/Python/put_banner.py 2021-01-08 10:23:50 +0000
@@ -99,7 +99,11 @@
9999
100100
101101
102from __future__ import absolute_import
103from __future__ import print_function
102import os,re,sys104import os,re,sys
105from six.moves import range
106from six.moves import input
103sys.path+=['../'*i+'./Source/MadWeight/Python' for i in range(1,6)]107sys.path+=['../'*i+'./Source/MadWeight/Python' for i in range(1,6)]
104import MW_param108import MW_param
105109
@@ -140,7 +144,7 @@
140 """ | put in variable full_banner_txt the content of the file ##144 """ | put in variable full_banner_txt the content of the file ##
141 ## | defined in position self.header_file ##145 ## | defined in position self.header_file ##
142 """146 """
143 self.full_banner_txt+=file(self.header_file,'rU').read()147 self.full_banner_txt+=open(self.header_file,'rU').read()
144148
145 #2 #######################################################################149 #2 #######################################################################
146 def put_version_info(self):150 def put_version_info(self):
@@ -149,7 +153,7 @@
149 self.full_banner_txt+="<MGVersion>\n"153 self.full_banner_txt+="<MGVersion>\n"
150 for key,pos in self.version_info.items():154 for key,pos in self.version_info.items():
151 try:155 try:
152 self.full_banner_txt+="# "+key+' '*(25-len(key))+':'+file(pos,'rU').read()156 self.full_banner_txt+="# "+key+' '*(25-len(key))+':'+open(pos,'rU').read()
153 except IOError:157 except IOError:
154 self.full_banner_txt+="# "+key+' '*(25-len(key))+':'158 self.full_banner_txt+="# "+key+' '*(25-len(key))+':'
155 if self.full_banner_txt[-1]!='\n':159 if self.full_banner_txt[-1]!='\n':
@@ -170,7 +174,7 @@
170 try:174 try:
171 self.full_banner_txt+=eval('self.mod_'+key+'(\"'+pos+'\")')175 self.full_banner_txt+=eval('self.mod_'+key+'(\"'+pos+'\")')
172 except:176 except:
173 self.full_banner_txt+=file(pos,'rU').read()177 self.full_banner_txt+=open(pos,'rU').read()
174 self.full_banner_txt+="</"+key+">\n"178 self.full_banner_txt+="</"+key+">\n"
175179
176 #2 #######################################################################180 #2 #######################################################################
@@ -179,7 +183,7 @@
179 ## | self.input_file ##183 ## | self.input_file ##
180 """184 """
181 185
182 self.full_banner_txt+=file(self.input_file,'rU').read()186 self.full_banner_txt+=open(self.input_file,'rU').read()
183 if self.full_banner_txt[-1]!='\n':187 if self.full_banner_txt[-1]!='\n':
184 self.full_banner_txt+='\n'188 self.full_banner_txt+='\n'
185 self.full_banner_txt+="</LesHouchesEvents>\n"189 self.full_banner_txt+="</LesHouchesEvents>\n"
@@ -192,7 +196,7 @@
192 """196 """
193 suppress_empty_line=re.compile(r'''\n\s*\n''')197 suppress_empty_line=re.compile(r'''\n\s*\n''')
194 self.full_banner_txt=suppress_empty_line.sub('\n',self.full_banner_txt)198 self.full_banner_txt=suppress_empty_line.sub('\n',self.full_banner_txt)
195 output=file(self.output_file,'w')199 output=open(self.output_file,'w')
196 output.writelines(self.full_banner_txt)200 output.writelines(self.full_banner_txt)
197 output.close()201 output.close()
198202
@@ -255,11 +259,11 @@
255 ## | modify (or original) run_card.dat ##259 ## | modify (or original) run_card.dat ##
256 """260 """
257261
258 text=file(inputfile).read()262 text=open(inputfile).read()
259 if os.path.isfile('./SubProcesses/randinit'):263 if os.path.isfile('./SubProcesses/randinit'):
260 pattern_random=re.compile(r'''r=\s*(?P<val>\d*)''')264 pattern_random=re.compile(r'''r=\s*(?P<val>\d*)''')
261 print file('./SubProcesses/randinit').read()265 print(open('./SubProcesses/randinit').read())
262 seed=pattern_random.search(file('./SubProcesses/randinit').read()).group('val')266 seed=pattern_random.search(open('./SubProcesses/randinit').read()).group('val')
263 pattern_seed=re.compile(r'''0\s*=\s*iseed''')267 pattern_seed=re.compile(r'''0\s*=\s*iseed''')
264 text=pattern_seed.sub(' '+seed+' = iseed',text)#268 text=pattern_seed.sub(' '+seed+' = iseed',text)#
265269
@@ -306,7 +310,7 @@
306 def_pos.to_main()310 def_pos.to_main()
307 opt=sys.argv311 opt=sys.argv
308 if len(opt)==1:312 if len(opt)==1:
309 filename=raw_input('Enter file with events (in directory Events)')313 filename=input('Enter file with events (in directory Events)')
310 else:314 else:
311 filename=opt[1]315 filename=opt[1]
312 316
313317
=== modified file 'Template/MadWeight/Python/splitbanner.py'
--- Template/MadWeight/Python/splitbanner.py 2011-10-25 14:42:02 +0000
+++ Template/MadWeight/Python/splitbanner.py 2021-01-08 10:23:50 +0000
@@ -14,7 +14,10 @@
14## last-modif:24/01/09 ##14## last-modif:24/01/09 ##
15## ##15## ##
16##########################################################################16##########################################################################
17from __future__ import absolute_import
18from __future__ import print_function
17import sys19import sys
20from six.moves import input
18# patch if symbolic directory replace by real file21# patch if symbolic directory replace by real file
19sys.path.append('./Source/MadWeight/Python')22sys.path.append('./Source/MadWeight/Python')
20sys.path.append('../Source/MadWeight/Python')23sys.path.append('../Source/MadWeight/Python')
@@ -52,7 +55,7 @@
5255
53 def write_card(self,pos):56 def write_card(self,pos):
5457
55 print 'writing', pos58 print('writing', pos)
56 ff=open(pos,'w')59 ff=open(pos,'w')
57 for line in self.file:60 for line in self.file:
58 if self.pat_end.search(line):61 if self.pat_end.search(line):
@@ -62,7 +65,7 @@
62 ff.writelines(line)65 ff.writelines(line)
6366
64 def FindCardName(self,tag):67 def FindCardName(self,tag):
65 if tag in dico.keys():68 if tag in list(dico.keys()):
66 if '.' not in dico[tag]:69 if '.' not in dico[tag]:
67 return dico[tag]+'.dat'70 return dico[tag]+'.dat'
68 else:71 else:
@@ -77,9 +80,9 @@
77 import MW_param80 import MW_param
78 MW_param.go_to_main_dir()81 MW_param.go_to_main_dir()
79 opt=sys.argv82 opt=sys.argv
80 print opt83 print(opt)
81 if len(opt)<2:84 if len(opt)<2:
82 name=raw_input('enter the run name to restore or the position of a banner file\n')85 name=input('enter the run name to restore or the position of a banner file\n')
83 else:86 else:
84 name=opt[1]87 name=opt[1]
8588
@@ -91,15 +94,15 @@
91 pos='/'.join([part for part in name.split('/')[:-1]])94 pos='/'.join([part for part in name.split('/')[:-1]])
92 95
93 ban.split()96 ban.split()
94 print 'done'97 print('done')
95 98
96 if len(opt)==3:99 if len(opt)==3:
97 import_lhco=opt[2]100 import_lhco=opt[2]
98 else:101 else:
99 import_lhco=raw_input('Do you want import the input.lhco file? (1/0)\n')102 import_lhco=input('Do you want import the input.lhco file? (1/0)\n')
100103
101 104
102 if int(import_lhco):105 if int(import_lhco):
103 os.system('cp '+pos+'/input.lhco ./Events')106 os.system('cp '+pos+'/input.lhco ./Events')
104 print 'replace Events/input.lhco by '+pos+'/input.lhco'107 print('replace Events/input.lhco by '+pos+'/input.lhco')
105108
106109
=== modified file 'Template/MadWeight/Python/tests.py'
--- Template/MadWeight/Python/tests.py 2011-10-25 14:42:02 +0000
+++ Template/MadWeight/Python/tests.py 2021-01-08 10:23:50 +0000
@@ -20,7 +20,10 @@
20#########################################################################################################20#########################################################################################################
21# TEST #################################################################################################21# TEST #################################################################################################
22#########################################################################################################22#########################################################################################################
23from __future__ import absolute_import
24from __future__ import print_function
23import sys25import sys
26from six.moves import input
24sys.path.append('./Source/MadWeight/Python')27sys.path.append('./Source/MadWeight/Python')
25import filecmp28import filecmp
26import unittest29import unittest
@@ -279,10 +282,10 @@
279282
280283
281284
282print 'WARNING: This test modify this version of the Template. The correct way to launch it is to first made a copy of the Template'285print('WARNING: This test modify this version of the Template. The correct way to launch it is to first made a copy of the Template')
283y =raw_input('Do you want to continue? [y/n]')286y =input('Do you want to continue? [y/n]')
284if y == 'y':287if y == 'y':
285 unittest.main()288 unittest.main()
286else:289else:
287 print 'stopped'290 print('stopped')
288291
289292
=== modified file 'Template/MadWeight/bin/madweight.py'
--- Template/MadWeight/bin/madweight.py 2013-03-30 07:45:35 +0000
+++ Template/MadWeight/bin/madweight.py 2021-01-08 10:23:50 +0000
@@ -15,6 +15,8 @@
15################################################################################15################################################################################
16""" This is the main script in order to generate events in MadEvent """16""" This is the main script in order to generate events in MadEvent """
1717
18from __future__ import absolute_import
19from __future__ import print_function
18import sys20import sys
19import os21import os
20import subprocess 22import subprocess
@@ -33,7 +35,7 @@
3335
34# Check if optimize mode is (and should be) activated36# Check if optimize mode is (and should be) activated
35if __debug__ and (not os.path.exists(os.path.join(root_path,'../..', 'bin','create_release.py'))):37if __debug__ and (not os.path.exists(os.path.join(root_path,'../..', 'bin','create_release.py'))):
36 print 'launch in debug mode'38 print('launch in debug mode')
37 subprocess.call([sys.executable] + ['-O'] + sys.argv)39 subprocess.call([sys.executable] + ['-O'] + sys.argv)
38 sys.exit()40 sys.exit()
3941
@@ -50,7 +52,7 @@
50 try:52 try:
51 import pyreadline as readline53 import pyreadline as readline
52 except:54 except:
53 print "For tab completion and history, install module readline."55 print("For tab completion and history, install module readline.")
54else:56else:
55 import rlcompleter57 import rlcompleter
5658
@@ -81,7 +83,7 @@
81 pass83 pass
8284
83if __debug__:85if __debug__:
84 print 'Running MG5 in debug mode'86 print('Running MG5 in debug mode')
8587
8688
87def set_configuration():89def set_configuration():
@@ -163,10 +165,10 @@
163 launch.run_cmd('quit')165 launch.run_cmd('quit')
164 except:166 except:
165 pass167 pass
166 except MW.AlreadyRunning, error:168 except MW.AlreadyRunning as error:
167 logging.error(str(error))169 logging.error(str(error))
168 sys.exit()170 sys.exit()
169 except Exception, error:171 except Exception as error:
170 if os.path.exists(pjoin(root_path, 'RunWeb')): 172 if os.path.exists(pjoin(root_path, 'RunWeb')):
171 os.remove(pjoin(root_path, 'RunWeb'))173 os.remove(pjoin(root_path, 'RunWeb'))
172 raise 174 raise
173175
=== modified file 'Template/MadWeight/mod_file/check_model.py'
--- Template/MadWeight/mod_file/check_model.py 2011-10-25 14:42:02 +0000
+++ Template/MadWeight/mod_file/check_model.py 2021-01-08 10:23:50 +0000
@@ -3,6 +3,8 @@
3#test3#test
44
5#Extension5#Extension
6from __future__ import absolute_import
7from __future__ import print_function
6import string8import string
7import os9import os
8import sys10import sys
@@ -29,7 +31,7 @@
29 if 'bin' in list_dir:31 if 'bin' in list_dir:
30 return32 return
31 else:33 else:
32 print 'script must be launched from main or bin/Source directory'34 print('script must be launched from main or bin/Source directory')
33 sys.exit()35 sys.exit()
34 36
3537
3638
=== modified file 'Template/MadWeight/mod_file/mod_file.py'
--- Template/MadWeight/mod_file/mod_file.py 2011-10-25 14:42:02 +0000
+++ Template/MadWeight/mod_file/mod_file.py 2021-01-08 10:23:50 +0000
@@ -1,11 +1,14 @@
1#!/usr/bin/env python1#!/usr/bin/env python
22
3#Extension3#Extension
4from __future__ import absolute_import
5from __future__ import print_function
4import string6import string
5import os7import os
6import sys8import sys
7import time9import time
8import re10import re
11from six.moves import range
912
10############################################################################13############################################################################
11## PARAMETER14## PARAMETER
@@ -21,11 +24,11 @@
21 24
22#SECURITY POINT25#SECURITY POINT
23 if type(list_input)!=list:26 if type(list_input)!=list:
24 print 'subroutine need at least two files for fuse'27 print('subroutine need at least two files for fuse')
25 return 028 return 0
26 29
27 if output in list_input:30 if output in list_input:
28 print 'output file cann\'t have the same name than an input file'31 print('output file cann\'t have the same name than an input file')
29 return 032 return 0
3033
31#initialisation34#initialisation
@@ -179,7 +182,7 @@
179182
180 file_in.close()183 file_in.close()
181 file_out.close()184 file_out.close()
182 print 'no need of mod_photon_flux'185 print('no need of mod_photon_flux')
183 sys.exit()186 sys.exit()
184 return187 return
185188
186189
=== modified file 'Template/NLO/Cards/run_card.dat'
--- Template/NLO/Cards/run_card.dat 2018-04-25 06:47:06 +0000
+++ Template/NLO/Cards/run_card.dat 2021-01-08 10:23:50 +0000
@@ -179,7 +179,8 @@
179 %(pt_max_pdg)s = pt_max_pdg ! Max pT for a massive particle179 %(pt_max_pdg)s = pt_max_pdg ! Max pT for a massive particle
180 %(mxx_min_pdg)s = mxx_min_pdg ! inv. mass for any pair of (anti)particles180 %(mxx_min_pdg)s = mxx_min_pdg ! inv. mass for any pair of (anti)particles
181#***********************************************************************181#***********************************************************************
182# For aMCfast+APPLGRID use in PDF fitting (http://amcfast.hepforge.org)*182# Use PineAPPL to generate PDF-independent fast-interpolationuse *
183# grids (https://zenodo.org/record/3992765#.X2EWy5MzbVo) *
183#***********************************************************************184#***********************************************************************
184 %(iappl)s = iappl ! aMCfast switch (0=OFF, 1=prepare grids, 2=fill grids)185 %(pineappl)s = pineappl ! PineAPPL switch
185#***********************************************************************186#***********************************************************************
186187
=== modified file 'Template/NLO/FixedOrderAnalysis/HwU.f'
--- Template/NLO/FixedOrderAnalysis/HwU.f 2017-06-21 11:53:16 +0000
+++ Template/NLO/FixedOrderAnalysis/HwU.f 2021-01-08 10:23:50 +0000
@@ -10,16 +10,29 @@
10C C10C C
11CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC11CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
1212
13 module HwU_wgts_info_len
14 use iso_c_binding
15 integer, parameter :: wgts_info_len=80
16 contains
17 integer function get_wgts_info_len() bind(c,name="get_wgts_info_len")
18 get_wgts_info_len = wgts_info_len
19 return
20 end function get_wgts_info_len
21
22 end module HwU_wgts_info_len
23
24
13c The module contains effectively the common block with allocatable25c The module contains effectively the common block with allocatable
14c variables (something not possible in old fortran version)26c variables (something not possible in old fortran version)
15 module HwU_variables27 module HwU_variables
28 use HwU_wgts_info_len
16 implicit none29 implicit none
17 integer :: max_plots,max_points,max_bins,nwgts,np30 integer :: max_plots,max_points,max_bins,nwgts,np
18 integer :: error_estimation=331 integer :: error_estimation=3
19 logical, allocatable :: booked(:)32 logical, allocatable :: booked(:)
20 integer, allocatable :: nbin(:),histi(:,:),p_bin(:),p_label(:)33 integer, allocatable :: nbin(:),histi(:,:),p_bin(:),p_label(:)
21 character(len=50), allocatable :: title(:)34 character(len=50), allocatable :: title(:)
22 character(len=50), allocatable :: wgts_info(:)35 character(len=wgts_info_len), allocatable :: wgts_info(:)
23 double precision, allocatable :: histy(:,:,:),histy_acc(:,:,:)36 double precision, allocatable :: histy(:,:,:),histy_acc(:,:,:)
24 $ ,histy2(:,:),histy_err(:,:),histxl(:,:),histxm(:,:)37 $ ,histy2(:,:),histy_err(:,:),histxl(:,:),histxm(:,:)
25 $ ,step(:),p_wgts(:,:)38 $ ,step(:),p_wgts(:,:)
@@ -34,6 +47,16 @@
34 implicit none47 implicit none
35 integer i,nweights48 integer i,nweights
36 character*(*) wgt_info(*)49 character*(*) wgt_info(*)
50
51c PineAPPL commons
52 include "reweight_pineappl.inc"
53 include "pineappl_common.inc"
54 logical pineappl
55 common /for_pineappl/ pineappl
56
57C Initialize the number of bins of the aMCfast grids
58 if(pineappl) appl_obs_nbins = 0
59
37 call HwU_deallocate_all60 call HwU_deallocate_all
38 max_plots=061 max_plots=0
39 max_points=062 max_points=0
@@ -85,6 +108,43 @@
85 integer label,nbin_l,i,j108 integer label,nbin_l,i,j
86 character*(*) title_l109 character*(*) title_l
87 double precision xmin,xmax110 double precision xmin,xmax
111c PineAPPL commons
112 include "reweight_pineappl.inc"
113 include "pineappl_common.inc"
114 logical pineappl
115 common /for_pineappl/ pineappl
116 double precision del
117
118c Initialize the grids only if the switch "pineappl" is set to True
119c and if the title does not contain the word "Born".
120 if(pineappl.and.index(title_l,"Born").eq.0)then
121c Observable parameters
122c Compute number of bins and edges only if they have not been given by the user.
123 if(appl_obs_nbins.eq.0)then
124 appl_obs_nbins = nbin_l
125 ! bin width
126 del = (xmax - xmin) / nbin_l
127c compute bin edges
128 do i=0,appl_obs_nbins
129 appl_obs_bins(i) = xmin + i * del
130 enddo
131 endif
132 appl_obs_min = appl_obs_bins(0)
133 appl_obs_max = appl_obs_bins(appl_obs_nbins)
134 if(abs(appl_obs_max-xmax).gt.0.00000001d0)then
135 write(*,*) 'PineAPPL Histogram: ',
136 1 'Change of the upper limit:',xmax,'-->',
137 2 appl_obs_max
138 endif
139c Initialize PineAPPL routines
140 call APPL_init
141c Keep track of the position of this histogram
142 nh_obs = nh_obs + 1
143 ih_obs(nh_obs) = label
144c Reset number of bins to zero
145 appl_obs_nbins = 0
146 endif
147
88c Allocate space for new histograms if needed 148c Allocate space for new histograms if needed
89 call HwU_allocate_histo(label,nbin_l)149 call HwU_allocate_histo(label,nbin_l)
90c Setup the histogram150c Setup the histogram
@@ -119,6 +179,24 @@
119 implicit none179 implicit none
120 integer label,i,j,bin180 integer label,i,j,bin
121 double precision x, wgts(*)181 double precision x, wgts(*)
182
183c PineAPPL commons
184 include "reweight_pineappl.inc"
185 include "pineappl_common.inc"
186 logical pineappl
187 common /for_pineappl/ pineappl
188 if(pineappl)then
189 do j=1,nh_obs
190 if(label.eq.ih_obs(j))then
191 appl_obs_num = j
192 appl_obs_histo = x
193c Fill the reference PineAPPL histograms
194c Fill the PineAPPL files
195 call APPL_fill
196 endif
197 enddo
198 endif
199
122c If central weight is zero do not add this point.200c If central weight is zero do not add this point.
123 if (wgts(1).eq.0d0) return201 if (wgts(1).eq.0d0) return
124c Check if point is within plotting range202c Check if point is within plotting range
125203
=== added file 'Template/NLO/FixedOrderAnalysis/analysis_td_hw_orders.f'
--- Template/NLO/FixedOrderAnalysis/analysis_td_hw_orders.f 1970-01-01 00:00:00 +0000
+++ Template/NLO/FixedOrderAnalysis/analysis_td_hw_orders.f 2021-01-08 10:23:50 +0000
@@ -0,0 +1,190 @@
1c
2c This file contains the default histograms for fixed order runs: it
3c only plots the total rate as an example. It can be used as a template
4c to make distributions for other observables.
5c
6c This uses the hbook package and generates histograms in the top-drawer
7c format. This format is human-readable. After running, the histograms
8c can be found in the Events/run_XX/ directory.
9c
10cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
11 subroutine analysis_begin(nwgt,weights_info)
12cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
13c This subroutine is called once at the start of each run. Here the
14c histograms should be declared.
15c
16c Declare the histograms using 'bookup'.
17c o) The first argument is an integer that labels the histogram. In
18c the analysis_end and analysis_fill subroutines this label is used
19c to keep track of the histogram. The label should be a number
20c between 1 and NPLOTS/4=5000 (can be increased in dbook.inc).
21c o) The second argument is a string that will apear above the
22c histogram. Do not use brackets "(" or ")" inside this string.
23c o) The third, forth and fifth arguments are the bin size, the
24c lower edge of the first bin and the upper edge of the last
25c bin. There is a maximum of 100 bins per histogram.
26c o) When including scale and/or PDF uncertainties, declare a
27c histogram for each weight, and compute the uncertainties from the
28c final set of histograms
29c
30 implicit none
31c When including scale and/or PDF uncertainties the total number of
32c weights considered is nwgt
33 integer nwgt
34c In the weights_info, there is an text string that explains what each
35c weight will mean. The size of this array of strings is equal to nwgt.
36 character*(*) weights_info(*)
37c Local variables
38 integer kk,l,nwgt_analysis
39 common/c_analysis/nwgt_analysis
40c Initialize the histogramming package (hbook):
41 call inihist
42c Fill the c_analysis common block with the number of weights that will
43c be computed
44 nwgt_analysis=nwgt
45c
46c loop over all the weights that are computed (depends on run_card
47c parameters do_rwgt_scale and do_rwgt_pdf):
48 do kk=1,nwgt_analysis
49c make sure that there is a separate histogram initialized for each
50c weight
51 l=(kk-1)*4
52c declare (i.e. book) the histograms
53 call bookup(l+1,'total rate '//weights_info(kk),
54 & 1.0d0,0.5d0,5.5d0)
55 call bookup(l+2,'total rate Born '//weights_info(kk),
56 & 1.0d0,0.5d0,5.5d0)
57 call bookup(l+3,'total rate QCD'//weights_info(kk),
58 & 1.0d0,0.5d0,5.5d0)
59 call bookup(l+4,'total rate EW '//weights_info(kk),
60 & 1.0d0,0.5d0,5.5d0)
61 enddo
62 return
63 end
64
65
66cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
67 subroutine analysis_end(xnorm)
68cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
69c This subroutine is called once at the end of the run. Here the
70c histograms are written to disk. Note that this is done for each
71c integration channel separately. There is an external script that will
72c read the top drawer files in each of the integration channels and
73c combines them by summing all the bins in a final single top-drawer
74c file to be put in the Events/run_XX directory.
75c
76c The histograms are put in a format to be written to file. Use the
77c multitop() subroutine.
78c o) The first argument is the histogram label
79c o) The second and third arguments are not used (keep them to the
80c default 3,2)
81c o) Fourth argument is the label for the x-axis. Do not use
82c brackets "(" or ")" inside this string.
83c o) Fifth argument is the y-axis
84c o) Final argument declares if the y-axis should be a linear 'LIN'
85c or logarithmic 'LOG' scale.
86 implicit none
87 character*14 ytit
88 double precision xnorm
89 integer i
90c Local variables
91 integer kk,l,nwgt_analysis
92 common/c_analysis/nwgt_analysis
93c This defines NPLOTS:
94 include 'dbook.inc'
95c Open the topdrawer file to write the histograms (do not remove the
96c next to calls)
97 call open_topdrawer_file
98 call mclear
99c Do not touch the folloing 4 lines. These lines make sure that the
100c histograms will have the correct overall normalisation: cross section
101c (in pb) per bin.
102 do i=1,NPLOTS
103 call mopera(i,'+',i,i,xnorm,0.d0)
104 call mfinal(i)
105 enddo
106 ytit='sigma per bin '
107c Loop over the plots that are declared with bookup
108 do kk=1,nwgt_analysis
109 l=(kk-1)*4
110 do i=1,8
111c convert them to a format suitable for writing
112 call multitop(l+i,3,2,'total rate',ytit,'LIN')
113 enddo
114 enddo
115c Close the topdrawer file (Do not remove this call)
116 call close_topdrawer_file
117 return
118 end
119
120
121
122cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
123 subroutine analysis_fill(p,istatus,ipdg,wgts,ibody)
124cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
125c This subroutine is called for each n-body and (n+1)-body configuration
126c that passes the generation cuts. Here the histrograms are filled.
127 implicit none
128c This includes the 'nexternal' parameter that labels the number of
129c particles in the (n+1)-body process
130 include 'nexternal.inc'
131c This is an array which is '-1' for initial state and '1' for final
132c state particles
133 integer istatus(nexternal)
134c This is an array with (simplified) PDG codes for the particles. Note
135c that channels that are combined (i.e. they have the same matrix
136c elements) are given only 1 set of PDG codes. This means, e.g., that
137c when using a 5-flavour scheme calculation (massless b quark), no
138c b-tagging can be applied.
139 integer iPDG(nexternal)
140c The array of the momenta and masses of the initial and final state
141c particles in the lab frame. The format is "E, px, py, pz, mass", while
142c the second dimension loops over the particles in the process. Note
143c that these are the (n+1)-body particles; for the n-body there is one
144c momenta equal to all zero's (this is not necessarily the last particle
145c in the list). If one uses IR-safe obserables only, there should be no
146c difficulty in using this.
147 double precision p(0:4,nexternal)
148c The weight of the current phase-space point is wgts(1). If scale
149c and/or PDF uncertainties are included through reweighting, the rest of
150c the array contains the list of weights in the same order as described
151c by the weigths_info strings in analysis_begin
152 double precision wgts(*)
153c The ibody variable is:
154c ibody=1 : (n+1)-body contribution
155c ibody=2 : n-body contribution (excluding the Born)
156c ibody=3 : Born contribution
157c The histograms need to be filled for all these contribution to get the
158c physics NLO results. (Note that the adaptive phase-space integration
159c is optimized using the sum of the contributions, therefore plotting
160c them separately might lead to larger than expected statistical
161c fluctuations).
162 integer ibody
163c local variables
164 double precision wgt,var
165 integer kk,l,nwgt_analysis
166 common/c_analysis/nwgt_analysis
167 ! stuff for plotting the different splitorders
168 integer orders_tag_plot
169 common /corderstagplot/ orders_tag_plot
170c
171c Fill the histograms here using a call to the mfill() subroutine. The
172c first argument is the histogram label, the second is the numerical
173c value of the variable to plot for the current phase-space point and
174c the final argument is the weight of the current phase-space point.
175 var=1d0
176c loop over all the weights that are computed (depends on run_card
177c parameters do_rwgt_scale and do_rwgt_pdf):
178 do kk=1,nwgt_analysis
179 wgt=wgts(kk)
180 l=(kk-1)*4
181c always fill the total rate
182 call mfill(l+1,var,wgt)
183c only fill the total rate for the Born when ibody=3
184 if (ibody.eq.3) call mfill(l+2,var,wgt)
185C fill the different partonic subchannels
186 if (orders_tag_plot.eq.402) call mfill(l+3,var,wgt)
187 if (orders_tag_plot.eq.600) call mfill(l+4,var,wgt)
188 enddo
189 return
190 end
0191
=== modified file 'Template/NLO/FixedOrderAnalysis/dbook.f'
--- Template/NLO/FixedOrderAnalysis/dbook.f 2015-03-04 10:22:46 +0000
+++ Template/NLO/FixedOrderAnalysis/dbook.f 2021-01-08 10:23:50 +0000
@@ -124,11 +124,11 @@
124c initialization124c initialization
125 IMPLICIT NONE125 IMPLICIT NONE
126 include 'dbook.inc'126 include 'dbook.inc'
127c APPLgrid commons127c PineAPPL commons
128 include "reweight_appl.inc"128 include "reweight_pineappl.inc"
129 include "appl_common.inc"129 include "pineappl_common.inc"
130 integer iappl130 logical pineappl
131 common /for_applgrid/ iappl131 common /for_pineappl/ pineappl
132c132c
133c LOCAL133c LOCAL
134c134c
@@ -139,8 +139,8 @@
139 NHIST=0139 NHIST=0
140 DO 1, I=1,NPLOTS 140 DO 1, I=1,NPLOTS
141 1 BOOK(I)=' NO'141 1 BOOK(I)=' NO'
142C Initialize the number of bins of the aMCfast grids142C Initialize the number of bins of the amcblast grids
143 if(iappl.ne.0) appl_obs_nbins = 0143 if(pineappl) appl_obs_nbins = 0
144 END 144 END
145 145
146146
@@ -1001,20 +1001,19 @@
1001 implicit none1001 implicit none
1002 integer n,n_by41002 integer n,n_by4
1003 double precision var,www1003 double precision var,www
1004c APPLgrid commons1004c PineAPPL commons
1005 include "reweight_appl.inc"1005 include "reweight_pineappl.inc"
1006 include "appl_common.inc"1006 include "pineappl_common.inc"
1007 integer iappl1007 logical pineappl
1008 common /for_applgrid/ iappl1008 common /for_pineappl/ pineappl
1009 integer j1009 integer j
1010 if(iappl.ne.0)then1010 if(pineappl)then
1011 do j=1,nh_obs1011 do j=1,nh_obs
1012 if(n.eq.ih_obs(j))then1012 if(n.eq.ih_obs(j))then
1013 appl_obs_num = j1013 appl_obs_num = j
1014 appl_obs_histo = var 1014 appl_obs_histo = var
1015c Fill the reference APPLgrid histograms1015c Fill the reference PineAPPL histograms
1016 call APPL_fill_ref1016c Fill the PineAPPL files
1017c Fill the APPLgrid files
1018 call APPL_fill1017 call APPL_fill
1019 endif1018 endif
1020 enddo1019 enddo
@@ -1029,15 +1028,15 @@
1029 integer i,n,n_by41028 integer i,n,n_by4
1030 character*(*) string1029 character*(*) string
1031 double precision del,xl,xu1030 double precision del,xl,xu
1032c APPLgrid commons1031c PineAPPL commons
1033 include "reweight_appl.inc"1032 include "reweight_pineappl.inc"
1034 include "appl_common.inc"1033 include "pineappl_common.inc"
1035 integer iappl1034 logical pineappl
1036 common /for_applgrid/ iappl1035 common /for_pineappl/ pineappl
1037c Initialize the grids only if the switch "iappl" is different from zero1036c Initialize the grids only if the switch "pineappl" is different from zero
1038c and if the title string containes the word "central" and does not contain1037c and if the title string containes the word "central" and does not contain
1039c the word "Born". 1038c the word "Born".
1040 if(iappl.ne.0.and.index(string,"central").ne.0.and.1039 if(pineappl.and.index(string,"central").ne.0.and.
1041 1 index(string,"Born").eq.0)then1040 1 index(string,"Born").eq.0)then
1042c Observable parameters1041c Observable parameters
1043c Compute number of bins and edges only if they have not been given by the user.1042c Compute number of bins and edges only if they have not been given by the user.
@@ -1051,11 +1050,11 @@
1051 appl_obs_min = appl_obs_bins(0)1050 appl_obs_min = appl_obs_bins(0)
1052 appl_obs_max = appl_obs_bins(appl_obs_nbins)1051 appl_obs_max = appl_obs_bins(appl_obs_nbins)
1053 if(abs(appl_obs_max-xu).gt.0.00000001d0)then1052 if(abs(appl_obs_max-xu).gt.0.00000001d0)then
1054 write(*,*) 'APPLgrid Histogram: ', 1053 write(*,*) 'PineAPPL Histogram: ',
1055 1 'Change of the upper limit:',xu,'-->',1054 1 'Change of the upper limit:',xu,'-->',
1056 2 appl_obs_max1055 2 appl_obs_max
1057 endif1056 endif
1058c Initialize APPLgrid routines1057c Initialize PineAPPL routines
1059 call APPL_init1058 call APPL_init
1060c Keep track of the position of this histogram1059c Keep track of the position of this histogram
1061 nh_obs = nh_obs + 11060 nh_obs = nh_obs + 1
@@ -1072,17 +1071,16 @@
1072 implicit none1071 implicit none
1073 integer n,n_by4,m_by41072 integer n,n_by4,m_by4
1074 character*(*) string1,string2,string31073 character*(*) string1,string2,string3
1075c APPLgrid commons1074c PineAPPL commons
1076 include "reweight_appl.inc"1075 include "reweight_pineappl.inc"
1077 include "appl_common.inc"1076 include "pineappl_common.inc"
1078 integer iappl1077 logical pineappl
1079 common /for_applgrid/ iappl1078 common /for_pineappl/ pineappl
1080 integer j1079 integer j
1081 if(iappl.ne.0)then1080 if(pineappl)then
1082 do j=1,nh_obs1081 do j=1,nh_obs
1083 if(n.eq.ih_obs(j))then1082 if(n.eq.ih_obs(j))then
1084 appl_obs_num = j1083 appl_obs_num = j
1085 call APPL_fill_ref_out
1086 call APPL_term1084 call APPL_term
1087 endif1085 endif
1088 enddo1086 enddo
@@ -1098,17 +1096,16 @@
1098 implicit none1096 implicit none
1099 integer n,n_by4,lr,lh,m_by41097 integer n,n_by4,lr,lh,m_by4
1100 character*(*) string1,string2,string31098 character*(*) string1,string2,string3
1101c APPLgrid commons1099c PineAPPL commons
1102 include "reweight_appl.inc"1100 include "reweight_pineappl.inc"
1103 include "appl_common.inc"1101 include "pineappl_common.inc"
1104 integer iappl1102 logical pineappl
1105 common /for_applgrid/ iappl1103 common /for_pineappl/ pineappl
1106 integer j1104 integer j
1107 if(iappl.ne.0)then1105 if(pineappl)then
1108 do j=1,nh_obs1106 do j=1,nh_obs
1109 if(n.eq.ih_obs(j))then1107 if(n.eq.ih_obs(j))then
1110 appl_obs_num = j1108 appl_obs_num = j
1111 call APPL_fill_ref_out
1112 call APPL_term1109 call APPL_term
1113 endif1110 endif
1114 enddo1111 enddo
11151112
=== modified file 'Template/NLO/FixedOrderAnalysis/rbook_fe8.f'
--- Template/NLO/FixedOrderAnalysis/rbook_fe8.f 2014-06-30 10:49:23 +0000
+++ Template/NLO/FixedOrderAnalysis/rbook_fe8.f 2021-01-08 10:23:50 +0000
@@ -95,24 +95,24 @@
95 integer id,nbin95 integer id,nbin
96 double precision xbin,xlo,xhi96 double precision xbin,xlo,xhi
9797
98c APPLgrid commons98c PineAPPL commons
99 include "reweight_appl.inc"99 include "reweight_pineappl.inc"
100 include "appl_common.inc"100 include "pineappl_common.inc"
101 integer iappl101 logical pineappl
102 common /for_applgrid/ iappl102 common /for_pineappl/ pineappl
103103
104 nbin = int((xhi-xlo)/(xbin*0.9999d0))104 nbin = int((xhi-xlo)/(xbin*0.9999d0))
105105
106c Initialize the grids only if the switch "iappl" is different from zero106c Initialize the grids only if the switch "pineappl" is different from zero
107c and if the title string containes the word "central" and does not contain107c and if the title string containes the word "central" and does not contain
108c the word "Born".108c the word "Born".
109 if(iappl.ne.0.and.index(name,"central").ne.0.and.109 if(pineappl.and.index(name,"central").ne.0.and.
110 1 index(name,"Born").eq.0)then110 1 index(name,"Born").eq.0)then
111c Observable parameters111c Observable parameters
112 appl_obs_nbins = nbin112 appl_obs_nbins = nbin
113 appl_obs_min = xlo113 appl_obs_min = xlo
114 appl_obs_max = xhi114 appl_obs_max = xhi
115c Initialize APPLgrid routines115c Initialize PineAPPL routines
116 call APPL_init116 call APPL_init
117c Keep track of the position of this histogram117c Keep track of the position of this histogram
118 nh_obs = nh_obs + 1118 nh_obs = nh_obs + 1
@@ -150,21 +150,20 @@
150 integer ihisto150 integer ihisto
151 double precision xval,wgt151 double precision xval,wgt
152152
153c APPLgrid commons153c PineAPPL commons
154 include "reweight_appl.inc"154 include "reweight_pineappl.inc"
155 include "appl_common.inc"155 include "pineappl_common.inc"
156 integer iappl156 logical pineappl
157 common /for_applgrid/ iappl157 common /for_pineappl/ pineappl
158 integer j158 integer j
159c159c
160 if(iappl.ne.0)then160 if(pineappl)then
161 do j=1,nh_obs161 do j=1,nh_obs
162 if(ihisto.eq.ih_obs(j))then162 if(ihisto.eq.ih_obs(j))then
163 appl_obs_num = j163 appl_obs_num = j
164 appl_obs_histo = xval164 appl_obs_histo = xval
165c Fill the reference APPLgrid histograms165c Fill the reference PineAPPL histograms
166 call APPL_fill_ref166c Fill the PineAPPL files
167c Fill the APPLgrid files
168 call APPL_fill167 call APPL_fill
169 endif168 endif
170 enddo169 enddo
@@ -198,17 +197,16 @@
198 character*(*) oper197 character*(*) oper
199 double precision x,y198 double precision x,y
200199
201c APPLgrid commons200c PineAPPL commons
202 include "reweight_appl.inc"201 include "reweight_pineappl.inc"
203 include "appl_common.inc"202 include "pineappl_common.inc"
204 integer iappl203 logical pineappl
205 common /for_applgrid/ iappl204 common /for_pineappl/ pineappl
206 integer j205 integer j
207 if(iappl.ne.0)then206 if(pineappl)then
208 do j=1,nh_obs207 do j=1,nh_obs
209 if(ih1.eq.ih_obs(j))then208 if(ih1.eq.ih_obs(j))then
210 appl_obs_num = j209 appl_obs_num = j
211 call APPL_fill_ref_out
212 call APPL_term210 call APPL_term
213 endif211 endif
214 enddo212 enddo
215213
=== modified file 'Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_V.f'
--- Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_V.f 2017-02-02 08:59:42 +0000
+++ Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_V.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE HWABEG27 SUBROUTINE HWABEG
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 INCLUDE 'HERWIG65.INC'31 INCLUDE 'HERWIG65.INC'
31 include 'reweight0.inc'32 include 'reweight0.inc'
32 real * 8 xm0,gam,xmlow,xmupp,bin33 real * 8 xm0,gam,xmlow,xmupp,bin
@@ -49,7 +50,7 @@
49 integer nwgt,max_weight,nwgt_analysis50 integer nwgt,max_weight,nwgt_analysis
50 common/cnwgt/nwgt51 common/cnwgt/nwgt
51 common/c_analysis/nwgt_analysis52 common/c_analysis/nwgt_analysis
52 character*50 weights_info(max_weight_shower)53 character*(wgts_info_len) weights_info(max_weight_shower)
53 common/cwgtsinfo/weights_info54 common/cwgtsinfo/weights_info
54c Initialize histograms55c Initialize histograms
55 call HwU_inithist(nwgt,weights_info)56 call HwU_inithist(nwgt,weights_info)
5657
=== modified file 'Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_h.f'
--- Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_h.f 2016-03-21 08:45:42 +0000
+++ Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_h.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE HWABEG27 SUBROUTINE HWABEG
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 INCLUDE 'HERWIG65.INC'31 INCLUDE 'HERWIG65.INC'
31 include 'reweight0.inc'32 include 'reweight0.inc'
32c33c
@@ -46,7 +47,7 @@
46 integer nwgt,max_weight,nwgt_analysis,kk,l47 integer nwgt,max_weight,nwgt_analysis,kk,l
47 common/cnwgt/nwgt48 common/cnwgt/nwgt
48 common/c_analysis/nwgt_analysis49 common/c_analysis/nwgt_analysis
49 character*50 weights_info(max_weight_shower)50 character*(wgts_info_len) weights_info(max_weight_shower)
50 common/cwgtsinfo/weights_info51 common/cwgtsinfo/weights_info
51c Initialize histograms52c Initialize histograms
52 call HwU_inithist(nwgt,weights_info)53 call HwU_inithist(nwgt,weights_info)
5354
=== modified file 'Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_hjj.f'
--- Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_hjj.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_hjj.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE HWABEG27 SUBROUTINE HWABEG
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 INCLUDE 'HERWIG65.INC'31 INCLUDE 'HERWIG65.INC'
31 include 'reweight0.inc'32 include 'reweight0.inc'
32c33c
@@ -51,7 +52,7 @@
51 common /to_veto_hist/vetomin,vetomax,nbinveto52 common /to_veto_hist/vetomin,vetomax,nbinveto
52 common/cnwgt/nwgt53 common/cnwgt/nwgt
53 common/c_analysis/nwgt_analysis54 common/c_analysis/nwgt_analysis
54 character*50 weights_info(max_weight_shower)55 character*(wgts_info_len) weights_info(max_weight_shower)
55 common/cwgtsinfo/weights_info56 common/cwgtsinfo/weights_info
56c Initialize histograms57c Initialize histograms
57 call HwU_inithist(nwgt,weights_info)58 call HwU_inithist(nwgt,weights_info)
5859
=== modified file 'Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_leptons.f'
--- Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_leptons.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_leptons.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE HWABEG27 SUBROUTINE HWABEG
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 INCLUDE 'HERWIG65.INC'31 INCLUDE 'HERWIG65.INC'
31 include 'reweight0.inc'32 include 'reweight0.inc'
32c33c
@@ -60,7 +61,7 @@
60 integer nwgt,max_weight,nwgt_analysis61 integer nwgt,max_weight,nwgt_analysis
61 common/cnwgt/nwgt62 common/cnwgt/nwgt
62 common/c_analysis/nwgt_analysis63 common/c_analysis/nwgt_analysis
63 character*50 weights_info(max_weight_shower)64 character*(wgts_info_len) weights_info(max_weight_shower)
64 common/cwgtsinfo/weights_info65 common/cwgtsinfo/weights_info
65c Initialize histograms66c Initialize histograms
66 call HwU_inithist(nwgt,weights_info)67 call HwU_inithist(nwgt,weights_info)
6768
=== modified file 'Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_lplm.f'
--- Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_lplm.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_lplm.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE HWABEG27 SUBROUTINE HWABEG
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 INCLUDE 'HERWIG65.INC'31 INCLUDE 'HERWIG65.INC'
31 include 'reweight0.inc'32 include 'reweight0.inc'
32 real * 8 bin,xmi,xms,pi33 real * 8 bin,xmi,xms,pi
@@ -48,7 +49,7 @@
48 integer nwgt,max_weight,nwgt_analysis49 integer nwgt,max_weight,nwgt_analysis
49 common/cnwgt/nwgt50 common/cnwgt/nwgt
50 common/c_analysis/nwgt_analysis51 common/c_analysis/nwgt_analysis
51 character*50 weights_info(max_weight_shower)52 character*(wgts_info_len) weights_info(max_weight_shower)
52 common/cwgtsinfo/weights_info53 common/cwgtsinfo/weights_info
53c Initialize histograms54c Initialize histograms
54 call HwU_inithist(nwgt,weights_info)55 call HwU_inithist(nwgt,weights_info)
5556
=== modified file 'Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_lvl.f'
--- Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_lvl.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_lvl.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE HWABEG27 SUBROUTINE HWABEG
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 INCLUDE 'HERWIG65.INC'31 INCLUDE 'HERWIG65.INC'
31 include 'reweight0.inc'32 include 'reweight0.inc'
32 real * 8 bin,xmi,xms,pi33 real * 8 bin,xmi,xms,pi
@@ -48,7 +49,7 @@
48 integer nwgt,max_weight,nwgt_analysis49 integer nwgt,max_weight,nwgt_analysis
49 common/cnwgt/nwgt50 common/cnwgt/nwgt
50 common/c_analysis/nwgt_analysis51 common/c_analysis/nwgt_analysis
51 character*50 weights_info(max_weight_shower)52 character*(wgts_info_len) weights_info(max_weight_shower)
52 common/cwgtsinfo/weights_info53 common/cwgtsinfo/weights_info
53c Initialize histograms54c Initialize histograms
54 call HwU_inithist(nwgt,weights_info)55 call HwU_inithist(nwgt,weights_info)
5556
=== modified file 'Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_taptam.f'
--- Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_taptam.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_taptam.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE HWABEG27 SUBROUTINE HWABEG
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 INCLUDE 'HERWIG65.INC'31 INCLUDE 'HERWIG65.INC'
31 include 'reweight0.inc'32 include 'reweight0.inc'
32c33c
@@ -46,7 +47,7 @@
46 integer nwgt,max_weight,nwgt_analysis,kk,l47 integer nwgt,max_weight,nwgt_analysis,kk,l
47 common/cnwgt/nwgt48 common/cnwgt/nwgt
48 common/c_analysis/nwgt_analysis49 common/c_analysis/nwgt_analysis
49 character*50 weights_info(max_weight_shower)50 character*(wgts_info_len) weights_info(max_weight_shower)
50 common/cwgtsinfo/weights_info51 common/cwgtsinfo/weights_info
51c Initialize histograms52c Initialize histograms
52 call HwU_inithist(nwgt,weights_info)53 call HwU_inithist(nwgt,weights_info)
5354
=== modified file 'Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_tj.f'
--- Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_tj.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_tj.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE HWABEG27 SUBROUTINE HWABEG
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 INCLUDE 'HERWIG65.INC'31 INCLUDE 'HERWIG65.INC'
31 include 'reweight0.inc'32 include 'reweight0.inc'
32 REAL*8 pi33 REAL*8 pi
@@ -46,7 +47,7 @@
46 integer nwgt,max_weight,nwgt_analysis47 integer nwgt,max_weight,nwgt_analysis
47 common/cnwgt/nwgt48 common/cnwgt/nwgt
48 common/c_analysis/nwgt_analysis49 common/c_analysis/nwgt_analysis
49 character*50 weights_info(max_weight_shower)50 character*(wgts_info_len) weights_info(max_weight_shower)
50 common/cwgtsinfo/weights_info51 common/cwgtsinfo/weights_info
51c Initialize histograms52c Initialize histograms
52 call HwU_inithist(nwgt,weights_info)53 call HwU_inithist(nwgt,weights_info)
5354
=== modified file 'Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_ttx.f'
--- Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_ttx.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_ttx.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE HWABEG27 SUBROUTINE HWABEG
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 INCLUDE 'HERWIG65.INC'31 INCLUDE 'HERWIG65.INC'
31 include 'reweight0.inc'32 include 'reweight0.inc'
32 REAL*8 pi33 REAL*8 pi
@@ -46,7 +47,7 @@
46 integer nwgt,max_weight,nwgt_analysis47 integer nwgt,max_weight,nwgt_analysis
47 common/cnwgt/nwgt48 common/cnwgt/nwgt
48 common/c_analysis/nwgt_analysis49 common/c_analysis/nwgt_analysis
49 character*50 weights_info(max_weight_shower)50 character*(wgts_info_len) weights_info(max_weight_shower)
50 common/cwgtsinfo/weights_info51 common/cwgtsinfo/weights_info
51c Initialize histograms52c Initialize histograms
52 call HwU_inithist(nwgt,weights_info)53 call HwU_inithist(nwgt,weights_info)
5354
=== modified file 'Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_ttx_v2.f'
--- Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_ttx_v2.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_ttx_v2.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE HWABEG27 SUBROUTINE HWABEG
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 INCLUDE 'HERWIG65.INC'31 INCLUDE 'HERWIG65.INC'
31 include 'reweight0.inc'32 include 'reweight0.inc'
32 REAL*8 pi33 REAL*8 pi
@@ -46,7 +47,7 @@
46 integer nwgt,max_weight,nwgt_analysis47 integer nwgt,max_weight,nwgt_analysis
47 common/cnwgt/nwgt48 common/cnwgt/nwgt
48 common/c_analysis/nwgt_analysis49 common/c_analysis/nwgt_analysis
49 character*50 weights_info(max_weight_shower)50 character*(wgts_info_len) weights_info(max_weight_shower)
50 common/cwgtsinfo/weights_info51 common/cwgtsinfo/weights_info
51c Initialize histograms52c Initialize histograms
52 call HwU_inithist(nwgt,weights_info)53 call HwU_inithist(nwgt,weights_info)
5354
=== modified file 'Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_rates.f'
--- Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_rates.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_rates.f 2021-01-08 10:23:50 +0000
@@ -23,6 +23,7 @@
23 SUBROUTINE HWABEG23 SUBROUTINE HWABEG
24C USER''S ROUTINE FOR INITIALIZATION24C USER''S ROUTINE FOR INITIALIZATION
25C----------------------------------------------------------------------25C----------------------------------------------------------------------
26 use HwU_wgts_info_len
26 INCLUDE 'HERWIG65.INC'27 INCLUDE 'HERWIG65.INC'
27 include 'reweight0.inc'28 include 'reweight0.inc'
28c29c
@@ -42,7 +43,7 @@
42 integer nwgt,max_weight,nwgt_analysis43 integer nwgt,max_weight,nwgt_analysis
43 common/cnwgt/nwgt44 common/cnwgt/nwgt
44 common/c_analysis/nwgt_analysis45 common/c_analysis/nwgt_analysis
45 character*50 weights_info(max_weight_shower)46 character*(wgts_info_len) weights_info(max_weight_shower)
46 common/cwgtsinfo/weights_info47 common/cwgtsinfo/weights_info
47c Initialize histograms48c Initialize histograms
48 call HwU_inithist(nwgt,weights_info)49 call HwU_inithist(nwgt,weights_info)
4950
=== modified file 'Template/NLO/MCatNLO/Makefile_MadFKS'
--- Template/NLO/MCatNLO/Makefile_MadFKS 2018-07-06 13:15:54 +0000
+++ Template/NLO/MCatNLO/Makefile_MadFKS 2021-01-08 10:23:50 +0000
@@ -43,10 +43,10 @@
43PDFFILES=$(OBJDIR)/mcatnlo_pdftomlm.o $(OBJDIR)/mcatnlo_libofpdf.o $(OBJDIR)/dummies.o43PDFFILES=$(OBJDIR)/mcatnlo_pdftomlm.o $(OBJDIR)/mcatnlo_libofpdf.o $(OBJDIR)/dummies.o
44CPDFFILES=$(OBJDIR)/mcatnlo_mlmtopdf.o $(OBJDIR)/dummies.o44CPDFFILES=$(OBJDIR)/mcatnlo_mlmtopdf.o $(OBJDIR)/dummies.o
45LPDFFILES=$(OBJDIR)/mcatnlo_mlmtolha.o $(OBJDIR)/dummies.o45LPDFFILES=$(OBJDIR)/mcatnlo_mlmtolha.o $(OBJDIR)/dummies.o
46HWFILES=$(OBJDIR)/$(HERWIGVER) $(OBJDIR)/madfks_hwdriver.o $(OBJDIR)/madfks_hwlhin.o \46HWFILES=$(HWUTI) $(OBJDIR)/$(HERWIGVER) $(OBJDIR)/madfks_hwdriver.o $(OBJDIR)/madfks_hwlhin.o \
47 $(OBJDIR)/mcatnlo_str.o $(HWUTI)47 $(OBJDIR)/mcatnlo_str.o
48PYFILES=$(OBJDIR)/$(PYTHIAVER) $(OBJDIR)/madfks_pydriver.o $(OBJDIR)/madfks_pylhin.o \48PYFILES=$(PYUTI) $(OBJDIR)/$(PYTHIAVER) $(OBJDIR)/madfks_pydriver.o $(OBJDIR)/madfks_pylhin.o \
49 $(OBJDIR)/mcatnlo_str.o $(PYUTI)49 $(OBJDIR)/mcatnlo_str.o
5050
5151
52HW_EXE_DEFAULT : $(HWFILES) $(PDFFILES)52HW_EXE_DEFAULT : $(HWFILES) $(PDFFILES)
5353
=== modified file 'Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_V.f'
--- Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_V.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_V.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE PYABEG(nnn,wwwi)27 SUBROUTINE PYABEG(nnn,wwwi)
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 INCLUDE 'HEPMC.INC'31 INCLUDE 'HEPMC.INC'
31 include 'reweight0.inc'32 include 'reweight0.inc'
32 real * 8 xm0,gam,xmlow,xmupp,bin33 real * 8 xm0,gam,xmlow,xmupp,bin
@@ -48,7 +49,7 @@
48 data cc/' ','Born '/49 data cc/' ','Born '/
49 integer nwgt_analysis50 integer nwgt_analysis
50 common/c_analysis/nwgt_analysis51 common/c_analysis/nwgt_analysis
51 character*50 weights_info(max_weight_shower)52 character*(wgts_info_len) weights_info(max_weight_shower)
52 $ ,wwwi(max_weight_shower)53 $ ,wwwi(max_weight_shower)
53c54c
54 do i=1,nnn55 do i=1,nnn
5556
=== modified file 'Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_h.f'
--- Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_h.f 2016-07-21 14:37:54 +0000
+++ Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_h.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE PYABEG(nnn,wwwi)27 SUBROUTINE PYABEG(nnn,wwwi)
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 INCLUDE 'HEPMC.INC'31 INCLUDE 'HEPMC.INC'
31 include 'reweight0.inc'32 include 'reweight0.inc'
32 REAL*8 pi33 REAL*8 pi
@@ -45,7 +46,7 @@
45 data HwUtype/'|T@NOCUT','|T@CUT '/46 data HwUtype/'|T@NOCUT','|T@CUT '/
46 integer nwgt_analysis47 integer nwgt_analysis
47 common/c_analysis/nwgt_analysis48 common/c_analysis/nwgt_analysis
48 character*50 weights_info(max_weight_shower)49 character*(wgts_info_len) weights_info(max_weight_shower)
49 $ ,wwwi(max_weight_shower)50 $ ,wwwi(max_weight_shower)
50c51c
51 do i=1,nnn52 do i=1,nnn
5253
=== modified file 'Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_hjj.f'
--- Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_hjj.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_hjj.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE PYABEG(nnn,wwwi)27 SUBROUTINE PYABEG(nnn,wwwi)
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 INCLUDE 'HEPMC.INC'31 INCLUDE 'HEPMC.INC'
31 include 'reweight0.inc'32 include 'reweight0.inc'
32 REAL*8 pi33 REAL*8 pi
@@ -45,7 +46,7 @@
45 data HwUtype/'|T@NOCUT','|T@CUT '/46 data HwUtype/'|T@NOCUT','|T@CUT '/
46 integer nwgt_analysis47 integer nwgt_analysis
47 common/c_analysis/nwgt_analysis48 common/c_analysis/nwgt_analysis
48 character*50 weights_info(max_weight_shower)49 character*(wgts_info_len) weights_info(max_weight_shower)
49 $ ,wwwi(max_weight_shower)50 $ ,wwwi(max_weight_shower)
50 character*8 cc(2)51 character*8 cc(2)
51 data cc/' ','vbfcuts '/52 data cc/' ','vbfcuts '/
5253
=== modified file 'Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_leptons.f'
--- Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_leptons.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_leptons.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE PYABEG(nnn,wwwi)27 SUBROUTINE PYABEG(nnn,wwwi)
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 INCLUDE 'HEPMC.INC'31 INCLUDE 'HEPMC.INC'
31 include 'reweight0.inc'32 include 'reweight0.inc'
32c33c
@@ -43,7 +44,7 @@
43 integer j,jpr44 integer j,jpr
44 integer nwgt_analysis45 integer nwgt_analysis
45 common/c_analysis/nwgt_analysis46 common/c_analysis/nwgt_analysis
46 character*50 weights_info(max_weight_shower)47 character*(wgts_info_len) weights_info(max_weight_shower)
47 $ ,wwwi(max_weight_shower)48 $ ,wwwi(max_weight_shower)
48 integer nsingle,ncorr,nlepton,nplots,ncuts49 integer nsingle,ncorr,nlepton,nplots,ncuts
49 common/cplots/nsingle,ncorr,nlepton,nplots,ncuts50 common/cplots/nsingle,ncorr,nlepton,nplots,ncuts
5051
=== modified file 'Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_lplm.f'
--- Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_lplm.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_lplm.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE PYABEG(nnn,wwwi)27 SUBROUTINE PYABEG(nnn,wwwi)
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 INCLUDE 'HEPMC.INC'31 INCLUDE 'HEPMC.INC'
31 include 'reweight0.inc'32 include 'reweight0.inc'
32 real * 8 bin,xmi,xms,pi33 real * 8 bin,xmi,xms,pi
@@ -47,7 +48,7 @@
47 data cc/' ','Born '/48 data cc/' ','Born '/
48 integer nwgt_analysis49 integer nwgt_analysis
49 common/c_analysis/nwgt_analysis50 common/c_analysis/nwgt_analysis
50 character*50 weights_info(max_weight_shower)51 character*(wgts_info_len) weights_info(max_weight_shower)
51 $ ,wwwi(max_weight_shower)52 $ ,wwwi(max_weight_shower)
52c53c
53 do i=1,nnn54 do i=1,nnn
5455
=== modified file 'Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_lvl.f'
--- Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_lvl.f 2016-12-07 21:05:19 +0000
+++ Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_lvl.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE PYABEG(nnn,wwwi)27 SUBROUTINE PYABEG(nnn,wwwi)
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 INCLUDE 'HEPMC.INC'31 INCLUDE 'HEPMC.INC'
31 include 'reweight0.inc'32 include 'reweight0.inc'
32 real * 8 bin,xmi,xms,pi33 real * 8 bin,xmi,xms,pi
@@ -47,7 +48,7 @@
47 data cc/' ','Born '/48 data cc/' ','Born '/
48 integer nwgt_analysis49 integer nwgt_analysis
49 common/c_analysis/nwgt_analysis50 common/c_analysis/nwgt_analysis
50 character*50 weights_info(max_weight_shower)51 character*(wgts_info_len) weights_info(max_weight_shower)
51 $ ,wwwi(max_weight_shower)52 $ ,wwwi(max_weight_shower)
52c53c
53 do i=1,nnn54 do i=1,nnn
5455
=== modified file 'Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_taptam.f'
--- Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_taptam.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_taptam.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE PYABEG(nnn,wwwi)27 SUBROUTINE PYABEG(nnn,wwwi)
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 INCLUDE 'HEPMC.INC'31 INCLUDE 'HEPMC.INC'
31 include 'reweight0.inc'32 include 'reweight0.inc'
32 integer j,kk,l,i,nnn33 integer j,kk,l,i,nnn
@@ -43,7 +44,7 @@
43 data HwUtype/'|T@NOCUT','|T@CUT '/44 data HwUtype/'|T@NOCUT','|T@CUT '/
44 integer nwgt_analysis45 integer nwgt_analysis
45 common/c_analysis/nwgt_analysis46 common/c_analysis/nwgt_analysis
46 character*50 weights_info(max_weight_shower)47 character*(wgts_info_len) weights_info(max_weight_shower)
47 $ ,wwwi(max_weight_shower)48 $ ,wwwi(max_weight_shower)
48c49c
49 do i=1,nnn50 do i=1,nnn
5051
=== modified file 'Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_tj.f'
--- Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_tj.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_tj.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE PYABEG(nnn,wwwi)27 SUBROUTINE PYABEG(nnn,wwwi)
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 INCLUDE 'HEPMC.INC'31 INCLUDE 'HEPMC.INC'
31 include 'reweight0.inc'32 include 'reweight0.inc'
32 REAL*8 pi33 REAL*8 pi
@@ -45,7 +46,7 @@
45 data HwUtype/'|T@NOCUT','|T@CUT '/46 data HwUtype/'|T@NOCUT','|T@CUT '/
46 integer nwgt_analysis47 integer nwgt_analysis
47 common/c_analysis/nwgt_analysis48 common/c_analysis/nwgt_analysis
48 character*50 weights_info(max_weight_shower)49 character*(wgts_info_len) weights_info(max_weight_shower)
49 $ ,wwwi(max_weight_shower)50 $ ,wwwi(max_weight_shower)
50c51c
51 do i=1,nnn52 do i=1,nnn
5253
=== modified file 'Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_ttx.f'
--- Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_ttx.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_ttx.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE PYABEG(nnn,wwwi)27 SUBROUTINE PYABEG(nnn,wwwi)
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 INCLUDE 'HEPMC.INC'31 INCLUDE 'HEPMC.INC'
31 include 'reweight0.inc'32 include 'reweight0.inc'
32 REAL*8 pi33 REAL*8 pi
@@ -45,7 +46,7 @@
45 data HwUtype/'|T@NOCUT','|T@CUT '/46 data HwUtype/'|T@NOCUT','|T@CUT '/
46 integer nwgt_analysis47 integer nwgt_analysis
47 common/c_analysis/nwgt_analysis48 common/c_analysis/nwgt_analysis
48 character*50 weights_info(max_weight_shower)49 character*(wgts_info_len) weights_info(max_weight_shower)
49 $ ,wwwi(max_weight_shower)50 $ ,wwwi(max_weight_shower)
50c51c
51 do i=1,nnn52 do i=1,nnn
5253
=== modified file 'Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_ttx_v2.f'
--- Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_ttx_v2.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_ttx_v2.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE PYABEG(nnn,wwwi)27 SUBROUTINE PYABEG(nnn,wwwi)
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 INCLUDE 'HEPMC.INC'31 INCLUDE 'HEPMC.INC'
31 include 'reweight0.inc'32 include 'reweight0.inc'
32 REAL*8 pi33 REAL*8 pi
@@ -45,7 +46,7 @@
45 data HwUtype/'|T@NOCUT','|T@CUT '/46 data HwUtype/'|T@NOCUT','|T@CUT '/
46 integer nwgt_analysis47 integer nwgt_analysis
47 common/c_analysis/nwgt_analysis48 common/c_analysis/nwgt_analysis
48 character*50 weights_info(max_weight_shower)49 character*(wgts_info_len) weights_info(max_weight_shower)
49 $ ,wwwi(max_weight_shower)50 $ ,wwwi(max_weight_shower)
50c51c
51 do i=1,nnn52 do i=1,nnn
5253
=== modified file 'Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_rates.f'
--- Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_rates.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_rates.f 2021-01-08 10:23:50 +0000
@@ -23,6 +23,7 @@
23 SUBROUTINE PYABEG(nnn,wwwi)23 SUBROUTINE PYABEG(nnn,wwwi)
24C USER''S ROUTINE FOR INITIALIZATION24C USER''S ROUTINE FOR INITIALIZATION
25C----------------------------------------------------------------------25C----------------------------------------------------------------------
26 use HwU_wgts_info_len
26 INCLUDE 'HEPMC.INC'27 INCLUDE 'HEPMC.INC'
27 include 'reweight0.inc'28 include 'reweight0.inc'
28c29c
@@ -41,7 +42,7 @@
41 data cc/' ','Born '/42 data cc/' ','Born '/
42 integer nwgt_analysis43 integer nwgt_analysis
43 common/c_analysis/nwgt_analysis44 common/c_analysis/nwgt_analysis
44 character*50 weights_info(max_weight_shower)45 character*(wgts_info_len) weights_info(max_weight_shower)
45 $ ,wwwi(max_weight_shower)46 $ ,wwwi(max_weight_shower)
46c47c
47 do i=1,nnn48 do i=1,nnn
4849
=== modified file 'Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_V.f'
--- Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_V.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_V.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE PYABEG27 SUBROUTINE PYABEG
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 implicit double precision(a-h, o-z)31 implicit double precision(a-h, o-z)
31 implicit integer(i-n)32 implicit integer(i-n)
32 common/pydat2/kchg(500,4),pmas(500,4),parf(2000),vckm(4,4)33 common/pydat2/kchg(500,4),pmas(500,4),parf(2000),vckm(4,4)
@@ -51,7 +52,7 @@
51 integer nwgt,max_weight,nwgt_analysis52 integer nwgt,max_weight,nwgt_analysis
52 common/cnwgt/nwgt53 common/cnwgt/nwgt
53 common/c_analysis/nwgt_analysis54 common/c_analysis/nwgt_analysis
54 character*50 weights_info(max_weight_shower)55 character*(wgts_info_len) weights_info(max_weight_shower)
55 common/cwgtsinfo/weights_info56 common/cwgtsinfo/weights_info
56c Initialize histograms57c Initialize histograms
57 call HwU_inithist(nwgt,weights_info)58 call HwU_inithist(nwgt,weights_info)
5859
=== modified file 'Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_h.f'
--- Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_h.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_h.f 2021-01-08 10:23:50 +0000
@@ -28,6 +28,7 @@
28 SUBROUTINE PYABEG28 SUBROUTINE PYABEG
29C USER''S ROUTINE FOR INITIALIZATION29C USER''S ROUTINE FOR INITIALIZATION
30C----------------------------------------------------------------------30C----------------------------------------------------------------------
31 use HwU_wgts_info_len
31 implicit none32 implicit none
32 include 'reweight0.inc'33 include 'reweight0.inc'
33 REAL*8 pi34 REAL*8 pi
@@ -48,7 +49,7 @@
48 integer nwgt,max_weight,nwgt_analysis49 integer nwgt,max_weight,nwgt_analysis
49 common/cnwgt/nwgt50 common/cnwgt/nwgt
50 common/c_analysis/nwgt_analysis51 common/c_analysis/nwgt_analysis
51 character*50 weights_info(max_weight_shower)52 character*(wgts_info_len) weights_info(max_weight_shower)
52 common/cwgtsinfo/weights_info53 common/cwgtsinfo/weights_info
53c54c
54c Initialize histograms55c Initialize histograms
5556
=== modified file 'Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_hjj.f'
--- Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_hjj.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_hjj.f 2021-01-08 10:23:50 +0000
@@ -28,6 +28,7 @@
28 SUBROUTINE PYABEG28 SUBROUTINE PYABEG
29C USER''S ROUTINE FOR INITIALIZATION29C USER''S ROUTINE FOR INITIALIZATION
30C----------------------------------------------------------------------30C----------------------------------------------------------------------
31 use HwU_wgts_info_len
31 implicit none32 implicit none
32 include 'reweight0.inc'33 include 'reweight0.inc'
33c34c
@@ -52,7 +53,7 @@
52 common /to_veto_hist/vetomin,vetomax,nbinveto53 common /to_veto_hist/vetomin,vetomax,nbinveto
53 common/cnwgt/nwgt54 common/cnwgt/nwgt
54 common/c_analysis/nwgt_analysis55 common/c_analysis/nwgt_analysis
55 character*50 weights_info(max_weight_shower)56 character*(wgts_info_len) weights_info(max_weight_shower)
56 common/cwgtsinfo/weights_info57 common/cwgtsinfo/weights_info
57c58c
58c Initialize histograms59c Initialize histograms
5960
=== modified file 'Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_leptons.f'
--- Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_leptons.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_leptons.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE PYABEG27 SUBROUTINE PYABEG
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 implicit none31 implicit none
31 include 'reweight0.inc'32 include 'reweight0.inc'
32c33c
@@ -59,7 +60,7 @@
59 integer nwgt,max_weight,nwgt_analysis60 integer nwgt,max_weight,nwgt_analysis
60 common/cnwgt/nwgt61 common/cnwgt/nwgt
61 common/c_analysis/nwgt_analysis62 common/c_analysis/nwgt_analysis
62 character*50 weights_info(max_weight_shower)63 character*(wgts_info_len) weights_info(max_weight_shower)
63 common/cwgtsinfo/weights_info64 common/cwgtsinfo/weights_info
64c Initialize histograms65c Initialize histograms
65 call HwU_inithist(nwgt,weights_info)66 call HwU_inithist(nwgt,weights_info)
6667
=== modified file 'Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_lplm.f'
--- Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_lplm.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_lplm.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE PYABEG27 SUBROUTINE PYABEG
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 implicit none31 implicit none
31 include 'reweight0.inc'32 include 'reweight0.inc'
32 real * 8 bin,xmi,xms,pi33 real * 8 bin,xmi,xms,pi
@@ -48,7 +49,7 @@
48 integer nwgt,max_weight,nwgt_analysis49 integer nwgt,max_weight,nwgt_analysis
49 common/cnwgt/nwgt50 common/cnwgt/nwgt
50 common/c_analysis/nwgt_analysis51 common/c_analysis/nwgt_analysis
51 character*50 weights_info(max_weight_shower)52 character*(wgts_info_len) weights_info(max_weight_shower)
52 common/cwgtsinfo/weights_info53 common/cwgtsinfo/weights_info
53c Initialize histograms54c Initialize histograms
54 call HwU_inithist(nwgt,weights_info)55 call HwU_inithist(nwgt,weights_info)
5556
=== modified file 'Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_lvl.f'
--- Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_lvl.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_lvl.f 2021-01-08 10:23:50 +0000
@@ -27,6 +27,7 @@
27 SUBROUTINE PYABEG27 SUBROUTINE PYABEG
28C USER''S ROUTINE FOR INITIALIZATION28C USER''S ROUTINE FOR INITIALIZATION
29C----------------------------------------------------------------------29C----------------------------------------------------------------------
30 use HwU_wgts_info_len
30 implicit double precision(a-h, o-z)31 implicit double precision(a-h, o-z)
31 implicit integer(i-n)32 implicit integer(i-n)
32 common/pydat2/kchg(500,4),pmas(500,4),parf(2000),vckm(4,4)33 common/pydat2/kchg(500,4),pmas(500,4),parf(2000),vckm(4,4)
@@ -50,7 +51,7 @@
50 integer nwgt,max_weight,nwgt_analysis51 integer nwgt,max_weight,nwgt_analysis
51 common/cnwgt/nwgt52 common/cnwgt/nwgt
52 common/c_analysis/nwgt_analysis53 common/c_analysis/nwgt_analysis
53 character*50 weights_info(max_weight_shower)54 character*(wgts_info_len) weights_info(max_weight_shower)
54 common/cwgtsinfo/weights_info55 common/cwgtsinfo/weights_info
55c Initialize histograms56c Initialize histograms
56 call HwU_inithist(nwgt,weights_info)57 call HwU_inithist(nwgt,weights_info)
5758
=== modified file 'Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_taptam.f'
--- Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_taptam.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_taptam.f 2021-01-08 10:23:50 +0000
@@ -28,6 +28,7 @@
28 SUBROUTINE PYABEG28 SUBROUTINE PYABEG
29C USER''S ROUTINE FOR INITIALIZATION29C USER''S ROUTINE FOR INITIALIZATION
30C----------------------------------------------------------------------30C----------------------------------------------------------------------
31 use HwU_wgts_info_len
31 implicit none32 implicit none
32 include 'reweight0.inc'33 include 'reweight0.inc'
33 integer j,kk,l,i34 integer j,kk,l,i
@@ -46,7 +47,7 @@
46 integer nwgt,max_weight,nwgt_analysis47 integer nwgt,max_weight,nwgt_analysis
47 common/cnwgt/nwgt48 common/cnwgt/nwgt
48 common/c_analysis/nwgt_analysis49 common/c_analysis/nwgt_analysis
49 character*50 weights_info(max_weight_shower)50 character*(wgts_info_len) weights_info(max_weight_shower)
50 common/cwgtsinfo/weights_info51 common/cwgtsinfo/weights_info
51c52c
52c Initialize histograms53c Initialize histograms
5354
=== modified file 'Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_tj.f'
--- Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_tj.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_tj.f 2021-01-08 10:23:50 +0000
@@ -28,6 +28,7 @@
28 SUBROUTINE PYABEG28 SUBROUTINE PYABEG
29C USER''S ROUTINE FOR INITIALIZATION29C USER''S ROUTINE FOR INITIALIZATION
30C----------------------------------------------------------------------30C----------------------------------------------------------------------
31 use HwU_wgts_info_len
31 implicit none32 implicit none
32 include 'reweight0.inc'33 include 'reweight0.inc'
33 REAL*8 pi34 REAL*8 pi
@@ -48,7 +49,7 @@
48 integer nwgt,max_weight,nwgt_analysis49 integer nwgt,max_weight,nwgt_analysis
49 common/cnwgt/nwgt50 common/cnwgt/nwgt
50 common/c_analysis/nwgt_analysis51 common/c_analysis/nwgt_analysis
51 character*50 weights_info(max_weight_shower)52 character*(wgts_info_len) weights_info(max_weight_shower)
52 common/cwgtsinfo/weights_info53 common/cwgtsinfo/weights_info
53c54c
54c Initialize histograms55c Initialize histograms
5556
=== modified file 'Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_ttx.f'
--- Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_ttx.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_ttx.f 2021-01-08 10:23:50 +0000
@@ -28,6 +28,7 @@
28 SUBROUTINE PYABEG28 SUBROUTINE PYABEG
29C USER''S ROUTINE FOR INITIALIZATION29C USER''S ROUTINE FOR INITIALIZATION
30C----------------------------------------------------------------------30C----------------------------------------------------------------------
31 use HwU_wgts_info_len
31 implicit none32 implicit none
32 include 'reweight0.inc'33 include 'reweight0.inc'
33 REAL*8 pi34 REAL*8 pi
@@ -48,7 +49,7 @@
48 integer nwgt,max_weight,nwgt_analysis49 integer nwgt,max_weight,nwgt_analysis
49 common/cnwgt/nwgt50 common/cnwgt/nwgt
50 common/c_analysis/nwgt_analysis51 common/c_analysis/nwgt_analysis
51 character*50 weights_info(max_weight_shower)52 character*(wgts_info_len) weights_info(max_weight_shower)
52 common/cwgtsinfo/weights_info53 common/cwgtsinfo/weights_info
53c54c
54c Initialize histograms55c Initialize histograms
5556
=== modified file 'Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_ttx_v2.f'
--- Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_ttx_v2.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_ttx_v2.f 2021-01-08 10:23:50 +0000
@@ -28,6 +28,7 @@
28 SUBROUTINE PYABEG28 SUBROUTINE PYABEG
29C USER''S ROUTINE FOR INITIALIZATION29C USER''S ROUTINE FOR INITIALIZATION
30C----------------------------------------------------------------------30C----------------------------------------------------------------------
31 use HwU_wgts_info_len
31 implicit none32 implicit none
32 include 'reweight0.inc'33 include 'reweight0.inc'
33 REAL*8 pi34 REAL*8 pi
@@ -48,7 +49,7 @@
48 integer nwgt,max_weight,nwgt_analysis49 integer nwgt,max_weight,nwgt_analysis
49 common/cnwgt/nwgt50 common/cnwgt/nwgt
50 common/c_analysis/nwgt_analysis51 common/c_analysis/nwgt_analysis
51 character*50 weights_info(max_weight_shower)52 character*(wgts_info_len) weights_info(max_weight_shower)
52 common/cwgtsinfo/weights_info53 common/cwgtsinfo/weights_info
53c54c
54c Initialize histograms55c Initialize histograms
5556
=== modified file 'Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_rates.f'
--- Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_rates.f 2016-02-23 10:48:46 +0000
+++ Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_rates.f 2021-01-08 10:23:50 +0000
@@ -23,6 +23,7 @@
23 SUBROUTINE PYABEG23 SUBROUTINE PYABEG
24C USER''S ROUTINE FOR INITIALIZATION24C USER''S ROUTINE FOR INITIALIZATION
25C----------------------------------------------------------------------25C----------------------------------------------------------------------
26 use HwU_wgts_info_len
26 implicit none27 implicit none
27 include 'reweight0.inc'28 include 'reweight0.inc'
28c29c
@@ -42,7 +43,7 @@
42 integer nwgt,max_weight,nwgt_analysis43 integer nwgt,max_weight,nwgt_analysis
43 common/cnwgt/nwgt44 common/cnwgt/nwgt
44 common/c_analysis/nwgt_analysis45 common/c_analysis/nwgt_analysis
45 character*50 weights_info(max_weight_shower)46 character*(wgts_info_len) weights_info(max_weight_shower)
46 common/cwgtsinfo/weights_info47 common/cwgtsinfo/weights_info
47c Initialize histograms48c Initialize histograms
48 call HwU_inithist(nwgt,weights_info)49 call HwU_inithist(nwgt,weights_info)
4950
=== modified file 'Template/NLO/MCatNLO/include/LHEFRead.h'
--- Template/NLO/MCatNLO/include/LHEFRead.h 2016-02-23 11:25:37 +0000
+++ Template/NLO/MCatNLO/include/LHEFRead.h 2021-01-08 10:23:50 +0000
@@ -2,6 +2,13 @@
2#include <iomanip>2#include <iomanip>
3#include <string>3#include <string>
44
5
6extern "C" {
7 int get_wgts_info_len(void);
8}
9
10const int wgts_info_len_used = 80;
11
5class MyReader {12class MyReader {
613
7 private:14 private:
@@ -16,12 +23,22 @@
16 LHEF::Reader reader;23 LHEF::Reader reader;
1724
1825
19 void lhef_read_wgtsinfo_(int &cwgtinfo_nn, char (cwgtinfo_weights_info[1024][50])) {26 void lhef_read_wgtsinfo_(int &cwgtinfo_nn, char (cwgtinfo_weights_info[1024][wgts_info_len_used])) {
27
28 // check that wgts_info_len_used > wgts_info_len from the fortran module
29 if (wgts_info_len_used != get_wgts_info_len()) {
30 std::cout << " wgts_info_len_used is different from the corresponding quantity in HwU_wgts_info_len\n"
31 << " Please set wgts_info_len_used in LHEFRead.h to "<< get_wgts_info_len() <<"\n"
32 << " Program stopped.\n";
33 exit(1);
34 }
2035
21 // Read header of event file36 // Read header of event file
22 std::stringstream hss;37 std::stringstream hss;
23 std::string hs;38 std::string hs;
24 sprintf(cwgtinfo_weights_info[0], "%50s","central value");39 std::stringstream format_str;
40 format_str <<"%"<<wgts_info_len_used<<"s";
41 sprintf(cwgtinfo_weights_info[0],format_str.str().c_str(),"central value");
25 cwgtinfo_nn=1;42 cwgtinfo_nn=1;
26 while (true){43 while (true){
27 hss << reader.headerBlock;44 hss << reader.headerBlock;
@@ -37,7 +54,7 @@
37 if (hs.find("<weight id") != std::string::npos) {54 if (hs.find("<weight id") != std::string::npos) {
38 std::string sRWGT = hs.substr(hs.find("'>")+2,hs.find("</w")-3);55 std::string sRWGT = hs.substr(hs.find("'>")+2,hs.find("</w")-3);
39 sRWGT = sRWGT.substr(0,sRWGT.find("<"));56 sRWGT = sRWGT.substr(0,sRWGT.find("<"));
40 sprintf(cwgtinfo_weights_info[cwgtinfo_nn],"%50s",sRWGT.c_str());57 sprintf(cwgtinfo_weights_info[cwgtinfo_nn],format_str.str().c_str(),sRWGT.c_str());
41 ++cwgtinfo_nn;58 ++cwgtinfo_nn;
42 }59 }
43 }60 }
4461
=== modified file 'Template/NLO/MCatNLO/srcHerwig/madfks_hwlhin.f'
--- Template/NLO/MCatNLO/srcHerwig/madfks_hwlhin.f 2017-06-19 14:46:09 +0000
+++ Template/NLO/MCatNLO/srcHerwig/madfks_hwlhin.f 2021-01-08 10:23:50 +0000
@@ -125,6 +125,7 @@
125C Reads MC@NLO input headers and fills Les Houches run common HEPRUP125C Reads MC@NLO input headers and fills Les Houches run common HEPRUP
126C Event file is written by MadFKS126C Event file is written by MadFKS
127C----------------------------------------------------------------------127C----------------------------------------------------------------------
128 use HwU_wgts_info_len
128 INCLUDE 'HERWIG65.INC'129 INCLUDE 'HERWIG65.INC'
129C--Les Houches Common Blocks130C--Les Houches Common Blocks
130 INTEGER MAXPUP131 INTEGER MAXPUP
@@ -150,7 +151,7 @@
150 include 'reweight0.inc'151 include 'reweight0.inc'
151 integer nwgt152 integer nwgt
152 common/cnwgt/nwgt153 common/cnwgt/nwgt
153 character*50 weights_info(max_weight_shower)154 character*(wgts_info_len) weights_info(max_weight_shower)
154 common/cwgtsinfo/weights_info155 common/cwgtsinfo/weights_info
155 156
156 nwgt=1157 nwgt=1
157158
=== modified file 'Template/NLO/MCatNLO/srcPythia/madfks_pylhin.f'
--- Template/NLO/MCatNLO/srcPythia/madfks_pylhin.f 2017-06-19 14:46:09 +0000
+++ Template/NLO/MCatNLO/srcPythia/madfks_pylhin.f 2021-01-08 10:23:50 +0000
@@ -124,6 +124,7 @@
124C Reads MC@NLO input headers and fills Les Houches run common HEPRUP124C Reads MC@NLO input headers and fills Les Houches run common HEPRUP
125C Event file is written by MadFKS125C Event file is written by MadFKS
126C----------------------------------------------------------------------126C----------------------------------------------------------------------
127 use HwU_wgts_info_len
127C--Les Houches Common Blocks128C--Les Houches Common Blocks
128 INTEGER MAXPUP129 INTEGER MAXPUP
129 PARAMETER(MAXPUP=100)130 PARAMETER(MAXPUP=100)
@@ -149,7 +150,7 @@
149 include 'reweight0.inc'150 include 'reweight0.inc'
150 integer nwgt151 integer nwgt
151 common/cnwgt/nwgt152 common/cnwgt/nwgt
152 character*50 weights_info(max_weight_shower)153 character*(wgts_info_len) weights_info(max_weight_shower)
153 common/cwgtsinfo/weights_info154 common/cwgtsinfo/weights_info
154C155C
155 numscales=0156 numscales=0
156157
=== modified file 'Template/NLO/MCatNLO/srcPythia8/Pythia8.cc'
--- Template/NLO/MCatNLO/srcPythia8/Pythia8.cc 2017-07-25 14:13:14 +0000
+++ Template/NLO/MCatNLO/srcPythia8/Pythia8.cc 2021-01-08 10:23:50 +0000
@@ -21,7 +21,7 @@
21#define cevwgt cevwgt_21#define cevwgt cevwgt_
2222
23extern "C" { 23extern "C" {
24 void pyabeg_(int&,char(*)[50]);24 void pyabeg_(int&,char(*)[wgts_info_len_used]);
25 void pyaend_(double&);25 void pyaend_(double&);
26 void pyanal_(int&,double(*));26 void pyanal_(int&,double(*));
27}27}
@@ -30,7 +30,7 @@
30 Pythia pythia;30 Pythia pythia;
3131
32 int cwgtinfo_nn;32 int cwgtinfo_nn;
33 char cwgtinfo_weights_info[1024][50];33 char cwgtinfo_weights_info[1024][wgts_info_len_used];
34 double cwgt_ww[1024];34 double cwgt_ww[1024];
3535
36 string inputname="Pythia8.cmd",outputname="Pythia8.hep";36 string inputname="Pythia8.cmd",outputname="Pythia8.hep";
3737
=== modified file 'Template/NLO/MCatNLO/srcPythia8/Pythia82.cc'
--- Template/NLO/MCatNLO/srcPythia8/Pythia82.cc 2018-05-01 13:46:54 +0000
+++ Template/NLO/MCatNLO/srcPythia8/Pythia82.cc 2021-01-08 10:23:50 +0000
@@ -22,7 +22,7 @@
22#define cevwgt cevwgt_22#define cevwgt cevwgt_
2323
24extern "C" { 24extern "C" {
25 void pyabeg_(int&,char(*)[50]);25 void pyabeg_(int&,char(*)[wgts_info_len_used]);
26 void pyaend_(double&);26 void pyaend_(double&);
27 void pyanal_(int&,double(*));27 void pyanal_(int&,double(*));
28}28}
@@ -31,7 +31,7 @@
31 Pythia pythia;31 Pythia pythia;
3232
33 int cwgtinfo_nn;33 int cwgtinfo_nn;
34 char cwgtinfo_weights_info[1024][50];34 char cwgtinfo_weights_info[1024][wgts_info_len_used];
35 double cwgt_ww[1024];35 double cwgt_ww[1024];
3636
37 string inputname="Pythia8.cmd",outputname="Pythia8.hep";37 string inputname="Pythia8.cmd",outputname="Pythia8.hep";
3838
=== modified file 'Template/NLO/Source/PDF/makefile'
--- Template/NLO/Source/PDF/makefile 2018-04-16 14:08:47 +0000
+++ Template/NLO/Source/PDF/makefile 2021-01-08 10:23:50 +0000
@@ -13,16 +13,12 @@
13ifdef lhapdf13ifdef lhapdf
14 ifeq ($(lhapdfversion),5)14 ifeq ($(lhapdfversion),5)
15 PDF = pdfwrap_lhapdf.o pdf_lhapdf.o pdg2pdf_lhapdf.o opendata.o15 PDF = pdfwrap_lhapdf.o pdf_lhapdf.o pdg2pdf_lhapdf.o opendata.o
16 else16 else # lhapdf v6
17 ifdef applgrid17 ifeq ($(lhapdfsubversion),1) # 6.1.X
18 PDF = pdfwrap_lhapdf.o pdf_lhapdf.o pdg2pdf_lhapdf.o opendata.o18 PDF = pdfwrap_lhapdf.o pdf_lhapdf6.o pdg2pdf_lhapdf6.o opendata.o
19 else # lhapdf619 else # 6.2.X
20 ifeq ($(lhapdfsubversion),1) # 6.1.X20 CXXFLAGS+=-std=c++11
21 PDF = pdfwrap_lhapdf.o pdf_lhapdf6.o pdg2pdf_lhapdf6.o opendata.o21 PDF = pdfwrap_lhapdf.o pdf_lhapdf62.o pdg2pdf_lhapdf6.o opendata.o
22 else # 6.2.X
23 CXXFLAGS+=-std=c++11
24 PDF = pdfwrap_lhapdf.o pdf_lhapdf62.o pdg2pdf_lhapdf6.o opendata.o
25 endif
26 endif22 endif
27 endif23 endif
28else24else
2925
=== modified file 'Template/NLO/Source/extra_weights.f'
--- Template/NLO/Source/extra_weights.f 2020-07-28 10:05:22 +0000
+++ Template/NLO/Source/extra_weights.f 2021-01-08 10:23:50 +0000
@@ -8,7 +8,7 @@
8 integer :: iwgtnumpartn,jwgtinfo,mexternal8 integer :: iwgtnumpartn,jwgtinfo,mexternal
9 $ ,lhaPDFid(0:maxPDFsets),nmemPDF(maxPDFsets)9 $ ,lhaPDFid(0:maxPDFsets),nmemPDF(maxPDFsets)
10 $ ,dyn_scale(0:maxdynscales),n_ctr_found,n_mom_conf10 $ ,dyn_scale(0:maxdynscales),n_ctr_found,n_mom_conf
11 $ ,QCD_power,orders_tag11 $ ,QCD_power,orders_tag,amp_pos
12 double precision :: wgtdegrem_xi,wgtdegrem_lxi,wgtdegrem_muF12 double precision :: wgtdegrem_xi,wgtdegrem_lxi,wgtdegrem_muF
13 $ ,wgtnstmp,wgtwnstmpmuf,wgtwnstmpmur,wgtnstmp_avgvirt13 $ ,wgtnstmp,wgtwnstmpmuf,wgtwnstmpmur,wgtnstmp_avgvirt
14 $ ,wgtref,scalevarR(0:maxscales),scalevarF(0:maxscales)14 $ ,wgtref,scalevarR(0:maxscales),scalevarF(0:maxscales)
1515
=== modified file 'Template/NLO/Source/make_opts.inc'
--- Template/NLO/Source/make_opts.inc 2018-04-16 14:08:47 +0000
+++ Template/NLO/Source/make_opts.inc 2021-01-08 10:23:50 +0000
@@ -111,13 +111,14 @@
111 endif111 endif
112endif112endif
113113
114# Option APPLGrid114# Option PineAPPL
115ifneq ($(applgrid),)115ifneq ($(pineappl),)
116 APPLLIBS=$(shell applgrid-config --ldcflags) $(shell amcfast-config --ldflags)116 APPLLIBS=$(shell pkg-config pineappl_capi --libs)
117 applgrid_interface=appl_interface.o117 CXXFLAGS+=$(shell pkg-config pineappl_capi --cflags)
118 pineappl_interface=pineappl_interface.o
118else119else
119 APPLLIBS=120 APPLLIBS=
120 applgrid_interface=appl_interface_dummy.o121 pineappl_interface=pineappl_interface_dummy.o
121endif122endif
122123
123# Madloop124# Madloop
124125
=== modified file 'Template/NLO/Source/setrun.f'
--- Template/NLO/Source/setrun.f 2018-04-16 14:08:47 +0000
+++ Template/NLO/Source/setrun.f 2021-01-08 10:23:50 +0000
@@ -29,8 +29,8 @@
29 integer nevents29 integer nevents
30 character*7 event_norm30 character*7 event_norm
31 common /event_normalisation/event_norm31 common /event_normalisation/event_norm
32 integer iappl32 logical pineappl
33 common /for_applgrid/ iappl33 common /for_pineappl/ pineappl
34 integer idum34 integer idum
35 logical fixed_order,nlo_ps35 logical fixed_order,nlo_ps
36 common /c_fnlo_nlops/fixed_order,nlo_ps36 common /c_fnlo_nlops/fixed_order,nlo_ps
3737
=== modified file 'Template/NLO/SubProcesses/ajob_template'
--- Template/NLO/SubProcesses/ajob_template 2017-02-13 10:00:30 +0000
+++ Template/NLO/SubProcesses/ajob_template 2021-01-08 10:23:50 +0000
@@ -31,6 +31,10 @@
31runnumber=$331runnumber=$3
32integration_step=$432integration_step=$4
3333
34FO_EXTRAPATHS=
35export LD_LIBRARY_PATH=$FO_EXTRAPATHS:$LD_LIBRARY_PATH
36export DYLD_LIBRARY_PATH=$FO_EXTRAPATHS:$DYLD_LIBRARY_PATH
37
34TAGTAGTAGTAGTAGTAGTAG for i in 1 ; do38TAGTAGTAGTAGTAGTAGTAG for i in 1 ; do
35 39
36 if [[ $run_mode == 'all' || $run_mode == 'born' ]] ; then40 if [[ $run_mode == 'all' || $run_mode == 'born' ]] ; then
3741
=== modified file 'Template/NLO/SubProcesses/cuts.f'
--- Template/NLO/SubProcesses/cuts.f 2020-06-21 21:31:33 +0000
+++ Template/NLO/SubProcesses/cuts.f 2021-01-08 10:23:50 +0000
@@ -175,7 +175,7 @@
175175
176c If we do not require a mimimum jet energy, there's no need to apply176c If we do not require a mimimum jet energy, there's no need to apply
177c jet clustering and all that.177c jet clustering and all that.
178 if (ptj.ne.0d0.or.ptgmin.ne.0d0) then178 if (ptj.gt.0d0.or.ptgmin.gt.0d0) then
179c Put all (light) QCD partons in momentum array for jet clustering.179c Put all (light) QCD partons in momentum array for jet clustering.
180c From the run_card.dat, maxjetflavor defines if b quark should be180c From the run_card.dat, maxjetflavor defines if b quark should be
181c considered here (via the logical variable 'is_a_jet'). nQCD becomes181c considered here (via the logical variable 'is_a_jet'). nQCD becomes
@@ -284,7 +284,7 @@
284 is_a_ph(i)=.false.284 is_a_ph(i)=.false.
285 endif285 endif
286 enddo286 enddo
287 if (ptgmin.ne.0d0) then287 if (ptgmin.gt.0d0) then
288 nph=0288 nph=0
289 do j=nincoming+1,nexternal289 do j=nincoming+1,nexternal
290 if (is_a_ph(j)) then290 if (is_a_ph(j)) then
@@ -442,150 +442,6 @@
442442
443443
444444
445
446 subroutine recombine_momenta(R, etaph, reco_l, reco_q, p_in, pdg_in, p_out, pdg_out)
447 implicit none
448 ! recombine photons with the closest fermion if the distance is
449 ! less than R and if the rapidity of photons is < etaph (etaph < 0
450 ! means no cut). Output a new set of momenta and pdgs corresponding
451 ! to the recombined particles. If recombination occurs the photon
452 ! disappears from the output particles
453 ! arguments
454 include 'nexternal.inc'
455 double precision R, etaph, p_in(0:4,nexternal), p_out(0:4,nexternal)
456 logical reco_l, reco_q
457 integer pdg_in(nexternal), pdg_out(nexternal)
458 ! local variables
459 integer nq, nl
460 integer id_ph
461 parameter (id_ph=22)
462 integer n_ph, i_ph
463 integer i,j
464 integer ifreco
465 double precision dreco, dthis
466 integer skip
467 logical is_light_charged_fermion
468 double precision R2_04, eta_04
469 !
470 integer times_reco
471 common/to_times_reco/ times_reco
472 ! reset everything
473 do j=1,nexternal
474 pdg_out(j)=0
475 do i=0,4
476 p_out(i,j)=0d0
477 enddo
478 enddo
479
480 ! check if we want to recombine with leptons
481 if (reco_l) then
482 nl = 3
483 else
484 nl = 0
485 endif
486
487 ! check if we want to recombine with quarks
488 if (reco_q) then
489 nq = 5
490 else
491 nq = 0
492 endif
493
494 ! count the photons
495 n_ph=0
496 do i=nincoming+1, nexternal
497 if (pdg_in(i).eq.id_ph.and.
498 $ (abs(eta_04(p_in(0,i))).lt.etaph.or.etaph.lt.0d0)) then
499 n_ph=n_ph+1
500 i_ph=i
501 endif
502 enddo
503 if (n_ph.eq.0 .or. (nl.eq.0 .and. nq.eq.0)) then
504 ! do nothing
505 do j=1,nexternal
506 pdg_out(j)=pdg_in(j)
507 do i=0,4
508 p_out(i,j)=p_in(i,j)
509 enddo
510 enddo
511 return
512 elseif (n_ph.eq.1) then
513 ! do nothing for initial states
514 do j=1,nincoming
515 pdg_out(j)=pdg_in(j)
516 do i=0,4
517 p_out(i,j)=p_in(i,j)
518 enddo
519 enddo
520 ! find the closest fermion to the photon
521 ifreco=0
522 dreco=R
523 if (i_ph.gt.0) then
524 do i = nincoming+1, nexternal
525 if (is_light_charged_fermion(pdg_in(i),nq,nl)) then
526 dthis=dsqrt(R2_04(p_in(0,i_ph),p_in(0,i)))
527 if (dthis.le.dreco) then
528 dreco=dthis
529 ifreco=i
530 endif
531 endif
532 enddo
533 endif
534 if (ifreco.eq.0) then
535 ! do nothing also for final states
536 do j=nincoming+1,nexternal
537 pdg_out(j)=pdg_in(j)
538 do i=0,4
539 p_out(i,j)=p_in(i,j)
540 enddo
541 enddo
542 else
543 times_reco=times_reco+1
544 skip=0
545 do j=nincoming+1,nexternal
546 if (j.ne.i_ph.and.j.ne.ifreco) then
547 pdg_out(j-skip)=pdg_in(j)
548 do i=0,4
549 p_out(i,j-skip)=p_in(i,j)
550 enddo
551 elseif (j.eq.ifreco) then
552 pdg_out(j-skip)=pdg_in(j)
553 do i=0,3
554 p_out(i,j-skip)=p_in(i,j)+p_in(i,i_ph)
555 enddo
556 p_out(4,j-skip)=p_in(4,j)
557 elseif (j.eq.i_ph) then
558 skip=skip+1
559 endif
560 enddo
561 endif
562 else
563 write(*,*) 'ERROR, too many photons', n_ph
564 stop 1
565 endif
566
567 return
568 end
569
570
571 logical function is_light_charged_fermion(id, nf, nl)
572 implicit none
573 integer id, nf, nl
574 if (abs(id).le.nf) then
575 is_light_charged_fermion = .true.
576 elseif ((abs(id).eq.11.and.nl.ge.1).or.
577 $ (abs(id).eq.13.and.nl.ge.2).or.
578 $ (abs(id).eq.15.and.nl.ge.3)) then
579 is_light_charged_fermion = .true.
580 else
581 is_light_charged_fermion = .false.
582 endif
583 return
584 end
585
586
587
588
589C***************************************************************445C***************************************************************
590C***************************************************************446C***************************************************************
591C NO NEED TO CHANGE ANY OF THE FUNCTIONS BELOW447C NO NEED TO CHANGE ANY OF THE FUNCTIONS BELOW
@@ -1128,3 +984,4 @@
1128 end984 end
1129985
1130986
987
1131988
=== modified file 'Template/NLO/SubProcesses/driver_mintFO.f'
--- Template/NLO/SubProcesses/driver_mintFO.f 2020-03-26 15:16:08 +0000
+++ Template/NLO/SubProcesses/driver_mintFO.f 2021-01-08 10:23:50 +0000
@@ -67,9 +67,9 @@
67 include "timing_variables.inc"67 include "timing_variables.inc"
68 real*4 tOther, tTot68 real*4 tOther, tTot
6969
70c applgrid70c PineAPPL
71 integer iappl71 logical pineappl
72 common /for_applgrid/ iappl72 common /for_pineappl/ pineappl
73c stats for granny_is_res73c stats for granny_is_res
74 double precision deravg,derstd,dermax,xi_i_fks_ev_der_max74 double precision deravg,derstd,dermax,xi_i_fks_ev_der_max
75 & ,y_ij_fks_ev_der_max75 & ,y_ij_fks_ev_der_max
@@ -160,10 +160,10 @@
160 stop160 stop
161 endif161 endif
162 write(*,*) "about to integrate ", ndim,ncalls0,itmax162 write(*,*) "about to integrate ", ndim,ncalls0,itmax
163c APPLgrid163c PineAPPL
164 if (imode.eq.0) iappl=0 ! overwrite when starting completely fresh164 if (imode.eq.0) pineappl=.False. ! overwrite when starting completely fresh
165 if(iappl.ne.0) then165 if(pineappl) then
166 write(6,*) "Initializing aMCfast ..."166 write(6,*) "Initializing PineAPPL ..."
167c Set flavor map, starting from all possible167c Set flavor map, starting from all possible
168c parton lumi configurations defined in initial_states_map.dat168c parton lumi configurations defined in initial_states_map.dat
169 call setup_flavourmap169 call setup_flavourmap
@@ -365,8 +365,9 @@
365 common/ccalculatedBorn/calculatedBorn365 common/ccalculatedBorn/calculatedBorn
366 character*4 abrv366 character*4 abrv
367 common /to_abrv/ abrv367 common /to_abrv/ abrv
368 integer iappl368c PineAPPL
369 common /for_applgrid/ iappl369 logical pineappl
370 common /for_pineappl/ pineappl
370 double precision wgt_ME_born,wgt_ME_real371 double precision wgt_ME_born,wgt_ME_real
371 common /c_wgt_ME_tree/ wgt_ME_born,wgt_ME_real372 common /c_wgt_ME_tree/ wgt_ME_born,wgt_ME_real
372 integer ini_fin_fks_map(0:2,0:fks_configs)373 integer ini_fin_fks_map(0:2,0:fks_configs)
@@ -386,9 +387,9 @@
386 write (*,*) 'ERROR ifl not equal to zero in sigint',ifl387 write (*,*) 'ERROR ifl not equal to zero in sigint',ifl
387 stop 1388 stop 1
388 endif389 endif
389 if (iappl.ne.0 .and. sum) then390 if (pineappl .and. sum) then
390 write (*,*) 'WARNING: applgrid only possible '/391 write (*,*) 'WARNING: PineAPPL only possible '/
391 & /'with MC over FKS directories',iappl,sum392 & /'with MC over FKS directories',pineappl,sum
392 write (*,*) 'Switching to MC over FKS directories'393 write (*,*) 'Switching to MC over FKS directories'
393 sum=.false.394 sum=.false.
394 endif395 endif
@@ -501,13 +502,13 @@
501 if (do_rwgt_pdf) call reweight_pdf502 if (do_rwgt_pdf) call reweight_pdf
502 endif503 endif
503 504
504 if (iappl.ne.0) then505 if (pineappl) then
505 if (sum) then506 if (sum) then
506 write (*,*) 'ERROR: applgrid only possible '/507 write (*,*) 'ERROR: PineAPPL only possible '/
507 & /'with MC over FKS directories',iappl,sum508 & /'with MC over FKS directories',pineappl,sum
508 stop 1509 stop 1
509 endif510 endif
510 call fill_applgrid_weights(vegas_wgt)511 call fill_pineappl_weights(vegas_wgt)
511 endif512 endif
512513
513c Importance sampling for FKS configurations514c Importance sampling for FKS configurations
514515
=== modified file 'Template/NLO/SubProcesses/fks_singular.f'
--- Template/NLO/SubProcesses/fks_singular.f 2020-07-28 10:05:22 +0000
+++ Template/NLO/SubProcesses/fks_singular.f 2021-01-08 10:23:50 +0000
@@ -43,6 +43,7 @@
43 wgtcpower=0d043 wgtcpower=0d0
44 if (cpower_pos.gt.0) wgtcpower=dble(orders(cpower_pos))44 if (cpower_pos.gt.0) wgtcpower=dble(orders(cpower_pos))
45 orders_tag=get_orders_tag(orders)45 orders_tag=get_orders_tag(orders)
46 amp_pos=iamp
46 wgt1=amp_split(iamp)*f_b/g**(qcd_power)47 wgt1=amp_split(iamp)*f_b/g**(qcd_power)
47 call add_wgt(2,orders,wgt1,0d0,0d0)48 call add_wgt(2,orders,wgt1,0d0,0d0)
48 enddo49 enddo
@@ -62,6 +63,7 @@
62 wgtcpower=0d063 wgtcpower=0d0
63 if (cpower_pos.gt.0) wgtcpower=dble(orders(cpower_pos))64 if (cpower_pos.gt.0) wgtcpower=dble(orders(cpower_pos))
64 orders_tag=get_orders_tag(orders)65 orders_tag=get_orders_tag(orders)
66 amp_pos=iamp
65 wgt6f1=amp_split_6to5f(iamp)*f_b/g**(qcd_power)67 wgt6f1=amp_split_6to5f(iamp)*f_b/g**(qcd_power)
66 wgt6f2=amp_split_6to5f_mur(iamp)*f_b/g**(qcd_power)68 wgt6f2=amp_split_6to5f_mur(iamp)*f_b/g**(qcd_power)
67 wgt6f3=amp_split_6to5f_muf(iamp)*f_b/g**(qcd_power)69 wgt6f3=amp_split_6to5f_muf(iamp)*f_b/g**(qcd_power)
@@ -150,8 +152,10 @@
150 alphasbpow = orders(qcd_pos)/2152 alphasbpow = orders(qcd_pos)/2
151 if (niglu.ne.0 .or. alphasbpow.ne.0) then153 if (niglu.ne.0 .or. alphasbpow.ne.0) then
152 ! this contribution will end up with one extra power154 ! this contribution will end up with one extra power
153 ! of alpha_s155 ! of alpha_s. Check that we are including the corresponding
156 ! order in the computation, otherwise skip the contribution
154 orders(qcd_pos) = orders(qcd_pos) + 2157 orders(qcd_pos) = orders(qcd_pos) + 2
158 if (orders(qcd_pos).gt.nlo_orders(qcd_pos)) cycle
155159
156 amp_split_6to5f_muf(orders_to_amp_split_pos(orders)) = 160 amp_split_6to5f_muf(orders_to_amp_split_pos(orders)) =
157 & alphas / 3d0 / pi * TF * dble(niglu) * amp_split(iamp) 161 & alphas / 3d0 / pi * TF * dble(niglu) * amp_split(iamp)
@@ -254,6 +258,7 @@
254 wgtcpower=0d0258 wgtcpower=0d0
255 if (cpower_pos.gt.0) wgtcpower=dble(orders(cpower_pos))259 if (cpower_pos.gt.0) wgtcpower=dble(orders(cpower_pos))
256 orders_tag=get_orders_tag(orders)260 orders_tag=get_orders_tag(orders)
261 amp_pos=iamp
257 g22=g**(QCD_power)262 g22=g**(QCD_power)
258 wgt1=amp_split_wgtnstmp(iamp)*f_nb/g22263 wgt1=amp_split_wgtnstmp(iamp)*f_nb/g22
259 wgt2=amp_split_wgtwnstmpmur(iamp)*f_nb/g22264 wgt2=amp_split_wgtwnstmpmur(iamp)*f_nb/g22
@@ -278,6 +283,7 @@
278 wgtcpower=0d0283 wgtcpower=0d0
279 if (cpower_pos.gt.0) wgtcpower=dble(orders(cpower_pos))284 if (cpower_pos.gt.0) wgtcpower=dble(orders(cpower_pos))
280 orders_tag=get_orders_tag(orders)285 orders_tag=get_orders_tag(orders)
286 amp_pos=iamp
281 virt_wgt_mint(iamp)=amp_split_virt(iamp)*f_nb287 virt_wgt_mint(iamp)=amp_split_virt(iamp)*f_nb
282 born_wgt_mint(iamp)=amp_split_born_for_virt(iamp)*f_nb288 born_wgt_mint(iamp)=amp_split_born_for_virt(iamp)*f_nb
283 wgt1=virt_wgt_mint(iamp)/g**(QCD_power)289 wgt1=virt_wgt_mint(iamp)/g**(QCD_power)
@@ -322,6 +328,7 @@
322 wgtcpower=0d0328 wgtcpower=0d0
323 if (cpower_pos.gt.0) wgtcpower=dble(orders(cpower_pos))329 if (cpower_pos.gt.0) wgtcpower=dble(orders(cpower_pos))
324 orders_tag=get_orders_tag(orders)330 orders_tag=get_orders_tag(orders)
331 amp_pos=iamp
325 wgt1=amp_split(iamp)*s_ev*f_r/g**(qcd_power)332 wgt1=amp_split(iamp)*s_ev*f_r/g**(qcd_power)
326 if (sudakov_damp.gt.0d0) then333 if (sudakov_damp.gt.0d0) then
327 call add_wgt(1,orders,wgt1*sudakov_damp,0d0,0d0)334 call add_wgt(1,orders,wgt1*sudakov_damp,0d0,0d0)
@@ -385,6 +392,7 @@
385 wgtcpower=0d0392 wgtcpower=0d0
386 if (cpower_pos.gt.0) wgtcpower=dble(orders(cpower_pos))393 if (cpower_pos.gt.0) wgtcpower=dble(orders(cpower_pos))
387 orders_tag=get_orders_tag(orders)394 orders_tag=get_orders_tag(orders)
395 amp_pos=iamp
388 g22=g**(QCD_power)396 g22=g**(QCD_power)
389 if (replace_MC_subt.gt.0d0) then397 if (replace_MC_subt.gt.0d0) then
390 wgt1=amp_split(iamp)*s_s/g22*replace_MC_subt398 wgt1=amp_split(iamp)*s_s/g22*replace_MC_subt
@@ -478,6 +486,7 @@
478 wgtcpower=0d0486 wgtcpower=0d0
479 if (cpower_pos.gt.0) wgtcpower=dble(orders(cpower_pos))487 if (cpower_pos.gt.0) wgtcpower=dble(orders(cpower_pos))
480 orders_tag=get_orders_tag(orders)488 orders_tag=get_orders_tag(orders)
489 amp_pos=iamp
481 g22=g**(QCD_power)490 g22=g**(QCD_power)
482 if (replace_MC_subt.gt.0d0) then491 if (replace_MC_subt.gt.0d0) then
483 wgt1=amp_split(iamp)*s_c/g22*replace_MC_subt492 wgt1=amp_split(iamp)*s_c/g22*replace_MC_subt
@@ -587,6 +596,7 @@
587 wgtcpower=0d0596 wgtcpower=0d0
588 if (cpower_pos.gt.0) wgtcpower=dble(orders(cpower_pos))597 if (cpower_pos.gt.0) wgtcpower=dble(orders(cpower_pos))
589 orders_tag=get_orders_tag(orders)598 orders_tag=get_orders_tag(orders)
599 amp_pos=iamp
590 g22=g**(QCD_power)600 g22=g**(QCD_power)
591 if (replace_MC_subt.gt.0d0) then601 if (replace_MC_subt.gt.0d0) then
592 wgt1=-amp_split(iamp)*s_sc/g22*replace_MC_subt602 wgt1=-amp_split(iamp)*s_sc/g22*replace_MC_subt
@@ -692,6 +702,7 @@
692 wgtcpower=0d0702 wgtcpower=0d0
693 if (cpower_pos.gt.0) wgtcpower=dble(orders(cpower_pos))703 if (cpower_pos.gt.0) wgtcpower=dble(orders(cpower_pos))
694 orders_tag=get_orders_tag(orders)704 orders_tag=get_orders_tag(orders)
705 amp_pos=iamp
695 g22=g**(QCD_power)706 g22=g**(QCD_power)
696 wgt1=sevmc*f_MC_S*xlum_mc_fact*707 wgt1=sevmc*f_MC_S*xlum_mc_fact*
697 & amp_split_xmcxsec(iamp,i)/g22708 & amp_split_xmcxsec(iamp,i)/g22
@@ -980,7 +991,7 @@
980 include 'genps.inc'991 include 'genps.inc'
981 include 'timing_variables.inc'992 include 'timing_variables.inc'
982 double precision pi,vegas_wgt993 double precision pi,vegas_wgt
983 integer i994 integer i,j
984 logical firsttime995 logical firsttime
985 data firsttime /.true./996 data firsttime /.true./
986 parameter (pi=3.1415926535897932385d0)997 parameter (pi=3.1415926535897932385d0)
@@ -1002,16 +1013,17 @@
1002 & fkssymmetryfactorDeg,ngluons,nquarks,nphotons1013 & fkssymmetryfactorDeg,ngluons,nquarks,nphotons
1003 double precision f_b,f_nb1014 double precision f_b,f_nb
1004 common /factor_nbody/ f_b,f_nb1015 common /factor_nbody/ f_b,f_nb
1005 integer iappl1016 logical pineappl
1006 common /for_applgrid/ iappl1017 common /for_pineappl/ pineappl
1007 logical needrndec1018 logical needrndec
1008 parameter (needrndec=.false.)1019 parameter (needrndec=.false.)
1009 real*8 ran21020 real*8 ran2
1010 external ran21021 external ran2
1011 real*8 rndec(10)1022 real*8 rndec(10)
1012 common/crndec/rndec1023 common/crndec/rndec
1013 include "appl_common.inc" 1024 include "pineappl_common.inc"
1014 !!!include "orders.inc"1025 integer orders(nsplitorders)
1026C
1015 call cpu_time(tBefore)1027 call cpu_time(tBefore)
1016c Random numbers to be used in the plotting routine: these numbers will1028c Random numbers to be used in the plotting routine: these numbers will
1017c not change between events, counter events and n-body contributions.1029c not change between events, counter events and n-body contributions.
@@ -1021,7 +1033,15 @@
1021 enddo1033 enddo
1022 endif1034 endif
1023 if (firsttime) then1035 if (firsttime) then
1024 if (iappl.ne.0) appl_amp_split_size = amp_split_size1036 if (pineappl) then
1037 ! PineAPPL stuff
1038 appl_amp_split_size = amp_split_size
1039 do j=1,amp_split_size
1040 call amp_split_pos_to_orders(j, orders)
1041 appl_qcdpower(j) = orders(qcd_pos)
1042 appl_qedpower(j) = orders(qed_pos)
1043 enddo
1044 endif
1025c Initialize hiostograms for fixed order runs1045c Initialize hiostograms for fixed order runs
1026 if (fixed_order) call initplot1046 if (fixed_order) call initplot
1027 firsttime=.false.1047 firsttime=.false.
@@ -1565,6 +1585,7 @@
1565 qcdpower(icontr)=QCD_power1585 qcdpower(icontr)=QCD_power
1566 cpower(icontr)=wgtcpower1586 cpower(icontr)=wgtcpower
1567 orderstag(icontr)=orders_tag1587 orderstag(icontr)=orders_tag
1588 amppos(icontr)=amp_pos
1568 ipr(icontr)=01589 ipr(icontr)=0
1569 call set_pdg(icontr,nFKSprocess)1590 call set_pdg(icontr,nFKSprocess)
15701591
@@ -2264,17 +2285,18 @@
2264 return2285 return
2265 end2286 end
22662287
2267 subroutine fill_applgrid_weights(vegas_wgt)2288 subroutine fill_pineappl_weights(vegas_wgt)
2268c Fills the ApplGrid weights of appl_common.inc. This subroutine assumes2289c Fills the FineAPPL weights of pineappl_common.inc. This subroutine assumes
2269c that there is an unique PS configuration: at most one Born, one real2290c that there is an unique PS configuration: at most one Born, one real
2270c and one set of counter terms. Among other things, this means that one2291c and one set of counter terms. Among other things, this means that one
2271c must do MC over FKS directories.2292c must do MC over FKS directories.
2272 use weight_lines2293 use weight_lines
2273 implicit none2294 implicit none
2274 include 'nexternal.inc'2295 include 'nexternal.inc'
2275 include 'appl_common.inc'2296 include 'pineappl_common.inc'
2276 include 'nFKSconfigs.inc'2297 include 'nFKSconfigs.inc'
2277 include 'genps.inc'2298 include 'genps.inc'
2299 integer orders(nsplitorders)
2278 integer i,j 2300 integer i,j
2279 double precision final_state_rescaling,vegas_wgt2301 double precision final_state_rescaling,vegas_wgt
2280 integer flavour_map(fks_configs)2302 integer flavour_map(fks_configs)
@@ -2284,24 +2306,18 @@
2284 common/cproc_combination/iproc_save,eto,etoi,maxproc_found2306 common/cproc_combination/iproc_save,eto,etoi,maxproc_found
2285 integer lo_qcd_to_amp_pos, nlo_qcd_to_amp_pos2307 integer lo_qcd_to_amp_pos, nlo_qcd_to_amp_pos
2286 integer pos2308 integer pos
2287 if (icontr.gt.8) then2309 do i=1,4
2288 write (*,*) 'ERROR: too many applgrid weights. '/2310 do j=1,amp_split_size
2289 & /'Should have at most one of each itype.',icontr
2290 stop 1
2291 endif
2292 do j=1,amp_split_size
2293 do i=1,4
2294 appl_w0(i,j)=0d02311 appl_w0(i,j)=0d0
2295 appl_wR(i,j)=0d02312 appl_wR(i,j)=0d0
2296 appl_wF(i,j)=0d02313 appl_wF(i,j)=0d0
2297 appl_wB(i,j)=0d02314 appl_wB(i,j)=0d0
2298 appl_x1(i,j)=0d0
2299 appl_x2(i,j)=0d0
2300 appl_QES2(i,j)=0d0
2301 appl_muR2(i,j)=0d0
2302 appl_muF2(i,j)=0d0
2303 appl_qcdpower(i,j) = -1
2304 enddo2315 enddo
2316 appl_x1(i)=0d0
2317 appl_x2(i)=0d0
2318 appl_QES2(i)=0d0
2319 appl_muR2(i)=0d0
2320 appl_muF2(i)=0d0
2305 appl_flavmap(i)=02321 appl_flavmap(i)=0
2306 enddo2322 enddo
2307 appl_event_weight = 0d02323 appl_event_weight = 0d0
@@ -2316,62 +2332,63 @@
2316 else2332 else
2317 pos = nlo_qcd_to_amp_pos(qcdpower(i))2333 pos = nlo_qcd_to_amp_pos(qcdpower(i))
2318 endif2334 endif
2335 ! consistency check
2336 if (appl_qcdpower(pos).ne.qcdpower(i)) then
2337 write(*,*) 'ERROR in fill_pineappl_weights, QCDpower',
2338 % appl_qcdpower(pos), qcdpower(i)
2339 stop 1
2340 endif
23192341
2320 if (itype(i).eq.1) then2342 if (itype(i).eq.1) then
2321c real2343c real
2322 appl_w0(1,pos)=appl_w0(1,pos)+wgt(1,i)*final_state_rescaling2344 appl_w0(1,pos)=appl_w0(1,pos)+wgt(1,i)*final_state_rescaling
2323 appl_qcdpower(1,pos)=qcdpower(i)2345 appl_x1(1)=bjx(1,i)
2324 appl_x1(1,pos)=bjx(1,i)2346 appl_x2(1)=bjx(2,i)
2325 appl_x2(1,pos)=bjx(2,i)
2326 appl_flavmap(1) = flavour_map(nFKS(i))2347 appl_flavmap(1) = flavour_map(nFKS(i))
2327 appl_QES2(1,pos)=scales2(1,i)2348 appl_QES2(1)=scales2(1,i)
2328 appl_muR2(1,pos)=scales2(2,i)2349 appl_muR2(1)=scales2(2,i)
2329 appl_muF2(1,pos)=scales2(3,i)2350 appl_muF2(1)=scales2(3,i)
2330 elseif (itype(i).eq.2) then2351 elseif (itype(i).eq.2) then
2331c born2352c born
2332 appl_wB(2,pos)=appl_wB(2,pos)+wgt(1,i)*final_state_rescaling2353 appl_wB(2,pos)=appl_wB(2,pos)+wgt(1,i)*final_state_rescaling
2333 appl_qcdpower(2,pos)=qcdpower(i)2354 appl_x1(2)=bjx(1,i)
2334 appl_x1(2,pos)=bjx(1,i)2355 appl_x2(2)=bjx(2,i)
2335 appl_x2(2,pos)=bjx(2,i)
2336 appl_flavmap(2) = flavour_map(nFKS(i))2356 appl_flavmap(2) = flavour_map(nFKS(i))
2337 appl_QES2(2,pos)=scales2(1,i)2357 appl_QES2(2)=scales2(1,i)
2338 appl_muR2(2,pos)=scales2(2,i)2358 appl_muR2(2)=scales2(2,i)
2339 appl_muF2(2,pos)=scales2(3,i)2359 appl_muF2(2)=scales2(3,i)
2340 elseif (itype(i).eq.3 .or. itype(i).eq.4 .or. itype(i).eq.142360 elseif (itype(i).eq.3 .or. itype(i).eq.4 .or. itype(i).eq.14
2341 & .or. itype(i).eq.15)then2361 & .or. itype(i).eq.15)then
2342c virtual, soft-virtual or soft-counter2362c virtual, soft-virtual or soft-counter
2343 appl_w0(2,pos)=appl_w0(2,pos)+wgt(1,i)*final_state_rescaling2363 appl_w0(2,pos)=appl_w0(2,pos)+wgt(1,i)*final_state_rescaling
2344 appl_wR(2,pos)=appl_wR(2,pos)+wgt(2,i)*final_state_rescaling2364 appl_wR(2,pos)=appl_wR(2,pos)+wgt(2,i)*final_state_rescaling
2345 appl_wF(2,pos)=appl_wF(2,pos)+wgt(3,i)*final_state_rescaling2365 appl_wF(2,pos)=appl_wF(2,pos)+wgt(3,i)*final_state_rescaling
2346 appl_qcdpower(2,pos)=qcdpower(i)2366 appl_x1(2)=bjx(1,i)
2347 appl_x1(2,pos)=bjx(1,i)2367 appl_x2(2)=bjx(2,i)
2348 appl_x2(2,pos)=bjx(2,i)
2349 appl_flavmap(2) = flavour_map(nFKS(i))2368 appl_flavmap(2) = flavour_map(nFKS(i))
2350 appl_QES2(2,pos)=scales2(1,i)2369 appl_QES2(2)=scales2(1,i)
2351 appl_muR2(2,pos)=scales2(2,i)2370 appl_muR2(2)=scales2(2,i)
2352 appl_muF2(2,pos)=scales2(3,i)2371 appl_muF2(2)=scales2(3,i)
2353 elseif (itype(i).eq.5) then2372 elseif (itype(i).eq.5) then
2354c collinear counter 2373c collinear counter
2355 appl_w0(3,pos)=appl_w0(3,pos)+wgt(1,i)*final_state_rescaling2374 appl_w0(3,pos)=appl_w0(3,pos)+wgt(1,i)*final_state_rescaling
2356 appl_wF(3,pos)=appl_wF(3,pos)+wgt(3,i)*final_state_rescaling2375 appl_wF(3,pos)=appl_wF(3,pos)+wgt(3,i)*final_state_rescaling
2357 appl_qcdpower(3,pos)=qcdpower(i)2376 appl_x1(3)=bjx(1,i)
2358 appl_x1(3,pos)=bjx(1,i)2377 appl_x2(3)=bjx(2,i)
2359 appl_x2(3,pos)=bjx(2,i)
2360 appl_flavmap(3) = flavour_map(nFKS(i))2378 appl_flavmap(3) = flavour_map(nFKS(i))
2361 appl_QES2(3,pos)=scales2(1,i)2379 appl_QES2(3)=scales2(1,i)
2362 appl_muR2(3,pos)=scales2(2,i)2380 appl_muR2(3)=scales2(2,i)
2363 appl_muF2(3,pos)=scales2(3,i)2381 appl_muF2(3)=scales2(3,i)
2364 elseif (itype(i).eq.6) then2382 elseif (itype(i).eq.6) then
2365c soft-collinear counter 2383c soft-collinear counter
2366 appl_w0(4,pos)=appl_w0(4,pos)+wgt(1,i)*final_state_rescaling2384 appl_w0(4,pos)=appl_w0(4,pos)+wgt(1,i)*final_state_rescaling
2367 appl_wF(4,pos)=appl_wF(4,pos)+wgt(3,i)*final_state_rescaling2385 appl_wF(4,pos)=appl_wF(4,pos)+wgt(3,i)*final_state_rescaling
2368 appl_qcdpower(4,pos)=qcdpower(i)2386 appl_x1(4)=bjx(1,i)
2369 appl_x1(4,pos)=bjx(1,i)2387 appl_x2(4)=bjx(2,i)
2370 appl_x2(4,pos)=bjx(2,i)
2371 appl_flavmap(4) = flavour_map(nFKS(i))2388 appl_flavmap(4) = flavour_map(nFKS(i))
2372 appl_QES2(4,pos)=scales2(1,i)2389 appl_QES2(4)=scales2(1,i)
2373 appl_muR2(4,pos)=scales2(2,i)2390 appl_muR2(4)=scales2(2,i)
2374 appl_muF2(4,pos)=scales2(3,i)2391 appl_muF2(4)=scales2(3,i)
2375 endif2392 endif
2376 enddo2393 enddo
2377 return2394 return
@@ -2516,6 +2533,8 @@
2516 ! stuff for plotting the different splitorders2533 ! stuff for plotting the different splitorders
2517 integer orders_tag_plot2534 integer orders_tag_plot
2518 common /corderstagplot/ orders_tag_plot2535 common /corderstagplot/ orders_tag_plot
2536 integer amp_pos_plot
2537 common /campposplot/ amp_pos_plot
2519 save max_weight2538 save max_weight
2520 call cpu_time(tBefore)2539 call cpu_time(tBefore)
2521 if (icontr.eq.0) return2540 if (icontr.eq.0) return
@@ -2526,12 +2545,27 @@
2526 do j=1,iwgt2545 do j=1,iwgt
2527 plot_wgts(j,i)=0d02546 plot_wgts(j,i)=0d0
2528 enddo2547 enddo
2548 ! The following if lines have been changed with respect to the
2549 ! usual (with just 3 plot ids: 20, 11 and 12):
2550 ! The kinematics of soft and collinear counterterms may
2551 ! be different, for those processes without soft singularities
2552 ! from initial(final)-state configurations when the
2553 ! final(initial) confs are integrated (e.g. a a > e+ e-)
2554 ! This gives no problem for normal histogramming (and in
2555 ! fact plot_id 11 13 and 14 are merged into ibody=2 in
2556 ! outfun, but it gives troubles e.g. with applgrid/pineappl.
2557 ! Note that the separation between soft and soft-virtual
2558 ! may not be needed in reality
2529 if (itype(i).eq.2) then2559 if (itype(i).eq.2) then
2530 plot_id(i)=20 ! Born2560 plot_id(i)=20 ! Born
2531 elseif(itype(i).eq.1) then2561 elseif(itype(i).eq.1) then
2532 plot_id(i)=11 ! real-emission2562 plot_id(i)=11 ! real-emission
2563 elseif(itype(i).eq.5) then
2564 plot_id(i)=13 ! collinear counter term
2565 elseif(itype(i).eq.6) then
2566 plot_id(i)=14 ! soft collinear counter term
2533 else2567 else
2534 plot_id(i)=12 ! soft-virtual and counter terms2568 plot_id(i)=12 ! soft-virtual and soft counter term
2535 endif2569 endif
2536c Loop over all previous icontr. If the plot_id, PDGs and momenta are2570c Loop over all previous icontr. If the plot_id, PDGs and momenta are
2537c equal to a previous icountr, add the current weight to the plot_wgts2571c equal to a previous icountr, add the current weight to the plot_wgts
@@ -2541,12 +2575,12 @@
2541 do ii=1,i2575 do ii=1,i
2542 if (orderstag(ii).ne.orderstag(i)) cycle2576 if (orderstag(ii).ne.orderstag(i)) cycle
2543 if (plot_id(ii).ne.plot_id(i)) cycle2577 if (plot_id(ii).ne.plot_id(i)) cycle
2544 if (plot_id(i).eq.20 .or. plot_id(i).eq.12) then2578 if (plot_id(i).ne.11) then
2545 if (.not.pdg_equal(pdg_uborn(1,ii),pdg_uborn(1,i))) cycle2579 if (.not.pdg_equal(pdg_uborn(1,ii),pdg_uborn(1,i))) cycle
2546 else2580 else
2547 if (.not.pdg_equal(pdg(1,ii),pdg(1,i))) cycle2581 if (.not.pdg_equal(pdg(1,ii),pdg(1,i))) cycle
2548 endif2582 endif
2549 if (plot_id(i).eq.20 .or. plot_id(i).eq.12) then2583 if (plot_id(i).ne.11) then
2550 if (.not.momenta_equal_uborn(momenta(0,1,ii),momenta(0,12584 if (.not.momenta_equal_uborn(momenta(0,1,ii),momenta(0,1
2551 $ ,i),fks_j_d(nFKS(ii)),fks_i_d(nFKS(ii))2585 $ ,i),fks_j_d(nFKS(ii)),fks_i_d(nFKS(ii))
2552 $ ,fks_j_d(nFKS(i)) ,fks_i_d(nFKS(i)))) cycle2586 $ ,fks_j_d(nFKS(i)) ,fks_i_d(nFKS(i)))) cycle
@@ -2576,6 +2610,7 @@
2576 enddo2610 enddo
2577c call the analysis/histogramming routines2611c call the analysis/histogramming routines
2578 orders_tag_plot=orderstag(i)2612 orders_tag_plot=orderstag(i)
2613 amp_pos_plot=amppos(i)
2579 call outfun(momenta(0,1,i),y_bst(i),www,pdg(1,i),plot_id(i))2614 call outfun(momenta(0,1,i),y_bst(i),www,pdg(1,i),plot_id(i))
2580 endif2615 endif
2581 enddo2616 enddo
25822617
=== modified file 'Template/NLO/SubProcesses/handling_lhe_events.f'
--- Template/NLO/SubProcesses/handling_lhe_events.f 2020-07-28 10:05:22 +0000
+++ Template/NLO/SubProcesses/handling_lhe_events.f 2021-01-08 10:23:50 +0000
@@ -113,7 +113,7 @@
113 include './cuts.inc'113 include './cuts.inc'
114 integer lhaid114 integer lhaid
115 character*20 pdlabel115 character*20 pdlabel
116 integer iappl116 logical pineappl
117 character*7 event_norm117 character*7 event_norm
118 character*13 temp118 character*13 temp
119c other parameter119c other parameter
120120
=== modified file 'Template/NLO/SubProcesses/iproc_map.f'
--- Template/NLO/SubProcesses/iproc_map.f 2017-07-31 08:48:20 +0000
+++ Template/NLO/SubProcesses/iproc_map.f 2021-01-08 10:23:50 +0000
@@ -205,7 +205,7 @@
205205
206************************************************************************206************************************************************************
207* The following routine sets up the flavour map that needs to be207* The following routine sets up the flavour map that needs to be
208* feeded to APPLgrid in the initialization stage.208* feeded to PineAPPL in the initialization stage.
209************************************************************************209************************************************************************
210 subroutine setup_flavourmap210 subroutine setup_flavourmap
211*211*
@@ -215,8 +215,8 @@
215 include 'nexternal.inc'215 include 'nexternal.inc'
216 include 'genps.inc'216 include 'genps.inc'
217 include "leshouche_decl.inc"217 include "leshouche_decl.inc"
218 include "reweight_appl.inc"218 include "reweight_pineappl.inc"
219 include "appl_common.inc"219 include "pineappl_common.inc"
220*220*
221 character*200 buffer221 character*200 buffer
222 integer procnum,i,l,j,ll,found_a,found_m222 integer procnum,i,l,j,ll,found_a,found_m
@@ -251,8 +251,18 @@
251* Read the file using a buffer251* Read the file using a buffer
252 do252 do
253 read (71,'(a)',err=100,end=100) buffer ! Jump to line 100 when all lines read253 read (71,'(a)',err=100,end=100) buffer ! Jump to line 100 when all lines read
254 write(*,*) buffer
254 read (buffer,*) kpdflumi,nproc(kpdflumi),255 read (buffer,*) kpdflumi,nproc(kpdflumi),
255 1 ((pdgs(i,j,kpdflumi),i=1,2),j=1,nproc(kpdflumi))256 1 ((pdgs(i,j,kpdflumi),i=1,2),j=1,nproc(kpdflumi))
257 ! check that the allocated arrays are big enough
258 if (kpdflumi.gt.mxpdflumi) then
259 write(*,*) 'ERROR in iproc_map.f, too many processes'
260 write(*,*) 'increase mxpdflumi and max_nproc' //
261 % ' inside appl_comon.inc'
262 write(*,*) 'and __max_nproc__ in pineappl_interface.cc'
263 write(*,*) 'Make sure to assign all variables the same value!'
264 stop 1
265 endif
256 appl_nproc(kpdflumi) = nproc(kpdflumi)266 appl_nproc(kpdflumi) = nproc(kpdflumi)
257 enddo267 enddo
258 100 continue268 100 continue
259269
=== modified file 'Template/NLO/SubProcesses/madfks_plot.f'
--- Template/NLO/SubProcesses/madfks_plot.f 2018-12-21 15:27:32 +0000
+++ Template/NLO/SubProcesses/madfks_plot.f 2021-01-08 10:23:50 +0000
@@ -11,9 +11,9 @@
11 double precision xsecScale_acc(maxscales,maxscales,maxdynscales)11 double precision xsecScale_acc(maxscales,maxscales,maxdynscales)
12 $ ,xsecPDFr_acc(0:maxPDFs,maxPDFsets)12 $ ,xsecPDFr_acc(0:maxPDFs,maxPDFsets)
13 common /scale_pdf_print/xsecScale_acc,xsecPDFr_acc13 common /scale_pdf_print/xsecScale_acc,xsecPDFr_acc
14 integer iappl14 logical pineappl
15 common /for_applgrid/ iappl15 common /for_pineappl/ pineappl
16 include "appl_common.inc"16 include "pineappl_common.inc"
17 nwgt=117 nwgt=1
18 if (.not.allocated(weights_info)) allocate(weights_info(1))18 if (.not.allocated(weights_info)) allocate(weights_info(1))
19 weights_info(nwgt)="central value "19 weights_info(nwgt)="central value "
@@ -109,7 +109,7 @@
109c start with central member of the first set109c start with central member of the first set
110 call InitPDFm(1,0)110 call InitPDFm(1,0)
111 endif111 endif
112 if(iappl.ne.0)then112 if(pineappl)then
113c Initialize grid parameters to negative values.113c Initialize grid parameters to negative values.
114 appl_Q2min = -1d0114 appl_Q2min = -1d0
115 appl_Q2max = -1d0115 appl_Q2max = -1d0
@@ -159,14 +159,14 @@
159 double precision xsecScale_acc(maxscales,maxscales,maxdynscales)159 double precision xsecScale_acc(maxscales,maxscales,maxdynscales)
160 $ ,xsecPDFr_acc(0:maxPDFs,maxPDFsets)160 $ ,xsecPDFr_acc(0:maxPDFs,maxPDFsets)
161 common /scale_pdf_print/xsecScale_acc,xsecPDFr_acc161 common /scale_pdf_print/xsecScale_acc,xsecPDFr_acc
162 integer iappl162 logical pineappl
163 common /for_applgrid/ iappl163 common /for_pineappl/ pineappl
164 include "appl_common.inc"164 include "pineappl_common.inc"
165c165c
166 xnorm=1.d0/float(ncalls0)166 xnorm=1.d0/float(ncalls0)
167 if(useitmax)xnorm=xnorm/float(itmax)167 if(useitmax)xnorm=xnorm/float(itmax)
168c Normalization factor for the APPLgrid grids168c Normalization factor for the PineAPPL grids
169 if(iappl.ne.0) appl_norm_histo = 1d0 / dble(ncalls0*itmax)169 if(pineappl) appl_norm_histo = 1d0 / dble(ncalls0*itmax)
170 call analysis_end(xnorm)170 call analysis_end(xnorm)
171c Write the accumulated results to a file171c Write the accumulated results to a file
172 open (unit=34,file='scale_pdf_dependence.dat',status='unknown')172 open (unit=34,file='scale_pdf_dependence.dat',status='unknown')
@@ -242,13 +242,17 @@
242 double precision xsecScale_acc(maxscales,maxscales,maxdynscales)242 double precision xsecScale_acc(maxscales,maxscales,maxdynscales)
243 $ ,xsecPDFr_acc(0:maxPDFs,maxPDFsets)243 $ ,xsecPDFr_acc(0:maxPDFs,maxPDFsets)
244 common /scale_pdf_print/xsecScale_acc,xsecPDFr_acc244 common /scale_pdf_print/xsecScale_acc,xsecPDFr_acc
245 integer iappl245 integer amp_pos_plot
246 common /for_applgrid/ iappl246 common /campposplot/ amp_pos_plot
247 include "appl_common.inc"247 logical pineappl
248c Born, n-body or (n+1)-body contribution:248 common /for_pineappl/ pineappl
249 include "pineappl_common.inc"
250c Born, n-body or (n+1)-body contribution. For more information
251C about itype, see the comments about plot_id inside
252C the fill_plot subroutine of fks_singular.f
249 if(itype.eq.11) then253 if(itype.eq.11) then
250 ibody=1 ! (n+1)-body254 ibody=1 ! (n+1)-body
251 elseif(itype.eq.12)then255 elseif(itype.ge.12 .and. itype.le.14)then
252 ibody=2 ! n-body256 ibody=2 ! n-body
253 elseif(itype.eq.20)then257 elseif(itype.eq.20)then
254 ibody=3 ! Born258 ibody=3 ! Born
@@ -275,8 +279,21 @@
275 enddo279 enddo
276 p(4,i)=pmass(i)280 p(4,i)=pmass(i)
277 enddo281 enddo
278 if(iappl.ne.0)then282 if(pineappl)then
279 appl_itype = ibody283 appl_itype = ibody
284 if(ibody.eq.2)then
285c special treatment for collinear
286c and soft collinear counterterms
287c (see comments inside the fill_plots subroutine)
288 if(itype.eq.13)then
289 !collinear counterterm
290 appl_itype = 4
291 elseif(itype.eq.14)then
292 !solf-collinear counterterm
293 appl_itype = 5
294 endif
295 endif
296 appl_amp_pos = amp_pos_plot
280 appl_www_histo = www(1)297 appl_www_histo = www(1)
281 endif298 endif
282 call analysis_fill(p,istatus,ipdg,www,ibody)299 call analysis_fill(p,istatus,ipdg,www,ibody)
283300
=== modified file 'Template/NLO/SubProcesses/makefile_fks_dir'
--- Template/NLO/SubProcesses/makefile_fks_dir 2020-07-28 10:05:22 +0000
+++ Template/NLO/SubProcesses/makefile_fks_dir 2021-01-08 10:23:50 +0000
@@ -25,17 +25,19 @@
25$(LIBDIR)libpdf.a $(LIBDIR)libcernlib.a25$(LIBDIR)libpdf.a $(LIBDIR)libcernlib.a
2626
27# Files for all executables27# Files for all executables
28FILES= $(patsubst %.f,%.o,$(wildcard parton_lum_*.f)) $(patsubst \28FILES= $(patsubst %.f,%.o,$(wildcard parton_lum_*.f)) \
29 %.f,%.o,$(wildcard matrix_*.f)) FKSParams.o real_me_chooser.o \29 $(patsubst %.f,%.o,$(wildcard matrix_*.f)) \
30 chooser_functions.o genps_fks.o setcuts.o setscales.o \30 FKSParams.o real_me_chooser.o chooser_functions.o recmom.o \
31 veto_xsec.o $(patsubst %.f,%.o,$(wildcard b_sf_???.f)) \31 genps_fks.o setcuts.o setscales.o veto_xsec.o \
32 born.o sborn_sf.o extra_cnt_wrapper.o $(patsubst \32 $(patsubst %.f,%.o,$(wildcard b_sf_???.f)) \
33 %.f,%.o,$(wildcard born_cnt_*.f)) fks_Sij.o \33 born.o sborn_sf.o extra_cnt_wrapper.o \
34 $(fastjetfortran_madfks) fks_singular.o montecarlocounter.o \34 $(patsubst %.f,%.o,$(wildcard born_cnt_*.f)) \
35 reweight_xsec.o boostwdir2.o initcluster.o cluster.o \35 fks_Sij.o $(fastjetfortran_madfks) fks_singular.o \
36 splitorders_stuff.o reweight.o get_color.o \36 montecarlocounter.o reweight_xsec.o boostwdir2.o \
37 iproc_map.o MC_integer.o $(reweight_xsec_events_pdf_dummy) \37 initcluster.o cluster.o splitorders_stuff.o \
38 $(applgrid_interface) weight_lines.o mint_module.o polfit.o38 reweight.o get_color.o iproc_map.o \
39 MC_integer.o $(reweight_xsec_events_pdf_dummy) \
40 $(pineappl_interface) weight_lines.o mint_module.o polfit.o
3941
40# Files needed for mintFO & mintMC42# Files needed for mintFO & mintMC
41RUN= $(FO_ANALYSE) $(FILES) cuts.o pythia_unlops.o recluster.o \43RUN= $(FO_ANALYSE) $(FILES) cuts.o pythia_unlops.o recluster.o \
@@ -58,7 +60,7 @@
58SYM= $(RUN) BinothLHADummy.o symmetry_fks_v3.o write_ajob.o60SYM= $(RUN) BinothLHADummy.o symmetry_fks_v3.o write_ajob.o
5961
60# Files for event reweighting to get e.g. scale and PDF uncertainties62# Files for event reweighting to get e.g. scale and PDF uncertainties
61RWGFILES=reweight_xsec_events.o handling_lhe_events.o \63RWGFILES=reweight_xsec_events.o handling_lhe_events.o recmom.o \
62 $(patsubst %.f,%.o,$(wildcard parton_lum_*.f)) setscales.o \64 $(patsubst %.f,%.o,$(wildcard parton_lum_*.f)) setscales.o \
63 cuts.o $(fastjetfortran_madfks) boostwdir2.o veto_xsec.o \65 cuts.o $(fastjetfortran_madfks) boostwdir2.o veto_xsec.o \
64 $(reweight_xsec_events_pdf_dummy) fill_MC_mshell.o cluster.o \66 $(reweight_xsec_events_pdf_dummy) fill_MC_mshell.o cluster.o \
@@ -86,17 +88,17 @@
86 $(CXX) $(CXXFLAGS) -c -I. -I$(ANADIR) $(FO_INCLUDEPATHS) $^88 $(CXX) $(CXXFLAGS) -c -I. -I$(ANADIR) $(FO_INCLUDEPATHS) $^
8789
88gensym: $(SYM)90gensym: $(SYM)
89 $(FC) $(LDFLAGS) -o gensym $(SYM) $(APPLLIBS) $(LINKLIBS) $(FJLIBS)91 $(FC) $(LDFLAGS) -o gensym $(SYM) $(APPLLIBS) $(LINKLIBS) $(FO_EXTRAPATHS) $(FO_EXTRALIBS) $(FJLIBS)
90 rm fks_singular.o92 rm fks_singular.o
91 strip gensym93 strip gensym
9294
93test_soft_col_limits: $(TEST)95test_soft_col_limits: $(TEST)
94 $(FC) $(LDFLAGS) -o test_soft_col_limits $(TEST) $(APPLLIBS) $(LINKLIBS) $(FJLIBS)96 $(FC) $(LDFLAGS) -o test_soft_col_limits $(TEST) $(APPLLIBS) $(LINKLIBS) $(FO_EXTRAPATHS) $(FO_EXTRALIBS) $(FJLIBS)
95 rm test_soft_col_limits.o97 rm test_soft_col_limits.o
96 strip test_soft_col_limits98 strip test_soft_col_limits
9799
98check_poles: $(POLES) $(libmadloop)100check_poles: $(POLES) $(libmadloop)
99 $(FC) -o check_poles $(POLES) $(NLOLIBS) $(APPLLIBS) $(LINKLIBS) $(FJLIBS) $(LDFLAGS)101 $(FC) -o check_poles $(POLES) $(NLOLIBS) $(APPLLIBS) $(LINKLIBS) $(FJLIBS) $(FO_EXTRAPATHS) $(FO_EXTRALIBS) $(LDFLAGS)
100 strip check_poles102 strip check_poles
101103
102madevent_mintMC: $(MINTMC) $(libmadloop) makefile $(LIBS)104madevent_mintMC: $(MINTMC) $(libmadloop) makefile $(LIBS)
103105
=== modified file 'Template/NLO/SubProcesses/open_output_files.f'
--- Template/NLO/SubProcesses/open_output_files.f 2015-03-05 16:12:37 +0000
+++ Template/NLO/SubProcesses/open_output_files.f 2021-01-08 10:23:50 +0000
@@ -32,6 +32,18 @@
32 subroutine HwU_write_file32 subroutine HwU_write_file
33 implicit none33 implicit none
34 double precision xnorm34 double precision xnorm
35c PineAPPL commons (this may not be the best place to put it)
36 include "reweight_pineappl.inc"
37 include "pineappl_common.inc"
38 logical pineappl
39 common /for_pineappl/ pineappl
40 integer j
41 if(pineappl)then
42 do j=1,nh_obs
43 appl_obs_num = j
44 call APPL_term
45 enddo
46 endif
35 open (unit=99,file='MADatNLO.HwU',status='unknown')47 open (unit=99,file='MADatNLO.HwU',status='unknown')
36 xnorm=1d048 xnorm=1d0
37 call HwU_output(99,xnorm)49 call HwU_output(99,xnorm)
3850
=== renamed file 'Template/NLO/SubProcesses/appl_common.inc' => 'Template/NLO/SubProcesses/pineappl_common.inc'
--- Template/NLO/SubProcesses/appl_common.inc 2016-02-10 14:18:55 +0000
+++ Template/NLO/SubProcesses/pineappl_common.inc 2021-01-08 10:23:50 +0000
@@ -1,37 +1,36 @@
1* -*-fortran-*-1* -*-fortran-*-
2************************************************************************2************************************************************************
3* NLO mode of aMC@NLO3* NLO mode of aMC@NLO
4* Common blocks needed for the PineAPPL interface
4************************************************************************5************************************************************************
5 include 'orders.inc'6 include 'orders.inc'
6* Amp split size7* Amp split size
7 integer appl_amp_split_size 8 integer appl_amp_split_size
8 common / appl_common_fixed / appl_amp_split_size9 integer appl_qcdpower(amp_split_size), appl_qedpower(amp_split_size)
10 common / appl_common_fixed / appl_amp_split_size, appl_qcdpower, appl_qedpower
911
10* Initial state map to be used together with the info in appl_flavmap12* Initial state map to be used together with the info in appl_flavmap
11 integer appl_nlumi13 integer appl_nlumi
12 integer mxpdflumi14 include 'pineappl_maxproc.inc'
13 integer max_nproc
14 parameter(mxpdflumi=121,max_nproc=121)
15 integer appl_nproc(mxpdflumi)15 integer appl_nproc(mxpdflumi)
16 integer appl_lumimap(2,max_nproc,mxpdflumi)16 integer appl_lumimap(2,max_nproc,mxpdflumi)
17 common / appl_common_lumi / appl_lumimap,appl_nproc,appl_nlumi17 common / appl_common_lumi / appl_lumimap,appl_nproc,appl_nlumi
1818
19* Event weights, kinematics, observables etc. that are different event by event19* Event weights, kinematics, observables etc. that are different event by event
20 double precision appl_x1(4, amp_split_size), 20 double precision appl_x1(4),
21 1 appl_x2(4, amp_split_size)21 1 appl_x2(4)
22 double precision appl_muF2(4, amp_split_size),22 double precision appl_muF2(4),
23 1 appl_muR2(4, amp_split_size),23 1 appl_muR2(4),
24 2 appl_QES2(4, amp_split_size)24 2 appl_QES2(4)
25 double precision appl_w0(4, amp_split_size),25 double precision appl_w0(4, amp_split_size),
26 1 appl_wR(4, amp_split_size),26 1 appl_wR(4, amp_split_size),
27 2 appl_wF(4, amp_split_size),27 2 appl_wF(4, amp_split_size),
28 3 appl_wB(4, amp_split_size)28 3 appl_wB(4, amp_split_size)
29 integer appl_qcdpower(4, amp_split_size)
30 integer appl_flavmap(4)29 integer appl_flavmap(4)
31 common / appl_common_weights / appl_x1,appl_x2,30 common / appl_common_weights / appl_x1,appl_x2,
32 1 appl_muF2,appl_muR2,appl_QES2,31 1 appl_muF2,appl_muR2,appl_QES2,
33 2 appl_w0,appl_wR,appl_wF,appl_wB,32 2 appl_w0,appl_wR,appl_wF,appl_wB,
34 3 appl_flavmap,appl_qcdpower33 3 appl_flavmap
3534
36* Parameters of the grids.35* Parameters of the grids.
37* These parameters can optionally be singularly specified by the user,36* These parameters can optionally be singularly specified by the user,
@@ -52,6 +51,7 @@
52 double precision appl_obs_bins(0:100)51 double precision appl_obs_bins(0:100)
53 integer appl_obs_nbins52 integer appl_obs_nbins
54 integer appl_itype53 integer appl_itype
54 integer appl_amp_pos
55 integer appl_obs_num55 integer appl_obs_num
56 common / appl_common_histokin / appl_www_histo,appl_norm_histo,56 common / appl_common_histokin / appl_www_histo,appl_norm_histo,
57 1 appl_obs_histo,57 1 appl_obs_histo,
@@ -59,10 +59,11 @@
59 3 appl_obs_bins,59 3 appl_obs_bins,
60 4 appl_obs_nbins,60 4 appl_obs_nbins,
61 5 appl_itype,61 5 appl_itype,
62 5 appl_amp_pos,
62 6 appl_obs_num63 6 appl_obs_num
6364
64* This is the actual hadronic event weight, computed with the LHAPDF set65* This is the actual hadronic event weight, computed with the LHAPDF set
65* defined above, needed for checks in the C++ applgrid interface66* defined above, needed for checks in the C++ pineappl interface
66* Save also the vegas weight, needed to fill histograms and for checks67* Save also the vegas weight, needed to fill histograms and for checks
67* appl_www_histo is the same weight used to will the amcatnlo68* appl_www_histo is the same weight used to will the amcatnlo
68* histograms in the madfks routine69* histograms in the madfks routine
6970
=== renamed file 'Template/NLO/SubProcesses/appl_interface.cc' => 'Template/NLO/SubProcesses/pineappl_interface.cc'
--- Template/NLO/SubProcesses/appl_interface.cc 2014-07-01 08:21:03 +0000
+++ Template/NLO/SubProcesses/pineappl_interface.cc 2021-01-08 10:23:50 +0000
@@ -1,45 +1,376 @@
1#include <algorithm>
2#include <cassert>
3#include <cmath>
4#include <cstddef>
5#include <cstdio>
6#include <cstdlib>
7#include <iomanip>
1#include <iostream>8#include <iostream>
2#include <stdlib.h>9#include <iterator>
10#include <sstream>
11#include <string>
12#include <vector>
13
14#include <pineappl_capi.h>
15
16#include "orders.h"
17
18#include "pineappl_maxproc.h"
319
4/*20/*
5 fNLO mode of aMCatNLO21 fNLO mode of aMCatNLO
6*/22*/
723
8void (*appl_initptr)() = 0;24// Declare grids
9void (*appl_fillptr)() = 0;25std::vector<pineappl_grid*> grid_obs;
10void (*appl_fillrefptr)() = 0;26
11void (*appl_fillrefoutptr)() = 0;27// translates an index from the range [0, __amp_split_size) to the indices need by `fill_grid`
12void (*appl_recoptr)() = 0;28std::vector<std::vector<int>> translation_tables;
13void (*appl_termptr)() = 0;29
1430// Information defined at the generation (configuration) step, that does
15extern "C" void appl_init_() {31// not vary event by event
16 // std::cerr<<"I am in appl_init (C++ version)"<<std::endl;32extern "C" struct
17 if (appl_initptr) appl_initptr(); 33{
18}34 int amp_split_size; // Maximum number of coupling-combinations
1935 int qcdpower[__amp_split_size]; // Power of alpha_s for each amp_split
20extern "C" void appl_fill_() {36 int qedpower[__amp_split_size]; // Power of alpha for each amp_split
21 //std::cerr<<"I am in appl_fill (C++ version)"<<std::endl;37} appl_common_fixed_;
22 if (appl_fillptr) appl_fillptr(); 38
23}39// Map of the PDF combinations from aMC@NLO - structure for each
2440// "subprocess" i, has some number nproc[i] pairs of parton
25extern "C" void appl_fill_ref_() {41// combinations. To be used together with the info in appl_flavmap.
26 //std::cerr<<"I am in appl_fill_ref (C++ version)"<<std::endl;42extern "C" struct
27 if (appl_fillrefptr) appl_fillrefptr(); 43{
28}44 int lumimap[__max_nproc__][__max_nproc__][2]; // (paired) subprocesses per combination
2945 int nproc[__max_nproc__]; // number of separate (pairwise) subprocesses for this combination
30extern "C" void appl_fill_ref_out_() {46 int nlumi; // overall number of combinations ( 0 < nlumi <= __mxpdflumi__ )
31 // std::cerr<<"I am in appl_fill_ref_out (C++ version)"<<std::endl;47} appl_common_lumi_;
32 if (appl_fillrefoutptr) appl_fillrefoutptr(); 48
33}49// Event weights, kinematics, etc. that are different event by event
3450extern "C" struct
35extern "C" void appl_reco_() {51{
36 // std::cerr<<"I am in appl_reco (C++ version)"<<std::endl;52 double x1[4], x2[4];
37 if (appl_recoptr) appl_recoptr(); 53 double muF2[4], muR2[4], muQES2[4];
38}54 double W0[__amp_split_size][4], WR[__amp_split_size][4];
3955 double WF[__amp_split_size][4], WB[__amp_split_size][4];
40extern "C" void appl_term_() {56 int flavmap[4];
41 //std::cerr<<"I am in appl_term (C++ version)"<<std::endl;57} appl_common_weights_;
42 if (appl_termptr) appl_termptr(); 58
43}59// Parameters of the grids.
4460// These parameters can optionally be singularly specified by the user,
4561// but if no specification is given, the code will use the default values.
62extern "C" struct
63{
64 double Q2min, Q2max;
65 double xmin, xmax;
66 int nQ2, Q2order;
67 int nx, xorder;
68} appl_common_grid_;
69
70// Parameters of the histograms
71extern "C" struct
72{
73 double www_histo, norm_histo;
74 double obs_histo;
75 double obs_min, obs_max;
76 double obs_bins[101];
77 int obs_nbins;
78 int itype_histo;
79 int amp_pos;
80 int obs_num;
81} appl_common_histokin_;
82
83// Event weight and cross section
84extern "C" struct
85{
86 double event_weight, vegaswgt;
87 double xsec12, xsec11, xsec20;
88} appl_common_reco_;
89
90// Check if a file exists
91bool file_exists(const std::string& s)
92{
93 if (std::FILE* testfile = std::fopen(s.c_str(), "r"))
94 {
95 std::fclose(testfile);
96 return true;
97 }
98 else
99 {
100 return false;
101 }
102}
103
104// Banner
105std::string Banner()
106{
107 return "\n"
108 " █████╗ ███╗ ███╗ ██████╗██████╗ ██╗ █████╗ ███████╗████████╗\n"
109 " ██╔══██╗████╗ ████║██╔════╝██╔══██╗██║ ██╔══██╗██╔════╝╚══██╔══╝\n"
110 " ███████║██╔████╔██║██║ ██████╔╝██║ ███████║███████╗ ██║\n"
111 " ██╔══██║██║╚██╔╝██║██║ ██╔══██╗██║ ██╔══██║╚════██║ ██║\n"
112 " ██║ ██║██║ ╚═╝ ██║╚██████╗██████╔╝███████╗██║ ██║███████║ ██║\n"
113 " ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═════╝ ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝\n";
114}
115
116extern "C" void appl_init_()
117{
118 // Grid Initialization and definition of the observables.
119 // Construct the input file name according to its position in the
120 // vector "grid_obs".
121 std::size_t const index = grid_obs.size();
122
123 int lo_power = 9999;
124 int nlo_power = 0;
125
126 for (int i = 0; i != appl_common_fixed_.amp_split_size; ++i)
127 {
128 int sum = appl_common_fixed_.qcdpower[i] + appl_common_fixed_.qedpower[i];
129
130 lo_power = std::min(lo_power, sum);
131 nlo_power = std::max(nlo_power, sum);
132 }
133
134 // TODO: are there any situations is which there are NLOs but no LOs?
135
136 // we assume that there is always at least one LO, and zero or one NLO
137 assert((nlo_power == (lo_power + 2)) || (nlo_power == lo_power));
138
139 std::vector<uint32_t> subgrid_params;
140
141 translation_tables.emplace_back();
142 translation_tables.back().reserve(appl_common_fixed_.amp_split_size);
143
144 for (int i = 0; i != appl_common_fixed_.amp_split_size; ++i)
145 {
146 int const qcd = appl_common_fixed_.qcdpower[i];
147 int const qed = appl_common_fixed_.qedpower[i];
148 int const sum = qcd + qed;
149
150 translation_tables.back().push_back(subgrid_params.size() / 4);
151
152 if (sum == lo_power)
153 {
154 // WB
155 subgrid_params.insert(subgrid_params.end(), { qcd / 2, qed / 2, 0, 0 });
156 }
157 else if (sum == nlo_power)
158 {
159 // W0
160 subgrid_params.insert(subgrid_params.end(), { qcd / 2, qed / 2, 0, 0 });
161 // WR
162 subgrid_params.insert(subgrid_params.end(), { qcd / 2, qed / 2, 1, 0 });
163 // WF
164 subgrid_params.insert(subgrid_params.end(), { qcd / 2, qed / 2, 0, 1 });
165 }
166 }
167
168 // Define the settings for the interpolation in x and Q2.
169 // These are common to all the grids computed.
170 // If values larger than zero (i.e. set by the user) are found the default
171 // settings are replaced with the new ones.
172 auto* key_vals = pineappl_keyval_new();
173
174 if (appl_common_grid_.nQ2 > 0)
175 {
176 pineappl_keyval_set_int(key_vals, "nq2", appl_common_grid_.nQ2);
177 }
178 // Max and min value of Q2
179 if (appl_common_grid_.Q2min > 0.0)
180 {
181 pineappl_keyval_set_double(key_vals, "q2min", appl_common_grid_.Q2min);
182 }
183 if (appl_common_grid_.Q2max > 0.0)
184 {
185 pineappl_keyval_set_double(key_vals, "q2max", appl_common_grid_.Q2max);
186 }
187 // Order of the polynomial interpolation in Q2
188 if (appl_common_grid_.Q2order > 0)
189 {
190 pineappl_keyval_set_int(key_vals, "q2order", appl_common_grid_.Q2order);
191 }
192 // Number of points for the x interpolation
193 if (appl_common_grid_.nx > 0)
194 {
195 pineappl_keyval_set_int(key_vals, "nx", appl_common_grid_.nx);
196 }
197 // Min and max value of x
198 if (appl_common_grid_.xmin > 0.0)
199 {
200 pineappl_keyval_set_double(key_vals, "xmin", appl_common_grid_.xmin);
201 }
202 if (appl_common_grid_.xmax > 0.0)
203 {
204 pineappl_keyval_set_double(key_vals, "xmax", appl_common_grid_.xmax);
205 }
206 // Order of the polynomial interpolation in x
207 if (appl_common_grid_.xorder > 0)
208 {
209 pineappl_keyval_set_int(key_vals, "xorder", appl_common_grid_.xorder);
210 }
211
212 // Set up the PDF luminosities
213 auto* lumi = pineappl_lumi_new();
214
215 // Loop over parton luminosities
216 for (int ilumi = 0; ilumi < appl_common_lumi_.nlumi; ilumi++)
217 {
218 int nproc = appl_common_lumi_.nproc[ilumi];
219
220 std::vector<int32_t> pdg_ids;
221 pdg_ids.reserve(2 * nproc);
222
223 for (int iproc = 0; iproc != nproc; ++iproc)
224 {
225 pdg_ids.push_back(appl_common_lumi_.lumimap[ilumi][iproc][0]);
226 pdg_ids.push_back(appl_common_lumi_.lumimap[ilumi][iproc][1]);
227 }
228
229 pineappl_lumi_add(lumi, nproc, pdg_ids.data(), nullptr);
230 }
231
232 // Use the reweighting function
233 pineappl_keyval_set_bool(key_vals, "reweight", true);
234
235 // valid choices are: "LagrangeSubgrid", "NtupleSubgrid"
236 pineappl_keyval_set_string(key_vals, "subgrid_type", "LagrangeSubgrid");
237
238 // Create a grid with the binning given in the "obsbins[Nbins+1]" array
239 grid_obs.push_back(pineappl_grid_new(
240 lumi,
241 subgrid_params.size() / 4,
242 subgrid_params.data(),
243 appl_common_histokin_.obs_nbins,
244 appl_common_histokin_.obs_bins,
245 key_vals
246 ));
247
248 pineappl_keyval_delete(key_vals);
249 pineappl_lumi_delete(lumi);
250}
251
252extern "C" void appl_fill_()
253{
254 // Check that itype ranges from 1 to 5.
255 int itype = appl_common_histokin_.itype_histo;
256 if ((itype < 1) || (itype > 5))
257 {
258 std::cout << "amcblast ERROR: Invalid value of itype = " << itype << std::endl;
259 std::exit(-10);
260 }
261
262 // this is the second index of the WB/R/F/0 arrays
263 int index = appl_common_histokin_.amp_pos - 1;
264
265 // aMC@NLO weights. Four grids, ordered as {W0,WR,WF,WB}.
266 double(&W0)[4] = appl_common_weights_.W0[index];
267 double(&WR)[4] = appl_common_weights_.WR[index];
268 double(&WF)[4] = appl_common_weights_.WF[index];
269 double(&WB)[4] = appl_common_weights_.WB[index];
270
271 int ilumi;
272 int nlumi = appl_common_lumi_.nlumi;
273 double ttol = 1e-100;
274 double x1, x2;
275 double scale2;
276 double obs = appl_common_histokin_.obs_histo;
277
278 // Histogram number
279 int nh = appl_common_histokin_.obs_num - 1;
280
281 // translate (index,nh) -> index of the PineAPPL grid
282 int const grid_index = translation_tables.at(nh).at(index);
283
284 int k;
285
286 switch (itype)
287 {
288 case 1:
289 k = 0;
290 break;
291
292 case 2:
293 case 3:
294 k = 1;
295 break;
296
297 case 4:
298 k = 2;
299 break;
300
301 case 5:
302 k = 3;
303 break;
304
305 default:
306 assert( false );
307 }
308
309 x1 = appl_common_weights_.x1[k];
310 x2 = appl_common_weights_.x2[k];
311
312 static std::vector<std::vector<std::vector<double>>> x1Saved(5, std::vector<std::vector<double>>(
313 grid_obs.size(), std::vector<double>(pineappl_grid_order_count(grid_obs[nh]), 0.0)));
314 static std::vector<std::vector<std::vector<double>>> x2Saved(5, std::vector<std::vector<double>>(
315 grid_obs.size(), std::vector<double>(pineappl_grid_order_count(grid_obs[nh]), 0.0)));
316
317 if (x1 == x1Saved[itype - 1][nh][grid_index] && x2 == x2Saved[itype - 1][nh][grid_index])
318 {
319 return;
320 }
321 else
322 {
323 x1Saved[itype - 1][nh][grid_index] = x1;
324 x2Saved[itype - 1][nh][grid_index] = x2;
325 }
326
327 scale2 = appl_common_weights_.muF2[k];
328 ilumi = appl_common_weights_.flavmap[k] - 1;
329
330 if (x1 < 0.0 || x1 > 1.0 || x2 < 0.0 || x2 > 1.0)
331 {
332 std::cout << "amcblast ERROR: Invalid value of x1 and/or x2 = " << x1 << " " << x2
333 << std::endl;
334 std::exit(-10);
335 }
336
337 if (x1 == 0.0 && x2 == 0.0)
338 {
339 return;
340 }
341
342 if (std::fabs(W0[k]) > ttol)
343 {
344 pineappl_grid_fill(grid_obs[nh], x1, x2, scale2, grid_index + 0, obs, ilumi, W0[k]);
345 }
346
347 if (std::fabs(WR[k]) > ttol)
348 {
349 pineappl_grid_fill(grid_obs[nh], x1, x2, scale2, grid_index + 1, obs, ilumi, WR[k]);
350 }
351
352 if (std::fabs(WF[k]) > ttol)
353 {
354 pineappl_grid_fill(grid_obs[nh], x1, x2, scale2, grid_index + 2, obs, ilumi, WF[k]);
355 }
356
357 if (std::fabs(WB[k]) > ttol)
358 {
359 pineappl_grid_fill(grid_obs[nh], x1, x2, scale2, grid_index, obs, ilumi, WB[k]);
360 }
361}
362
363extern "C" void appl_term_()
364{
365 // Histogram number
366 int const nh = appl_common_histokin_.obs_num - 1;
367
368 // convert between gs^2 and alphas, and normalize the grid by (hbarc)^2 and the number of runs
369 pineappl_grid_scale_by_order(grid_obs[nh], 4.0 * std::acos(-1.0), 1.0, 1.0, 1.0,
370 389379660.0 * appl_common_histokin_.norm_histo);
371
372 // Write grid to file
373 pineappl_grid_write(grid_obs[nh], ("grid_obs_" + std::to_string(nh) + "_out.pineappl").c_str());
374
375 pineappl_grid_delete(grid_obs[nh]);
376}
46377
=== renamed file 'Template/NLO/SubProcesses/appl_interface_dummy.f' => 'Template/NLO/SubProcesses/pineappl_interface_dummy.f'
--- Template/NLO/SubProcesses/appl_interface_dummy.f 2014-06-26 08:45:41 +0000
+++ Template/NLO/SubProcesses/pineappl_interface_dummy.f 2021-01-08 10:23:50 +0000
@@ -5,20 +5,6 @@
5 return5 return
6 end6 end
7c7c
8 subroutine APPL_fill_ref_out
9 implicit none
10 write(6,*) "You should not be here in APPL_fill dummy!"
11 stop
12 return
13 end
14c
15 subroutine APPL_fill_ref
16 implicit none
17 write(6,*) "You should not be here in APPL_fill dummy!"
18 stop
19 return
20 end
21c
22 subroutine APPL_init8 subroutine APPL_init
23 implicit none9 implicit none
24 write(6,*) "You should not be here in APPL_init dummy!"10 write(6,*) "You should not be here in APPL_init dummy!"
2511
=== added file 'Template/NLO/SubProcesses/recmom.f'
--- Template/NLO/SubProcesses/recmom.f 1970-01-01 00:00:00 +0000
+++ Template/NLO/SubProcesses/recmom.f 2021-01-08 10:23:50 +0000
@@ -0,0 +1,139 @@
1 subroutine recombine_momenta(R, etaph, reco_l, reco_q, p_in, pdg_in, p_out, pdg_out)
2 implicit none
3 ! recombine photons with the closest fermion if the distance is
4 ! less than R and if the rapidity of photons is < etaph (etaph < 0
5 ! means no cut). Output a new set of momenta and pdgs corresponding
6 ! to the recombined particles. If recombination occurs the photon
7 ! disappears from the output particles
8 ! arguments
9 include 'nexternal.inc'
10 double precision R, etaph, p_in(0:4,nexternal), p_out(0:4,nexternal)
11 logical reco_l, reco_q
12 integer pdg_in(nexternal), pdg_out(nexternal)
13 ! local variables
14 integer nq, nl
15 integer id_ph
16 parameter (id_ph=22)
17 integer n_ph, i_ph
18 integer i,j
19 integer ifreco
20 double precision dreco, dthis
21 integer skip
22 logical is_light_charged_fermion
23 double precision R2, eta
24 !
25 integer times_reco
26 common/to_times_reco/ times_reco
27 ! reset everything
28 do j=1,nexternal
29 pdg_out(j)=0
30 do i=0,4
31 p_out(i,j)=0d0
32 enddo
33 enddo
34
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: