Merge lp:~maddevelopers/mg5amcnlo/FKS_EW_flattened_dsig_merged2.3.3 into lp:~maddevelopers/mg5amcnlo/FKS_EW_flattened_dsig

Proposed by marco zaro
Status: Rejected
Rejected by: Olivier Mattelaer
Proposed branch: lp:~maddevelopers/mg5amcnlo/FKS_EW_flattened_dsig_merged2.3.3
Merge into: lp:~maddevelopers/mg5amcnlo/FKS_EW_flattened_dsig
Diff against target: 493700 lines (+240185/-179829) (has conflicts)
1206 files modified
MadSpin/decay.py (+169/-51)
MadSpin/interface_madspin.py (+129/-43)
MadSpin/src/driver.f (+1/-1)
Template/Common/Cards/delphes_card_ATLAS.dat (+163/-90)
Template/Common/Cards/delphes_card_CMS.dat (+147/-89)
Template/Common/Cards/delphes_card_default.dat (+147/-89)
Template/Common/Cards/reweight_card_default.dat (+67/-23)
Template/Common/bin/internal/run_pythia (+0/-23)
Template/LO/Cards/madanalysis5_hadron_card_default.dat (+3/-0)
Template/LO/Cards/madanalysis5_parton_card_default.dat (+3/-0)
Template/LO/Cards/pythia8_card_default.dat (+77/-0)
Template/LO/Cards/run_card.dat (+53/-55)
Template/LO/Source/BIAS/dummy/dummy.f (+44/-0)
Template/LO/Source/BIAS/dummy/makefile (+21/-0)
Template/LO/Source/BIAS/ptj_bias/makefile (+27/-0)
Template/LO/Source/BIAS/ptj_bias/ptj_bias.f (+101/-0)
Template/LO/Source/PDF/makefile (+5/-1)
Template/LO/Source/PDF/pdf_lhapdf.f (+4/-3)
Template/LO/Source/PDF/pdf_lhapdf6.cc (+1120/-0)
Template/LO/Source/PDF/pdg2pdf_lhapdf6.f (+120/-0)
Template/LO/Source/cuts.inc (+7/-3)
Template/LO/Source/dsample.f (+2/-2)
Template/LO/Source/genps.inc (+2/-2)
Template/LO/Source/kin_functions.f (+5/-1)
Template/LO/Source/lhe_event_infos.inc (+16/-0)
Template/LO/Source/make_opts (+82/-38)
Template/LO/Source/run.inc (+8/-0)
Template/LO/Source/rw_events.f (+125/-3)
Template/LO/Source/setrun.f (+1/-1)
Template/LO/SubProcesses/cuts.f (+1750/-1316)
Template/LO/SubProcesses/genps.f (+3/-3)
Template/LO/SubProcesses/makefile (+11/-4)
Template/LO/SubProcesses/myamp.f (+16/-33)
Template/LO/SubProcesses/refine.sh (+40/-13)
Template/LO/SubProcesses/reweight.f (+87/-22)
Template/LO/SubProcesses/setcuts.f (+197/-92)
Template/LO/SubProcesses/unwgt.f (+109/-48)
Template/LO/bin/generate_events (+2/-2)
Template/LO/bin/internal/Gridpack/compile (+2/-2)
Template/LO/bin/internal/create_matching_plots.C (+10/-0)
Template/LO/bin/internal/create_matching_plots.sh (+1/-3)
Template/LO/bin/internal/make_gridpack (+1/-1)
Template/LO/bin/internal/plot_tree.C (+5/-1)
Template/LO/bin/internal/read_tree_files.C (+0/-12)
Template/LO/bin/internal/run_delphes3 (+31/-12)
Template/LO/bin/internal/store4grid (+0/-3)
Template/LO/bin/madevent (+4/-2)
Template/MadWeight/Python/Info.py (+5/-5)
Template/MadWeight/Python/clean.py (+2/-2)
Template/NLO/Cards/run_card.dat (+50/-48)
Template/NLO/Cards/shower_card.dat (+53/-38)
Template/NLO/FixedOrderAnalysis/HwU.f (+7/-8)
Template/NLO/FixedOrderAnalysis/HwU.inc (+2/-2)
Template/NLO/FixedOrderAnalysis/analysis_HwU_pp_lplm.f (+1/-1)
Template/NLO/FixedOrderAnalysis/analysis_root_pp_lplm.f (+1/-1)
Template/NLO/FixedOrderAnalysis/analysis_td_pp_lplm.f (+1/-1)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_V.f (+6/-4)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_h.f (+5/-3)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_hjj.f (+5/-3)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_leptons.f (+5/-3)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_lplm.f (+6/-4)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_lvl.f (+5/-3)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_taptam.f (+5/-3)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_tj.f (+5/-3)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_ttx.f (+5/-3)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_pp_ttx_v2.f (+5/-3)
Template/NLO/MCatNLO/HWAnalyzer/hw6an_HwU_rates.f (+5/-3)
Template/NLO/MCatNLO/HWAnalyzer/mcatnlo_hwan_pp_V.f (+1/-2)
Template/NLO/MCatNLO/HWAnalyzer/mcatnlo_hwan_pp_h.f (+1/-2)
Template/NLO/MCatNLO/HWAnalyzer/mcatnlo_hwan_pp_hjj.f (+1/-2)
Template/NLO/MCatNLO/HWAnalyzer/mcatnlo_hwan_pp_leptons.f (+1/-2)
Template/NLO/MCatNLO/HWAnalyzer/mcatnlo_hwan_pp_lplm.f (+2/-3)
Template/NLO/MCatNLO/HWAnalyzer/mcatnlo_hwan_pp_lvl.f (+1/-2)
Template/NLO/MCatNLO/HWAnalyzer/mcatnlo_hwan_pp_taptam.f (+1/-2)
Template/NLO/MCatNLO/HWAnalyzer/mcatnlo_hwan_pp_tj.f (+1/-2)
Template/NLO/MCatNLO/HWAnalyzer/mcatnlo_hwan_pp_ttx.f (+1/-2)
Template/NLO/MCatNLO/HWAnalyzer/mcatnlo_hwan_pp_ttx_v2.f (+1/-2)
Template/NLO/MCatNLO/HWAnalyzer/mcatnlo_hwan_rates.f (+1/-2)
Template/NLO/MCatNLO/HWPPAnalyzer/HepMCFortran.h (+0/-154)
Template/NLO/MCatNLO/HWPPAnalyzer/HepMCFortran2.h (+154/-0)
Template/NLO/MCatNLO/HWPPAnalyzer/HepMCFortran7.h (+154/-0)
Template/NLO/MCatNLO/HWPPAnalyzer/Makefile (+18/-40)
Template/NLO/MCatNLO/HWPPAnalyzer/hwppan_HwU_pp_V.f (+8/-2)
Template/NLO/MCatNLO/HWPPAnalyzer/hwppan_HwU_pp_h.f (+8/-2)
Template/NLO/MCatNLO/HWPPAnalyzer/hwppan_HwU_pp_hjj.f (+8/-2)
Template/NLO/MCatNLO/HWPPAnalyzer/hwppan_HwU_pp_leptons.f (+8/-2)
Template/NLO/MCatNLO/HWPPAnalyzer/hwppan_HwU_pp_lplm.f (+9/-3)
Template/NLO/MCatNLO/HWPPAnalyzer/hwppan_HwU_pp_lvl.f (+8/-2)
Template/NLO/MCatNLO/HWPPAnalyzer/hwppan_HwU_pp_taptam.f (+8/-2)
Template/NLO/MCatNLO/HWPPAnalyzer/hwppan_HwU_pp_tj.f (+8/-2)
Template/NLO/MCatNLO/HWPPAnalyzer/hwppan_HwU_pp_ttx.f (+8/-2)
Template/NLO/MCatNLO/HWPPAnalyzer/hwppan_HwU_pp_ttx_v2.f (+8/-2)
Template/NLO/MCatNLO/HWPPAnalyzer/hwppan_HwU_rates.f (+8/-2)
Template/NLO/MCatNLO/HWPPAnalyzer/mcatnlo_hwan_pp_lplm_hepmc.f (+1/-1)
Template/NLO/MCatNLO/Makefile_MadFKS (+24/-55)
Template/NLO/MCatNLO/PY8Analyzer/mcatnlo_pyan_pp_V_hepmc.f (+3/-5)
Template/NLO/MCatNLO/PY8Analyzer/mcatnlo_pyan_pp_h_hepmc.f (+4/-5)
Template/NLO/MCatNLO/PY8Analyzer/mcatnlo_pyan_pp_hjj_hepmc.f (+3/-5)
Template/NLO/MCatNLO/PY8Analyzer/mcatnlo_pyan_pp_leptons_hepmc.f (+3/-5)
Template/NLO/MCatNLO/PY8Analyzer/mcatnlo_pyan_pp_lplm_hepmc.f (+4/-6)
Template/NLO/MCatNLO/PY8Analyzer/mcatnlo_pyan_pp_lvl_hepmc.f (+3/-5)
Template/NLO/MCatNLO/PY8Analyzer/mcatnlo_pyan_pp_taptam_hepmc.f (+3/-5)
Template/NLO/MCatNLO/PY8Analyzer/mcatnlo_pyan_pp_tj_hepmc.f (+3/-5)
Template/NLO/MCatNLO/PY8Analyzer/mcatnlo_pyan_pp_ttx_hepmc.f (+3/-5)
Template/NLO/MCatNLO/PY8Analyzer/mcatnlo_pyan_pp_ttx_v2_hepmc.f (+3/-5)
Template/NLO/MCatNLO/PY8Analyzer/mcatnlo_pyan_rates_hepmc.f (+3/-5)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_V.f (+10/-11)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_h.f (+11/-12)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_hjj.f (+11/-12)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_leptons.f (+11/-12)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_lplm.f (+12/-13)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_lvl.f (+11/-12)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_taptam.f (+11/-12)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_tj.f (+11/-12)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_ttx.f (+11/-12)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_pp_ttx_v2.f (+11/-12)
Template/NLO/MCatNLO/PY8Analyzer/py8an_HwU_rates.f (+11/-12)
Template/NLO/MCatNLO/PYAnalyzer/mcatnlo_pyan_pp_V.f (+1/-2)
Template/NLO/MCatNLO/PYAnalyzer/mcatnlo_pyan_pp_h.f (+1/-2)
Template/NLO/MCatNLO/PYAnalyzer/mcatnlo_pyan_pp_hjj.f (+1/-2)
Template/NLO/MCatNLO/PYAnalyzer/mcatnlo_pyan_pp_leptons.f (+1/-2)
Template/NLO/MCatNLO/PYAnalyzer/mcatnlo_pyan_pp_lplm.f (+2/-3)
Template/NLO/MCatNLO/PYAnalyzer/mcatnlo_pyan_pp_lvl.f (+1/-2)
Template/NLO/MCatNLO/PYAnalyzer/mcatnlo_pyan_pp_taptam.f (+1/-2)
Template/NLO/MCatNLO/PYAnalyzer/mcatnlo_pyan_pp_tj.f (+1/-2)
Template/NLO/MCatNLO/PYAnalyzer/mcatnlo_pyan_pp_ttx.f (+1/-2)
Template/NLO/MCatNLO/PYAnalyzer/mcatnlo_pyan_pp_ttx_v2.f (+1/-2)
Template/NLO/MCatNLO/PYAnalyzer/mcatnlo_pyan_rates.f (+1/-2)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_V.f (+5/-3)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_h.f (+5/-3)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_hjj.f (+5/-3)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_leptons.f (+5/-3)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_lplm.f (+6/-4)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_lvl.f (+5/-3)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_taptam.f (+5/-3)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_tj.f (+5/-3)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_ttx.f (+5/-3)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_pp_ttx_v2.f (+5/-3)
Template/NLO/MCatNLO/PYAnalyzer/py6an_HwU_rates.f (+5/-3)
Template/NLO/MCatNLO/Scripts/MCatNLO_MadFKS_HERWIGPP.Script (+56/-34)
Template/NLO/MCatNLO/Scripts/MCatNLO_MadFKS_PYTHIA8.Script (+83/-94)
Template/NLO/MCatNLO/Scripts/MCatNLO_MadFKS_PYTHIA8.ScriptBAK (+788/-0)
Template/NLO/MCatNLO/include/LHEFRead.h (+23/-41)
Template/NLO/MCatNLO/shower_template.sh (+1/-1)
Template/NLO/MCatNLO/srcHerwig/madfks_hwlhin.f (+64/-150)
Template/NLO/MCatNLO/srcPythia/madfks_pylhin.f (+47/-142)
Template/NLO/MCatNLO/srcPythia8/Makefile (+4/-31)
Template/NLO/MCatNLO/srcPythia8/Makefile_hep (+5/-31)
Template/NLO/MCatNLO/srcPythia8/Pythia8.cc (+4/-3)
Template/NLO/MCatNLO/srcPythia8/Pythia82.cc (+51/-5)
Template/NLO/MCatNLO/srcPythia8/Pythia82.ccBAK (+165/-0)
Template/NLO/Source/PDF/CT14Pdf.f (+732/-0)
Template/NLO/Source/PDF/makefile (+14/-1)
Template/NLO/Source/PDF/pdf.f (+27/-1)
Template/NLO/Source/PDF/pdf_lhapdf6.cc (+1120/-0)
Template/NLO/Source/PDF/pdf_list.txt (+4/-1)
Template/NLO/Source/PDF/pdfwrap.f (+43/-0)
Template/NLO/Source/PDF/pdg2pdf.f (+5/-1)
Template/NLO/Source/PDF/pdg2pdf_lhapdf.f (+13/-11)
Template/NLO/Source/PDF/pdg2pdf_lhapdf6.f (+132/-0)
Template/NLO/Source/make_opts.inc (+43/-7)
Template/NLO/Source/run.inc (+10/-6)
Template/NLO/Source/run_config.inc (+1/-1)
Template/NLO/Source/setrun.f (+49/-3)
Template/NLO/SubProcesses/BinothLHA.f (+111/-111)
Template/NLO/SubProcesses/BinothLHA_OLP.f (+5/-23)
Template/NLO/SubProcesses/BinothLHA_user.f (+3/-22)
Template/NLO/SubProcesses/add_write_info.f (+2/-2)
Template/NLO/SubProcesses/ajob_template (+38/-99)
Template/NLO/SubProcesses/appl_common.inc (+15/-8)
Template/NLO/SubProcesses/c_weight.inc (+6/-4)
Template/NLO/SubProcesses/check_poles.f (+3/-1)
Template/NLO/SubProcesses/chooser_functions.f (+10/-7)
Template/NLO/SubProcesses/cluster.f (+4/-4)
Template/NLO/SubProcesses/collect_events.f (+29/-10)
Template/NLO/SubProcesses/combine_results.sh (+0/-55)
Template/NLO/SubProcesses/combine_results_FO.sh (+0/-52)
Template/NLO/SubProcesses/combine_root.sh (+1/-1)
Template/NLO/SubProcesses/cuts.f (+4/-4)
Template/NLO/SubProcesses/driver_mintFO.f (+99/-112)
Template/NLO/SubProcesses/driver_mintMC.f (+38/-14)
Template/NLO/SubProcesses/fjcore.cc (+1929/-154)
Template/NLO/SubProcesses/fjcore.hh (+147/-66)
Template/NLO/SubProcesses/fks_Sij.f (+13/-3)
Template/NLO/SubProcesses/fks_singular.f (+662/-606)
Template/NLO/SubProcesses/genps_fks.f (+391/-291)
Template/NLO/SubProcesses/handling_lhe_events.f (+481/-616)
Template/NLO/SubProcesses/iproc_map.f (+32/-38)
Template/NLO/SubProcesses/madfks_plot.f (+159/-99)
Template/NLO/SubProcesses/makefile (+1/-0)
Template/NLO/SubProcesses/makefile_fks_dir (+15/-10)
Template/NLO/SubProcesses/makefile_loop.inc (+14/-2)
Template/NLO/SubProcesses/mint-integrator2.f (+74/-64)
Template/NLO/SubProcesses/montecarlocounter.f (+154/-96)
Template/NLO/SubProcesses/pythia_unlops.f (+2/-2)
Template/NLO/SubProcesses/reweight.f (+2/-2)
Template/NLO/SubProcesses/reweight.inc (+2/-2)
Template/NLO/SubProcesses/reweight0.inc (+24/-8)
Template/NLO/SubProcesses/reweightNLO.inc (+0/-5)
Template/NLO/SubProcesses/reweight_xsec.f (+52/-19)
Template/NLO/SubProcesses/reweight_xsec_events.f (+372/-480)
Template/NLO/SubProcesses/setcuts.f (+105/-40)
Template/NLO/SubProcesses/setscales.f (+15/-5)
Template/NLO/SubProcesses/splitorders_stuff.f (+152/-0)
Template/NLO/SubProcesses/sumres.py (+0/-249)
Template/NLO/SubProcesses/symmetry_fks_test_MC.f (+146/-9)
Template/NLO/SubProcesses/symmetry_fks_test_ME.f (+28/-8)
Template/NLO/SubProcesses/symmetry_fks_v3.f (+11/-13)
Template/NLO/SubProcesses/write_ajob.f (+1/-1)
Template/NLO/SubProcesses/write_event.f (+11/-8)
Template/NLO/Utilities/VetoPrefactors/resum_reweighter.py (+1/-1)
Template/NLO/Utilities/VetoPrefactors/virt_reweighter.py (+4/-4)
Template/NLO/Utilities/split_events.f (+5/-3)
Template/NLO/Utilities/thrbdec2_usage.f (+430/-0)
Template/NLO/bin/aMCatNLO (+4/-1)
Template/NLO/lib/Pdfdata/ph0.00_Proton.pds (+6184/-0)
Template/NLO/lib/Pdfdata/ph0.07_Proton.pds (+6184/-0)
Template/NLO/lib/Pdfdata/ph0.14_Proton.pds (+6184/-0)
Template/NLO/lib/Pdfdata/ph0.21_Proton.pds (+6184/-0)
Template/RWGTNLO/alfas.inc (+11/-0)
Template/RWGTNLO/alfas_functions_lhapdf.f (+167/-0)
Template/RWGTNLO/makefile (+19/-0)
Template/RWGTNLO/rwgt.f (+114/-0)
Template/RWGTNLO/setrun.f (+88/-0)
Template/RWGTNLO/timing_variables.inc (+9/-0)
Template/loop_material/Checks/StabilityCheckDriver.f (+6/-6)
Template/loop_material/Checks/StabilityCheckDriver_loop_induced.f (+6/-6)
Template/loop_material/OLP_specifics/GoSam/gosam.rc (+9/-21)
Template/loop_material/StandAlone/Cards/MadLoopParams.dat (+93/-9)
Template/loop_material/StandAlone/SubProcesses/MadLoopCommons.inc (+286/-48)
Template/loop_material/StandAlone/SubProcesses/MadLoopParamReader.f (+82/-9)
Template/loop_material/StandAlone/SubProcesses/MadLoopParams.inc (+14/-6)
Template/loop_material/StandAlone/SubProcesses/makefile (+40/-8)
UpdateNotes.txt (+168/-1)
VERSION (+3/-2)
aloha/aloha_lib.py (+13/-2)
aloha/aloha_object.py (+2/-2)
aloha/aloha_writers.py (+43/-22)
aloha/create_aloha.py (+6/-7)
aloha/template_files/aloha_functions_loop.f (+11/-10)
aloha/template_files/ixxxxx.cc (+7/-7)
aloha/template_files/oxxxxx.cc (+12/-12)
aloha/template_files/txxxxx.cc (+5/-5)
aloha/template_files/vxxxxx.cc (+7/-7)
aloha/template_files/wavefunctions.py (+16/-8)
bin/create_release.py (+32/-85)
bin/mg5 (+2/-2)
bin/mg5_aMC (+22/-5)
input/.mg5_configuration_default.txt (+47/-11)
madgraph/core/base_objects.py (+313/-114)
madgraph/core/color_algebra.py (+45/-0)
madgraph/core/diagram_generation.py (+86/-53)
madgraph/core/drawing.py (+14/-7)
madgraph/core/helas_objects.py (+18/-1)
madgraph/fks/fks_base.py (+209/-111)
madgraph/fks/fks_common.py (+50/-17)
madgraph/fks/fks_helas_objects.py (+450/-46)
madgraph/interface/amcatnlo_interface.py (+217/-53)
madgraph/interface/amcatnlo_run_interface.py (+1551/-914)
madgraph/interface/coloring_logging.py (+3/-0)
madgraph/interface/common_run_interface.py (+3022/-443)
madgraph/interface/extended_cmd.py (+658/-63)
madgraph/interface/launch_ext_program.py (+14/-12)
madgraph/interface/loop_interface.py (+411/-51)
madgraph/interface/madevent_interface.py (+2058/-449)
madgraph/interface/madgraph_interface.py (+1915/-557)
madgraph/interface/madweight_interface.py (+3/-3)
madgraph/interface/master_interface.py (+10/-6)
madgraph/interface/reweight_interface.py (+1322/-238)
madgraph/iolibs/drawing_eps.py (+166/-24)
madgraph/iolibs/export_cpp.py (+530/-386)
madgraph/iolibs/export_fks.py (+249/-96)
madgraph/iolibs/export_v4.py (+762/-418)
madgraph/iolibs/file_writers.py (+42/-10)
madgraph/iolibs/files.py (+10/-1)
madgraph/iolibs/group_subprocs.py (+2/-3)
madgraph/iolibs/import_v4.py (+2/-2)
madgraph/iolibs/template_files/addmothers.f (+5/-4)
madgraph/iolibs/template_files/auto_dsig_v4.inc (+10/-3)
madgraph/iolibs/template_files/b_sf_xxx_splitorders_fks.inc (+6/-0)
madgraph/iolibs/template_files/born_cnt_splitorders_fks.inc (+1/-22)
madgraph/iolibs/template_files/born_fks.inc (+0/-259)
madgraph/iolibs/template_files/bornmatrix_splitorders_fks.inc (+24/-3)
madgraph/iolibs/template_files/check_sa.cpp (+1/-1)
madgraph/iolibs/template_files/driver_reweight.f (+0/-103)
madgraph/iolibs/template_files/loop/CT_interface.inc (+2/-2)
madgraph/iolibs/template_files/loop/check_sa.inc (+11/-9)
madgraph/iolibs/template_files/loop/check_sa_loop_induced.inc (+8/-6)
madgraph/iolibs/template_files/loop/loop_matrix_standalone.inc (+262/-14)
madgraph/iolibs/template_files/loop/mp_born_amps_and_wfs.inc (+13/-1)
madgraph/iolibs/template_files/loop_optimized/COLLIER_interface.inc (+646/-0)
madgraph/iolibs/template_files/loop_optimized/CT_interface.inc (+977/-18)
madgraph/iolibs/template_files/loop_optimized/GOLEM_interface.inc (+35/-56)
madgraph/iolibs/template_files/loop_optimized/TIR_interface.inc (+144/-39)
madgraph/iolibs/template_files/loop_optimized/check_py.f.inc (+114/-0)
madgraph/iolibs/template_files/loop_optimized/check_sa.py.inc (+106/-0)
madgraph/iolibs/template_files/loop_optimized/compute_color_flows.inc (+11/-11)
madgraph/iolibs/template_files/loop_optimized/helas_calls_split.inc (+5/-5)
madgraph/iolibs/template_files/loop_optimized/helas_loop_amplitude.inc (+56/-9)
madgraph/iolibs/template_files/loop_optimized/loop_matrix_standalone.inc (+516/-100)
madgraph/iolibs/template_files/loop_optimized/loop_num.inc (+2/-4)
madgraph/iolibs/template_files/loop_optimized/mp_compute_loop_coefs.inc (+248/-43)
madgraph/iolibs/template_files/loop_optimized/mp_helas_calls_split.inc (+3/-6)
madgraph/iolibs/template_files/loop_optimized/polynomial.inc (+26/-8)
madgraph/iolibs/template_files/madevent_makefile_source (+7/-3)
madgraph/iolibs/template_files/madevent_run_config.inc (+4/-0)
madgraph/iolibs/template_files/madevent_symmetry.f (+2/-2)
madgraph/iolibs/template_files/makefile_sa_f_sp (+11/-2)
madgraph/iolibs/template_files/matrix_loop_induced_madevent.inc (+6/-3)
madgraph/iolibs/template_files/matrix_loop_induced_madevent_group.inc (+6/-3)
madgraph/iolibs/template_files/matrix_madevent_group_v4.inc (+8/-4)
madgraph/iolibs/template_files/matrix_standalone_splitOrders_v4.inc (+152/-13)
madgraph/iolibs/template_files/matrix_standalone_v4.inc (+156/-14)
madgraph/iolibs/template_files/parton_lum_n_fks.inc (+6/-1)
madgraph/iolibs/template_files/pythia8/pythia8.2_main_example_cc.inc (+63/-0)
madgraph/iolibs/template_files/pythia8/pythia8.2_main_makefile.inc (+36/-0)
madgraph/iolibs/template_files/pythia8/pythia8.2_makefile.inc (+104/-0)
madgraph/iolibs/template_files/pythia8/pythia8_main_example_cc.inc (+2/-2)
madgraph/iolibs/template_files/pythia8/pythia8_model_parameters_cc.inc (+1/-1)
madgraph/iolibs/template_files/pythia8/pythia8_model_parameters_h.inc (+3/-3)
madgraph/iolibs/template_files/pythia8/pythia8_process_h.inc (+1/-1)
madgraph/iolibs/template_files/pythia8/pythia8_process_hel_amp_h.inc (+1/-1)
madgraph/iolibs/template_files/read_slha.cc (+24/-26)
madgraph/iolibs/template_files/read_slha.h (+20/-18)
madgraph/iolibs/template_files/realmatrix_splitorders_fks.inc (+26/-11)
madgraph/iolibs/template_files/super_auto_dsig_group_v4.inc (+7/-4)
madgraph/iolibs/ufo_expression_parsers.py (+50/-7)
madgraph/loop/MadLoopBannerStyles.py (+0/-1)
madgraph/loop/loop_base_objects.py (+1/-1)
madgraph/loop/loop_diagram_generation.py (+190/-86)
madgraph/loop/loop_exporters.py (+536/-211)
madgraph/loop/loop_helas_objects.py (+47/-9)
madgraph/madevent/combine_runs.py (+11/-9)
madgraph/madevent/gen_crossxhtml.py (+382/-174)
madgraph/madevent/gen_ximprove.py (+20/-5)
madgraph/madevent/sum_html.py (+38/-21)
madgraph/madweight/create_param.py (+3/-3)
madgraph/madweight/diagram_class.py (+3/-3)
madgraph/madweight/verif_event.py (+122/-122)
madgraph/various/banner.py (+1828/-229)
madgraph/various/cluster.py (+174/-158)
madgraph/various/combine_plots.py (+6/-4)
madgraph/various/diagram_symmetry.py (+1/-1)
madgraph/various/histograms.py (+1930/-249)
madgraph/various/lhe_parser.py (+1070/-167)
madgraph/various/misc.py (+579/-28)
madgraph/various/plot_djrs.py (+163/-0)
madgraph/various/process_checks.py (+2439/-171)
madgraph/various/q_polynomial.py (+228/-67)
madgraph/various/shower_card.py (+3/-3)
madgraph/various/systematics.py (+792/-0)
mg5decay/decay_objects.py (+24/-7)
models/EWdim6/paramcard_default.dat (+99/-0)
models/EWdim6/restrict_default.dat (+4/-4)
models/MSSM_SLHA2/MSSM_UFO.log (+81/-0)
models/MSSM_SLHA2/__init__.py (+37/-0)
models/MSSM_SLHA2/build_restrict.py (+66/-0)
models/MSSM_SLHA2/coupling_orders.py (+16/-0)
models/MSSM_SLHA2/couplings.py (+3815/-0)
models/MSSM_SLHA2/decays.py (+942/-0)
models/MSSM_SLHA2/function_library.py (+54/-0)
models/MSSM_SLHA2/lorentz.py (+79/-0)
models/MSSM_SLHA2/object_library.py (+259/-0)
models/MSSM_SLHA2/parameters.py (+4059/-0)
models/MSSM_SLHA2/particles.py (+812/-0)
models/MSSM_SLHA2/restrict_default.dat (+524/-0)
models/MSSM_SLHA2/restrict_no_b_mass.dat (+524/-0)
models/MSSM_SLHA2/restrict_no_masses.dat (+524/-0)
models/MSSM_SLHA2/restrict_no_tau_mass.dat (+524/-0)
models/MSSM_SLHA2/vertices.py (+4943/-0)
models/MSSM_SLHA2/write_param_card.py (+181/-0)
models/TopEffTh/CT_couplings.py (+11/-0)
models/TopEffTh/TopEffTh.log (+87/-79)
models/TopEffTh/__init__.py (+31/-5)
models/TopEffTh/coupling_orders.py (+20/-20)
models/TopEffTh/couplings.py (+691/-535)
models/TopEffTh/decays.py (+55/-0)
models/TopEffTh/function_library.py (+24/-7)
models/TopEffTh/lorentz.py (+350/-367)
models/TopEffTh/object_library.py (+145/-13)
models/TopEffTh/parameters.py (+383/-705)
models/TopEffTh/particles.py (+387/-449)
models/TopEffTh/propagators.py (+35/-0)
models/TopEffTh/vertices.py (+1091/-863)
models/TopEffTh/write_param_card.py (+207/-181)
models/__init__.py (+2/-2)
models/check_param_card.py (+448/-35)
models/import_ufo.py (+181/-81)
models/loop_MSSM/.restrict_parallel_test.dat (+0/-532)
models/loop_MSSM/.restrict_parallel_test_gogo.dat (+0/-532)
models/loop_MSSM/CT_couplings.py (+0/-22863)
models/loop_MSSM/CT_vertices.py (+0/-7619)
models/loop_MSSM/MSSM_NLO.log (+0/-87)
models/loop_MSSM/__init__.py (+0/-48)
models/loop_MSSM/coupling_orders.py (+0/-17)
models/loop_MSSM/couplings.py (+0/-6439)
models/loop_MSSM/function_library.py (+0/-71)
models/loop_MSSM/lorentz.py (+0/-198)
models/loop_MSSM/object_library.py (+0/-377)
models/loop_MSSM/parameters.py (+0/-1756)
models/loop_MSSM/particles.py (+0/-814)
models/loop_MSSM/propagators.py (+0/-35)
models/loop_MSSM/restrict_default.dat (+0/-526)
models/loop_MSSM/restrict_test.dat (+0/-532)
models/loop_MSSM/vertices.py (+0/-9119)
models/loop_MSSM/write_param_card.py (+0/-207)
models/loop_qcd_qed_sm/CT_couplings.py (+1/-1)
models/loop_qcd_qed_sm/CT_parameters.py (+113/-106)
models/loop_qcd_qed_sm/__init__.py (+1/-0)
models/loop_qcd_qed_sm/function_library.py (+19/-5)
models/loop_qcd_qed_sm/object_library.py (+2/-41)
models/loop_qcd_qed_sm/parameters.py (+7/-0)
models/loop_qcd_qed_sm_Gmu/CT_parameters.py (+128/-107)
models/loop_qcd_qed_sm_Gmu/__init__.py (+1/-0)
models/loop_qcd_qed_sm_Gmu/function_library.py (+19/-4)
models/loop_qcd_qed_sm_Gmu/object_library.py (+5/-5)
models/loop_qcd_qed_sm_Gmu/parameters.py (+8/-1)
models/loop_qcd_qed_sm_Gmu/restrict_default.dat (+4/-4)
models/loop_qcd_qed_sm_Gmu__CMS__/.restrict_parallel_test.dat (+0/-65)
models/loop_qcd_qed_sm_Gmu__CMS__/.restrict_parallel_test_WW.dat (+0/-66)
models/loop_qcd_qed_sm_Gmu__CMS__/.restrict_parallel_test_WZ.dat (+0/-66)
models/loop_qcd_qed_sm_Gmu__CMS__/.restrict_parallel_test_ZZ.dat (+0/-66)
models/loop_qcd_qed_sm_Gmu__CMS__/CT_couplings.py (+0/-7213)
models/loop_qcd_qed_sm_Gmu__CMS__/CT_parameters.py (+0/-600)
models/loop_qcd_qed_sm_Gmu__CMS__/CT_vertices.py (+0/-4849)
models/loop_qcd_qed_sm_Gmu__CMS__/__init__.py (+0/-26)
models/loop_qcd_qed_sm_Gmu__CMS__/coupling_orders.py (+0/-16)
models/loop_qcd_qed_sm_Gmu__CMS__/couplings.py (+0/-539)
models/loop_qcd_qed_sm_Gmu__CMS__/function_library.py (+0/-81)
models/loop_qcd_qed_sm_Gmu__CMS__/lorentz.py (+0/-361)
models/loop_qcd_qed_sm_Gmu__CMS__/object_library.py (+0/-313)
models/loop_qcd_qed_sm_Gmu__CMS__/parameters.py (+0/-1211)
models/loop_qcd_qed_sm_Gmu__CMS__/particles.py (+0/-381)
models/loop_qcd_qed_sm_Gmu__CMS__/restrict_ckm.dat (+0/-65)
models/loop_qcd_qed_sm_Gmu__CMS__/restrict_default.dat (+0/-65)
models/loop_qcd_qed_sm_Gmu__CMS__/restrict_no_widths.dat (+0/-65)
models/loop_qcd_qed_sm_Gmu__CMS__/restrict_parallel_test.dat (+0/-65)
models/loop_qcd_qed_sm_Gmu__CMS__/restrict_parallel_test_WW.dat (+0/-66)
models/loop_qcd_qed_sm_Gmu__CMS__/restrict_parallel_test_WZ.dat (+0/-66)
models/loop_qcd_qed_sm_Gmu__CMS__/restrict_parallel_test_ZZ.dat (+0/-66)
models/loop_qcd_qed_sm_Gmu__CMS__/restrict_with_b_mass.dat (+0/-65)
models/loop_qcd_qed_sm_Gmu__CMS__/restrict_with_b_mass_no_width.dat (+0/-65)
models/loop_qcd_qed_sm_Gmu__CMS__/vertices.py (+0/-1037)
models/loop_qcd_qed_sm_Gmu__CMS__/write_param_card.py (+0/-181)
models/loop_qcd_qed_sm__CMS__/.restrict_parallel_test.dat (+0/-65)
models/loop_qcd_qed_sm__CMS__/.restrict_parallel_test_MB.dat (+0/-65)
models/loop_qcd_qed_sm__CMS__/CT_couplings.py (+0/-7213)
models/loop_qcd_qed_sm__CMS__/CT_parameters.py (+0/-600)
models/loop_qcd_qed_sm__CMS__/CT_vertices.py (+0/-4849)
models/loop_qcd_qed_sm__CMS__/__init__.py (+0/-26)
models/loop_qcd_qed_sm__CMS__/coupling_orders.py (+0/-16)
models/loop_qcd_qed_sm__CMS__/couplings.py (+0/-539)
models/loop_qcd_qed_sm__CMS__/function_library.py (+0/-81)
models/loop_qcd_qed_sm__CMS__/lorentz.py (+0/-361)
models/loop_qcd_qed_sm__CMS__/object_library.py (+0/-366)
models/loop_qcd_qed_sm__CMS__/parameters.py (+0/-1225)
models/loop_qcd_qed_sm__CMS__/particles.py (+0/-381)
models/loop_qcd_qed_sm__CMS__/restrict_ckm.dat (+0/-65)
models/loop_qcd_qed_sm__CMS__/restrict_default.dat (+0/-65)
models/loop_qcd_qed_sm__CMS__/restrict_no_widths.dat (+0/-65)
models/loop_qcd_qed_sm__CMS__/restrict_parallel_test.dat (+0/-65)
models/loop_qcd_qed_sm__CMS__/restrict_with_b_mass.dat (+0/-65)
models/loop_qcd_qed_sm__CMS__/restrict_with_b_mass_no_widths.dat (+0/-65)
models/loop_qcd_qed_sm__CMS__/vertices.py (+0/-1037)
models/loop_qcd_qed_sm__CMS__/write_param_card.py (+0/-181)
models/model_reader.py (+45/-13)
models/mssm/MSSM_UFO.log (+0/-81)
models/mssm/__init__.py (+0/-37)
models/mssm/build_restrict.py (+0/-66)
models/mssm/coupling_orders.py (+0/-16)
models/mssm/couplings.py (+0/-3815)
models/mssm/decays.py (+0/-942)
models/mssm/function_library.py (+0/-54)
models/mssm/lorentz.py (+0/-79)
models/mssm/object_library.py (+0/-259)
models/mssm/parameters.py (+0/-4059)
models/mssm/particles.py (+0/-812)
models/mssm/restrict_default.dat (+0/-524)
models/mssm/restrict_no_b_mass.dat (+0/-524)
models/mssm/restrict_no_masses.dat (+0/-524)
models/mssm/restrict_no_tau_mass.dat (+0/-524)
models/mssm/vertices.py (+0/-4943)
models/mssm/write_param_card.py (+0/-181)
models/usermod.py (+78/-19)
models/write_param_card.py (+6/-6)
tests/IOTests.py (+35/-3)
tests/acceptance_tests/test_cmd.py (+80/-43)
tests/acceptance_tests/test_cmd_amcatnlo.py (+23/-442)
tests/acceptance_tests/test_cmd_madevent.py (+199/-45)
tests/acceptance_tests/test_cmd_madloop.py (+245/-25)
tests/acceptance_tests/test_cmd_reweight.py (+164/-0)
tests/acceptance_tests/test_export_fks.py (+113/-0)
tests/acceptance_tests/test_histograms.py (+51/-0)
tests/acceptance_tests/test_madweight.py (+1/-0)
tests/acceptance_tests/test_model_equivalence.py (+3/-2)
tests/acceptance_tests/test_output_files.py (+2/-2)
tests/input_files/CKKWL_djrs.dat (+1304/-0)
tests/input_files/IOTestsComparison/FKS/gg_ttx/b_sf_001.f (+0/-156)
tests/input_files/IOTestsComparison/FKS/gg_ttx/born.f (+0/-300)
tests/input_files/IOTestsComparison/FKS/gg_ttx/born_conf.inc (+0/-16)
tests/input_files/IOTestsComparison/FKS/gg_ttx/born_decayBW.inc (+0/-1)
tests/input_files/IOTestsComparison/FKS/gg_ttx/born_hel.f (+0/-153)
tests/input_files/IOTestsComparison/FKS/gg_ttx/born_leshouche.inc (+0/-7)
tests/input_files/IOTestsComparison/FKS/gg_ttx/born_nhel.inc (+0/-3)
tests/input_files/IOTestsComparison/FKS/gg_ttx/born_props.inc (+0/-9)
tests/input_files/IOTestsComparison/FKS/gg_ttx/coloramps.inc (+0/-4)
tests/input_files/IOTestsComparison/FKS/gg_ttx/fks_info.inc (+0/-64)
tests/input_files/IOTestsComparison/FKS/gg_ttx/leshouche_info.inc (+0/-156)
tests/input_files/IOTestsComparison/FKS/gg_ttx/matrix_1.f (+0/-246)
tests/input_files/IOTestsComparison/FKS/gg_ttx/maxconfigs.inc (+0/-2)
tests/input_files/IOTestsComparison/FKS/gg_ttx/maxparticles.inc (+0/-3)
tests/input_files/IOTestsComparison/FKS/gg_ttx/nFKSconfigs.inc (+0/-4)
tests/input_files/IOTestsComparison/FKS/gg_ttx/nexternal.inc (+0/-4)
tests/input_files/IOTestsComparison/FKS/gg_ttx/parton_lum_1.f (+0/-99)
tests/input_files/IOTestsComparison/FKS/gg_ttx/parton_lum_chooser.f (+0/-31)
tests/input_files/IOTestsComparison/FKS/gg_ttx/pmass.inc (+0/-5)
tests/input_files/IOTestsComparison/FKS/gg_ttx/real_me_chooser.f (+0/-30)
tests/input_files/IOTestsComparison/FKS/gg_ttx/sborn_sf.f (+0/-45)
tests/input_files/IOTestsComparison/FKS/xaa (+0/-722)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%b_sf_001.f (+10/-10)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%b_sf_002.f (+10/-10)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%b_sf_003.f (+10/-10)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%b_sf_004.f (+10/-10)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%b_sf_005.f (+10/-10)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%b_sf_006.f (+14/-14)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%b_sf_007.f (+10/-10)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%b_sf_008.f (+14/-14)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%born.f (+16/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%born_hel.f (+8/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%configs_and_props_decl.inc (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%fks_info.inc (+5/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%leshouche_decl.inc (+1/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%parton_lum_0.f (+6/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%b_sf_001.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%b_sf_002.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%b_sf_003.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%b_sf_004.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%b_sf_005.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%b_sf_006.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%b_sf_007.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%b_sf_008.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%born.f (+22/-18)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%born_hel.f (+14/-14)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%configs_and_props_decl.inc (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%fks_info.inc (+3/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%leshouche_decl.inc (+1/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%parton_lum_0.f (+9/-5)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%b_sf_001.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%b_sf_002.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%b_sf_003.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%b_sf_004.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%b_sf_005.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%b_sf_006.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%b_sf_007.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%b_sf_008.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%born.f (+22/-18)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%born_hel.f (+14/-14)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%configs_and_props_decl.inc (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%fks_info.inc (+3/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%leshouche_decl.inc (+1/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%parton_lum_0.f (+9/-5)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%b_sf_001.f (+10/-10)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%b_sf_002.f (+10/-10)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%b_sf_003.f (+10/-10)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%b_sf_004.f (+10/-10)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%b_sf_005.f (+10/-10)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%b_sf_006.f (+14/-14)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%b_sf_007.f (+10/-10)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%b_sf_008.f (+14/-14)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%born.f (+16/-12)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%born_hel.f (+8/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%configs_and_props_decl.inc (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%fks_info.inc (+44/-36)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%leshouche_decl.inc (+1/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%matrix_1.f (+5/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%matrix_2.f (+11/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%matrix_3.f (+11/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%matrix_4.f (+11/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%matrix_5.f (+11/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_1.f (+6/-2)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_2.f (+9/-5)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_3.f (+9/-5)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_4.f (+9/-5)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_5.f (+9/-5)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%b_sf_001.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%b_sf_002.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%b_sf_003.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%b_sf_004.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%b_sf_005.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%b_sf_006.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%b_sf_007.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%b_sf_008.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%born.f (+22/-18)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%born_hel.f (+14/-14)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%configs_and_props_decl.inc (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%fks_info.inc (+28/-22)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%leshouche_decl.inc (+1/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%matrix_1.f (+11/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%matrix_2.f (+11/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%matrix_3.f (+11/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%parton_lum_1.f (+9/-5)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%parton_lum_2.f (+9/-5)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%parton_lum_3.f (+9/-5)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%b_sf_001.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%b_sf_002.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%b_sf_003.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%b_sf_004.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%b_sf_005.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%b_sf_006.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%b_sf_007.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%b_sf_008.f (+16/-16)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%born.f (+22/-18)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%born_hel.f (+14/-14)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%configs_and_props_decl.inc (+4/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%fks_info.inc (+28/-22)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%leshouche_decl.inc (+1/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%matrix_1.f (+11/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%matrix_2.f (+11/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%matrix_3.f (+11/-8)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%parton_lum_1.f (+9/-5)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%parton_lum_2.f (+9/-5)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%parton_lum_3.f (+9/-5)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%COLLIER_interface.f (+732/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%CT_interface.f (+740/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%GOLEM_interface.f (+748/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%TIR_interface.f (+527/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%born_matrix.f (+645/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%check_sa.f (+757/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%check_sa_born_splitOrders.f (+524/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%coef_construction_1.f (+115/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%f2py_wrapper.f (+117/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%helas_calls_ampb_1.f (+114/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%improve_ps.f (+981/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%loop_CT_calls_1.f (+110/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%loop_matrix.f (+2713/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%loop_max_coefs.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%loop_num.f (+129/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%mp_coef_construction_1.f (+99/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%mp_compute_loop_coefs.f (+432/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%mp_helas_calls_ampb_1.f (+98/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%nexternal.inc (+4/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%ngraphs.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%nsqso_born.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%nsquaredSO.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%pmass.inc (+3/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%polynomial.f (+519/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%process_info.inc (+6/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%unique_id.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%b_sf_001.f (+153/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%born.f (+296/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%born_conf.inc (+4/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%born_hel.f (+151/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%born_leshouche.inc (+8/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%born_maxamps.inc (+3/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%born_ngraphs.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%born_nhel.inc (+3/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%coloramps.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%config_subproc_map.inc (+1/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%configs_and_props_decl.inc (+12/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%fks_info.inc (+53/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%get_color.f (+48/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%leshouche_decl.inc (+7/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%matrix_1.f (+175/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%matrix_2.f (+175/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%matrix_3.f (+175/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%nFKSconfigs.inc (+4/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%ncombs.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%nexternal.inc (+4/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%ngraphs.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%parton_lum_1.f (+112/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%parton_lum_2.f (+110/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%parton_lum_3.f (+110/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%parton_lum_chooser.f (+23/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%pmass.inc (+4/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%real_from_born_configs.inc (+6/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%real_me_chooser.f (+22/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%sborn_sf.f (+17/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%sborn_sf_dum.f (+13/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%COLLIER_interface.f (+732/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%CT_interface.f (+740/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%GOLEM_interface.f (+748/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%TIR_interface.f (+527/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%born_matrix.f (+645/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%check_sa.f (+757/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%check_sa_born_splitOrders.f (+524/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%coef_construction_1.f (+115/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%f2py_wrapper.f (+117/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%helas_calls_ampb_1.f (+114/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%improve_ps.f (+981/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%loop_CT_calls_1.f (+110/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%loop_matrix.f (+2713/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%loop_max_coefs.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%loop_num.f (+129/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%mp_coef_construction_1.f (+99/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%mp_compute_loop_coefs.f (+432/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%mp_helas_calls_ampb_1.f (+98/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%nexternal.inc (+4/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%ngraphs.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%nsqso_born.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%nsquaredSO.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%pmass.inc (+3/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%polynomial.f (+519/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%process_info.inc (+6/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%unique_id.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%b_sf_001.f (+153/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%born.f (+296/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%born_conf.inc (+4/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%born_hel.f (+151/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%born_leshouche.inc (+8/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%born_maxamps.inc (+3/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%born_ngraphs.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%born_nhel.inc (+3/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%coloramps.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%config_subproc_map.inc (+1/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%configs_and_props_decl.inc (+12/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%fks_info.inc (+53/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%get_color.f (+48/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%leshouche_decl.inc (+7/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%matrix_1.f (+175/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%matrix_2.f (+175/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%matrix_3.f (+175/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%nFKSconfigs.inc (+4/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%ncombs.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%nexternal.inc (+4/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%ngraphs.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%parton_lum_1.f (+112/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%parton_lum_2.f (+110/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%parton_lum_3.f (+110/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%parton_lum_chooser.f (+23/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%pmass.inc (+4/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%real_from_born_configs.inc (+6/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%real_me_chooser.f (+22/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%sborn_sf.f (+17/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%sborn_sf_dum.f (+13/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_001.f (+153/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_002.f (+153/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_003.f (+154/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_004.f (+154/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_005.f (+153/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_006.f (+154/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_007.f (+154/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_008.f (+153/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born.f (+302/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_conf.inc (+8/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_decayBW.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_hel.f (+151/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_leshouche.inc (+8/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_maxamps.inc (+3/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_ngraphs.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_nhel.inc (+3/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_props.inc (+6/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%coloramps.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%config_subproc_map.inc (+1/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%configs_and_props_decl.inc (+12/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%fks_info.inc (+49/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%get_color.f (+54/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%leshouche_decl.inc (+7/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%matrix_1.f (+197/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%nFKSconfigs.inc (+4/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%ncombs.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%nexternal.inc (+4/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%ngraphs.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%parton_lum_1.f (+98/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%parton_lum_chooser.f (+21/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%pmass.inc (+5/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%real_from_born_configs.inc (+5/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%real_me_chooser.f (+20/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%sborn_sf.f (+45/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%sborn_sf_dum.f (+13/-0)
tests/input_files/IOTestsComparison/IOExportPythia8Test/write_dec_multiprocess_files/write_dec_multiprocess_files.cc (+36/-36)
tests/input_files/IOTestsComparison/IOExportPythia8Test/write_dec_multiprocess_files/write_dec_multiprocess_files.h (+36/-36)
tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/auto_dsig.f (+10/-2)
tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/matrix1.f (+23/-19)
tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/super_auto_dsig.f (+19/-13)
tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/auto_dsig.f (+11/-2)
tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/matrix.f (+15/-15)
tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_standalone/matrix.f (+374/-0)
tests/input_files/IOTestsComparison/IOHistogramTest/DJR_histograms/CKKWL_djrs_output.HwU (+1665/-0)
tests/input_files/IOTestsComparison/IOHistogramTest/DJR_histograms/CKKWL_djrs_output.gnuplot (+392/-0)
tests/input_files/IOTestsComparison/IOHistogramTest/DJR_histograms/MLM_djrs_output.HwU (+1665/-0)
tests/input_files/IOTestsComparison/IOHistogramTest/DJR_histograms/MLM_djrs_output.gnuplot (+392/-0)
tests/input_files/IOTestsComparison/IOTest_Histogram.moved/gnuplot_histo_output/HistoOut.HwU (+869/-0)
tests/input_files/IOTestsComparison/IOTest_Histogram.moved/gnuplot_histo_output/HistoOut.gnuplot (+1205/-0)
tests/input_files/IOTestsComparison/IOTest_Histogram/gnuplot_histo_output/HistoOut.HwU (+741/-741)
tests/input_files/IOTestsComparison/IOTest_Histogram/gnuplot_histo_output/HistoOut.gnuplot (+339/-367)
tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_eq_4.f (+688/-1294)
tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_0_QEDAmpAndQEDsq_gt_2.f (+690/-7609)
tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_4.f (+678/-469)
tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QEDsq_le_4.f (+697/-7826)
tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_WGTsq_le_10_QEDAmpAndQEDsq_gt_2.f (+690/-7609)
tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_default.f (+688/-1294)
tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDpert_default.f (+678/-469)
tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QEDpert_default.f (+678/-555)
tests/input_files/IOTestsComparison/MECmdShell.moved/check_html_long_process_strings/info.html (+139/-0)
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%MadLoopCommons.f (+0/-520)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%MadLoopParamReader.f (+0/-270)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%COLLIER_interface.f (+740/-0)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%CT_interface.f (+0/-770)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%GOLEM_interface.f (+0/-834)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%TIR_interface.f (+0/-463)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%born_matrix.f (+0/-514)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%check_sa.f (+0/-756)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%check_sa_born_splitOrders.f (+0/-524)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%coef_construction_1.f (+385/-0)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%f2py_wrapper.f (+117/-0)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%helas_calls_ampb_1.f (+218/-0)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%helas_calls_uvct_1.f (+131/-0)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%improve_ps.f (+0/-989)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%loop_CT_calls_1.f (+180/-0)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%loop_matrix.f (+0/-2951)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%loop_num.f (+0/-131)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%mp_coef_construction_1.f (+462/-0)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%mp_compute_loop_coefs.f (+0/-882)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%mp_helas_calls_ampb_1.f (+203/-0)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%mp_helas_calls_uvct_1.f (+115/-0)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%polynomial.f (+0/-861)
tests/input_files/IOTestsComparison/SquaredOrder_IOTest/sqso_uux_uuxuuxx/matrix_NoSQSO.f (+182/-38)
tests/input_files/IOTestsComparison/SquaredOrder_IOTest/sqso_uux_uuxuuxx/matrix_QCDsq_le_6.f (+197/-56)
tests/input_files/IOTestsComparison/SquaredOrder_IOTest/sqso_uux_uuxuuxx/matrix_ampOrderQED2_eq_2_WGTsq_le_14_QCDsq_gt_4.f (+199/-58)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P0_wpwm_wpwm%matrix.f (+367/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P0_wpwm_wpwm%nexternal.inc (+4/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P0_wpwm_wpwm%ngraphs.inc (+2/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P0_wpwm_wpwm%pmass.inc (+4/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%CT_interface.f (+525/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%GOLEM_interface.f (+772/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%TIR_interface.f (+422/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%born_matrix.f (+754/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%check_sa.f (+757/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%check_sa_born_splitOrders.f (+524/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%improve_ps.f (+989/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%loop_matrix.f (+2586/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%loop_num.f (+129/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%mp_compute_loop_coefs.f (+597/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%nexternal.inc (+4/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%ngraphs.inc (+2/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%nsqso_born.inc (+2/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%nsquaredSO.inc (+2/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%pmass.inc (+4/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%polynomial.f (+593/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox.moved/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%polynomial_specs.inc (+2/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P0_wpwm_wpwm%matrix.f (+3/-3)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%COLLIER_interface.f (+732/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%CT_interface.f (+562/-56)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%GOLEM_interface.f (+0/-766)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%TIR_interface.f (+145/-83)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%born_matrix.f (+13/-13)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%check_sa.f (+58/-56)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%check_sa_born_splitOrders.f (+13/-13)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%coef_construction_1.f (+251/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%coef_specs.inc (+0/-6)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%f2py_wrapper.f (+117/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%helas_calls_ampb_1.f (+187/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%improve_ps.f (+38/-38)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%loop_CT_calls_1.f (+140/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%loop_matrix.f (+678/-533)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%loop_max_coefs.inc (+2/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%loop_num.f (+2/-4)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%mp_coef_construction_1.f (+267/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%mp_compute_loop_coefs.f (+199/-367)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%mp_helas_calls_ampb_1.f (+171/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%polynomial.f (+151/-86)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%process_info.inc (+6/-0)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%unique_id.inc (+2/-0)
tests/input_files/IOTestsComparison/TestMadWeight/modification_to_cuts/cuts.f (+1728/-1296)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%coupl.inc (+5/-5)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%couplings.f (+4/-4)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%couplings1.f (+2/-2)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%couplings2.f (+8/-6)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%input.inc (+30/-28)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%intparam_definition.inc (+56/-56)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%model_functions.f (+45/-10)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%model_functions.inc (+10/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%mp_coupl.inc (+4/-4)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%mp_couplings2.f (+12/-12)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%mp_input.inc (+38/-34)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%mp_intparam_definition.inc (+36/-36)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/CT_interface.f (+9/-8)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/born_matrix.f (+164/-14)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/check_sa.f (+54/-52)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/improve_ps.f (+38/-38)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/loop_matrix.f (+411/-140)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/loop_num.f (+46/-46)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/mp_born_amps_and_wfs.f (+24/-9)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/process_info.inc (+6/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/unique_id.inc (+2/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%coupl.inc (+12/-12)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%couplings.f (+4/-4)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%couplings1.f (+2/-2)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%couplings2.f (+10/-8)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%input.inc (+41/-39)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%intparam_definition.inc (+69/-69)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%model_functions.f (+45/-10)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%model_functions.inc (+10/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%mp_coupl.inc (+15/-13)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%mp_couplings2.f (+36/-35)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%mp_couplings3.f (+4/-4)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%mp_input.inc (+45/-42)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%mp_intparam_definition.inc (+38/-38)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/CT_interface.f (+12/-11)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/born_matrix.f (+164/-14)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/check_sa.f (+54/-52)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/improve_ps.f (+38/-38)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/loop_matrix.f (+529/-258)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/loop_num.f (+260/-260)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/mp_born_amps_and_wfs.f (+98/-83)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/process_info.inc (+6/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/unique_id.inc (+2/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%coupl.inc (+5/-5)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%couplings.f (+4/-4)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%couplings1.f (+2/-2)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%couplings2.f (+8/-6)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%input.inc (+30/-28)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%intparam_definition.inc (+56/-56)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%model_functions.f (+45/-10)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%model_functions.inc (+10/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%mp_coupl.inc (+4/-4)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%mp_couplings2.f (+12/-12)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%mp_input.inc (+38/-34)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%mp_intparam_definition.inc (+36/-36)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/CT_interface.f (+261/-57)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/TIR_interface.f (+128/-35)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/born_matrix.f (+164/-14)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/check_sa.f (+54/-52)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/coef_construction_1.f (+180/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/coef_specs.inc (+0/-6)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/f2py_wrapper.f (+117/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/helas_calls_ampb_1.f (+148/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/helas_calls_uvct_1.f (+116/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/improve_ps.f (+38/-38)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/loop_CT_calls_1.f (+129/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/loop_matrix.f (+674/-424)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/loop_max_coefs.inc (+2/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/loop_num.f (+2/-4)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/mp_coef_construction_1.f (+177/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/mp_compute_loop_coefs.f (+201/-224)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/mp_helas_calls_ampb_1.f (+132/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/mp_helas_calls_uvct_1.f (+100/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/polynomial.f (+177/-214)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/process_info.inc (+6/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/unique_id.inc (+2/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%coupl.inc (+12/-12)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%couplings.f (+4/-4)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%couplings1.f (+2/-2)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%couplings2.f (+10/-8)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%input.inc (+41/-39)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%intparam_definition.inc (+69/-69)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%model_functions.f (+45/-10)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%model_functions.inc (+10/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%mp_coupl.inc (+15/-13)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%mp_couplings2.f (+36/-35)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%mp_couplings3.f (+4/-4)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%mp_input.inc (+45/-42)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%mp_intparam_definition.inc (+38/-38)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/CT_interface.f (+349/-105)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/TIR_interface.f (+144/-35)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/born_matrix.f (+164/-14)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/check_sa.f (+54/-52)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/coef_construction_1.f (+26/-26)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/coef_specs.inc (+0/-6)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/f2py_wrapper.f (+117/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/helas_calls_ampb_1.f (+8/-8)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/helas_calls_uvct_1.f (+40/-40)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/improve_ps.f (+38/-38)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/loop_CT_calls_1.f (+88/-88)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/loop_matrix.f (+670/-246)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/loop_max_coefs.inc (+2/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/loop_num.f (+2/-4)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/mp_coef_construction_1.f (+187/-190)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/mp_compute_loop_coefs.f (+201/-44)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/mp_helas_calls_ampb_1.f (+13/-16)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/mp_helas_calls_uvct_1.f (+37/-40)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/polynomial.f (+301/-540)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/process_info.inc (+6/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/unique_id.inc (+2/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%coupl.inc (+2/-2)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%couplings.f (+4/-4)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%couplings2.f (+10/-10)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%input.inc (+28/-26)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%intparam_definition.inc (+45/-45)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%model_functions.f (+45/-10)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%model_functions.inc (+10/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%mp_couplings2.f (+4/-4)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%mp_input.inc (+44/-42)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%mp_intparam_definition.inc (+26/-26)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/CT_interface.f (+7/-6)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/check_sa.f (+40/-38)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/improve_ps.f (+38/-38)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/loop_matrix.f (+465/-182)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/loop_num.f (+4/-4)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/mp_born_amps_and_wfs.f (+18/-3)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/process_info.inc (+6/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/unique_id.inc (+2/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/ddx_ttx/CT_interface.f (+9/-8)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/ddx_ttx/born_matrix.f (+164/-14)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/ddx_ttx/check_sa.f (+54/-52)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/ddx_ttx/improve_ps.f (+38/-38)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/ddx_ttx/loop_matrix.f (+403/-132)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/ddx_ttx/loop_num.f (+30/-30)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/ddx_ttx/mp_born_amps_and_wfs.f (+18/-3)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/ddx_ttx/process_info.inc (+6/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/ddx_ttx/unique_id.inc (+2/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%coupl.inc (+10/-10)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%couplings.f (+4/-4)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%couplings2.f (+10/-8)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%input.inc (+19/-17)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%intparam_definition.inc (+65/-65)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%model_functions.f (+45/-10)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%model_functions.inc (+10/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%mp_coupl.inc (+10/-9)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%mp_coupl_same_name.inc (+5/-5)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%mp_couplings2.f (+31/-30)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%mp_couplings3.f (+4/-4)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%mp_input.inc (+38/-34)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%mp_intparam_definition.inc (+37/-37)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/CT_interface.f (+12/-11)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/born_matrix.f (+164/-14)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/check_sa.f (+54/-52)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/improve_ps.f (+38/-38)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/loop_matrix.f (+447/-176)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/loop_num.f (+90/-90)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/mp_born_amps_and_wfs.f (+32/-17)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/process_info.inc (+6/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/unique_id.inc (+2/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/CT_interface.f (+261/-57)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/TIR_interface.f (+128/-35)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/born_matrix.f (+164/-14)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/check_sa.f (+54/-52)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/coef_construction_1.f (+178/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/coef_specs.inc (+0/-6)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/f2py_wrapper.f (+117/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/helas_calls_ampb_1.f (+146/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/helas_calls_uvct_1.f (+110/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/improve_ps.f (+38/-38)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/loop_CT_calls_1.f (+125/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/loop_matrix.f (+674/-378)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/loop_max_coefs.inc (+2/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/loop_num.f (+2/-4)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/mp_coef_construction_1.f (+177/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/mp_compute_loop_coefs.f (+201/-214)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/mp_helas_calls_ampb_1.f (+130/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/mp_helas_calls_uvct_1.f (+94/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/polynomial.f (+106/-78)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/process_info.inc (+6/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/unique_id.inc (+2/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%coupl.inc (+10/-10)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%couplings.f (+4/-4)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%couplings2.f (+10/-8)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%input.inc (+19/-17)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%intparam_definition.inc (+65/-65)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%model_functions.f (+45/-10)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%model_functions.inc (+10/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%mp_coupl.inc (+10/-9)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%mp_coupl_same_name.inc (+5/-5)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%mp_couplings2.f (+31/-30)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%mp_couplings3.f (+4/-4)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%mp_input.inc (+38/-34)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%mp_intparam_definition.inc (+37/-37)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/CT_interface.f (+305/-81)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/TIR_interface.f (+132/-35)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/born_matrix.f (+164/-14)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/check_sa.f (+54/-52)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/coef_construction_1.f (+382/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/coef_specs.inc (+0/-6)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/f2py_wrapper.f (+117/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/helas_calls_ampb_1.f (+215/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/helas_calls_uvct_1.f (+128/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/improve_ps.f (+38/-38)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/loop_CT_calls_1.f (+177/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/loop_matrix.f (+674/-876)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/loop_max_coefs.inc (+2/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/loop_num.f (+2/-4)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/mp_coef_construction_1.f (+459/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/mp_compute_loop_coefs.f (+201/-643)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/mp_helas_calls_ampb_1.f (+200/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/mp_helas_calls_uvct_1.f (+112/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/polynomial.f (+189/-226)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/process_info.inc (+6/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/unique_id.inc (+2/-0)
tests/input_files/LoopSMEWTest/CT_parameters.py (+3/-3)
tests/input_files/LoopSMEWTest/function_library.py (+2/-2)
tests/input_files/LoopSMEWTest/object_library.py (+27/-27)
tests/input_files/MLM_djrs.dat (+1665/-0)
tests/input_files/loop_MSSM/CT_couplings.py (+22863/-0)
tests/input_files/loop_MSSM/CT_vertices.py (+7619/-0)
tests/input_files/loop_MSSM/MSSM_NLO.log (+87/-0)
tests/input_files/loop_MSSM/README.txt (+7/-0)
tests/input_files/loop_MSSM/__init__.py (+48/-0)
tests/input_files/loop_MSSM/coupling_orders.py (+17/-0)
tests/input_files/loop_MSSM/couplings.py (+6439/-0)
tests/input_files/loop_MSSM/function_library.py (+71/-0)
tests/input_files/loop_MSSM/lorentz.py (+198/-0)
tests/input_files/loop_MSSM/object_library.py (+377/-0)
tests/input_files/loop_MSSM/parameters.py (+1756/-0)
tests/input_files/loop_MSSM/particles.py (+814/-0)
tests/input_files/loop_MSSM/propagators.py (+35/-0)
tests/input_files/loop_MSSM/restrict_default.dat (+526/-0)
tests/input_files/loop_MSSM/restrict_parallel_test.dat (+532/-0)
tests/input_files/loop_MSSM/restrict_parallel_test_gogo.dat (+532/-0)
tests/input_files/loop_MSSM/restrict_test.dat (+532/-0)
tests/input_files/loop_MSSM/vertices.py (+9119/-0)
tests/input_files/loop_MSSM/write_param_card.py (+207/-0)
tests/input_files/madanalysis5_hadron_card.dat (+90/-0)
tests/input_files/madanalysis5_parton_card.dat (+29/-0)
tests/input_files/madspin_event.lhe (+1/-1)
tests/input_files/run_card_matching.dat (+3/-3)
tests/input_files/test_mssm_generation (+1/-0)
tests/loop_smgrav/CT_parameters.py (+1/-1)
tests/parallel_tests/compare_with_old_mg5_version.py (+18/-14)
tests/parallel_tests/decay_comparator.py (+24/-12)
tests/parallel_tests/input_files/run_card_decay.dat (+1/-1)
tests/parallel_tests/loop_me_comparator.py (+3/-2)
tests/parallel_tests/madevent_comparator.py (+29/-4)
tests/parallel_tests/me_comparator.py (+1/-0)
tests/parallel_tests/test_MG5aMC_distribution.py (+113/-0)
tests/parallel_tests/test_ML5.py (+1/-2)
tests/parallel_tests/test_ML5MSSMQCD.py (+5/-10)
tests/parallel_tests/test_aloha.py (+154/-180)
tests/parallel_tests/test_cmd_amcatnlo.py (+600/-0)
tests/test_manager.py (+35/-11)
tests/time_db (+93/-61)
tests/time_db.moved (+1095/-694)
tests/unit_tests/core/test_base_objects.py (+21/-20)
tests/unit_tests/core/test_color_amp.py (+3/-5)
tests/unit_tests/core/test_drawing.py (+5/-3)
tests/unit_tests/fks/test_extra_ew.py (+816/-6)
tests/unit_tests/fks/test_fks_base.py (+31/-75)
tests/unit_tests/fks/test_fks_common.py (+2/-2)
tests/unit_tests/fks/test_fks_generate_loop.py (+25/-12)
tests/unit_tests/fks/test_fks_qed.py (+11/-10)
tests/unit_tests/interface/test_cmd.py (+3/-0)
tests/unit_tests/interface/test_edit_card.py (+16/-2)
tests/unit_tests/interface/test_madevent.py (+19/-3)
tests/unit_tests/iolibs/test_drawing_eps.py (+2/-2)
tests/unit_tests/iolibs/test_export_cpp.py (+24/-23)
tests/unit_tests/iolibs/test_export_fks.py (+108/-2)
tests/unit_tests/iolibs/test_export_fks_EW.py (+6/-3)
tests/unit_tests/iolibs/test_export_v4.py (+49/-245)
tests/unit_tests/iolibs/test_file_writers.py (+2/-3)
tests/unit_tests/iolibs/test_group_subprocs.py (+33/-33)
tests/unit_tests/iolibs/test_histograms.py (+88/-0)
tests/unit_tests/iolibs/test_link_to_ufo.py (+1/-1)
tests/unit_tests/loop/test_import_LoopUFOModel.py (+10/-9)
tests/unit_tests/loop/test_loop_diagram_generation.py (+58/-53)
tests/unit_tests/loop/test_loop_exporters.py (+25/-10)
tests/unit_tests/madevent/test_combine_runs.py (+39/-0)
tests/unit_tests/madweight/test_export_v4.py (+2/-2)
tests/unit_tests/various/test_banner.py (+344/-50)
tests/unit_tests/various/test_check_param_card.py (+735/-688)
tests/unit_tests/various/test_decay.py (+130/-58)
tests/unit_tests/various/test_diquark_models.py (+6/-5)
tests/unit_tests/various/test_histograms.py (+4/-15)
tests/unit_tests/various/test_import_ufo.py (+14/-0)
tests/unit_tests/various/test_lhe_parser.py (+89/-3)
tests/unit_tests/various/test_model_reader.py (+1/-1)
tests/unit_tests/various/test_process_checks.py (+1/-1)
tests/unit_tests/various/test_usermod.py (+108/-4)
vendor/CutTools/makefile (+4/-0)
vendor/CutTools/src/avh/avh_olo.f90 (+431/-429)
vendor/CutTools/src/cts/cts_combinatorics.f90 (+1/-1)
vendor/CutTools/src/cts/cts_cutroutines.f90 (+1/-1)
vendor/CutTools/src/cts/cts_cuttools.f90 (+3/-1)
vendor/CutTools/src/cts/cts_loopfunctions.f90 (+2/-2)
vendor/IREGI/src/makefile_ML5_lib (+11/-8)
vendor/IREGI/src/mis_warp.f90 (+1/-1)
vendor/IREGI/src/oneloop/ONI/example/example.f (+4/-4)
vendor/IREGI/src/oneloop/avh_olo_foriregi.f90 (+11045/-0)
vendor/IREGI/src/oneloop/example/example.f (+4/-4)
vendor/IREGI/src/oneloop/example_arprec/f_test.f (+4/-4)
vendor/IREGI/src/oneloop/example_ddfun90/example.f (+4/-4)
vendor/IREGI/src/oneloop/example_mpfun90/example.f (+4/-4)
vendor/IREGI/src/oneloop/example_qdcpp/f_test.f (+4/-4)
vendor/IREGI/src/oneloop/src/avh_olo_a0.h90 (+1/-1)
vendor/IREGI/src/oneloop/src/avh_olo_an.h90 (+1/-1)
vendor/IREGI/src/oneloop/src/avh_olo_arprec.f90 (+3/-3)
vendor/IREGI/src/oneloop/src/avh_olo_arrays.f90 (+3/-3)
vendor/IREGI/src/oneloop/src/avh_olo_auxfun.f90 (+3/-3)
vendor/IREGI/src/oneloop/src/avh_olo_b0.h90 (+1/-1)
vendor/IREGI/src/oneloop/src/avh_olo_b11.h90 (+1/-1)
vendor/IREGI/src/oneloop/src/avh_olo_bn.h90 (+1/-1)
vendor/IREGI/src/oneloop/src/avh_olo_bnlog.f90 (+7/-7)
vendor/IREGI/src/oneloop/src/avh_olo_box.f90 (+7/-7)
vendor/IREGI/src/oneloop/src/avh_olo_boxc.f90 (+6/-6)
vendor/IREGI/src/oneloop/src/avh_olo_bub.f90 (+6/-6)
vendor/IREGI/src/oneloop/src/avh_olo_c0.h90 (+2/-2)
vendor/IREGI/src/oneloop/src/avh_olo_comb.f90 (+25/-25)
vendor/IREGI/src/oneloop/src/avh_olo_d0.h90 (+2/-2)
vendor/IREGI/src/oneloop/src/avh_olo_ddfun90.f90 (+2/-2)
vendor/IREGI/src/oneloop/src/avh_olo_dilog.f90 (+8/-8)
vendor/IREGI/src/oneloop/src/avh_olo_intrinsic.f90 (+3/-3)
vendor/IREGI/src/oneloop/src/avh_olo_kinds.f90 (+1/-1)
vendor/IREGI/src/oneloop/src/avh_olo_main.f90 (+9/-9)
vendor/IREGI/src/oneloop/src/avh_olo_mpfun90.f90 (+3/-3)
vendor/IREGI/src/oneloop/src/avh_olo_olog.f90 (+6/-6)
vendor/IREGI/src/oneloop/src/avh_olo_print.f90 (+2/-2)
vendor/IREGI/src/oneloop/src/avh_olo_qdcpp.f90 (+2/-2)
vendor/IREGI/src/oneloop/src/avh_olo_qmplx.f90 (+6/-6)
vendor/IREGI/src/oneloop/src/avh_olo_tri.f90 (+6/-6)
vendor/IREGI/src/oneloop/src/avh_olo_units.f90 (+6/-4)
vendor/IREGI/src/oneloop/src/avh_olo_version.f90 (+1/-1)
vendor/IREGI/src/oneloop/src/avh_olo_wrp01.f90 (+14/-14)
vendor/SMWidth/makefile_MW5 (+15/-9)
vendor/SMWidth/mis_warp.f90 (+1/-1)
vendor/SMWidth/param_card.dat (+0/-65)
vendor/SMWidth/param_card_Gmu.dat (+0/-65)
vendor/SMWidth/param_card_MZ.dat (+0/-65)
Text conflict in Template/NLO/Source/PDF/makefile
Conflict adding file Template/NLO/Source/PDF/pdf_lhapdf6.cc.  Moved existing file to Template/NLO/Source/PDF/pdf_lhapdf6.cc.moved.
Conflict adding file Template/NLO/Source/PDF/pdg2pdf_lhapdf6.f.  Moved existing file to Template/NLO/Source/PDF/pdg2pdf_lhapdf6.f.moved.
Text conflict in Template/NLO/Source/make_opts.inc
Text conflict in Template/NLO/SubProcesses/fks_singular.f
Text conflict in UpdateNotes.txt
Text conflict in madgraph/interface/amcatnlo_run_interface.py
Text conflict in madgraph/interface/common_run_interface.py
To merge this branch: bzr merge lp:~maddevelopers/mg5amcnlo/FKS_EW_flattened_dsig_merged2.3.3
Reviewer Review Type Date Requested Status
MadDevelopers Pending
Review via email: mp+282921@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Olivier Mattelaer (olivier-mattelaer) wrote :

Hi Marco,

Can you comment on this change?
For example, you made a couple of change to MadSpin, why?

Thanks,

Olivier

Revision history for this message
marco zaro (marco-zaro) wrote :

Hi Olivier,
the changes in MS should be due to the merge with the main 2.3.3 or 2.3.4 trunk…
I am trying to reorganise a bit the EW branches and in particular to remove the ones which are not used any more…
Cheers,

Marco
On 18 Jan 2016, at 12:07, Olivier Mattelaer <email address hidden> wrote:

> Hi Marco,
>
> Can you comment on this change?
> For example, you made a couple of change to MadSpin, why?
>
>
> Thanks,
>
> Olivier
> --
> https://code.launchpad.net/~maddevelopers/mg5amcnlo/FKS_EW_flattened_dsig_merged2.3.3/+merge/282921
> Your team MadDevelopers is requested to review the proposed merge of lp:~maddevelopers/mg5amcnlo/FKS_EW_flattened_dsig_merged2.3.3 into lp:~maddevelopers/mg5amcnlo/FKS_EW_flattened_dsig.

766. By Marco Zaro <mzaro@ingrid-ui1>

ct14PDF w QED efefcts should be included now (Thanks to Davide Pagani!)

767. By Marco Zaro <mzaro@ingrid-ui1>

added other PDF sets

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

Ok then,

I guess this is pointless to review this right.
We will do this review when the merge with the stable version occurs.

Except if you want a review on a specific point.

Olivier

768. By Marco Zaro <email address hidden>

fixes for test_ME

769. By Marco Zaro <email address hidden>

fixed a bug affecting symmetry factors for extra cnt's with final state splittings

770. By Marco Zaro <mzaro@ingrid-ui1>

another bug fixed (related to chaching and extra_cnt's)

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

Then I guess go ahead and this will be review in a future merge no?
Otherwise this sounds like a lot of work to review stuff that need to be review at different stage anyway.

Don't you agree?

Olivier

Revision history for this message
marco zaro (marco-zaro) wrote :

Ciao Olivier,
anyway, this is not for 2.3.4…
Cheers,

Marco
On 27 Jan 2016, at 12:08, Olivier Mattelaer <email address hidden> wrote:

> Then I guess go ahead and this will be review in a future merge no?
> Otherwise this sounds like a lot of work to review stuff that need to be review at different stage anyway.
>
> Don't you agree?
>
> Olivier
> --
> https://code.launchpad.net/~maddevelopers/mg5amcnlo/FKS_EW_flattened_dsig_merged2.3.3/+merge/282921
> Your team MadDevelopers is requested to review the proposed merge of lp:~maddevelopers/mg5amcnlo/FKS_EW_flattened_dsig_merged2.3.3 into lp:~maddevelopers/mg5amcnlo/FKS_EW_flattened_dsig.

771. By Rikkert Frederix

Make sure the code doesn't crash when there is a channel with NO
points passing cuts.

772. By Marco Zaro <email address hidden>

fix number of points in test_ME (soft)

773. By Rikkert Frederix

small fix in the printing of the limits in the fort.77 file in the case
some of the Collinear tests are failing.

774. By Rikkert Frederix

fixed a problem with the split-orders collinear counter terms (final
state radiation).

775. By marco zaro

fix in the run_interface to have the stats in the full summary

776. By marco zaro

implementing the splitorder stuff in applgrid

777. By marco zaro

fix to previous push

778. By marco zaro

another fix for applgrid

779. By Rikkert Frederix

Also set all the split orders to zero if there is an unstable,
non-rescued PS point in the virtual corrections.

780. By Rikkert Frederix

Made the checking of the accuracy in the BinothLHA order dependent.

781. By marco zaro

fix in fks_singular

782. By marco zaro

fix to rev 767 (some files have not been updated)

783. By Rikkert Frederix

fixed a problem in the BinothLHA which was related to the skipping of
the unstable points introduced in revision 779.

784. By Marco Zaro <mzaro@ingrid-ui1>

BUG the behaviour when extra CNTs exist should be fixed.
Also a bug in find_reals_to_integrate has been found and fixed

785. By marco zaro

fix in the generation of the extra counterterms (the amplitude was not
generated)

786. By Marco Zaro <mzaro@ingrid-ui1>

fix stupid bug in common_run_interfact leading to KeyError: mg5_path on ingrid

787. By Rikkert Frederix

Better updating of the fraction of PS points to compute the virtual
corrections. Removes some run-away cases where the virtual_fraction
became one even though there was no sign of an largely fluctuating
virtual.

788. By marco zaro

res_*.txt now includes the dir by dir info

789. By marco zaro

the 6fto5f implementation in fks_singular seems to work (at least for
the total rate)

790. By marco zaro

fix error for plots in folders with 0 xsec

791. By marco zaro

fix in 6to5fcounterterm

792. By marco-zaro <email address hidden>

fix in one test inside fks_singular.f (no effect on results)

793. By marco zaro

      changes in BinothLHA.f to be able (in principle) to use MC/hel

794. By Valentin Hirschi

1. Modified MadLoop so that UV counterterms are added in an order which
   is as canonical as possible, so that Identical loop ME which differ
   only in their massless flavors can be merged together.

795. By Valentin Hirschi

1. Improved the loop diagram generation algorithm so that it picks an
   order of l-cut particles making it likely that loop MatrixElement which
   are equivalent but with different flavors are indeed flagged as identical
   when compared.

796. By Valentin Hirschi

1. Fixed some virtual 'equal' test issue when doing mixed QCD_QED corrections.

797. By marco zaro

changes related to event generation, still not working

798. By marco zaro

merged with 2.4.1 rev 410

799. By marco zaro

merged with 2.4.1 rev415

800. By marco zaro

merged with FKS_EW_flattened_dsig_merged2.3.3 r799

801. By marco zaro

fix in fks_singular 6to5cnt;
fix in loop_interface ( perturbations other than QCD were forbidden)
fix in test_extra_ew

802. By marco zaro

fixing unit tests

803. By marco zaro

fixes towards having event generation working

804. By Valentin Hirschi

1. Fixed the missing color specification of the interactions of the hardcoded loop model in the test 'test_loop_diagram_generation.py'

805. By Valentin Hirschi

1. Fixed the other issue in the test_loop_diagram_generation.py which was that the EW model was not loaded in Feynman gauge for some reason.

806. By marco zaro

fix in histograms.py to correctly do the 68% for NNPDFQED

807. By marco zaro

fixing unit tests

808. By marco zaro

fix in
  Template/NLO/SubProcesses/reweight0.inc

809. By marco zaro

merged with 2.5.1 r342

810. By marco zaro

fix in common_run_interface

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

just closing this review since they are no point to keep it open (right?)

Revision history for this message
marco zaro (marco-zaro) wrote :

yes, close it
cheers,
M
On 07 Aug 2017, at 11:04, Olivier Mattelaer <email address hidden> wrote:

> just closing this review since they are no point to keep it open (right?)
>
>
> --
> https://code.launchpad.net/~maddevelopers/mg5amcnlo/FKS_EW_flattened_dsig_merged2.3.3/+merge/282921
> Your team MadDevelopers is requested to review the proposed merge of lp:~maddevelopers/mg5amcnlo/FKS_EW_flattened_dsig_merged2.3.3 into lp:~maddevelopers/mg5amcnlo/FKS_EW_flattened_dsig.

Unmerged revisions

810. By marco zaro

fix in common_run_interface

809. By marco zaro

merged with 2.5.1 r342

808. By marco zaro

fix in
  Template/NLO/SubProcesses/reweight0.inc

807. By marco zaro

fixing unit tests

806. By marco zaro

fix in histograms.py to correctly do the 68% for NNPDFQED

805. By Valentin Hirschi

1. Fixed the other issue in the test_loop_diagram_generation.py which was that the EW model was not loaded in Feynman gauge for some reason.

804. By Valentin Hirschi

1. Fixed the missing color specification of the interactions of the hardcoded loop model in the test 'test_loop_diagram_generation.py'

803. By marco zaro

fixes towards having event generation working

802. By marco zaro

fixing unit tests

801. By marco zaro

fix in fks_singular 6to5cnt;
fix in loop_interface ( perturbations other than QCD were forbidden)
fix in test_extra_ew

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'MadSpin/__init__.py' (properties changed: -x to +x)
2=== modified file 'MadSpin/decay.py'
3--- MadSpin/decay.py 2015-05-22 16:18:38 +0000
4+++ MadSpin/decay.py 2016-11-23 08:16:42 +0000
5@@ -64,7 +64,7 @@
6 from madgraph import MG5DIR, MadGraph5Error
7 import madgraph.various.misc as misc
8 #import time
9-import tests.parallel_tests.test_aloha as test_aloha
10+
11
12 class MadSpinError(MadGraph5Error):
13 pass
14@@ -111,16 +111,16 @@
15 # change the wgt associate to the additional weight
16 start, stop = self.rwgt.find('<rwgt>'), self.rwgt.find('</rwgt>')
17 if start != -1 != stop :
18- pattern = re.compile(r'''<\s*wgt id=\'(?P<id>[^\']+)\'\s*>\s*(?P<val>[\ded+-.]*)\s*</wgt>''')
19+ pattern = re.compile(r'''<\s*wgt id=[\'\"](?P<id>[^\'\"]+)[\'\"]\s*>\s*(?P<val>[\ded+-.]*)\s*</wgt>''')
20 data = pattern.findall(self.rwgt)
21+ if len(data)==0:
22+ print self.rwgt
23 try:
24 text = ''.join(' <wgt id=\'%s\'> %+15.7e </wgt>\n' % (pid, float(value) * factor)
25 for (pid,value) in data)
26 except ValueError, error:
27 raise Exception, 'Event File has unvalid weight. %s' % error
28- self.rwgt = self.rwgt[:start] + '<rwgt>\n'+ text + self.rwgt[stop:]
29-
30-
31+ self.rwgt = self.rwgt[:start] + '<rwgt>\n'+ text + self.rwgt[stop:]
32
33 def string_event_compact(self):
34 """ return a string with the momenta of the event written
35@@ -906,7 +906,7 @@
36 if init[0] in self.banner.param_card['decay'].decay_table:
37 br *= self.banner.param_card['decay'].decay_table[init[0]].get(lhaid).value
38 br *= self.get_br(decay)
39- else:
40+ elif -init[0] in self.banner.param_card['decay'].decay_table:
41 init = -init[0]
42 lhaid=[x if self.model.get_particle(x)['self_antipart'] else -x
43 for x in final]
44@@ -914,6 +914,13 @@
45 lhaid = tuple([len(final)] + lhaid)
46 br *= self.banner.param_card['decay'].decay_table[init].get(lhaid).value
47 br *= self.get_br(decay)
48+ elif init[0] not in self.decay_ids and -init[0] not in self.decay_ids:
49+ logger.warning("No Branching ratio applied for %s. Please check if this is expected" % init[0])
50+ br *= self.get_br(decay)
51+ else:
52+ raise MadGraph5Error,"No valid decay for %s. No 2 body decay for that particle. (three body are not supported by MadSpin)" % init[0]
53+
54+
55
56 for decays in ids.values():
57 if len(decays) == 1:
58@@ -929,7 +936,7 @@
59 except ValueError:
60 break
61 br /= math.factorial(nb)
62-
63+
64 return br
65
66
67@@ -1013,7 +1020,7 @@
68 self[tag]['decaying'] = tuple(decaying)
69
70 # sanity check
71- assert self[tag]['total_br'] <= 1.01, self[tag]['total_br']
72+ assert self[tag]['total_br'] <= 1.01, "wrong BR for %s: %s " % (tag,self[tag]['total_br'])
73
74
75
76@@ -1217,6 +1224,7 @@
77 'P%s' % me.get('processes')[0].shell_string())
78 topo['decays'] = []
79 topo['total_br'] = 0
80+ topo['Pid'] = proc.get('id')
81
82 if skip:
83 self.add_me_symmetric(skip, topo)
84@@ -1629,7 +1637,7 @@
85 (' '.join([str(i) for i in opts['particles']]),
86 ' '.join('--%s=%s' % (key,value) for (key,value) in opts.items()
87 if key not in ['model', 'force', 'particles'] and value))
88- cmd.exec_cmd('import model %s' % model.get('name'))
89+ cmd.exec_cmd('import model %s' % model.get('modelpath+restriction'))
90 # cmd._curr_model = model
91 # cmd._curr_fortran_model = helas_call_writers.FortranUFOHelasCallWriter(model)
92 cmd.exec_cmd(line)
93@@ -1742,7 +1750,7 @@
94
95 return finalfound
96
97-
98+
99 def reorder_branch(self,branch):
100 """ branch is a string with the definition of a decay chain
101 If branch contains " A > B C , B > ... "
102@@ -1757,19 +1765,31 @@
103 if list_branch[index]==' ' or list_branch[index]=='': del list_branch[index]
104 #print list_branch
105 for index, item in enumerate(list_branch):
106- if item =="," and list_branch[index+1]!="(":
107- if list_branch[index-2]==list_branch[index+1]:
108- # swap the two particles before the comma:
109- temp=list_branch[index-2]
110- list_branch[index-2]=list_branch[index-1]
111- list_branch[index-1]=temp
112- if item =="," and list_branch[index+1]=="(":
113- if list_branch[index-2]==list_branch[index+2]:
114- # swap the two particles before the comma:
115- temp=list_branch[index-2]
116- list_branch[index-2]=list_branch[index-1]
117- list_branch[index-1]=temp
118
119+ if item[-1] =="," and list_branch[index+1]!="(":
120+ # search pos of B and C
121+ counter=1
122+ while 1:
123+ if list_branch[index-counter].find("=")<0:
124+ break
125+ counter+=1
126+ if list_branch[index-counter-1]==list_branch[index+1]:
127+ # swap the two particles before the comma:
128+ temp=list_branch[index-counter-1]
129+ list_branch[index-counter-1]=list_branch[index-counter]
130+ list_branch[index-counter]=temp
131+ if item[-1] =="," and list_branch[index+1]=="(":
132+ # search pos of B and C
133+ counter=1
134+ while 1:
135+ if list_branch[index-counter].find("=")<0:
136+ break
137+ counter+=1
138+ if list_branch[index-counter -1]==list_branch[index+2]:
139+ # swap the two particles before the comma:
140+ temp=list_branch[index-counter-1]
141+ list_branch[index-counter-1]=list_branch[index-counter]
142+ list_branch[index-counter]=temp
143
144 new_branch=""
145 for item in list_branch:
146@@ -1777,7 +1797,6 @@
147
148 return new_branch, list_branch[0]
149
150-
151 def set_light_parton_massless(self,topo):
152 """ masses of light partons are set to zero for
153 the evaluation of the matrix elements
154@@ -2097,7 +2116,8 @@
155 # launch the decay and reweighting
156 self.mscmd.update_status('MadSpin: Decaying Events')
157 efficiency = self.decaying_events(self.inverted_decay_mapping)
158- if efficiency != 1:
159+ self.efficiency = efficiency
160+ if efficiency != 1 and any(v==-1 for v in self.br_per_id.values()):
161 # need to change the banner information [nb_event/cross section]
162 files.cp(self.outputfile.name, '%s_tmp' % self.outputfile.name)
163 self.outputfile = open(self.outputfile.name, 'w')
164@@ -2398,7 +2418,13 @@
165 self.curr_event.particle[part_for_curr_evt]['momentum']=ext_mom[prod2full[part-1]-1]
166 self.curr_event.particle[part_for_curr_evt]['helicity']=helicities[prod2full[part-1]-1]
167 if not use_mc_masses or abs(pid) not in self.MC_masses:
168- self.curr_event.particle[part_for_curr_evt]['mass']=self.banner.get('param_card','mass', abs(pid)).value
169+ try:
170+ self.curr_event.particle[part_for_curr_evt]['mass']=self.banner.get('param_card','mass', abs(pid)).value
171+ except KeyError:
172+ if self.model.get_particle(abs(pid)).get('mass').lower() == 'zero':
173+ self.curr_event.particle[part_for_curr_evt]['mass'] = 0
174+ else:
175+ raise
176 else:
177 self.curr_event.particle[part_for_curr_evt]['mass']=self.MC_masses[abs(pid)]
178
179@@ -2589,7 +2615,7 @@
180
181
182 @misc.mute_logger()
183- @test_aloha.set_global()
184+ @misc.set_global()
185 def generate_all_matrix_element(self):
186 """generate the full series of matrix element needed by Madspin.
187 i.e. the undecayed and the decay one. And associate those to the
188@@ -2627,14 +2653,23 @@
189 if re.search('^\s*add\s+process', line)]
190
191 mgcmd = self.mgcmd
192- modelpath = self.model.get('modelpath')
193- if os.path.basename(modelpath) != mgcmd._curr_model['name']:
194- name, restrict = mgcmd._curr_model['name'].rsplit('-',1)
195- if os.path.exists(pjoin(os.path.dirname(modelpath),name, 'restrict_%s.dat' % restrict)):
196- modelpath = pjoin(os.path.dirname(modelpath), mgcmd._curr_model['name'])
197+ modelpath = self.model.get('modelpath+restriction')
198+
199+ commandline="import model %s" % modelpath
200+ if not self.model.mg5_name:
201+ commandline += ' --modelname'
202
203- commandline="import model %s " % modelpath
204 mgcmd.exec_cmd(commandline)
205+ # Handle the multiparticle of the banner
206+ #for name, definition in self.mscmd.multiparticles:
207+ if hasattr(self.mscmd, 'multiparticles_ms'):
208+ for name, pdgs in self.mscmd.multiparticles_ms.items():
209+ if name == 'all':
210+ continue
211+ #self.banner.get('proc_card').get('multiparticles'):
212+ mgcmd.do_define("%s = %s" % (name, ' '.join(`i` for i in pdgs)))
213+
214+
215 mgcmd.exec_cmd("set group_subprocesses False")
216
217 logger.info('generating the production square matrix element')
218@@ -2651,9 +2686,13 @@
219 proc_nb = '@ %i' % proc_nb
220 else:
221 proc_nb = ''
222+
223+ if ',' in proc:
224+ raise MadSpinError, 'MadSpin can not decay event which comes from a decay chain.'+\
225+ '\n The full decay chain should either be handle by MadGraph or by Masdspin.'
226
227 if '[' not in proc:
228- commandline+="add process %s --no_warning=duplicate;" % proc
229+ commandline+="add process %s %s --no_warning=duplicate;" % (proc, proc_nb)
230 else:
231 process, order, final = re.split('\[\s*(.*)\s*\]', proc)
232 commandline+="add process %s %s --no_warning=duplicate;" % (process, proc_nb)
233@@ -2685,6 +2724,7 @@
234 commandline +='add process %s pert_%s %s --no_warning=duplicate;' % (process,order, proc_nb)
235 commandline = commandline.replace('add process', 'generate',1)
236 logger.info(commandline)
237+
238 mgcmd.exec_cmd(commandline, precmd=True)
239 commandline = 'output standalone_msP %s %s' % \
240 (pjoin(path_me,'production_me'), ' '.join(self.list_branches.keys()))
241@@ -3072,7 +3112,7 @@
242
243
244 probe_weight = []
245-
246+
247
248 starttime = time.time()
249 ev = -1
250@@ -3110,6 +3150,7 @@
251 atleastonedecay=False
252 for decay in self.all_ME[production_tag]['decays']:
253 tag = decay['decay_tag']
254+
255 if decay_mapping and not tag in decay_mapping:
256 continue
257 if not tag:
258@@ -3123,10 +3164,11 @@
259 else:
260 max_decay[tag] = weight
261 #print weight, max_decay[name]
262- #raise Exception
263+ #raise Exception
264+
265 if not atleastonedecay:
266 # NO decay [one possibility is all decay are identical to their particle]
267- logger.info('No independent decay for one type of final states -> skip those events')
268+ logger.info('No independent decay for one type of final states -> skip those events for the maximum weight computation')
269 nb_decay[decaying] = numberev
270 ev += numberev -1
271 continue
272@@ -3198,14 +3240,16 @@
273 logger.debug('Decay channel %s :Using maximum weight %s (BR: %s)' % \
274 (','.join(associated_decay), max_weight, br/nb_finals))
275
276- if __debug__:
277+# if __debug__:
278 # check that all decay have a max_weight and fix it if not the case.
279- for prod in self.all_ME.values():
280- for dec in prod['decays']:
281- if dec['decay_tag']:
282- assert 'max_weight' in dec and dec['max_weight'] ,\
283- 'fail for %s (%s)' % (str(dec['decay_tag']), \
284- os.path.basename(prod['path']))
285+ for prod in self.all_ME.values():
286+ for dec in prod['decays']:
287+ if dec['decay_tag'] and not 'max_weight' in dec:
288+ dec['max_weight'] = 0.
289+
290+# assert 'max_weight' in dec and dec['max_weight'] ,\
291+# 'fail for %s (%s)' % (str(dec['decay_tag']), \
292+# os.path.basename(prod['path']))
293 self.evtfile.seek(0)
294 return
295
296@@ -3255,7 +3299,7 @@
297
298 return max_weight
299
300- def loadfortran(self, mode, path, stdin_text):
301+ def loadfortran(self, mode, path, stdin_text, first=True):
302 """ call the fortran executable """
303
304 tmpdir = ''
305@@ -3272,8 +3316,18 @@
306 self.calculator[('full',path,)] = external
307 self.calculator_nbcall[('full',path)] = 1
308
309- external.stdin.write(stdin_text)
310-
311+ try:
312+ external.stdin.write(stdin_text)
313+ except IOError:
314+ if not first:
315+ raise
316+ try:
317+ external.terminate()
318+ except:
319+ pass
320+ del self.calculator[('full',path,)]
321+ return self.loadfortran(mode, path, stdin_text, first=False)
322+
323 if mode == 'maxweight':
324 maxweight=float(external.stdout.readline())
325 output = maxweight
326@@ -3649,6 +3703,45 @@
327 d1colup1=maxcol
328 d2colup2=maxcol
329 d2colup1=0
330+ elif colord1==-3 and colord2==-3 and colormother == 3:
331+ maxcol+=2
332+ d1colup1=0
333+ d1colup2=maxcol
334+ d2colup1=0
335+ d2colup2=maxcol-1
336+ elif (colord1==-3 and colord2==3 and colormother == 3) or\
337+ (colord1==-3 and colord2==3 and colormother == -3):
338+ maxcol+=2
339+ d1colup1 = 0
340+ d1colup2 = maxcol
341+ d2colup1 = maxcol-1
342+ d2colup2 = 0
343+ elif (colord1==3 and colord2==-3 and colormother == 3) or\
344+ (colord1==3 and colord2==-3 and colormother == -3):
345+ maxcol+=2
346+ d1colup1=maxcol
347+ d1colup2=0
348+ d2colup1=0
349+ d2colup2=maxcol-1
350+ elif colord1==3 and colord2==3 and colormother == -3:
351+ maxcol+=2
352+ d1colup1=maxcol
353+ d1colup2=0
354+ d2colup1=maxcol-1
355+ d2colup2=0
356+ elif colord2==8 and colord1==8 and colormother ==8:
357+ maxcol+=1
358+ ran = random.random()
359+ if ran> 0.5:
360+ d1colup2=colup2
361+ d1colup1=maxcol
362+ d2colup2=maxcol
363+ d2colup1=colup1
364+ else:
365+ d1colup2=maxcol
366+ d1colup1=colup1
367+ d2colup2=colup2
368+ d2colup1=maxcol
369 else:
370 raise Exception, 'color combination not treated by MadSpin (yet). (%s,%s,%s)' \
371 % (colord1,colord2,colormother)
372@@ -3785,16 +3878,24 @@
373 ms_banner = ""
374 cross_section = True # tell if possible to write the cross-section in advance
375 total_br = []
376+ self.br_per_id = {}
377 for production in self.all_ME.values():
378 one_br = 0
379+ partial_br = 0
380 for decay in production['decays']:
381 if not decay['decay_tag']:
382 cross_section = False
383 one_br += decay['br']
384 continue
385+ partial_br += decay['br']
386 ms_banner += "# %s\n" % ','.join(decay['decay_tag']).replace('\n',' ')
387 ms_banner += "# BR: %s\n# max_weight: %s\n" % (decay['br'], decay['max_weight'])
388 one_br += decay['br']
389+
390+ if production['Pid'] not in self.br_per_id:
391+ self.br_per_id[production['Pid']] = partial_br
392+ elif self.br_per_id[production['Pid']] != partial_br:
393+ self.br_per_id[production['Pid']] = -1
394 total_br.append(one_br)
395
396 if __debug__:
397@@ -3802,7 +3903,6 @@
398 assert production['total_br'] - min(total_br) < 1e-4
399
400 self.branching_ratio = max(total_br) * eff
401-
402 #self.banner['madspin'] += ms_banner
403 # Update cross-section in the banner
404 if 'mggenerationinfo' in self.banner:
405@@ -3833,18 +3933,36 @@
406 mg_info[i] = '%s : %s' % (info, value * self.branching_ratio)
407 self.banner['mggenerationinfo'] = '\n'.join(mg_info)
408
409-
410-
411- if 'init' in self.banner:
412+ self.cross = 0
413+ self.error = 0
414+ if 'init' in self.banner and (eff!=1 or not any(v==-1 for v in self.br_per_id.values())):
415 new_init =''
416+ curr_proc = 0
417+ has_missing=False
418 for line in self.banner['init'].split('\n'):
419 if len(line.split()) != 4:
420 new_init += '%s\n' % line
421 else:
422+ curr_proc += 1
423 data = [float(nb) for nb in line.split()]
424- data[:3] = [ data[i] * self.branching_ratio for i in range(3)]
425+ id = int(data[-1])
426+ if id in self.br_per_id and not any(v==-1 for v in self.br_per_id.values()):
427+ data[:3] = [data[i] * self.br_per_id[id] for i in range(3)]
428+ else:
429+ data[:3] = [ data[i] * self.branching_ratio for i in range(3)]
430+ has_missing=True
431 new_init += ' %.12E %.12E %.12E %i\n' % tuple(data)
432+ cross, error = [float(d) for d in data[:2]]
433+ self.cross += cross
434+ self.error += error**2
435+
436+
437 self.banner['init'] = new_init
438+ self.error = math.sqrt(self.error)
439+ if has_missing and curr_proc not in [0,1]:
440+ logger.warning('''The partial cross section for each subprocess can not be determine. due
441+ Reason: multiple final state in the same subprocess (and the presence of multiple BR)
442+ Consequence: the <init> information of the lhe will therefore be incorrect. Please correct it if needed.''')
443 self.banner.write(self.outputfile, close_tag=False)
444
445 def terminate_fortran_executables(self, path_to_decay=0 ):
446
447=== modified file 'MadSpin/interface_madspin.py' (properties changed: -x to +x)
448--- MadSpin/interface_madspin.py 2015-08-04 14:28:22 +0000
449+++ MadSpin/interface_madspin.py 2016-11-23 08:16:42 +0000
450@@ -32,8 +32,10 @@
451 import madgraph.interface.extended_cmd as extended_cmd
452 import madgraph.interface.madgraph_interface as mg_interface
453 import madgraph.interface.master_interface as master_interface
454+import madgraph.interface.madevent_interface as madevent_interface
455 import madgraph.various.misc as misc
456 import madgraph.iolibs.files as files
457+import madgraph.iolibs.export_v4 as export_v4
458 import madgraph.various.banner as banner
459 import madgraph.various.lhe_parser as lhe_parser
460
461@@ -176,7 +178,13 @@
462 logger.info("process: %s" % process)
463 logger.info("options: %s" % option)
464
465-
466+ if not hasattr(self,'multiparticles_ms'):
467+ for key, value in self.banner.get_detail('proc_card','multiparticles'):
468+ try:
469+ self.do_define('%s = %s' % (key, value))
470+ except self.mg5cmd.InvalidCmd:
471+ pass
472+
473 # Read the final state of the production process:
474 # "_full" means with the complete decay chain syntax
475 # "_compact" means without the decay chain syntax
476@@ -201,12 +209,13 @@
477 mg_names = True
478 model_name = self.banner.get('proc_card', 'model')
479 if model_name:
480+ model_name = os.path.expanduser(model_name)
481 self.load_model(model_name, mg_names, complex_mass)
482 else:
483 raise self.InvalidCmd('Only UFO model can be loaded in MadSpin.')
484-
485 # check particle which can be decayed:
486 self.final_state = set()
487+ final_model = False
488 for line in self.banner.proc_card:
489 line = ' '.join(line.strip().split())
490 if line.startswith('generate'):
491@@ -214,30 +223,50 @@
492 elif line.startswith('add process'):
493 self.final_state.update(self.mg5cmd.get_final_part(line[11:]))
494 elif line.startswith('define'):
495- self.mg5cmd.exec_cmd(line, printcmd=False, precmd=False, postcmd=False)
496+ try:
497+ self.mg5cmd.exec_cmd(line, printcmd=False, precmd=False, postcmd=False)
498+ except self.mg5cmd.InvalidCmd:
499+ if final_model:
500+ raise
501+ else:
502+ key = line.split()[1]
503+ if key in self.multiparticles_ms:
504+ del self.multiparticles_ms[key]
505 elif line.startswith('set'):
506 self.mg5cmd.exec_cmd(line, printcmd=False, precmd=False, postcmd=False)
507+ elif line.startswith('import model'):
508+ if model_name in line:
509+ final_model = True
510
511
512
513 def import_model(self, args):
514 """syntax: import model NAME CARD_PATH
515 args didn't include import model"""
516-
517+
518 bypass_check = False
519 if '--bypass_check' in args:
520 args.remove('--bypass_check')
521 bypass_check = True
522
523- if len(args) != 2:
524+ if len(args) == 1:
525+ logger.warning("""No param_card defined for the new model. We will use the default one but this might completely wrong.""")
526+ elif len(args) != 2:
527 return self.InvalidCmd, 'import model requires two arguments'
528
529 model_name = args[0]
530- card = args[1]
531- if not os.path.exists(card):
532- raise self.InvalidCmd('%s: no such file' % card)
533-
534 self.load_model(model_name, False, False)
535+
536+ if len(args) == 2:
537+ card = args[1]
538+ if not os.path.exists(card):
539+ raise self.InvalidCmd('%s: no such file' % card)
540+ else:
541+ card = "madspin_param_card.dat"
542+ export_v4.UFO_model_to_mg4.create_param_card_static(self.model,
543+ card, rule_card_path=None)
544+
545+
546
547 #Check the param_card
548 if not bypass_check:
549@@ -255,11 +284,15 @@
550 if diff:
551 raise self.InvalidCmd('''Original param_card differs on some parameters:
552 %s
553- Due to those preferences, we prefer not to proceed. If you are sure about what you are doing,
554+ Due to those differences, we prefer not to proceed. If you are sure about what you are doing,
555 you can use the command \'import model MODELNAME PARAM_CARD_PATH --bypass_check\''''
556 % diff.replace('\n','\n '))
557+
558+
559
560- #OK load the new param_card
561+ #OK load the new param_card (but back up the old one)
562+ if 'slha' in self.banner:
563+ self.banner['slha_original'] = self.banner['slha']
564 self.banner['slha'] = open(card).read()
565 if hasattr(self.banner, 'param_card'):
566 del self.banner.param_card
567@@ -359,12 +392,14 @@
568 args = self.split_arg(line)
569 self.check_set(args)
570
571+ if args[0] not in ['ms_dir', 'run_card']:
572+ args[1] = args[1].lower()
573+
574 if args[0] in ['max_weight', 'BW_effect','ms_dir', 'spinmode']:
575 self.options[args[0]] = args[1]
576 if args[0] == 'ms_dir':
577 self.options['curr_dir'] = self.options['ms_dir']
578 elif args[0] == 'seed':
579- import random
580 random.seed(int(args[1]))
581 self.seed = int(args[1])
582 elif args[0] == 'BW_cut':
583@@ -426,7 +461,19 @@
584
585 def do_define(self, line):
586 """ """
587- return self.mg5cmd.do_define(line)
588+
589+ try:
590+ self.mg5cmd.exec_cmd('define %s' % line)
591+ except:
592+ #cleaning if the error is recover later
593+ key = line.split()[0]
594+ if hasattr(self, 'multiparticles_ms') and key in self.multiparticles_ms:
595+ del self.multiparticles_ms[key]
596+ raise
597+
598+ self.multiparticles_ms = dict([(k,list(pdgs)) for k, pdgs in \
599+ self.mg5cmd._multiparticles.items()])
600+
601
602 def update_status(self, *args, **opts):
603 """ """
604@@ -500,7 +547,6 @@
605 model_line = self.banner.get('proc_card', 'full_model_line')
606
607 if not self.seed:
608- import random
609 self.seed = random.randint(0, int(30081*30081))
610 self.do_set('seed %s' % self.seed)
611 logger.info('Will use seed %s' % self.seed)
612@@ -523,6 +569,9 @@
613 generate_all.run()
614
615 self.branching_ratio = generate_all.branching_ratio
616+ self.cross = generate_all.cross
617+ self.error = generate_all.error
618+ self.efficiency = generate_all.efficiency
619 try:
620 self.err_branching_ratio = generate_all.err_branching_ratio
621 except Exception:
622@@ -619,11 +668,15 @@
623 #seed is specified need to use that one:
624 open(pjoin(self.options['ms_dir'],'seeds.dat'),'w').write('%s\n'%self.seed)
625 #remove all ranmar_state
626- for name in glob.glob(pjoin(self.options['ms_dir'], '*', 'SubProcesses','*','ranmar_state.dat')):
627+ for name in misc.glob(pjoin('*', 'SubProcesses','*','ranmar_state.dat'),
628+ self.options['ms_dir']):
629 os.remove(name)
630
631 generate_all.ending_run()
632 self.branching_ratio = generate_all.branching_ratio
633+ self.cross = generate_all.cross
634+ self.error = generate_all.error
635+ self.efficiency = generate_all.efficiency
636 try:
637 self.err_branching_ratio = generate_all.err_branching_ratio
638 except Exception:
639@@ -648,8 +701,7 @@
640 # of event to generate for each type of particle.
641 # 2. Generate the events requested
642 # 3. perform the merge of the events.
643- # if not enough events. re-generate the missing one.
644-
645+ # if not enough events. re-generate the missing one.
646 # First define an utility function for generating events when needed
647 def generate_events(pdg, nb_event, mg5, restrict_file=None, cumul=False):
648 """generate new events for this particle
649@@ -679,24 +731,54 @@
650 else:
651 mg5.exec_cmd("generate %s" % proc)
652 mg5.exec_cmd("output %s -f" % decay_dir)
653- options = dict(mg5.options)
654- import madgraph.interface.madevent_interface as madevent_interface
655- me5_cmd = madevent_interface.MadEventCmdShell(me_dir=os.path.realpath(\
656+
657+ options = dict(mg5.options)
658+ if self.options['ms_dir']:
659+ misc.sprint("start gridpack!")
660+ # we are in gridpack mode -> create it
661+ me5_cmd = madevent_interface.MadEventCmdShell(me_dir=os.path.realpath(\
662 decay_dir), options=options)
663- me5_cmd.options["automatic_html_opening"] = False
664- if self.options["run_card"]:
665- run_card = self.options["run_card"]
666+ me5_cmd.options["automatic_html_opening"] = False
667+ if self.options["run_card"]:
668+ run_card = self.options["run_card"]
669+ else:
670+ run_card = banner.RunCard(pjoin(decay_dir, "Cards", "run_card.dat"))
671+
672+ run_card["iseed"] = self.seed
673+ run_card['gridpack'] = True
674+ run_card.write(pjoin(decay_dir, "Cards", "run_card.dat"))
675+ param_card = self.banner['slha']
676+ open(pjoin(decay_dir, "Cards", "param_card.dat"),"w").write(param_card)
677+ self.seed += 1
678+ # actually creation
679+ me5_cmd.exec_cmd("generate_events run_01 -f")
680+ me5_cmd.exec_cmd("exit")
681+ #remove pointless informat
682+ misc.call(["rm", "Cards", "bin", 'Source', 'SubProcesses'], cwd=decay_dir)
683+ misc.call(['tar', '-xzpvf', 'run_01_gridpack.tar.gz'], cwd=decay_dir)
684+
685+ # Now generate the events
686+
687+ if not self.options['ms_dir']:
688+ me5_cmd = madevent_interface.MadEventCmdShell(me_dir=os.path.realpath(\
689+ decay_dir), options=mg5.options)
690+ me5_cmd.options["automatic_html_opening"] = False
691+ if self.options["run_card"]:
692+ run_card = self.options["run_card"]
693+ else:
694+ run_card = banner.RunCard(pjoin(decay_dir, "Cards", "run_card.dat"))
695+ run_card["nevents"] = int(1.2*nb_event)
696+ run_card["iseed"] = self.seed
697+ run_card.write(pjoin(decay_dir, "Cards", "run_card.dat"))
698+ param_card = self.banner['slha']
699+ open(pjoin(decay_dir, "Cards", "param_card.dat"),"w").write(param_card)
700+ self.seed += 1
701+ me5_cmd.exec_cmd("generate_events run_01 -f")
702+ me5_cmd.exec_cmd("exit")
703+ out[i] = lhe_parser.EventFile(pjoin(decay_dir, "Events", 'run_01', 'unweighted_events.lhe.gz'))
704 else:
705- run_card = banner.RunCard(pjoin(decay_dir, "Cards", "run_card.dat"))
706- run_card["nevents"] = int(1.2*nb_event)
707- run_card["iseed"] = self.seed
708- run_card.write(pjoin(decay_dir, "Cards", "run_card.dat"))
709- param_card = self.banner['slha']
710- open(pjoin(decay_dir, "Cards", "param_card.dat"),"w").write(param_card)
711- self.seed += 1
712- me5_cmd.exec_cmd("generate_events run_01 -f")
713- me5_cmd.exec_cmd("exit")
714- out[i] = lhe_parser.EventFile(pjoin(decay_dir, "Events", 'run_01', 'unweighted_events.lhe.gz'))
715+ misc.call(['run.sh', str(int(1.2*nb_event)), str(self.seed)], cwd=decay_dir)
716+ out[i] = lhe_parser.EventFile(pjoin(decay_dir, 'events.lhe.gz'))
717 if cumul:
718 break
719
720@@ -713,7 +795,7 @@
721 os.mkdir(self.path_me)
722 else:
723 # cleaning
724- for name in glob.glob(pjoin(self.path_me, "decay_*_*")):
725+ for name in misc.glob("decay_*_*", self.path_me):
726 shutil.rmtree(name)
727
728 self.events_file.close()
729@@ -730,7 +812,6 @@
730
731 # Handle the banner of the output file
732 if not self.seed:
733- import random
734 self.seed = random.randint(0, int(30081*30081))
735 self.do_set('seed %s' % self.seed)
736 logger.info('Will use seed %s' % self.seed)
737@@ -749,8 +830,9 @@
738 # 2. Generate the events requested
739 with misc.MuteLogger(["madgraph", "madevent", "ALOHA", "cmdprint"], [50,50,50,50]):
740 mg5 = self.mg5cmd
741- modelpath = self.model.get('modelpath')
742- mg5.exec_cmd("import model %s" % modelpath)
743+ if not self.model:
744+ modelpath = self.model.get('modelpath+restriction')
745+ mg5.exec_cmd("import model %s" % modelpath)
746 to_event = {}
747 for pdg, nb_needed in to_decay.items():
748 #check if a splitting is needed
749@@ -808,6 +890,12 @@
750 else:
751 raise self.InvalidCmd("The bridge mode of MadSpin does not support event files where events do not *all* share the same set of final state particles to be decayed.")
752 self.branching_ratio = br
753+ self.efficiency = 1
754+ self.cross, self.error = self.banner.get_cross(witherror=True)
755+ self.cross *= br
756+ self.error *= br
757+
758+
759 # modify the cross-section in the init block of the banner
760 self.banner.scale_init_cross(self.branching_ratio)
761
762@@ -852,10 +940,10 @@
763 else:
764 #need to select the file according to the associate cross-section
765 r = random.random()
766- tot = sum(events.cross for events in to_event[particle.pdg])
767+ tot = sum(to_event[particle.pdg][key].cross for key in to_event[particle.pdg])
768 r = r * tot
769 cumul = 0
770- for j,events in enumerate(to_event[particle.pdg]):
771+ for j,events in to_event[particle.pdg].items():
772 cumul += events.cross
773 if r < cumul:
774 decay_file = events
775@@ -923,17 +1011,15 @@
776 #base_model = import_ufo.import_model(model_path)
777
778 # Import model
779- base_model = import_ufo.import_model(name, decay=True)
780+ base_model = import_ufo.import_model(name, decay=True,
781+ complex_mass_scheme=complex_mass)
782
783 if use_mg_default:
784 base_model.pass_particles_name_in_mg_default()
785- if complex_mass:
786- base_model.change_mass_to_complex_scheme()
787
788 self.model = base_model
789 self.mg5cmd._curr_model = self.model
790 self.mg5cmd.process_model()
791-
792
793 if __name__ == '__main__':
794
795
796=== modified file 'MadSpin/src/driver.f'
797--- MadSpin/src/driver.f 2015-01-29 14:35:06 +0000
798+++ MadSpin/src/driver.f 2016-11-23 08:16:42 +0000
799@@ -907,7 +907,7 @@
800 if (index_p2.gt.0) then
801 m2_tchan(i)=m(index_p2)
802 else
803- write(*,*) 'Warning: m_2^2 is negative in t-channel branching '
804+ write(*,*) 'Warning: m_2^2 is negative in t-channel branching ',m2_tchan(i)
805 endif
806 endif
807 ! extract phi
808
809=== added directory 'PLUGIN'
810=== added file 'PLUGIN/__init__.py'
811=== modified file 'Template/Common/Cards/delphes_card_ATLAS.dat'
812--- Template/Common/Cards/delphes_card_ATLAS.dat 2014-05-13 14:23:18 +0000
813+++ Template/Common/Cards/delphes_card_ATLAS.dat 2016-11-23 08:16:42 +0000
814@@ -10,7 +10,7 @@
815 MuonTrackingEfficiency
816
817 ChargedHadronMomentumSmearing
818- ElectronEnergySmearing
819+ ElectronMomentumSmearing
820 MuonMomentumSmearing
821
822 TrackMerger
823@@ -20,6 +20,7 @@
824 PhotonEfficiency
825 PhotonIsolation
826
827+ ElectronFilter
828 ElectronEfficiency
829 ElectronIsolation
830
831@@ -28,10 +29,15 @@
832
833 MissingET
834
835+ NeutrinoFilter
836 GenJetFinder
837+ GenMissingET
838+
839 FastJetFinder
840
841 JetEnergyScale
842+
843+ JetFlavorAssociation
844
845 BTagging
846 TauTagging
847@@ -75,11 +81,11 @@
848 # add EfficiencyFormula {efficiency formula as a function of eta and pt}
849
850 # tracking efficiency formula for charged hadrons
851- set EfficiencyFormula { (pt <= 0.1) * (0.00) + \
852- (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.70) + \
853- (abs(eta) <= 1.5) * (pt > 1.0) * (0.95) + \
854- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.60) + \
855- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.85) + \
856+ set EfficiencyFormula { (pt <= 0.1) * (0.00) +
857+ (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.70) +
858+ (abs(eta) <= 1.5) * (pt > 1.0) * (0.95) +
859+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.60) +
860+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.85) +
861 (abs(eta) > 2.5) * (0.00)}
862 }
863
864@@ -94,13 +100,13 @@
865 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
866
867 # tracking efficiency formula for electrons
868- set EfficiencyFormula { (pt <= 0.1) * (0.00) + \
869- (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.73) + \
870- (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e2) * (0.95) + \
871- (abs(eta) <= 1.5) * (pt > 1.0e2) * (0.99) + \
872- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.50) + \
873- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e2) * (0.83) + \
874- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2) * (0.90) + \
875+ set EfficiencyFormula { (pt <= 0.1) * (0.00) +
876+ (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.73) +
877+ (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e2) * (0.95) +
878+ (abs(eta) <= 1.5) * (pt > 1.0e2) * (0.99) +
879+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.50) +
880+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e2) * (0.83) +
881+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2) * (0.90) +
882 (abs(eta) > 2.5) * (0.00)}
883 }
884
885@@ -115,11 +121,11 @@
886 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
887
888 # tracking efficiency formula for muons
889- set EfficiencyFormula { (pt <= 0.1) * (0.00) + \
890- (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.75) + \
891- (abs(eta) <= 1.5) * (pt > 1.0) * (0.99) + \
892- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.70) + \
893- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.98) + \
894+ set EfficiencyFormula { (pt <= 0.1) * (0.00) +
895+ (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.75) +
896+ (abs(eta) <= 1.5) * (pt > 1.0) * (0.99) +
897+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.70) +
898+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.98) +
899 (abs(eta) > 2.5) * (0.00)}
900 }
901
902@@ -134,31 +140,25 @@
903 # set ResolutionFormula {resolution formula as a function of eta and pt}
904
905 # resolution formula for charged hadrons
906- set ResolutionFormula { (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.02) + \
907- (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e1) * (0.01) + \
908- (abs(eta) <= 1.5) * (pt > 1.0e1 && pt <= 2.0e2) * (0.03) + \
909- (abs(eta) <= 1.5) * (pt > 2.0e2) * (0.05) + \
910- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.03) + \
911- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e1) * (0.02) + \
912- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e1 && pt <= 2.0e2) * (0.04) + \
913- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 2.0e2) * (0.05)}
914+ set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.01^2 + pt^2*1.5e-4^2) +
915+ (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.015^2 + pt^2*2.5e-4^2) +
916+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.025^2 + pt^2*5.5e-4^2)}
917 }
918
919-#################################
920-# Energy resolution for electrons
921-#################################
922+###################################
923+# Momentum resolution for electrons
924+###################################
925
926-module EnergySmearing ElectronEnergySmearing {
927+module MomentumSmearing ElectronMomentumSmearing {
928 set InputArray ElectronTrackingEfficiency/electrons
929 set OutputArray electrons
930
931 # set ResolutionFormula {resolution formula as a function of eta and energy}
932
933- set ResolutionFormula { (abs(eta) <= 2.5) * (energy > 0.1 && energy <= 2.5e1) * (energy*0.015) + \
934- (abs(eta) <= 2.5) * (energy > 2.5e1) * sqrt(energy^2*0.005^2 + energy*0.05^2 + 0.25^2) + \
935- (abs(eta) > 2.5 && abs(eta) <= 3.0) * sqrt(energy^2*0.005^2 + energy*0.05^2 + 0.25^2) + \
936- (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)}
937-
938+ # resolution formula for electrons
939+ set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.03^2 + pt^2*1.3e-3^2) +
940+ (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.05^2 + pt^2*1.7e-3^2) +
941+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.15^2 + pt^2*3.1e-3^2)}
942 }
943
944 ###############################
945@@ -170,16 +170,10 @@
946 set OutputArray muons
947
948 # set ResolutionFormula {resolution formula as a function of eta and pt}
949-
950 # resolution formula for muons
951- set ResolutionFormula { (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.03) + \
952- (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 5.0e1) * (0.03) + \
953- (abs(eta) <= 1.5) * (pt > 5.0e1 && pt <= 1.0e2) * (0.04) + \
954- (abs(eta) <= 1.5) * (pt > 1.0e2) * (0.07) + \
955- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.04) + \
956- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 5.0e1) * (0.04) + \
957- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 5.0e1 && pt <= 1.0e2) * (0.05) + \
958- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2) * (0.10)}
959+ set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.01^2 + pt^2*1.0e-4^2) +
960+ (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.015^2 + pt^2*1.5e-4^2) +
961+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.025^2 + pt^2*3.5e-4^2)}
962 }
963
964 ##############
965@@ -189,7 +183,7 @@
966 module Merger TrackMerger {
967 # add InputArray InputArray
968 add InputArray ChargedHadronMomentumSmearing/chargedHadrons
969- add InputArray ElectronEnergySmearing/electrons
970+ add InputArray ElectronMomentumSmearing/electrons
971 add InputArray MuonMomentumSmearing/muons
972 set OutputArray tracks
973 }
974@@ -209,6 +203,14 @@
975 set EFlowPhotonOutputArray eflowPhotons
976 set EFlowNeutralHadronOutputArray eflowNeutralHadrons
977
978+ set ECalEnergyMin 0.5
979+ set HCalEnergyMin 1.0
980+
981+ set ECalEnergySignificanceMin 1.0
982+ set HCalEnergySignificanceMin 1.0
983+
984+ set SmearTowerCenter true
985+
986 set pi [expr {acos(-1)}]
987
988 # lists of the edges of each tower in eta and phi
989@@ -257,15 +259,15 @@
990 # http://arxiv.org/pdf/physics/0608012v1 jinst8_08_s08003
991 # http://villaolmo.mib.infn.it/ICATPP9th_2005/Calorimetry/Schram.p.pdf
992 # http://www.physics.utoronto.ca/~krieger/procs/ComoProceedings.pdf
993- set ECalResolutionFormula { (abs(eta) <= 3.2) * sqrt(energy^2*0.0017^2 + energy*0.101^2) + \
994+ set ECalResolutionFormula { (abs(eta) <= 3.2) * sqrt(energy^2*0.0017^2 + energy*0.101^2) +
995 (abs(eta) > 3.2 && abs(eta) <= 4.9) * sqrt(energy^2*0.0350^2 + energy*0.285^2)}
996
997 # set HCalResolutionFormula {resolution formula as a function of eta and energy}
998 # http://arxiv.org/pdf/hep-ex/0004009v1
999 # http://villaolmo.mib.infn.it/ICATPP9th_2005/Calorimetry/Schram.p.pdf
1000- set HCalResolutionFormula { (abs(eta) <= 1.7) * sqrt(energy^2*0.0302^2 + energy*0.5205^2 + 1.59^2) + \
1001- (abs(eta) > 1.7 && abs(eta) <= 3.2) * sqrt(energy^2*0.0500^2 + energy*0.706^2) + \
1002- (abs(eta) > 3.2 && abs(eta) <= 4.9) * sqrt(energy^2*0.9420^2 + energy*0.075^2)}
1003+ set HCalResolutionFormula { (abs(eta) <= 1.7) * sqrt(energy^2*0.0302^2 + energy*0.5205^2 + 1.59^2) +
1004+ (abs(eta) > 1.7 && abs(eta) <= 3.2) * sqrt(energy^2*0.0500^2 + energy*0.706^2) +
1005+ (abs(eta) > 3.2 && abs(eta) <= 4.9) * sqrt(energy^2*0.09420^2 + energy*1.00^2)}
1006 }
1007
1008 ####################
1009@@ -285,15 +287,15 @@
1010 ###################
1011
1012 module Efficiency PhotonEfficiency {
1013- set InputArray Calorimeter/photons
1014+ set InputArray Calorimeter/eflowPhotons
1015 set OutputArray photons
1016
1017 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
1018
1019 # efficiency formula for photons
1020- set EfficiencyFormula { (pt <= 10.0) * (0.00) + \
1021- (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + \
1022- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) + \
1023+ set EfficiencyFormula { (pt <= 10.0) * (0.00) +
1024+ (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) +
1025+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) +
1026 (abs(eta) > 2.5) * (0.00)}
1027 }
1028
1029@@ -311,7 +313,19 @@
1030
1031 set PTMin 0.5
1032
1033- set PTRatioMax 0.1
1034+ set PTRatioMax 0.12
1035+}
1036+
1037+#################
1038+# Electron filter
1039+#################
1040+
1041+module PdgCodeFilter ElectronFilter {
1042+ set InputArray Calorimeter/eflowTracks
1043+ set OutputArray electrons
1044+ set Invert true
1045+ add PdgCode {11}
1046+ add PdgCode {-11}
1047 }
1048
1049 #####################
1050@@ -319,15 +333,15 @@
1051 #####################
1052
1053 module Efficiency ElectronEfficiency {
1054- set InputArray ElectronEnergySmearing/electrons
1055+ set InputArray ElectronFilter/electrons
1056 set OutputArray electrons
1057
1058 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
1059
1060 # efficiency formula for electrons
1061- set EfficiencyFormula { (pt <= 10.0) * (0.00) + \
1062- (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + \
1063- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) + \
1064+ set EfficiencyFormula { (pt <= 10.0) * (0.00) +
1065+ (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) +
1066+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) +
1067 (abs(eta) > 2.5) * (0.00)}
1068 }
1069
1070@@ -345,7 +359,7 @@
1071
1072 set PTMin 0.5
1073
1074- set PTRatioMax 0.1
1075+ set PTRatioMax 0.12
1076 }
1077
1078 #################
1079@@ -359,9 +373,9 @@
1080 # set EfficiencyFormula {efficiency as a function of eta and pt}
1081
1082 # efficiency formula for muons
1083- set EfficiencyFormula { (pt <= 10.0) * (0.00) + \
1084- (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + \
1085- (abs(eta) > 1.5 && abs(eta) <= 2.7) * (pt > 10.0) * (0.85) + \
1086+ set EfficiencyFormula { (pt <= 10.0) * (0.00) +
1087+ (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) +
1088+ (abs(eta) > 1.5 && abs(eta) <= 2.7) * (pt > 10.0) * (0.85) +
1089 (abs(eta) > 2.7) * (0.00)}
1090 }
1091
1092@@ -379,7 +393,7 @@
1093
1094 set PTMin 0.5
1095
1096- set PTRatioMax 0.1
1097+ set PTRatioMax 0.25
1098 }
1099
1100 ###################
1101@@ -405,12 +419,33 @@
1102 set EnergyOutputArray energy
1103 }
1104
1105+
1106+#####################
1107+# Neutrino Filter
1108+#####################
1109+
1110+module PdgCodeFilter NeutrinoFilter {
1111+
1112+ set InputArray Delphes/stableParticles
1113+ set OutputArray filteredParticles
1114+
1115+ set PTMin 0.0
1116+
1117+ add PdgCode {12}
1118+ add PdgCode {14}
1119+ add PdgCode {16}
1120+ add PdgCode {-12}
1121+ add PdgCode {-14}
1122+ add PdgCode {-16}
1123+
1124+}
1125+
1126 #####################
1127 # MC truth jet finder
1128 #####################
1129
1130 module FastJetFinder GenJetFinder {
1131- set InputArray Delphes/stableParticles
1132+ set InputArray NeutrinoFilter/filteredParticles
1133
1134 set OutputArray jets
1135
1136@@ -421,6 +456,19 @@
1137 set JetPTMin 20.0
1138 }
1139
1140+
1141+#########################
1142+# Gen Missing ET merger
1143+########################
1144+
1145+module Merger GenMissingET {
1146+# add InputArray InputArray
1147+ add InputArray NeutrinoFilter/filteredParticles
1148+ set MomentumOutputArray momentum
1149+}
1150+
1151+
1152+
1153 ############
1154 # Jet finder
1155 ############
1156@@ -445,8 +493,25 @@
1157 set InputArray FastJetFinder/jets
1158 set OutputArray jets
1159
1160- # scale formula for jets
1161- set ScaleFormula {1.00}
1162+ # scale formula for jets
1163+ set ScaleFormula { sqrt( (3.0 - 0.2*(abs(eta)))^2 / pt + 1.0 ) }
1164+}
1165+
1166+########################
1167+# Jet Flavor Association
1168+########################
1169+
1170+module JetFlavorAssociation JetFlavorAssociation {
1171+
1172+ set PartonInputArray Delphes/partons
1173+ set ParticleInputArray Delphes/allParticles
1174+ set ParticleLHEFInputArray Delphes/allParticlesLHEF
1175+ set JetInputArray JetEnergyScale/jets
1176+
1177+ set DeltaR 0.5
1178+ set PartonPTMin 1.0
1179+ set PartonEtaMax 2.5
1180+
1181 }
1182
1183 ###########
1184@@ -454,54 +519,60 @@
1185 ###########
1186
1187 module BTagging BTagging {
1188- set PartonInputArray Delphes/partons
1189 set JetInputArray JetEnergyScale/jets
1190
1191 set BitNumber 0
1192
1193- set DeltaR 0.5
1194-
1195- set PartonPTMin 1.0
1196-
1197- set PartonEtaMax 2.5
1198-
1199 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
1200 # PDG code = the highest PDG code of a quark or gluon inside DeltaR cone around jet axis
1201 # gluon's PDG code has the lowest priority
1202
1203+ # based on ATL-PHYS-PUB-2015-022
1204+
1205 # default efficiency formula (misidentification rate)
1206- add EfficiencyFormula {0} {0.001}
1207+ add EfficiencyFormula {0} {0.002+7.3e-06*pt}
1208
1209 # efficiency formula for c-jets (misidentification rate)
1210- add EfficiencyFormula {4} { (pt <= 15.0) * (0.000) + \
1211- (abs(eta) <= 1.2) * (pt > 15.0) * (0.2*tanh(pt*0.03 - 0.4)) + \
1212- (abs(eta) > 1.2 && abs(eta) <= 2.5) * (pt > 15.0) * (0.1*tanh(pt*0.03 - 0.4)) + \
1213- (abs(eta) > 2.5) * (0.000)}
1214+ add EfficiencyFormula {4} {0.20*tanh(0.02*pt)*(1/(1+0.0034*pt))}
1215
1216 # efficiency formula for b-jets
1217- add EfficiencyFormula {5} { (pt <= 15.0) * (0.000) + \
1218- (abs(eta) <= 1.2) * (pt > 15.0) * (0.5*tanh(pt*0.03 - 0.4)) + \
1219- (abs(eta) > 1.2 && abs(eta) <= 2.5) * (pt > 15.0) * (0.4*tanh(pt*0.03 - 0.4)) + \
1220- (abs(eta) > 2.5) * (0.000)}
1221+ add EfficiencyFormula {5} {0.80*tanh(0.003*pt)*(30/(1+0.086*pt))}
1222 }
1223
1224-module TauTagging TauTagging {
1225+#############
1226+# tau-tagging
1227+#############
1228+
1229+module TrackCountingTauTagging TauTagging {
1230+
1231 set ParticleInputArray Delphes/allParticles
1232 set PartonInputArray Delphes/partons
1233+ set TrackInputArray TrackMerger/tracks
1234 set JetInputArray JetEnergyScale/jets
1235
1236- set DeltaR 0.5
1237+ set DeltaR 0.2
1238+ set DeltaRTrack 0.2
1239
1240+ set TrackPTMin 1.0
1241+
1242 set TauPTMin 1.0
1243-
1244 set TauEtaMax 2.5
1245
1246- # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
1247+ # instructions: {n-prongs} {eff}
1248+
1249+ # 1 - one prong efficiency
1250+ # 2 - two or more efficiency
1251+ # -1 - one prong mistag rate
1252+ # -2 - two or more mistag rate
1253+
1254+ set BitNumber 0
1255+
1256+ # taken from ATL-PHYS-PUB-2015-045 (medium working point)
1257+ add EfficiencyFormula {1} {0.70}
1258+ add EfficiencyFormula {2} {0.60}
1259+ add EfficiencyFormula {-1} {0.02}
1260+ add EfficiencyFormula {-2} {0.01}
1261
1262- # default efficiency formula (misidentification rate)
1263- add EfficiencyFormula {0} {0.001}
1264- # efficiency formula for tau-jets
1265- add EfficiencyFormula {15} {0.4}
1266 }
1267
1268 #####################################################
1269@@ -537,6 +608,8 @@
1270 add Branch Calorimeter/eflowNeutralHadrons EFlowNeutralHadron Tower
1271
1272 add Branch GenJetFinder/jets GenJet Jet
1273+ add Branch GenMissingET/momentum GenMissingET MissingET
1274+
1275 add Branch UniqueObjectFinder/jets Jet Jet
1276 add Branch UniqueObjectFinder/electrons Electron Electron
1277 add Branch UniqueObjectFinder/photons Photon Photon
1278
1279=== modified file 'Template/Common/Cards/delphes_card_CMS.dat'
1280--- Template/Common/Cards/delphes_card_CMS.dat 2014-05-13 14:23:18 +0000
1281+++ Template/Common/Cards/delphes_card_CMS.dat 2016-11-23 08:16:42 +0000
1282@@ -10,7 +10,7 @@
1283 MuonTrackingEfficiency
1284
1285 ChargedHadronMomentumSmearing
1286- ElectronEnergySmearing
1287+ ElectronMomentumSmearing
1288 MuonMomentumSmearing
1289
1290 TrackMerger
1291@@ -20,6 +20,7 @@
1292 PhotonEfficiency
1293 PhotonIsolation
1294
1295+ ElectronFilter
1296 ElectronEfficiency
1297 ElectronIsolation
1298
1299@@ -28,11 +29,16 @@
1300
1301 MissingET
1302
1303+ NeutrinoFilter
1304 GenJetFinder
1305+ GenMissingET
1306+
1307 FastJetFinder
1308
1309 JetEnergyScale
1310
1311+ JetFlavorAssociation
1312+
1313 BTagging
1314 TauTagging
1315
1316@@ -75,11 +81,11 @@
1317 # add EfficiencyFormula {efficiency formula as a function of eta and pt}
1318
1319 # tracking efficiency formula for charged hadrons
1320- set EfficiencyFormula { (pt <= 0.1) * (0.00) + \
1321- (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.70) + \
1322- (abs(eta) <= 1.5) * (pt > 1.0) * (0.95) + \
1323- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.60) + \
1324- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.85) + \
1325+ set EfficiencyFormula { (pt <= 0.1) * (0.00) +
1326+ (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.70) +
1327+ (abs(eta) <= 1.5) * (pt > 1.0) * (0.95) +
1328+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.60) +
1329+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.85) +
1330 (abs(eta) > 2.5) * (0.00)}
1331 }
1332
1333@@ -94,13 +100,13 @@
1334 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
1335
1336 # tracking efficiency formula for electrons
1337- set EfficiencyFormula { (pt <= 0.1) * (0.00) + \
1338- (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.73) + \
1339- (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e2) * (0.95) + \
1340- (abs(eta) <= 1.5) * (pt > 1.0e2) * (0.99) + \
1341- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.50) + \
1342- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e2) * (0.83) + \
1343- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2) * (0.90) + \
1344+ set EfficiencyFormula { (pt <= 0.1) * (0.00) +
1345+ (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.73) +
1346+ (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e2) * (0.95) +
1347+ (abs(eta) <= 1.5) * (pt > 1.0e2) * (0.99) +
1348+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.50) +
1349+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e2) * (0.83) +
1350+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2) * (0.90) +
1351 (abs(eta) > 2.5) * (0.00)}
1352 }
1353
1354@@ -115,11 +121,11 @@
1355 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
1356
1357 # tracking efficiency formula for muons
1358- set EfficiencyFormula { (pt <= 0.1) * (0.00) + \
1359- (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.75) + \
1360- (abs(eta) <= 1.5) * (pt > 1.0) * (0.99) + \
1361- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.70) + \
1362- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.98) + \
1363+ set EfficiencyFormula { (pt <= 0.1) * (0.00) +
1364+ (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.75) +
1365+ (abs(eta) <= 1.5) * (pt > 1.0) * (0.99) +
1366+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.70) +
1367+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.98) +
1368 (abs(eta) > 2.5) * (0.00)}
1369 }
1370
1371@@ -134,32 +140,27 @@
1372 # set ResolutionFormula {resolution formula as a function of eta and pt}
1373
1374 # resolution formula for charged hadrons
1375- set ResolutionFormula { (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.02) + \
1376- (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e1) * (0.01) + \
1377- (abs(eta) <= 1.5) * (pt > 1.0e1 && pt <= 2.0e2) * (0.03) + \
1378- (abs(eta) <= 1.5) * (pt > 2.0e2) * (0.05) + \
1379- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.03) + \
1380- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e1) * (0.02) + \
1381- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e1 && pt <= 2.0e2) * (0.04) + \
1382- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 2.0e2) * (0.05)}
1383+ # based on arXiv:1405.6569
1384+ set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.01^2 + pt^2*1.5e-4^2) +
1385+ (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.015^2 + pt^2*2.5e-4^2) +
1386+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.025^2 + pt^2*5.5e-4^2)}
1387 }
1388
1389-#################################
1390-# Energy resolution for electrons
1391-#################################
1392+###################################
1393+# Momentum resolution for electrons
1394+###################################
1395
1396-module EnergySmearing ElectronEnergySmearing {
1397+module MomentumSmearing ElectronMomentumSmearing {
1398 set InputArray ElectronTrackingEfficiency/electrons
1399 set OutputArray electrons
1400
1401 # set ResolutionFormula {resolution formula as a function of eta and energy}
1402
1403 # resolution formula for electrons
1404- set ResolutionFormula { (abs(eta) <= 2.5) * (energy > 0.1 && energy <= 2.0e1) * (energy*0.0225) + \
1405- (abs(eta) <= 2.5) * (energy > 2.0e1) * sqrt(energy^2*0.007^2 + energy*0.07^2 + 0.35^2) + \
1406- (abs(eta) > 2.5 && abs(eta) <= 3.0) * sqrt(energy^2*0.007^2 + energy*0.07^2 + 0.35^2) + \
1407- (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)}
1408-
1409+ # based on arXiv:1405.6569
1410+ set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.03^2 + pt^2*1.3e-3^2) +
1411+ (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.05^2 + pt^2*1.7e-3^2) +
1412+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.15^2 + pt^2*3.1e-3^2)}
1413 }
1414
1415 ###############################
1416@@ -173,18 +174,9 @@
1417 # set ResolutionFormula {resolution formula as a function of eta and pt}
1418
1419 # resolution formula for muons
1420- set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1 && pt <= 5.0) * (0.02) + \
1421- (abs(eta) <= 0.5) * (pt > 5.0 && pt <= 1.0e2) * (0.015) + \
1422- (abs(eta) <= 0.5) * (pt > 1.0e2 && pt <= 2.0e2) * (0.03) + \
1423- (abs(eta) <= 0.5) * (pt > 2.0e2) * (0.05 + pt*1.e-4) + \
1424- (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1 && pt <= 5.0) * (0.03) + \
1425- (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 5.0 && pt <= 1.0e2) * (0.02) + \
1426- (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 1.0e2 && pt <= 2.0e2) * (0.04) + \
1427- (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 2.0e2) * (0.05 + pt*1.e-4) + \
1428- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 5.0) * (0.04) + \
1429- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 5.0 && pt <= 1.0e2) * (0.035) + \
1430- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2 && pt <= 2.0e2) * (0.05) + \
1431- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 2.0e2) * (0.05 + pt*1.e-4)}
1432+ set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.01^2 + pt^2*1.0e-4^2) +
1433+ (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.015^2 + pt^2*1.5e-4^2) +
1434+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.025^2 + pt^2*3.5e-4^2)}
1435 }
1436
1437 ##############
1438@@ -194,7 +186,7 @@
1439 module Merger TrackMerger {
1440 # add InputArray InputArray
1441 add InputArray ChargedHadronMomentumSmearing/chargedHadrons
1442- add InputArray ElectronEnergySmearing/electrons
1443+ add InputArray ElectronMomentumSmearing/electrons
1444 add InputArray MuonMomentumSmearing/muons
1445 set OutputArray tracks
1446 }
1447@@ -214,6 +206,14 @@
1448 set EFlowPhotonOutputArray eflowPhotons
1449 set EFlowNeutralHadronOutputArray eflowNeutralHadrons
1450
1451+ set ECalEnergyMin 0.5
1452+ set HCalEnergyMin 1.0
1453+
1454+ set ECalEnergySignificanceMin 1.0
1455+ set HCalEnergySignificanceMin 1.0
1456+
1457+ set SmearTowerCenter true
1458+
1459 set pi [expr {acos(-1)}]
1460
1461 # lists of the edges of each tower in eta and phi
1462@@ -268,11 +268,13 @@
1463 add EnergyFraction {3122} {0.3 0.7}
1464
1465 # set ECalResolutionFormula {resolution formula as a function of eta and energy}
1466- set ECalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.007^2 + energy*0.07^2 + 0.35^2) + \
1467- (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)}
1468+ # Eta shape from arXiv:1306.2016, Energy shape from arXiv:1502.02701
1469+ set ECalResolutionFormula { (abs(eta) <= 1.5) * (1+0.64*eta^2) * sqrt(energy^2*0.008^2 + energy*0.11^2 + 0.40^2) +
1470+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (2.16 + 5.6*(abs(eta)-2)^2) * sqrt(energy^2*0.008^2 + energy*0.11^2 + 0.40^2) +
1471+ (abs(eta) > 2.5 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)}
1472
1473 # set HCalResolutionFormula {resolution formula as a function of eta and energy}
1474- set HCalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.050^2 + energy*1.50^2) + \
1475+ set HCalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.050^2 + energy*1.50^2) +
1476 (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.130^2 + energy*2.70^2)}
1477 }
1478
1479@@ -299,9 +301,9 @@
1480 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
1481
1482 # efficiency formula for photons
1483- set EfficiencyFormula { (pt <= 10.0) * (0.00) + \
1484- (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + \
1485- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) + \
1486+ set EfficiencyFormula { (pt <= 10.0) * (0.00) +
1487+ (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) +
1488+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) +
1489 (abs(eta) > 2.5) * (0.00)}
1490 }
1491
1492@@ -319,7 +321,19 @@
1493
1494 set PTMin 0.5
1495
1496- set PTRatioMax 0.1
1497+ set PTRatioMax 0.12
1498+}
1499+
1500+#################
1501+# Electron filter
1502+#################
1503+
1504+module PdgCodeFilter ElectronFilter {
1505+ set InputArray Calorimeter/eflowTracks
1506+ set OutputArray electrons
1507+ set Invert true
1508+ add PdgCode {11}
1509+ add PdgCode {-11}
1510 }
1511
1512 #####################
1513@@ -327,15 +341,15 @@
1514 #####################
1515
1516 module Efficiency ElectronEfficiency {
1517- set InputArray ElectronEnergySmearing/electrons
1518+ set InputArray ElectronFilter/electrons
1519 set OutputArray electrons
1520
1521 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
1522
1523 # efficiency formula for electrons
1524- set EfficiencyFormula { (pt <= 10.0) * (0.00) + \
1525- (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + \
1526- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) + \
1527+ set EfficiencyFormula { (pt <= 10.0) * (0.00) +
1528+ (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) +
1529+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) +
1530 (abs(eta) > 2.5) * (0.00)}
1531 }
1532
1533@@ -353,7 +367,7 @@
1534
1535 set PTMin 0.5
1536
1537- set PTRatioMax 0.1
1538+ set PTRatioMax 0.12
1539 }
1540
1541 #################
1542@@ -367,11 +381,11 @@
1543 # set EfficiencyFormula {efficiency as a function of eta and pt}
1544
1545 # efficiency formula for muons
1546- set EfficiencyFormula { (pt <= 10.0) * (0.00) + \
1547- (abs(eta) <= 1.5) * (pt > 10.0 && pt <= 1.0e3) * (0.95) + \
1548- (abs(eta) <= 1.5) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) + \
1549- (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 10.0 && pt <= 1.0e3) * (0.95) + \
1550- (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) + \
1551+ set EfficiencyFormula { (pt <= 10.0) * (0.00) +
1552+ (abs(eta) <= 1.5) * (pt > 10.0 && pt <= 1.0e3) * (0.95) +
1553+ (abs(eta) <= 1.5) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) +
1554+ (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 10.0 && pt <= 1.0e3) * (0.95) +
1555+ (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) +
1556 (abs(eta) > 2.4) * (0.00)}
1557 }
1558
1559@@ -389,7 +403,7 @@
1560
1561 set PTMin 0.5
1562
1563- set PTRatioMax 0.1
1564+ set PTRatioMax 0.25
1565 }
1566
1567 ###################
1568@@ -415,12 +429,34 @@
1569 set EnergyOutputArray energy
1570 }
1571
1572+
1573+#####################
1574+# Neutrino Filter
1575+#####################
1576+
1577+module PdgCodeFilter NeutrinoFilter {
1578+
1579+ set InputArray Delphes/stableParticles
1580+ set OutputArray filteredParticles
1581+
1582+ set PTMin 0.0
1583+
1584+ add PdgCode {12}
1585+ add PdgCode {14}
1586+ add PdgCode {16}
1587+ add PdgCode {-12}
1588+ add PdgCode {-14}
1589+ add PdgCode {-16}
1590+
1591+}
1592+
1593+
1594 #####################
1595 # MC truth jet finder
1596 #####################
1597
1598 module FastJetFinder GenJetFinder {
1599- set InputArray Delphes/stableParticles
1600+ set InputArray NeutrinoFilter/filteredParticles
1601
1602 set OutputArray jets
1603
1604@@ -431,6 +467,18 @@
1605 set JetPTMin 20.0
1606 }
1607
1608+#########################
1609+# Gen Missing ET merger
1610+########################
1611+
1612+module Merger GenMissingET {
1613+# add InputArray InputArray
1614+ add InputArray NeutrinoFilter/filteredParticles
1615+ set MomentumOutputArray momentum
1616+}
1617+
1618+
1619+
1620 ############
1621 # Jet finder
1622 ############
1623@@ -456,8 +504,25 @@
1624 set InputArray FastJetFinder/jets
1625 set OutputArray jets
1626
1627- # scale formula for jets
1628- set ScaleFormula {1.00}
1629+ # scale formula for jets
1630+ set ScaleFormula {sqrt( (2.5 - 0.15*(abs(eta)))^2 / pt + 1.0 )}
1631+}
1632+
1633+########################
1634+# Jet Flavor Association
1635+########################
1636+
1637+module JetFlavorAssociation JetFlavorAssociation {
1638+
1639+ set PartonInputArray Delphes/partons
1640+ set ParticleInputArray Delphes/allParticles
1641+ set ParticleLHEFInputArray Delphes/allParticlesLHEF
1642+ set JetInputArray JetEnergyScale/jets
1643+
1644+ set DeltaR 0.5
1645+ set PartonPTMin 1.0
1646+ set PartonEtaMax 2.5
1647+
1648 }
1649
1650 ###########
1651@@ -465,38 +530,30 @@
1652 ###########
1653
1654 module BTagging BTagging {
1655- set PartonInputArray Delphes/partons
1656 set JetInputArray JetEnergyScale/jets
1657
1658 set BitNumber 0
1659
1660- set DeltaR 0.5
1661-
1662- set PartonPTMin 1.0
1663-
1664- set PartonEtaMax 2.5
1665-
1666 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
1667 # PDG code = the highest PDG code of a quark or gluon inside DeltaR cone around jet axis
1668 # gluon's PDG code has the lowest priority
1669
1670- # https://twiki.cern.ch/twiki/bin/view/CMSPublic/PhysicsResultsBTV
1671+ # based on arXiv:1211.4462
1672+
1673 # default efficiency formula (misidentification rate)
1674- add EfficiencyFormula {0} {0.001}
1675+ add EfficiencyFormula {0} {0.01+0.000038*pt}
1676
1677 # efficiency formula for c-jets (misidentification rate)
1678- add EfficiencyFormula {4} { (pt <= 15.0) * (0.000) + \
1679- (abs(eta) <= 1.2) * (pt > 15.0) * (0.2*tanh(pt*0.03 - 0.4)) + \
1680- (abs(eta) > 1.2 && abs(eta) <= 2.5) * (pt > 15.0) * (0.1*tanh(pt*0.03 - 0.4)) + \
1681- (abs(eta) > 2.5) * (0.000)}
1682+ add EfficiencyFormula {4} {0.25*tanh(0.018*pt)*(1/(1+ 0.0013*pt))}
1683
1684 # efficiency formula for b-jets
1685- add EfficiencyFormula {5} { (pt <= 15.0) * (0.000) + \
1686- (abs(eta) <= 1.2) * (pt > 15.0) * (0.5*tanh(pt*0.03 - 0.4)) + \
1687- (abs(eta) > 1.2 && abs(eta) <= 2.5) * (pt > 15.0) * (0.4*tanh(pt*0.03 - 0.4)) + \
1688- (abs(eta) > 2.5) * (0.000)}
1689+ add EfficiencyFormula {5} {0.85*tanh(0.0025*pt)*(25.0/(1+0.063*pt))}
1690 }
1691
1692+#############
1693+# tau-tagging
1694+#############
1695+
1696 module TauTagging TauTagging {
1697 set ParticleInputArray Delphes/allParticles
1698 set PartonInputArray Delphes/partons
1699@@ -511,9 +568,9 @@
1700 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
1701
1702 # default efficiency formula (misidentification rate)
1703- add EfficiencyFormula {0} {0.001}
1704+ add EfficiencyFormula {0} {0.01}
1705 # efficiency formula for tau-jets
1706- add EfficiencyFormula {15} {0.4}
1707+ add EfficiencyFormula {15} {0.6}
1708 }
1709
1710 #####################################################
1711@@ -549,6 +606,8 @@
1712 add Branch Calorimeter/eflowNeutralHadrons EFlowNeutralHadron Tower
1713
1714 add Branch GenJetFinder/jets GenJet Jet
1715+ add Branch GenMissingET/momentum GenMissingET MissingET
1716+
1717 add Branch UniqueObjectFinder/jets Jet Jet
1718 add Branch UniqueObjectFinder/electrons Electron Electron
1719 add Branch UniqueObjectFinder/photons Photon Photon
1720@@ -556,4 +615,3 @@
1721 add Branch MissingET/momentum MissingET MissingET
1722 add Branch ScalarHT/energy ScalarHT ScalarHT
1723 }
1724-
1725
1726=== modified file 'Template/Common/Cards/delphes_card_default.dat'
1727--- Template/Common/Cards/delphes_card_default.dat 2015-06-17 13:28:26 +0000
1728+++ Template/Common/Cards/delphes_card_default.dat 2016-11-23 08:16:42 +0000
1729@@ -10,7 +10,7 @@
1730 MuonTrackingEfficiency
1731
1732 ChargedHadronMomentumSmearing
1733- ElectronEnergySmearing
1734+ ElectronMomentumSmearing
1735 MuonMomentumSmearing
1736
1737 TrackMerger
1738@@ -20,6 +20,7 @@
1739 PhotonEfficiency
1740 PhotonIsolation
1741
1742+ ElectronFilter
1743 ElectronEfficiency
1744 ElectronIsolation
1745
1746@@ -28,11 +29,16 @@
1747
1748 MissingET
1749
1750+ NeutrinoFilter
1751 GenJetFinder
1752+ GenMissingET
1753+
1754 FastJetFinder
1755
1756 JetEnergyScale
1757
1758+ JetFlavorAssociation
1759+
1760 BTagging
1761 TauTagging
1762
1763@@ -75,11 +81,11 @@
1764 # add EfficiencyFormula {efficiency formula as a function of eta and pt}
1765
1766 # tracking efficiency formula for charged hadrons
1767- set EfficiencyFormula { (pt <= 0.1) * (0.00) + \
1768- (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.70) + \
1769- (abs(eta) <= 1.5) * (pt > 1.0) * (0.95) + \
1770- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.60) + \
1771- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.85) + \
1772+ set EfficiencyFormula { (pt <= 0.1) * (0.00) +
1773+ (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.70) +
1774+ (abs(eta) <= 1.5) * (pt > 1.0) * (0.95) +
1775+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.60) +
1776+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.85) +
1777 (abs(eta) > 2.5) * (0.00)}
1778 }
1779
1780@@ -94,13 +100,13 @@
1781 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
1782
1783 # tracking efficiency formula for electrons
1784- set EfficiencyFormula { (pt <= 0.1) * (0.00) + \
1785- (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.73) + \
1786- (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e2) * (0.95) + \
1787- (abs(eta) <= 1.5) * (pt > 1.0e2) * (0.99) + \
1788- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.50) + \
1789- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e2) * (0.83) + \
1790- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2) * (0.90) + \
1791+ set EfficiencyFormula { (pt <= 0.1) * (0.00) +
1792+ (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.73) +
1793+ (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e2) * (0.95) +
1794+ (abs(eta) <= 1.5) * (pt > 1.0e2) * (0.99) +
1795+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.50) +
1796+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e2) * (0.83) +
1797+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2) * (0.90) +
1798 (abs(eta) > 2.5) * (0.00)}
1799 }
1800
1801@@ -115,11 +121,11 @@
1802 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
1803
1804 # tracking efficiency formula for muons
1805- set EfficiencyFormula { (pt <= 0.1) * (0.00) + \
1806- (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.75) + \
1807- (abs(eta) <= 1.5) * (pt > 1.0) * (0.99) + \
1808- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.70) + \
1809- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.98) + \
1810+ set EfficiencyFormula { (pt <= 0.1) * (0.00) +
1811+ (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.75) +
1812+ (abs(eta) <= 1.5) * (pt > 1.0) * (0.99) +
1813+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.70) +
1814+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.98) +
1815 (abs(eta) > 2.5) * (0.00)}
1816 }
1817
1818@@ -134,32 +140,27 @@
1819 # set ResolutionFormula {resolution formula as a function of eta and pt}
1820
1821 # resolution formula for charged hadrons
1822- set ResolutionFormula { (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.02) + \
1823- (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e1) * (0.01) + \
1824- (abs(eta) <= 1.5) * (pt > 1.0e1 && pt <= 2.0e2) * (0.03) + \
1825- (abs(eta) <= 1.5) * (pt > 2.0e2) * (0.05) + \
1826- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.03) + \
1827- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e1) * (0.02) + \
1828- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e1 && pt <= 2.0e2) * (0.04) + \
1829- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 2.0e2) * (0.05)}
1830+ # based on arXiv:1405.6569
1831+ set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.01^2 + pt^2*1.5e-4^2) +
1832+ (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.015^2 + pt^2*2.5e-4^2) +
1833+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.025^2 + pt^2*5.5e-4^2)}
1834 }
1835
1836-#################################
1837-# Energy resolution for electrons
1838-#################################
1839+###################################
1840+# Momentum resolution for electrons
1841+###################################
1842
1843-module EnergySmearing ElectronEnergySmearing {
1844+module MomentumSmearing ElectronMomentumSmearing {
1845 set InputArray ElectronTrackingEfficiency/electrons
1846 set OutputArray electrons
1847
1848 # set ResolutionFormula {resolution formula as a function of eta and energy}
1849
1850 # resolution formula for electrons
1851- set ResolutionFormula { (abs(eta) <= 2.5) * (energy > 0.1 && energy <= 2.0e1) * (energy*0.0225) + \
1852- (abs(eta) <= 2.5) * (energy > 2.0e1) * sqrt(energy^2*0.007^2 + energy*0.07^2 + 0.35^2) + \
1853- (abs(eta) > 2.5 && abs(eta) <= 3.0) * sqrt(energy^2*0.007^2 + energy*0.07^2 + 0.35^2) + \
1854- (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)}
1855-
1856+ # based on arXiv:1405.6569
1857+ set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.03^2 + pt^2*1.3e-3^2) +
1858+ (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.05^2 + pt^2*1.7e-3^2) +
1859+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.15^2 + pt^2*3.1e-3^2)}
1860 }
1861
1862 ###############################
1863@@ -173,18 +174,9 @@
1864 # set ResolutionFormula {resolution formula as a function of eta and pt}
1865
1866 # resolution formula for muons
1867- set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1 && pt <= 5.0) * (0.02) + \
1868- (abs(eta) <= 0.5) * (pt > 5.0 && pt <= 1.0e2) * (0.015) + \
1869- (abs(eta) <= 0.5) * (pt > 1.0e2 && pt <= 2.0e2) * (0.03) + \
1870- (abs(eta) <= 0.5) * (pt > 2.0e2) * (0.05 + pt*1.e-4) + \
1871- (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1 && pt <= 5.0) * (0.03) + \
1872- (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 5.0 && pt <= 1.0e2) * (0.02) + \
1873- (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 1.0e2 && pt <= 2.0e2) * (0.04) + \
1874- (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 2.0e2) * (0.05 + pt*1.e-4) + \
1875- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 5.0) * (0.04) + \
1876- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 5.0 && pt <= 1.0e2) * (0.035) + \
1877- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2 && pt <= 2.0e2) * (0.05) + \
1878- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 2.0e2) * (0.05 + pt*1.e-4)}
1879+ set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.01^2 + pt^2*1.0e-4^2) +
1880+ (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.015^2 + pt^2*1.5e-4^2) +
1881+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.025^2 + pt^2*3.5e-4^2)}
1882 }
1883
1884 ##############
1885@@ -194,7 +186,7 @@
1886 module Merger TrackMerger {
1887 # add InputArray InputArray
1888 add InputArray ChargedHadronMomentumSmearing/chargedHadrons
1889- add InputArray ElectronEnergySmearing/electrons
1890+ add InputArray ElectronMomentumSmearing/electrons
1891 add InputArray MuonMomentumSmearing/muons
1892 set OutputArray tracks
1893 }
1894@@ -214,6 +206,14 @@
1895 set EFlowPhotonOutputArray eflowPhotons
1896 set EFlowNeutralHadronOutputArray eflowNeutralHadrons
1897
1898+ set ECalEnergyMin 0.5
1899+ set HCalEnergyMin 1.0
1900+
1901+ set ECalEnergySignificanceMin 1.0
1902+ set HCalEnergySignificanceMin 1.0
1903+
1904+ set SmearTowerCenter true
1905+
1906 set pi [expr {acos(-1)}]
1907
1908 # lists of the edges of each tower in eta and phi
1909@@ -268,11 +268,13 @@
1910 add EnergyFraction {3122} {0.3 0.7}
1911
1912 # set ECalResolutionFormula {resolution formula as a function of eta and energy}
1913- set ECalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.007^2 + energy*0.07^2 + 0.35^2) + \
1914- (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)}
1915+ # Eta shape from arXiv:1306.2016, Energy shape from arXiv:1502.02701
1916+ set ECalResolutionFormula { (abs(eta) <= 1.5) * (1+0.64*eta^2) * sqrt(energy^2*0.008^2 + energy*0.11^2 + 0.40^2) +
1917+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (2.16 + 5.6*(abs(eta)-2)^2) * sqrt(energy^2*0.008^2 + energy*0.11^2 + 0.40^2) +
1918+ (abs(eta) > 2.5 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)}
1919
1920 # set HCalResolutionFormula {resolution formula as a function of eta and energy}
1921- set HCalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.050^2 + energy*1.50^2) + \
1922+ set HCalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.050^2 + energy*1.50^2) +
1923 (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.130^2 + energy*2.70^2)}
1924 }
1925
1926@@ -299,9 +301,9 @@
1927 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
1928
1929 # efficiency formula for photons
1930- set EfficiencyFormula { (pt <= 10.0) * (0.00) + \
1931- (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + \
1932- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) + \
1933+ set EfficiencyFormula { (pt <= 10.0) * (0.00) +
1934+ (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) +
1935+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) +
1936 (abs(eta) > 2.5) * (0.00)}
1937 }
1938
1939@@ -319,7 +321,19 @@
1940
1941 set PTMin 0.5
1942
1943- set PTRatioMax 0.1
1944+ set PTRatioMax 0.12
1945+}
1946+
1947+#################
1948+# Electron filter
1949+#################
1950+
1951+module PdgCodeFilter ElectronFilter {
1952+ set InputArray Calorimeter/eflowTracks
1953+ set OutputArray electrons
1954+ set Invert true
1955+ add PdgCode {11}
1956+ add PdgCode {-11}
1957 }
1958
1959 #####################
1960@@ -327,15 +341,15 @@
1961 #####################
1962
1963 module Efficiency ElectronEfficiency {
1964- set InputArray ElectronEnergySmearing/electrons
1965+ set InputArray ElectronFilter/electrons
1966 set OutputArray electrons
1967
1968 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
1969
1970 # efficiency formula for electrons
1971- set EfficiencyFormula { (pt <= 10.0) * (0.00) + \
1972- (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + \
1973- (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) + \
1974+ set EfficiencyFormula { (pt <= 10.0) * (0.00) +
1975+ (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) +
1976+ (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) +
1977 (abs(eta) > 2.5) * (0.00)}
1978 }
1979
1980@@ -353,7 +367,7 @@
1981
1982 set PTMin 0.5
1983
1984- set PTRatioMax 0.1
1985+ set PTRatioMax 0.12
1986 }
1987
1988 #################
1989@@ -367,11 +381,11 @@
1990 # set EfficiencyFormula {efficiency as a function of eta and pt}
1991
1992 # efficiency formula for muons
1993- set EfficiencyFormula { (pt <= 10.0) * (0.00) + \
1994- (abs(eta) <= 1.5) * (pt > 10.0 && pt <= 1.0e3) * (0.95) + \
1995- (abs(eta) <= 1.5) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) + \
1996- (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 10.0 && pt <= 1.0e3) * (0.95) + \
1997- (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) + \
1998+ set EfficiencyFormula { (pt <= 10.0) * (0.00) +
1999+ (abs(eta) <= 1.5) * (pt > 10.0 && pt <= 1.0e3) * (0.95) +
2000+ (abs(eta) <= 1.5) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) +
2001+ (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 10.0 && pt <= 1.0e3) * (0.95) +
2002+ (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) +
2003 (abs(eta) > 2.4) * (0.00)}
2004 }
2005
2006@@ -389,7 +403,7 @@
2007
2008 set PTMin 0.5
2009
2010- set PTRatioMax 0.1
2011+ set PTRatioMax 0.25
2012 }
2013
2014 ###################
2015@@ -415,12 +429,34 @@
2016 set EnergyOutputArray energy
2017 }
2018
2019+
2020+#####################
2021+# Neutrino Filter
2022+#####################
2023+
2024+module PdgCodeFilter NeutrinoFilter {
2025+
2026+ set InputArray Delphes/stableParticles
2027+ set OutputArray filteredParticles
2028+
2029+ set PTMin 0.0
2030+
2031+ add PdgCode {12}
2032+ add PdgCode {14}
2033+ add PdgCode {16}
2034+ add PdgCode {-12}
2035+ add PdgCode {-14}
2036+ add PdgCode {-16}
2037+
2038+}
2039+
2040+
2041 #####################
2042 # MC truth jet finder
2043 #####################
2044
2045 module FastJetFinder GenJetFinder {
2046- set InputArray Delphes/stableParticles
2047+ set InputArray NeutrinoFilter/filteredParticles
2048
2049 set OutputArray jets
2050
2051@@ -431,6 +467,18 @@
2052 set JetPTMin 20.0
2053 }
2054
2055+#########################
2056+# Gen Missing ET merger
2057+########################
2058+
2059+module Merger GenMissingET {
2060+# add InputArray InputArray
2061+ add InputArray NeutrinoFilter/filteredParticles
2062+ set MomentumOutputArray momentum
2063+}
2064+
2065+
2066+
2067 ############
2068 # Jet finder
2069 ############
2070@@ -456,8 +504,25 @@
2071 set InputArray FastJetFinder/jets
2072 set OutputArray jets
2073
2074- # scale formula for jets
2075- set ScaleFormula {1.00}
2076+ # scale formula for jets
2077+ set ScaleFormula {sqrt( (2.5 - 0.15*(abs(eta)))^2 / pt + 1.0 )}
2078+}
2079+
2080+########################
2081+# Jet Flavor Association
2082+########################
2083+
2084+module JetFlavorAssociation JetFlavorAssociation {
2085+
2086+ set PartonInputArray Delphes/partons
2087+ set ParticleInputArray Delphes/allParticles
2088+ set ParticleLHEFInputArray Delphes/allParticlesLHEF
2089+ set JetInputArray JetEnergyScale/jets
2090+
2091+ set DeltaR 0.5
2092+ set PartonPTMin 1.0
2093+ set PartonEtaMax 2.5
2094+
2095 }
2096
2097 ###########
2098@@ -465,38 +530,30 @@
2099 ###########
2100
2101 module BTagging BTagging {
2102- set PartonInputArray Delphes/partons
2103 set JetInputArray JetEnergyScale/jets
2104
2105 set BitNumber 0
2106
2107- set DeltaR 0.5
2108-
2109- set PartonPTMin 1.0
2110-
2111- set PartonEtaMax 2.5
2112-
2113 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
2114 # PDG code = the highest PDG code of a quark or gluon inside DeltaR cone around jet axis
2115 # gluon's PDG code has the lowest priority
2116
2117- # https://twiki.cern.ch/twiki/bin/view/CMSPublic/PhysicsResultsBTV
2118+ # based on arXiv:1211.4462
2119+
2120 # default efficiency formula (misidentification rate)
2121- add EfficiencyFormula {0} {0.001}
2122+ add EfficiencyFormula {0} {0.01+0.000038*pt}
2123
2124 # efficiency formula for c-jets (misidentification rate)
2125- add EfficiencyFormula {4} { (pt <= 15.0) * (0.000) + \
2126- (abs(eta) <= 1.2) * (pt > 15.0) * (0.2*tanh(pt*0.03 - 0.4)) + \
2127- (abs(eta) > 1.2 && abs(eta) <= 2.5) * (pt > 15.0) * (0.1*tanh(pt*0.03 - 0.4)) + \
2128- (abs(eta) > 2.5) * (0.000)}
2129+ add EfficiencyFormula {4} {0.25*tanh(0.018*pt)*(1/(1+ 0.0013*pt))}
2130
2131 # efficiency formula for b-jets
2132- add EfficiencyFormula {5} { (pt <= 15.0) * (0.000) + \
2133- (abs(eta) <= 1.2) * (pt > 15.0) * (0.5*tanh(pt*0.03 - 0.4)) + \
2134- (abs(eta) > 1.2 && abs(eta) <= 2.5) * (pt > 15.0) * (0.4*tanh(pt*0.03 - 0.4)) + \
2135- (abs(eta) > 2.5) * (0.000)}
2136+ add EfficiencyFormula {5} {0.85*tanh(0.0025*pt)*(25.0/(1+0.063*pt))}
2137 }
2138
2139+#############
2140+# tau-tagging
2141+#############
2142+
2143 module TauTagging TauTagging {
2144 set ParticleInputArray Delphes/allParticles
2145 set PartonInputArray Delphes/partons
2146@@ -511,9 +568,9 @@
2147 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
2148
2149 # default efficiency formula (misidentification rate)
2150- add EfficiencyFormula {0} {0.001}
2151+ add EfficiencyFormula {0} {0.01}
2152 # efficiency formula for tau-jets
2153- add EfficiencyFormula {15} {0.4}
2154+ add EfficiencyFormula {15} {0.6}
2155 }
2156
2157 #####################################################
2158@@ -549,6 +606,8 @@
2159 add Branch Calorimeter/eflowNeutralHadrons EFlowNeutralHadron Tower
2160
2161 add Branch GenJetFinder/jets GenJet Jet
2162+ add Branch GenMissingET/momentum GenMissingET MissingET
2163+
2164 add Branch UniqueObjectFinder/jets Jet Jet
2165 add Branch UniqueObjectFinder/electrons Electron Electron
2166 add Branch UniqueObjectFinder/photons Photon Photon
2167@@ -556,4 +615,3 @@
2168 add Branch MissingET/momentum MissingET MissingET
2169 add Branch ScalarHT/energy ScalarHT ScalarHT
2170 }
2171-
2172
2173=== renamed file 'Template/LO/Cards/reweight_card_default.dat' => 'Template/Common/Cards/reweight_card_default.dat'
2174--- Template/LO/Cards/reweight_card_default.dat 2013-11-15 12:29:09 +0000
2175+++ Template/Common/Cards/reweight_card_default.dat 2016-11-23 08:16:42 +0000
2176@@ -1,25 +1,69 @@
2177-#******************************************************************
2178-# Reweight Module *
2179-#******************************************************************
2180+#*************************************************************************
2181+# Reweight Module *
2182+# Matrix-Element reweighting at LO/NLO *
2183+# Mattelaer Olivier arxiv:xxxx.xxxx *
2184+#*************************************************************************
2185+#
2186+# Note:
2187+# 1) the value of alpha_s will be used from the event so the value in
2188+# the param_card is not taken into account.
2189+# 2) It is (in general) dangerous/wrong to change parameters by a large
2190+# amount, if this changes the shape of the matrix elements a lot.
2191+# (For example, changing a particle's mass by much more than its
2192+# width leads to very inaccurate result). In such a case, separate
2193+# event generation runs are needed.
2194+#
2195+#************************************************************************
2196+# ENTER YOUR COMMANDS BELOW.
2197+#************************************************************************
2198+
2199+change mode NLO # Define type of Reweighting. For LO sample this command
2200+ # has no effect since only "LO" mode is allowed.
2201+
2202 launch
2203-#* Use the set command to specify the new set of parameter
2204-#* Or specify a path to a valid param_card/banner
2205-#* Example of valid command:
2206-#* set aewm1 137
2207-#* ~/param_card.dat
2208-#*
2209-#* Note:
2210-#* 1) the value of alphas will be used from the event
2211-#* so the value of the param_card is not taken into account.
2212-#* 2) It is dangerous to change a mass of any particle.
2213-
2214-
2215-#* If you want to compute the weight for more than one hyppothesis
2216-#* you need first to uncomment the following line:
2217-# launch
2218-# and then use the set command to specify your parameter.
2219-# All modification will start from the ORIGINAL card not from the
2220-# last define one.
2221-#* You can have as many weight as you want.
2222-
2223+# SPECIFY A PATH OR USE THE SET COMMAND LIKE THIS:
2224+# set sminputs 1 130 # modify 1/alpha_EW
2225+
2226+
2227+
2228+#************************************************************************
2229+# Manual: https://cp3.irmp.ucl.ac.be/projects/madgraph/wiki/Reweight
2230+#************************************************************************
2231+#
2232+# Example of (standard) code for the computation of two weights:
2233+#
2234+# launch ! tag to start the computation of the first weight
2235+# set BLOCKNAME ID VALUE ! rule to modify the current param_card
2236+# set BLOCKNAME ID VALUE ! rule to modify the current param_card
2237+# launch ! start to compute a second weight
2238+# /home/Cards/param_card_2.dat ! you can also enter a path to a valid card
2239+#
2240+# Note: The command to specify the parameter are AFTER the associated "launch"
2241+#
2242+# Possible options:
2243+# You can enter one of the following lines to customize the reweighting
2244+# procedure. These need to be given before the 'launch' command.
2245+#
2246+# change model NAME : use another model for the matrix-elements to reweight
2247+# with. In this case you need to provide the path to a correct
2248+# param_card for the new model; you cannot modify the original one
2249+# with the 'set' command.
2250+# change process DEF [--add]: change the process by which you reweight.
2251+# The initial and final state particles of the new process should
2252+# be exactly identical to the ones in the original process.
2253+# change helicity False: perform the reweighting by helicity summed
2254+# matrix-elements even if the events have been written with a
2255+# single helicity state.
2256+# change mode XXX: change the type of reweighting performed.
2257+# allowed values: LO, NLO, LO+NLO
2258+# - This command has no effect for reweighting an .lhe event file with LO accuracy.
2259+# In that case LO mode is always used (whatever entry is set).
2260+# - When the .lhe file reweighted is at NLO accuracy, then all modes are allowed.
2261+# * "LO" is an approximate leading order method
2262+# * "NLO" is the NLO accurate method
2263+# * "LO+NLO" runs both
2264+# - "NLO" and "LO+NLO" modes requires 'store_rwgt_info' equals True (run_card.dat)
2265+# If the reweighting is done at generation level this parameter will
2266+# automatically be set on True.
2267+#************************************************************************
2268
2269
2270=== removed file 'Template/Common/bin/internal/run_pythia'
2271--- Template/Common/bin/internal/run_pythia 2013-11-05 10:16:20 +0000
2272+++ Template/Common/bin/internal/run_pythia 1970-01-01 00:00:00 +0000
2273@@ -1,23 +0,0 @@
2274-#!/bin/bash
2275-#
2276-# This runs pythia on the unweighted_events.dat
2277-#
2278-# Usage: run_pythia [pydir]
2279-# where pydir is the path to the pythia executable
2280-
2281-pydir=$1
2282-main=`pwd`
2283-
2284-if [ ! -e ../Cards/pythia_card.dat ]; then
2285- echo "No pythia_card.dat found. Quitting..."
2286- exit
2287-fi
2288-
2289-echo $$ >> ../myprocid
2290-# shower and hadronize event through Pythia
2291-echo " " >> ../Cards/pythia_card.dat
2292-echo " LHAPATH=$pydir/PDFsets" >> ../Cards/pythia_card.dat
2293-export PDG_MASS_TBL=$pydir/mass_width_2004.mc
2294-rm -rf Events/hepmv_event.hepmc &> /dev/null
2295-$pydir/pythia && touch pythia.done
2296-
2297
2298=== added file 'Template/LO/Cards/madanalysis5_hadron_card_default.dat'
2299--- Template/LO/Cards/madanalysis5_hadron_card_default.dat 1970-01-01 00:00:00 +0000
2300+++ Template/LO/Cards/madanalysis5_hadron_card_default.dat 2016-11-23 08:16:42 +0000
2301@@ -0,0 +1,3 @@
2302+# This card is used only if MA5 failed to create a default for this run
2303+# We therefore use as default: do nothing
2304+@MG5aMC skip_analysis
2305\ No newline at end of file
2306
2307=== added file 'Template/LO/Cards/madanalysis5_parton_card_default.dat'
2308--- Template/LO/Cards/madanalysis5_parton_card_default.dat 1970-01-01 00:00:00 +0000
2309+++ Template/LO/Cards/madanalysis5_parton_card_default.dat 2016-11-23 08:16:42 +0000
2310@@ -0,0 +1,3 @@
2311+# This card is used only if MA5 failed to create a default for this run
2312+# We therefore use as default: do nothing
2313+@MG5aMC skip_analysis
2314\ No newline at end of file
2315
2316=== added file 'Template/LO/Cards/pythia8_card_default.dat'
2317--- Template/LO/Cards/pythia8_card_default.dat 1970-01-01 00:00:00 +0000
2318+++ Template/LO/Cards/pythia8_card_default.dat 2016-11-23 08:16:42 +0000
2319@@ -0,0 +1,77 @@
2320+!
2321+! Pythia8 cmd card automatically generated by MadGraph5_aMC@NLO
2322+! For more information on the use of the MG5aMC / Pythia8 interface, visit
2323+! https://cp3.irmp.ucl.ac.be/projects/madgraph/wiki/LOPY8Merging
2324+!
2325+! ==================
2326+! General parameters
2327+! ==================
2328+!
2329+Main:numberOfEvents = -1
2330+!
2331+! -------------------------------------------------------------------
2332+! Specify the HEPMC output of the Pythia8 shower. You can set it to:
2333+! auto : MG5aMC will automatically place it the run_<i> directory
2334+! /dev/null : to turn off the HEPMC output.
2335+! <path> : to select where the HEPMC file must written. It will
2336+! therefore not be placed in the run_<i> directory. The
2337+! specified path, if not absolute, will be relative to
2338+! the Event/run_<i> directory of the process output.
2339+! fifo : to have MG5aMC setup the piping of the PY8 output to
2340+! analysis tools such as MadAnalysis5.
2341+! fifo@<fifo_path> :
2342+! Same as 'fifo', but selecting a custom path to create the
2343+! fifo pipe. (useful to select a mounted drive that supports
2344+! fifo). Note that the fifo file extension *must* be '.hepmc.fifo'.
2345+! -------------------------------------------------------------------
2346+!
2347+HEPMCoutput:file = auto
2348+!
2349+! --------------------------------------------------------------------
2350+! Parameters relevant only when performing MLM merging, which can be
2351+! turned on by setting ickkw to '1' in the run_card and chosing a
2352+! positive value for the parameter xqcut.
2353+! For details, see section 'Jet Matching' on the left-hand menu of
2354+! http://home.thep.lu.se/~torbjorn/pythia81html/Welcome.html
2355+! --------------------------------------------------------------------
2356+! If equal to -1.0, MadGraph5_aMC@NLO will set it automatically based
2357+! on the parameter 'xqcut' of the run_card.dat
2358+JetMatching:qCut = -1.0
2359+! Use default kt-MLM to match parton level jets to those produced by the
2360+! shower. But the other Shower-kt scheme is available too with this option.
2361+JetMatching:doShowerKt = off
2362+! A value of -1 means that it is automatically guessed by MadGraph.
2363+! It is however always safer to explicitly set it.
2364+JetMatching:nJetMax = -1
2365+!
2366+! --------------------------------------------------------------------
2367+! Parameters relevant only when performing CKKW-L merging, which can
2368+! be turned on by setting the parameter 'ptlund' *or* 'ktdurham' to
2369+! a positive value.
2370+! For details, see section 'CKKW-L Merging' on the left-hand menu of
2371+! http://home.thep.lu.se/~torbjorn/pythia81html/Welcome.html
2372+! --------------------------------------------------------------------
2373+! Central merging scale values you want to be used.
2374+! If equal to -1.0, then MadGraph5_aMC@NLO will set this automatically
2375+! based on the parameter 'ktdurham' of the run_card.dat
2376+Merging:TMS = -1.0
2377+! This must be set manually, according to Pythia8 directives.
2378+! An example of possible value is 'pp>LEPTONS,NEUTRINOS'
2379+Merging:Process = <set_by_user>
2380+! A value of -1 means that it is automatically guessed by MadGraph.
2381+! It is however always safer to explicitly set it.
2382+Merging:nJetMax = -1
2383+!
2384+! For all merging schemes, decide wehter you want the merging scale
2385+! variation computed for only the central weights or all other
2386+! PDF and scale variation weights as well
2387+SysCalc:fullCutVariation = off
2388+!
2389+! ==========================
2390+! User customized parameters
2391+! ==========================
2392+!
2393+! By default, Pythia8 generates multi-parton interaction events. This is
2394+! often irrelevant for phenomenology and very slow. You can turn this
2395+! feature off by uncommenting the line below if so desired.
2396+!partonlevel:mpi = off
2397
2398=== modified file 'Template/LO/Cards/run_card.dat'
2399--- Template/LO/Cards/run_card.dat 2015-07-30 15:57:44 +0000
2400+++ Template/LO/Cards/run_card.dat 2016-11-23 08:16:42 +0000
2401@@ -21,10 +21,6 @@
2402 #*********************************************************************
2403 %(run_tag)s = run_tag ! name of the run
2404 #*********************************************************************
2405-# Run to generate the grid pack *
2406-#*********************************************************************
2407- %(gridpack)s = gridpack !True = setting up the grid pack
2408-#*********************************************************************
2409 # Number of events and rnd seed *
2410 # Warning: Do not generate more than 1M events in a single run *
2411 # If you want to run Pythia, avoid more than 50k events in a run. *
2412@@ -61,51 +57,55 @@
2413 %(dynamical_scale_choice)s = dynamical_scale_choice ! Choose one of the preselected dynamical choices
2414 %(scalefact)s = scalefact ! scale factor for event-by-event scales
2415 #*********************************************************************
2416-# Time of flight information. (-1 means not run)
2417-#*********************************************************************
2418- %(time_of_flight)s = time_of_flight ! threshold below which info is not written
2419-#*********************************************************************
2420-# Matching - Warning! ickkw > 1 is still beta
2421-#*********************************************************************
2422- %(ickkw)s = ickkw ! 0 no matching, 1 MLM, 2 CKKW matching
2423- %(highestmult)s = highestmult ! for ickkw=2, highest mult group
2424- %(ktscheme)s = ktscheme ! for ickkw=1, 1 Durham kT, 2 Pythia pTE
2425+# Type and output format
2426+#*********************************************************************
2427+ %(gridpack)s = gridpack !True = setting up the grid pack
2428+ %(time_of_flight)s = time_of_flight ! threshold (in mm) below which the invariant livetime is not written (-1 means not written)
2429+ %(lhe_version)s = lhe_version ! Change the way clustering information pass to shower.
2430+ %(clusinfo)s = clusinfo ! include clustering tag in output
2431+ %(event_norm)s = event_norm ! average/sum. Normalization of the weight in the LHEF
2432+
2433+#*********************************************************************
2434+# Matching parameter (MLM only)
2435+#*********************************************************************
2436+ %(ickkw)s = ickkw ! 0 no matching, 1 MLM
2437 %(alpsfact)s = alpsfact ! scale factor for QCD emission vx
2438 %(chcluster)s = chcluster ! cluster only according to channel diag
2439- %(pdfwgt)s = pdfwgt ! for ickkw=1, perform pdf reweighting
2440 %(asrwgtflavor)s = asrwgtflavor ! highest quark flavor for a_s reweight
2441- %(clusinfo)s = clusinfo ! include clustering tag in output
2442- %(lhe_version)s = lhe_version ! Change the way clustering information pass to shower.
2443-#*********************************************************************
2444-#**********************************************************
2445-#
2446-#**********************************************************
2447-# Automatic ptj and mjj cuts if xqcut > 0
2448-# (turn off for VBF and single top processes)
2449-#**********************************************************
2450- %(auto_ptj_mjj)s = auto_ptj_mjj ! Automatic setting of ptj and mjj
2451-#**********************************************************
2452+ %(auto_ptj_mjj)s = auto_ptj_mjj ! Automatic setting of ptj and mjj if xqcut >0
2453+ ! (turn off for VBF and single top processes)
2454+ %(xqcut)s = xqcut ! minimum kt jet measure between partons
2455+#*********************************************************************
2456+#
2457+#*********************************************************************
2458+# handling of the helicities:
2459+# 0: sum over all helicities
2460+# 1: importance sampling over helicities
2461+#*********************************************************************
2462+ %(nhel)s = nhel ! using helicities importance sampling or not.
2463+#*********************************************************************
2464+# Generation bias, check the wiki page below for more information: *
2465+# 'cp3.irmp.ucl.ac.be/projects/madgraph/wiki/LOEventGenerationBias' *
2466+#*********************************************************************
2467+ %(bias_module)s = bias_module ! Bias type of bias, [None, ptj_bias, -custom_folder-]
2468+ %(bias_parameters)s = bias_parameters ! Specifies the parameters of the module.
2469+#
2470+#*******************************
2471+# Parton level cuts definition *
2472+#*******************************
2473 #
2474-#**********************************
2475-# BW cutoff (M+/-bwcutoff*Gamma)
2476-#**********************************
2477+#
2478+#*********************************************************************
2479+# BW cutoff (M+/-bwcutoff*Gamma) ! Define on/off-shell for "$" and decay
2480+#*********************************************************************
2481 %(bwcutoff)s = bwcutoff ! (M+/-bwcutoff*Gamma)
2482-#**********************************************************
2483-# Apply pt/E/eta/dr/mij cuts on decay products or not
2484+#*********************************************************************
2485+# Apply pt/E/eta/dr/mij/kt_durham cuts on decay products or not
2486 # (note that etmiss/ptll/ptheavy/ht/sorted cuts always apply)
2487-#**********************************************************
2488+#*********************************************************************
2489 %(cut_decays)s = cut_decays ! Cut decay products
2490-#*************************************************************
2491-# Number of helicities to sum per event (0 = all helicities)
2492-# 0 gives more stable result, but longer run time (needed for
2493-# long decay chains e.g.).
2494-# Use >=2 if most helicities contribute, e.g. pure QCD.
2495-#*************************************************************
2496- %(nhel)s = nhel ! Number of helicities used per event
2497-#*******************
2498-# Standard Cuts
2499-#*******************
2500-#
2501+#*********************************************************************
2502+# Standard Cuts *
2503 #*********************************************************************
2504 # Minimum and maximum pt's (for max, -1 means no cut) *
2505 #*********************************************************************
2506@@ -246,27 +246,24 @@
2507 #*********************************************************************
2508 %(xetamin)s = xetamin ! minimum rapidity for two jets in the WBF case
2509 %(deltaeta)s = deltaeta ! minimum rapidity for two jets in the WBF case
2510-#*********************************************************************
2511-# KT DURHAM CUT *
2512-#*********************************************************************
2513- %(ktdurham)s = ktdurham
2514- %(dparameter)s = dparameter
2515+#***********************************************************************
2516+# Turn on either the ktdurham or ptlund cut to activate *
2517+# CKKW(L) merging with Pythia8 [arXiv:1410.3012, arXiv:1109.4829] *
2518+#***********************************************************************
2519+ %(ktdurham)s = ktdurham
2520+ %(dparameter)s = dparameter
2521+ %(ptlund)s = ptlund
2522+ %(pdgs_for_merging_cut)s = pdgs_for_merging_cut ! PDGs for two cuts above
2523 #*********************************************************************
2524 # maximal pdg code for quark to be considered as a light jet *
2525 # (otherwise b cuts are applied) *
2526 #*********************************************************************
2527 %(maxjetflavor)s = maxjetflavor ! Maximum jet pdg code
2528 #*********************************************************************
2529-# Jet measure cuts *
2530-#*********************************************************************
2531- %(xqcut)s = xqcut ! minimum kt jet measure between partons
2532-#*********************************************************************
2533 #
2534 #*********************************************************************
2535 # Store info for systematics studies *
2536-# WARNING: If use_syst is T, matched Pythia output is *
2537-# meaningful ONLY if plotted taking matchscale *
2538-# reweighting into account! *
2539+# WARNING: Do not use for interference type of computation *
2540 #*********************************************************************
2541 %(use_syst)s = use_syst ! Enable systematics studies
2542 #
2543@@ -279,5 +276,6 @@
2544 %(sys_alpsfact)s = sys_alpsfact # \alpha_s emission scale factors
2545 %(sys_matchscale)s = sys_matchscale # variation of merging scale
2546 # PDF sets and number of members (0 or none for all members).
2547-%(sys_pdf)s = sys_pdf # matching scales
2548+%(sys_pdf)s = sys_pdf # separate by && if more than one set.
2549 # MSTW2008nlo68cl.LHgrid 1 = sys_pdf
2550+#
2551
2552=== added directory 'Template/LO/Source/BIAS'
2553=== added directory 'Template/LO/Source/BIAS/dummy'
2554=== added file 'Template/LO/Source/BIAS/dummy/dummy.f'
2555--- Template/LO/Source/BIAS/dummy/dummy.f 1970-01-01 00:00:00 +0000
2556+++ Template/LO/Source/BIAS/dummy/dummy.f 2016-11-23 08:16:42 +0000
2557@@ -0,0 +1,44 @@
2558+C ************************************************************
2559+C Source for the library implementing a dummt bias function
2560+C always returns one
2561+C ************************************************************
2562+
2563+ subroutine bias_wgt(p, original_weight, bias_weight)
2564+ implicit none
2565+C
2566+C Parameters
2567+C
2568+ include '../../nexternal.inc'
2569+C
2570+C Arguments
2571+C
2572+ double precision p(0:3,nexternal)
2573+ double precision original_weight, bias_weight
2574+C
2575+C local variables
2576+C
2577+C
2578+C Global variables
2579+C
2580+C Mandatory common block to be defined in bias modules
2581+C
2582+ double precision stored_bias_weight
2583+ data stored_bias_weight/1.0d0/
2584+ logical impact_xsec, requires_full_event_info
2585+C Not impacting the xsec since the bias is 1.0. Therefore
2586+C bias_wgt will not be written in the lhe event file.
2587+C Setting it to .True. makes sure that it will not be written.
2588+ data impact_xsec/.True./
2589+C Of course this module does not require the full event
2590+C information (color, resonances, helicities, etc..)
2591+ data requires_full_event_info/.False./
2592+ common/bias/stored_bias_weight,impact_xsec,
2593+ & requires_full_event_info
2594+
2595+C --------------------
2596+C BEGIN IMPLEMENTATION
2597+C --------------------
2598+
2599+ bias_weight = 1.0d0
2600+
2601+ end subroutine bias_wgt
2602
2603=== added file 'Template/LO/Source/BIAS/dummy/makefile'
2604--- Template/LO/Source/BIAS/dummy/makefile 1970-01-01 00:00:00 +0000
2605+++ Template/LO/Source/BIAS/dummy/makefile 2016-11-23 08:16:42 +0000
2606@@ -0,0 +1,21 @@
2607+
2608+include ../../make_opts
2609+
2610+all: dummy
2611+
2612+clean:
2613+ $(RM) *.o $(BIASLIBDIR)$(BIASLIBRARY)
2614+
2615+#
2616+# Compilation of the module dummy
2617+#
2618+
2619+dummy: dummy.o
2620+ $(call CREATELIB, $(BIASLIBDIR)$(BIASLIBRARY), $^)
2621+
2622+#
2623+# List of the requirements for this module.
2624+# 'VALID' is the keyword that *must* be returned if everything is in order.
2625+#
2626+requirements:
2627+ @echo "VALID"
2628
2629=== added directory 'Template/LO/Source/BIAS/ptj_bias'
2630=== added file 'Template/LO/Source/BIAS/ptj_bias/makefile'
2631--- Template/LO/Source/BIAS/ptj_bias/makefile 1970-01-01 00:00:00 +0000
2632+++ Template/LO/Source/BIAS/ptj_bias/makefile 2016-11-23 08:16:42 +0000
2633@@ -0,0 +1,27 @@
2634+include ../../make_opts
2635+
2636+all: ptj_bias
2637+
2638+clean:
2639+ $(RM) *.o $(BIASLIBDIR)$(BIASLIBRARY)
2640+
2641+#
2642+# Compilation of the module ptj_bias
2643+#
2644+ptj_bias.o: ptj_bias.f ../bias.inc
2645+ $(FC) $(FFLAGS) $(LDFLAGS) -c -o ptj_bias.o ptj_bias.f
2646+
2647+ptj_bias: ptj_bias.o
2648+ $(call CREATELIB, $(BIASLIBDIR)$(BIASLIBRARY), $^)
2649+
2650+#
2651+# List of the requirements for this module.
2652+# 'VALID' is the keyword that *must* be returned if everything is in order.
2653+#
2654+requirements:
2655+ifeq ($(shell $(call CHECK_MG5AMC_VERSION,2.4.2)),True)
2656+ @echo "VALID"
2657+else
2658+ @echo "Error:: MG5aMC is not recent enough (found "$(MG5AMC_VERSION)")"
2659+ @echo "FAIL"
2660+endif
2661
2662=== added file 'Template/LO/Source/BIAS/ptj_bias/ptj_bias.f'
2663--- Template/LO/Source/BIAS/ptj_bias/ptj_bias.f 1970-01-01 00:00:00 +0000
2664+++ Template/LO/Source/BIAS/ptj_bias/ptj_bias.f 2016-11-23 08:16:42 +0000
2665@@ -0,0 +1,101 @@
2666+C ************************************************************
2667+C Source for the library implementing a bias function that
2668+C populates the large pt tale of the leading jet.
2669+C
2670+C The two options of this subroutine, that can be set in
2671+C the run card are:
2672+C > (double precision) ptj_bias_target_ptj : target ptj value
2673+C > (double precision) ptj_bias_enhancement_power : exponent
2674+C
2675+C Schematically, the functional form of the enhancement is
2676+C bias_wgt = [ptj(evt)/mean_ptj]^enhancement_power
2677+C ************************************************************
2678+C
2679+C The following lines are read by MG5aMC to set what are the
2680+C relevant parameters for this bias module.
2681+C
2682+C parameters = {'ptj_bias_target_ptj': 1000.0,
2683+C 'ptj_bias_enhancement_power': 4.0}
2684+C
2685+
2686+ subroutine bias_wgt(p, original_weight, bias_weight)
2687+ implicit none
2688+C
2689+C Parameters
2690+C
2691+ include '../../maxparticles.inc'
2692+ include '../../nexternal.inc'
2693+
2694+C
2695+C Arguments
2696+C
2697+ double precision p(0:3,nexternal)
2698+ double precision original_weight, bias_weight
2699+C
2700+C local variables
2701+C
2702+ integer i
2703+ double precision ptj(nexternal)
2704+ double precision max_ptj
2705+c
2706+c local variables defined in the run_card
2707+c
2708+ double precision ptj_bias_target_ptj
2709+ double precision ptj_bias_enhancement_power
2710+C
2711+C Global variables
2712+C
2713+C
2714+C Mandatory common block to be defined in bias modules
2715+C
2716+ double precision stored_bias_weight
2717+ data stored_bias_weight/1.0d0/
2718+ logical impact_xsec, requires_full_event_info
2719+C We only want to bias distributions, but not impact the xsec.
2720+ data impact_xsec/.False./
2721+C Of course this module does not require the full event
2722+C information (color, resonances, helicities, etc..)
2723+ data requires_full_event_info/.False./
2724+ common/bias/stored_bias_weight,impact_xsec,
2725+ & requires_full_event_info
2726+C
2727+C Accessingt the details of the event
2728+C
2729+ logical is_a_j(nexternal),is_a_l(nexternal),
2730+ & is_a_b(nexternal),is_a_a(nexternal),
2731+ & is_a_onium(nexternal),is_a_nu(nexternal),
2732+ & is_heavy(nexternal),do_cuts(nexternal)
2733+ common/to_specisa/is_a_j,is_a_a,is_a_l,is_a_b,is_a_nu,
2734+ & is_heavy,is_a_onium,do_cuts
2735+
2736+C
2737+C Setup the value of the parameters from the run_card
2738+C
2739+ include '../bias.inc'
2740+
2741+C --------------------
2742+C BEGIN IMPLEMENTATION
2743+C --------------------
2744+
2745+ do i=1,nexternal
2746+ ptj(i)=-1.0d0
2747+ if (is_a_j(i)) then
2748+ ptj(i)=sqrt(p(1,i)**2+p(2,i)**2)
2749+ endif
2750+ enddo
2751+
2752+ max_ptj=-1.0d0
2753+ do i=1,nexternal
2754+ max_ptj = max(max_ptj,ptj(i))
2755+ enddo
2756+ if (max_ptj.lt.0.0d0) then
2757+ bias_weight = 1.0d0
2758+ return
2759+ endif
2760+
2761+ bias_weight = (max_ptj/ptj_bias_target_ptj)
2762+ & **ptj_bias_enhancement_power
2763+
2764+ return
2765+
2766+ end subroutine bias_wgt
2767
2768=== modified file 'Template/LO/Source/PDF/makefile'
2769--- Template/LO/Source/PDF/makefile 2014-09-05 11:30:25 +0000
2770+++ Template/LO/Source/PDF/makefile 2016-11-23 08:16:42 +0000
2771@@ -11,7 +11,11 @@
2772 include ../make_opts
2773
2774 ifdef lhapdf
2775- PDF = pdfwrap_lhapdf.o pdf_lhapdf.o pdg2pdf_lhapdf.o opendata.o
2776+ ifeq ($(lhapdfversion),5)
2777+ PDF = pdfwrap_lhapdf.o pdf_lhapdf.o pdg2pdf_lhapdf.o opendata.o PhotonFlux.o
2778+ else
2779+ PDF = pdfwrap_lhapdf.o pdf_lhapdf6.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o
2780+ endif
2781 else
2782 PDF = Ctq4Fn.o Ctq5Par.o Ctq5Pdf.o Partonx5.o Ctq6Pdf.o cteq3.o \
2783 mrs98.o mrs98lo.o mrs98ht.o mrs99.o mrst2001.o mrst2002.o jeppe02.o \
2784
2785=== modified file 'Template/LO/Source/PDF/pdf_lhapdf.f'
2786--- Template/LO/Source/PDF/pdf_lhapdf.f 2014-06-19 11:20:33 +0000
2787+++ Template/LO/Source/PDF/pdf_lhapdf.f 2016-11-23 08:16:42 +0000
2788@@ -11,6 +11,7 @@
2789 INTEGER IH,I
2790 double precision photon
2791 LOGICAL has_photon
2792+ double precision epa_electron,epa_proton
2793 C
2794 C Include
2795 C
2796@@ -28,11 +29,11 @@
2797 do i=-6,6
2798 pdf(i)=f(i)/x
2799 enddo
2800+ elseif(ih .eq. 2) then !from a proton without breaking
2801+ pdf(7) = epa_proton(x, q * q)
2802 else
2803 write (*,*) 'beam type not supported in lhadpf'
2804- do i=-6,6
2805- pdf(i)=0d0
2806- enddo
2807+ stop 1
2808 endif
2809
2810 return
2811
2812=== added file 'Template/LO/Source/PDF/pdf_lhapdf6.cc'
2813--- Template/LO/Source/PDF/pdf_lhapdf6.cc 1970-01-01 00:00:00 +0000
2814+++ Template/LO/Source/PDF/pdf_lhapdf6.cc 2016-11-23 08:16:42 +0000
2815@@ -0,0 +1,1120 @@
2816+// -*- C++ -*-
2817+//
2818+// This file is part of LHAPDF
2819+// Copyright (C) 2012-2014 The LHAPDF collaboration (see AUTHORS for details)
2820+//
2821+#include "LHAPDF/PDF.h"
2822+#include "LHAPDF/PDFSet.h"
2823+#include "LHAPDF/PDFIndex.h"
2824+#include "LHAPDF/Factories.h"
2825+#include "LHAPDF/Utils.h"
2826+#include "LHAPDF/Paths.h"
2827+#include "LHAPDF/Version.h"
2828+#include "LHAPDF/LHAGlue.h"
2829+
2830+using namespace std;
2831+
2832+
2833+// We have to create and initialise some common blocks here for backwards compatibility
2834+struct w50512 {
2835+ double qcdl4, qcdl5;
2836+};
2837+w50512 w50512_;
2838+
2839+struct w50513 {
2840+ double xmin, xmax, q2min, q2max;
2841+};
2842+w50513 w50513_;
2843+
2844+struct lhapdfr {
2845+ double qcdlha4, qcdlha5;
2846+ int nfllha;
2847+};
2848+lhapdfr lhapdfr_;
2849+
2850+
2851+
2852+namespace lhapdf_amc { //< Unnamed namespace to restrict visibility to this file
2853+
2854+ /// @brief PDF object storage here is a smart pointer to ensure deletion of created PDFs
2855+ ///
2856+ /// NB. std::auto_ptr cannot be stored in STL containers, hence we use
2857+ /// boost::shared_ptr. std::unique_ptr is the nature replacement when C++11
2858+ /// is globally available.
2859+ typedef boost::shared_ptr<LHAPDF::PDF> PDFPtr;
2860+
2861+ /// @brief A struct for handling the active PDFs for the Fortran interface.
2862+ ///
2863+ /// We operate in a string-based way, since maybe there will be sets with names, but no
2864+ /// index entry in pdfsets.index.
2865+ ///
2866+ /// @todo Can we avoid the strings and just work via the LHAPDF ID and factory construction?
2867+ ///
2868+ /// Smart pointers are used in the native map used for PDF member storage so
2869+ /// that they auto-delete if the PDFSetHandler that holds them goes out of
2870+ /// scope (i.e. is overwritten).
2871+ struct PDFSetHandler {
2872+
2873+ /// Default constructor
2874+ PDFSetHandler() : currentmem(0)
2875+ { } //< It'll be stored in a map so we need one of these...
2876+
2877+ /// Constructor from a PDF set name
2878+ PDFSetHandler(const string& name)
2879+ : setname(name)
2880+ {
2881+ loadMember(0);
2882+ }
2883+
2884+ /// Constructor from a PDF set's LHAPDF ID code
2885+ PDFSetHandler(int lhaid) {
2886+ pair<string,int> set_mem = LHAPDF::lookupPDF(lhaid);
2887+ // First check that the lookup was successful, i.e. it was a valid ID for the LHAPDF6 set collection
2888+ if (set_mem.first.empty() || set_mem.second < 0)
2889+ throw LHAPDF::UserError("Could not find a valid PDF with LHAPDF ID = " + LHAPDF::to_str(lhaid));
2890+ // Try to load this PDF (checking that the member number is in the set's range is done in mkPDF, called by loadMember)
2891+ setname = set_mem.first;
2892+ loadMember(set_mem.second);
2893+ }
2894+
2895+ /// @brief Load a new PDF member
2896+ ///
2897+ /// If it's already loaded, the existing object will not be reloaded.
2898+ void loadMember(int mem) {
2899+ if (mem < 0)
2900+ throw LHAPDF::UserError("Tried to load a negative PDF member ID: " + LHAPDF::to_str(mem) + " in set " + setname);
2901+ if (members.find(mem) == members.end())
2902+ members[mem] = PDFPtr(LHAPDF::mkPDF(setname, mem));
2903+ currentmem = mem;
2904+ }
2905+
2906+ /// Actively delete a PDF member to save memory
2907+ void unloadMember(int mem) {
2908+ members.erase(mem);
2909+ const int nextmem = (!members.empty()) ? members.begin()->first : 0;
2910+ loadMember(nextmem);
2911+ }
2912+
2913+ /// @brief Get a PDF member
2914+ ///
2915+ /// Non-const because it can secretly load the member. Not that constness
2916+ /// matters in a Fortran interface utility function!
2917+ const PDFPtr member(int mem) {
2918+ loadMember(mem);
2919+ return members.find(mem)->second;
2920+ }
2921+
2922+ /// Get the currently active PDF member
2923+ ///
2924+ /// Non-const because it can secretly load the member. Not that constness
2925+ /// matters in a Fortran interface utility function!
2926+ const PDFPtr activemember() {
2927+ return member(currentmem);
2928+ }
2929+
2930+ /// The currently active member in this set
2931+ int currentmem;
2932+
2933+ /// Name of this set
2934+ string setname;
2935+
2936+ /// Map of pointers to selected member PDFs
2937+ ///
2938+ // /// It's mutable so that a "const" member-getting operation can implicitly
2939+ // /// load a new PDF object. Good idea / bad idea? Disabled for now.
2940+ // mutable map<int, PDFPtr> members;
2941+ map<int, PDFPtr> members;
2942+ };
2943+
2944+
2945+ /// Collection of active sets
2946+ static map<int, PDFSetHandler> ACTIVESETS;
2947+
2948+ /// The currently active set
2949+ int CURRENTSET = 0;
2950+
2951+}
2952+
2953+
2954+
2955+string lhaglue_get_current_pdf(int nset) {
2956+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
2957+ return "NONE";
2958+ lhapdf_amc::CURRENTSET = nset;
2959+ return lhapdf_amc::ACTIVESETS[nset].activemember()->set().name() + " (" +
2960+ LHAPDF::to_str(lhapdf_amc::ACTIVESETS[nset].activemember()->lhapdfID()) + ")";
2961+}
2962+
2963+
2964+
2965+extern "C" {
2966+
2967+ // NEW FORTRAN INTERFACE FUNCTIONS
2968+
2969+ /// List of available sets
2970+ void lhapdf_getversion_(char* s, size_t len) {
2971+ strncpy(s, LHAPDF_VERSION, len);
2972+ }
2973+
2974+ /// List of available PDF sets, returned as a space-separated string
2975+ void lhapdf_getpdfsetlist_(char* s, size_t len) {
2976+ string liststr;
2977+ BOOST_FOREACH(const string& setname, LHAPDF::availablePDFSets()) {
2978+ if (!liststr.empty()) liststr += " ";
2979+ liststr += setname;
2980+ }
2981+ strncpy(s, liststr.c_str(), len);
2982+ }
2983+
2984+
2985+ //////////////////
2986+
2987+ // LHAPDF5 / PDFLIB COMPATIBILITY INTERFACE FUNCTIONS
2988+
2989+
2990+ // System-level info
2991+
2992+ /// LHAPDF library version
2993+ void getlhapdfversion_(char* s, size_t len) {
2994+ /// @todo Works? Need to check Fortran string return, string macro treatment, etc.
2995+ strncpy(s, LHAPDF_VERSION, len);
2996+ }
2997+
2998+
2999+ /// Does nothing, only provided for backward compatibility
3000+ void lhaprint_(int& a) { }
3001+
3002+
3003+ /// Set LHAPDF parameters -- does nothing in LHAPDF6!
3004+ void setlhaparm_(const char* par, int parlength) {
3005+ /// @todo Can any Fortran LHAPDF params be usefully mapped?
3006+ }
3007+
3008+
3009+ /// Return a dummy max number of sets (there is no limitation now)
3010+ void getmaxnumsets_(int& nmax) {
3011+ nmax = 1000;
3012+ }
3013+
3014+
3015+ /// Set PDF data path
3016+ void setpdfpath_(const char* s, size_t len) {
3017+ /// @todo Works? Need to check C-string copying, null termination
3018+ char s2[1024];
3019+ s2[len] = '\0';
3020+ strncpy(s2, s, len);
3021+ LHAPDF::pathsPrepend(s2);
3022+ }
3023+
3024+ /// Get PDF data path (colon-separated if there is more than one element)
3025+ void getdatapath_(char* s, size_t len) {
3026+ /// @todo Works? Need to check Fortran string return, string macro treatment, etc.
3027+ string pathstr;
3028+ BOOST_FOREACH(const string& path, LHAPDF::paths()) {
3029+ if (!pathstr.empty()) pathstr += ":";
3030+ pathstr += path;
3031+ }
3032+ strncpy(s, pathstr.c_str(), len);
3033+ }
3034+
3035+
3036+ // PDF initialisation and focus-switching
3037+
3038+ /// Load a PDF set
3039+ ///
3040+ /// @todo Does this version actually take a *path*? What to do?
3041+ void initpdfsetm_(const int& nset, const char* setpath, int setpathlength) {
3042+ // Strip file extension for backward compatibility
3043+ string fullp = string(setpath, setpathlength);
3044+ // Remove trailing whitespace
3045+ fullp.erase( std::remove_if( fullp.begin(), fullp.end(), ::isspace ), fullp.end() );
3046+ // Use only items after the last /
3047+ const string pap = LHAPDF::dirname(fullp);
3048+ const string p = LHAPDF::basename(fullp);
3049+ // Prepend path to search area
3050+ LHAPDF::pathsPrepend(pap);
3051+ // Handle extensions
3052+ string path = LHAPDF::file_extn(p).empty() ? p : LHAPDF::file_stem(p);
3053+ /// @note We correct the misnamed CTEQ6L1/CTEQ6ll set name as a backward compatibility special case.
3054+ if (boost::algorithm::to_lower_copy(path) == "cteq6ll") path = "cteq6l1";
3055+ // Create the PDF set with index nset
3056+ // if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3057+ lhapdf_amc::ACTIVESETS[nset] = lhapdf_amc::PDFSetHandler(path); //< @todo Will be wrong if a structured path is given
3058+ lhapdf_amc::CURRENTSET = nset;
3059+ }
3060+ /// Load a PDF set (non-multiset version)
3061+ void initpdfset_(const char* setpath, int setpathlength) {
3062+ int nset1 = 1;
3063+ initpdfsetm_(nset1, setpath, setpathlength);
3064+ }
3065+
3066+
3067+ /// Load a PDF set by name
3068+ void initpdfsetbynamem_(const int& nset, const char* setname, int setnamelength) {
3069+ // Truncate input to size setnamelength
3070+ string p = setname;
3071+ p.erase(setnamelength, std::string::npos);
3072+ // Strip file extension for backward compatibility
3073+ string name = LHAPDF::file_extn(p).empty() ? p : LHAPDF::file_stem(p);
3074+ // Remove trailing whitespace
3075+ name.erase( std::remove_if( name.begin(), name.end(), ::isspace ), name.end() );
3076+ /// @note We correct the misnamed CTEQ6L1/CTEQ6ll set name as a backward compatibility special case.
3077+ if (boost::algorithm::to_lower_copy(name) == "cteq6ll") name = "cteq6l1";
3078+ // Create the PDF set with index nset
3079+ // if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3080+ lhapdf_amc::ACTIVESETS[nset] = lhapdf_amc::PDFSetHandler(name);
3081+ // Update current set focus
3082+ lhapdf_amc::CURRENTSET = nset;
3083+ }
3084+ /// Load a PDF set by name (non-multiset version)
3085+ void initpdfsetbyname_(const char* setname, int setnamelength) {
3086+ int nset1 = 1;
3087+ initpdfsetbynamem_(nset1, setname, setnamelength);
3088+ }
3089+
3090+
3091+ /// Load a PDF in current set
3092+ void initpdfm_(const int& nset, const int& nmember) {
3093+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3094+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3095+ lhapdf_amc::ACTIVESETS[nset].loadMember(nmember);
3096+ // Update current set focus
3097+ lhapdf_amc::CURRENTSET = nset;
3098+ }
3099+ /// Load a PDF in current set (non-multiset version)
3100+ void initpdf_(const int& nmember) {
3101+ int nset1 = 1;
3102+ initpdfm_(nset1, nmember);
3103+ }
3104+
3105+
3106+ /// Get the current set number (i.e. allocation slot index)
3107+ void getnset_(int& nset) {
3108+ nset = lhapdf_amc::CURRENTSET;
3109+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3110+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3111+ }
3112+
3113+ /// Explicitly set the current set number (i.e. allocation slot index)
3114+ void setnset_(const int& nset) {
3115+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3116+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3117+ lhapdf_amc::CURRENTSET = nset;
3118+ }
3119+
3120+
3121+ /// Get the current member number in slot nset
3122+ void getnmem_(int& nset, int& nmem) {
3123+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3124+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3125+ nmem = lhapdf_amc::ACTIVESETS[nset].currentmem;
3126+ // Update current set focus
3127+ lhapdf_amc::CURRENTSET = nset;
3128+ }
3129+
3130+ /// Set the current member number in slot nset
3131+ void setnmem_(const int& nset, const int& nmem) {
3132+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3133+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" +
3134+ LHAPDF::to_str(nset) + " but it is not initialised");
3135+ lhapdf_amc::ACTIVESETS[nset].loadMember(nmem);
3136+ // Update current set focus
3137+ lhapdf_amc::CURRENTSET = nset;
3138+ }
3139+
3140+
3141+
3142+ // PDF evolution functions
3143+
3144+ /// Get xf(x) values for common partons from current PDF
3145+ void evolvepdfm_(const int& nset, const double& x, const double& q, double* fxq) {
3146+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3147+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3148+ // Evaluate for the 13 LHAPDF5 standard partons (-6..6)
3149+ for (size_t i = 0; i < 13; ++i) {
3150+ try {
3151+ fxq[i] = lhapdf_amc::ACTIVESETS[nset].activemember()->xfxQ(i-6, x, q);
3152+ } catch (const exception& e) {
3153+ fxq[i] = 0;
3154+ }
3155+ }
3156+ // Update current set focus
3157+ lhapdf_amc::CURRENTSET = nset;
3158+ }
3159+ /// Get xf(x) values for common partons from current PDF (non-multiset version)
3160+ void evolvepdf_(const double& x, const double& q, double* fxq) {
3161+ int nset1 = 1;
3162+ evolvepdfm_(nset1, x, q, fxq);
3163+ }
3164+
3165+ // PDF evolution functions
3166+ // NEW BY MZ to evolve one single parton
3167+
3168+ /// Get xf(x) values for common partons from current PDF
3169+ void evolvepartm_(const int& nset, const int& ipart, const double& x, const double& q, double& fxq) {
3170+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3171+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3172+ int ipart_copy; // this is to deal with photons, which are labeled 7 in MG5aMC
3173+ ipart_copy = ipart;
3174+ if (ipart==7) ipart_copy = 22;
3175+ try {
3176+ fxq = lhapdf_amc::ACTIVESETS[nset].activemember()->xfxQ(ipart_copy, x, q);
3177+ } catch (const exception& e) {
3178+ fxq = 0;
3179+ }
3180+ // Update current set focus
3181+ lhapdf_amc::CURRENTSET = nset;
3182+ }
3183+ /// Get xf(x) values for common partons from current PDF (non-multiset version)
3184+ void evolvepart_( const int& ipart, const double& x, const double& q, double& fxq) {
3185+ int nset1 = 1;
3186+ evolvepartm_(nset1, ipart, x, q, fxq);
3187+ }
3188+
3189+
3190+ /// Determine if the current PDF has a photon flavour (historically only MRST2004QED)
3191+ /// @todo Function rather than subroutine?
3192+ /// @note There is no multiset version. has_photon will respect the current set slot.
3193+ bool has_photon_() {
3194+ return lhapdf_amc::ACTIVESETS[lhapdf_amc::CURRENTSET].activemember()->hasFlavor(22);
3195+ }
3196+
3197+
3198+ /// Get xfx values from current PDF, including an extra photon flavour
3199+ void evolvepdfphotonm_(const int& nset, const double& x, const double& q, double* fxq, double& photonfxq) {
3200+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3201+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3202+ // First evaluate the "normal" partons
3203+ evolvepdfm_(nset, x, q, fxq);
3204+ // Then evaluate the photon flavor (historically only for MRST2004QED)
3205+ try {
3206+ photonfxq = lhapdf_amc::ACTIVESETS[nset].activemember()->xfxQ(22, x, q);
3207+ } catch (const exception& e) {
3208+ photonfxq = 0;
3209+ }
3210+ // Update current set focus
3211+ lhapdf_amc::CURRENTSET = nset;
3212+ }
3213+ /// Get xfx values from current PDF, including an extra photon flavour (non-multiset version)
3214+ void evolvepdfphoton_(const double& x, const double& q, double* fxq, double& photonfxq) {
3215+ int nset1 = 1;
3216+ evolvepdfphotonm_(nset1, x, q, fxq, photonfxq);
3217+ }
3218+
3219+
3220+ /// Get xf(x) values for common partons from a photon PDF
3221+ void evolvepdfpm_(const int& nset, const double& x, const double& q, const double& p2, const int& ip2, double& fxq) {
3222+ // Update current set focus
3223+ lhapdf_amc::CURRENTSET = nset;
3224+ throw LHAPDF::NotImplementedError("Photon structure functions are not yet supported in LHAPDF6");
3225+ }
3226+ /// Get xf(x) values for common partons from a photon PDF (non-multiset version)
3227+ void evolvepdfp_(const double& x, const double& q, const double& p2, const int& ip2, double& fxq) {
3228+ int nset1 = 1;
3229+ evolvepdfpm_(nset1, x, q, p2, ip2, fxq);
3230+ }
3231+
3232+
3233+ // alpha_s evolution
3234+
3235+ /// Get the alpha_s order for the set
3236+ void getorderasm_(const int& nset, int& oas) {
3237+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3238+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3239+ // Set equal to the number of members for the requested set
3240+ oas = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<int>("AlphaS_OrderQCD");
3241+ // Update current set focus
3242+ lhapdf_amc::CURRENTSET = nset;
3243+ }
3244+ /// Get the alpha_s order for the set (non-multiset version)
3245+ void getorderas_(int& oas) {
3246+ int nset1 = 1;
3247+ getorderasm_(nset1, oas);
3248+ }
3249+
3250+
3251+ /// Get the alpha_s(Q) value for set nset
3252+ double alphaspdfm_(const int& nset, const double& Q){
3253+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3254+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3255+ return lhapdf_amc::ACTIVESETS[nset].activemember()->alphasQ(Q);
3256+ // Update current set focus
3257+ lhapdf_amc::CURRENTSET = nset;
3258+ }
3259+ /// Get the alpha_s(Q) value for the set (non-multiset version)
3260+ double alphaspdf_(const double& Q){
3261+ int nset1 = 1;
3262+ return alphaspdfm_(nset1, Q);
3263+ }
3264+
3265+
3266+ // Metadata functions
3267+
3268+ /// Get the number of error members in the set (with special treatment for single member sets)
3269+ void numberpdfm_(const int& nset, int& numpdf) {
3270+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3271+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3272+ // Set equal to the number of members for the requested set
3273+ numpdf= lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<int>("NumMembers");
3274+ // Reproduce old LHAPDF v5 behaviour, i.e. subtract 1 if more than 1 member set
3275+ if (numpdf > 1) numpdf -= 1;
3276+ // Update current set focus
3277+ lhapdf_amc::CURRENTSET = nset;
3278+ }
3279+ /// Get the number of error members in the set (non-multiset version)
3280+ void numberpdf_(int& numpdf) {
3281+ int nset1 = 1;
3282+ numberpdfm_(nset1, numpdf);
3283+ }
3284+
3285+
3286+ /// Get the max number of active flavours
3287+ void getnfm_(const int& nset, int& nf) {
3288+ //nf = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<int>("AlphaS_NumFlavors");
3289+ nf = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<int>("NumFlavors");
3290+ // Update current set focus
3291+ lhapdf_amc::CURRENTSET = nset;
3292+ }
3293+ /// Get the max number of active flavours (non-multiset version)
3294+ void getnf_(int& nf) {
3295+ int nset1 = 1;
3296+ getnfm_(nset1, nf);
3297+ }
3298+
3299+
3300+ /// Get nf'th quark mass
3301+ void getqmassm_(const int& nset, const int& nf, double& mass) {
3302+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3303+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3304+ if (nf*nf == 1) mass = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("MDown");
3305+ else if (nf*nf == 4) mass = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("MUp");
3306+ else if (nf*nf == 9) mass = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("MStrange");
3307+ else if (nf*nf == 16) mass = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("MCharm");
3308+ else if (nf*nf == 25) mass = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("MBottom");
3309+ else if (nf*nf == 36) mass = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("MTop");
3310+ else throw LHAPDF::UserError("Trying to get quark mass for invalid quark ID #" + LHAPDF::to_str(nf));
3311+ // Update current set focus
3312+ lhapdf_amc::CURRENTSET = nset;
3313+ }
3314+ /// Get nf'th quark mass (non-multiset version)
3315+ void getqmass_(const int& nf, double& mass) {
3316+ int nset1 = 1;
3317+ getqmassm_(nset1, nf, mass);
3318+ }
3319+
3320+
3321+ /// Get the nf'th quark threshold
3322+ void getthresholdm_(const int& nset, const int& nf, double& Q) {
3323+ try {
3324+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3325+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3326+ if (nf*nf == 1) Q = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("ThresholdDown");
3327+ else if (nf*nf == 4) Q = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("ThresholdUp");
3328+ else if (nf*nf == 9) Q = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("ThresholdStrange");
3329+ else if (nf*nf == 16) Q = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("ThresholdCharm");
3330+ else if (nf*nf == 25) Q = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("ThresholdBottom");
3331+ else if (nf*nf == 36) Q = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("ThresholdTop");
3332+ //else throw LHAPDF::UserError("Trying to get quark threshold for invalid quark ID #" + LHAPDF::to_str(nf));
3333+ } catch (...) {
3334+ getqmassm_(nset, nf, Q);
3335+ }
3336+ // Update current set focus
3337+ lhapdf_amc::CURRENTSET = nset;
3338+ }
3339+ /// Get the nf'th quark threshold
3340+ void getthreshold_(const int& nf, double& Q) {
3341+ int nset1 = 1;
3342+ getthresholdm_(nset1, nf, Q);
3343+ }
3344+
3345+
3346+ /// Print PDF set's description to stdout
3347+ void getdescm_(const int& nset) {
3348+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3349+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3350+ cout << lhapdf_amc::ACTIVESETS[nset].activemember()->description() << endl;
3351+ // Update current set focus
3352+ lhapdf_amc::CURRENTSET = nset;
3353+ }
3354+ void getdesc_() {
3355+ int nset1 = 1;
3356+ getdescm_(nset1);
3357+ }
3358+
3359+
3360+ void getxminm_(const int& nset, const int& nmem, double& xmin) {
3361+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3362+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3363+ const int activemem = lhapdf_amc::ACTIVESETS[nset].currentmem;
3364+ lhapdf_amc::ACTIVESETS[nset].loadMember(nmem);
3365+ xmin = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("XMin");
3366+ lhapdf_amc::ACTIVESETS[nset].loadMember(activemem);
3367+ // Update current set focus
3368+ lhapdf_amc::CURRENTSET = nset;
3369+ }
3370+ void getxmin_(const int& nmem, double& xmin) {
3371+ int nset1 = 1;
3372+ getxminm_(nset1, nmem, xmin);
3373+ }
3374+
3375+
3376+ void getxmaxm_(const int& nset, const int& nmem, double& xmax) {
3377+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3378+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3379+ const int activemem = lhapdf_amc::ACTIVESETS[nset].currentmem;
3380+ lhapdf_amc::ACTIVESETS[nset].loadMember(nmem);
3381+ xmax = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("XMax");
3382+ lhapdf_amc::ACTIVESETS[nset].loadMember(activemem);
3383+ // Update current set focus
3384+ lhapdf_amc::CURRENTSET = nset;
3385+ }
3386+ void getxmax_(const int& nmem, double& xmax) {
3387+ int nset1 = 1;
3388+ getxmaxm_(nset1, nmem, xmax);
3389+ }
3390+
3391+
3392+ void getq2minm_(const int& nset, const int& nmem, double& q2min) {
3393+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3394+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3395+ const int activemem = lhapdf_amc::ACTIVESETS[nset].currentmem;
3396+ lhapdf_amc::ACTIVESETS[nset].loadMember(nmem);
3397+ q2min = LHAPDF::sqr(lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("QMin"));
3398+ lhapdf_amc::ACTIVESETS[nset].loadMember(activemem);
3399+ // Update current set focus
3400+ lhapdf_amc::CURRENTSET = nset;
3401+ }
3402+ void getq2min_(const int& nmem, double& q2min) {
3403+ int nset1 = 1;
3404+ getq2minm_(nset1, nmem, q2min);
3405+ }
3406+
3407+
3408+ void getq2maxm_(const int& nset, const int& nmem, double& q2max) {
3409+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3410+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3411+ const int activemem = lhapdf_amc::ACTIVESETS[nset].currentmem;
3412+ lhapdf_amc::ACTIVESETS[nset].loadMember(nmem);
3413+ q2max = LHAPDF::sqr(lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("QMax"));
3414+ lhapdf_amc::ACTIVESETS[nset].loadMember(activemem);
3415+ // Update current set focus
3416+ lhapdf_amc::CURRENTSET = nset;
3417+ }
3418+ void getq2max_(const int& nmem, double& q2max) {
3419+ int nset1 = 1;
3420+ getq2maxm_(nset1, nmem, q2max);
3421+ }
3422+
3423+
3424+ void getminmaxm_(const int& nset, const int& nmem, double& xmin, double& xmax, double& q2min, double& q2max) {
3425+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3426+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3427+ const int activemem = lhapdf_amc::ACTIVESETS[nset].currentmem;
3428+ lhapdf_amc::ACTIVESETS[nset].loadMember(nmem);
3429+ xmin = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("XMin");
3430+ xmax = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("XMax");
3431+ q2min = LHAPDF::sqr(lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("QMin"));
3432+ q2max = LHAPDF::sqr(lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("QMax"));
3433+ lhapdf_amc::ACTIVESETS[nset].loadMember(activemem);
3434+ // Update current set focus
3435+ lhapdf_amc::CURRENTSET = nset;
3436+ }
3437+ void getminmax_(const int& nmem, double& xmin, double& xmax, double& q2min, double& q2max) {
3438+ int nset1 = 1;
3439+ getminmaxm_(nset1, nmem, xmin, xmax, q2min, q2max);
3440+ }
3441+
3442+
3443+
3444+ /// Backwards compatibility functions for LHAPDF5 calculations of
3445+ /// PDF uncertainties and PDF correlations (G. Watt, March 2014).
3446+
3447+ // subroutine GetPDFUncTypeM(nset,lMonteCarlo,lSymmetric)
3448+ void getpdfunctypem_(const int& nset, int& lmontecarlo, int& lsymmetric) {
3449+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3450+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3451+ const string errorType = lhapdf_amc::ACTIVESETS[nset].activemember()->set().errorType();
3452+ if (errorType == "replicas") { // Monte Carlo PDF sets
3453+ lmontecarlo = 1;
3454+ lsymmetric = 1;
3455+ } else if (errorType == "symmhessian") { // symmetric eigenvector PDF sets
3456+ lmontecarlo = 0;
3457+ lsymmetric = 1;
3458+ } else { // default: assume asymmetric Hessian eigenvector PDF sets
3459+ lmontecarlo = 0;
3460+ lsymmetric = 0;
3461+ }
3462+ // Update current set focus
3463+ lhapdf_amc::CURRENTSET = nset;
3464+ }
3465+ // subroutine GetPDFUncType(lMonteCarlo,lSymmetric)
3466+ void getpdfunctype_(int& lmontecarlo, int& lsymmetric) {
3467+ int nset1 = 1;
3468+ getpdfunctypem_(nset1, lmontecarlo, lsymmetric);
3469+ }
3470+
3471+
3472+ // subroutine GetPDFuncertaintyM(nset,values,central,errplus,errminus,errsym)
3473+ void getpdfuncertaintym_(const int& nset, const double* values, double& central, double& errplus, double& errminus, double& errsymm) {
3474+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3475+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3476+ const size_t nmem = lhapdf_amc::ACTIVESETS[nset].activemember()->set().size()-1;
3477+ const vector<double> vecvalues(values, values + nmem + 1);
3478+ LHAPDF::PDFUncertainty err = lhapdf_amc::ACTIVESETS[nset].activemember()->set().uncertainty(vecvalues, -1);
3479+ central = err.central;
3480+ errplus = err.errplus;
3481+ errminus = err.errminus;
3482+ errsymm = err.errsymm;
3483+ // Update current set focus
3484+ lhapdf_amc::CURRENTSET = nset;
3485+ }
3486+ // subroutine GetPDFuncertainty(values,central,errplus,errminus,errsym)
3487+ void getpdfuncertainty_(const double* values, double& central, double& errplus, double& errminus, double& errsymm) {
3488+ int nset1 = 1;
3489+ getpdfuncertaintym_(nset1, values, central, errplus, errminus, errsymm);
3490+ }
3491+
3492+
3493+ // subroutine GetPDFcorrelationM(nset,valuesA,valuesB,correlation)
3494+ void getpdfcorrelationm_(const int& nset, const double* valuesA, const double* valuesB, double& correlation) {
3495+ if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
3496+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3497+ const size_t nmem = lhapdf_amc::ACTIVESETS[nset].activemember()->set().size()-1;
3498+ const vector<double> vecvaluesA(valuesA, valuesA + nmem + 1);
3499+ const vector<double> vecvaluesB(valuesB, valuesB + nmem + 1);
3500+ correlation = lhapdf_amc::ACTIVESETS[nset].activemember()->set().correlation(vecvaluesA,vecvaluesB);
3501+ // Update current set focus
3502+ lhapdf_amc::CURRENTSET = nset;
3503+ }
3504+ // subroutine GetPDFcorrelation(valuesA,valuesB,correlation)
3505+ void getpdfcorrelation_(const double* valuesA, const double* valuesB, double& correlation) {
3506+ int nset1 = 1;
3507+ getpdfcorrelationm_(nset1, valuesA, valuesB, correlation);
3508+ }
3509+
3510+
3511+ ///////////////////////////////////////
3512+
3513+
3514+ /// REALLY OLD PDFLIB COMPATILITY FUNCTIONS
3515+
3516+ /// PDFLIB initialisation function
3517+ void pdfset_(const char* par, const double* value, int parlength) {
3518+
3519+ // Identify the calling program (yuck!)
3520+ string my_par(par);
3521+ if (my_par.find("NPTYPE") != string::npos) {
3522+ cout << "==== LHAPDF6 USING PYTHIA-TYPE LHAGLUE INTERFACE ====" << endl;
3523+ // Take PDF ID from value[2]
3524+ lhapdf_amc::ACTIVESETS[1] = lhapdf_amc::PDFSetHandler(value[2]+1000*value[1]);
3525+ } else if (my_par.find("HWLHAPDF") != string::npos) {
3526+ cout << "==== LHAPDF6 USING HERWIG-TYPE LHAGLUE INTERFACE ====" << endl;
3527+ // Take PDF ID from value[0]
3528+ lhapdf_amc::ACTIVESETS[1] = lhapdf_amc::PDFSetHandler(value[0]);
3529+ } else if (my_par.find("DEFAULT") != string::npos) {
3530+ cout << "==== LHAPDF6 USING DEFAULT-TYPE LHAGLUE INTERFACE ====" << endl;
3531+ // Take PDF ID from value[0]
3532+ lhapdf_amc::ACTIVESETS[1] = lhapdf_amc::PDFSetHandler(value[0]);
3533+ } else {
3534+ cout << "==== LHAPDF6 USING PDFLIB-TYPE LHAGLUE INTERFACE ====" << endl;
3535+ // Take PDF ID from value[2]
3536+ lhapdf_amc::ACTIVESETS[1] = lhapdf_amc::PDFSetHandler(value[2]+1000*value[1]);
3537+ }
3538+
3539+ lhapdf_amc::CURRENTSET = 1;
3540+
3541+ // Extract parameters for common blocks (with sensible fallback values)
3542+ lhapdf_amc::PDFPtr pdf = lhapdf_amc::ACTIVESETS[1].activemember();
3543+ w50513_.xmin = pdf->info().get_entry_as<double>("XMin", 0.0);
3544+ w50513_.xmax = pdf->info().get_entry_as<double>("XMax", 1.0);
3545+ w50513_.q2min = LHAPDF::sqr(pdf->info().get_entry_as<double>("QMin", 1.0));
3546+ w50513_.q2max = LHAPDF::sqr(pdf->info().get_entry_as<double>("QMax", 1.0e5));
3547+ w50512_.qcdl4 = pdf->info().get_entry_as<double>("AlphaS_Lambda4", 0.0);
3548+ w50512_.qcdl5 = pdf->info().get_entry_as<double>("AlphaS_Lambda5", 0.0);
3549+ lhapdfr_.qcdlha4 = pdf->info().get_entry_as<double>("AlphaS_Lambda4", 0.0);
3550+ lhapdfr_.qcdlha5 = pdf->info().get_entry_as<double>("AlphaS_Lambda5", 0.0);
3551+ lhapdfr_.nfllha = 4;
3552+ // Activate legacy/compatibility LHAPDF5-type behaviour re. broken Lambda values
3553+ if (pdf->info().get_entry_as<bool>("Pythia6LambdaV5Compat", true)) {
3554+ w50512_.qcdl4 = 0.192;
3555+ w50512_.qcdl5 = 0.192;
3556+ lhapdfr_.qcdlha4 = 0.192;
3557+ lhapdfr_.qcdlha5 = 0.192;
3558+ }
3559+ }
3560+
3561+ /// PDFLIB nucleon structure function querying
3562+ void structm_(const double& x, const double& q,
3563+ double& upv, double& dnv, double& usea, double& dsea,
3564+ double& str, double& chm, double& bot, double& top, double& glu) {
3565+ lhapdf_amc::CURRENTSET = 1;
3566+ /// Fill (partial) parton return variables
3567+ lhapdf_amc::PDFPtr pdf = lhapdf_amc::ACTIVESETS[1].activemember();
3568+ dsea = pdf->xfxQ(-1, x, q);
3569+ usea = pdf->xfxQ(-2, x, q);
3570+ dnv = pdf->xfxQ(1, x, q) - dsea;
3571+ upv = pdf->xfxQ(2, x, q) - usea;
3572+ str = pdf->xfxQ(3, x, q);
3573+ chm = (pdf->hasFlavor(4)) ? pdf->xfxQ(4, x, q) : 0;
3574+ bot = (pdf->hasFlavor(5)) ? pdf->xfxQ(5, x, q) : 0;
3575+ top = (pdf->hasFlavor(6)) ? pdf->xfxQ(6, x, q) : 0;
3576+ glu = pdf->xfxQ(21, x, q);
3577+ }
3578+
3579+ /// PDFLIB photon structure function querying
3580+ void structp_(const double& x, const double& q2, const double& p2, const double& ip2,
3581+ double& upv, double& dnv, double& usea, double& dsea,
3582+ double& str, double& chm, double& bot, double& top, double& glu) {
3583+ throw LHAPDF::NotImplementedError("Photon structure functions are not yet supported");
3584+ }
3585+
3586+ /// PDFLIB statistics on PDF under/overflows
3587+ void pdfsta_() {
3588+ /// @note Can't do anything...
3589+ }
3590+
3591+
3592+}
3593+
3594+
3595+// LHAPDF namespace C++ compatibility code
3596+#ifdef ENABLE_LHAGLUE_CXX
3597+
3598+
3599+void LHAPDF::setVerbosity(LHAPDF::Verbosity noiselevel) {
3600+ LHAPDF::setVerbosity((int) noiselevel);
3601+}
3602+
3603+void LHAPDF::setPDFPath(const string& path) {
3604+ pathsPrepend(path);
3605+}
3606+
3607+string LHAPDF::pdfsetsPath() {
3608+ return paths()[0];
3609+}
3610+
3611+int LHAPDF::numberPDF() {
3612+ int nmem;
3613+ numberpdf_(nmem);
3614+ return nmem;
3615+}
3616+int LHAPDF::numberPDF(int nset) {
3617+ int nmem;
3618+ numberpdfm_(nset,nmem);
3619+ return nmem;
3620+}
3621+
3622+void LHAPDF::initPDF( int memset) {
3623+ int nset1 = 1;
3624+ initpdfm_(nset1, memset);
3625+}
3626+void LHAPDF::initPDF(int nset, int memset) {
3627+ initpdfm_(nset, memset);
3628+}
3629+
3630+
3631+double LHAPDF::xfx(double x, double Q, int fl) {
3632+ vector<double> r(13);
3633+ evolvepdf_(x, Q, &r[0]);
3634+ return r[fl+6];
3635+}
3636+double LHAPDF::xfx(int nset, double x, double Q, int fl) {
3637+ vector<double> r(13);
3638+ evolvepdfm_(nset, x, Q, &r[0]);
3639+ return r[fl+6];
3640+}
3641+
3642+vector<double> LHAPDF::xfx(double x, double Q) {
3643+ vector<double> r(13);
3644+ evolvepdf_(x, Q, &r[0]);
3645+ return r;
3646+}
3647+vector<double> LHAPDF::xfx(int nset, double x, double Q) {
3648+ vector<double> r(13);
3649+ evolvepdfm_(nset, x, Q, &r[0]);
3650+ return r;
3651+}
3652+
3653+void LHAPDF::xfx(double x, double Q, double* results) {
3654+ evolvepdf_(x, Q, results);
3655+}
3656+void LHAPDF::xfx(int nset, double x, double Q, double* results) {
3657+ evolvepdfm_(nset, x, Q, results);
3658+}
3659+
3660+
3661+vector<double> LHAPDF::xfxphoton(double x, double Q) {
3662+ vector<double> r(13);
3663+ double mphoton;
3664+ evolvepdfphoton_(x, Q, &r[0], mphoton);
3665+ r.push_back(mphoton);
3666+ return r;
3667+}
3668+vector<double> LHAPDF::xfxphoton(int nset, double x, double Q) {
3669+ vector<double> r(13);
3670+ double mphoton;
3671+ evolvepdfphotonm_(nset, x, Q, &r[0], mphoton);
3672+ r.push_back(mphoton);
3673+ return r;
3674+}
3675+
3676+void LHAPDF::xfxphoton(double x, double Q, double* results) {
3677+ evolvepdfphoton_(x, Q, results, results[13]);
3678+}
3679+void LHAPDF::xfxphoton(int nset, double x, double Q, double* results) {
3680+ evolvepdfphotonm_(nset, x, Q, results, results[13]);
3681+}
3682+
3683+double LHAPDF::xfxphoton(double x, double Q, int fl) {
3684+ vector<double> r(13);
3685+ double mphoton;
3686+ evolvepdfphoton_(x, Q, &r[0], mphoton);
3687+ if (fl == 7) return mphoton;
3688+ return r[fl+6];
3689+}
3690+double LHAPDF::xfxphoton(int nset, double x, double Q, int fl) {
3691+ vector<double> r(13);
3692+ double mphoton;
3693+ evolvepdfphotonm_(nset, x, Q, &r[0], mphoton);
3694+ if ( fl == 7 ) return mphoton;
3695+ return r[fl+6];
3696+}
3697+
3698+
3699+void LHAPDF::initPDFSet(const string& filename, int nmem) {
3700+ initPDFSet(1,filename, nmem);
3701+}
3702+
3703+void LHAPDF::initPDFSet(int nset, const string& filename, int nmem) {
3704+ initPDFSetByName(nset,filename);
3705+ ACTIVESETS[nset].loadMember(nmem);
3706+ CURRENTSET = nset;
3707+}
3708+
3709+
3710+void LHAPDF::initPDFSet(const string& filename, SetType type ,int nmem) {
3711+ // silently ignore type
3712+ initPDFSet(1,filename, nmem);
3713+}
3714+
3715+void LHAPDF::initPDFSet(int nset, const string& filename, SetType type ,int nmem) {
3716+ // silently ignore type
3717+ initPDFSetByName(nset,filename);
3718+ ACTIVESETS[nset].loadMember(nmem);
3719+ CURRENTSET = nset;
3720+}
3721+
3722+void LHAPDF::initPDFSet(int nset, int setid, int nmem) {
3723+ ACTIVESETS[nset] = PDFSetHandler(setid); //
3724+ CURRENTSET = nset;
3725+}
3726+
3727+void LHAPDF::initPDFSet(int setid, int nmem) {
3728+ initPDFSet(1,setid,nmem);
3729+}
3730+
3731+#define SIZE 999
3732+void LHAPDF::initPDFSetByName(const string& filename) {
3733+ std::cout << "initPDFSetByName: " << filename << std::endl;
3734+ char cfilename[SIZE+1];
3735+ strncpy(cfilename, filename.c_str(), SIZE);
3736+ initpdfsetbyname_(cfilename, filename.length());
3737+}
3738+
3739+void LHAPDF::initPDFSetByName(int nset, const string& filename) {
3740+ char cfilename[SIZE+1];
3741+ strncpy(cfilename, filename.c_str(), SIZE);
3742+ initpdfsetbynamem_(nset, cfilename, filename.length());
3743+}
3744+
3745+void LHAPDF::initPDFSetByName(const string& filename, SetType type) {
3746+ //silently ignore type
3747+ std::cout << "initPDFSetByName: " << filename << std::endl;
3748+ char cfilename[SIZE+1];
3749+ strncpy(cfilename, filename.c_str(), SIZE);
3750+ initpdfsetbyname_(cfilename, filename.length());
3751+}
3752+
3753+void LHAPDF::initPDFSetByName(int nset, const string& filename, SetType type) {
3754+ //silently ignore type
3755+ char cfilename[SIZE+1];
3756+ strncpy(cfilename, filename.c_str(), SIZE);
3757+ initpdfsetbynamem_(nset, cfilename, filename.length());
3758+}
3759+
3760+
3761+void LHAPDF::getDescription() {
3762+ getDescription(1);
3763+}
3764+
3765+void LHAPDF::getDescription(int nset) {
3766+ if (ACTIVESETS.find(nset) == ACTIVESETS.end())
3767+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3768+ cout << ACTIVESETS[nset].activemember()->set().description() << endl;
3769+}
3770+
3771+
3772+double LHAPDF::alphasPDF(double Q) {
3773+ return LHAPDF::alphasPDF(1, Q) ;
3774+}
3775+
3776+double LHAPDF::alphasPDF(int nset, double Q) {
3777+ if (ACTIVESETS.find(nset) == ACTIVESETS.end())
3778+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3779+ CURRENTSET = nset;
3780+ // return alphaS for the requested set
3781+ return ACTIVESETS[nset].activemember()->alphasQ(Q);
3782+}
3783+
3784+
3785+bool LHAPDF::hasPhoton(){
3786+ return has_photon_();
3787+}
3788+
3789+
3790+int LHAPDF::getOrderAlphaS() {
3791+ return LHAPDF::getOrderAlphaS(1) ;
3792+}
3793+
3794+int LHAPDF::getOrderAlphaS(int nset) {
3795+ if (ACTIVESETS.find(nset) == ACTIVESETS.end())
3796+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3797+ CURRENTSET = nset;
3798+ // return alphaS Order for the requested set
3799+ return ACTIVESETS[nset].activemember()->info().get_entry_as<int>("AlphaS_OrderQCD", -1);
3800+}
3801+
3802+
3803+int LHAPDF::getOrderPDF() {
3804+ return LHAPDF::getOrderPDF(1) ;
3805+}
3806+
3807+int LHAPDF::getOrderPDF(int nset) {
3808+ if (ACTIVESETS.find(nset) == ACTIVESETS.end())
3809+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3810+ CURRENTSET = nset;
3811+ // return PDF order for the requested set
3812+ return ACTIVESETS[nset].activemember()->info().get_entry_as<int>("OrderQCD", -1);
3813+}
3814+
3815+
3816+double LHAPDF::getLam4(int nmem) {
3817+ return LHAPDF::getLam4(1, nmem) ;
3818+}
3819+
3820+double LHAPDF::getLam4(int nset, int nmem) {
3821+ if (ACTIVESETS.find(nset) == ACTIVESETS.end())
3822+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3823+ CURRENTSET = nset;
3824+ ACTIVESETS[nset].loadMember(nmem);
3825+ return ACTIVESETS[nset].activemember()->info().get_entry_as<double>("AlphaS_Lambda4", -1.0);
3826+}
3827+
3828+
3829+double LHAPDF::getLam5(int nmem) {
3830+ return LHAPDF::getLam5(1, nmem) ;
3831+}
3832+
3833+double LHAPDF::getLam5(int nset, int nmem) {
3834+ if (ACTIVESETS.find(nset) == ACTIVESETS.end())
3835+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3836+ CURRENTSET = nset;
3837+ ACTIVESETS[nset].loadMember(nmem);
3838+ return ACTIVESETS[nset].activemember()->info().get_entry_as<double>("AlphaS_Lambda5", -1.0);
3839+}
3840+
3841+
3842+int LHAPDF::getNf() {
3843+ return LHAPDF::getNf(1) ;
3844+}
3845+
3846+int LHAPDF::getNf(int nset) {
3847+ if (ACTIVESETS.find(nset) == ACTIVESETS.end())
3848+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3849+ CURRENTSET = nset;
3850+ // return alphaS Order for the requested set
3851+ return ACTIVESETS[nset].activemember()->info().get_entry_as<int>("NumFlavors");
3852+}
3853+
3854+
3855+double LHAPDF::getXmin(int nmem) {
3856+ return LHAPDF::getXmin(1, nmem) ;
3857+}
3858+
3859+double LHAPDF::getXmin(int nset, int nmem) {
3860+ if (ACTIVESETS.find(nset) == ACTIVESETS.end())
3861+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3862+ CURRENTSET = nset;
3863+ // return alphaS Order for the requested set
3864+ ACTIVESETS[nset].loadMember(nmem);
3865+ return ACTIVESETS[nset].activemember()->info().get_entry_as<double>("XMin");
3866+}
3867+
3868+double LHAPDF::getXmax(int nmem) {
3869+ return LHAPDF::getXmax(1, nmem) ;
3870+}
3871+
3872+double LHAPDF::getXmax(int nset, int nmem) {
3873+ if (ACTIVESETS.find(nset) == ACTIVESETS.end())
3874+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3875+ CURRENTSET = nset;
3876+ // return alphaS Order for the requested set
3877+ ACTIVESETS[nset].loadMember(nmem);
3878+ return ACTIVESETS[nset].activemember()->info().get_entry_as<double>("XMax");
3879+}
3880+
3881+double LHAPDF::getQ2min(int nmem) {
3882+ return LHAPDF::getQ2min(1, nmem) ;
3883+}
3884+
3885+double LHAPDF::getQ2min(int nset, int nmem) {
3886+ if (ACTIVESETS.find(nset) == ACTIVESETS.end())
3887+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3888+ CURRENTSET = nset;
3889+ // return alphaS Order for the requested set
3890+ ACTIVESETS[nset].loadMember(nmem);
3891+ return pow(ACTIVESETS[nset].activemember()->info().get_entry_as<double>("QMin"),2);
3892+}
3893+
3894+double LHAPDF::getQ2max(int nmem) {
3895+ return LHAPDF::getQ2max(1,nmem) ;
3896+}
3897+
3898+double LHAPDF::getQ2max(int nset, int nmem) {
3899+ if (ACTIVESETS.find(nset) == ACTIVESETS.end())
3900+ throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
3901+ CURRENTSET = nset;
3902+ // return alphaS Order for the requested set
3903+ ACTIVESETS[nset].loadMember(nmem);
3904+ return pow(ACTIVESETS[nset].activemember()->info().get_entry_as<double>("QMax"),2);
3905+}
3906+
3907+double LHAPDF::getQMass(int nf) {
3908+ return LHAPDF::getQMass(1, nf) ;
3909+}
3910+
3911+double LHAPDF::getQMass(int nset, int nf) {
3912+ double mass;
3913+ getqmassm_(nset, nf, mass);
3914+ return mass;
3915+}
3916+
3917+double LHAPDF::getThreshold(int nf) {
3918+ return LHAPDF::getThreshold(1, nf) ;
3919+}
3920+
3921+double LHAPDF::getThreshold(int nset, int nf) {
3922+ double thres;
3923+ getthresholdm_(nset, nf, thres);
3924+ return thres;
3925+}
3926+
3927+void LHAPDF::usePDFMember(int member) {
3928+ initpdf_(member);
3929+}
3930+
3931+void LHAPDF::usePDFMember(int nset, int member) {
3932+ initpdfm_(nset, member);
3933+}
3934+
3935+#endif // ENABLE_LHAGLUE_CXX
3936
3937=== added file 'Template/LO/Source/PDF/pdg2pdf_lhapdf6.f'
3938--- Template/LO/Source/PDF/pdg2pdf_lhapdf6.f 1970-01-01 00:00:00 +0000
3939+++ Template/LO/Source/PDF/pdg2pdf_lhapdf6.f 2016-11-23 08:16:42 +0000
3940@@ -0,0 +1,120 @@
3941+ double precision function pdg2pdf(ih,ipdg,x,xmu)
3942+c***************************************************************************
3943+c Based on pdf.f, wrapper for calling the pdf of MCFM
3944+c***************************************************************************
3945+ implicit none
3946+c
3947+c Arguments
3948+c
3949+ DOUBLE PRECISION x,xmu
3950+ INTEGER IH,ipdg
3951+C
3952+C Include
3953+C
3954+ include 'pdf.inc'
3955+C
3956+ integer i,j,ihlast(20),ipart,iporg,ireuse,imemlast(20),iset,imem
3957+ & ,i_replace,ii,ipartlast(20)
3958+ double precision xlast(20),xmulast(20),pdflast(20)
3959+ double precision epa_proton
3960+ save ihlast,xlast,xmulast,pdflast,imemlast,ipartlast
3961+ data ihlast/20*-99/
3962+ data ipartlast/20*-99/
3963+ data xlast/20*-99d9/
3964+ data xmulast/20*-99d9/
3965+ data pdflast/20*-99d9/
3966+ data imemlast/20*-99/
3967+ data i_replace/20/
3968+
3969+c Make sure we have a reasonable Bjorken x. Note that even though
3970+c x=0 is not reasonable, we prefer to simply return pdg2pdf=0
3971+c instead of stopping the code, as this might accidentally happen.
3972+ if (x.eq.0d0) then
3973+ pdg2pdf=0d0
3974+ return
3975+ elseif (x.lt.0d0 .or. x.gt.1d0) then
3976+ write (*,*) 'PDF not supported for Bjorken x ', x
3977+ open(unit=26,file='../../../error',status='unknown')
3978+ write(26,*) 'Error: PDF not supported for Bjorken x ',x
3979+ stop 1
3980+ endif
3981+
3982+ ipart=ipdg
3983+ if(iabs(ipart).eq.21) ipart=0
3984+ if(iabs(ipart).eq.22) ipart=7
3985+ iporg=ipart
3986+
3987+c This will be called for any PDG code, but we only support up to 7
3988+ if(iabs(ipart).gt.7)then
3989+ write(*,*) 'PDF not supported for pdg ',ipdg
3990+ write(*,*) 'For lepton colliders, please set the lpp* '//
3991+ $ 'variables to 0 in the run_card'
3992+ open(unit=26,file='../../../error',status='unknown')
3993+ write(26,*) 'Error: PDF not supported for pdg ',ipdg
3994+ stop 1
3995+ endif
3996+
3997+c Determine the iset used in lhapdf
3998+ call getnset(iset)
3999+ if (iset.ne.1) then
4000+ write (*,*) 'PDF not supported for Bjorken x ', x
4001+ open(unit=26,file='../../../error',status='unknown')
4002+ write(26,*) 'Error: PDF not supported for Bjorken x ',x
4003+ stop 1
4004+ endif
4005+
4006+c Determine the member of the set (function of lhapdf)
4007+ call getnmem(iset,imem)
4008+
4009+ ireuse = 0
4010+ ii=i_replace
4011+ do i=1,20
4012+c Check if result can be reused since any of last twenty
4013+c calls. Start checking with the last call and move back in time
4014+ if (ih.eq.ihlast(ii)) then
4015+ if (ipart.eq.ipartlast(ii)) then
4016+ if (x.eq.xlast(ii)) then
4017+ if (xmu.eq.xmulast(ii)) then
4018+ if (imem.eq.imemlast(ii)) then
4019+ ireuse = ii
4020+ exit
4021+ endif
4022+ endif
4023+ endif
4024+ endif
4025+ endif
4026+ ii=ii-1
4027+ if (ii.eq.0) ii=ii+20
4028+ enddo
4029+
4030+c Reuse previous result, if possible
4031+ if (ireuse.gt.0) then
4032+ if (pdflast(ireuse).ne.-99d9) then
4033+ pdg2pdf=pdflast(ireuse)
4034+ return
4035+ endif
4036+ endif
4037+
4038+c Calculated a new value: replace the value computed longest ago
4039+ i_replace=mod(i_replace,20)+1
4040+
4041+c Call lhapdf and give the current values to the arrays that should
4042+c be saved
4043+ if(ih.eq.1) then
4044+ call evolvepart(ipart,x,xmu,pdg2pdf)
4045+ pdg2pdf=pdg2pdf/x
4046+ else if(ih.eq.2) then ! photon from a proton without breaking
4047+ pdg2pdf = epa_proton(x,xmu*xmu)
4048+ else
4049+ write (*,*) 'beam type not supported in lhadpf'
4050+ stop 1
4051+ endif
4052+ pdflast(i_replace)=pdg2pdf
4053+ xlast(i_replace)=x
4054+ xmulast(i_replace)=xmu
4055+ ihlast(i_replace)=ih
4056+ imemlast(i_replace)=imem
4057+c
4058+ return
4059+ end
4060+
4061
4062=== modified file 'Template/LO/Source/cuts.inc'
4063--- Template/LO/Source/cuts.inc 2015-04-09 01:31:09 +0000
4064+++ Template/LO/Source/cuts.inc 2016-11-23 08:16:42 +0000
4065@@ -88,6 +88,10 @@
4066 REAL*8 KT_DURHAM, D_PARAMETER
4067 LOGICAL DO_KT_DURHAM
4068 COMMON /JET_MEASURE_CUTS/ KT_DURHAM, D_PARAMETER
4069-
4070-
4071-
4072\ No newline at end of file
4073+
4074+C COMMON BLOCK FOR PYTHIA JET MEASURE CUT
4075+ REAL*8 PT_LUND
4076+ COMMON /PYTHIA_MEASURE_CUTS/ PT_LUND
4077+
4078+
4079+
4080
4081=== modified file 'Template/LO/Source/dsample.f'
4082--- Template/LO/Source/dsample.f 2015-06-08 16:01:11 +0000
4083+++ Template/LO/Source/dsample.f 2016-11-23 08:16:42 +0000
4084@@ -1608,7 +1608,7 @@
4085 if (iteration .eq. cur_it) then
4086 c Add the current point to the DiscreteSamplerGrid
4087 call add_entry_to_discrete_dimensions(wgt)
4088- if (kn.eq.0) then
4089+ if (kn.eq.0.and.(iteration.eq.1.or.use_cut.eq.-2)) then
4090 ! ensure that all cumulative variable are at zero (usefull for reset)
4091 twgt1 = 0d0 !
4092 iavg = 0 !Vars for averging to increase err estimate
4093@@ -2156,7 +2156,7 @@
4094 c $ access='append',err=129)
4095 c write(22, 80) real(tmean), real(tsigma), real(chi2)
4096 c 129 close(22)
4097- tsigma = tsigma*sqrt(chi2) !This gives the 68% confidence cross section
4098+ tsigma = tsigma*sqrt(max(0d0,chi2)) !This gives the 68% confidence cross section
4099 cur_it = itm+20
4100 return
4101 endif
4102
4103=== modified file 'Template/LO/Source/genps.inc'
4104--- Template/LO/Source/genps.inc 2014-11-24 00:33:21 +0000
4105+++ Template/LO/Source/genps.inc 2016-11-23 08:16:42 +0000
4106@@ -30,9 +30,9 @@
4107 c Parameters for helicity sums in matrixN.f
4108 c*************************************************************************
4109 REAL*8 LIMHEL
4110- PARAMETER(LIMHEL=1e-6)
4111+ PARAMETER(LIMHEL=1e-8)
4112 INTEGER MAXTRIES
4113- PARAMETER(MAXTRIES=10)
4114+ PARAMETER(MAXTRIES=25)
4115 C To pass the helicity configuration chosen by the DiscreteSampler to
4116 C matrix<i>.f
4117 double precision hel_jacobian
4118
4119=== modified file 'Template/LO/Source/kin_functions.f'
4120--- Template/LO/Source/kin_functions.f 2014-09-11 15:22:26 +0000
4121+++ Template/LO/Source/kin_functions.f 2016-11-23 08:16:42 +0000
4122@@ -127,7 +127,11 @@
4123 c pm=dsqrt(p(1)**2+p(2)**2+p(3)**2)
4124
4125 pm = p(0)
4126- rap = .5d0*dlog((pm+p(3))/(pm-p(3)))+cm_rap
4127+ if (pm.gt.abs(p(3))) then
4128+ rap = .5d0*dlog((pm+p(3))/(pm-p(3)))+cm_rap
4129+ else
4130+ rap = -1d99
4131+ endif
4132 end
4133 DOUBLE PRECISION FUNCTION rap2(p)
4134 c************************************************************************
4135
4136=== added file 'Template/LO/Source/lhe_event_infos.inc'
4137--- Template/LO/Source/lhe_event_infos.inc 1970-01-01 00:00:00 +0000
4138+++ Template/LO/Source/lhe_event_infos.inc 2016-11-23 08:16:42 +0000
4139@@ -0,0 +1,16 @@
4140+ integer jpart(7,-nexternal+3:2*nexternal-3)
4141+ double precision pb(0:4,-nexternal+3:2*nexternal-3)
4142+ integer isym(nexternal,99),jsym, npart
4143+ double precision sscale,aaqcd,aaqed
4144+ character*1000 buff
4145+ character*(s_bufflen) s_buff(7)
4146+ integer nclus
4147+ character*(clus_bufflen) buffclus(nexternal)
4148+ character*(maxEventLength) event_record
4149+ logical AlreadySetInBiasModule
4150+
4151+ common/to_lhe_event_info/jpart,pb,s_buff,buff,nclus,buffclus,event_record,
4152+ & sscale,aaqcd,aaqed,isym,jsym,npart,AlreadySetInBiasModule
4153+
4154+ integer ngroup
4155+ common/to_group/ngroup
4156
4157=== modified file 'Template/LO/Source/make_opts'
4158--- Template/LO/Source/make_opts 2014-06-03 07:42:21 +0000
4159+++ Template/LO/Source/make_opts 2016-11-23 08:16:42 +0000
4160@@ -1,59 +1,103 @@
4161-# Environment variables
4162-
4163+DEFAULT_F2PY_COMPILER=f2py
4164+DEFAULT_F_COMPILER=gfortran
4165+MACFLAG=-mmacosx-version-min=10.7
4166+DEFAULT_CPP_COMPILER=clang
4167+MG5AMC_VERSION=SpecifiedByMG5aMCAtRunTime
4168+STDLIB=-lc++
4169+PYTHIA8_PATH=NotInstalled
4170+STDLIB_FLAG=-stdlib=libc++
4171+#end_of_make_opts_variables
4172+
4173+BIASLIBDIR=../../../lib/
4174+BIASLIBRARY=libbias.$(libext)
4175+
4176+# Rest of the makefile
4177 ifeq ($(origin FFLAGS),undefined)
4178- FFLAGS= -O -w -fbounds-check -fPIC
4179- #FFLAGS+= -g -fbounds-check -ffpe-trap=invalid,zero,overflow,underflow,denormal -Wall
4180-endif
4181+FFLAGS= -O -w -fbounds-check -fPIC
4182+#FFLAGS+= -g -fbounds-check -ffpe-trap=invalid,zero,overflow,underflow,denormal -Wall
4183+endif
4184+
4185+
4186+# REMOVE MACFLAG IF NOT ON MAC OR FOR F2PY
4187+UNAME := $(shell uname -s)
4188+ifdef f2pymode
4189+MACFLAG=
4190+else
4191+ifneq ($(UNAME), Darwin)
4192+MACFLAG=
4193+endif
4194+endif
4195+
4196+
4197+ifeq ($(origin CXXFLAGS),undefined)
4198+CXXFLAGS= -O $(STDLIB_FLAG) $(MACFLAG)
4199+endif
4200+
4201+ifeq ($(origin CFLAGS),undefined)
4202+CFLAGS= -O $(STDLIB_FLAG) $(MACFLAG)
4203+endif
4204+
4205+# Increase the number of allowed charcters in a Fortran line
4206 FFLAGS+= -ffixed-line-length-132
4207
4208 # Set FC unless it's defined by an environment variable
4209 ifeq ($(origin FC),default)
4210-# FC=gfortran
4211- FC=gfortran
4212+FC=$(DEFAULT_F_COMPILER)
4213+endif
4214+ifeq ($(origin F2PY), undefined)
4215+F2PY=$(DEFAULT_F2PY_COMPILER)
4216+endif
4217+
4218+UNAME := $(shell uname -s)
4219+ifeq ($(origin LDFLAGS), undefined)
4220+LDFLAGS=$(STDLIB) $(MACFLAG)
4221 endif
4222
4223 # Options: dynamic, lhapdf
4224-
4225-UNAME := $(shell uname)
4226-
4227 # Option dynamic
4228
4229 ifeq ($(UNAME), Darwin)
4230- dylibext=dylib
4231+dylibext=dylib
4232 else
4233- dylibext=so
4234+dylibext=so
4235 endif
4236
4237 ifdef dynamic
4238- ifeq ($(UNAME), Darwin)
4239- libext=dylib
4240- FFLAGS+= -fno-common
4241- LDFLAGS += -bundle
4242- define CREATELIB
4243- $(FC) -dynamiclib -undefined dynamic_lookup -o $(1) $(2)
4244- endef
4245- else
4246- libext=so
4247- FFLAGS+= -fPIC
4248- LDFLAGS += -shared
4249- define CREATELIB
4250- $(FC) $(FFLAGS) $(LDFLAGS) -o $(1) $(2)
4251- endef
4252- endif
4253-else
4254- libext=a
4255- define CREATELIB
4256- $(AR) cru $(1) $(2)
4257- ranlib $(1)
4258- endef
4259+ifeq ($(UNAME), Darwin)
4260+libext=dylib
4261+FFLAGS+= -fno-common
4262+LDFLAGS += -bundle
4263+define CREATELIB
4264+$(FC) -dynamiclib -undefined dynamic_lookup -o $(1) $(2)
4265+endef
4266+else
4267+libext=so
4268+FFLAGS+= -fPIC
4269+LDFLAGS += -shared
4270+define CREATELIB
4271+$(FC) $(FFLAGS) $(LDFLAGS) -o $(1) $(2)
4272+endef
4273+endif
4274+else
4275+libext=a
4276+define CREATELIB
4277+$(AR) cru $(1) $(2)
4278+ranlib $(1)
4279+endef
4280 endif
4281
4282 # Option lhapdf
4283
4284-ifdef lhapdf
4285- alfas_functions=alfas_functions_lhapdf
4286- lhapdf=-lLHAPDF -lstdc++
4287+ifneq ($(lhapdf),)
4288+CXXFLAGS += $(shell $(lhapdf) --cppflags)
4289+alfas_functions=alfas_functions_lhapdf
4290+llhapdf+= -lLHAPDF
4291 else
4292- alfas_functions=alfas_functions
4293- lhapdf=
4294+alfas_functions=alfas_functions
4295+llhapdf=
4296 endif
4297+
4298+# Helper function to check MG5 version
4299+define CHECK_MG5AMC_VERSION
4300+python -c 'import re; from distutils.version import StrictVersion; print StrictVersion("$(MG5AMC_VERSION)") >= StrictVersion("$(1)") if re.match("^[\d\.]+$$","$(MG5AMC_VERSION)") else True;'
4301+endef
4302\ No newline at end of file
4303
4304=== modified file 'Template/LO/Source/run.inc'
4305--- Template/LO/Source/run.inc 2015-04-02 22:56:24 +0000
4306+++ Template/LO/Source/run.inc 2016-11-23 08:16:42 +0000
4307@@ -63,3 +63,11 @@
4308 C
4309 logical MC_grouped_subproc
4310 common/to_MC_grouped_subproc/MC_grouped_subproc
4311+
4312+C
4313+C Controls what are the PDGs included in the CKKWl merging procedure, i.e. what
4314+C are the PDGs subject to the ktdurham cut
4315+C
4316+ integer pdgs_for_merging_cut(0:1000)
4317+ common/TO_MERGE/pdgs_for_merging_cut
4318+
4319
4320=== modified file 'Template/LO/Source/rw_events.f'
4321--- Template/LO/Source/rw_events.f 2014-10-07 13:31:57 +0000
4322+++ Template/LO/Source/rw_events.f 2016-11-23 08:16:42 +0000
4323@@ -30,7 +30,6 @@
4324 character*(s_bufflen) s_buff(*)
4325 integer nclus
4326 character*(clus_bufflen) buffclus(*)
4327-
4328 c
4329 c Local
4330 c
4331@@ -46,6 +45,10 @@
4332
4333 data lun_ban/37/
4334 data banner_open/.false./
4335+
4336+ double precision bias_weight
4337+ logical impact_xsec
4338+ common/bias/bias_weight,impact_xsec
4339 c-----
4340 c Begin Code
4341 c-----
4342@@ -80,6 +83,21 @@
4343 buff=''
4344 endif
4345 endif
4346+
4347+c Reading the bias weight (if present)
4348+ read(lun,'(a300)',end=99,err=99) buftmp
4349+ if(buftmp(1:6).ne.'<rwgt>') then
4350+ backspace(lun)
4351+ bias_weight = 1.0d0
4352+ else
4353+ do while(buftmp(1:7).ne.'</rwgt>')
4354+ read(lun,'(a300)',end=99,err=99) buftmp
4355+ if (buftmp(1:16).eq."<wgt id='bias'> ") then
4356+ read(buftmp(17:31),'(1e15.7)') bias_weight
4357+ endif
4358+ enddo
4359+ endif
4360+
4361 c Systematics info
4362 read(lun,'(a)',end=99,err=99) s_buff(1)
4363 if(s_buff(1).ne.'<mgrwt>') then
4364@@ -114,9 +132,103 @@
4365 55 format(i3,5e19.11)
4366 end
4367
4368+ subroutine write_event_to_stream(evt_record,P,wgt,nexternal,ic,
4369+ & ievent,scale,aqcd, aqed,buff,u_syst,s_buff,nclus,buffclus)
4370+c********************************************************************
4371+C This an *exact* copy of write_event, except that it writes it
4372+C to a character array argument as opposed to an I/O stream.
4373+c********************************************************************
4374+ implicit none
4375+
4376+ include 'maxparticles.inc'
4377+ include 'run_config.inc'
4378+c
4379+c parameters
4380+c
4381+ double precision pi
4382+ parameter (pi = 3.1415926d0)
4383+c
4384+c Arguments
4385+c
4386+ character*(maxEventLength) evt_record
4387+ integer ievent
4388+ integer nexternal, ic(7,*)
4389+ double precision P(0:4,*),wgt
4390+ double precision aqcd, aqed, scale
4391+ character*1000 buff
4392+ logical u_syst
4393+ character*(s_bufflen) s_buff(*)
4394+ integer nclus
4395+ character*(clus_bufflen) buffclus(*)
4396+c
4397+c Local
4398+c
4399+ integer i,j,k
4400+ character*(maxEventLength) largeBuff
4401+c
4402+c Global
4403+c
4404+ double precision bias_weight
4405+ logical impact_xsec
4406+ common/bias/bias_weight,impact_xsec
4407+
4408+c-----
4409+c Begin Code
4410+c-----
4411+c aqed= gal(1)*gal(1)/4d0/pi
4412+c aqcd = g*g/4d0/pi
4413+ write(largeBuff,'(a)') '<event>'
4414+ evt_record=trim(evt_record)//trim(largeBuff)
4415+ write(largeBuff,'(i2,i4,e16.7e3,3e15.7)') nexternal,ievent,wgt,scale,
4416+ $ aqed,aqcd
4417+ evt_record=trim(evt_record)//CHAR(13)//CHAR(10)//trim(largeBuff)
4418+ do i=1,nexternal
4419+ write(largeBuff,51) ic(1,i),ic(6,i),(ic(j,i),j=2,5),
4420+ $ (p(j,i),j=1,3),p(0,i),p(4,i),0.,real(ic(7,i))
4421+ evt_record=trim(evt_record)//CHAR(13)//CHAR(10)//trim(largeBuff)
4422+ enddo
4423+ if(buff(1:7).eq.'<scales') then
4424+ write(largeBuff,'(a)') buff(1:len_trim(buff))
4425+ evt_record=trim(evt_record)//CHAR(13)//CHAR(10)//trim(largeBuff)
4426+ endif
4427+ if(buff(1:1).eq.'#') then
4428+ write(largeBuff,'(a)') buff(1:len_trim(buff))
4429+ evt_record=trim(evt_record)//CHAR(13)//CHAR(10)//trim(largeBuff)
4430+ endif
4431+ if(.not.impact_xsec) then
4432+ write(largeBuff,'(a)') '<rwgt>'
4433+ evt_record=trim(evt_record)//CHAR(13)//CHAR(10)//trim(largeBuff)
4434+ write(largeBuff,'(a16,1e15.7,a6)') "<wgt id='bias'> ",
4435+ $ bias_weight,"</wgt>"
4436+ evt_record=trim(evt_record)//CHAR(13)//CHAR(10)//trim(largeBuff)
4437+ write(largeBuff,'(a)') '</rwgt>'
4438+ evt_record=trim(evt_record)//CHAR(13)//CHAR(10)//trim(largeBuff)
4439+ endif
4440+ if(u_syst)then
4441+ do i=1,7
4442+ write(largeBuff,'(a)') s_buff(i)(1:len_trim(s_buff(i)))
4443+ evt_record=trim(evt_record)//CHAR(13)//CHAR(10)//trim(largeBuff)
4444+ enddo
4445+ endif
4446+ do i=1,nclus
4447+ write(largeBuff,'(a)') buffclus(i)(1:len_trim(buffclus(i)))
4448+ evt_record=trim(evt_record)//CHAR(13)//CHAR(10)//trim(largeBuff)
4449+ enddo
4450+ write(largeBuff,'(a)') '</event>'
4451+ evt_record=trim(evt_record)//CHAR(13)//CHAR(10)//trim(largeBuff)
4452+ return
4453+ 51 format(i9,5i5,5e19.11,f3.0,f4.0)
4454+ end
4455+
4456+
4457 subroutine write_event(lun,P,wgt,nexternal,ic,ievent,scale,aqcd,
4458 $ aqed,buff,u_syst,s_buff,nclus,buffclus)
4459 c********************************************************************
4460+c
4461+c /!\ When making changes to this subroutine, make sure to accordingly
4462+c update write_event_to_stream
4463+c
4464+c********************************************************************
4465 c Writes one event from data file #lun according to LesHouches
4466 c ic(1,*) = Particle ID
4467 c ic(2.*) = Mothup(1)
4468@@ -154,6 +266,9 @@
4469 c
4470 c Global
4471 c
4472+ double precision bias_weight
4473+ logical impact_xsec
4474+ common/bias/bias_weight,impact_xsec
4475
4476 c-----
4477 c Begin Code
4478@@ -162,13 +277,20 @@
4479 c aqcd = g*g/4d0/pi
4480
4481 write(lun,'(a)') '<event>'
4482- write(lun,'(i2,i4,4e15.7)') nexternal,ievent,wgt,scale,aqed,aqcd
4483+ write(lun,'(i2,i4,e16.7e3,3e15.7)') nexternal,ievent,wgt,scale,aqed,aqcd
4484+ write(*,'(i2,i4,e15.7e3,3e15.7)') nexternal,ievent,wgt,scale,aqed,aqcd
4485 do i=1,nexternal
4486 write(lun,51) ic(1,i),ic(6,i),(ic(j,i),j=2,5),
4487 $ (p(j,i),j=1,3),p(0,i),p(4,i),0.,real(ic(7,i))
4488 enddo
4489 if(buff(1:7).eq.'<scales') write(lun,'(a)') buff(1:len_trim(buff))
4490- if(buff(1:1).eq.'#') write(lun,'(a)') buff(1:len_trim(buff))
4491+ if(buff(1:1).eq.'#') write(lun,'(a)') buff(1:len_trim(buff))
4492+ if(.not.impact_xsec) then
4493+ write(lun,'(a)') '<rwgt>'
4494+ write(lun,'(a16,1e15.7,a6)') "<wgt id='bias'> ",bias_weight,
4495+ $ "</wgt>"
4496+ write(lun,'(a)') '</rwgt>'
4497+ endif
4498 if(u_syst)then
4499 do i=1,7
4500 write(lun,'(a)') s_buff(i)(1:len_trim(s_buff(i)))
4501
4502=== modified file 'Template/LO/Source/setrun.f'
4503--- Template/LO/Source/setrun.f 2015-04-09 01:31:09 +0000
4504+++ Template/LO/Source/setrun.f 2016-11-23 08:16:42 +0000
4505@@ -199,7 +199,7 @@
4506 $ 10042,
4507 $ 246800,
4508 $ 247000,
4509- $ 244600/
4510+ $ 244800/
4511
4512
4513 if(pdfin.eq."lhapdf") then
4514
4515=== modified file 'Template/LO/SubProcesses/cuts.f'
4516--- Template/LO/SubProcesses/cuts.f 2015-04-07 22:51:03 +0000
4517+++ Template/LO/SubProcesses/cuts.f 2016-11-23 08:16:42 +0000
4518@@ -1,1316 +1,1750 @@
4519- logical function pass_point(p)
4520-c************************************************************************
4521-c This function is called from sample to see if it needs to
4522-c bother calculating the weight from all the different conficurations
4523-c You can either just return true, or have it call passcuts
4524-c************************************************************************
4525- implicit none
4526-c
4527-c Arguments
4528-c
4529- double precision p
4530-c
4531-c External
4532-c
4533- logical passcuts
4534- external passcuts
4535-c-----
4536-c Begin Code
4537-c-----
4538- pass_point = .true.
4539-c pass_point = passcuts(p)
4540- end
4541-C
4542- LOGICAL FUNCTION PASSCUTS(P)
4543-C**************************************************************************
4544-C INPUT:
4545-C P(0:3,1) MOMENTUM OF INCOMING PARTON
4546-C P(0:3,2) MOMENTUM OF INCOMING PARTON
4547-C P(0:3,3) MOMENTUM OF ...
4548-C ALL MOMENTA ARE IN THE REST FRAME!!
4549-C COMMON/JETCUTS/ CUTS ON JETS
4550-C OUTPUT:
4551-C TRUE IF EVENTS PASSES ALL CUTS LISTED
4552-C**************************************************************************
4553- IMPLICIT NONE
4554-c
4555-c Constants
4556-c
4557- include 'genps.inc'
4558- include 'nexternal.inc'
4559-C
4560-C ARGUMENTS
4561-C
4562- REAL*8 P(0:3,nexternal)
4563-
4564-C
4565-C LOCAL
4566-C
4567- LOGICAL FIRSTTIME,FIRSTTIME2,pass_bw,notgood,good,foundheavy
4568- LOGICAL DEBUG
4569- integer i,j,njets,nheavyjets,nleptons,hardj1,hardj2
4570- REAL*8 XVAR,ptmax1,ptmax2,htj,tmp,inclht
4571- real*8 ptemp(0:3), ptemp2(0:3)
4572- character*20 formstr
4573-C
4574-C PARAMETERS
4575-C
4576- real*8 PI
4577- parameter( PI = 3.14159265358979323846d0 )
4578-C
4579-C EXTERNAL
4580-C
4581- REAL*8 R2,DOT,ET,RAP,DJ,SumDot,pt,ALPHAS,PtDot
4582- logical cut_bw,setclscales
4583- external R2,DOT,ET,RAP,DJ,SumDot,pt,ALPHAS,cut_bw,setclscales,PtDot
4584-C
4585-C GLOBAL
4586-C
4587- include 'run.inc'
4588- include 'cuts.inc'
4589-
4590- double precision ptjet(nexternal)
4591- double precision ptheavyjet(nexternal)
4592- double precision ptlepton(nexternal)
4593- double precision temp
4594-
4595-C VARIABLES TO SPECIFY JETS
4596- DOUBLE PRECISION PJET(NEXTERNAL,0:3)
4597- DOUBLE PRECISION PTMIN
4598- DOUBLE PRECISION PT1,PT2
4599- INTEGER K,J1,J2
4600-
4601-C VARIABLES FOR KT CUT
4602- DOUBLE PRECISION PTNOW,COSTH,PABS1,PABS2
4603- DOUBLE PRECISION ETA1,ETA2,COSH_DETA,COS_DPHI,KT1SQ,KT2SQ, DPHI
4604-
4605- double precision etmin(nincoming+1:nexternal),etamax(nincoming+1:nexternal)
4606- double precision emin(nincoming+1:nexternal)
4607- double precision r2min(nincoming+1:nexternal,nincoming+1:nexternal)
4608- double precision s_min(nexternal,nexternal)
4609- double precision etmax(nincoming+1:nexternal),etamin(nincoming+1:nexternal)
4610- double precision emax(nincoming+1:nexternal)
4611- double precision r2max(nincoming+1:nexternal,nincoming+1:nexternal)
4612- double precision s_max(nexternal,nexternal)
4613- double precision ptll_min(nexternal,nexternal),ptll_max(nexternal,nexternal)
4614- double precision inclHtmin,inclHtmax
4615- common/to_cuts/ etmin, emin, etamax, r2min, s_min,
4616- $ etmax, emax, etamin, r2max, s_max, ptll_min, ptll_max, inclHtmin,inclHtmax
4617-
4618- double precision ptjmin4(4),ptjmax4(4),htjmin4(2:4),htjmax4(2:4)
4619- logical jetor
4620- common/to_jet_cuts/ ptjmin4,ptjmax4,htjmin4,htjmax4,jetor
4621-
4622- double precision ptlmin4(4),ptlmax4(4)
4623- common/to_lepton_cuts/ ptlmin4,ptlmax4
4624-
4625-c
4626-c Special cuts
4627-c
4628-
4629- integer lbw(0:nexternal) !Use of B.W.
4630- common /to_BW/ lbw
4631-C
4632-C SPECIAL CUTS
4633-C
4634- LOGICAL IS_A_J(NEXTERNAL),IS_A_L(NEXTERNAL)
4635- LOGICAL IS_A_B(NEXTERNAL),IS_A_A(NEXTERNAL),IS_A_ONIUM(NEXTERNAL)
4636- LOGICAL IS_A_NU(NEXTERNAL),IS_HEAVY(NEXTERNAL)
4637- COMMON /TO_SPECISA/IS_A_J,IS_A_A,IS_A_L,IS_A_B,IS_A_NU,IS_HEAVY,
4638- . IS_A_ONIUM
4639-C
4640-C Keep track of whether cuts already calculated for this event
4641-C
4642- LOGICAL CUTSDONE,CUTSPASSED
4643- COMMON/TO_CUTSDONE/CUTSDONE,CUTSPASSED
4644- DATA CUTSDONE,CUTSPASSED/.FALSE.,.FALSE./
4645-
4646-C $B$ MW_NEW_DEF $E$ !this is a tag for MadWeight
4647-
4648- double precision xqcutij(nexternal,nexternal),xqcuti(nexternal)
4649- common/to_xqcuts/xqcutij,xqcuti
4650-
4651-c jet cluster algorithm
4652- integer nQCD !,NJET,JET(nexternal)
4653-c double precision plab(0:3, nexternal)
4654- double precision pQCD(0:3,nexternal)!,PJET(0:3,nexternal)
4655-c double precision rfj,sycut,palg,fastjetdmerge
4656-c integer njet_eta
4657-c Photon isolation
4658- integer nph,nem,nin
4659- double precision ptg,chi_gamma_iso,iso_getdrv40
4660- double precision Etsum(0:nexternal)
4661- real drlist(nexternal)
4662- double precision pgamma(0:3,nexternal),pem(0:3,nexternal)
4663- logical alliso
4664-C Sort array of results: ismode>0 for real, isway=0 for ascending order
4665- integer ismode,isway,izero,isorted(nexternal)
4666- parameter (ismode=1)
4667- parameter (isway=0)
4668- parameter (izero=0)
4669-
4670- include 'coupl.inc'
4671-C
4672-C
4673-c
4674- DATA FIRSTTIME,FIRSTTIME2/.TRUE.,.TRUE./
4675-
4676-c put momenta in common block for couplings.f
4677- double precision pp(0:3,max_particles)
4678- common /momenta_pp/pp
4679-
4680- DATA DEBUG/.FALSE./
4681-
4682-C-----
4683-C BEGIN CODE
4684-C-----
4685-
4686-
4687-
4688- PASSCUTS=.TRUE. !EVENT IS OK UNLESS OTHERWISE CHANGED
4689- IF (FIRSTTIME) THEN
4690- FIRSTTIME=.FALSE.
4691-c Preparation for reweighting by setting up clustering by diagrams
4692- call initcluster()
4693-c
4694-c
4695- write(formstr,'(a,i2.2,a)')'(a10,',nexternal,'i8)'
4696- write(*,formstr) 'Particle',(i,i=nincoming+1,nexternal)
4697- write(formstr,'(a,i2.2,a)')'(a10,',nexternal,'f8.1)'
4698- write(*,formstr) 'Et >',(etmin(i),i=nincoming+1,nexternal)
4699- write(*,formstr) 'E >',(emin(i),i=nincoming+1,nexternal)
4700- write(*,formstr) 'Eta <',(etamax(i),i=nincoming+1,nexternal)
4701- write(*,formstr) 'xqcut: ',(xqcuti(i),i=nincoming+1,nexternal)
4702- write(formstr,'(a,i2.2,a)')'(a,i2,a,',nexternal,'f8.1)'
4703- do j=nincoming+1,nexternal-1
4704- write(*,formstr) 'd R #',j,' >',(-0.0,i=nincoming+1,j),
4705- & (r2min(i,j),i=j+1,nexternal)
4706- do i=j+1,nexternal
4707- r2min(i,j)=r2min(i,j)*dabs(r2min(i,j)) !Since r2 returns distance squared
4708- r2max(i,j)=r2max(i,j)*dabs(r2max(i,j))
4709- enddo
4710- enddo
4711- do j=nincoming+1,nexternal-1
4712- write(*,formstr) 's min #',j,'>',
4713- & (s_min(i,j),i=nincoming+1,nexternal)
4714- enddo
4715- do j=nincoming+1,nexternal-1
4716- write(*,formstr) 'xqcutij #',j,'>',
4717- & (xqcutij(i,j),i=nincoming+1,nexternal)
4718- enddo
4719-
4720-cc
4721-cc Set the strong coupling
4722-cc
4723-c call set_ren_scale(P,scale)
4724-c
4725-cc Check that the user funtions for setting the scales
4726-cc have been edited if the choice of an event-by-event
4727-cc scale choice has been made
4728-c
4729-c if(.not.fixed_ren_scale) then
4730-c if(scale.eq.0d0) then
4731-c write(6,*)
4732-c write(6,*) '* >>>>>>>>>ERROR<<<<<<<<<<<<<<<<<<<<<<<*'
4733-c write(6,*) ' Dynamical renormalization scale choice '
4734-c write(6,*) ' selected but user subroutine'
4735-c write(6,*) ' set_ren_scale not edited in file:setpara.f'
4736-c write(6,*) ' Switching to a fixed_ren_scale choice'
4737-c write(6,*) ' with scale=zmass'
4738-c scale=91.2d0
4739-c write(6,*) 'scale=',scale
4740-c fixed_ren_scale=.true.
4741-c call set_ren_scale(P,scale)
4742-c endif
4743-c endif
4744-
4745-c if(.not.fixed_fac_scale) then
4746-c call set_fac_scale(P,q2fact)
4747-c if(q2fact(1).eq.0d0.or.q2fact(2).eq.0d0) then
4748-c write(6,*)
4749-c write(6,*) '* >>>>>>>>>ERROR<<<<<<<<<<<<<<<<<<<<<<<*'
4750-c write(6,*) ' Dynamical renormalization scale choice '
4751-c write(6,*) ' selected but user subroutine'
4752-c write(6,*) ' set_fac_scale not edited in file:setpara.f'
4753-c write(6,*) ' Switching to a fixed_fac_scale choice'
4754-c write(6,*) ' with q2fact(i)=zmass**2'
4755-c fixed_fac_scale=.true.
4756-c q2fact(1)=91.2d0**2
4757-c q2fact(2)=91.2d0**2
4758-c write(6,*) 'scales=',q2fact(1),q2fact(2)
4759-c endif
4760-c endif
4761-
4762- if(fixed_ren_scale) then
4763- G = SQRT(4d0*PI*ALPHAS(scale))
4764- call update_as_param()
4765- endif
4766-
4767-c Put momenta in the common block to zero to start
4768- do i=0,3
4769- do j=1,max_particles
4770- pp(i,j) = 0d0
4771- enddo
4772- enddo
4773-
4774- ENDIF ! IF FIRSTTIME
4775-
4776- IF (CUTSDONE) THEN
4777- PASSCUTS=CUTSPASSED
4778- RETURN
4779- ENDIF
4780- CUTSDONE=.TRUE.
4781-c CUTSPASSED=.FALSE.
4782-
4783-c
4784-c Make sure have reasonable 4-momenta
4785-c
4786- if (p(0,1) .le. 0d0) then
4787- passcuts=.false.
4788- return
4789- endif
4790-
4791-c Also make sure there's no INF or NAN
4792- do i=1,nexternal
4793- do j=0,3
4794- if(p(j,i).gt.1d32.or.p(j,i).ne.p(j,i))then
4795- passcuts=.false.
4796- return
4797- endif
4798- enddo
4799- enddo
4800-
4801-c
4802-c Limit S_hat
4803-c
4804-c if (x1*x2*stot .gt. 500**2) then
4805-c passcuts=.false.
4806-c return
4807-c endif
4808-
4809-C $B$ DESACTIVATE_CUT $E$ !This is a tag for MadWeight
4810-
4811- if(debug) write (*,*) '============================='
4812- if(debug) write (*,*) ' EVENT STARTS TO BE CHECKED '
4813- if(debug) write (*,*) '============================='
4814-c
4815-c p_t min & max cuts
4816-c
4817- do i=nincoming+1,nexternal
4818- if(debug) write (*,*) 'pt(',i,')=',pt(p(0,i)),' ',etmin(i),
4819- $ ':',etmax(i)
4820- notgood=(pt(p(0,i)) .lt. etmin(i)).or.
4821- & (etmax(i).ge.0d0.and.pt(p(0,i)) .gt. etmax(i))
4822- if (notgood) then
4823- if(debug) write (*,*) i,' -> fails'
4824- passcuts=.false.
4825- return
4826- endif
4827- enddo
4828-c
4829-c missing ET min & max cut + Invariant mass of leptons and neutrino
4830-c nb: missing Et defined as the vector sum over the neutrino's pt
4831-c
4832-c-- reset ptemp(0:3)
4833- do j=0,3
4834- ptemp(j)=0 ! for the neutrino
4835- ptemp2(j)=0 ! for the leptons
4836- enddo
4837-c- sum over the momenta
4838- do i=nincoming+1,nexternal
4839- if(is_a_nu(i)) then
4840- if(debug) write (*,*) i,' -> neutrino '
4841- do j=0,3
4842- ptemp(j)=ptemp(j)+p(j,i)
4843- enddo
4844- elseif(is_a_l(i)) then
4845- if(debug) write (*,*) i,' -> lepton '
4846- do j=0,3
4847- ptemp2(j)=ptemp2(j)+p(j,i)
4848- enddo
4849- endif
4850-
4851- enddo
4852-c- check the et
4853- if(debug.and.ptemp(0).eq.0d0) write (*,*) 'No et miss in event'
4854- if(debug.and.ptemp(0).gt.0d0) write (*,*) 'Et miss =',pt(ptemp(0)),' ',misset,':',missetmax
4855- if(debug.and.ptemp2(0).eq.0d0) write (*,*) 'No leptons in event'
4856- if(debug.and.ptemp(0).gt.0d0) write (*,*) 'Energy of leptons =',pt(ptemp2(0))
4857- if(ptemp(0).gt.0d0) then
4858- notgood=(pt(ptemp(0)) .lt. misset).or.
4859- & (missetmax.ge.0d0.and.pt(ptemp(0)) .gt. missetmax)
4860- if (notgood) then
4861- if(debug) write (*,*) ' missing et cut -> fails'
4862- passcuts=.false.
4863- return
4864- endif
4865- endif
4866- if (mmnl.gt.0d0.or.mmnlmax.ge.0d0)then
4867- if(dsqrt(SumDot(ptemp,ptemp2,1d0)).lt.mmnl.or.mmnlmax.ge.0d0.and.dsqrt(SumDot(ptemp, ptemp2,1d0)).gt.mmnlmax) then
4868- if(debug) write (*,*) 'lepton invariant mass -> fails'
4869- passcuts=.false.
4870- return
4871- endif
4872- endif
4873-c
4874-c pt cut on heavy particles
4875-c gives min(pt) for (at least) one heavy particle
4876-c
4877- if(ptheavy.gt.0d0)then
4878- passcuts=.false.
4879- foundheavy=.false.
4880- do i=nincoming+1,nexternal
4881- if(is_heavy(i)) then
4882- if(debug) write (*,*) i,' -> heavy '
4883- foundheavy=.true.
4884- if(pt(p(0,i)).gt.ptheavy) passcuts=.true.
4885- endif
4886- enddo
4887-
4888- if(.not.passcuts.and.foundheavy)then
4889- if(debug) write (*,*) ' heavy particle cut -> fails'
4890- return
4891- else
4892- passcuts=.true.
4893- endif
4894- endif
4895-c
4896-c E min & max cuts
4897-c
4898- do i=nincoming+1,nexternal
4899- if(debug) write (*,*) 'p(0,',i,')=',p(0,i),' ',emin(i),':',emax(i)
4900- notgood=(p(0,i) .le. emin(i)).or.
4901- & (emax(i).ge.0d0 .and. p(0,i) .gt. emax(i))
4902- if (notgood) then
4903- if(debug) write (*,*) i,' -> fails'
4904- passcuts=.false.
4905- return
4906- endif
4907- enddo
4908-c
4909-c Rapidity min & max cuts
4910-c
4911- do i=nincoming+1,nexternal
4912- if(debug) write (*,*) 'abs(rap(',i,'))=',abs(rap(p(0,i))),' ',etamin(i),':',etamax(i)
4913- notgood=(etamax(i).ge.0.and.abs(rap(p(0,i))) .gt. etamax(i)).or.
4914- & (abs(rap(p(0,i))) .lt. etamin(i))
4915- if (notgood) then
4916- if(debug) write (*,*) i,' -> fails'
4917- passcuts=.false.
4918- return
4919- endif
4920- enddo
4921-c
4922-c DeltaR min & max cuts
4923-c
4924- do i=nincoming+1,nexternal-1
4925- do j=i+1,nexternal
4926- if(debug) write (*,*) 'r2(',i, ',' ,j,')=',dsqrt(r2(p(0,i),p(0,j)))
4927- if(debug) write (*,*) dsqrt(r2min(j,i)),dsqrt(r2max(j,i))
4928- if(r2min(j,i).gt.0.or.r2max(j,i).ge.0d0) then
4929- tmp=r2(p(0,i),p(0,j))
4930- notgood=(tmp .lt. r2min(j,i)).or.
4931- $ (r2max(j,i).ge.0d0 .and. tmp .gt. r2max(j,i))
4932- if (notgood) then
4933- if(debug) write (*,*) i,j,' -> fails'
4934- passcuts=.false.
4935- return
4936- endif
4937- endif
4938- enddo
4939- enddo
4940-
4941-
4942-c s-channel min & max pt of sum of 4-momenta
4943-c
4944- do i=nincoming+1,nexternal-1
4945- do j=i+1,nexternal
4946- if(debug)write (*,*) 'ptll(',i,',',j,')=',PtDot(p(0,i),p(0,j))
4947- if(debug)write (*,*) ptll_min(j,i),ptll_max(j,i)
4948- if(ptll_min(j,i).gt.0.or.ptll_max(j,i).ge.0d0) then
4949- tmp=PtDot(p(0,i),p(0,j))
4950- notgood=(tmp .lt. ptll_min(j,i).or.
4951- $ ptll_max(j,i).ge.0d0 .and. tmp.gt.ptll_max(j,i))
4952- if (notgood) then
4953- if(debug) write (*,*) i,j,' -> fails'
4954- passcuts=.false.
4955- return
4956- endif
4957- endif
4958- enddo
4959- enddo
4960-
4961-
4962-
4963-
4964-c
4965-c s-channel min & max invariant mass cuts
4966-c
4967- do i=nincoming+1,nexternal-1
4968- do j=i+1,nexternal
4969- if(debug) write (*,*) 's(',i,',',j,')=',Sumdot(p(0,i),p(0,j),+1d0)
4970- if(debug) write (*,*) s_min(j,i),s_max(j,i)
4971- if(s_min(j,i).gt.0.or.s_max(j,i).ge.0d0) then
4972- tmp=SumDot(p(0,i),p(0,j),+1d0)
4973- if(s_min(j,i).le.s_max(j,i) .or. s_max(j,i).lt.0d0)then
4974- notgood=(tmp .lt. s_min(j,i).or.
4975- $ s_max(j,i).ge.0d0 .and. tmp .gt. s_max(j,i))
4976- if (notgood) then
4977- if(debug) write (*,*) i,j,' -> fails'
4978- passcuts=.false.
4979- return
4980- endif
4981- else
4982- notgood=(tmp .lt. s_min(j,i).and.tmp .gt. s_max(j,i))
4983- if (notgood) then
4984- if(debug) write (*,*) i,j,' -> fails'
4985- passcuts=.false.
4986- return
4987- endif
4988- endif
4989- endif
4990- enddo
4991- enddo
4992-C $B$DESACTIVATE_BW_CUT$B$ This is a Tag for MadWeight
4993-c
4994-c B.W. phase space cuts
4995-c
4996- pass_bw=cut_bw(p)
4997-c JA 4/8/11 always check pass_bw
4998- if ( pass_bw.and..not.CUTSPASSED) then
4999- passcuts=.false.
5000- if(debug) write (*,*) ' pass_bw -> fails'
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: