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
=== modified file 'MadSpin/__init__.py' (properties changed: -x to +x)
=== modified file 'MadSpin/decay.py'
--- MadSpin/decay.py 2015-05-22 16:18:38 +0000
+++ MadSpin/decay.py 2016-11-23 08:16:42 +0000
@@ -64,7 +64,7 @@
64from madgraph import MG5DIR, MadGraph5Error64from madgraph import MG5DIR, MadGraph5Error
65import madgraph.various.misc as misc65import madgraph.various.misc as misc
66#import time66#import time
67import tests.parallel_tests.test_aloha as test_aloha67
6868
69class MadSpinError(MadGraph5Error):69class MadSpinError(MadGraph5Error):
70 pass70 pass
@@ -111,16 +111,16 @@
111 # change the wgt associate to the additional weight111 # change the wgt associate to the additional weight
112 start, stop = self.rwgt.find('<rwgt>'), self.rwgt.find('</rwgt>')112 start, stop = self.rwgt.find('<rwgt>'), self.rwgt.find('</rwgt>')
113 if start != -1 != stop :113 if start != -1 != stop :
114 pattern = re.compile(r'''<\s*wgt id=\'(?P<id>[^\']+)\'\s*>\s*(?P<val>[\ded+-.]*)\s*</wgt>''')114 pattern = re.compile(r'''<\s*wgt id=[\'\"](?P<id>[^\'\"]+)[\'\"]\s*>\s*(?P<val>[\ded+-.]*)\s*</wgt>''')
115 data = pattern.findall(self.rwgt)115 data = pattern.findall(self.rwgt)
116 if len(data)==0:
117 print self.rwgt
116 try:118 try:
117 text = ''.join(' <wgt id=\'%s\'> %+15.7e </wgt>\n' % (pid, float(value) * factor)119 text = ''.join(' <wgt id=\'%s\'> %+15.7e </wgt>\n' % (pid, float(value) * factor)
118 for (pid,value) in data) 120 for (pid,value) in data)
119 except ValueError, error:121 except ValueError, error:
120 raise Exception, 'Event File has unvalid weight. %s' % error122 raise Exception, 'Event File has unvalid weight. %s' % error
121 self.rwgt = self.rwgt[:start] + '<rwgt>\n'+ text + self.rwgt[stop:]123 self.rwgt = self.rwgt[:start] + '<rwgt>\n'+ text + self.rwgt[stop:]
122
123
124124
125 def string_event_compact(self):125 def string_event_compact(self):
126 """ return a string with the momenta of the event written 126 """ return a string with the momenta of the event written
@@ -906,7 +906,7 @@
906 if init[0] in self.banner.param_card['decay'].decay_table:906 if init[0] in self.banner.param_card['decay'].decay_table:
907 br *= self.banner.param_card['decay'].decay_table[init[0]].get(lhaid).value907 br *= self.banner.param_card['decay'].decay_table[init[0]].get(lhaid).value
908 br *= self.get_br(decay)908 br *= self.get_br(decay)
909 else:909 elif -init[0] in self.banner.param_card['decay'].decay_table:
910 init = -init[0]910 init = -init[0]
911 lhaid=[x if self.model.get_particle(x)['self_antipart'] else -x911 lhaid=[x if self.model.get_particle(x)['self_antipart'] else -x
912 for x in final]912 for x in final]
@@ -914,6 +914,13 @@
914 lhaid = tuple([len(final)] + lhaid)914 lhaid = tuple([len(final)] + lhaid)
915 br *= self.banner.param_card['decay'].decay_table[init].get(lhaid).value915 br *= self.banner.param_card['decay'].decay_table[init].get(lhaid).value
916 br *= self.get_br(decay)916 br *= self.get_br(decay)
917 elif init[0] not in self.decay_ids and -init[0] not in self.decay_ids:
918 logger.warning("No Branching ratio applied for %s. Please check if this is expected" % init[0])
919 br *= self.get_br(decay)
920 else:
921 raise MadGraph5Error,"No valid decay for %s. No 2 body decay for that particle. (three body are not supported by MadSpin)" % init[0]
922
923
917924
918 for decays in ids.values():925 for decays in ids.values():
919 if len(decays) == 1:926 if len(decays) == 1:
@@ -929,7 +936,7 @@
929 except ValueError:936 except ValueError:
930 break937 break
931 br /= math.factorial(nb)938 br /= math.factorial(nb)
932939
933 return br940 return br
934941
935 942
@@ -1013,7 +1020,7 @@
1013 self[tag]['decaying'] = tuple(decaying)1020 self[tag]['decaying'] = tuple(decaying)
1014 1021
1015 # sanity check1022 # sanity check
1016 assert self[tag]['total_br'] <= 1.01, self[tag]['total_br']1023 assert self[tag]['total_br'] <= 1.01, "wrong BR for %s: %s " % (tag,self[tag]['total_br'])
10171024
10181025
1019 1026
@@ -1217,6 +1224,7 @@
1217 'P%s' % me.get('processes')[0].shell_string())1224 'P%s' % me.get('processes')[0].shell_string())
1218 topo['decays'] = []1225 topo['decays'] = []
1219 topo['total_br'] = 0 1226 topo['total_br'] = 0
1227 topo['Pid'] = proc.get('id')
1220 1228
1221 if skip:1229 if skip:
1222 self.add_me_symmetric(skip, topo)1230 self.add_me_symmetric(skip, topo)
@@ -1629,7 +1637,7 @@
1629 (' '.join([str(i) for i in opts['particles']]),1637 (' '.join([str(i) for i in opts['particles']]),
1630 ' '.join('--%s=%s' % (key,value) for (key,value) in opts.items()1638 ' '.join('--%s=%s' % (key,value) for (key,value) in opts.items()
1631 if key not in ['model', 'force', 'particles'] and value))1639 if key not in ['model', 'force', 'particles'] and value))
1632 cmd.exec_cmd('import model %s' % model.get('name'))1640 cmd.exec_cmd('import model %s' % model.get('modelpath+restriction'))
1633# cmd._curr_model = model1641# cmd._curr_model = model
1634# cmd._curr_fortran_model = helas_call_writers.FortranUFOHelasCallWriter(model)1642# cmd._curr_fortran_model = helas_call_writers.FortranUFOHelasCallWriter(model)
1635 cmd.exec_cmd(line)1643 cmd.exec_cmd(line)
@@ -1742,7 +1750,7 @@
17421750
1743 return finalfound1751 return finalfound
1744 1752
1745 1753
1746 def reorder_branch(self,branch):1754 def reorder_branch(self,branch):
1747 """ branch is a string with the definition of a decay chain1755 """ branch is a string with the definition of a decay chain
1748 If branch contains " A > B C , B > ... " 1756 If branch contains " A > B C , B > ... "
@@ -1757,19 +1765,31 @@
1757 if list_branch[index]==' ' or list_branch[index]=='': del list_branch[index]1765 if list_branch[index]==' ' or list_branch[index]=='': del list_branch[index]
1758 #print list_branch1766 #print list_branch
1759 for index, item in enumerate(list_branch):1767 for index, item in enumerate(list_branch):
1760 if item =="," and list_branch[index+1]!="(":
1761 if list_branch[index-2]==list_branch[index+1]:
1762 # swap the two particles before the comma:
1763 temp=list_branch[index-2]
1764 list_branch[index-2]=list_branch[index-1]
1765 list_branch[index-1]=temp
1766 if item =="," and list_branch[index+1]=="(":
1767 if list_branch[index-2]==list_branch[index+2]:
1768 # swap the two particles before the comma:
1769 temp=list_branch[index-2]
1770 list_branch[index-2]=list_branch[index-1]
1771 list_branch[index-1]=temp
17721768
1769 if item[-1] =="," and list_branch[index+1]!="(":
1770 # search pos of B and C
1771 counter=1
1772 while 1:
1773 if list_branch[index-counter].find("=")<0:
1774 break
1775 counter+=1
1776 if list_branch[index-counter-1]==list_branch[index+1]:
1777 # swap the two particles before the comma:
1778 temp=list_branch[index-counter-1]
1779 list_branch[index-counter-1]=list_branch[index-counter]
1780 list_branch[index-counter]=temp
1781 if item[-1] =="," and list_branch[index+1]=="(":
1782 # search pos of B and C
1783 counter=1
1784 while 1:
1785 if list_branch[index-counter].find("=")<0:
1786 break
1787 counter+=1
1788 if list_branch[index-counter -1]==list_branch[index+2]:
1789 # swap the two particles before the comma:
1790 temp=list_branch[index-counter-1]
1791 list_branch[index-counter-1]=list_branch[index-counter]
1792 list_branch[index-counter]=temp
17731793
1774 new_branch=""1794 new_branch=""
1775 for item in list_branch:1795 for item in list_branch:
@@ -1777,7 +1797,6 @@
17771797
1778 return new_branch, list_branch[0]1798 return new_branch, list_branch[0]
17791799
1780
1781 def set_light_parton_massless(self,topo):1800 def set_light_parton_massless(self,topo):
1782 """ masses of light partons are set to zero for 1801 """ masses of light partons are set to zero for
1783 the evaluation of the matrix elements1802 the evaluation of the matrix elements
@@ -2097,7 +2116,8 @@
2097 # launch the decay and reweighting2116 # launch the decay and reweighting
2098 self.mscmd.update_status('MadSpin: Decaying Events')2117 self.mscmd.update_status('MadSpin: Decaying Events')
2099 efficiency = self.decaying_events(self.inverted_decay_mapping)2118 efficiency = self.decaying_events(self.inverted_decay_mapping)
2100 if efficiency != 1:2119 self.efficiency = efficiency
2120 if efficiency != 1 and any(v==-1 for v in self.br_per_id.values()):
2101 # need to change the banner information [nb_event/cross section]2121 # need to change the banner information [nb_event/cross section]
2102 files.cp(self.outputfile.name, '%s_tmp' % self.outputfile.name)2122 files.cp(self.outputfile.name, '%s_tmp' % self.outputfile.name)
2103 self.outputfile = open(self.outputfile.name, 'w')2123 self.outputfile = open(self.outputfile.name, 'w')
@@ -2398,7 +2418,13 @@
2398 self.curr_event.particle[part_for_curr_evt]['momentum']=ext_mom[prod2full[part-1]-1]2418 self.curr_event.particle[part_for_curr_evt]['momentum']=ext_mom[prod2full[part-1]-1]
2399 self.curr_event.particle[part_for_curr_evt]['helicity']=helicities[prod2full[part-1]-1]2419 self.curr_event.particle[part_for_curr_evt]['helicity']=helicities[prod2full[part-1]-1]
2400 if not use_mc_masses or abs(pid) not in self.MC_masses:2420 if not use_mc_masses or abs(pid) not in self.MC_masses:
2401 self.curr_event.particle[part_for_curr_evt]['mass']=self.banner.get('param_card','mass', abs(pid)).value2421 try:
2422 self.curr_event.particle[part_for_curr_evt]['mass']=self.banner.get('param_card','mass', abs(pid)).value
2423 except KeyError:
2424 if self.model.get_particle(abs(pid)).get('mass').lower() == 'zero':
2425 self.curr_event.particle[part_for_curr_evt]['mass'] = 0
2426 else:
2427 raise
2402 else:2428 else:
2403 self.curr_event.particle[part_for_curr_evt]['mass']=self.MC_masses[abs(pid)]2429 self.curr_event.particle[part_for_curr_evt]['mass']=self.MC_masses[abs(pid)]
24042430
@@ -2589,7 +2615,7 @@
2589 2615
25902616
2591 @misc.mute_logger()2617 @misc.mute_logger()
2592 @test_aloha.set_global()2618 @misc.set_global()
2593 def generate_all_matrix_element(self):2619 def generate_all_matrix_element(self):
2594 """generate the full series of matrix element needed by Madspin.2620 """generate the full series of matrix element needed by Madspin.
2595 i.e. the undecayed and the decay one. And associate those to the 2621 i.e. the undecayed and the decay one. And associate those to the
@@ -2627,14 +2653,23 @@
2627 if re.search('^\s*add\s+process', line)]2653 if re.search('^\s*add\s+process', line)]
2628 2654
2629 mgcmd = self.mgcmd2655 mgcmd = self.mgcmd
2630 modelpath = self.model.get('modelpath')2656 modelpath = self.model.get('modelpath+restriction')
2631 if os.path.basename(modelpath) != mgcmd._curr_model['name']:2657
2632 name, restrict = mgcmd._curr_model['name'].rsplit('-',1)2658 commandline="import model %s" % modelpath
2633 if os.path.exists(pjoin(os.path.dirname(modelpath),name, 'restrict_%s.dat' % restrict)):2659 if not self.model.mg5_name:
2634 modelpath = pjoin(os.path.dirname(modelpath), mgcmd._curr_model['name'])2660 commandline += ' --modelname'
2635 2661
2636 commandline="import model %s " % modelpath
2637 mgcmd.exec_cmd(commandline)2662 mgcmd.exec_cmd(commandline)
2663 # Handle the multiparticle of the banner
2664 #for name, definition in self.mscmd.multiparticles:
2665 if hasattr(self.mscmd, 'multiparticles_ms'):
2666 for name, pdgs in self.mscmd.multiparticles_ms.items():
2667 if name == 'all':
2668 continue
2669 #self.banner.get('proc_card').get('multiparticles'):
2670 mgcmd.do_define("%s = %s" % (name, ' '.join(`i` for i in pdgs)))
2671
2672
2638 mgcmd.exec_cmd("set group_subprocesses False")2673 mgcmd.exec_cmd("set group_subprocesses False")
26392674
2640 logger.info('generating the production square matrix element')2675 logger.info('generating the production square matrix element')
@@ -2651,9 +2686,13 @@
2651 proc_nb = '@ %i' % proc_nb 2686 proc_nb = '@ %i' % proc_nb
2652 else:2687 else:
2653 proc_nb = ''2688 proc_nb = ''
2689
2690 if ',' in proc:
2691 raise MadSpinError, 'MadSpin can not decay event which comes from a decay chain.'+\
2692 '\n The full decay chain should either be handle by MadGraph or by Masdspin.'
2654 2693
2655 if '[' not in proc:2694 if '[' not in proc:
2656 commandline+="add process %s --no_warning=duplicate;" % proc2695 commandline+="add process %s %s --no_warning=duplicate;" % (proc, proc_nb)
2657 else:2696 else:
2658 process, order, final = re.split('\[\s*(.*)\s*\]', proc)2697 process, order, final = re.split('\[\s*(.*)\s*\]', proc)
2659 commandline+="add process %s %s --no_warning=duplicate;" % (process, proc_nb)2698 commandline+="add process %s %s --no_warning=duplicate;" % (process, proc_nb)
@@ -2685,6 +2724,7 @@
2685 commandline +='add process %s pert_%s %s --no_warning=duplicate;' % (process,order, proc_nb) 2724 commandline +='add process %s pert_%s %s --no_warning=duplicate;' % (process,order, proc_nb)
2686 commandline = commandline.replace('add process', 'generate',1)2725 commandline = commandline.replace('add process', 'generate',1)
2687 logger.info(commandline)2726 logger.info(commandline)
2727
2688 mgcmd.exec_cmd(commandline, precmd=True)2728 mgcmd.exec_cmd(commandline, precmd=True)
2689 commandline = 'output standalone_msP %s %s' % \2729 commandline = 'output standalone_msP %s %s' % \
2690 (pjoin(path_me,'production_me'), ' '.join(self.list_branches.keys())) 2730 (pjoin(path_me,'production_me'), ' '.join(self.list_branches.keys()))
@@ -3072,7 +3112,7 @@
30723112
3073 3113
3074 probe_weight = []3114 probe_weight = []
3075 3115
30763116
3077 starttime = time.time()3117 starttime = time.time()
3078 ev = -13118 ev = -1
@@ -3110,6 +3150,7 @@
3110 atleastonedecay=False3150 atleastonedecay=False
3111 for decay in self.all_ME[production_tag]['decays']:3151 for decay in self.all_ME[production_tag]['decays']:
3112 tag = decay['decay_tag']3152 tag = decay['decay_tag']
3153
3113 if decay_mapping and not tag in decay_mapping:3154 if decay_mapping and not tag in decay_mapping:
3114 continue3155 continue
3115 if not tag:3156 if not tag:
@@ -3123,10 +3164,11 @@
3123 else:3164 else:
3124 max_decay[tag] = weight3165 max_decay[tag] = weight
3125 #print weight, max_decay[name]3166 #print weight, max_decay[name]
3126 #raise Exception 3167 #raise Exception
3168
3127 if not atleastonedecay:3169 if not atleastonedecay:
3128 # NO decay [one possibility is all decay are identical to their particle]3170 # NO decay [one possibility is all decay are identical to their particle]
3129 logger.info('No independent decay for one type of final states -> skip those events')3171 logger.info('No independent decay for one type of final states -> skip those events for the maximum weight computation')
3130 nb_decay[decaying] = numberev3172 nb_decay[decaying] = numberev
3131 ev += numberev -13173 ev += numberev -1
3132 continue3174 continue
@@ -3198,14 +3240,16 @@
3198 logger.debug('Decay channel %s :Using maximum weight %s (BR: %s)' % \3240 logger.debug('Decay channel %s :Using maximum weight %s (BR: %s)' % \
3199 (','.join(associated_decay), max_weight, br/nb_finals)) 3241 (','.join(associated_decay), max_weight, br/nb_finals))
32003242
3201 if __debug__: 3243# if __debug__:
3202 # check that all decay have a max_weight and fix it if not the case.3244 # check that all decay have a max_weight and fix it if not the case.
3203 for prod in self.all_ME.values():3245 for prod in self.all_ME.values():
3204 for dec in prod['decays']:3246 for dec in prod['decays']:
3205 if dec['decay_tag']: 3247 if dec['decay_tag'] and not 'max_weight' in dec:
3206 assert 'max_weight' in dec and dec['max_weight'] ,\3248 dec['max_weight'] = 0.
3207 'fail for %s (%s)' % (str(dec['decay_tag']), \3249
3208 os.path.basename(prod['path']))3250# assert 'max_weight' in dec and dec['max_weight'] ,\
3251# 'fail for %s (%s)' % (str(dec['decay_tag']), \
3252# os.path.basename(prod['path']))
3209 self.evtfile.seek(0)3253 self.evtfile.seek(0)
3210 return3254 return
32113255
@@ -3255,7 +3299,7 @@
32553299
3256 return max_weight3300 return max_weight
3257 3301
3258 def loadfortran(self, mode, path, stdin_text):3302 def loadfortran(self, mode, path, stdin_text, first=True):
3259 """ call the fortran executable """3303 """ call the fortran executable """
32603304
3261 tmpdir = ''3305 tmpdir = ''
@@ -3272,8 +3316,18 @@
3272 self.calculator[('full',path,)] = external 3316 self.calculator[('full',path,)] = external
3273 self.calculator_nbcall[('full',path)] = 1 3317 self.calculator_nbcall[('full',path)] = 1
32743318
3275 external.stdin.write(stdin_text)3319 try:
3276 3320 external.stdin.write(stdin_text)
3321 except IOError:
3322 if not first:
3323 raise
3324 try:
3325 external.terminate()
3326 except:
3327 pass
3328 del self.calculator[('full',path,)]
3329 return self.loadfortran(mode, path, stdin_text, first=False)
3330
3277 if mode == 'maxweight':3331 if mode == 'maxweight':
3278 maxweight=float(external.stdout.readline())3332 maxweight=float(external.stdout.readline())
3279 output = maxweight3333 output = maxweight
@@ -3649,6 +3703,45 @@
3649 d1colup1=maxcol3703 d1colup1=maxcol
3650 d2colup2=maxcol3704 d2colup2=maxcol
3651 d2colup1=03705 d2colup1=0
3706 elif colord1==-3 and colord2==-3 and colormother == 3:
3707 maxcol+=2
3708 d1colup1=0
3709 d1colup2=maxcol
3710 d2colup1=0
3711 d2colup2=maxcol-1
3712 elif (colord1==-3 and colord2==3 and colormother == 3) or\
3713 (colord1==-3 and colord2==3 and colormother == -3):
3714 maxcol+=2
3715 d1colup1 = 0
3716 d1colup2 = maxcol
3717 d2colup1 = maxcol-1
3718 d2colup2 = 0
3719 elif (colord1==3 and colord2==-3 and colormother == 3) or\
3720 (colord1==3 and colord2==-3 and colormother == -3):
3721 maxcol+=2
3722 d1colup1=maxcol
3723 d1colup2=0
3724 d2colup1=0
3725 d2colup2=maxcol-1
3726 elif colord1==3 and colord2==3 and colormother == -3:
3727 maxcol+=2
3728 d1colup1=maxcol
3729 d1colup2=0
3730 d2colup1=maxcol-1
3731 d2colup2=0
3732 elif colord2==8 and colord1==8 and colormother ==8:
3733 maxcol+=1
3734 ran = random.random()
3735 if ran> 0.5:
3736 d1colup2=colup2
3737 d1colup1=maxcol
3738 d2colup2=maxcol
3739 d2colup1=colup1
3740 else:
3741 d1colup2=maxcol
3742 d1colup1=colup1
3743 d2colup2=colup2
3744 d2colup1=maxcol
3652 else:3745 else:
3653 raise Exception, 'color combination not treated by MadSpin (yet). (%s,%s,%s)' \3746 raise Exception, 'color combination not treated by MadSpin (yet). (%s,%s,%s)' \
3654 % (colord1,colord2,colormother)3747 % (colord1,colord2,colormother)
@@ -3785,16 +3878,24 @@
3785 ms_banner = ""3878 ms_banner = ""
3786 cross_section = True # tell if possible to write the cross-section in advance3879 cross_section = True # tell if possible to write the cross-section in advance
3787 total_br = []3880 total_br = []
3881 self.br_per_id = {}
3788 for production in self.all_ME.values():3882 for production in self.all_ME.values():
3789 one_br = 03883 one_br = 0
3884 partial_br = 0
3790 for decay in production['decays']:3885 for decay in production['decays']:
3791 if not decay['decay_tag']:3886 if not decay['decay_tag']:
3792 cross_section = False3887 cross_section = False
3793 one_br += decay['br']3888 one_br += decay['br']
3794 continue3889 continue
3890 partial_br += decay['br']
3795 ms_banner += "# %s\n" % ','.join(decay['decay_tag']).replace('\n',' ')3891 ms_banner += "# %s\n" % ','.join(decay['decay_tag']).replace('\n',' ')
3796 ms_banner += "# BR: %s\n# max_weight: %s\n" % (decay['br'], decay['max_weight'])3892 ms_banner += "# BR: %s\n# max_weight: %s\n" % (decay['br'], decay['max_weight'])
3797 one_br += decay['br']3893 one_br += decay['br']
3894
3895 if production['Pid'] not in self.br_per_id:
3896 self.br_per_id[production['Pid']] = partial_br
3897 elif self.br_per_id[production['Pid']] != partial_br:
3898 self.br_per_id[production['Pid']] = -1
3798 total_br.append(one_br)3899 total_br.append(one_br)
3799 3900
3800 if __debug__:3901 if __debug__:
@@ -3802,7 +3903,6 @@
3802 assert production['total_br'] - min(total_br) < 1e-43903 assert production['total_br'] - min(total_br) < 1e-4
3803 3904
3804 self.branching_ratio = max(total_br) * eff3905 self.branching_ratio = max(total_br) * eff
3805
3806 #self.banner['madspin'] += ms_banner3906 #self.banner['madspin'] += ms_banner
3807 # Update cross-section in the banner3907 # Update cross-section in the banner
3808 if 'mggenerationinfo' in self.banner:3908 if 'mggenerationinfo' in self.banner:
@@ -3833,18 +3933,36 @@
3833 mg_info[i] = '%s : %s' % (info, value * self.branching_ratio)3933 mg_info[i] = '%s : %s' % (info, value * self.branching_ratio)
3834 self.banner['mggenerationinfo'] = '\n'.join(mg_info)3934 self.banner['mggenerationinfo'] = '\n'.join(mg_info)
3835 3935
3836 3936 self.cross = 0
3837 3937 self.error = 0
3838 if 'init' in self.banner:3938 if 'init' in self.banner and (eff!=1 or not any(v==-1 for v in self.br_per_id.values())):
3839 new_init =''3939 new_init =''
3940 curr_proc = 0
3941 has_missing=False
3840 for line in self.banner['init'].split('\n'):3942 for line in self.banner['init'].split('\n'):
3841 if len(line.split()) != 4:3943 if len(line.split()) != 4:
3842 new_init += '%s\n' % line3944 new_init += '%s\n' % line
3843 else:3945 else:
3946 curr_proc += 1
3844 data = [float(nb) for nb in line.split()]3947 data = [float(nb) for nb in line.split()]
3845 data[:3] = [ data[i] * self.branching_ratio for i in range(3)]3948 id = int(data[-1])
3949 if id in self.br_per_id and not any(v==-1 for v in self.br_per_id.values()):
3950 data[:3] = [data[i] * self.br_per_id[id] for i in range(3)]
3951 else:
3952 data[:3] = [ data[i] * self.branching_ratio for i in range(3)]
3953 has_missing=True
3846 new_init += ' %.12E %.12E %.12E %i\n' % tuple(data)3954 new_init += ' %.12E %.12E %.12E %i\n' % tuple(data)
3955 cross, error = [float(d) for d in data[:2]]
3956 self.cross += cross
3957 self.error += error**2
3958
3959
3847 self.banner['init'] = new_init3960 self.banner['init'] = new_init
3961 self.error = math.sqrt(self.error)
3962 if has_missing and curr_proc not in [0,1]:
3963 logger.warning('''The partial cross section for each subprocess can not be determine. due
3964 Reason: multiple final state in the same subprocess (and the presence of multiple BR)
3965 Consequence: the <init> information of the lhe will therefore be incorrect. Please correct it if needed.''')
3848 self.banner.write(self.outputfile, close_tag=False) 3966 self.banner.write(self.outputfile, close_tag=False)
3849 3967
3850 def terminate_fortran_executables(self, path_to_decay=0 ):3968 def terminate_fortran_executables(self, path_to_decay=0 ):
38513969
=== modified file 'MadSpin/interface_madspin.py' (properties changed: -x to +x)
--- MadSpin/interface_madspin.py 2015-08-04 14:28:22 +0000
+++ MadSpin/interface_madspin.py 2016-11-23 08:16:42 +0000
@@ -32,8 +32,10 @@
32import madgraph.interface.extended_cmd as extended_cmd32import madgraph.interface.extended_cmd as extended_cmd
33import madgraph.interface.madgraph_interface as mg_interface33import madgraph.interface.madgraph_interface as mg_interface
34import madgraph.interface.master_interface as master_interface34import madgraph.interface.master_interface as master_interface
35import madgraph.interface.madevent_interface as madevent_interface
35import madgraph.various.misc as misc36import madgraph.various.misc as misc
36import madgraph.iolibs.files as files37import madgraph.iolibs.files as files
38import madgraph.iolibs.export_v4 as export_v4
37import madgraph.various.banner as banner39import madgraph.various.banner as banner
38import madgraph.various.lhe_parser as lhe_parser40import madgraph.various.lhe_parser as lhe_parser
3941
@@ -176,7 +178,13 @@
176 logger.info("process: %s" % process)178 logger.info("process: %s" % process)
177 logger.info("options: %s" % option)179 logger.info("options: %s" % option)
178180
179181 if not hasattr(self,'multiparticles_ms'):
182 for key, value in self.banner.get_detail('proc_card','multiparticles'):
183 try:
184 self.do_define('%s = %s' % (key, value))
185 except self.mg5cmd.InvalidCmd:
186 pass
187
180 # Read the final state of the production process:188 # Read the final state of the production process:
181 # "_full" means with the complete decay chain syntax 189 # "_full" means with the complete decay chain syntax
182 # "_compact" means without the decay chain syntax 190 # "_compact" means without the decay chain syntax
@@ -201,12 +209,13 @@
201 mg_names = True209 mg_names = True
202 model_name = self.banner.get('proc_card', 'model')210 model_name = self.banner.get('proc_card', 'model')
203 if model_name:211 if model_name:
212 model_name = os.path.expanduser(model_name)
204 self.load_model(model_name, mg_names, complex_mass)213 self.load_model(model_name, mg_names, complex_mass)
205 else:214 else:
206 raise self.InvalidCmd('Only UFO model can be loaded in MadSpin.')215 raise self.InvalidCmd('Only UFO model can be loaded in MadSpin.')
207
208 # check particle which can be decayed:216 # check particle which can be decayed:
209 self.final_state = set()217 self.final_state = set()
218 final_model = False
210 for line in self.banner.proc_card:219 for line in self.banner.proc_card:
211 line = ' '.join(line.strip().split())220 line = ' '.join(line.strip().split())
212 if line.startswith('generate'):221 if line.startswith('generate'):
@@ -214,30 +223,50 @@
214 elif line.startswith('add process'):223 elif line.startswith('add process'):
215 self.final_state.update(self.mg5cmd.get_final_part(line[11:]))224 self.final_state.update(self.mg5cmd.get_final_part(line[11:]))
216 elif line.startswith('define'):225 elif line.startswith('define'):
217 self.mg5cmd.exec_cmd(line, printcmd=False, precmd=False, postcmd=False) 226 try:
227 self.mg5cmd.exec_cmd(line, printcmd=False, precmd=False, postcmd=False)
228 except self.mg5cmd.InvalidCmd:
229 if final_model:
230 raise
231 else:
232 key = line.split()[1]
233 if key in self.multiparticles_ms:
234 del self.multiparticles_ms[key]
218 elif line.startswith('set'):235 elif line.startswith('set'):
219 self.mg5cmd.exec_cmd(line, printcmd=False, precmd=False, postcmd=False)236 self.mg5cmd.exec_cmd(line, printcmd=False, precmd=False, postcmd=False)
237 elif line.startswith('import model'):
238 if model_name in line:
239 final_model = True
220 240
221 241
222 242
223 def import_model(self, args):243 def import_model(self, args):
224 """syntax: import model NAME CARD_PATH244 """syntax: import model NAME CARD_PATH
225 args didn't include import model"""245 args didn't include import model"""
226 246
227 bypass_check = False247 bypass_check = False
228 if '--bypass_check' in args:248 if '--bypass_check' in args:
229 args.remove('--bypass_check')249 args.remove('--bypass_check')
230 bypass_check = True250 bypass_check = True
231 251
232 if len(args) != 2: 252 if len(args) == 1:
253 logger.warning("""No param_card defined for the new model. We will use the default one but this might completely wrong.""")
254 elif len(args) != 2:
233 return self.InvalidCmd, 'import model requires two arguments'255 return self.InvalidCmd, 'import model requires two arguments'
234 256
235 model_name = args[0]257 model_name = args[0]
236 card = args[1]
237 if not os.path.exists(card):
238 raise self.InvalidCmd('%s: no such file' % card)
239
240 self.load_model(model_name, False, False)258 self.load_model(model_name, False, False)
259
260 if len(args) == 2:
261 card = args[1]
262 if not os.path.exists(card):
263 raise self.InvalidCmd('%s: no such file' % card)
264 else:
265 card = "madspin_param_card.dat"
266 export_v4.UFO_model_to_mg4.create_param_card_static(self.model,
267 card, rule_card_path=None)
268
269
241270
242 #Check the param_card271 #Check the param_card
243 if not bypass_check:272 if not bypass_check:
@@ -255,11 +284,15 @@
255 if diff:284 if diff:
256 raise self.InvalidCmd('''Original param_card differs on some parameters:285 raise self.InvalidCmd('''Original param_card differs on some parameters:
257 %s286 %s
258 Due to those preferences, we prefer not to proceed. If you are sure about what you are doing, 287 Due to those differences, we prefer not to proceed. If you are sure about what you are doing,
259 you can use the command \'import model MODELNAME PARAM_CARD_PATH --bypass_check\''''288 you can use the command \'import model MODELNAME PARAM_CARD_PATH --bypass_check\''''
260 % diff.replace('\n','\n '))289 % diff.replace('\n','\n '))
290
291
261 292
262 #OK load the new param_card293 #OK load the new param_card (but back up the old one)
294 if 'slha' in self.banner:
295 self.banner['slha_original'] = self.banner['slha']
263 self.banner['slha'] = open(card).read()296 self.banner['slha'] = open(card).read()
264 if hasattr(self.banner, 'param_card'):297 if hasattr(self.banner, 'param_card'):
265 del self.banner.param_card298 del self.banner.param_card
@@ -359,12 +392,14 @@
359 args = self.split_arg(line)392 args = self.split_arg(line)
360 self.check_set(args)393 self.check_set(args)
361 394
395 if args[0] not in ['ms_dir', 'run_card']:
396 args[1] = args[1].lower()
397
362 if args[0] in ['max_weight', 'BW_effect','ms_dir', 'spinmode']:398 if args[0] in ['max_weight', 'BW_effect','ms_dir', 'spinmode']:
363 self.options[args[0]] = args[1]399 self.options[args[0]] = args[1]
364 if args[0] == 'ms_dir':400 if args[0] == 'ms_dir':
365 self.options['curr_dir'] = self.options['ms_dir']401 self.options['curr_dir'] = self.options['ms_dir']
366 elif args[0] == 'seed':402 elif args[0] == 'seed':
367 import random
368 random.seed(int(args[1]))403 random.seed(int(args[1]))
369 self.seed = int(args[1])404 self.seed = int(args[1])
370 elif args[0] == 'BW_cut':405 elif args[0] == 'BW_cut':
@@ -426,7 +461,19 @@
426 461
427 def do_define(self, line):462 def do_define(self, line):
428 """ """463 """ """
429 return self.mg5cmd.do_define(line)464
465 try:
466 self.mg5cmd.exec_cmd('define %s' % line)
467 except:
468 #cleaning if the error is recover later
469 key = line.split()[0]
470 if hasattr(self, 'multiparticles_ms') and key in self.multiparticles_ms:
471 del self.multiparticles_ms[key]
472 raise
473
474 self.multiparticles_ms = dict([(k,list(pdgs)) for k, pdgs in \
475 self.mg5cmd._multiparticles.items()])
476
430 477
431 def update_status(self, *args, **opts):478 def update_status(self, *args, **opts):
432 """ """479 """ """
@@ -500,7 +547,6 @@
500 model_line = self.banner.get('proc_card', 'full_model_line')547 model_line = self.banner.get('proc_card', 'full_model_line')
501548
502 if not self.seed:549 if not self.seed:
503 import random
504 self.seed = random.randint(0, int(30081*30081))550 self.seed = random.randint(0, int(30081*30081))
505 self.do_set('seed %s' % self.seed)551 self.do_set('seed %s' % self.seed)
506 logger.info('Will use seed %s' % self.seed)552 logger.info('Will use seed %s' % self.seed)
@@ -523,6 +569,9 @@
523 generate_all.run()569 generate_all.run()
524 570
525 self.branching_ratio = generate_all.branching_ratio571 self.branching_ratio = generate_all.branching_ratio
572 self.cross = generate_all.cross
573 self.error = generate_all.error
574 self.efficiency = generate_all.efficiency
526 try:575 try:
527 self.err_branching_ratio = generate_all.err_branching_ratio576 self.err_branching_ratio = generate_all.err_branching_ratio
528 except Exception:577 except Exception:
@@ -619,11 +668,15 @@
619 #seed is specified need to use that one:668 #seed is specified need to use that one:
620 open(pjoin(self.options['ms_dir'],'seeds.dat'),'w').write('%s\n'%self.seed)669 open(pjoin(self.options['ms_dir'],'seeds.dat'),'w').write('%s\n'%self.seed)
621 #remove all ranmar_state670 #remove all ranmar_state
622 for name in glob.glob(pjoin(self.options['ms_dir'], '*', 'SubProcesses','*','ranmar_state.dat')):671 for name in misc.glob(pjoin('*', 'SubProcesses','*','ranmar_state.dat'),
672 self.options['ms_dir']):
623 os.remove(name) 673 os.remove(name)
624 674
625 generate_all.ending_run()675 generate_all.ending_run()
626 self.branching_ratio = generate_all.branching_ratio676 self.branching_ratio = generate_all.branching_ratio
677 self.cross = generate_all.cross
678 self.error = generate_all.error
679 self.efficiency = generate_all.efficiency
627 try:680 try:
628 self.err_branching_ratio = generate_all.err_branching_ratio681 self.err_branching_ratio = generate_all.err_branching_ratio
629 except Exception:682 except Exception:
@@ -648,8 +701,7 @@
648 # of event to generate for each type of particle.701 # of event to generate for each type of particle.
649 # 2. Generate the events requested702 # 2. Generate the events requested
650 # 3. perform the merge of the events.703 # 3. perform the merge of the events.
651 # if not enough events. re-generate the missing one.704 # if not enough events. re-generate the missing one.
652
653 # First define an utility function for generating events when needed705 # First define an utility function for generating events when needed
654 def generate_events(pdg, nb_event, mg5, restrict_file=None, cumul=False):706 def generate_events(pdg, nb_event, mg5, restrict_file=None, cumul=False):
655 """generate new events for this particle707 """generate new events for this particle
@@ -679,24 +731,54 @@
679 else:731 else:
680 mg5.exec_cmd("generate %s" % proc)732 mg5.exec_cmd("generate %s" % proc)
681 mg5.exec_cmd("output %s -f" % decay_dir)733 mg5.exec_cmd("output %s -f" % decay_dir)
682 options = dict(mg5.options)734
683 import madgraph.interface.madevent_interface as madevent_interface735 options = dict(mg5.options)
684 me5_cmd = madevent_interface.MadEventCmdShell(me_dir=os.path.realpath(\736 if self.options['ms_dir']:
737 misc.sprint("start gridpack!")
738 # we are in gridpack mode -> create it
739 me5_cmd = madevent_interface.MadEventCmdShell(me_dir=os.path.realpath(\
685 decay_dir), options=options)740 decay_dir), options=options)
686 me5_cmd.options["automatic_html_opening"] = False741 me5_cmd.options["automatic_html_opening"] = False
687 if self.options["run_card"]:742 if self.options["run_card"]:
688 run_card = self.options["run_card"]743 run_card = self.options["run_card"]
744 else:
745 run_card = banner.RunCard(pjoin(decay_dir, "Cards", "run_card.dat"))
746
747 run_card["iseed"] = self.seed
748 run_card['gridpack'] = True
749 run_card.write(pjoin(decay_dir, "Cards", "run_card.dat"))
750 param_card = self.banner['slha']
751 open(pjoin(decay_dir, "Cards", "param_card.dat"),"w").write(param_card)
752 self.seed += 1
753 # actually creation
754 me5_cmd.exec_cmd("generate_events run_01 -f")
755 me5_cmd.exec_cmd("exit")
756 #remove pointless informat
757 misc.call(["rm", "Cards", "bin", 'Source', 'SubProcesses'], cwd=decay_dir)
758 misc.call(['tar', '-xzpvf', 'run_01_gridpack.tar.gz'], cwd=decay_dir)
759
760 # Now generate the events
761
762 if not self.options['ms_dir']:
763 me5_cmd = madevent_interface.MadEventCmdShell(me_dir=os.path.realpath(\
764 decay_dir), options=mg5.options)
765 me5_cmd.options["automatic_html_opening"] = False
766 if self.options["run_card"]:
767 run_card = self.options["run_card"]
768 else:
769 run_card = banner.RunCard(pjoin(decay_dir, "Cards", "run_card.dat"))
770 run_card["nevents"] = int(1.2*nb_event)
771 run_card["iseed"] = self.seed
772 run_card.write(pjoin(decay_dir, "Cards", "run_card.dat"))
773 param_card = self.banner['slha']
774 open(pjoin(decay_dir, "Cards", "param_card.dat"),"w").write(param_card)
775 self.seed += 1
776 me5_cmd.exec_cmd("generate_events run_01 -f")
777 me5_cmd.exec_cmd("exit")
778 out[i] = lhe_parser.EventFile(pjoin(decay_dir, "Events", 'run_01', 'unweighted_events.lhe.gz'))
689 else:779 else:
690 run_card = banner.RunCard(pjoin(decay_dir, "Cards", "run_card.dat"))780 misc.call(['run.sh', str(int(1.2*nb_event)), str(self.seed)], cwd=decay_dir)
691 run_card["nevents"] = int(1.2*nb_event)781 out[i] = lhe_parser.EventFile(pjoin(decay_dir, 'events.lhe.gz'))
692 run_card["iseed"] = self.seed
693 run_card.write(pjoin(decay_dir, "Cards", "run_card.dat"))
694 param_card = self.banner['slha']
695 open(pjoin(decay_dir, "Cards", "param_card.dat"),"w").write(param_card)
696 self.seed += 1
697 me5_cmd.exec_cmd("generate_events run_01 -f")
698 me5_cmd.exec_cmd("exit")
699 out[i] = lhe_parser.EventFile(pjoin(decay_dir, "Events", 'run_01', 'unweighted_events.lhe.gz'))
700 if cumul:782 if cumul:
701 break783 break
702 784
@@ -713,7 +795,7 @@
713 os.mkdir(self.path_me) 795 os.mkdir(self.path_me)
714 else:796 else:
715 # cleaning797 # cleaning
716 for name in glob.glob(pjoin(self.path_me, "decay_*_*")):798 for name in misc.glob("decay_*_*", self.path_me):
717 shutil.rmtree(name)799 shutil.rmtree(name)
718800
719 self.events_file.close()801 self.events_file.close()
@@ -730,7 +812,6 @@
730812
731 # Handle the banner of the output file813 # Handle the banner of the output file
732 if not self.seed:814 if not self.seed:
733 import random
734 self.seed = random.randint(0, int(30081*30081))815 self.seed = random.randint(0, int(30081*30081))
735 self.do_set('seed %s' % self.seed)816 self.do_set('seed %s' % self.seed)
736 logger.info('Will use seed %s' % self.seed)817 logger.info('Will use seed %s' % self.seed)
@@ -749,8 +830,9 @@
749 # 2. Generate the events requested830 # 2. Generate the events requested
750 with misc.MuteLogger(["madgraph", "madevent", "ALOHA", "cmdprint"], [50,50,50,50]):831 with misc.MuteLogger(["madgraph", "madevent", "ALOHA", "cmdprint"], [50,50,50,50]):
751 mg5 = self.mg5cmd832 mg5 = self.mg5cmd
752 modelpath = self.model.get('modelpath')833 if not self.model:
753 mg5.exec_cmd("import model %s" % modelpath) 834 modelpath = self.model.get('modelpath+restriction')
835 mg5.exec_cmd("import model %s" % modelpath)
754 to_event = {}836 to_event = {}
755 for pdg, nb_needed in to_decay.items():837 for pdg, nb_needed in to_decay.items():
756 #check if a splitting is needed838 #check if a splitting is needed
@@ -808,6 +890,12 @@
808 else:890 else:
809 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.")891 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.")
810 self.branching_ratio = br892 self.branching_ratio = br
893 self.efficiency = 1
894 self.cross, self.error = self.banner.get_cross(witherror=True)
895 self.cross *= br
896 self.error *= br
897
898
811 # modify the cross-section in the init block of the banner899 # modify the cross-section in the init block of the banner
812 self.banner.scale_init_cross(self.branching_ratio)900 self.banner.scale_init_cross(self.branching_ratio)
813 901
@@ -852,10 +940,10 @@
852 else:940 else:
853 #need to select the file according to the associate cross-section941 #need to select the file according to the associate cross-section
854 r = random.random()942 r = random.random()
855 tot = sum(events.cross for events in to_event[particle.pdg])943 tot = sum(to_event[particle.pdg][key].cross for key in to_event[particle.pdg])
856 r = r * tot944 r = r * tot
857 cumul = 0945 cumul = 0
858 for j,events in enumerate(to_event[particle.pdg]):946 for j,events in to_event[particle.pdg].items():
859 cumul += events.cross947 cumul += events.cross
860 if r < cumul:948 if r < cumul:
861 decay_file = events949 decay_file = events
@@ -923,17 +1011,15 @@
923 #base_model = import_ufo.import_model(model_path)1011 #base_model = import_ufo.import_model(model_path)
9241012
925 # Import model1013 # Import model
926 base_model = import_ufo.import_model(name, decay=True)1014 base_model = import_ufo.import_model(name, decay=True,
1015 complex_mass_scheme=complex_mass)
9271016
928 if use_mg_default:1017 if use_mg_default:
929 base_model.pass_particles_name_in_mg_default()1018 base_model.pass_particles_name_in_mg_default()
930 if complex_mass:
931 base_model.change_mass_to_complex_scheme()
932 1019
933 self.model = base_model1020 self.model = base_model
934 self.mg5cmd._curr_model = self.model1021 self.mg5cmd._curr_model = self.model
935 self.mg5cmd.process_model()1022 self.mg5cmd.process_model()
936
9371023
938if __name__ == '__main__':1024if __name__ == '__main__':
939 1025
9401026
=== modified file 'MadSpin/src/driver.f'
--- MadSpin/src/driver.f 2015-01-29 14:35:06 +0000
+++ MadSpin/src/driver.f 2016-11-23 08:16:42 +0000
@@ -907,7 +907,7 @@
907 if (index_p2.gt.0) then907 if (index_p2.gt.0) then
908 m2_tchan(i)=m(index_p2)908 m2_tchan(i)=m(index_p2)
909 else909 else
910 write(*,*) 'Warning: m_2^2 is negative in t-channel branching '910 write(*,*) 'Warning: m_2^2 is negative in t-channel branching ',m2_tchan(i)
911 endif911 endif
912 endif912 endif
913 ! extract phi913 ! extract phi
914914
=== added directory 'PLUGIN'
=== added file 'PLUGIN/__init__.py'
=== modified file 'Template/Common/Cards/delphes_card_ATLAS.dat'
--- Template/Common/Cards/delphes_card_ATLAS.dat 2014-05-13 14:23:18 +0000
+++ Template/Common/Cards/delphes_card_ATLAS.dat 2016-11-23 08:16:42 +0000
@@ -10,7 +10,7 @@
10 MuonTrackingEfficiency10 MuonTrackingEfficiency
1111
12 ChargedHadronMomentumSmearing12 ChargedHadronMomentumSmearing
13 ElectronEnergySmearing13 ElectronMomentumSmearing
14 MuonMomentumSmearing14 MuonMomentumSmearing
1515
16 TrackMerger16 TrackMerger
@@ -20,6 +20,7 @@
20 PhotonEfficiency20 PhotonEfficiency
21 PhotonIsolation21 PhotonIsolation
2222
23 ElectronFilter
23 ElectronEfficiency24 ElectronEfficiency
24 ElectronIsolation25 ElectronIsolation
2526
@@ -28,10 +29,15 @@
2829
29 MissingET30 MissingET
3031
32 NeutrinoFilter
31 GenJetFinder33 GenJetFinder
34 GenMissingET
35
32 FastJetFinder36 FastJetFinder
3337
34 JetEnergyScale38 JetEnergyScale
39
40 JetFlavorAssociation
3541
36 BTagging42 BTagging
37 TauTagging43 TauTagging
@@ -75,11 +81,11 @@
75 # add EfficiencyFormula {efficiency formula as a function of eta and pt}81 # add EfficiencyFormula {efficiency formula as a function of eta and pt}
7682
77 # tracking efficiency formula for charged hadrons83 # tracking efficiency formula for charged hadrons
78 set EfficiencyFormula { (pt <= 0.1) * (0.00) + \84 set EfficiencyFormula { (pt <= 0.1) * (0.00) +
79 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.70) + \85 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.70) +
80 (abs(eta) <= 1.5) * (pt > 1.0) * (0.95) + \86 (abs(eta) <= 1.5) * (pt > 1.0) * (0.95) +
81 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.60) + \87 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.60) +
82 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.85) + \88 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.85) +
83 (abs(eta) > 2.5) * (0.00)}89 (abs(eta) > 2.5) * (0.00)}
84}90}
8591
@@ -94,13 +100,13 @@
94 # set EfficiencyFormula {efficiency formula as a function of eta and pt}100 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
95101
96 # tracking efficiency formula for electrons102 # tracking efficiency formula for electrons
97 set EfficiencyFormula { (pt <= 0.1) * (0.00) + \103 set EfficiencyFormula { (pt <= 0.1) * (0.00) +
98 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.73) + \104 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.73) +
99 (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e2) * (0.95) + \105 (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e2) * (0.95) +
100 (abs(eta) <= 1.5) * (pt > 1.0e2) * (0.99) + \106 (abs(eta) <= 1.5) * (pt > 1.0e2) * (0.99) +
101 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.50) + \107 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.50) +
102 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e2) * (0.83) + \108 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e2) * (0.83) +
103 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2) * (0.90) + \109 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2) * (0.90) +
104 (abs(eta) > 2.5) * (0.00)}110 (abs(eta) > 2.5) * (0.00)}
105}111}
106112
@@ -115,11 +121,11 @@
115 # set EfficiencyFormula {efficiency formula as a function of eta and pt}121 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
116122
117 # tracking efficiency formula for muons123 # tracking efficiency formula for muons
118 set EfficiencyFormula { (pt <= 0.1) * (0.00) + \124 set EfficiencyFormula { (pt <= 0.1) * (0.00) +
119 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.75) + \125 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.75) +
120 (abs(eta) <= 1.5) * (pt > 1.0) * (0.99) + \126 (abs(eta) <= 1.5) * (pt > 1.0) * (0.99) +
121 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.70) + \127 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.70) +
122 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.98) + \128 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.98) +
123 (abs(eta) > 2.5) * (0.00)}129 (abs(eta) > 2.5) * (0.00)}
124}130}
125131
@@ -134,31 +140,25 @@
134 # set ResolutionFormula {resolution formula as a function of eta and pt}140 # set ResolutionFormula {resolution formula as a function of eta and pt}
135141
136 # resolution formula for charged hadrons142 # resolution formula for charged hadrons
137 set ResolutionFormula { (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.02) + \143 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.01^2 + pt^2*1.5e-4^2) +
138 (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e1) * (0.01) + \144 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.015^2 + pt^2*2.5e-4^2) +
139 (abs(eta) <= 1.5) * (pt > 1.0e1 && pt <= 2.0e2) * (0.03) + \145 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.025^2 + pt^2*5.5e-4^2)}
140 (abs(eta) <= 1.5) * (pt > 2.0e2) * (0.05) + \
141 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.03) + \
142 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e1) * (0.02) + \
143 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e1 && pt <= 2.0e2) * (0.04) + \
144 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 2.0e2) * (0.05)}
145}146}
146147
147#################################148###################################
148# Energy resolution for electrons149# Momentum resolution for electrons
149#################################150###################################
150151
151module EnergySmearing ElectronEnergySmearing {152module MomentumSmearing ElectronMomentumSmearing {
152 set InputArray ElectronTrackingEfficiency/electrons153 set InputArray ElectronTrackingEfficiency/electrons
153 set OutputArray electrons154 set OutputArray electrons
154155
155 # set ResolutionFormula {resolution formula as a function of eta and energy}156 # set ResolutionFormula {resolution formula as a function of eta and energy}
156157
157 set ResolutionFormula { (abs(eta) <= 2.5) * (energy > 0.1 && energy <= 2.5e1) * (energy*0.015) + \158 # resolution formula for electrons
158 (abs(eta) <= 2.5) * (energy > 2.5e1) * sqrt(energy^2*0.005^2 + energy*0.05^2 + 0.25^2) + \159 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.03^2 + pt^2*1.3e-3^2) +
159 (abs(eta) > 2.5 && abs(eta) <= 3.0) * sqrt(energy^2*0.005^2 + energy*0.05^2 + 0.25^2) + \160 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.05^2 + pt^2*1.7e-3^2) +
160 (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)}161 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.15^2 + pt^2*3.1e-3^2)}
161
162}162}
163163
164###############################164###############################
@@ -170,16 +170,10 @@
170 set OutputArray muons170 set OutputArray muons
171171
172 # set ResolutionFormula {resolution formula as a function of eta and pt}172 # set ResolutionFormula {resolution formula as a function of eta and pt}
173
174 # resolution formula for muons173 # resolution formula for muons
175 set ResolutionFormula { (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.03) + \174 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.01^2 + pt^2*1.0e-4^2) +
176 (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 5.0e1) * (0.03) + \175 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.015^2 + pt^2*1.5e-4^2) +
177 (abs(eta) <= 1.5) * (pt > 5.0e1 && pt <= 1.0e2) * (0.04) + \176 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.025^2 + pt^2*3.5e-4^2)}
178 (abs(eta) <= 1.5) * (pt > 1.0e2) * (0.07) + \
179 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.04) + \
180 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 5.0e1) * (0.04) + \
181 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 5.0e1 && pt <= 1.0e2) * (0.05) + \
182 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2) * (0.10)}
183}177}
184178
185##############179##############
@@ -189,7 +183,7 @@
189module Merger TrackMerger {183module Merger TrackMerger {
190# add InputArray InputArray184# add InputArray InputArray
191 add InputArray ChargedHadronMomentumSmearing/chargedHadrons185 add InputArray ChargedHadronMomentumSmearing/chargedHadrons
192 add InputArray ElectronEnergySmearing/electrons186 add InputArray ElectronMomentumSmearing/electrons
193 add InputArray MuonMomentumSmearing/muons187 add InputArray MuonMomentumSmearing/muons
194 set OutputArray tracks188 set OutputArray tracks
195}189}
@@ -209,6 +203,14 @@
209 set EFlowPhotonOutputArray eflowPhotons203 set EFlowPhotonOutputArray eflowPhotons
210 set EFlowNeutralHadronOutputArray eflowNeutralHadrons204 set EFlowNeutralHadronOutputArray eflowNeutralHadrons
211205
206 set ECalEnergyMin 0.5
207 set HCalEnergyMin 1.0
208
209 set ECalEnergySignificanceMin 1.0
210 set HCalEnergySignificanceMin 1.0
211
212 set SmearTowerCenter true
213
212 set pi [expr {acos(-1)}]214 set pi [expr {acos(-1)}]
213215
214 # lists of the edges of each tower in eta and phi216 # lists of the edges of each tower in eta and phi
@@ -257,15 +259,15 @@
257 # http://arxiv.org/pdf/physics/0608012v1 jinst8_08_s08003259 # http://arxiv.org/pdf/physics/0608012v1 jinst8_08_s08003
258 # http://villaolmo.mib.infn.it/ICATPP9th_2005/Calorimetry/Schram.p.pdf260 # http://villaolmo.mib.infn.it/ICATPP9th_2005/Calorimetry/Schram.p.pdf
259 # http://www.physics.utoronto.ca/~krieger/procs/ComoProceedings.pdf261 # http://www.physics.utoronto.ca/~krieger/procs/ComoProceedings.pdf
260 set ECalResolutionFormula { (abs(eta) <= 3.2) * sqrt(energy^2*0.0017^2 + energy*0.101^2) + \262 set ECalResolutionFormula { (abs(eta) <= 3.2) * sqrt(energy^2*0.0017^2 + energy*0.101^2) +
261 (abs(eta) > 3.2 && abs(eta) <= 4.9) * sqrt(energy^2*0.0350^2 + energy*0.285^2)}263 (abs(eta) > 3.2 && abs(eta) <= 4.9) * sqrt(energy^2*0.0350^2 + energy*0.285^2)}
262264
263 # set HCalResolutionFormula {resolution formula as a function of eta and energy}265 # set HCalResolutionFormula {resolution formula as a function of eta and energy}
264 # http://arxiv.org/pdf/hep-ex/0004009v1266 # http://arxiv.org/pdf/hep-ex/0004009v1
265 # http://villaolmo.mib.infn.it/ICATPP9th_2005/Calorimetry/Schram.p.pdf267 # http://villaolmo.mib.infn.it/ICATPP9th_2005/Calorimetry/Schram.p.pdf
266 set HCalResolutionFormula { (abs(eta) <= 1.7) * sqrt(energy^2*0.0302^2 + energy*0.5205^2 + 1.59^2) + \268 set HCalResolutionFormula { (abs(eta) <= 1.7) * sqrt(energy^2*0.0302^2 + energy*0.5205^2 + 1.59^2) +
267 (abs(eta) > 1.7 && abs(eta) <= 3.2) * sqrt(energy^2*0.0500^2 + energy*0.706^2) + \269 (abs(eta) > 1.7 && abs(eta) <= 3.2) * sqrt(energy^2*0.0500^2 + energy*0.706^2) +
268 (abs(eta) > 3.2 && abs(eta) <= 4.9) * sqrt(energy^2*0.9420^2 + energy*0.075^2)}270 (abs(eta) > 3.2 && abs(eta) <= 4.9) * sqrt(energy^2*0.09420^2 + energy*1.00^2)}
269}271}
270272
271####################273####################
@@ -285,15 +287,15 @@
285###################287###################
286288
287module Efficiency PhotonEfficiency {289module Efficiency PhotonEfficiency {
288 set InputArray Calorimeter/photons290 set InputArray Calorimeter/eflowPhotons
289 set OutputArray photons291 set OutputArray photons
290292
291 # set EfficiencyFormula {efficiency formula as a function of eta and pt}293 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
292294
293 # efficiency formula for photons295 # efficiency formula for photons
294 set EfficiencyFormula { (pt <= 10.0) * (0.00) + \296 set EfficiencyFormula { (pt <= 10.0) * (0.00) +
295 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + \297 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) +
296 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) + \298 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) +
297 (abs(eta) > 2.5) * (0.00)}299 (abs(eta) > 2.5) * (0.00)}
298}300}
299301
@@ -311,7 +313,19 @@
311313
312 set PTMin 0.5314 set PTMin 0.5
313315
314 set PTRatioMax 0.1316 set PTRatioMax 0.12
317}
318
319#################
320# Electron filter
321#################
322
323module PdgCodeFilter ElectronFilter {
324 set InputArray Calorimeter/eflowTracks
325 set OutputArray electrons
326 set Invert true
327 add PdgCode {11}
328 add PdgCode {-11}
315}329}
316330
317#####################331#####################
@@ -319,15 +333,15 @@
319#####################333#####################
320334
321module Efficiency ElectronEfficiency {335module Efficiency ElectronEfficiency {
322 set InputArray ElectronEnergySmearing/electrons336 set InputArray ElectronFilter/electrons
323 set OutputArray electrons337 set OutputArray electrons
324338
325 # set EfficiencyFormula {efficiency formula as a function of eta and pt}339 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
326340
327 # efficiency formula for electrons341 # efficiency formula for electrons
328 set EfficiencyFormula { (pt <= 10.0) * (0.00) + \342 set EfficiencyFormula { (pt <= 10.0) * (0.00) +
329 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + \343 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) +
330 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) + \344 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) +
331 (abs(eta) > 2.5) * (0.00)}345 (abs(eta) > 2.5) * (0.00)}
332}346}
333347
@@ -345,7 +359,7 @@
345359
346 set PTMin 0.5360 set PTMin 0.5
347361
348 set PTRatioMax 0.1362 set PTRatioMax 0.12
349}363}
350364
351#################365#################
@@ -359,9 +373,9 @@
359 # set EfficiencyFormula {efficiency as a function of eta and pt}373 # set EfficiencyFormula {efficiency as a function of eta and pt}
360374
361 # efficiency formula for muons375 # efficiency formula for muons
362 set EfficiencyFormula { (pt <= 10.0) * (0.00) + \376 set EfficiencyFormula { (pt <= 10.0) * (0.00) +
363 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + \377 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) +
364 (abs(eta) > 1.5 && abs(eta) <= 2.7) * (pt > 10.0) * (0.85) + \378 (abs(eta) > 1.5 && abs(eta) <= 2.7) * (pt > 10.0) * (0.85) +
365 (abs(eta) > 2.7) * (0.00)}379 (abs(eta) > 2.7) * (0.00)}
366}380}
367381
@@ -379,7 +393,7 @@
379393
380 set PTMin 0.5394 set PTMin 0.5
381395
382 set PTRatioMax 0.1396 set PTRatioMax 0.25
383}397}
384398
385###################399###################
@@ -405,12 +419,33 @@
405 set EnergyOutputArray energy419 set EnergyOutputArray energy
406}420}
407421
422
423#####################
424# Neutrino Filter
425#####################
426
427module PdgCodeFilter NeutrinoFilter {
428
429 set InputArray Delphes/stableParticles
430 set OutputArray filteredParticles
431
432 set PTMin 0.0
433
434 add PdgCode {12}
435 add PdgCode {14}
436 add PdgCode {16}
437 add PdgCode {-12}
438 add PdgCode {-14}
439 add PdgCode {-16}
440
441}
442
408#####################443#####################
409# MC truth jet finder444# MC truth jet finder
410#####################445#####################
411446
412module FastJetFinder GenJetFinder {447module FastJetFinder GenJetFinder {
413 set InputArray Delphes/stableParticles448 set InputArray NeutrinoFilter/filteredParticles
414449
415 set OutputArray jets450 set OutputArray jets
416451
@@ -421,6 +456,19 @@
421 set JetPTMin 20.0456 set JetPTMin 20.0
422}457}
423458
459
460#########################
461# Gen Missing ET merger
462########################
463
464module Merger GenMissingET {
465# add InputArray InputArray
466 add InputArray NeutrinoFilter/filteredParticles
467 set MomentumOutputArray momentum
468}
469
470
471
424############472############
425# Jet finder473# Jet finder
426############474############
@@ -445,8 +493,25 @@
445 set InputArray FastJetFinder/jets493 set InputArray FastJetFinder/jets
446 set OutputArray jets494 set OutputArray jets
447495
448 # scale formula for jets496 # scale formula for jets
449 set ScaleFormula {1.00}497 set ScaleFormula { sqrt( (3.0 - 0.2*(abs(eta)))^2 / pt + 1.0 ) }
498}
499
500########################
501# Jet Flavor Association
502########################
503
504module JetFlavorAssociation JetFlavorAssociation {
505
506 set PartonInputArray Delphes/partons
507 set ParticleInputArray Delphes/allParticles
508 set ParticleLHEFInputArray Delphes/allParticlesLHEF
509 set JetInputArray JetEnergyScale/jets
510
511 set DeltaR 0.5
512 set PartonPTMin 1.0
513 set PartonEtaMax 2.5
514
450}515}
451516
452###########517###########
@@ -454,54 +519,60 @@
454###########519###########
455520
456module BTagging BTagging {521module BTagging BTagging {
457 set PartonInputArray Delphes/partons
458 set JetInputArray JetEnergyScale/jets522 set JetInputArray JetEnergyScale/jets
459523
460 set BitNumber 0524 set BitNumber 0
461525
462 set DeltaR 0.5
463
464 set PartonPTMin 1.0
465
466 set PartonEtaMax 2.5
467
468 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}526 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
469 # PDG code = the highest PDG code of a quark or gluon inside DeltaR cone around jet axis527 # PDG code = the highest PDG code of a quark or gluon inside DeltaR cone around jet axis
470 # gluon's PDG code has the lowest priority528 # gluon's PDG code has the lowest priority
471529
530 # based on ATL-PHYS-PUB-2015-022
531
472 # default efficiency formula (misidentification rate)532 # default efficiency formula (misidentification rate)
473 add EfficiencyFormula {0} {0.001}533 add EfficiencyFormula {0} {0.002+7.3e-06*pt}
474534
475 # efficiency formula for c-jets (misidentification rate)535 # efficiency formula for c-jets (misidentification rate)
476 add EfficiencyFormula {4} { (pt <= 15.0) * (0.000) + \536 add EfficiencyFormula {4} {0.20*tanh(0.02*pt)*(1/(1+0.0034*pt))}
477 (abs(eta) <= 1.2) * (pt > 15.0) * (0.2*tanh(pt*0.03 - 0.4)) + \
478 (abs(eta) > 1.2 && abs(eta) <= 2.5) * (pt > 15.0) * (0.1*tanh(pt*0.03 - 0.4)) + \
479 (abs(eta) > 2.5) * (0.000)}
480537
481 # efficiency formula for b-jets538 # efficiency formula for b-jets
482 add EfficiencyFormula {5} { (pt <= 15.0) * (0.000) + \539 add EfficiencyFormula {5} {0.80*tanh(0.003*pt)*(30/(1+0.086*pt))}
483 (abs(eta) <= 1.2) * (pt > 15.0) * (0.5*tanh(pt*0.03 - 0.4)) + \
484 (abs(eta) > 1.2 && abs(eta) <= 2.5) * (pt > 15.0) * (0.4*tanh(pt*0.03 - 0.4)) + \
485 (abs(eta) > 2.5) * (0.000)}
486}540}
487541
488module TauTagging TauTagging {542#############
543# tau-tagging
544#############
545
546module TrackCountingTauTagging TauTagging {
547
489 set ParticleInputArray Delphes/allParticles548 set ParticleInputArray Delphes/allParticles
490 set PartonInputArray Delphes/partons549 set PartonInputArray Delphes/partons
550 set TrackInputArray TrackMerger/tracks
491 set JetInputArray JetEnergyScale/jets551 set JetInputArray JetEnergyScale/jets
492552
493 set DeltaR 0.5553 set DeltaR 0.2
554 set DeltaRTrack 0.2
494555
556 set TrackPTMin 1.0
557
495 set TauPTMin 1.0558 set TauPTMin 1.0
496
497 set TauEtaMax 2.5559 set TauEtaMax 2.5
498560
499 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}561 # instructions: {n-prongs} {eff}
562
563 # 1 - one prong efficiency
564 # 2 - two or more efficiency
565 # -1 - one prong mistag rate
566 # -2 - two or more mistag rate
567
568 set BitNumber 0
569
570 # taken from ATL-PHYS-PUB-2015-045 (medium working point)
571 add EfficiencyFormula {1} {0.70}
572 add EfficiencyFormula {2} {0.60}
573 add EfficiencyFormula {-1} {0.02}
574 add EfficiencyFormula {-2} {0.01}
500575
501 # default efficiency formula (misidentification rate)
502 add EfficiencyFormula {0} {0.001}
503 # efficiency formula for tau-jets
504 add EfficiencyFormula {15} {0.4}
505}576}
506577
507#####################################################578#####################################################
@@ -537,6 +608,8 @@
537 add Branch Calorimeter/eflowNeutralHadrons EFlowNeutralHadron Tower608 add Branch Calorimeter/eflowNeutralHadrons EFlowNeutralHadron Tower
538609
539 add Branch GenJetFinder/jets GenJet Jet610 add Branch GenJetFinder/jets GenJet Jet
611 add Branch GenMissingET/momentum GenMissingET MissingET
612
540 add Branch UniqueObjectFinder/jets Jet Jet613 add Branch UniqueObjectFinder/jets Jet Jet
541 add Branch UniqueObjectFinder/electrons Electron Electron614 add Branch UniqueObjectFinder/electrons Electron Electron
542 add Branch UniqueObjectFinder/photons Photon Photon615 add Branch UniqueObjectFinder/photons Photon Photon
543616
=== modified file 'Template/Common/Cards/delphes_card_CMS.dat'
--- Template/Common/Cards/delphes_card_CMS.dat 2014-05-13 14:23:18 +0000
+++ Template/Common/Cards/delphes_card_CMS.dat 2016-11-23 08:16:42 +0000
@@ -10,7 +10,7 @@
10 MuonTrackingEfficiency10 MuonTrackingEfficiency
1111
12 ChargedHadronMomentumSmearing12 ChargedHadronMomentumSmearing
13 ElectronEnergySmearing13 ElectronMomentumSmearing
14 MuonMomentumSmearing14 MuonMomentumSmearing
1515
16 TrackMerger16 TrackMerger
@@ -20,6 +20,7 @@
20 PhotonEfficiency20 PhotonEfficiency
21 PhotonIsolation21 PhotonIsolation
2222
23 ElectronFilter
23 ElectronEfficiency24 ElectronEfficiency
24 ElectronIsolation25 ElectronIsolation
2526
@@ -28,11 +29,16 @@
2829
29 MissingET30 MissingET
3031
32 NeutrinoFilter
31 GenJetFinder33 GenJetFinder
34 GenMissingET
35
32 FastJetFinder36 FastJetFinder
3337
34 JetEnergyScale38 JetEnergyScale
3539
40 JetFlavorAssociation
41
36 BTagging42 BTagging
37 TauTagging43 TauTagging
3844
@@ -75,11 +81,11 @@
75 # add EfficiencyFormula {efficiency formula as a function of eta and pt}81 # add EfficiencyFormula {efficiency formula as a function of eta and pt}
7682
77 # tracking efficiency formula for charged hadrons83 # tracking efficiency formula for charged hadrons
78 set EfficiencyFormula { (pt <= 0.1) * (0.00) + \84 set EfficiencyFormula { (pt <= 0.1) * (0.00) +
79 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.70) + \85 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.70) +
80 (abs(eta) <= 1.5) * (pt > 1.0) * (0.95) + \86 (abs(eta) <= 1.5) * (pt > 1.0) * (0.95) +
81 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.60) + \87 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.60) +
82 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.85) + \88 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.85) +
83 (abs(eta) > 2.5) * (0.00)}89 (abs(eta) > 2.5) * (0.00)}
84}90}
8591
@@ -94,13 +100,13 @@
94 # set EfficiencyFormula {efficiency formula as a function of eta and pt}100 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
95101
96 # tracking efficiency formula for electrons102 # tracking efficiency formula for electrons
97 set EfficiencyFormula { (pt <= 0.1) * (0.00) + \103 set EfficiencyFormula { (pt <= 0.1) * (0.00) +
98 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.73) + \104 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.73) +
99 (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e2) * (0.95) + \105 (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e2) * (0.95) +
100 (abs(eta) <= 1.5) * (pt > 1.0e2) * (0.99) + \106 (abs(eta) <= 1.5) * (pt > 1.0e2) * (0.99) +
101 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.50) + \107 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.50) +
102 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e2) * (0.83) + \108 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e2) * (0.83) +
103 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2) * (0.90) + \109 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2) * (0.90) +
104 (abs(eta) > 2.5) * (0.00)}110 (abs(eta) > 2.5) * (0.00)}
105}111}
106112
@@ -115,11 +121,11 @@
115 # set EfficiencyFormula {efficiency formula as a function of eta and pt}121 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
116122
117 # tracking efficiency formula for muons123 # tracking efficiency formula for muons
118 set EfficiencyFormula { (pt <= 0.1) * (0.00) + \124 set EfficiencyFormula { (pt <= 0.1) * (0.00) +
119 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.75) + \125 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.75) +
120 (abs(eta) <= 1.5) * (pt > 1.0) * (0.99) + \126 (abs(eta) <= 1.5) * (pt > 1.0) * (0.99) +
121 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.70) + \127 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.70) +
122 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.98) + \128 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.98) +
123 (abs(eta) > 2.5) * (0.00)}129 (abs(eta) > 2.5) * (0.00)}
124}130}
125131
@@ -134,32 +140,27 @@
134 # set ResolutionFormula {resolution formula as a function of eta and pt}140 # set ResolutionFormula {resolution formula as a function of eta and pt}
135141
136 # resolution formula for charged hadrons142 # resolution formula for charged hadrons
137 set ResolutionFormula { (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.02) + \143 # based on arXiv:1405.6569
138 (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e1) * (0.01) + \144 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.01^2 + pt^2*1.5e-4^2) +
139 (abs(eta) <= 1.5) * (pt > 1.0e1 && pt <= 2.0e2) * (0.03) + \145 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.015^2 + pt^2*2.5e-4^2) +
140 (abs(eta) <= 1.5) * (pt > 2.0e2) * (0.05) + \146 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.025^2 + pt^2*5.5e-4^2)}
141 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.03) + \
142 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e1) * (0.02) + \
143 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e1 && pt <= 2.0e2) * (0.04) + \
144 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 2.0e2) * (0.05)}
145}147}
146148
147#################################149###################################
148# Energy resolution for electrons150# Momentum resolution for electrons
149#################################151###################################
150152
151module EnergySmearing ElectronEnergySmearing {153module MomentumSmearing ElectronMomentumSmearing {
152 set InputArray ElectronTrackingEfficiency/electrons154 set InputArray ElectronTrackingEfficiency/electrons
153 set OutputArray electrons155 set OutputArray electrons
154156
155 # set ResolutionFormula {resolution formula as a function of eta and energy}157 # set ResolutionFormula {resolution formula as a function of eta and energy}
156158
157 # resolution formula for electrons159 # resolution formula for electrons
158 set ResolutionFormula { (abs(eta) <= 2.5) * (energy > 0.1 && energy <= 2.0e1) * (energy*0.0225) + \160 # based on arXiv:1405.6569
159 (abs(eta) <= 2.5) * (energy > 2.0e1) * sqrt(energy^2*0.007^2 + energy*0.07^2 + 0.35^2) + \161 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.03^2 + pt^2*1.3e-3^2) +
160 (abs(eta) > 2.5 && abs(eta) <= 3.0) * sqrt(energy^2*0.007^2 + energy*0.07^2 + 0.35^2) + \162 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.05^2 + pt^2*1.7e-3^2) +
161 (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)}163 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.15^2 + pt^2*3.1e-3^2)}
162
163}164}
164165
165###############################166###############################
@@ -173,18 +174,9 @@
173 # set ResolutionFormula {resolution formula as a function of eta and pt}174 # set ResolutionFormula {resolution formula as a function of eta and pt}
174175
175 # resolution formula for muons176 # resolution formula for muons
176 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1 && pt <= 5.0) * (0.02) + \177 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.01^2 + pt^2*1.0e-4^2) +
177 (abs(eta) <= 0.5) * (pt > 5.0 && pt <= 1.0e2) * (0.015) + \178 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.015^2 + pt^2*1.5e-4^2) +
178 (abs(eta) <= 0.5) * (pt > 1.0e2 && pt <= 2.0e2) * (0.03) + \179 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.025^2 + pt^2*3.5e-4^2)}
179 (abs(eta) <= 0.5) * (pt > 2.0e2) * (0.05 + pt*1.e-4) + \
180 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1 && pt <= 5.0) * (0.03) + \
181 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 5.0 && pt <= 1.0e2) * (0.02) + \
182 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 1.0e2 && pt <= 2.0e2) * (0.04) + \
183 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 2.0e2) * (0.05 + pt*1.e-4) + \
184 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 5.0) * (0.04) + \
185 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 5.0 && pt <= 1.0e2) * (0.035) + \
186 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2 && pt <= 2.0e2) * (0.05) + \
187 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 2.0e2) * (0.05 + pt*1.e-4)}
188}180}
189181
190##############182##############
@@ -194,7 +186,7 @@
194module Merger TrackMerger {186module Merger TrackMerger {
195# add InputArray InputArray187# add InputArray InputArray
196 add InputArray ChargedHadronMomentumSmearing/chargedHadrons188 add InputArray ChargedHadronMomentumSmearing/chargedHadrons
197 add InputArray ElectronEnergySmearing/electrons189 add InputArray ElectronMomentumSmearing/electrons
198 add InputArray MuonMomentumSmearing/muons190 add InputArray MuonMomentumSmearing/muons
199 set OutputArray tracks191 set OutputArray tracks
200}192}
@@ -214,6 +206,14 @@
214 set EFlowPhotonOutputArray eflowPhotons206 set EFlowPhotonOutputArray eflowPhotons
215 set EFlowNeutralHadronOutputArray eflowNeutralHadrons207 set EFlowNeutralHadronOutputArray eflowNeutralHadrons
216208
209 set ECalEnergyMin 0.5
210 set HCalEnergyMin 1.0
211
212 set ECalEnergySignificanceMin 1.0
213 set HCalEnergySignificanceMin 1.0
214
215 set SmearTowerCenter true
216
217 set pi [expr {acos(-1)}]217 set pi [expr {acos(-1)}]
218218
219 # lists of the edges of each tower in eta and phi219 # lists of the edges of each tower in eta and phi
@@ -268,11 +268,13 @@
268 add EnergyFraction {3122} {0.3 0.7}268 add EnergyFraction {3122} {0.3 0.7}
269269
270 # set ECalResolutionFormula {resolution formula as a function of eta and energy}270 # set ECalResolutionFormula {resolution formula as a function of eta and energy}
271 set ECalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.007^2 + energy*0.07^2 + 0.35^2) + \271 # Eta shape from arXiv:1306.2016, Energy shape from arXiv:1502.02701
272 (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)}272 set ECalResolutionFormula { (abs(eta) <= 1.5) * (1+0.64*eta^2) * sqrt(energy^2*0.008^2 + energy*0.11^2 + 0.40^2) +
273 (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) +
274 (abs(eta) > 2.5 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)}
273275
274 # set HCalResolutionFormula {resolution formula as a function of eta and energy}276 # set HCalResolutionFormula {resolution formula as a function of eta and energy}
275 set HCalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.050^2 + energy*1.50^2) + \277 set HCalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.050^2 + energy*1.50^2) +
276 (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.130^2 + energy*2.70^2)}278 (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.130^2 + energy*2.70^2)}
277}279}
278280
@@ -299,9 +301,9 @@
299 # set EfficiencyFormula {efficiency formula as a function of eta and pt}301 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
300302
301 # efficiency formula for photons303 # efficiency formula for photons
302 set EfficiencyFormula { (pt <= 10.0) * (0.00) + \304 set EfficiencyFormula { (pt <= 10.0) * (0.00) +
303 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + \305 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) +
304 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) + \306 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) +
305 (abs(eta) > 2.5) * (0.00)}307 (abs(eta) > 2.5) * (0.00)}
306}308}
307309
@@ -319,7 +321,19 @@
319321
320 set PTMin 0.5322 set PTMin 0.5
321323
322 set PTRatioMax 0.1324 set PTRatioMax 0.12
325}
326
327#################
328# Electron filter
329#################
330
331module PdgCodeFilter ElectronFilter {
332 set InputArray Calorimeter/eflowTracks
333 set OutputArray electrons
334 set Invert true
335 add PdgCode {11}
336 add PdgCode {-11}
323}337}
324338
325#####################339#####################
@@ -327,15 +341,15 @@
327#####################341#####################
328342
329module Efficiency ElectronEfficiency {343module Efficiency ElectronEfficiency {
330 set InputArray ElectronEnergySmearing/electrons344 set InputArray ElectronFilter/electrons
331 set OutputArray electrons345 set OutputArray electrons
332346
333 # set EfficiencyFormula {efficiency formula as a function of eta and pt}347 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
334348
335 # efficiency formula for electrons349 # efficiency formula for electrons
336 set EfficiencyFormula { (pt <= 10.0) * (0.00) + \350 set EfficiencyFormula { (pt <= 10.0) * (0.00) +
337 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + \351 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) +
338 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) + \352 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) +
339 (abs(eta) > 2.5) * (0.00)}353 (abs(eta) > 2.5) * (0.00)}
340}354}
341355
@@ -353,7 +367,7 @@
353367
354 set PTMin 0.5368 set PTMin 0.5
355369
356 set PTRatioMax 0.1370 set PTRatioMax 0.12
357}371}
358372
359#################373#################
@@ -367,11 +381,11 @@
367 # set EfficiencyFormula {efficiency as a function of eta and pt}381 # set EfficiencyFormula {efficiency as a function of eta and pt}
368382
369 # efficiency formula for muons383 # efficiency formula for muons
370 set EfficiencyFormula { (pt <= 10.0) * (0.00) + \384 set EfficiencyFormula { (pt <= 10.0) * (0.00) +
371 (abs(eta) <= 1.5) * (pt > 10.0 && pt <= 1.0e3) * (0.95) + \385 (abs(eta) <= 1.5) * (pt > 10.0 && pt <= 1.0e3) * (0.95) +
372 (abs(eta) <= 1.5) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) + \386 (abs(eta) <= 1.5) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) +
373 (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 10.0 && pt <= 1.0e3) * (0.95) + \387 (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 10.0 && pt <= 1.0e3) * (0.95) +
374 (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) + \388 (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) +
375 (abs(eta) > 2.4) * (0.00)}389 (abs(eta) > 2.4) * (0.00)}
376}390}
377391
@@ -389,7 +403,7 @@
389403
390 set PTMin 0.5404 set PTMin 0.5
391405
392 set PTRatioMax 0.1406 set PTRatioMax 0.25
393}407}
394408
395###################409###################
@@ -415,12 +429,34 @@
415 set EnergyOutputArray energy429 set EnergyOutputArray energy
416}430}
417431
432
433#####################
434# Neutrino Filter
435#####################
436
437module PdgCodeFilter NeutrinoFilter {
438
439 set InputArray Delphes/stableParticles
440 set OutputArray filteredParticles
441
442 set PTMin 0.0
443
444 add PdgCode {12}
445 add PdgCode {14}
446 add PdgCode {16}
447 add PdgCode {-12}
448 add PdgCode {-14}
449 add PdgCode {-16}
450
451}
452
453
418#####################454#####################
419# MC truth jet finder455# MC truth jet finder
420#####################456#####################
421457
422module FastJetFinder GenJetFinder {458module FastJetFinder GenJetFinder {
423 set InputArray Delphes/stableParticles459 set InputArray NeutrinoFilter/filteredParticles
424460
425 set OutputArray jets461 set OutputArray jets
426462
@@ -431,6 +467,18 @@
431 set JetPTMin 20.0467 set JetPTMin 20.0
432}468}
433469
470#########################
471# Gen Missing ET merger
472########################
473
474module Merger GenMissingET {
475# add InputArray InputArray
476 add InputArray NeutrinoFilter/filteredParticles
477 set MomentumOutputArray momentum
478}
479
480
481
434############482############
435# Jet finder483# Jet finder
436############484############
@@ -456,8 +504,25 @@
456 set InputArray FastJetFinder/jets504 set InputArray FastJetFinder/jets
457 set OutputArray jets505 set OutputArray jets
458506
459 # scale formula for jets507 # scale formula for jets
460 set ScaleFormula {1.00}508 set ScaleFormula {sqrt( (2.5 - 0.15*(abs(eta)))^2 / pt + 1.0 )}
509}
510
511########################
512# Jet Flavor Association
513########################
514
515module JetFlavorAssociation JetFlavorAssociation {
516
517 set PartonInputArray Delphes/partons
518 set ParticleInputArray Delphes/allParticles
519 set ParticleLHEFInputArray Delphes/allParticlesLHEF
520 set JetInputArray JetEnergyScale/jets
521
522 set DeltaR 0.5
523 set PartonPTMin 1.0
524 set PartonEtaMax 2.5
525
461}526}
462527
463###########528###########
@@ -465,38 +530,30 @@
465###########530###########
466531
467module BTagging BTagging {532module BTagging BTagging {
468 set PartonInputArray Delphes/partons
469 set JetInputArray JetEnergyScale/jets533 set JetInputArray JetEnergyScale/jets
470534
471 set BitNumber 0535 set BitNumber 0
472536
473 set DeltaR 0.5
474
475 set PartonPTMin 1.0
476
477 set PartonEtaMax 2.5
478
479 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}537 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
480 # PDG code = the highest PDG code of a quark or gluon inside DeltaR cone around jet axis538 # PDG code = the highest PDG code of a quark or gluon inside DeltaR cone around jet axis
481 # gluon's PDG code has the lowest priority539 # gluon's PDG code has the lowest priority
482540
483 # https://twiki.cern.ch/twiki/bin/view/CMSPublic/PhysicsResultsBTV541 # based on arXiv:1211.4462
542
484 # default efficiency formula (misidentification rate)543 # default efficiency formula (misidentification rate)
485 add EfficiencyFormula {0} {0.001}544 add EfficiencyFormula {0} {0.01+0.000038*pt}
486545
487 # efficiency formula for c-jets (misidentification rate)546 # efficiency formula for c-jets (misidentification rate)
488 add EfficiencyFormula {4} { (pt <= 15.0) * (0.000) + \547 add EfficiencyFormula {4} {0.25*tanh(0.018*pt)*(1/(1+ 0.0013*pt))}
489 (abs(eta) <= 1.2) * (pt > 15.0) * (0.2*tanh(pt*0.03 - 0.4)) + \
490 (abs(eta) > 1.2 && abs(eta) <= 2.5) * (pt > 15.0) * (0.1*tanh(pt*0.03 - 0.4)) + \
491 (abs(eta) > 2.5) * (0.000)}
492548
493 # efficiency formula for b-jets549 # efficiency formula for b-jets
494 add EfficiencyFormula {5} { (pt <= 15.0) * (0.000) + \550 add EfficiencyFormula {5} {0.85*tanh(0.0025*pt)*(25.0/(1+0.063*pt))}
495 (abs(eta) <= 1.2) * (pt > 15.0) * (0.5*tanh(pt*0.03 - 0.4)) + \
496 (abs(eta) > 1.2 && abs(eta) <= 2.5) * (pt > 15.0) * (0.4*tanh(pt*0.03 - 0.4)) + \
497 (abs(eta) > 2.5) * (0.000)}
498}551}
499552
553#############
554# tau-tagging
555#############
556
500module TauTagging TauTagging {557module TauTagging TauTagging {
501 set ParticleInputArray Delphes/allParticles558 set ParticleInputArray Delphes/allParticles
502 set PartonInputArray Delphes/partons559 set PartonInputArray Delphes/partons
@@ -511,9 +568,9 @@
511 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}568 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
512569
513 # default efficiency formula (misidentification rate)570 # default efficiency formula (misidentification rate)
514 add EfficiencyFormula {0} {0.001}571 add EfficiencyFormula {0} {0.01}
515 # efficiency formula for tau-jets572 # efficiency formula for tau-jets
516 add EfficiencyFormula {15} {0.4}573 add EfficiencyFormula {15} {0.6}
517}574}
518575
519#####################################################576#####################################################
@@ -549,6 +606,8 @@
549 add Branch Calorimeter/eflowNeutralHadrons EFlowNeutralHadron Tower606 add Branch Calorimeter/eflowNeutralHadrons EFlowNeutralHadron Tower
550607
551 add Branch GenJetFinder/jets GenJet Jet608 add Branch GenJetFinder/jets GenJet Jet
609 add Branch GenMissingET/momentum GenMissingET MissingET
610
552 add Branch UniqueObjectFinder/jets Jet Jet611 add Branch UniqueObjectFinder/jets Jet Jet
553 add Branch UniqueObjectFinder/electrons Electron Electron612 add Branch UniqueObjectFinder/electrons Electron Electron
554 add Branch UniqueObjectFinder/photons Photon Photon613 add Branch UniqueObjectFinder/photons Photon Photon
@@ -556,4 +615,3 @@
556 add Branch MissingET/momentum MissingET MissingET615 add Branch MissingET/momentum MissingET MissingET
557 add Branch ScalarHT/energy ScalarHT ScalarHT616 add Branch ScalarHT/energy ScalarHT ScalarHT
558}617}
559
560618
=== modified file 'Template/Common/Cards/delphes_card_default.dat'
--- Template/Common/Cards/delphes_card_default.dat 2015-06-17 13:28:26 +0000
+++ Template/Common/Cards/delphes_card_default.dat 2016-11-23 08:16:42 +0000
@@ -10,7 +10,7 @@
10 MuonTrackingEfficiency10 MuonTrackingEfficiency
1111
12 ChargedHadronMomentumSmearing12 ChargedHadronMomentumSmearing
13 ElectronEnergySmearing13 ElectronMomentumSmearing
14 MuonMomentumSmearing14 MuonMomentumSmearing
1515
16 TrackMerger16 TrackMerger
@@ -20,6 +20,7 @@
20 PhotonEfficiency20 PhotonEfficiency
21 PhotonIsolation21 PhotonIsolation
2222
23 ElectronFilter
23 ElectronEfficiency24 ElectronEfficiency
24 ElectronIsolation25 ElectronIsolation
2526
@@ -28,11 +29,16 @@
2829
29 MissingET30 MissingET
3031
32 NeutrinoFilter
31 GenJetFinder33 GenJetFinder
34 GenMissingET
35
32 FastJetFinder36 FastJetFinder
3337
34 JetEnergyScale38 JetEnergyScale
3539
40 JetFlavorAssociation
41
36 BTagging42 BTagging
37 TauTagging43 TauTagging
3844
@@ -75,11 +81,11 @@
75 # add EfficiencyFormula {efficiency formula as a function of eta and pt}81 # add EfficiencyFormula {efficiency formula as a function of eta and pt}
7682
77 # tracking efficiency formula for charged hadrons83 # tracking efficiency formula for charged hadrons
78 set EfficiencyFormula { (pt <= 0.1) * (0.00) + \84 set EfficiencyFormula { (pt <= 0.1) * (0.00) +
79 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.70) + \85 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.70) +
80 (abs(eta) <= 1.5) * (pt > 1.0) * (0.95) + \86 (abs(eta) <= 1.5) * (pt > 1.0) * (0.95) +
81 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.60) + \87 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.60) +
82 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.85) + \88 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.85) +
83 (abs(eta) > 2.5) * (0.00)}89 (abs(eta) > 2.5) * (0.00)}
84}90}
8591
@@ -94,13 +100,13 @@
94 # set EfficiencyFormula {efficiency formula as a function of eta and pt}100 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
95101
96 # tracking efficiency formula for electrons102 # tracking efficiency formula for electrons
97 set EfficiencyFormula { (pt <= 0.1) * (0.00) + \103 set EfficiencyFormula { (pt <= 0.1) * (0.00) +
98 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.73) + \104 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.73) +
99 (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e2) * (0.95) + \105 (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e2) * (0.95) +
100 (abs(eta) <= 1.5) * (pt > 1.0e2) * (0.99) + \106 (abs(eta) <= 1.5) * (pt > 1.0e2) * (0.99) +
101 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.50) + \107 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.50) +
102 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e2) * (0.83) + \108 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e2) * (0.83) +
103 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2) * (0.90) + \109 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2) * (0.90) +
104 (abs(eta) > 2.5) * (0.00)}110 (abs(eta) > 2.5) * (0.00)}
105}111}
106112
@@ -115,11 +121,11 @@
115 # set EfficiencyFormula {efficiency formula as a function of eta and pt}121 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
116122
117 # tracking efficiency formula for muons123 # tracking efficiency formula for muons
118 set EfficiencyFormula { (pt <= 0.1) * (0.00) + \124 set EfficiencyFormula { (pt <= 0.1) * (0.00) +
119 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.75) + \125 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.75) +
120 (abs(eta) <= 1.5) * (pt > 1.0) * (0.99) + \126 (abs(eta) <= 1.5) * (pt > 1.0) * (0.99) +
121 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.70) + \127 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.70) +
122 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.98) + \128 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.98) +
123 (abs(eta) > 2.5) * (0.00)}129 (abs(eta) > 2.5) * (0.00)}
124}130}
125131
@@ -134,32 +140,27 @@
134 # set ResolutionFormula {resolution formula as a function of eta and pt}140 # set ResolutionFormula {resolution formula as a function of eta and pt}
135141
136 # resolution formula for charged hadrons142 # resolution formula for charged hadrons
137 set ResolutionFormula { (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.02) + \143 # based on arXiv:1405.6569
138 (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e1) * (0.01) + \144 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.01^2 + pt^2*1.5e-4^2) +
139 (abs(eta) <= 1.5) * (pt > 1.0e1 && pt <= 2.0e2) * (0.03) + \145 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.015^2 + pt^2*2.5e-4^2) +
140 (abs(eta) <= 1.5) * (pt > 2.0e2) * (0.05) + \146 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.025^2 + pt^2*5.5e-4^2)}
141 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.03) + \
142 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e1) * (0.02) + \
143 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e1 && pt <= 2.0e2) * (0.04) + \
144 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 2.0e2) * (0.05)}
145}147}
146148
147#################################149###################################
148# Energy resolution for electrons150# Momentum resolution for electrons
149#################################151###################################
150152
151module EnergySmearing ElectronEnergySmearing {153module MomentumSmearing ElectronMomentumSmearing {
152 set InputArray ElectronTrackingEfficiency/electrons154 set InputArray ElectronTrackingEfficiency/electrons
153 set OutputArray electrons155 set OutputArray electrons
154156
155 # set ResolutionFormula {resolution formula as a function of eta and energy}157 # set ResolutionFormula {resolution formula as a function of eta and energy}
156158
157 # resolution formula for electrons159 # resolution formula for electrons
158 set ResolutionFormula { (abs(eta) <= 2.5) * (energy > 0.1 && energy <= 2.0e1) * (energy*0.0225) + \160 # based on arXiv:1405.6569
159 (abs(eta) <= 2.5) * (energy > 2.0e1) * sqrt(energy^2*0.007^2 + energy*0.07^2 + 0.35^2) + \161 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.03^2 + pt^2*1.3e-3^2) +
160 (abs(eta) > 2.5 && abs(eta) <= 3.0) * sqrt(energy^2*0.007^2 + energy*0.07^2 + 0.35^2) + \162 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.05^2 + pt^2*1.7e-3^2) +
161 (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)}163 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.15^2 + pt^2*3.1e-3^2)}
162
163}164}
164165
165###############################166###############################
@@ -173,18 +174,9 @@
173 # set ResolutionFormula {resolution formula as a function of eta and pt}174 # set ResolutionFormula {resolution formula as a function of eta and pt}
174175
175 # resolution formula for muons176 # resolution formula for muons
176 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1 && pt <= 5.0) * (0.02) + \177 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1) * sqrt(0.01^2 + pt^2*1.0e-4^2) +
177 (abs(eta) <= 0.5) * (pt > 5.0 && pt <= 1.0e2) * (0.015) + \178 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1) * sqrt(0.015^2 + pt^2*1.5e-4^2) +
178 (abs(eta) <= 0.5) * (pt > 1.0e2 && pt <= 2.0e2) * (0.03) + \179 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1) * sqrt(0.025^2 + pt^2*3.5e-4^2)}
179 (abs(eta) <= 0.5) * (pt > 2.0e2) * (0.05 + pt*1.e-4) + \
180 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1 && pt <= 5.0) * (0.03) + \
181 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 5.0 && pt <= 1.0e2) * (0.02) + \
182 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 1.0e2 && pt <= 2.0e2) * (0.04) + \
183 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 2.0e2) * (0.05 + pt*1.e-4) + \
184 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 5.0) * (0.04) + \
185 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 5.0 && pt <= 1.0e2) * (0.035) + \
186 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2 && pt <= 2.0e2) * (0.05) + \
187 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 2.0e2) * (0.05 + pt*1.e-4)}
188}180}
189181
190##############182##############
@@ -194,7 +186,7 @@
194module Merger TrackMerger {186module Merger TrackMerger {
195# add InputArray InputArray187# add InputArray InputArray
196 add InputArray ChargedHadronMomentumSmearing/chargedHadrons188 add InputArray ChargedHadronMomentumSmearing/chargedHadrons
197 add InputArray ElectronEnergySmearing/electrons189 add InputArray ElectronMomentumSmearing/electrons
198 add InputArray MuonMomentumSmearing/muons190 add InputArray MuonMomentumSmearing/muons
199 set OutputArray tracks191 set OutputArray tracks
200}192}
@@ -214,6 +206,14 @@
214 set EFlowPhotonOutputArray eflowPhotons206 set EFlowPhotonOutputArray eflowPhotons
215 set EFlowNeutralHadronOutputArray eflowNeutralHadrons207 set EFlowNeutralHadronOutputArray eflowNeutralHadrons
216208
209 set ECalEnergyMin 0.5
210 set HCalEnergyMin 1.0
211
212 set ECalEnergySignificanceMin 1.0
213 set HCalEnergySignificanceMin 1.0
214
215 set SmearTowerCenter true
216
217 set pi [expr {acos(-1)}]217 set pi [expr {acos(-1)}]
218218
219 # lists of the edges of each tower in eta and phi219 # lists of the edges of each tower in eta and phi
@@ -268,11 +268,13 @@
268 add EnergyFraction {3122} {0.3 0.7}268 add EnergyFraction {3122} {0.3 0.7}
269269
270 # set ECalResolutionFormula {resolution formula as a function of eta and energy}270 # set ECalResolutionFormula {resolution formula as a function of eta and energy}
271 set ECalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.007^2 + energy*0.07^2 + 0.35^2) + \271 # Eta shape from arXiv:1306.2016, Energy shape from arXiv:1502.02701
272 (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)}272 set ECalResolutionFormula { (abs(eta) <= 1.5) * (1+0.64*eta^2) * sqrt(energy^2*0.008^2 + energy*0.11^2 + 0.40^2) +
273 (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) +
274 (abs(eta) > 2.5 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)}
273275
274 # set HCalResolutionFormula {resolution formula as a function of eta and energy}276 # set HCalResolutionFormula {resolution formula as a function of eta and energy}
275 set HCalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.050^2 + energy*1.50^2) + \277 set HCalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.050^2 + energy*1.50^2) +
276 (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.130^2 + energy*2.70^2)}278 (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.130^2 + energy*2.70^2)}
277}279}
278280
@@ -299,9 +301,9 @@
299 # set EfficiencyFormula {efficiency formula as a function of eta and pt}301 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
300302
301 # efficiency formula for photons303 # efficiency formula for photons
302 set EfficiencyFormula { (pt <= 10.0) * (0.00) + \304 set EfficiencyFormula { (pt <= 10.0) * (0.00) +
303 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + \305 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) +
304 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) + \306 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) +
305 (abs(eta) > 2.5) * (0.00)}307 (abs(eta) > 2.5) * (0.00)}
306}308}
307309
@@ -319,7 +321,19 @@
319321
320 set PTMin 0.5322 set PTMin 0.5
321323
322 set PTRatioMax 0.1324 set PTRatioMax 0.12
325}
326
327#################
328# Electron filter
329#################
330
331module PdgCodeFilter ElectronFilter {
332 set InputArray Calorimeter/eflowTracks
333 set OutputArray electrons
334 set Invert true
335 add PdgCode {11}
336 add PdgCode {-11}
323}337}
324338
325#####################339#####################
@@ -327,15 +341,15 @@
327#####################341#####################
328342
329module Efficiency ElectronEfficiency {343module Efficiency ElectronEfficiency {
330 set InputArray ElectronEnergySmearing/electrons344 set InputArray ElectronFilter/electrons
331 set OutputArray electrons345 set OutputArray electrons
332346
333 # set EfficiencyFormula {efficiency formula as a function of eta and pt}347 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
334348
335 # efficiency formula for electrons349 # efficiency formula for electrons
336 set EfficiencyFormula { (pt <= 10.0) * (0.00) + \350 set EfficiencyFormula { (pt <= 10.0) * (0.00) +
337 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + \351 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) +
338 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) + \352 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) +
339 (abs(eta) > 2.5) * (0.00)}353 (abs(eta) > 2.5) * (0.00)}
340}354}
341355
@@ -353,7 +367,7 @@
353367
354 set PTMin 0.5368 set PTMin 0.5
355369
356 set PTRatioMax 0.1370 set PTRatioMax 0.12
357}371}
358372
359#################373#################
@@ -367,11 +381,11 @@
367 # set EfficiencyFormula {efficiency as a function of eta and pt}381 # set EfficiencyFormula {efficiency as a function of eta and pt}
368382
369 # efficiency formula for muons383 # efficiency formula for muons
370 set EfficiencyFormula { (pt <= 10.0) * (0.00) + \384 set EfficiencyFormula { (pt <= 10.0) * (0.00) +
371 (abs(eta) <= 1.5) * (pt > 10.0 && pt <= 1.0e3) * (0.95) + \385 (abs(eta) <= 1.5) * (pt > 10.0 && pt <= 1.0e3) * (0.95) +
372 (abs(eta) <= 1.5) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) + \386 (abs(eta) <= 1.5) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) +
373 (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 10.0 && pt <= 1.0e3) * (0.95) + \387 (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 10.0 && pt <= 1.0e3) * (0.95) +
374 (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) + \388 (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 1.0e3) * (0.95 * exp(0.5 - pt*5.0e-4)) +
375 (abs(eta) > 2.4) * (0.00)}389 (abs(eta) > 2.4) * (0.00)}
376}390}
377391
@@ -389,7 +403,7 @@
389403
390 set PTMin 0.5404 set PTMin 0.5
391405
392 set PTRatioMax 0.1406 set PTRatioMax 0.25
393}407}
394408
395###################409###################
@@ -415,12 +429,34 @@
415 set EnergyOutputArray energy429 set EnergyOutputArray energy
416}430}
417431
432
433#####################
434# Neutrino Filter
435#####################
436
437module PdgCodeFilter NeutrinoFilter {
438
439 set InputArray Delphes/stableParticles
440 set OutputArray filteredParticles
441
442 set PTMin 0.0
443
444 add PdgCode {12}
445 add PdgCode {14}
446 add PdgCode {16}
447 add PdgCode {-12}
448 add PdgCode {-14}
449 add PdgCode {-16}
450
451}
452
453
418#####################454#####################
419# MC truth jet finder455# MC truth jet finder
420#####################456#####################
421457
422module FastJetFinder GenJetFinder {458module FastJetFinder GenJetFinder {
423 set InputArray Delphes/stableParticles459 set InputArray NeutrinoFilter/filteredParticles
424460
425 set OutputArray jets461 set OutputArray jets
426462
@@ -431,6 +467,18 @@
431 set JetPTMin 20.0467 set JetPTMin 20.0
432}468}
433469
470#########################
471# Gen Missing ET merger
472########################
473
474module Merger GenMissingET {
475# add InputArray InputArray
476 add InputArray NeutrinoFilter/filteredParticles
477 set MomentumOutputArray momentum
478}
479
480
481
434############482############
435# Jet finder483# Jet finder
436############484############
@@ -456,8 +504,25 @@
456 set InputArray FastJetFinder/jets504 set InputArray FastJetFinder/jets
457 set OutputArray jets505 set OutputArray jets
458506
459 # scale formula for jets507 # scale formula for jets
460 set ScaleFormula {1.00}508 set ScaleFormula {sqrt( (2.5 - 0.15*(abs(eta)))^2 / pt + 1.0 )}
509}
510
511########################
512# Jet Flavor Association
513########################
514
515module JetFlavorAssociation JetFlavorAssociation {
516
517 set PartonInputArray Delphes/partons
518 set ParticleInputArray Delphes/allParticles
519 set ParticleLHEFInputArray Delphes/allParticlesLHEF
520 set JetInputArray JetEnergyScale/jets
521
522 set DeltaR 0.5
523 set PartonPTMin 1.0
524 set PartonEtaMax 2.5
525
461}526}
462527
463###########528###########
@@ -465,38 +530,30 @@
465###########530###########
466531
467module BTagging BTagging {532module BTagging BTagging {
468 set PartonInputArray Delphes/partons
469 set JetInputArray JetEnergyScale/jets533 set JetInputArray JetEnergyScale/jets
470534
471 set BitNumber 0535 set BitNumber 0
472536
473 set DeltaR 0.5
474
475 set PartonPTMin 1.0
476
477 set PartonEtaMax 2.5
478
479 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}537 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
480 # PDG code = the highest PDG code of a quark or gluon inside DeltaR cone around jet axis538 # PDG code = the highest PDG code of a quark or gluon inside DeltaR cone around jet axis
481 # gluon's PDG code has the lowest priority539 # gluon's PDG code has the lowest priority
482540
483 # https://twiki.cern.ch/twiki/bin/view/CMSPublic/PhysicsResultsBTV541 # based on arXiv:1211.4462
542
484 # default efficiency formula (misidentification rate)543 # default efficiency formula (misidentification rate)
485 add EfficiencyFormula {0} {0.001}544 add EfficiencyFormula {0} {0.01+0.000038*pt}
486545
487 # efficiency formula for c-jets (misidentification rate)546 # efficiency formula for c-jets (misidentification rate)
488 add EfficiencyFormula {4} { (pt <= 15.0) * (0.000) + \547 add EfficiencyFormula {4} {0.25*tanh(0.018*pt)*(1/(1+ 0.0013*pt))}
489 (abs(eta) <= 1.2) * (pt > 15.0) * (0.2*tanh(pt*0.03 - 0.4)) + \
490 (abs(eta) > 1.2 && abs(eta) <= 2.5) * (pt > 15.0) * (0.1*tanh(pt*0.03 - 0.4)) + \
491 (abs(eta) > 2.5) * (0.000)}
492548
493 # efficiency formula for b-jets549 # efficiency formula for b-jets
494 add EfficiencyFormula {5} { (pt <= 15.0) * (0.000) + \550 add EfficiencyFormula {5} {0.85*tanh(0.0025*pt)*(25.0/(1+0.063*pt))}
495 (abs(eta) <= 1.2) * (pt > 15.0) * (0.5*tanh(pt*0.03 - 0.4)) + \
496 (abs(eta) > 1.2 && abs(eta) <= 2.5) * (pt > 15.0) * (0.4*tanh(pt*0.03 - 0.4)) + \
497 (abs(eta) > 2.5) * (0.000)}
498}551}
499552
553#############
554# tau-tagging
555#############
556
500module TauTagging TauTagging {557module TauTagging TauTagging {
501 set ParticleInputArray Delphes/allParticles558 set ParticleInputArray Delphes/allParticles
502 set PartonInputArray Delphes/partons559 set PartonInputArray Delphes/partons
@@ -511,9 +568,9 @@
511 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}568 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
512569
513 # default efficiency formula (misidentification rate)570 # default efficiency formula (misidentification rate)
514 add EfficiencyFormula {0} {0.001}571 add EfficiencyFormula {0} {0.01}
515 # efficiency formula for tau-jets572 # efficiency formula for tau-jets
516 add EfficiencyFormula {15} {0.4}573 add EfficiencyFormula {15} {0.6}
517}574}
518575
519#####################################################576#####################################################
@@ -549,6 +606,8 @@
549 add Branch Calorimeter/eflowNeutralHadrons EFlowNeutralHadron Tower606 add Branch Calorimeter/eflowNeutralHadrons EFlowNeutralHadron Tower
550607
551 add Branch GenJetFinder/jets GenJet Jet608 add Branch GenJetFinder/jets GenJet Jet
609 add Branch GenMissingET/momentum GenMissingET MissingET
610
552 add Branch UniqueObjectFinder/jets Jet Jet611 add Branch UniqueObjectFinder/jets Jet Jet
553 add Branch UniqueObjectFinder/electrons Electron Electron612 add Branch UniqueObjectFinder/electrons Electron Electron
554 add Branch UniqueObjectFinder/photons Photon Photon613 add Branch UniqueObjectFinder/photons Photon Photon
@@ -556,4 +615,3 @@
556 add Branch MissingET/momentum MissingET MissingET615 add Branch MissingET/momentum MissingET MissingET
557 add Branch ScalarHT/energy ScalarHT ScalarHT616 add Branch ScalarHT/energy ScalarHT ScalarHT
558}617}
559
560618
=== renamed file 'Template/LO/Cards/reweight_card_default.dat' => 'Template/Common/Cards/reweight_card_default.dat'
--- Template/LO/Cards/reweight_card_default.dat 2013-11-15 12:29:09 +0000
+++ Template/Common/Cards/reweight_card_default.dat 2016-11-23 08:16:42 +0000
@@ -1,25 +1,69 @@
1#******************************************************************1#*************************************************************************
2# Reweight Module *2# Reweight Module *
3#******************************************************************3# Matrix-Element reweighting at LO/NLO *
4# Mattelaer Olivier arxiv:xxxx.xxxx *
5#*************************************************************************
6#
7# Note:
8# 1) the value of alpha_s will be used from the event so the value in
9# the param_card is not taken into account.
10# 2) It is (in general) dangerous/wrong to change parameters by a large
11# amount, if this changes the shape of the matrix elements a lot.
12# (For example, changing a particle's mass by much more than its
13# width leads to very inaccurate result). In such a case, separate
14# event generation runs are needed.
15#
16#************************************************************************
17# ENTER YOUR COMMANDS BELOW.
18#************************************************************************
19
20change mode NLO # Define type of Reweighting. For LO sample this command
21 # has no effect since only "LO" mode is allowed.
22
4launch23launch
5#* Use the set command to specify the new set of parameter 24# SPECIFY A PATH OR USE THE SET COMMAND LIKE THIS:
6#* Or specify a path to a valid param_card/banner25# set sminputs 1 130 # modify 1/alpha_EW
7#* Example of valid command:26
8#* set aewm1 13727
9#* ~/param_card.dat28
10#*29#************************************************************************
11#* Note: 30# Manual: https://cp3.irmp.ucl.ac.be/projects/madgraph/wiki/Reweight
12#* 1) the value of alphas will be used from the event31#************************************************************************
13#* so the value of the param_card is not taken into account.32#
14#* 2) It is dangerous to change a mass of any particle. 33# Example of (standard) code for the computation of two weights:
1534#
1635# launch ! tag to start the computation of the first weight
17#* If you want to compute the weight for more than one hyppothesis36# set BLOCKNAME ID VALUE ! rule to modify the current param_card
18#* you need first to uncomment the following line:37# set BLOCKNAME ID VALUE ! rule to modify the current param_card
19# launch38# launch ! start to compute a second weight
20# and then use the set command to specify your parameter.39# /home/Cards/param_card_2.dat ! you can also enter a path to a valid card
21# All modification will start from the ORIGINAL card not from the 40#
22# last define one.41# Note: The command to specify the parameter are AFTER the associated "launch"
23#* You can have as many weight as you want.42#
2443# Possible options:
44# You can enter one of the following lines to customize the reweighting
45# procedure. These need to be given before the 'launch' command.
46#
47# change model NAME : use another model for the matrix-elements to reweight
48# with. In this case you need to provide the path to a correct
49# param_card for the new model; you cannot modify the original one
50# with the 'set' command.
51# change process DEF [--add]: change the process by which you reweight.
52# The initial and final state particles of the new process should
53# be exactly identical to the ones in the original process.
54# change helicity False: perform the reweighting by helicity summed
55# matrix-elements even if the events have been written with a
56# single helicity state.
57# change mode XXX: change the type of reweighting performed.
58# allowed values: LO, NLO, LO+NLO
59# - This command has no effect for reweighting an .lhe event file with LO accuracy.
60# In that case LO mode is always used (whatever entry is set).
61# - When the .lhe file reweighted is at NLO accuracy, then all modes are allowed.
62# * "LO" is an approximate leading order method
63# * "NLO" is the NLO accurate method
64# * "LO+NLO" runs both
65# - "NLO" and "LO+NLO" modes requires 'store_rwgt_info' equals True (run_card.dat)
66# If the reweighting is done at generation level this parameter will
67# automatically be set on True.
68#************************************************************************
2569
2670
=== removed file 'Template/Common/bin/internal/run_pythia'
--- Template/Common/bin/internal/run_pythia 2013-11-05 10:16:20 +0000
+++ Template/Common/bin/internal/run_pythia 1970-01-01 00:00:00 +0000
@@ -1,23 +0,0 @@
1#!/bin/bash
2#
3# This runs pythia on the unweighted_events.dat
4#
5# Usage: run_pythia [pydir]
6# where pydir is the path to the pythia executable
7
8pydir=$1
9main=`pwd`
10
11if [ ! -e ../Cards/pythia_card.dat ]; then
12 echo "No pythia_card.dat found. Quitting..."
13 exit
14fi
15
16echo $$ >> ../myprocid
17# shower and hadronize event through Pythia
18echo " " >> ../Cards/pythia_card.dat
19echo " LHAPATH=$pydir/PDFsets" >> ../Cards/pythia_card.dat
20export PDG_MASS_TBL=$pydir/mass_width_2004.mc
21rm -rf Events/hepmv_event.hepmc &> /dev/null
22$pydir/pythia && touch pythia.done
23
240
=== added file 'Template/LO/Cards/madanalysis5_hadron_card_default.dat'
--- Template/LO/Cards/madanalysis5_hadron_card_default.dat 1970-01-01 00:00:00 +0000
+++ Template/LO/Cards/madanalysis5_hadron_card_default.dat 2016-11-23 08:16:42 +0000
@@ -0,0 +1,3 @@
1# This card is used only if MA5 failed to create a default for this run
2# We therefore use as default: do nothing
3@MG5aMC skip_analysis
0\ No newline at end of file4\ No newline at end of file
15
=== added file 'Template/LO/Cards/madanalysis5_parton_card_default.dat'
--- Template/LO/Cards/madanalysis5_parton_card_default.dat 1970-01-01 00:00:00 +0000
+++ Template/LO/Cards/madanalysis5_parton_card_default.dat 2016-11-23 08:16:42 +0000
@@ -0,0 +1,3 @@
1# This card is used only if MA5 failed to create a default for this run
2# We therefore use as default: do nothing
3@MG5aMC skip_analysis
0\ No newline at end of file4\ No newline at end of file
15
=== added file 'Template/LO/Cards/pythia8_card_default.dat'
--- Template/LO/Cards/pythia8_card_default.dat 1970-01-01 00:00:00 +0000
+++ Template/LO/Cards/pythia8_card_default.dat 2016-11-23 08:16:42 +0000
@@ -0,0 +1,77 @@
1!
2! Pythia8 cmd card automatically generated by MadGraph5_aMC@NLO
3! For more information on the use of the MG5aMC / Pythia8 interface, visit
4! https://cp3.irmp.ucl.ac.be/projects/madgraph/wiki/LOPY8Merging
5!
6! ==================
7! General parameters
8! ==================
9!
10Main:numberOfEvents = -1
11!
12! -------------------------------------------------------------------
13! Specify the HEPMC output of the Pythia8 shower. You can set it to:
14! auto : MG5aMC will automatically place it the run_<i> directory
15! /dev/null : to turn off the HEPMC output.
16! <path> : to select where the HEPMC file must written. It will
17! therefore not be placed in the run_<i> directory. The
18! specified path, if not absolute, will be relative to
19! the Event/run_<i> directory of the process output.
20! fifo : to have MG5aMC setup the piping of the PY8 output to
21! analysis tools such as MadAnalysis5.
22! fifo@<fifo_path> :
23! Same as 'fifo', but selecting a custom path to create the
24! fifo pipe. (useful to select a mounted drive that supports
25! fifo). Note that the fifo file extension *must* be '.hepmc.fifo'.
26! -------------------------------------------------------------------
27!
28HEPMCoutput:file = auto
29!
30! --------------------------------------------------------------------
31! Parameters relevant only when performing MLM merging, which can be
32! turned on by setting ickkw to '1' in the run_card and chosing a
33! positive value for the parameter xqcut.
34! For details, see section 'Jet Matching' on the left-hand menu of
35! http://home.thep.lu.se/~torbjorn/pythia81html/Welcome.html
36! --------------------------------------------------------------------
37! If equal to -1.0, MadGraph5_aMC@NLO will set it automatically based
38! on the parameter 'xqcut' of the run_card.dat
39JetMatching:qCut = -1.0
40! Use default kt-MLM to match parton level jets to those produced by the
41! shower. But the other Shower-kt scheme is available too with this option.
42JetMatching:doShowerKt = off
43! A value of -1 means that it is automatically guessed by MadGraph.
44! It is however always safer to explicitly set it.
45JetMatching:nJetMax = -1
46!
47! --------------------------------------------------------------------
48! Parameters relevant only when performing CKKW-L merging, which can
49! be turned on by setting the parameter 'ptlund' *or* 'ktdurham' to
50! a positive value.
51! For details, see section 'CKKW-L Merging' on the left-hand menu of
52! http://home.thep.lu.se/~torbjorn/pythia81html/Welcome.html
53! --------------------------------------------------------------------
54! Central merging scale values you want to be used.
55! If equal to -1.0, then MadGraph5_aMC@NLO will set this automatically
56! based on the parameter 'ktdurham' of the run_card.dat
57Merging:TMS = -1.0
58! This must be set manually, according to Pythia8 directives.
59! An example of possible value is 'pp>LEPTONS,NEUTRINOS'
60Merging:Process = <set_by_user>
61! A value of -1 means that it is automatically guessed by MadGraph.
62! It is however always safer to explicitly set it.
63Merging:nJetMax = -1
64!
65! For all merging schemes, decide wehter you want the merging scale
66! variation computed for only the central weights or all other
67! PDF and scale variation weights as well
68SysCalc:fullCutVariation = off
69!
70! ==========================
71! User customized parameters
72! ==========================
73!
74! By default, Pythia8 generates multi-parton interaction events. This is
75! often irrelevant for phenomenology and very slow. You can turn this
76! feature off by uncommenting the line below if so desired.
77!partonlevel:mpi = off
078
=== modified file 'Template/LO/Cards/run_card.dat'
--- Template/LO/Cards/run_card.dat 2015-07-30 15:57:44 +0000
+++ Template/LO/Cards/run_card.dat 2016-11-23 08:16:42 +0000
@@ -21,10 +21,6 @@
21#*********************************************************************21#*********************************************************************
22 %(run_tag)s = run_tag ! name of the run 22 %(run_tag)s = run_tag ! name of the run
23#*********************************************************************23#*********************************************************************
24# Run to generate the grid pack *
25#*********************************************************************
26 %(gridpack)s = gridpack !True = setting up the grid pack
27#*********************************************************************
28# Number of events and rnd seed *24# Number of events and rnd seed *
29# Warning: Do not generate more than 1M events in a single run *25# Warning: Do not generate more than 1M events in a single run *
30# If you want to run Pythia, avoid more than 50k events in a run. *26# If you want to run Pythia, avoid more than 50k events in a run. *
@@ -61,51 +57,55 @@
61 %(dynamical_scale_choice)s = dynamical_scale_choice ! Choose one of the preselected dynamical choices57 %(dynamical_scale_choice)s = dynamical_scale_choice ! Choose one of the preselected dynamical choices
62 %(scalefact)s = scalefact ! scale factor for event-by-event scales58 %(scalefact)s = scalefact ! scale factor for event-by-event scales
63#*********************************************************************59#*********************************************************************
64# Time of flight information. (-1 means not run)60# Type and output format
65#*********************************************************************61#*********************************************************************
66 %(time_of_flight)s = time_of_flight ! threshold below which info is not written62 %(gridpack)s = gridpack !True = setting up the grid pack
67#*********************************************************************63 %(time_of_flight)s = time_of_flight ! threshold (in mm) below which the invariant livetime is not written (-1 means not written)
68# Matching - Warning! ickkw > 1 is still beta64 %(lhe_version)s = lhe_version ! Change the way clustering information pass to shower.
69#*********************************************************************65 %(clusinfo)s = clusinfo ! include clustering tag in output
70 %(ickkw)s = ickkw ! 0 no matching, 1 MLM, 2 CKKW matching66 %(event_norm)s = event_norm ! average/sum. Normalization of the weight in the LHEF
71 %(highestmult)s = highestmult ! for ickkw=2, highest mult group67
72 %(ktscheme)s = ktscheme ! for ickkw=1, 1 Durham kT, 2 Pythia pTE68#*********************************************************************
69# Matching parameter (MLM only)
70#*********************************************************************
71 %(ickkw)s = ickkw ! 0 no matching, 1 MLM
73 %(alpsfact)s = alpsfact ! scale factor for QCD emission vx72 %(alpsfact)s = alpsfact ! scale factor for QCD emission vx
74 %(chcluster)s = chcluster ! cluster only according to channel diag73 %(chcluster)s = chcluster ! cluster only according to channel diag
75 %(pdfwgt)s = pdfwgt ! for ickkw=1, perform pdf reweighting
76 %(asrwgtflavor)s = asrwgtflavor ! highest quark flavor for a_s reweight74 %(asrwgtflavor)s = asrwgtflavor ! highest quark flavor for a_s reweight
77 %(clusinfo)s = clusinfo ! include clustering tag in output75 %(auto_ptj_mjj)s = auto_ptj_mjj ! Automatic setting of ptj and mjj if xqcut >0
78 %(lhe_version)s = lhe_version ! Change the way clustering information pass to shower. 76 ! (turn off for VBF and single top processes)
79#*********************************************************************77 %(xqcut)s = xqcut ! minimum kt jet measure between partons
80#**********************************************************78#*********************************************************************
81#79#
82#**********************************************************80#*********************************************************************
83# Automatic ptj and mjj cuts if xqcut > 081# handling of the helicities:
84# (turn off for VBF and single top processes)82# 0: sum over all helicities
85#**********************************************************83# 1: importance sampling over helicities
86 %(auto_ptj_mjj)s = auto_ptj_mjj ! Automatic setting of ptj and mjj84#*********************************************************************
87#**********************************************************85 %(nhel)s = nhel ! using helicities importance sampling or not.
86#*********************************************************************
87# Generation bias, check the wiki page below for more information: *
88# 'cp3.irmp.ucl.ac.be/projects/madgraph/wiki/LOEventGenerationBias' *
89#*********************************************************************
90 %(bias_module)s = bias_module ! Bias type of bias, [None, ptj_bias, -custom_folder-]
91 %(bias_parameters)s = bias_parameters ! Specifies the parameters of the module.
92#
93#*******************************
94# Parton level cuts definition *
95#*******************************
88# 96#
89#**********************************97#
90# BW cutoff (M+/-bwcutoff*Gamma)98#*********************************************************************
91#**********************************99# BW cutoff (M+/-bwcutoff*Gamma) ! Define on/off-shell for "$" and decay
100#*********************************************************************
92 %(bwcutoff)s = bwcutoff ! (M+/-bwcutoff*Gamma)101 %(bwcutoff)s = bwcutoff ! (M+/-bwcutoff*Gamma)
93#**********************************************************102#*********************************************************************
94# Apply pt/E/eta/dr/mij cuts on decay products or not103# Apply pt/E/eta/dr/mij/kt_durham cuts on decay products or not
95# (note that etmiss/ptll/ptheavy/ht/sorted cuts always apply)104# (note that etmiss/ptll/ptheavy/ht/sorted cuts always apply)
96#**********************************************************105#*********************************************************************
97 %(cut_decays)s = cut_decays ! Cut decay products 106 %(cut_decays)s = cut_decays ! Cut decay products
98#*************************************************************107#*********************************************************************
99# Number of helicities to sum per event (0 = all helicities)108# Standard Cuts *
100# 0 gives more stable result, but longer run time (needed for
101# long decay chains e.g.).
102# Use >=2 if most helicities contribute, e.g. pure QCD.
103#*************************************************************
104 %(nhel)s = nhel ! Number of helicities used per event
105#*******************
106# Standard Cuts
107#*******************
108#
109#*********************************************************************109#*********************************************************************
110# Minimum and maximum pt's (for max, -1 means no cut) *110# Minimum and maximum pt's (for max, -1 means no cut) *
111#*********************************************************************111#*********************************************************************
@@ -246,27 +246,24 @@
246#*********************************************************************246#*********************************************************************
247 %(xetamin)s = xetamin ! minimum rapidity for two jets in the WBF case 247 %(xetamin)s = xetamin ! minimum rapidity for two jets in the WBF case
248 %(deltaeta)s = deltaeta ! minimum rapidity for two jets in the WBF case 248 %(deltaeta)s = deltaeta ! minimum rapidity for two jets in the WBF case
249#*********************************************************************249#***********************************************************************
250# KT DURHAM CUT *250# Turn on either the ktdurham or ptlund cut to activate *
251#*********************************************************************251# CKKW(L) merging with Pythia8 [arXiv:1410.3012, arXiv:1109.4829] *
252 %(ktdurham)s = ktdurham 252#***********************************************************************
253 %(dparameter)s = dparameter 253 %(ktdurham)s = ktdurham
254 %(dparameter)s = dparameter
255 %(ptlund)s = ptlund
256 %(pdgs_for_merging_cut)s = pdgs_for_merging_cut ! PDGs for two cuts above
254#*********************************************************************257#*********************************************************************
255# maximal pdg code for quark to be considered as a light jet *258# maximal pdg code for quark to be considered as a light jet *
256# (otherwise b cuts are applied) *259# (otherwise b cuts are applied) *
257#*********************************************************************260#*********************************************************************
258 %(maxjetflavor)s = maxjetflavor ! Maximum jet pdg code261 %(maxjetflavor)s = maxjetflavor ! Maximum jet pdg code
259#*********************************************************************262#*********************************************************************
260# Jet measure cuts *
261#*********************************************************************
262 %(xqcut)s = xqcut ! minimum kt jet measure between partons
263#*********************************************************************
264#263#
265#*********************************************************************264#*********************************************************************
266# Store info for systematics studies *265# Store info for systematics studies *
267# WARNING: If use_syst is T, matched Pythia output is *266# WARNING: Do not use for interference type of computation *
268# meaningful ONLY if plotted taking matchscale *
269# reweighting into account! *
270#*********************************************************************267#*********************************************************************
271 %(use_syst)s = use_syst ! Enable systematics studies268 %(use_syst)s = use_syst ! Enable systematics studies
272#269#
@@ -279,5 +276,6 @@
279%(sys_alpsfact)s = sys_alpsfact # \alpha_s emission scale factors276%(sys_alpsfact)s = sys_alpsfact # \alpha_s emission scale factors
280%(sys_matchscale)s = sys_matchscale # variation of merging scale277%(sys_matchscale)s = sys_matchscale # variation of merging scale
281# PDF sets and number of members (0 or none for all members).278# PDF sets and number of members (0 or none for all members).
282%(sys_pdf)s = sys_pdf # matching scales279%(sys_pdf)s = sys_pdf # separate by && if more than one set.
283# MSTW2008nlo68cl.LHgrid 1 = sys_pdf280# MSTW2008nlo68cl.LHgrid 1 = sys_pdf
281#
284282
=== added directory 'Template/LO/Source/BIAS'
=== added directory 'Template/LO/Source/BIAS/dummy'
=== added file 'Template/LO/Source/BIAS/dummy/dummy.f'
--- Template/LO/Source/BIAS/dummy/dummy.f 1970-01-01 00:00:00 +0000
+++ Template/LO/Source/BIAS/dummy/dummy.f 2016-11-23 08:16:42 +0000
@@ -0,0 +1,44 @@
1C ************************************************************
2C Source for the library implementing a dummt bias function
3C always returns one
4C ************************************************************
5
6 subroutine bias_wgt(p, original_weight, bias_weight)
7 implicit none
8C
9C Parameters
10C
11 include '../../nexternal.inc'
12C
13C Arguments
14C
15 double precision p(0:3,nexternal)
16 double precision original_weight, bias_weight
17C
18C local variables
19C
20C
21C Global variables
22C
23C Mandatory common block to be defined in bias modules
24C
25 double precision stored_bias_weight
26 data stored_bias_weight/1.0d0/
27 logical impact_xsec, requires_full_event_info
28C Not impacting the xsec since the bias is 1.0. Therefore
29C bias_wgt will not be written in the lhe event file.
30C Setting it to .True. makes sure that it will not be written.
31 data impact_xsec/.True./
32C Of course this module does not require the full event
33C information (color, resonances, helicities, etc..)
34 data requires_full_event_info/.False./
35 common/bias/stored_bias_weight,impact_xsec,
36 & requires_full_event_info
37
38C --------------------
39C BEGIN IMPLEMENTATION
40C --------------------
41
42 bias_weight = 1.0d0
43
44 end subroutine bias_wgt
045
=== added file 'Template/LO/Source/BIAS/dummy/makefile'
--- Template/LO/Source/BIAS/dummy/makefile 1970-01-01 00:00:00 +0000
+++ Template/LO/Source/BIAS/dummy/makefile 2016-11-23 08:16:42 +0000
@@ -0,0 +1,21 @@
1
2include ../../make_opts
3
4all: dummy
5
6clean:
7 $(RM) *.o $(BIASLIBDIR)$(BIASLIBRARY)
8
9#
10# Compilation of the module dummy
11#
12
13dummy: dummy.o
14 $(call CREATELIB, $(BIASLIBDIR)$(BIASLIBRARY), $^)
15
16#
17# List of the requirements for this module.
18# 'VALID' is the keyword that *must* be returned if everything is in order.
19#
20requirements:
21 @echo "VALID"
022
=== added directory 'Template/LO/Source/BIAS/ptj_bias'
=== added file 'Template/LO/Source/BIAS/ptj_bias/makefile'
--- Template/LO/Source/BIAS/ptj_bias/makefile 1970-01-01 00:00:00 +0000
+++ Template/LO/Source/BIAS/ptj_bias/makefile 2016-11-23 08:16:42 +0000
@@ -0,0 +1,27 @@
1include ../../make_opts
2
3all: ptj_bias
4
5clean:
6 $(RM) *.o $(BIASLIBDIR)$(BIASLIBRARY)
7
8#
9# Compilation of the module ptj_bias
10#
11ptj_bias.o: ptj_bias.f ../bias.inc
12 $(FC) $(FFLAGS) $(LDFLAGS) -c -o ptj_bias.o ptj_bias.f
13
14ptj_bias: ptj_bias.o
15 $(call CREATELIB, $(BIASLIBDIR)$(BIASLIBRARY), $^)
16
17#
18# List of the requirements for this module.
19# 'VALID' is the keyword that *must* be returned if everything is in order.
20#
21requirements:
22ifeq ($(shell $(call CHECK_MG5AMC_VERSION,2.4.2)),True)
23 @echo "VALID"
24else
25 @echo "Error:: MG5aMC is not recent enough (found "$(MG5AMC_VERSION)")"
26 @echo "FAIL"
27endif
028
=== added file 'Template/LO/Source/BIAS/ptj_bias/ptj_bias.f'
--- Template/LO/Source/BIAS/ptj_bias/ptj_bias.f 1970-01-01 00:00:00 +0000
+++ Template/LO/Source/BIAS/ptj_bias/ptj_bias.f 2016-11-23 08:16:42 +0000
@@ -0,0 +1,101 @@
1C ************************************************************
2C Source for the library implementing a bias function that
3C populates the large pt tale of the leading jet.
4C
5C The two options of this subroutine, that can be set in
6C the run card are:
7C > (double precision) ptj_bias_target_ptj : target ptj value
8C > (double precision) ptj_bias_enhancement_power : exponent
9C
10C Schematically, the functional form of the enhancement is
11C bias_wgt = [ptj(evt)/mean_ptj]^enhancement_power
12C ************************************************************
13C
14C The following lines are read by MG5aMC to set what are the
15C relevant parameters for this bias module.
16C
17C parameters = {'ptj_bias_target_ptj': 1000.0,
18C 'ptj_bias_enhancement_power': 4.0}
19C
20
21 subroutine bias_wgt(p, original_weight, bias_weight)
22 implicit none
23C
24C Parameters
25C
26 include '../../maxparticles.inc'
27 include '../../nexternal.inc'
28
29C
30C Arguments
31C
32 double precision p(0:3,nexternal)
33 double precision original_weight, bias_weight
34C
35C local variables
36C
37 integer i
38 double precision ptj(nexternal)
39 double precision max_ptj
40c
41c local variables defined in the run_card
42c
43 double precision ptj_bias_target_ptj
44 double precision ptj_bias_enhancement_power
45C
46C Global variables
47C
48C
49C Mandatory common block to be defined in bias modules
50C
51 double precision stored_bias_weight
52 data stored_bias_weight/1.0d0/
53 logical impact_xsec, requires_full_event_info
54C We only want to bias distributions, but not impact the xsec.
55 data impact_xsec/.False./
56C Of course this module does not require the full event
57C information (color, resonances, helicities, etc..)
58 data requires_full_event_info/.False./
59 common/bias/stored_bias_weight,impact_xsec,
60 & requires_full_event_info
61C
62C Accessingt the details of the event
63C
64 logical is_a_j(nexternal),is_a_l(nexternal),
65 & is_a_b(nexternal),is_a_a(nexternal),
66 & is_a_onium(nexternal),is_a_nu(nexternal),
67 & is_heavy(nexternal),do_cuts(nexternal)
68 common/to_specisa/is_a_j,is_a_a,is_a_l,is_a_b,is_a_nu,
69 & is_heavy,is_a_onium,do_cuts
70
71C
72C Setup the value of the parameters from the run_card
73C
74 include '../bias.inc'
75
76C --------------------
77C BEGIN IMPLEMENTATION
78C --------------------
79
80 do i=1,nexternal
81 ptj(i)=-1.0d0
82 if (is_a_j(i)) then
83 ptj(i)=sqrt(p(1,i)**2+p(2,i)**2)
84 endif
85 enddo
86
87 max_ptj=-1.0d0
88 do i=1,nexternal
89 max_ptj = max(max_ptj,ptj(i))
90 enddo
91 if (max_ptj.lt.0.0d0) then
92 bias_weight = 1.0d0
93 return
94 endif
95
96 bias_weight = (max_ptj/ptj_bias_target_ptj)
97 & **ptj_bias_enhancement_power
98
99 return
100
101 end subroutine bias_wgt
0102
=== modified file 'Template/LO/Source/PDF/makefile'
--- Template/LO/Source/PDF/makefile 2014-09-05 11:30:25 +0000
+++ Template/LO/Source/PDF/makefile 2016-11-23 08:16:42 +0000
@@ -11,7 +11,11 @@
11include ../make_opts11include ../make_opts
1212
13ifdef lhapdf13ifdef lhapdf
14 PDF = pdfwrap_lhapdf.o pdf_lhapdf.o pdg2pdf_lhapdf.o opendata.o14 ifeq ($(lhapdfversion),5)
15 PDF = pdfwrap_lhapdf.o pdf_lhapdf.o pdg2pdf_lhapdf.o opendata.o PhotonFlux.o
16 else
17 PDF = pdfwrap_lhapdf.o pdf_lhapdf6.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o
18 endif
15else19else
16 PDF = Ctq4Fn.o Ctq5Par.o Ctq5Pdf.o Partonx5.o Ctq6Pdf.o cteq3.o \20 PDF = Ctq4Fn.o Ctq5Par.o Ctq5Pdf.o Partonx5.o Ctq6Pdf.o cteq3.o \
17 mrs98.o mrs98lo.o mrs98ht.o mrs99.o mrst2001.o mrst2002.o jeppe02.o \21 mrs98.o mrs98lo.o mrs98ht.o mrs99.o mrst2001.o mrst2002.o jeppe02.o \
1822
=== modified file 'Template/LO/Source/PDF/pdf_lhapdf.f'
--- Template/LO/Source/PDF/pdf_lhapdf.f 2014-06-19 11:20:33 +0000
+++ Template/LO/Source/PDF/pdf_lhapdf.f 2016-11-23 08:16:42 +0000
@@ -11,6 +11,7 @@
11 INTEGER IH,I11 INTEGER IH,I
12 double precision photon12 double precision photon
13 LOGICAL has_photon13 LOGICAL has_photon
14 double precision epa_electron,epa_proton
14C15C
15C Include16C Include
16C17C
@@ -28,11 +29,11 @@
28 do i=-6,629 do i=-6,6
29 pdf(i)=f(i)/x30 pdf(i)=f(i)/x
30 enddo31 enddo
32 elseif(ih .eq. 2) then !from a proton without breaking
33 pdf(7) = epa_proton(x, q * q)
31 else34 else
32 write (*,*) 'beam type not supported in lhadpf'35 write (*,*) 'beam type not supported in lhadpf'
33 do i=-6,636 stop 1
34 pdf(i)=0d0
35 enddo
36 endif37 endif
3738
38 return 39 return
3940
=== added file 'Template/LO/Source/PDF/pdf_lhapdf6.cc'
--- Template/LO/Source/PDF/pdf_lhapdf6.cc 1970-01-01 00:00:00 +0000
+++ Template/LO/Source/PDF/pdf_lhapdf6.cc 2016-11-23 08:16:42 +0000
@@ -0,0 +1,1120 @@
1// -*- C++ -*-
2//
3// This file is part of LHAPDF
4// Copyright (C) 2012-2014 The LHAPDF collaboration (see AUTHORS for details)
5//
6#include "LHAPDF/PDF.h"
7#include "LHAPDF/PDFSet.h"
8#include "LHAPDF/PDFIndex.h"
9#include "LHAPDF/Factories.h"
10#include "LHAPDF/Utils.h"
11#include "LHAPDF/Paths.h"
12#include "LHAPDF/Version.h"
13#include "LHAPDF/LHAGlue.h"
14
15using namespace std;
16
17
18// We have to create and initialise some common blocks here for backwards compatibility
19struct w50512 {
20 double qcdl4, qcdl5;
21};
22w50512 w50512_;
23
24struct w50513 {
25 double xmin, xmax, q2min, q2max;
26};
27w50513 w50513_;
28
29struct lhapdfr {
30 double qcdlha4, qcdlha5;
31 int nfllha;
32};
33lhapdfr lhapdfr_;
34
35
36
37namespace lhapdf_amc { //< Unnamed namespace to restrict visibility to this file
38
39 /// @brief PDF object storage here is a smart pointer to ensure deletion of created PDFs
40 ///
41 /// NB. std::auto_ptr cannot be stored in STL containers, hence we use
42 /// boost::shared_ptr. std::unique_ptr is the nature replacement when C++11
43 /// is globally available.
44 typedef boost::shared_ptr<LHAPDF::PDF> PDFPtr;
45
46 /// @brief A struct for handling the active PDFs for the Fortran interface.
47 ///
48 /// We operate in a string-based way, since maybe there will be sets with names, but no
49 /// index entry in pdfsets.index.
50 ///
51 /// @todo Can we avoid the strings and just work via the LHAPDF ID and factory construction?
52 ///
53 /// Smart pointers are used in the native map used for PDF member storage so
54 /// that they auto-delete if the PDFSetHandler that holds them goes out of
55 /// scope (i.e. is overwritten).
56 struct PDFSetHandler {
57
58 /// Default constructor
59 PDFSetHandler() : currentmem(0)
60 { } //< It'll be stored in a map so we need one of these...
61
62 /// Constructor from a PDF set name
63 PDFSetHandler(const string& name)
64 : setname(name)
65 {
66 loadMember(0);
67 }
68
69 /// Constructor from a PDF set's LHAPDF ID code
70 PDFSetHandler(int lhaid) {
71 pair<string,int> set_mem = LHAPDF::lookupPDF(lhaid);
72 // First check that the lookup was successful, i.e. it was a valid ID for the LHAPDF6 set collection
73 if (set_mem.first.empty() || set_mem.second < 0)
74 throw LHAPDF::UserError("Could not find a valid PDF with LHAPDF ID = " + LHAPDF::to_str(lhaid));
75 // Try to load this PDF (checking that the member number is in the set's range is done in mkPDF, called by loadMember)
76 setname = set_mem.first;
77 loadMember(set_mem.second);
78 }
79
80 /// @brief Load a new PDF member
81 ///
82 /// If it's already loaded, the existing object will not be reloaded.
83 void loadMember(int mem) {
84 if (mem < 0)
85 throw LHAPDF::UserError("Tried to load a negative PDF member ID: " + LHAPDF::to_str(mem) + " in set " + setname);
86 if (members.find(mem) == members.end())
87 members[mem] = PDFPtr(LHAPDF::mkPDF(setname, mem));
88 currentmem = mem;
89 }
90
91 /// Actively delete a PDF member to save memory
92 void unloadMember(int mem) {
93 members.erase(mem);
94 const int nextmem = (!members.empty()) ? members.begin()->first : 0;
95 loadMember(nextmem);
96 }
97
98 /// @brief Get a PDF member
99 ///
100 /// Non-const because it can secretly load the member. Not that constness
101 /// matters in a Fortran interface utility function!
102 const PDFPtr member(int mem) {
103 loadMember(mem);
104 return members.find(mem)->second;
105 }
106
107 /// Get the currently active PDF member
108 ///
109 /// Non-const because it can secretly load the member. Not that constness
110 /// matters in a Fortran interface utility function!
111 const PDFPtr activemember() {
112 return member(currentmem);
113 }
114
115 /// The currently active member in this set
116 int currentmem;
117
118 /// Name of this set
119 string setname;
120
121 /// Map of pointers to selected member PDFs
122 ///
123 // /// It's mutable so that a "const" member-getting operation can implicitly
124 // /// load a new PDF object. Good idea / bad idea? Disabled for now.
125 // mutable map<int, PDFPtr> members;
126 map<int, PDFPtr> members;
127 };
128
129
130 /// Collection of active sets
131 static map<int, PDFSetHandler> ACTIVESETS;
132
133 /// The currently active set
134 int CURRENTSET = 0;
135
136}
137
138
139
140string lhaglue_get_current_pdf(int nset) {
141 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
142 return "NONE";
143 lhapdf_amc::CURRENTSET = nset;
144 return lhapdf_amc::ACTIVESETS[nset].activemember()->set().name() + " (" +
145 LHAPDF::to_str(lhapdf_amc::ACTIVESETS[nset].activemember()->lhapdfID()) + ")";
146}
147
148
149
150extern "C" {
151
152 // NEW FORTRAN INTERFACE FUNCTIONS
153
154 /// List of available sets
155 void lhapdf_getversion_(char* s, size_t len) {
156 strncpy(s, LHAPDF_VERSION, len);
157 }
158
159 /// List of available PDF sets, returned as a space-separated string
160 void lhapdf_getpdfsetlist_(char* s, size_t len) {
161 string liststr;
162 BOOST_FOREACH(const string& setname, LHAPDF::availablePDFSets()) {
163 if (!liststr.empty()) liststr += " ";
164 liststr += setname;
165 }
166 strncpy(s, liststr.c_str(), len);
167 }
168
169
170 //////////////////
171
172 // LHAPDF5 / PDFLIB COMPATIBILITY INTERFACE FUNCTIONS
173
174
175 // System-level info
176
177 /// LHAPDF library version
178 void getlhapdfversion_(char* s, size_t len) {
179 /// @todo Works? Need to check Fortran string return, string macro treatment, etc.
180 strncpy(s, LHAPDF_VERSION, len);
181 }
182
183
184 /// Does nothing, only provided for backward compatibility
185 void lhaprint_(int& a) { }
186
187
188 /// Set LHAPDF parameters -- does nothing in LHAPDF6!
189 void setlhaparm_(const char* par, int parlength) {
190 /// @todo Can any Fortran LHAPDF params be usefully mapped?
191 }
192
193
194 /// Return a dummy max number of sets (there is no limitation now)
195 void getmaxnumsets_(int& nmax) {
196 nmax = 1000;
197 }
198
199
200 /// Set PDF data path
201 void setpdfpath_(const char* s, size_t len) {
202 /// @todo Works? Need to check C-string copying, null termination
203 char s2[1024];
204 s2[len] = '\0';
205 strncpy(s2, s, len);
206 LHAPDF::pathsPrepend(s2);
207 }
208
209 /// Get PDF data path (colon-separated if there is more than one element)
210 void getdatapath_(char* s, size_t len) {
211 /// @todo Works? Need to check Fortran string return, string macro treatment, etc.
212 string pathstr;
213 BOOST_FOREACH(const string& path, LHAPDF::paths()) {
214 if (!pathstr.empty()) pathstr += ":";
215 pathstr += path;
216 }
217 strncpy(s, pathstr.c_str(), len);
218 }
219
220
221 // PDF initialisation and focus-switching
222
223 /// Load a PDF set
224 ///
225 /// @todo Does this version actually take a *path*? What to do?
226 void initpdfsetm_(const int& nset, const char* setpath, int setpathlength) {
227 // Strip file extension for backward compatibility
228 string fullp = string(setpath, setpathlength);
229 // Remove trailing whitespace
230 fullp.erase( std::remove_if( fullp.begin(), fullp.end(), ::isspace ), fullp.end() );
231 // Use only items after the last /
232 const string pap = LHAPDF::dirname(fullp);
233 const string p = LHAPDF::basename(fullp);
234 // Prepend path to search area
235 LHAPDF::pathsPrepend(pap);
236 // Handle extensions
237 string path = LHAPDF::file_extn(p).empty() ? p : LHAPDF::file_stem(p);
238 /// @note We correct the misnamed CTEQ6L1/CTEQ6ll set name as a backward compatibility special case.
239 if (boost::algorithm::to_lower_copy(path) == "cteq6ll") path = "cteq6l1";
240 // Create the PDF set with index nset
241 // if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
242 lhapdf_amc::ACTIVESETS[nset] = lhapdf_amc::PDFSetHandler(path); //< @todo Will be wrong if a structured path is given
243 lhapdf_amc::CURRENTSET = nset;
244 }
245 /// Load a PDF set (non-multiset version)
246 void initpdfset_(const char* setpath, int setpathlength) {
247 int nset1 = 1;
248 initpdfsetm_(nset1, setpath, setpathlength);
249 }
250
251
252 /// Load a PDF set by name
253 void initpdfsetbynamem_(const int& nset, const char* setname, int setnamelength) {
254 // Truncate input to size setnamelength
255 string p = setname;
256 p.erase(setnamelength, std::string::npos);
257 // Strip file extension for backward compatibility
258 string name = LHAPDF::file_extn(p).empty() ? p : LHAPDF::file_stem(p);
259 // Remove trailing whitespace
260 name.erase( std::remove_if( name.begin(), name.end(), ::isspace ), name.end() );
261 /// @note We correct the misnamed CTEQ6L1/CTEQ6ll set name as a backward compatibility special case.
262 if (boost::algorithm::to_lower_copy(name) == "cteq6ll") name = "cteq6l1";
263 // Create the PDF set with index nset
264 // if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
265 lhapdf_amc::ACTIVESETS[nset] = lhapdf_amc::PDFSetHandler(name);
266 // Update current set focus
267 lhapdf_amc::CURRENTSET = nset;
268 }
269 /// Load a PDF set by name (non-multiset version)
270 void initpdfsetbyname_(const char* setname, int setnamelength) {
271 int nset1 = 1;
272 initpdfsetbynamem_(nset1, setname, setnamelength);
273 }
274
275
276 /// Load a PDF in current set
277 void initpdfm_(const int& nset, const int& nmember) {
278 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
279 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
280 lhapdf_amc::ACTIVESETS[nset].loadMember(nmember);
281 // Update current set focus
282 lhapdf_amc::CURRENTSET = nset;
283 }
284 /// Load a PDF in current set (non-multiset version)
285 void initpdf_(const int& nmember) {
286 int nset1 = 1;
287 initpdfm_(nset1, nmember);
288 }
289
290
291 /// Get the current set number (i.e. allocation slot index)
292 void getnset_(int& nset) {
293 nset = lhapdf_amc::CURRENTSET;
294 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
295 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
296 }
297
298 /// Explicitly set the current set number (i.e. allocation slot index)
299 void setnset_(const int& nset) {
300 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
301 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
302 lhapdf_amc::CURRENTSET = nset;
303 }
304
305
306 /// Get the current member number in slot nset
307 void getnmem_(int& nset, int& nmem) {
308 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
309 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
310 nmem = lhapdf_amc::ACTIVESETS[nset].currentmem;
311 // Update current set focus
312 lhapdf_amc::CURRENTSET = nset;
313 }
314
315 /// Set the current member number in slot nset
316 void setnmem_(const int& nset, const int& nmem) {
317 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
318 throw LHAPDF::UserError("Trying to use LHAGLUE set #" +
319 LHAPDF::to_str(nset) + " but it is not initialised");
320 lhapdf_amc::ACTIVESETS[nset].loadMember(nmem);
321 // Update current set focus
322 lhapdf_amc::CURRENTSET = nset;
323 }
324
325
326
327 // PDF evolution functions
328
329 /// Get xf(x) values for common partons from current PDF
330 void evolvepdfm_(const int& nset, const double& x, const double& q, double* fxq) {
331 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
332 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
333 // Evaluate for the 13 LHAPDF5 standard partons (-6..6)
334 for (size_t i = 0; i < 13; ++i) {
335 try {
336 fxq[i] = lhapdf_amc::ACTIVESETS[nset].activemember()->xfxQ(i-6, x, q);
337 } catch (const exception& e) {
338 fxq[i] = 0;
339 }
340 }
341 // Update current set focus
342 lhapdf_amc::CURRENTSET = nset;
343 }
344 /// Get xf(x) values for common partons from current PDF (non-multiset version)
345 void evolvepdf_(const double& x, const double& q, double* fxq) {
346 int nset1 = 1;
347 evolvepdfm_(nset1, x, q, fxq);
348 }
349
350 // PDF evolution functions
351 // NEW BY MZ to evolve one single parton
352
353 /// Get xf(x) values for common partons from current PDF
354 void evolvepartm_(const int& nset, const int& ipart, const double& x, const double& q, double& fxq) {
355 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
356 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
357 int ipart_copy; // this is to deal with photons, which are labeled 7 in MG5aMC
358 ipart_copy = ipart;
359 if (ipart==7) ipart_copy = 22;
360 try {
361 fxq = lhapdf_amc::ACTIVESETS[nset].activemember()->xfxQ(ipart_copy, x, q);
362 } catch (const exception& e) {
363 fxq = 0;
364 }
365 // Update current set focus
366 lhapdf_amc::CURRENTSET = nset;
367 }
368 /// Get xf(x) values for common partons from current PDF (non-multiset version)
369 void evolvepart_( const int& ipart, const double& x, const double& q, double& fxq) {
370 int nset1 = 1;
371 evolvepartm_(nset1, ipart, x, q, fxq);
372 }
373
374
375 /// Determine if the current PDF has a photon flavour (historically only MRST2004QED)
376 /// @todo Function rather than subroutine?
377 /// @note There is no multiset version. has_photon will respect the current set slot.
378 bool has_photon_() {
379 return lhapdf_amc::ACTIVESETS[lhapdf_amc::CURRENTSET].activemember()->hasFlavor(22);
380 }
381
382
383 /// Get xfx values from current PDF, including an extra photon flavour
384 void evolvepdfphotonm_(const int& nset, const double& x, const double& q, double* fxq, double& photonfxq) {
385 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
386 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
387 // First evaluate the "normal" partons
388 evolvepdfm_(nset, x, q, fxq);
389 // Then evaluate the photon flavor (historically only for MRST2004QED)
390 try {
391 photonfxq = lhapdf_amc::ACTIVESETS[nset].activemember()->xfxQ(22, x, q);
392 } catch (const exception& e) {
393 photonfxq = 0;
394 }
395 // Update current set focus
396 lhapdf_amc::CURRENTSET = nset;
397 }
398 /// Get xfx values from current PDF, including an extra photon flavour (non-multiset version)
399 void evolvepdfphoton_(const double& x, const double& q, double* fxq, double& photonfxq) {
400 int nset1 = 1;
401 evolvepdfphotonm_(nset1, x, q, fxq, photonfxq);
402 }
403
404
405 /// Get xf(x) values for common partons from a photon PDF
406 void evolvepdfpm_(const int& nset, const double& x, const double& q, const double& p2, const int& ip2, double& fxq) {
407 // Update current set focus
408 lhapdf_amc::CURRENTSET = nset;
409 throw LHAPDF::NotImplementedError("Photon structure functions are not yet supported in LHAPDF6");
410 }
411 /// Get xf(x) values for common partons from a photon PDF (non-multiset version)
412 void evolvepdfp_(const double& x, const double& q, const double& p2, const int& ip2, double& fxq) {
413 int nset1 = 1;
414 evolvepdfpm_(nset1, x, q, p2, ip2, fxq);
415 }
416
417
418 // alpha_s evolution
419
420 /// Get the alpha_s order for the set
421 void getorderasm_(const int& nset, int& oas) {
422 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
423 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
424 // Set equal to the number of members for the requested set
425 oas = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<int>("AlphaS_OrderQCD");
426 // Update current set focus
427 lhapdf_amc::CURRENTSET = nset;
428 }
429 /// Get the alpha_s order for the set (non-multiset version)
430 void getorderas_(int& oas) {
431 int nset1 = 1;
432 getorderasm_(nset1, oas);
433 }
434
435
436 /// Get the alpha_s(Q) value for set nset
437 double alphaspdfm_(const int& nset, const double& Q){
438 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
439 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
440 return lhapdf_amc::ACTIVESETS[nset].activemember()->alphasQ(Q);
441 // Update current set focus
442 lhapdf_amc::CURRENTSET = nset;
443 }
444 /// Get the alpha_s(Q) value for the set (non-multiset version)
445 double alphaspdf_(const double& Q){
446 int nset1 = 1;
447 return alphaspdfm_(nset1, Q);
448 }
449
450
451 // Metadata functions
452
453 /// Get the number of error members in the set (with special treatment for single member sets)
454 void numberpdfm_(const int& nset, int& numpdf) {
455 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
456 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
457 // Set equal to the number of members for the requested set
458 numpdf= lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<int>("NumMembers");
459 // Reproduce old LHAPDF v5 behaviour, i.e. subtract 1 if more than 1 member set
460 if (numpdf > 1) numpdf -= 1;
461 // Update current set focus
462 lhapdf_amc::CURRENTSET = nset;
463 }
464 /// Get the number of error members in the set (non-multiset version)
465 void numberpdf_(int& numpdf) {
466 int nset1 = 1;
467 numberpdfm_(nset1, numpdf);
468 }
469
470
471 /// Get the max number of active flavours
472 void getnfm_(const int& nset, int& nf) {
473 //nf = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<int>("AlphaS_NumFlavors");
474 nf = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<int>("NumFlavors");
475 // Update current set focus
476 lhapdf_amc::CURRENTSET = nset;
477 }
478 /// Get the max number of active flavours (non-multiset version)
479 void getnf_(int& nf) {
480 int nset1 = 1;
481 getnfm_(nset1, nf);
482 }
483
484
485 /// Get nf'th quark mass
486 void getqmassm_(const int& nset, const int& nf, double& mass) {
487 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
488 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
489 if (nf*nf == 1) mass = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("MDown");
490 else if (nf*nf == 4) mass = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("MUp");
491 else if (nf*nf == 9) mass = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("MStrange");
492 else if (nf*nf == 16) mass = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("MCharm");
493 else if (nf*nf == 25) mass = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("MBottom");
494 else if (nf*nf == 36) mass = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("MTop");
495 else throw LHAPDF::UserError("Trying to get quark mass for invalid quark ID #" + LHAPDF::to_str(nf));
496 // Update current set focus
497 lhapdf_amc::CURRENTSET = nset;
498 }
499 /// Get nf'th quark mass (non-multiset version)
500 void getqmass_(const int& nf, double& mass) {
501 int nset1 = 1;
502 getqmassm_(nset1, nf, mass);
503 }
504
505
506 /// Get the nf'th quark threshold
507 void getthresholdm_(const int& nset, const int& nf, double& Q) {
508 try {
509 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
510 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
511 if (nf*nf == 1) Q = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("ThresholdDown");
512 else if (nf*nf == 4) Q = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("ThresholdUp");
513 else if (nf*nf == 9) Q = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("ThresholdStrange");
514 else if (nf*nf == 16) Q = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("ThresholdCharm");
515 else if (nf*nf == 25) Q = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("ThresholdBottom");
516 else if (nf*nf == 36) Q = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("ThresholdTop");
517 //else throw LHAPDF::UserError("Trying to get quark threshold for invalid quark ID #" + LHAPDF::to_str(nf));
518 } catch (...) {
519 getqmassm_(nset, nf, Q);
520 }
521 // Update current set focus
522 lhapdf_amc::CURRENTSET = nset;
523 }
524 /// Get the nf'th quark threshold
525 void getthreshold_(const int& nf, double& Q) {
526 int nset1 = 1;
527 getthresholdm_(nset1, nf, Q);
528 }
529
530
531 /// Print PDF set's description to stdout
532 void getdescm_(const int& nset) {
533 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
534 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
535 cout << lhapdf_amc::ACTIVESETS[nset].activemember()->description() << endl;
536 // Update current set focus
537 lhapdf_amc::CURRENTSET = nset;
538 }
539 void getdesc_() {
540 int nset1 = 1;
541 getdescm_(nset1);
542 }
543
544
545 void getxminm_(const int& nset, const int& nmem, double& xmin) {
546 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
547 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
548 const int activemem = lhapdf_amc::ACTIVESETS[nset].currentmem;
549 lhapdf_amc::ACTIVESETS[nset].loadMember(nmem);
550 xmin = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("XMin");
551 lhapdf_amc::ACTIVESETS[nset].loadMember(activemem);
552 // Update current set focus
553 lhapdf_amc::CURRENTSET = nset;
554 }
555 void getxmin_(const int& nmem, double& xmin) {
556 int nset1 = 1;
557 getxminm_(nset1, nmem, xmin);
558 }
559
560
561 void getxmaxm_(const int& nset, const int& nmem, double& xmax) {
562 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
563 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
564 const int activemem = lhapdf_amc::ACTIVESETS[nset].currentmem;
565 lhapdf_amc::ACTIVESETS[nset].loadMember(nmem);
566 xmax = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("XMax");
567 lhapdf_amc::ACTIVESETS[nset].loadMember(activemem);
568 // Update current set focus
569 lhapdf_amc::CURRENTSET = nset;
570 }
571 void getxmax_(const int& nmem, double& xmax) {
572 int nset1 = 1;
573 getxmaxm_(nset1, nmem, xmax);
574 }
575
576
577 void getq2minm_(const int& nset, const int& nmem, double& q2min) {
578 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
579 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
580 const int activemem = lhapdf_amc::ACTIVESETS[nset].currentmem;
581 lhapdf_amc::ACTIVESETS[nset].loadMember(nmem);
582 q2min = LHAPDF::sqr(lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("QMin"));
583 lhapdf_amc::ACTIVESETS[nset].loadMember(activemem);
584 // Update current set focus
585 lhapdf_amc::CURRENTSET = nset;
586 }
587 void getq2min_(const int& nmem, double& q2min) {
588 int nset1 = 1;
589 getq2minm_(nset1, nmem, q2min);
590 }
591
592
593 void getq2maxm_(const int& nset, const int& nmem, double& q2max) {
594 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
595 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
596 const int activemem = lhapdf_amc::ACTIVESETS[nset].currentmem;
597 lhapdf_amc::ACTIVESETS[nset].loadMember(nmem);
598 q2max = LHAPDF::sqr(lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("QMax"));
599 lhapdf_amc::ACTIVESETS[nset].loadMember(activemem);
600 // Update current set focus
601 lhapdf_amc::CURRENTSET = nset;
602 }
603 void getq2max_(const int& nmem, double& q2max) {
604 int nset1 = 1;
605 getq2maxm_(nset1, nmem, q2max);
606 }
607
608
609 void getminmaxm_(const int& nset, const int& nmem, double& xmin, double& xmax, double& q2min, double& q2max) {
610 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
611 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
612 const int activemem = lhapdf_amc::ACTIVESETS[nset].currentmem;
613 lhapdf_amc::ACTIVESETS[nset].loadMember(nmem);
614 xmin = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("XMin");
615 xmax = lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("XMax");
616 q2min = LHAPDF::sqr(lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("QMin"));
617 q2max = LHAPDF::sqr(lhapdf_amc::ACTIVESETS[nset].activemember()->info().get_entry_as<double>("QMax"));
618 lhapdf_amc::ACTIVESETS[nset].loadMember(activemem);
619 // Update current set focus
620 lhapdf_amc::CURRENTSET = nset;
621 }
622 void getminmax_(const int& nmem, double& xmin, double& xmax, double& q2min, double& q2max) {
623 int nset1 = 1;
624 getminmaxm_(nset1, nmem, xmin, xmax, q2min, q2max);
625 }
626
627
628
629 /// Backwards compatibility functions for LHAPDF5 calculations of
630 /// PDF uncertainties and PDF correlations (G. Watt, March 2014).
631
632 // subroutine GetPDFUncTypeM(nset,lMonteCarlo,lSymmetric)
633 void getpdfunctypem_(const int& nset, int& lmontecarlo, int& lsymmetric) {
634 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
635 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
636 const string errorType = lhapdf_amc::ACTIVESETS[nset].activemember()->set().errorType();
637 if (errorType == "replicas") { // Monte Carlo PDF sets
638 lmontecarlo = 1;
639 lsymmetric = 1;
640 } else if (errorType == "symmhessian") { // symmetric eigenvector PDF sets
641 lmontecarlo = 0;
642 lsymmetric = 1;
643 } else { // default: assume asymmetric Hessian eigenvector PDF sets
644 lmontecarlo = 0;
645 lsymmetric = 0;
646 }
647 // Update current set focus
648 lhapdf_amc::CURRENTSET = nset;
649 }
650 // subroutine GetPDFUncType(lMonteCarlo,lSymmetric)
651 void getpdfunctype_(int& lmontecarlo, int& lsymmetric) {
652 int nset1 = 1;
653 getpdfunctypem_(nset1, lmontecarlo, lsymmetric);
654 }
655
656
657 // subroutine GetPDFuncertaintyM(nset,values,central,errplus,errminus,errsym)
658 void getpdfuncertaintym_(const int& nset, const double* values, double& central, double& errplus, double& errminus, double& errsymm) {
659 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
660 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
661 const size_t nmem = lhapdf_amc::ACTIVESETS[nset].activemember()->set().size()-1;
662 const vector<double> vecvalues(values, values + nmem + 1);
663 LHAPDF::PDFUncertainty err = lhapdf_amc::ACTIVESETS[nset].activemember()->set().uncertainty(vecvalues, -1);
664 central = err.central;
665 errplus = err.errplus;
666 errminus = err.errminus;
667 errsymm = err.errsymm;
668 // Update current set focus
669 lhapdf_amc::CURRENTSET = nset;
670 }
671 // subroutine GetPDFuncertainty(values,central,errplus,errminus,errsym)
672 void getpdfuncertainty_(const double* values, double& central, double& errplus, double& errminus, double& errsymm) {
673 int nset1 = 1;
674 getpdfuncertaintym_(nset1, values, central, errplus, errminus, errsymm);
675 }
676
677
678 // subroutine GetPDFcorrelationM(nset,valuesA,valuesB,correlation)
679 void getpdfcorrelationm_(const int& nset, const double* valuesA, const double* valuesB, double& correlation) {
680 if (lhapdf_amc::ACTIVESETS.find(nset) == lhapdf_amc::ACTIVESETS.end())
681 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
682 const size_t nmem = lhapdf_amc::ACTIVESETS[nset].activemember()->set().size()-1;
683 const vector<double> vecvaluesA(valuesA, valuesA + nmem + 1);
684 const vector<double> vecvaluesB(valuesB, valuesB + nmem + 1);
685 correlation = lhapdf_amc::ACTIVESETS[nset].activemember()->set().correlation(vecvaluesA,vecvaluesB);
686 // Update current set focus
687 lhapdf_amc::CURRENTSET = nset;
688 }
689 // subroutine GetPDFcorrelation(valuesA,valuesB,correlation)
690 void getpdfcorrelation_(const double* valuesA, const double* valuesB, double& correlation) {
691 int nset1 = 1;
692 getpdfcorrelationm_(nset1, valuesA, valuesB, correlation);
693 }
694
695
696 ///////////////////////////////////////
697
698
699 /// REALLY OLD PDFLIB COMPATILITY FUNCTIONS
700
701 /// PDFLIB initialisation function
702 void pdfset_(const char* par, const double* value, int parlength) {
703
704 // Identify the calling program (yuck!)
705 string my_par(par);
706 if (my_par.find("NPTYPE") != string::npos) {
707 cout << "==== LHAPDF6 USING PYTHIA-TYPE LHAGLUE INTERFACE ====" << endl;
708 // Take PDF ID from value[2]
709 lhapdf_amc::ACTIVESETS[1] = lhapdf_amc::PDFSetHandler(value[2]+1000*value[1]);
710 } else if (my_par.find("HWLHAPDF") != string::npos) {
711 cout << "==== LHAPDF6 USING HERWIG-TYPE LHAGLUE INTERFACE ====" << endl;
712 // Take PDF ID from value[0]
713 lhapdf_amc::ACTIVESETS[1] = lhapdf_amc::PDFSetHandler(value[0]);
714 } else if (my_par.find("DEFAULT") != string::npos) {
715 cout << "==== LHAPDF6 USING DEFAULT-TYPE LHAGLUE INTERFACE ====" << endl;
716 // Take PDF ID from value[0]
717 lhapdf_amc::ACTIVESETS[1] = lhapdf_amc::PDFSetHandler(value[0]);
718 } else {
719 cout << "==== LHAPDF6 USING PDFLIB-TYPE LHAGLUE INTERFACE ====" << endl;
720 // Take PDF ID from value[2]
721 lhapdf_amc::ACTIVESETS[1] = lhapdf_amc::PDFSetHandler(value[2]+1000*value[1]);
722 }
723
724 lhapdf_amc::CURRENTSET = 1;
725
726 // Extract parameters for common blocks (with sensible fallback values)
727 lhapdf_amc::PDFPtr pdf = lhapdf_amc::ACTIVESETS[1].activemember();
728 w50513_.xmin = pdf->info().get_entry_as<double>("XMin", 0.0);
729 w50513_.xmax = pdf->info().get_entry_as<double>("XMax", 1.0);
730 w50513_.q2min = LHAPDF::sqr(pdf->info().get_entry_as<double>("QMin", 1.0));
731 w50513_.q2max = LHAPDF::sqr(pdf->info().get_entry_as<double>("QMax", 1.0e5));
732 w50512_.qcdl4 = pdf->info().get_entry_as<double>("AlphaS_Lambda4", 0.0);
733 w50512_.qcdl5 = pdf->info().get_entry_as<double>("AlphaS_Lambda5", 0.0);
734 lhapdfr_.qcdlha4 = pdf->info().get_entry_as<double>("AlphaS_Lambda4", 0.0);
735 lhapdfr_.qcdlha5 = pdf->info().get_entry_as<double>("AlphaS_Lambda5", 0.0);
736 lhapdfr_.nfllha = 4;
737 // Activate legacy/compatibility LHAPDF5-type behaviour re. broken Lambda values
738 if (pdf->info().get_entry_as<bool>("Pythia6LambdaV5Compat", true)) {
739 w50512_.qcdl4 = 0.192;
740 w50512_.qcdl5 = 0.192;
741 lhapdfr_.qcdlha4 = 0.192;
742 lhapdfr_.qcdlha5 = 0.192;
743 }
744 }
745
746 /// PDFLIB nucleon structure function querying
747 void structm_(const double& x, const double& q,
748 double& upv, double& dnv, double& usea, double& dsea,
749 double& str, double& chm, double& bot, double& top, double& glu) {
750 lhapdf_amc::CURRENTSET = 1;
751 /// Fill (partial) parton return variables
752 lhapdf_amc::PDFPtr pdf = lhapdf_amc::ACTIVESETS[1].activemember();
753 dsea = pdf->xfxQ(-1, x, q);
754 usea = pdf->xfxQ(-2, x, q);
755 dnv = pdf->xfxQ(1, x, q) - dsea;
756 upv = pdf->xfxQ(2, x, q) - usea;
757 str = pdf->xfxQ(3, x, q);
758 chm = (pdf->hasFlavor(4)) ? pdf->xfxQ(4, x, q) : 0;
759 bot = (pdf->hasFlavor(5)) ? pdf->xfxQ(5, x, q) : 0;
760 top = (pdf->hasFlavor(6)) ? pdf->xfxQ(6, x, q) : 0;
761 glu = pdf->xfxQ(21, x, q);
762 }
763
764 /// PDFLIB photon structure function querying
765 void structp_(const double& x, const double& q2, const double& p2, const double& ip2,
766 double& upv, double& dnv, double& usea, double& dsea,
767 double& str, double& chm, double& bot, double& top, double& glu) {
768 throw LHAPDF::NotImplementedError("Photon structure functions are not yet supported");
769 }
770
771 /// PDFLIB statistics on PDF under/overflows
772 void pdfsta_() {
773 /// @note Can't do anything...
774 }
775
776
777}
778
779
780// LHAPDF namespace C++ compatibility code
781#ifdef ENABLE_LHAGLUE_CXX
782
783
784void LHAPDF::setVerbosity(LHAPDF::Verbosity noiselevel) {
785 LHAPDF::setVerbosity((int) noiselevel);
786}
787
788void LHAPDF::setPDFPath(const string& path) {
789 pathsPrepend(path);
790}
791
792string LHAPDF::pdfsetsPath() {
793 return paths()[0];
794}
795
796int LHAPDF::numberPDF() {
797 int nmem;
798 numberpdf_(nmem);
799 return nmem;
800}
801int LHAPDF::numberPDF(int nset) {
802 int nmem;
803 numberpdfm_(nset,nmem);
804 return nmem;
805}
806
807void LHAPDF::initPDF( int memset) {
808 int nset1 = 1;
809 initpdfm_(nset1, memset);
810}
811void LHAPDF::initPDF(int nset, int memset) {
812 initpdfm_(nset, memset);
813}
814
815
816double LHAPDF::xfx(double x, double Q, int fl) {
817 vector<double> r(13);
818 evolvepdf_(x, Q, &r[0]);
819 return r[fl+6];
820}
821double LHAPDF::xfx(int nset, double x, double Q, int fl) {
822 vector<double> r(13);
823 evolvepdfm_(nset, x, Q, &r[0]);
824 return r[fl+6];
825}
826
827vector<double> LHAPDF::xfx(double x, double Q) {
828 vector<double> r(13);
829 evolvepdf_(x, Q, &r[0]);
830 return r;
831}
832vector<double> LHAPDF::xfx(int nset, double x, double Q) {
833 vector<double> r(13);
834 evolvepdfm_(nset, x, Q, &r[0]);
835 return r;
836}
837
838void LHAPDF::xfx(double x, double Q, double* results) {
839 evolvepdf_(x, Q, results);
840}
841void LHAPDF::xfx(int nset, double x, double Q, double* results) {
842 evolvepdfm_(nset, x, Q, results);
843}
844
845
846vector<double> LHAPDF::xfxphoton(double x, double Q) {
847 vector<double> r(13);
848 double mphoton;
849 evolvepdfphoton_(x, Q, &r[0], mphoton);
850 r.push_back(mphoton);
851 return r;
852}
853vector<double> LHAPDF::xfxphoton(int nset, double x, double Q) {
854 vector<double> r(13);
855 double mphoton;
856 evolvepdfphotonm_(nset, x, Q, &r[0], mphoton);
857 r.push_back(mphoton);
858 return r;
859}
860
861void LHAPDF::xfxphoton(double x, double Q, double* results) {
862 evolvepdfphoton_(x, Q, results, results[13]);
863}
864void LHAPDF::xfxphoton(int nset, double x, double Q, double* results) {
865 evolvepdfphotonm_(nset, x, Q, results, results[13]);
866}
867
868double LHAPDF::xfxphoton(double x, double Q, int fl) {
869 vector<double> r(13);
870 double mphoton;
871 evolvepdfphoton_(x, Q, &r[0], mphoton);
872 if (fl == 7) return mphoton;
873 return r[fl+6];
874}
875double LHAPDF::xfxphoton(int nset, double x, double Q, int fl) {
876 vector<double> r(13);
877 double mphoton;
878 evolvepdfphotonm_(nset, x, Q, &r[0], mphoton);
879 if ( fl == 7 ) return mphoton;
880 return r[fl+6];
881}
882
883
884void LHAPDF::initPDFSet(const string& filename, int nmem) {
885 initPDFSet(1,filename, nmem);
886}
887
888void LHAPDF::initPDFSet(int nset, const string& filename, int nmem) {
889 initPDFSetByName(nset,filename);
890 ACTIVESETS[nset].loadMember(nmem);
891 CURRENTSET = nset;
892}
893
894
895void LHAPDF::initPDFSet(const string& filename, SetType type ,int nmem) {
896 // silently ignore type
897 initPDFSet(1,filename, nmem);
898}
899
900void LHAPDF::initPDFSet(int nset, const string& filename, SetType type ,int nmem) {
901 // silently ignore type
902 initPDFSetByName(nset,filename);
903 ACTIVESETS[nset].loadMember(nmem);
904 CURRENTSET = nset;
905}
906
907void LHAPDF::initPDFSet(int nset, int setid, int nmem) {
908 ACTIVESETS[nset] = PDFSetHandler(setid); //
909 CURRENTSET = nset;
910}
911
912void LHAPDF::initPDFSet(int setid, int nmem) {
913 initPDFSet(1,setid,nmem);
914}
915
916#define SIZE 999
917void LHAPDF::initPDFSetByName(const string& filename) {
918 std::cout << "initPDFSetByName: " << filename << std::endl;
919 char cfilename[SIZE+1];
920 strncpy(cfilename, filename.c_str(), SIZE);
921 initpdfsetbyname_(cfilename, filename.length());
922}
923
924void LHAPDF::initPDFSetByName(int nset, const string& filename) {
925 char cfilename[SIZE+1];
926 strncpy(cfilename, filename.c_str(), SIZE);
927 initpdfsetbynamem_(nset, cfilename, filename.length());
928}
929
930void LHAPDF::initPDFSetByName(const string& filename, SetType type) {
931 //silently ignore type
932 std::cout << "initPDFSetByName: " << filename << std::endl;
933 char cfilename[SIZE+1];
934 strncpy(cfilename, filename.c_str(), SIZE);
935 initpdfsetbyname_(cfilename, filename.length());
936}
937
938void LHAPDF::initPDFSetByName(int nset, const string& filename, SetType type) {
939 //silently ignore type
940 char cfilename[SIZE+1];
941 strncpy(cfilename, filename.c_str(), SIZE);
942 initpdfsetbynamem_(nset, cfilename, filename.length());
943}
944
945
946void LHAPDF::getDescription() {
947 getDescription(1);
948}
949
950void LHAPDF::getDescription(int nset) {
951 if (ACTIVESETS.find(nset) == ACTIVESETS.end())
952 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
953 cout << ACTIVESETS[nset].activemember()->set().description() << endl;
954}
955
956
957double LHAPDF::alphasPDF(double Q) {
958 return LHAPDF::alphasPDF(1, Q) ;
959}
960
961double LHAPDF::alphasPDF(int nset, double Q) {
962 if (ACTIVESETS.find(nset) == ACTIVESETS.end())
963 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
964 CURRENTSET = nset;
965 // return alphaS for the requested set
966 return ACTIVESETS[nset].activemember()->alphasQ(Q);
967}
968
969
970bool LHAPDF::hasPhoton(){
971 return has_photon_();
972}
973
974
975int LHAPDF::getOrderAlphaS() {
976 return LHAPDF::getOrderAlphaS(1) ;
977}
978
979int LHAPDF::getOrderAlphaS(int nset) {
980 if (ACTIVESETS.find(nset) == ACTIVESETS.end())
981 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
982 CURRENTSET = nset;
983 // return alphaS Order for the requested set
984 return ACTIVESETS[nset].activemember()->info().get_entry_as<int>("AlphaS_OrderQCD", -1);
985}
986
987
988int LHAPDF::getOrderPDF() {
989 return LHAPDF::getOrderPDF(1) ;
990}
991
992int LHAPDF::getOrderPDF(int nset) {
993 if (ACTIVESETS.find(nset) == ACTIVESETS.end())
994 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
995 CURRENTSET = nset;
996 // return PDF order for the requested set
997 return ACTIVESETS[nset].activemember()->info().get_entry_as<int>("OrderQCD", -1);
998}
999
1000
1001double LHAPDF::getLam4(int nmem) {
1002 return LHAPDF::getLam4(1, nmem) ;
1003}
1004
1005double LHAPDF::getLam4(int nset, int nmem) {
1006 if (ACTIVESETS.find(nset) == ACTIVESETS.end())
1007 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
1008 CURRENTSET = nset;
1009 ACTIVESETS[nset].loadMember(nmem);
1010 return ACTIVESETS[nset].activemember()->info().get_entry_as<double>("AlphaS_Lambda4", -1.0);
1011}
1012
1013
1014double LHAPDF::getLam5(int nmem) {
1015 return LHAPDF::getLam5(1, nmem) ;
1016}
1017
1018double LHAPDF::getLam5(int nset, int nmem) {
1019 if (ACTIVESETS.find(nset) == ACTIVESETS.end())
1020 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
1021 CURRENTSET = nset;
1022 ACTIVESETS[nset].loadMember(nmem);
1023 return ACTIVESETS[nset].activemember()->info().get_entry_as<double>("AlphaS_Lambda5", -1.0);
1024}
1025
1026
1027int LHAPDF::getNf() {
1028 return LHAPDF::getNf(1) ;
1029}
1030
1031int LHAPDF::getNf(int nset) {
1032 if (ACTIVESETS.find(nset) == ACTIVESETS.end())
1033 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
1034 CURRENTSET = nset;
1035 // return alphaS Order for the requested set
1036 return ACTIVESETS[nset].activemember()->info().get_entry_as<int>("NumFlavors");
1037}
1038
1039
1040double LHAPDF::getXmin(int nmem) {
1041 return LHAPDF::getXmin(1, nmem) ;
1042}
1043
1044double LHAPDF::getXmin(int nset, int nmem) {
1045 if (ACTIVESETS.find(nset) == ACTIVESETS.end())
1046 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
1047 CURRENTSET = nset;
1048 // return alphaS Order for the requested set
1049 ACTIVESETS[nset].loadMember(nmem);
1050 return ACTIVESETS[nset].activemember()->info().get_entry_as<double>("XMin");
1051}
1052
1053double LHAPDF::getXmax(int nmem) {
1054 return LHAPDF::getXmax(1, nmem) ;
1055}
1056
1057double LHAPDF::getXmax(int nset, int nmem) {
1058 if (ACTIVESETS.find(nset) == ACTIVESETS.end())
1059 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
1060 CURRENTSET = nset;
1061 // return alphaS Order for the requested set
1062 ACTIVESETS[nset].loadMember(nmem);
1063 return ACTIVESETS[nset].activemember()->info().get_entry_as<double>("XMax");
1064}
1065
1066double LHAPDF::getQ2min(int nmem) {
1067 return LHAPDF::getQ2min(1, nmem) ;
1068}
1069
1070double LHAPDF::getQ2min(int nset, int nmem) {
1071 if (ACTIVESETS.find(nset) == ACTIVESETS.end())
1072 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
1073 CURRENTSET = nset;
1074 // return alphaS Order for the requested set
1075 ACTIVESETS[nset].loadMember(nmem);
1076 return pow(ACTIVESETS[nset].activemember()->info().get_entry_as<double>("QMin"),2);
1077}
1078
1079double LHAPDF::getQ2max(int nmem) {
1080 return LHAPDF::getQ2max(1,nmem) ;
1081}
1082
1083double LHAPDF::getQ2max(int nset, int nmem) {
1084 if (ACTIVESETS.find(nset) == ACTIVESETS.end())
1085 throw LHAPDF::UserError("Trying to use LHAGLUE set #" + LHAPDF::to_str(nset) + " but it is not initialised");
1086 CURRENTSET = nset;
1087 // return alphaS Order for the requested set
1088 ACTIVESETS[nset].loadMember(nmem);
1089 return pow(ACTIVESETS[nset].activemember()->info().get_entry_as<double>("QMax"),2);
1090}
1091
1092double LHAPDF::getQMass(int nf) {
1093 return LHAPDF::getQMass(1, nf) ;
1094}
1095
1096double LHAPDF::getQMass(int nset, int nf) {
1097 double mass;
1098 getqmassm_(nset, nf, mass);
1099 return mass;
1100}
1101
1102double LHAPDF::getThreshold(int nf) {
1103 return LHAPDF::getThreshold(1, nf) ;
1104}
1105
1106double LHAPDF::getThreshold(int nset, int nf) {
1107 double thres;
1108 getthresholdm_(nset, nf, thres);
1109 return thres;
1110}
1111
1112void LHAPDF::usePDFMember(int member) {
1113 initpdf_(member);
1114}
1115
1116void LHAPDF::usePDFMember(int nset, int member) {
1117 initpdfm_(nset, member);
1118}
1119
1120#endif // ENABLE_LHAGLUE_CXX
01121
=== added file 'Template/LO/Source/PDF/pdg2pdf_lhapdf6.f'
--- Template/LO/Source/PDF/pdg2pdf_lhapdf6.f 1970-01-01 00:00:00 +0000
+++ Template/LO/Source/PDF/pdg2pdf_lhapdf6.f 2016-11-23 08:16:42 +0000
@@ -0,0 +1,120 @@
1 double precision function pdg2pdf(ih,ipdg,x,xmu)
2c***************************************************************************
3c Based on pdf.f, wrapper for calling the pdf of MCFM
4c***************************************************************************
5 implicit none
6c
7c Arguments
8c
9 DOUBLE PRECISION x,xmu
10 INTEGER IH,ipdg
11C
12C Include
13C
14 include 'pdf.inc'
15C
16 integer i,j,ihlast(20),ipart,iporg,ireuse,imemlast(20),iset,imem
17 & ,i_replace,ii,ipartlast(20)
18 double precision xlast(20),xmulast(20),pdflast(20)
19 double precision epa_proton
20 save ihlast,xlast,xmulast,pdflast,imemlast,ipartlast
21 data ihlast/20*-99/
22 data ipartlast/20*-99/
23 data xlast/20*-99d9/
24 data xmulast/20*-99d9/
25 data pdflast/20*-99d9/
26 data imemlast/20*-99/
27 data i_replace/20/
28
29c Make sure we have a reasonable Bjorken x. Note that even though
30c x=0 is not reasonable, we prefer to simply return pdg2pdf=0
31c instead of stopping the code, as this might accidentally happen.
32 if (x.eq.0d0) then
33 pdg2pdf=0d0
34 return
35 elseif (x.lt.0d0 .or. x.gt.1d0) then
36 write (*,*) 'PDF not supported for Bjorken x ', x
37 open(unit=26,file='../../../error',status='unknown')
38 write(26,*) 'Error: PDF not supported for Bjorken x ',x
39 stop 1
40 endif
41
42 ipart=ipdg
43 if(iabs(ipart).eq.21) ipart=0
44 if(iabs(ipart).eq.22) ipart=7
45 iporg=ipart
46
47c This will be called for any PDG code, but we only support up to 7
48 if(iabs(ipart).gt.7)then
49 write(*,*) 'PDF not supported for pdg ',ipdg
50 write(*,*) 'For lepton colliders, please set the lpp* '//
51 $ 'variables to 0 in the run_card'
52 open(unit=26,file='../../../error',status='unknown')
53 write(26,*) 'Error: PDF not supported for pdg ',ipdg
54 stop 1
55 endif
56
57c Determine the iset used in lhapdf
58 call getnset(iset)
59 if (iset.ne.1) then
60 write (*,*) 'PDF not supported for Bjorken x ', x
61 open(unit=26,file='../../../error',status='unknown')
62 write(26,*) 'Error: PDF not supported for Bjorken x ',x
63 stop 1
64 endif
65
66c Determine the member of the set (function of lhapdf)
67 call getnmem(iset,imem)
68
69 ireuse = 0
70 ii=i_replace
71 do i=1,20
72c Check if result can be reused since any of last twenty
73c calls. Start checking with the last call and move back in time
74 if (ih.eq.ihlast(ii)) then
75 if (ipart.eq.ipartlast(ii)) then
76 if (x.eq.xlast(ii)) then
77 if (xmu.eq.xmulast(ii)) then
78 if (imem.eq.imemlast(ii)) then
79 ireuse = ii
80 exit
81 endif
82 endif
83 endif
84 endif
85 endif
86 ii=ii-1
87 if (ii.eq.0) ii=ii+20
88 enddo
89
90c Reuse previous result, if possible
91 if (ireuse.gt.0) then
92 if (pdflast(ireuse).ne.-99d9) then
93 pdg2pdf=pdflast(ireuse)
94 return
95 endif
96 endif
97
98c Calculated a new value: replace the value computed longest ago
99 i_replace=mod(i_replace,20)+1
100
101c Call lhapdf and give the current values to the arrays that should
102c be saved
103 if(ih.eq.1) then
104 call evolvepart(ipart,x,xmu,pdg2pdf)
105 pdg2pdf=pdg2pdf/x
106 else if(ih.eq.2) then ! photon from a proton without breaking
107 pdg2pdf = epa_proton(x,xmu*xmu)
108 else
109 write (*,*) 'beam type not supported in lhadpf'
110 stop 1
111 endif
112 pdflast(i_replace)=pdg2pdf
113 xlast(i_replace)=x
114 xmulast(i_replace)=xmu
115 ihlast(i_replace)=ih
116 imemlast(i_replace)=imem
117c
118 return
119 end
120
0121
=== modified file 'Template/LO/Source/cuts.inc'
--- Template/LO/Source/cuts.inc 2015-04-09 01:31:09 +0000
+++ Template/LO/Source/cuts.inc 2016-11-23 08:16:42 +0000
@@ -88,6 +88,10 @@
88 REAL*8 KT_DURHAM, D_PARAMETER88 REAL*8 KT_DURHAM, D_PARAMETER
89 LOGICAL DO_KT_DURHAM89 LOGICAL DO_KT_DURHAM
90 COMMON /JET_MEASURE_CUTS/ KT_DURHAM, D_PARAMETER90 COMMON /JET_MEASURE_CUTS/ KT_DURHAM, D_PARAMETER
91
92
93
94\ No newline at end of file91\ No newline at end of file
92
93C COMMON BLOCK FOR PYTHIA JET MEASURE CUT
94 REAL*8 PT_LUND
95 COMMON /PYTHIA_MEASURE_CUTS/ PT_LUND
96
97
98
9599
=== modified file 'Template/LO/Source/dsample.f'
--- Template/LO/Source/dsample.f 2015-06-08 16:01:11 +0000
+++ Template/LO/Source/dsample.f 2016-11-23 08:16:42 +0000
@@ -1608,7 +1608,7 @@
1608 if (iteration .eq. cur_it) then1608 if (iteration .eq. cur_it) then
1609c Add the current point to the DiscreteSamplerGrid1609c Add the current point to the DiscreteSamplerGrid
1610 call add_entry_to_discrete_dimensions(wgt)1610 call add_entry_to_discrete_dimensions(wgt)
1611 if (kn.eq.0) then1611 if (kn.eq.0.and.(iteration.eq.1.or.use_cut.eq.-2)) then
1612 ! ensure that all cumulative variable are at zero (usefull for reset)1612 ! ensure that all cumulative variable are at zero (usefull for reset)
1613 twgt1 = 0d0 !1613 twgt1 = 0d0 !
1614 iavg = 0 !Vars for averging to increase err estimate1614 iavg = 0 !Vars for averging to increase err estimate
@@ -2156,7 +2156,7 @@
2156c $ access='append',err=129)2156c $ access='append',err=129)
2157c write(22, 80) real(tmean), real(tsigma), real(chi2)2157c write(22, 80) real(tmean), real(tsigma), real(chi2)
2158c 129 close(22)2158c 129 close(22)
2159 tsigma = tsigma*sqrt(chi2) !This gives the 68% confidence cross section2159 tsigma = tsigma*sqrt(max(0d0,chi2)) !This gives the 68% confidence cross section
2160 cur_it = itm+202160 cur_it = itm+20
2161 return2161 return
2162 endif2162 endif
21632163
=== modified file 'Template/LO/Source/genps.inc'
--- Template/LO/Source/genps.inc 2014-11-24 00:33:21 +0000
+++ Template/LO/Source/genps.inc 2016-11-23 08:16:42 +0000
@@ -30,9 +30,9 @@
30c Parameters for helicity sums in matrixN.f30c Parameters for helicity sums in matrixN.f
31c*************************************************************************31c*************************************************************************
32 REAL*8 LIMHEL32 REAL*8 LIMHEL
33 PARAMETER(LIMHEL=1e-6)33 PARAMETER(LIMHEL=1e-8)
34 INTEGER MAXTRIES34 INTEGER MAXTRIES
35 PARAMETER(MAXTRIES=10)35 PARAMETER(MAXTRIES=25)
36C To pass the helicity configuration chosen by the DiscreteSampler to 36C To pass the helicity configuration chosen by the DiscreteSampler to
37C matrix<i>.f37C matrix<i>.f
38 double precision hel_jacobian38 double precision hel_jacobian
3939
=== modified file 'Template/LO/Source/kin_functions.f'
--- Template/LO/Source/kin_functions.f 2014-09-11 15:22:26 +0000
+++ Template/LO/Source/kin_functions.f 2016-11-23 08:16:42 +0000
@@ -127,7 +127,11 @@
127c pm=dsqrt(p(1)**2+p(2)**2+p(3)**2)127c pm=dsqrt(p(1)**2+p(2)**2+p(3)**2)
128 128
129 pm = p(0)129 pm = p(0)
130 rap = .5d0*dlog((pm+p(3))/(pm-p(3)))+cm_rap130 if (pm.gt.abs(p(3))) then
131 rap = .5d0*dlog((pm+p(3))/(pm-p(3)))+cm_rap
132 else
133 rap = -1d99
134 endif
131 end135 end
132 DOUBLE PRECISION FUNCTION rap2(p)136 DOUBLE PRECISION FUNCTION rap2(p)
133c************************************************************************137c************************************************************************
134138
=== added file 'Template/LO/Source/lhe_event_infos.inc'
--- Template/LO/Source/lhe_event_infos.inc 1970-01-01 00:00:00 +0000
+++ Template/LO/Source/lhe_event_infos.inc 2016-11-23 08:16:42 +0000
@@ -0,0 +1,16 @@
1 integer jpart(7,-nexternal+3:2*nexternal-3)
2 double precision pb(0:4,-nexternal+3:2*nexternal-3)
3 integer isym(nexternal,99),jsym, npart
4 double precision sscale,aaqcd,aaqed
5 character*1000 buff
6 character*(s_bufflen) s_buff(7)
7 integer nclus
8 character*(clus_bufflen) buffclus(nexternal)
9 character*(maxEventLength) event_record
10 logical AlreadySetInBiasModule
11
12 common/to_lhe_event_info/jpart,pb,s_buff,buff,nclus,buffclus,event_record,
13 & sscale,aaqcd,aaqed,isym,jsym,npart,AlreadySetInBiasModule
14
15 integer ngroup
16 common/to_group/ngroup
017
=== modified file 'Template/LO/Source/make_opts'
--- Template/LO/Source/make_opts 2014-06-03 07:42:21 +0000
+++ Template/LO/Source/make_opts 2016-11-23 08:16:42 +0000
@@ -1,59 +1,103 @@
1# Environment variables1DEFAULT_F2PY_COMPILER=f2py
22DEFAULT_F_COMPILER=gfortran
3MACFLAG=-mmacosx-version-min=10.7
4DEFAULT_CPP_COMPILER=clang
5MG5AMC_VERSION=SpecifiedByMG5aMCAtRunTime
6STDLIB=-lc++
7PYTHIA8_PATH=NotInstalled
8STDLIB_FLAG=-stdlib=libc++
9#end_of_make_opts_variables
10
11BIASLIBDIR=../../../lib/
12BIASLIBRARY=libbias.$(libext)
13
14# Rest of the makefile
3ifeq ($(origin FFLAGS),undefined)15ifeq ($(origin FFLAGS),undefined)
4 FFLAGS= -O -w -fbounds-check -fPIC16FFLAGS= -O -w -fbounds-check -fPIC
5 #FFLAGS+= -g -fbounds-check -ffpe-trap=invalid,zero,overflow,underflow,denormal -Wall17#FFLAGS+= -g -fbounds-check -ffpe-trap=invalid,zero,overflow,underflow,denormal -Wall
6endif18endif
19
20
21# REMOVE MACFLAG IF NOT ON MAC OR FOR F2PY
22UNAME := $(shell uname -s)
23ifdef f2pymode
24MACFLAG=
25else
26ifneq ($(UNAME), Darwin)
27MACFLAG=
28endif
29endif
30
31
32ifeq ($(origin CXXFLAGS),undefined)
33CXXFLAGS= -O $(STDLIB_FLAG) $(MACFLAG)
34endif
35
36ifeq ($(origin CFLAGS),undefined)
37CFLAGS= -O $(STDLIB_FLAG) $(MACFLAG)
38endif
39
40# Increase the number of allowed charcters in a Fortran line
7FFLAGS+= -ffixed-line-length-13241FFLAGS+= -ffixed-line-length-132
842
9# Set FC unless it's defined by an environment variable43# Set FC unless it's defined by an environment variable
10ifeq ($(origin FC),default)44ifeq ($(origin FC),default)
11# FC=gfortran45FC=$(DEFAULT_F_COMPILER)
12 FC=gfortran46endif
47ifeq ($(origin F2PY), undefined)
48F2PY=$(DEFAULT_F2PY_COMPILER)
49endif
50
51UNAME := $(shell uname -s)
52ifeq ($(origin LDFLAGS), undefined)
53LDFLAGS=$(STDLIB) $(MACFLAG)
13endif54endif
1455
15# Options: dynamic, lhapdf56# Options: dynamic, lhapdf
16
17UNAME := $(shell uname)
18
19# Option dynamic57# Option dynamic
2058
21ifeq ($(UNAME), Darwin)59ifeq ($(UNAME), Darwin)
22 dylibext=dylib60dylibext=dylib
23else61else
24 dylibext=so 62dylibext=so
25endif63endif
2664
27ifdef dynamic65ifdef dynamic
28 ifeq ($(UNAME), Darwin)66ifeq ($(UNAME), Darwin)
29 libext=dylib67libext=dylib
30 FFLAGS+= -fno-common68FFLAGS+= -fno-common
31 LDFLAGS += -bundle69LDFLAGS += -bundle
32 define CREATELIB70define CREATELIB
33 $(FC) -dynamiclib -undefined dynamic_lookup -o $(1) $(2)71$(FC) -dynamiclib -undefined dynamic_lookup -o $(1) $(2)
34 endef72endef
35 else73else
36 libext=so74libext=so
37 FFLAGS+= -fPIC75FFLAGS+= -fPIC
38 LDFLAGS += -shared76LDFLAGS += -shared
39 define CREATELIB77define CREATELIB
40 $(FC) $(FFLAGS) $(LDFLAGS) -o $(1) $(2)78$(FC) $(FFLAGS) $(LDFLAGS) -o $(1) $(2)
41 endef79endef
42 endif80endif
43else81else
44 libext=a82libext=a
45 define CREATELIB83define CREATELIB
46 $(AR) cru $(1) $(2)84$(AR) cru $(1) $(2)
47 ranlib $(1)85ranlib $(1)
48 endef86endef
49endif87endif
5088
51# Option lhapdf89# Option lhapdf
5290
53ifdef lhapdf91ifneq ($(lhapdf),)
54 alfas_functions=alfas_functions_lhapdf92CXXFLAGS += $(shell $(lhapdf) --cppflags)
55 lhapdf=-lLHAPDF -lstdc++93alfas_functions=alfas_functions_lhapdf
94llhapdf+= -lLHAPDF
56else95else
57 alfas_functions=alfas_functions96alfas_functions=alfas_functions
58 lhapdf=97llhapdf=
59endif98endif
99
100# Helper function to check MG5 version
101define CHECK_MG5AMC_VERSION
102python -c 'import re; from distutils.version import StrictVersion; print StrictVersion("$(MG5AMC_VERSION)") >= StrictVersion("$(1)") if re.match("^[\d\.]+$$","$(MG5AMC_VERSION)") else True;'
103endef
60\ No newline at end of file104\ No newline at end of file
61105
=== modified file 'Template/LO/Source/run.inc'
--- Template/LO/Source/run.inc 2015-04-02 22:56:24 +0000
+++ Template/LO/Source/run.inc 2016-11-23 08:16:42 +0000
@@ -63,3 +63,11 @@
63C63C
64 logical MC_grouped_subproc64 logical MC_grouped_subproc
65 common/to_MC_grouped_subproc/MC_grouped_subproc65 common/to_MC_grouped_subproc/MC_grouped_subproc
66
67C
68C Controls what are the PDGs included in the CKKWl merging procedure, i.e. what
69C are the PDGs subject to the ktdurham cut
70C
71 integer pdgs_for_merging_cut(0:1000)
72 common/TO_MERGE/pdgs_for_merging_cut
73
6674
=== modified file 'Template/LO/Source/rw_events.f'
--- Template/LO/Source/rw_events.f 2014-10-07 13:31:57 +0000
+++ Template/LO/Source/rw_events.f 2016-11-23 08:16:42 +0000
@@ -30,7 +30,6 @@
30 character*(s_bufflen) s_buff(*)30 character*(s_bufflen) s_buff(*)
31 integer nclus31 integer nclus
32 character*(clus_bufflen) buffclus(*)32 character*(clus_bufflen) buffclus(*)
33
34c33c
35c Local34c Local
36c35c
@@ -46,6 +45,10 @@
4645
47 data lun_ban/37/46 data lun_ban/37/
48 data banner_open/.false./47 data banner_open/.false./
48
49 double precision bias_weight
50 logical impact_xsec
51 common/bias/bias_weight,impact_xsec
49c-----52c-----
50c Begin Code53c Begin Code
51c----- 54c-----
@@ -80,6 +83,21 @@
80 buff=''83 buff=''
81 endif84 endif
82 endif85 endif
86
87c Reading the bias weight (if present)
88 read(lun,'(a300)',end=99,err=99) buftmp
89 if(buftmp(1:6).ne.'<rwgt>') then
90 backspace(lun)
91 bias_weight = 1.0d0
92 else
93 do while(buftmp(1:7).ne.'</rwgt>')
94 read(lun,'(a300)',end=99,err=99) buftmp
95 if (buftmp(1:16).eq."<wgt id='bias'> ") then
96 read(buftmp(17:31),'(1e15.7)') bias_weight
97 endif
98 enddo
99 endif
100
83c Systematics info101c Systematics info
84 read(lun,'(a)',end=99,err=99) s_buff(1)102 read(lun,'(a)',end=99,err=99) s_buff(1)
85 if(s_buff(1).ne.'<mgrwt>') then103 if(s_buff(1).ne.'<mgrwt>') then
@@ -114,9 +132,103 @@
114 55 format(i3,5e19.11) 132 55 format(i3,5e19.11)
115 end133 end
116134
135 subroutine write_event_to_stream(evt_record,P,wgt,nexternal,ic,
136 & ievent,scale,aqcd, aqed,buff,u_syst,s_buff,nclus,buffclus)
137c********************************************************************
138C This an *exact* copy of write_event, except that it writes it
139C to a character array argument as opposed to an I/O stream.
140c********************************************************************
141 implicit none
142
143 include 'maxparticles.inc'
144 include 'run_config.inc'
145c
146c parameters
147c
148 double precision pi
149 parameter (pi = 3.1415926d0)
150c
151c Arguments
152c
153 character*(maxEventLength) evt_record
154 integer ievent
155 integer nexternal, ic(7,*)
156 double precision P(0:4,*),wgt
157 double precision aqcd, aqed, scale
158 character*1000 buff
159 logical u_syst
160 character*(s_bufflen) s_buff(*)
161 integer nclus
162 character*(clus_bufflen) buffclus(*)
163c
164c Local
165c
166 integer i,j,k
167 character*(maxEventLength) largeBuff
168c
169c Global
170c
171 double precision bias_weight
172 logical impact_xsec
173 common/bias/bias_weight,impact_xsec
174
175c-----
176c Begin Code
177c-----
178c aqed= gal(1)*gal(1)/4d0/pi
179c aqcd = g*g/4d0/pi
180 write(largeBuff,'(a)') '<event>'
181 evt_record=trim(evt_record)//trim(largeBuff)
182 write(largeBuff,'(i2,i4,e16.7e3,3e15.7)') nexternal,ievent,wgt,scale,
183 $ aqed,aqcd
184 evt_record=trim(evt_record)//CHAR(13)//CHAR(10)//trim(largeBuff)
185 do i=1,nexternal
186 write(largeBuff,51) ic(1,i),ic(6,i),(ic(j,i),j=2,5),
187 $ (p(j,i),j=1,3),p(0,i),p(4,i),0.,real(ic(7,i))
188 evt_record=trim(evt_record)//CHAR(13)//CHAR(10)//trim(largeBuff)
189 enddo
190 if(buff(1:7).eq.'<scales') then
191 write(largeBuff,'(a)') buff(1:len_trim(buff))
192 evt_record=trim(evt_record)//CHAR(13)//CHAR(10)//trim(largeBuff)
193 endif
194 if(buff(1:1).eq.'#') then
195 write(largeBuff,'(a)') buff(1:len_trim(buff))
196 evt_record=trim(evt_record)//CHAR(13)//CHAR(10)//trim(largeBuff)
197 endif
198 if(.not.impact_xsec) then
199 write(largeBuff,'(a)') '<rwgt>'
200 evt_record=trim(evt_record)//CHAR(13)//CHAR(10)//trim(largeBuff)
201 write(largeBuff,'(a16,1e15.7,a6)') "<wgt id='bias'> ",
202 $ bias_weight,"</wgt>"
203 evt_record=trim(evt_record)//CHAR(13)//CHAR(10)//trim(largeBuff)
204 write(largeBuff,'(a)') '</rwgt>'
205 evt_record=trim(evt_record)//CHAR(13)//CHAR(10)//trim(largeBuff)
206 endif
207 if(u_syst)then
208 do i=1,7
209 write(largeBuff,'(a)') s_buff(i)(1:len_trim(s_buff(i)))
210 evt_record=trim(evt_record)//CHAR(13)//CHAR(10)//trim(largeBuff)
211 enddo
212 endif
213 do i=1,nclus
214 write(largeBuff,'(a)') buffclus(i)(1:len_trim(buffclus(i)))
215 evt_record=trim(evt_record)//CHAR(13)//CHAR(10)//trim(largeBuff)
216 enddo
217 write(largeBuff,'(a)') '</event>'
218 evt_record=trim(evt_record)//CHAR(13)//CHAR(10)//trim(largeBuff)
219 return
220 51 format(i9,5i5,5e19.11,f3.0,f4.0)
221 end
222
223
117 subroutine write_event(lun,P,wgt,nexternal,ic,ievent,scale,aqcd,224 subroutine write_event(lun,P,wgt,nexternal,ic,ievent,scale,aqcd,
118 $ aqed,buff,u_syst,s_buff,nclus,buffclus)225 $ aqed,buff,u_syst,s_buff,nclus,buffclus)
119c********************************************************************226c********************************************************************
227c
228c /!\ When making changes to this subroutine, make sure to accordingly
229c update write_event_to_stream
230c
231c********************************************************************
120c Writes one event from data file #lun according to LesHouches232c Writes one event from data file #lun according to LesHouches
121c ic(1,*) = Particle ID233c ic(1,*) = Particle ID
122c ic(2.*) = Mothup(1)234c ic(2.*) = Mothup(1)
@@ -154,6 +266,9 @@
154c266c
155c Global267c Global
156c268c
269 double precision bias_weight
270 logical impact_xsec
271 common/bias/bias_weight,impact_xsec
157272
158c-----273c-----
159c Begin Code274c Begin Code
@@ -162,13 +277,20 @@
162c aqcd = g*g/4d0/pi277c aqcd = g*g/4d0/pi
163278
164 write(lun,'(a)') '<event>'279 write(lun,'(a)') '<event>'
165 write(lun,'(i2,i4,4e15.7)') nexternal,ievent,wgt,scale,aqed,aqcd280 write(lun,'(i2,i4,e16.7e3,3e15.7)') nexternal,ievent,wgt,scale,aqed,aqcd
281 write(*,'(i2,i4,e15.7e3,3e15.7)') nexternal,ievent,wgt,scale,aqed,aqcd
166 do i=1,nexternal282 do i=1,nexternal
167 write(lun,51) ic(1,i),ic(6,i),(ic(j,i),j=2,5),283 write(lun,51) ic(1,i),ic(6,i),(ic(j,i),j=2,5),
168 $ (p(j,i),j=1,3),p(0,i),p(4,i),0.,real(ic(7,i))284 $ (p(j,i),j=1,3),p(0,i),p(4,i),0.,real(ic(7,i))
169 enddo285 enddo
170 if(buff(1:7).eq.'<scales') write(lun,'(a)') buff(1:len_trim(buff))286 if(buff(1:7).eq.'<scales') write(lun,'(a)') buff(1:len_trim(buff))
171 if(buff(1:1).eq.'#') write(lun,'(a)') buff(1:len_trim(buff))287 if(buff(1:1).eq.'#') write(lun,'(a)') buff(1:len_trim(buff))
288 if(.not.impact_xsec) then
289 write(lun,'(a)') '<rwgt>'
290 write(lun,'(a16,1e15.7,a6)') "<wgt id='bias'> ",bias_weight,
291 $ "</wgt>"
292 write(lun,'(a)') '</rwgt>'
293 endif
172 if(u_syst)then294 if(u_syst)then
173 do i=1,7295 do i=1,7
174 write(lun,'(a)') s_buff(i)(1:len_trim(s_buff(i)))296 write(lun,'(a)') s_buff(i)(1:len_trim(s_buff(i)))
175297
=== modified file 'Template/LO/Source/setrun.f'
--- Template/LO/Source/setrun.f 2015-04-09 01:31:09 +0000
+++ Template/LO/Source/setrun.f 2016-11-23 08:16:42 +0000
@@ -199,7 +199,7 @@
199 $ 10042,199 $ 10042,
200 $ 246800,200 $ 246800,
201 $ 247000,201 $ 247000,
202 $ 244600/202 $ 244800/
203203
204204
205 if(pdfin.eq."lhapdf") then205 if(pdfin.eq."lhapdf") then
206206
=== modified file 'Template/LO/SubProcesses/cuts.f'
--- Template/LO/SubProcesses/cuts.f 2015-04-07 22:51:03 +0000
+++ Template/LO/SubProcesses/cuts.f 2016-11-23 08:16:42 +0000
@@ -1,1316 +1,1750 @@
1 logical function pass_point(p)
2c************************************************************************
3c This function is called from sample to see if it needs to
4c bother calculating the weight from all the different conficurations
5c You can either just return true, or have it call passcuts
6c************************************************************************
7 implicit none
8c
9c Arguments
10c
11 double precision p
12c
13c External
14c
15 logical passcuts
16 external passcuts
17c-----
18c Begin Code
19c-----
20 pass_point = .true.
21c pass_point = passcuts(p)
22 end
23C
24 LOGICAL FUNCTION PASSCUTS(P)
25C**************************************************************************
26C INPUT:
27C P(0:3,1) MOMENTUM OF INCOMING PARTON
28C P(0:3,2) MOMENTUM OF INCOMING PARTON
29C P(0:3,3) MOMENTUM OF ...
30C ALL MOMENTA ARE IN THE REST FRAME!!
31C COMMON/JETCUTS/ CUTS ON JETS
32C OUTPUT:
33C TRUE IF EVENTS PASSES ALL CUTS LISTED
34C**************************************************************************
35 IMPLICIT NONE
36c
37c Constants
38c
39 include 'genps.inc'
40 include 'nexternal.inc'
41C
42C ARGUMENTS
43C
44 REAL*8 P(0:3,nexternal)
45
46C
47C LOCAL
48C
49 LOGICAL FIRSTTIME,FIRSTTIME2,pass_bw,notgood,good,foundheavy
50 LOGICAL DEBUG
51 integer i,j,njets,nheavyjets,nleptons,hardj1,hardj2
52 REAL*8 XVAR,ptmax1,ptmax2,htj,tmp,inclht
53 real*8 ptemp(0:3), ptemp2(0:3)
54 character*20 formstr
55C
56C PARAMETERS
57C
58 real*8 PI
59 parameter( PI = 3.14159265358979323846d0 )
60C
61C EXTERNAL
62C
63 REAL*8 R2,DOT,ET,RAP,DJ,SumDot,pt,ALPHAS,PtDot
64 logical cut_bw,setclscales
65 external R2,DOT,ET,RAP,DJ,SumDot,pt,ALPHAS,cut_bw,setclscales,PtDot
66C
67C GLOBAL
68C
69 include 'run.inc'
70 include 'cuts.inc'
71
72 double precision ptjet(nexternal)
73 double precision ptheavyjet(nexternal)
74 double precision ptlepton(nexternal)
75 double precision temp
76
77C VARIABLES TO SPECIFY JETS
78 DOUBLE PRECISION PJET(NEXTERNAL,0:3)
79 DOUBLE PRECISION PTMIN
80 DOUBLE PRECISION PT1,PT2
81 INTEGER K,J1,J2
82
83C VARIABLES FOR KT CUT
84 DOUBLE PRECISION PTNOW,COSTH,PABS1,PABS2
85 DOUBLE PRECISION ETA1,ETA2,COSH_DETA,COS_DPHI,KT1SQ,KT2SQ, DPHI
86
87 double precision etmin(nincoming+1:nexternal),etamax(nincoming+1:nexternal)
88 double precision emin(nincoming+1:nexternal)
89 double precision r2min(nincoming+1:nexternal,nincoming+1:nexternal)
90 double precision s_min(nexternal,nexternal)
91 double precision etmax(nincoming+1:nexternal),etamin(nincoming+1:nexternal)
92 double precision emax(nincoming+1:nexternal)
93 double precision r2max(nincoming+1:nexternal,nincoming+1:nexternal)
94 double precision s_max(nexternal,nexternal)
95 double precision ptll_min(nexternal,nexternal),ptll_max(nexternal,nexternal)
96 double precision inclHtmin,inclHtmax
97 common/to_cuts/ etmin, emin, etamax, r2min, s_min,
98 $ etmax, emax, etamin, r2max, s_max, ptll_min, ptll_max, inclHtmin,inclHtmax
99
100 double precision ptjmin4(4),ptjmax4(4),htjmin4(2:4),htjmax4(2:4)
101 logical jetor
102 common/to_jet_cuts/ ptjmin4,ptjmax4,htjmin4,htjmax4,jetor
103
104 double precision ptlmin4(4),ptlmax4(4)
105 common/to_lepton_cuts/ ptlmin4,ptlmax4
106
107c
108c Special cuts
109c
110
111 integer lbw(0:nexternal) !Use of B.W.
112 common /to_BW/ lbw
113C
114C SPECIAL CUTS
115C
116 LOGICAL IS_A_J(NEXTERNAL),IS_A_L(NEXTERNAL)
117 LOGICAL IS_A_B(NEXTERNAL),IS_A_A(NEXTERNAL),IS_A_ONIUM(NEXTERNAL)
118 LOGICAL IS_A_NU(NEXTERNAL),IS_HEAVY(NEXTERNAL)
119 COMMON /TO_SPECISA/IS_A_J,IS_A_A,IS_A_L,IS_A_B,IS_A_NU,IS_HEAVY,
120 . IS_A_ONIUM
121C
122C Keep track of whether cuts already calculated for this event
123C
124 LOGICAL CUTSDONE,CUTSPASSED
125 COMMON/TO_CUTSDONE/CUTSDONE,CUTSPASSED
126 DATA CUTSDONE,CUTSPASSED/.FALSE.,.FALSE./
127
128C $B$ MW_NEW_DEF $E$ !this is a tag for MadWeight
129
130 double precision xqcutij(nexternal,nexternal),xqcuti(nexternal)
131 common/to_xqcuts/xqcutij,xqcuti
132
133c jet cluster algorithm
134 integer nQCD !,NJET,JET(nexternal)
135c double precision plab(0:3, nexternal)
136 double precision pQCD(0:3,nexternal)!,PJET(0:3,nexternal)
137c double precision rfj,sycut,palg,fastjetdmerge
138c integer njet_eta
139c Photon isolation
140 integer nph,nem,nin
141 double precision ptg,chi_gamma_iso,iso_getdrv40
142 double precision Etsum(0:nexternal)
143 real drlist(nexternal)
144 double precision pgamma(0:3,nexternal),pem(0:3,nexternal)
145 logical alliso
146C Sort array of results: ismode>0 for real, isway=0 for ascending order
147 integer ismode,isway,izero,isorted(nexternal)
148 parameter (ismode=1)
149 parameter (isway=0)
150 parameter (izero=0)
151
152 include 'coupl.inc'
153C
154C
155c
156 DATA FIRSTTIME,FIRSTTIME2/.TRUE.,.TRUE./
157
158c put momenta in common block for couplings.f
159 double precision pp(0:3,max_particles)
160 common /momenta_pp/pp
161
162 DATA DEBUG/.FALSE./
163
164C-----
165C BEGIN CODE
166C-----
167
168
169
170 PASSCUTS=.TRUE. !EVENT IS OK UNLESS OTHERWISE CHANGED
171 IF (FIRSTTIME) THEN
172 FIRSTTIME=.FALSE.
173c Preparation for reweighting by setting up clustering by diagrams
174 call initcluster()
175c
176c
177 write(formstr,'(a,i2.2,a)')'(a10,',nexternal,'i8)'
178 write(*,formstr) 'Particle',(i,i=nincoming+1,nexternal)
179 write(formstr,'(a,i2.2,a)')'(a10,',nexternal,'f8.1)'
180 write(*,formstr) 'Et >',(etmin(i),i=nincoming+1,nexternal)
181 write(*,formstr) 'E >',(emin(i),i=nincoming+1,nexternal)
182 write(*,formstr) 'Eta <',(etamax(i),i=nincoming+1,nexternal)
183 write(*,formstr) 'xqcut: ',(xqcuti(i),i=nincoming+1,nexternal)
184 write(formstr,'(a,i2.2,a)')'(a,i2,a,',nexternal,'f8.1)'
185 do j=nincoming+1,nexternal-1
186 write(*,formstr) 'd R #',j,' >',(-0.0,i=nincoming+1,j),
187 & (r2min(i,j),i=j+1,nexternal)
188 do i=j+1,nexternal
189 r2min(i,j)=r2min(i,j)*dabs(r2min(i,j)) !Since r2 returns distance squared
190 r2max(i,j)=r2max(i,j)*dabs(r2max(i,j))
191 enddo
192 enddo
193 do j=nincoming+1,nexternal-1
194 write(*,formstr) 's min #',j,'>',
195 & (s_min(i,j),i=nincoming+1,nexternal)
196 enddo
197 do j=nincoming+1,nexternal-1
198 write(*,formstr) 'xqcutij #',j,'>',
199 & (xqcutij(i,j),i=nincoming+1,nexternal)
200 enddo
201
202cc
203cc Set the strong coupling
204cc
205c call set_ren_scale(P,scale)
206c
207cc Check that the user funtions for setting the scales
208cc have been edited if the choice of an event-by-event
209cc scale choice has been made
210c
211c if(.not.fixed_ren_scale) then
212c if(scale.eq.0d0) then
213c write(6,*)
214c write(6,*) '* >>>>>>>>>ERROR<<<<<<<<<<<<<<<<<<<<<<<*'
215c write(6,*) ' Dynamical renormalization scale choice '
216c write(6,*) ' selected but user subroutine'
217c write(6,*) ' set_ren_scale not edited in file:setpara.f'
218c write(6,*) ' Switching to a fixed_ren_scale choice'
219c write(6,*) ' with scale=zmass'
220c scale=91.2d0
221c write(6,*) 'scale=',scale
222c fixed_ren_scale=.true.
223c call set_ren_scale(P,scale)
224c endif
225c endif
226
227c if(.not.fixed_fac_scale) then
228c call set_fac_scale(P,q2fact)
229c if(q2fact(1).eq.0d0.or.q2fact(2).eq.0d0) then
230c write(6,*)
231c write(6,*) '* >>>>>>>>>ERROR<<<<<<<<<<<<<<<<<<<<<<<*'
232c write(6,*) ' Dynamical renormalization scale choice '
233c write(6,*) ' selected but user subroutine'
234c write(6,*) ' set_fac_scale not edited in file:setpara.f'
235c write(6,*) ' Switching to a fixed_fac_scale choice'
236c write(6,*) ' with q2fact(i)=zmass**2'
237c fixed_fac_scale=.true.
238c q2fact(1)=91.2d0**2
239c q2fact(2)=91.2d0**2
240c write(6,*) 'scales=',q2fact(1),q2fact(2)
241c endif
242c endif
243
244 if(fixed_ren_scale) then
245 G = SQRT(4d0*PI*ALPHAS(scale))
246 call update_as_param()
247 endif
248
249c Put momenta in the common block to zero to start
250 do i=0,3
251 do j=1,max_particles
252 pp(i,j) = 0d0
253 enddo
254 enddo
255
256 ENDIF ! IF FIRSTTIME
257
258 IF (CUTSDONE) THEN
259 PASSCUTS=CUTSPASSED
260 RETURN
261 ENDIF
262 CUTSDONE=.TRUE.
263c CUTSPASSED=.FALSE.
264
265c
266c Make sure have reasonable 4-momenta
267c
268 if (p(0,1) .le. 0d0) then
269 passcuts=.false.
270 return
271 endif
272
273c Also make sure there's no INF or NAN
274 do i=1,nexternal
275 do j=0,3
276 if(p(j,i).gt.1d32.or.p(j,i).ne.p(j,i))then
277 passcuts=.false.
278 return
279 endif
280 enddo
281 enddo
282
283c
284c Limit S_hat
285c
286c if (x1*x2*stot .gt. 500**2) then
287c passcuts=.false.
288c return
289c endif
290
291C $B$ DESACTIVATE_CUT $E$ !This is a tag for MadWeight
292
293 if(debug) write (*,*) '============================='
294 if(debug) write (*,*) ' EVENT STARTS TO BE CHECKED '
295 if(debug) write (*,*) '============================='
296c
297c p_t min & max cuts
298c
299 do i=nincoming+1,nexternal
300 if(debug) write (*,*) 'pt(',i,')=',pt(p(0,i)),' ',etmin(i),
301 $ ':',etmax(i)
302 notgood=(pt(p(0,i)) .lt. etmin(i)).or.
303 & (etmax(i).ge.0d0.and.pt(p(0,i)) .gt. etmax(i))
304 if (notgood) then
305 if(debug) write (*,*) i,' -> fails'
306 passcuts=.false.
307 return
308 endif
309 enddo
310c
311c missing ET min & max cut + Invariant mass of leptons and neutrino
312c nb: missing Et defined as the vector sum over the neutrino's pt
313c
314c-- reset ptemp(0:3)
315 do j=0,3
316 ptemp(j)=0 ! for the neutrino
317 ptemp2(j)=0 ! for the leptons
318 enddo
319c- sum over the momenta
320 do i=nincoming+1,nexternal
321 if(is_a_nu(i)) then
322 if(debug) write (*,*) i,' -> neutrino '
323 do j=0,3
324 ptemp(j)=ptemp(j)+p(j,i)
325 enddo
326 elseif(is_a_l(i)) then
327 if(debug) write (*,*) i,' -> lepton '
328 do j=0,3
329 ptemp2(j)=ptemp2(j)+p(j,i)
330 enddo
331 endif
332
333 enddo
334c- check the et
335 if(debug.and.ptemp(0).eq.0d0) write (*,*) 'No et miss in event'
336 if(debug.and.ptemp(0).gt.0d0) write (*,*) 'Et miss =',pt(ptemp(0)),' ',misset,':',missetmax
337 if(debug.and.ptemp2(0).eq.0d0) write (*,*) 'No leptons in event'
338 if(debug.and.ptemp(0).gt.0d0) write (*,*) 'Energy of leptons =',pt(ptemp2(0))
339 if(ptemp(0).gt.0d0) then
340 notgood=(pt(ptemp(0)) .lt. misset).or.
341 & (missetmax.ge.0d0.and.pt(ptemp(0)) .gt. missetmax)
342 if (notgood) then
343 if(debug) write (*,*) ' missing et cut -> fails'
344 passcuts=.false.
345 return
346 endif
347 endif
348 if (mmnl.gt.0d0.or.mmnlmax.ge.0d0)then
349 if(dsqrt(SumDot(ptemp,ptemp2,1d0)).lt.mmnl.or.mmnlmax.ge.0d0.and.dsqrt(SumDot(ptemp, ptemp2,1d0)).gt.mmnlmax) then
350 if(debug) write (*,*) 'lepton invariant mass -> fails'
351 passcuts=.false.
352 return
353 endif
354 endif
355c
356c pt cut on heavy particles
357c gives min(pt) for (at least) one heavy particle
358c
359 if(ptheavy.gt.0d0)then
360 passcuts=.false.
361 foundheavy=.false.
362 do i=nincoming+1,nexternal
363 if(is_heavy(i)) then
364 if(debug) write (*,*) i,' -> heavy '
365 foundheavy=.true.
366 if(pt(p(0,i)).gt.ptheavy) passcuts=.true.
367 endif
368 enddo
369
370 if(.not.passcuts.and.foundheavy)then
371 if(debug) write (*,*) ' heavy particle cut -> fails'
372 return
373 else
374 passcuts=.true.
375 endif
376 endif
377c
378c E min & max cuts
379c
380 do i=nincoming+1,nexternal
381 if(debug) write (*,*) 'p(0,',i,')=',p(0,i),' ',emin(i),':',emax(i)
382 notgood=(p(0,i) .le. emin(i)).or.
383 & (emax(i).ge.0d0 .and. p(0,i) .gt. emax(i))
384 if (notgood) then
385 if(debug) write (*,*) i,' -> fails'
386 passcuts=.false.
387 return
388 endif
389 enddo
390c
391c Rapidity min & max cuts
392c
393 do i=nincoming+1,nexternal
394 if(debug) write (*,*) 'abs(rap(',i,'))=',abs(rap(p(0,i))),' ',etamin(i),':',etamax(i)
395 notgood=(etamax(i).ge.0.and.abs(rap(p(0,i))) .gt. etamax(i)).or.
396 & (abs(rap(p(0,i))) .lt. etamin(i))
397 if (notgood) then
398 if(debug) write (*,*) i,' -> fails'
399 passcuts=.false.
400 return
401 endif
402 enddo
403c
404c DeltaR min & max cuts
405c
406 do i=nincoming+1,nexternal-1
407 do j=i+1,nexternal
408 if(debug) write (*,*) 'r2(',i, ',' ,j,')=',dsqrt(r2(p(0,i),p(0,j)))
409 if(debug) write (*,*) dsqrt(r2min(j,i)),dsqrt(r2max(j,i))
410 if(r2min(j,i).gt.0.or.r2max(j,i).ge.0d0) then
411 tmp=r2(p(0,i),p(0,j))
412 notgood=(tmp .lt. r2min(j,i)).or.
413 $ (r2max(j,i).ge.0d0 .and. tmp .gt. r2max(j,i))
414 if (notgood) then
415 if(debug) write (*,*) i,j,' -> fails'
416 passcuts=.false.
417 return
418 endif
419 endif
420 enddo
421 enddo
422
423
424c s-channel min & max pt of sum of 4-momenta
425c
426 do i=nincoming+1,nexternal-1
427 do j=i+1,nexternal
428 if(debug)write (*,*) 'ptll(',i,',',j,')=',PtDot(p(0,i),p(0,j))
429 if(debug)write (*,*) ptll_min(j,i),ptll_max(j,i)
430 if(ptll_min(j,i).gt.0.or.ptll_max(j,i).ge.0d0) then
431 tmp=PtDot(p(0,i),p(0,j))
432 notgood=(tmp .lt. ptll_min(j,i).or.
433 $ ptll_max(j,i).ge.0d0 .and. tmp.gt.ptll_max(j,i))
434 if (notgood) then
435 if(debug) write (*,*) i,j,' -> fails'
436 passcuts=.false.
437 return
438 endif
439 endif
440 enddo
441 enddo
442
443
444
445
446c
447c s-channel min & max invariant mass cuts
448c
449 do i=nincoming+1,nexternal-1
450 do j=i+1,nexternal
451 if(debug) write (*,*) 's(',i,',',j,')=',Sumdot(p(0,i),p(0,j),+1d0)
452 if(debug) write (*,*) s_min(j,i),s_max(j,i)
453 if(s_min(j,i).gt.0.or.s_max(j,i).ge.0d0) then
454 tmp=SumDot(p(0,i),p(0,j),+1d0)
455 if(s_min(j,i).le.s_max(j,i) .or. s_max(j,i).lt.0d0)then
456 notgood=(tmp .lt. s_min(j,i).or.
457 $ s_max(j,i).ge.0d0 .and. tmp .gt. s_max(j,i))
458 if (notgood) then
459 if(debug) write (*,*) i,j,' -> fails'
460 passcuts=.false.
461 return
462 endif
463 else
464 notgood=(tmp .lt. s_min(j,i).and.tmp .gt. s_max(j,i))
465 if (notgood) then
466 if(debug) write (*,*) i,j,' -> fails'
467 passcuts=.false.
468 return
469 endif
470 endif
471 endif
472 enddo
473 enddo
474C $B$DESACTIVATE_BW_CUT$B$ This is a Tag for MadWeight
475c
476c B.W. phase space cuts
477c
478 pass_bw=cut_bw(p)
479c JA 4/8/11 always check pass_bw
480 if ( pass_bw.and..not.CUTSPASSED) then
481 passcuts=.false.
482 if(debug) write (*,*) ' pass_bw -> fails'
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: