diff --git a/Tests/Makefile.am b/Tests/Makefile.am
--- a/Tests/Makefile.am
+++ b/Tests/Makefile.am
@@ -1,383 +1,383 @@
 AM_LDFLAGS += -module -avoid-version -rpath /dummy/path/not/used
 
 EXTRA_DIST = Inputs python Rivet 
 
 EXTRA_LTLIBRARIES = LeptonTest.la GammaTest.la HadronTest.la DISTest.la
 
 if WANT_LIBFASTJET
 EXTRA_LTLIBRARIES += HadronJetTest.la LeptonJetTest.la
 HadronJetTest_la_SOURCES = \
 Hadron/VHTest.h Hadron/VHTest.cc\
 Hadron/VTest.h Hadron/VTest.cc\
 Hadron/HTest.h Hadron/HTest.cc
 HadronJetTest_la_CPPFLAGS = $(AM_CPPFLAGS) $(FASTJETINCLUDE) \
 -I$(FASTJETPATH)
 HadronJetTest_la_LIBADD = $(FASTJETLIBS) 
 LeptonJetTest_la_SOURCES = \
 Lepton/TopDecay.h Lepton/TopDecay.cc
 LeptonJetTest_la_CPPFLAGS = $(AM_CPPFLAGS) $(FASTJETINCLUDE) \
 -I$(FASTJETPATH)
 LeptonJetTest_la_LIBADD = $(FASTJETLIBS) 
 endif
 
 LeptonTest_la_SOURCES = \
 Lepton/VVTest.h Lepton/VVTest.cc \
 Lepton/VBFTest.h Lepton/VBFTest.cc \
 Lepton/VHTest.h Lepton/VHTest.cc \
 Lepton/FermionTest.h Lepton/FermionTest.cc
 
 GammaTest_la_SOURCES = \
 Gamma/GammaMETest.h  Gamma/GammaMETest.cc \
 Gamma/GammaPMETest.h Gamma/GammaPMETest.cc
 
 DISTest_la_SOURCES = \
 DIS/DISTest.h  DIS/DISTest.cc
 
 HadronTest_la_SOURCES = \
 Hadron/HadronVVTest.h  Hadron/HadronVVTest.cc\
 Hadron/HadronVBFTest.h  Hadron/HadronVBFTest.cc\
 Hadron/WHTest.h  Hadron/WHTest.cc\
 Hadron/ZHTest.h  Hadron/ZHTest.cc\
 Hadron/VGammaTest.h  Hadron/VGammaTest.cc\
 Hadron/ZJetTest.h  Hadron/ZJetTest.cc\
 Hadron/WJetTest.h  Hadron/WJetTest.cc\
 Hadron/QQHTest.h  Hadron/QQHTest.cc
 
 
 REPO = $(top_builddir)/src/HerwigDefaults.rpo
 HERWIG = $(top_builddir)/src/Herwig
 HWREAD = $(HERWIG) read --repo $(REPO) -L $(builddir)/.libs -i $(top_builddir)/src
 HWBUILD = $(HERWIG) build --repo $(REPO) -L $(builddir)/.libs -i $(top_builddir)/src
 HWINTEGRATE = $(HERWIG) integrate
 HWRUN = $(HERWIG) run -N $${NUMEVENTS:-10000}
 
 
 tests : tests-LEP tests-DIS tests-LHC tests-Gamma
 
 
 LEPDEPS = \
 test-LEP-VV \
 test-LEP-VH \
 test-LEP-VBF \
 test-LEP-BB \
 test-LEP-Quarks \
 test-LEP-Leptons
 
 if WANT_LIBFASTJET
 LEPDEPS += test-LEP-TopDecay
 endif
 
 tests-LEP : $(LEPDEPS)
 
 tests-DIS : test-DIS-Charged test-DIS-Neutral
 
 
 LHCDEPS = \
 test-LHC-WW test-LHC-WZ test-LHC-ZZ \
 test-LHC-ZGamma test-LHC-WGamma \
 test-LHC-ZH test-LHC-WH \
 test-LHC-ZJet test-LHC-WJet \
 test-LHC-Z test-LHC-W \
 test-LHC-ZZVBF test-LHC-VBF \
 test-LHC-WWVBF \
 test-LHC-bbH test-LHC-ttH \
 test-LHC-GammaGamma test-LHC-GammaJet \
 test-LHC-Higgs test-LHC-HiggsJet \
 test-LHC-QCDFast test-LHC-QCD \
 test-LHC-Top
 
 
 if WANT_LIBFASTJET
 LHCDEPS += \
 test-LHC-Bottom \
 test-LHC-WHJet test-LHC-ZHJet test-LHC-HJet \
 test-LHC-ZShower test-LHC-WShower \
 test-LHC-WHJet-Powheg test-LHC-ZHJet-Powheg test-LHC-HJet-Powheg \
 test-LHC-ZShower-Powheg test-LHC-WShower-Powheg
 endif
 
 tests-LHC : $(LHCDEPS) 
 
 tests-Gamma : test-Gamma-FF test-Gamma-WW test-Gamma-P
 
 
 
 LEPLIBS = LeptonTest.la
 HADLIBS = HadronTest.la
 
 if WANT_LIBFASTJET 
 LEPLIBS += LeptonJetTest.la
 HADLIBS += HadronJetTest.la
 endif
 
 
 test-LEP-% : Inputs/LEP-%.in $(LEPLIBS)
 	$(HWREAD) $<
 	$(HWRUN) $(notdir $(subst .in,.run,$<))
 
 test-Gamma-% : Inputs/Gamma-%.in GammaTest.la
 	$(HWREAD) $<
 	$(HWRUN) $(notdir $(subst .in,.run,$<))
 
 test-DIS-% : Inputs/DIS-%.in DISTest.la
 	$(HWREAD) $<
 	$(HWRUN) $(notdir $(subst .in,.run,$<))
 
 test-LHC-% : Inputs/LHC-%.in GammaTest.la $(HADLIBS)
 	$(HWREAD) $<
 	$(HWRUN) $(notdir $(subst .in,.run,$<))
 
 
 
 tests-Rivet : Rivet-EE Rivet-DIS Rivet-Fixed \
 	      Rivet-TVT-WZ Rivet-TVT-Photon Rivet-TVT-Jets \
 	      Rivet-LHC-Jets Rivet-LHC-EW Rivet-LHC-Photon Rivet-LHC-Higgs
 
 Rivet-%-UE-Cent.yoda : Rivet-%-UE-Cent.run Rivet-%-Cent.run
 	rm -rf $(subst .yoda,,$@)
 	mkdir $(subst .yoda,,$@)
 	mv $(subst .yoda,.run,$@) $(subst UE-,,$(subst .yoda,.run,$@)) $(subst .yoda,,$@)
 	cd $(subst .yoda,,$@); ../$(HWRUN) $(subst UE-,,$(subst .yoda,.run,$@)); mv $(subst UE-,,$@) ALICE_2015_PPCentrality.yoda
 	cd $(subst .yoda,,$@); export RIVET_ANALYSIS_PATH=`pwd`; ../$(HWRUN)  $(subst .yoda,.run,$@)
 	mv $(subst .yoda,,$@)/$@ .
 	rm -rf $(subst .yoda,,$@)
 
 Rivet-%.run : Rivet/%.in
 	$(HWBUILD) -c .cache/$(subst .run,,$@) $<
 
 Rivet-Matchbox-%.yoda : Rivet-Matchbox-%.run
 	$(HWINTEGRATE) -c .cache/$(subst .run,,$<) $<
 	$(HWRUN)       -c .cache/$(subst .run,,$<) $<
 
 Rivet-%.yoda : Rivet-%.run
 	$(HWRUN) $<
 
 Rivet/%.in :
 	python/make_input_files.py $(notdir $(subst .in,,$@))
 
 Rivet-inputfiles: $(shell echo Rivet/EE{,-Powheg,-Matchbox,-Dipole,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Matchbox-Powheg,-Merging}-{7.7,9.4,12,13,17,27.6,27.7,29,30.2,30.7,30,31.3,31.6,34,34.8,41,42.1,42.6,43.6,45,50,52,53.3,55,56,57,58,59.5,60.8,60,61.4,66,76,82,85,10,12.8,21.5,22,25,26.8,34.5,35,36.2,44,48.0,91,93.0,130,133,136,161,172,177,183,189,192,196,197,200,202,205,206,207,91-nopi}.in) \
                   $(shell echo Rivet/EE{,-Dipole,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Powheg,-Matchbox-Powheg}-{14,14.8}.in) \
 	          $(shell echo Rivet/EE{,-Dipole}-{10.5,11.96,12.8,13.96,16.86,21.84,26.8,28.48,35.44,48.0,97.0}-gg.in) \
                   $(shell echo Rivet/EE{,-Powheg,-Matchbox,-Dipole,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Matchbox-Powheg}-{2.2,2.6,3.0,3.2,4.17,4.3,4.41,5.0,5.2,4.6,4.8,5.8,6.2,6.6,7.0,7.4,3.63,4.03,4.5,8.8,9.27,9.46,9.51,10.52,10.52-sym,10.54,10.58,10.45,10.47,10.6}.in) \
                   $(shell echo Rivet/EE-{Upsilon,Upsilon2,Upsilon3,Upsilon4,Upsilon4-asym,JPsi,Psi2S,Psi3770,Tau,Phi,Lambdac,Omega-Meson,Omega-Baryon,Eta,Xi0,Xic0,Xicp,Omegac0,Xim}.in) \
                   $(shell echo Rivet/DIS{,-NoME,-Powheg,-Matchbox,-Dipole,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Matchbox-Powheg,-Merging}-{e--LowQ2,e+-LowQ2,e+-HighQ2}.in) \
                   $(shell echo Rivet/TVT{,-Powheg,-Matchbox,-Dipole,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Matchbox-Powheg,-Merging}-{Run-I-Z,Run-I-W,Run-I-WZ,Run-II-Z-e,Run-II-Z-{,LowMass-,HighMass-}mu,Run-II-W}.in) \
 	          $(shell echo Rivet/TVT{,-Dipole}-Run-II-{DiPhoton-GammaGamma,DiPhoton-GammaJet,PromptPhoton}.in) \
 	          $(shell echo Rivet/TVT-Powheg-Run-II-{DiPhoton-GammaGamma,DiPhoton-GammaJet}.in) \
                   $(shell echo Rivet/TVT{,-Dipole,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Matchbox,-Matchbox-Powheg,-Merging}-{Run-II-Jets-{0..11},Run-I-Jets-{1..8}}.in ) \
 	          $(shell echo Rivet/TVT{,-Dipole,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Matchbox,-Matchbox-Powheg,-Merging}-{630-Jets-{1..3},300-Jets-1,900-Jets-1}.in ) \
                   $(shell echo Rivet/TVT{,-Dipole}-{Run-I,Run-II,300,630,900}-UE.in) \
                   $(shell echo Rivet/LHC{,-Dipole,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Matchbox,-Matchbox-Powheg,-Merging}-7-DiJets-{1..7}-{A,B,C}.in ) \
                   $(shell echo Rivet/LHC{,-Dipole,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Matchbox,-Matchbox-Powheg,-Merging}-13-DiJets-{{1..11}-A,{6..11}-B}.in ) \
                   $(shell echo Rivet/LHC{,-Dipole,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Matchbox,-Matchbox-Powheg,-Merging}-{7,8,13}-Jets-{0..10}.in ) \
 	          $(shell echo Rivet/LHC{,-Dipole}-{900,2360,2760,7,8,13}-UE.in ) \
 	          $(shell echo Rivet/LHC{,-Dipole}-{7,13}{,-UE}-Cent.in ) \
 		  $(shell echo Rivet/LHC{,-Dipole}-2760-Jets-{1..3}.in ) \
 	          $(shell echo Rivet/LHC{,-Dipole}-{900,7,13}-UE-Long.in ) \
 		  $(shell echo Rivet/LHC{,-Dipole,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Matchbox,-Matchbox-Powheg,-Merging}-7-Charm-{1..5}.in) \
 		  $(shell echo Rivet/LHC{,-Dipole,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Matchbox,-Matchbox-Powheg,-Merging}-7-Bottom-{0..9}.in) \
 		  $(shell echo Rivet/LHC{,-Dipole,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Matchbox,-Matchbox-Powheg,-Merging}-7-Top-{L,SL}.in) \
 		  $(shell echo Rivet/LHC{,-Dipole,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Matchbox,-Matchbox-Powheg,-Merging}-{8,13}-Top-{All,L,SL}.in) \
                   $(shell echo Rivet/Star{,-Dipole}-{UE,Jets-{1..4}}.in ) \
 	          $(shell echo Rivet/SppS{,-Dipole}-{53,63,200,500,546,900}-UE.in ) \
-                  $(shell echo Rivet/LHC{,-Matchbox,-Matchbox-Powheg,-Powheg,-Dipole,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Merging}-{{,8-}W-{e,mu},13-Z-{e,mu},Z-HighMass{1,2}-e,13-W-mu,{8,13}-Z-Mass{1..4}-{e,mu},Z-{e,mu,mu-SOPHTY},Z-LowMass-{e,mu},Z-MedMass-e,WZ,WW-{emu,ll},ZZ-{ll,lv},{8,13}-WZ,8-ZZ-lv,8-WW-ll,Z-mu-Short}.in) \
+                  $(shell echo Rivet/LHC{,-Matchbox,-Matchbox-Powheg,-Powheg,-Dipole,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Merging}-{{,8-}W-{e,mu},13-Z-{e,mu},Z-HighMass{1,2}-e,13-W-mu,{8,13}-Z-Mass{1..4}-{e,mu},Z-{e,mu,mu-SOPHTY},Z-LowMass-{e,mu},Z-MedMass-e,WZ,WW-{emu,ll},13-WW-emu,ZZ-{ll,lv},{8,13}-WZ,8-ZZ-lv,8-WW-ll,Z-mu-Short}.in) \
                   $(shell echo Rivet/LHC{,-Dipole}-7-{W,Z}Gamma-{e,mu}.in) \
                   $(shell echo Rivet/LHC{,-Dipole}-8-ZGamma-{e,mu}.in) \
 	          $(shell echo Rivet/LHC{,-Matchbox,-Matchbox-Powheg,-Dipole,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Merging}-{7-W-Jet-{1..3}-e,7-Z-Jet-{0..3}-e,7-Z-Jet-0-mu}.in) \
 	          $(shell echo Rivet/LHC{-Matchbox,-Matchbox-Powheg,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Merging}-{Z-b,Z-bb,8-Z-b,8-Z-bb,W-b,8-Z-jj}.in) \
 		  $(shell echo Rivet/LHC{,-Dipole}-{7,8,13}-PromptPhoton-{1..4}.in) Rivet/LHC-GammaGamma-7.in \
 	          $(shell echo Rivet/LHC{,-Powheg,-Dipole}-{7,8}-{DiPhoton-GammaGamma,DiPhoton-GammaJet}.in) \
 	          $(shell echo Rivet/LHC{,-Powheg,-Matchbox,-Matchbox-Powheg,-Dipole,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Merging}-{ggH,VBF,WH,ZH}.in) \
                   $(shell echo Rivet/LHC{,-Powheg,-Matchbox,-Matchbox-Powheg,-Dipole,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Merging}-8-{{ggH,VBF,WH,ZH}{,-GammaGamma},ggH-WW}.in) \
                   $(shell echo Rivet/LHC{,-Matchbox,-Matchbox-Powheg,-Dipole,-Dipole-MCatNLO,-Dipole-Matchbox-Powheg,-Merging}-ggHJet.in) \
                   $(shell echo Rivet/ISR{,-Dipole}-{{30,44,53,62}-UE,{44,62}-Z-mu}.in Rivet/EHS{,-Dipole}-UE.in) \
                   $(shell echo Rivet/SPS{,-Dipole}-{17.4-UE,200-Z-mu}.in ) \
                   $(shell echo Rivet/Fermilab{,-Dipole}-{27.4,38.8}-Z-mu.in )
 
 
 Rivet-GammaGamma: Rivet-GammaGamma/done
 	touch $@
 
 Rivet-GammaGamma/done: $(shell echo Rivet-GammaGamma-mumu-{3.5,4.5,5.5,6.5,7.5,9.0,12.5,17.5,30.0}.yoda )
 	rm -rf Rivet-GammaGamma
 	python/merge-GammaGamma GammaGamma
 	rivet-mkhtml -o Rivet-GammaGamma GammaGamma.yoda:Hw
 	touch $@
 
 Rivet-EE-Gamma: Rivet-EE-Gamma/done
 	touch $@
 
 Rivet-EE-Gamma/done: $(shell echo Rivet-EE-Gamma-Direct-mumu-{161,172,183,189,196,206}.yoda ) \
                       $(shell echo Rivet-EE-Gamma-Direct-tautau-{189,196,206}.yoda ) \
 	              $(shell echo Rivet-EE-Gamma-{Direct,Single-Resolved,Double-Resolved}-Jets-{198,206}.yoda )
 	rm -rf Rivet-EE-Gamma
 	python/merge-EE-Gamma EE-Gamma
 	rivet-mkhtml -o Rivet-EE-Gamma EE-Gamma.yoda:Hw
 	touch $@
 
 Rivet-EE : Rivet-EE/done
 	touch $@
 
 Rivet-EE/done : $(shell echo Rivet{,-Powheg}-EE-{7.7,9.4,12,13,14,14.8,17,27.6,27.7,29,30.2,30.7,30,31.3,31.6,34,34.8,43.6,45,50,52,53.3,55,56,57,58,59.5,60.8,60,61.4,66,76,10,12.8,21.5,22,25,26.8,34.5,35,36.2,41,42.1,42.6,44,48.0,82,85,91,93.0,130,133,136,161,172,177,183,189,192,196,197,200,202,205,206,207,91-nopi}.yoda) \
 	   $(shell echo Rivet-EE-{10.5,11.96,12.8,13.96,16.86,21.84,26.8,28.48,35.44,48.0,97.0}-gg.yoda) \
 	   $(shell echo Rivet-EE-{10.52,10.52-sym,10.6,2.2,2.6,3.0,3.2,4.6,4.8,5.8,6.2,6.6,7.0,7.4,3.63,4.03,4.17,4.3,4.41,5.0,5.2,4.5,8.8,9.27,9.46,9.51,10.54,10.58,10.45,10.47,Upsilon,Upsilon2,Upsilon3,Upsilon4,Upsilon4-asym,Tau,Phi,Lambdac,Omega-Meson,Omega-Baryon,Eta,Xi0,Xic0,Xicp,Omegac0,Xim,JPsi,Psi2S,Psi3770}.yoda)
 	rm -rf Rivet-EE
 	python/merge-EE --with-gg --with-decay EE
 	python/merge-EE Powheg-EE
 	rivet-mkhtml -o Rivet-EE EE.yoda:Hw Powheg-EE.yoda:Hw-Powheg
 	python/plot-EE Rivet-EE
 	touch $@
 
 Rivet-LowEnergy-%.yoda:
 	$(HWBUILD) -c .cache/$(subst .yoda,,$@) Rivet/$(subst .yoda,.in,$@)
 	$(HWRUN)  $(subst .yoda,.run,$@)
 
 Rivet-LowEnergy-%:
 	args="--process "$(word 1,$(subst -, ,$(subst Rivet-LowEnergy-,,$@))); if [ -n "$(strip $(word 2,$(subst -, ,$(subst Rivet-LowEnergy-,,$@))))" ]; then args+=" --flavour "$(word 2,$(subst -, ,$(subst Rivet-LowEnergy-,,$@))); fi; OUTPUT=`python/LowEnergy.py $$args --non-perturbative --perturbative`; $(MAKE) $$OUTPUT NUMEVENTS=$${NUMEVENTS:-10000};
 	args="--process "$(word 1,$(subst -, ,$(subst Rivet-LowEnergy-,,$@))); plots=`python/LowEnergy.py $$args --plots`; python/mergeLowEnergy.py $(subst Rivet-LowEnergy-,,$@) $$plots; if [ -e LowEnergy-EE-NonPerturbative-$(subst Rivet-LowEnergy-,,$@).yoda ] && [ -e LowEnergy-EE-Perturbative-$(subst Rivet-LowEnergy-,,$@).yoda ]; then rivet-mkhtml -o Rivet-LowEnergy-$(subst Rivet-LowEnergy-,,$@) LowEnergy-EE-NonPerturbative-$(subst Rivet-LowEnergy-,,$@).yoda:"Non-Pert" LowEnergy-EE-Perturbative-$(subst Rivet-LowEnergy-,,$@).yoda:"Pert" $$plots; elif [ -e LowEnergy-EE-NonPerturbative-$(subst Rivet-LowEnergy-,,$@).yoda ]; then rivet-mkhtml -o Rivet-LowEnergy-$(subst Rivet-LowEnergy-,,$@) LowEnergy-EE-NonPerturbative-$(subst Rivet-LowEnergy-,,$@).yoda:"Non-Pert" $$plots; elif [ -e  LowEnergy-EE-Perturbative-$(subst Rivet-LowEnergy-,,$@).yoda ]; then  rivet-mkhtml -o Rivet-LowEnergy-$(subst Rivet-LowEnergy-,,$@)  LowEnergy-EE-Perturbative-$(subst Rivet-LowEnergy-,,$@).yoda:"Pert" $$plots; fi
 
 Rivet-R:
 	OUTPUT=`python/R.py --perturbative --non-perturbative`; $(MAKE) $$OUTPUT NUMEVENTS=$${NUMEVENTS:-10000};
 	plots=`python/R.py --perturbative --non-perturbative --plots`; python/mergeLowEnergy.py R $$plots; rivet-mkhtml -o Rivet-R LowEnergy-EE-Perturbative-R.yoda:"Pert" LowEnergy-EE-NonPerturbative-R.yoda:"Non-Pert" $$plots
 
 Rivet-DIS : Rivet-DIS/done
 	touch $@
 
 Rivet-DIS/done: $(shell echo Rivet{-DIS,-DIS-NoME,-Powheg-DIS}-{e--LowQ2,e+-LowQ2,e+-HighQ2}.yoda)
 	rm -rf Rivet-DIS
 	python/merge-DIS DIS 
 	python/merge-DIS Powheg-DIS
 	python/merge-DIS DIS-NoME
 	rivet-mkhtml -o Rivet-DIS DIS.yoda:Hw Powheg-DIS.yoda:Hw-Powheg DIS-NoME.yoda:Hw-NoME
 	touch $@
 
 
 
 Rivet-TVT-EW : Rivet-TVT-EW/done
 	touch $@
 
 Rivet-TVT-EW/done:  $(shell echo Rivet{,-Powheg}-TVT-{Run-I-Z,Run-I-W,Run-I-WZ,Run-II-Z-{e,{,LowMass-,HighMass-}mu},Run-II-W}.yoda)
 	rm -rf Rivet-TVT-EW
 	python/merge-TVT-EW TVT
 	python/merge-TVT-EW Powheg-TVT
 	rivet-mkhtml -o Rivet-TVT-EW TVT-EW.yoda:Hw Powheg-TVT-EW.yoda:Hw-Powheg
 	touch $@
 
 Rivet-TVT-Photon : Rivet-TVT-Photon/done
 	touch $@
 
 Rivet-TVT-Photon/done: $(shell echo Rivet{,-Powheg}-TVT-Run-II-{DiPhoton-GammaGamma,DiPhoton-GammaJet}.yoda Rivet-TVT-Run-II-PromptPhoton.yoda)
 	rm -rf Rivet-TVT-Photon
 	python/merge-TVT-Photon TVT
 	python/merge-TVT-Photon Powheg-TVT
 	rivet-mkhtml -o Rivet-TVT-Photon TVT-Photon.yoda:Hw Powheg-TVT-Photon.yoda:Hw-Powheg
 	touch $@
 
 
 
 Rivet-TVT-Jets : Rivet-TVT-Jets/done
 	touch $@
 
 Rivet-TVT-Jets/done:  $(shell echo Rivet-TVT-{Run-II-Jets-{0..11},Run-I-Jets-{1..8}}.yoda ) \
 	         $(shell echo Rivet-TVT-{630-Jets-{1..3},300-Jets-1,900-Jets-1}.yoda ) \
                  $(shell echo Rivet-TVT-{Run-I,Run-II,300,630,900}-UE.yoda)
 	rm -rf Rivet-TVT-Jets
 	python/merge-TVT-Jets TVT
 	rivet-mkhtml -o Rivet-TVT-Jets TVT-Jets.yoda:Hw
 	touch $@
 
 Rivet-Fixed : Rivet-Fixed/done
 	touch $@
 
 
 Rivet-Fixed/done : $(shell echo Rivet-SppS-{53,63,200,500,546,900}-UE.yoda ) \
 	          $(shell echo Rivet-ISR-{{30,44,53,62}-UE,{44,62}-Z-mu}.yoda ) Rivet-EHS-UE.yoda \
                   $(shell echo Rivet-Star-{UE,Jets-{1..4}}.yoda ) \
                   $(shell echo Rivet-SPS-{17.4-UE,200-Z-mu}.yoda ) \
                   $(shell echo Rivet-Fermilab-{27.4,38.8}-Z-mu.yoda )
 	rm -rf Rivet-Fixed
 	python/merge-Fixed Fixed
 	rivet-mkhtml -o Rivet-Fixed Fixed.yoda:Hw
 	touch $@
 
 Rivet-LHC-Jets : Rivet-LHC-Jets/done
 	touch $@
 
 Rivet-LHC-Jets/done : \
 	        $(shell echo Rivet-LHC-7-DiJets-{1..7}-{A,B,C}.yoda   ) \
 	        $(shell echo Rivet-LHC-13-DiJets-{{1..11}-A,{6..11}-B}.yoda   ) \
 	        $(shell echo Rivet-LHC-{7,8,13}-Jets-{0..10}.yoda     ) \
 	        $(shell echo Rivet-LHC-2760-Jets-{1..3}.yoda     ) \
 	        $(shell echo Rivet-LHC-{900,2360,2760,7,8,13}-UE.yoda ) \
 	        $(shell echo Rivet-LHC-{7,13}-UE-Cent.yoda ) \
 	        $(shell echo Rivet-LHC-{900,7,13}-UE-Long.yoda        ) \
 		$(shell echo Rivet-LHC-7-Charm-{1..5}.yoda            ) \
 		$(shell echo Rivet-LHC-7-Bottom-{0..9}.yoda           ) \
 		$(shell echo Rivet-LHC-{7,8,13}-Top-{L,SL}.yoda ) \
 		$(shell echo Rivet-LHC-{8,13}-Top-All.yoda )
 	rm -rf Rivet-LHC-Jets
 	python/merge-LHC-Jets LHC
 	rivet-mkhtml -o Rivet-LHC-Jets LHC-Jets.yoda:Hw
 	touch $@
 
 
 Rivet-LHC-EW : Rivet-LHC-EW/done
 	touch $@
 
 Rivet-LHC-EW/done: \
-		$(shell echo Rivet{,-Powheg}-LHC-{13-Z-{e,mu},13-W-mu,Z-HighMass{1,2}-e,{8,13}-Z-Mass{1..4}-{e,mu},{,8-}W-{e,mu},Z-{e,mu,mu-SOPHTY},Z-LowMass-{e,mu},Z-MedMass-e,WZ,WW-{emu,ll},ZZ-{ll,lv},{8,13}-WZ,8-ZZ-lv,8-WW-ll,Z-mu-Short}.yoda) \
+		$(shell echo Rivet{,-Powheg}-LHC-{13-Z-{e,mu},13-W-mu,Z-HighMass{1,2}-e,{8,13}-Z-Mass{1..4}-{e,mu},{,8-}W-{e,mu},Z-{e,mu,mu-SOPHTY},Z-LowMass-{e,mu},Z-MedMass-e,WZ,WW-{emu,ll},13-WW-emu,ZZ-{ll,lv},{8,13}-WZ,8-ZZ-lv,8-WW-ll,Z-mu-Short}.yoda) \
 		$(shell echo Rivet-LHC-{7-W-Jet-{1..3}-e,7-Z-Jet-{0..3}-e,7-Z-Jet-0-mu}.yoda) \
 		$(shell echo Rivet-LHC-7-{W,Z}Gamma-{e,mu}.yoda) \
 		$(shell echo Rivet-LHC-8-ZGamma-{e,mu}.yoda) 
 	rm -rf Rivet-LHC-EW;
 	python/merge-LHC-EW LHC
 	python/merge-LHC-EW Powheg-LHC
 	rivet-mkhtml -o Rivet-LHC-EW LHC-EW.yoda:Hw Powheg-LHC-EW.yoda:Hw-Powheg \
                                      Rivet-LHC-Z-mu-SOPHTY.yoda:Hw Rivet-Powheg-LHC-Z-mu-SOPHTY.yoda:Hw-Powheg
 	touch $@
 
 
 
 
 Rivet-LHC-Photon : Rivet-LHC-Photon/done
 	touch $@
 
 Rivet-LHC-Photon/done: \
 		$(shell echo Rivet-LHC-{7,8,13}-PromptPhoton-{1..4}.yoda) \
 		Rivet-LHC-GammaGamma-7.yoda \
 	    $(shell echo Rivet{,-Powheg}-LHC-{7,8}-{DiPhoton-GammaGamma,DiPhoton-GammaJet}.yoda)
 	rm -rf Rivet-LHC-Photon
 	python/merge-LHC-Photon LHC
 	python/merge-LHC-Photon Powheg-LHC
 	rivet-mkhtml -o Rivet-LHC-Photon LHC-Photon.yoda:Hw Powheg-LHC-Photon.yoda:Hw-Powheg
 	touch $@
 
 
 
 
 Rivet-LHC-Higgs : Rivet-LHC-Higgs/done
 	touch $@
 
 Rivet-LHC-Higgs/done:  \
 		$(shell echo Rivet{,-Powheg}-LHC-{ggH,VBF,WH,ZH}.yoda) \
         $(shell echo Rivet{,-Powheg}-LHC-8-{{ggH,VBF,WH,ZH}{,-GammaGamma},ggH-WW}.yoda) \
         Rivet-LHC-ggHJet.yoda
 	yodamerge --add Rivet-Powheg-LHC-8-{ggH{-GammaGamma,-WW,},{VBF,ZH,WH}{,-GammaGamma}}.yoda -o Powheg-LHC-Higgs.yoda
 	yodamerge --add Rivet-LHC-8-{ggH{-GammaGamma,-WW,},{VBF,ZH,WH}{,-GammaGamma}}.yoda -o LHC-Higgs.yoda
 	rm -rf Rivet-LHC-Higgs
 	rivet-mkhtml -o Rivet-LHC-Higgs Powheg-LHC-Higgs.yoda:Hw-Powheg LHC-Higgs.yoda:Hw\
 	                Rivet-Powheg-LHC-ggH.yoda:gg-Powheg Rivet-LHC-ggH.yoda:gg Rivet-LHC-ggHJet.yoda:HJet \
                         Rivet-Powheg-LHC-VBF.yoda:VBF-Powheg Rivet-LHC-VBF.yoda:VBF Rivet-LHC-WH.yoda:WH Rivet-LHC-ZH.yoda:ZH \
                         Rivet-Powheg-LHC-WH.yoda:WH-Powheg Rivet-Powheg-LHC-ZH.yoda:ZH-Powheg
 	touch $@
 
 
 
 
 
 clean-local:
 	rm -f *.out *.log *.tex *.top *.run *.dump *.mult *.Bmult *.yoda Rivet/*.in anatohepmc.txt hepmctoana.txt
 	rm -rf Rivet-*
 
 distclean-local:
 	rm -rf .cache
diff --git a/Tests/Rivet/LHC/LHC-WW-emu.in b/Tests/Rivet/LHC/LHC-13-WW-emu.in
copy from Tests/Rivet/LHC/LHC-WW-emu.in
copy to Tests/Rivet/LHC/LHC-13-WW-emu.in
--- a/Tests/Rivet/LHC/LHC-WW-emu.in
+++ b/Tests/Rivet/LHC/LHC-13-WW-emu.in
@@ -1,6 +1,6 @@
 # -*- ThePEG-repository -*-
 ##################################################
 # select the analyses
 ##################################################
-# general analysis
-insert /Herwig/Analysis/RivetAnalysis:Analyses 0 MC_WWJETS
+# ATLAS emu
+insert /Herwig/Analysis/RivetAnalysis:Analyses 0 ATLAS_2019_I1734263
diff --git a/Tests/python/merge-LHC-EW b/Tests/python/merge-LHC-EW
--- a/Tests/python/merge-LHC-EW
+++ b/Tests/python/merge-LHC-EW
@@ -1,491 +1,491 @@
 #! /usr/bin/env python
 from __future__ import print_function
 import logging, sys, os, yoda
 
 """%prog
 
 Script for merging aida files
 
 """
 
 def fillAbove(scale,desthisto, sourcehistosbyptmin) :
     pthigh= 1e100
     ptlow =-1e100
     for pt, h in sorted(sourcehistosbyptmin.items(),reverse=True):
         ptlow=pt
         if(type(desthisto)==yoda.core.Scatter2D) :
             for i in range(0,h.numPoints()) :
                 xMin = h.points()[i].x()-h.points()[i].xErrs().minus
                 if( xMin*scale >= ptlow and 
                     xMin*scale <  pthigh ) :
                     desthisto.addPoint(h.points()[i])
         elif(type(desthisto)==yoda.core.Profile1D) :
             for i in range(0,h.numBins()) :
                 if(h.bins()[i].xMin()*scale  >= ptlow and 
                    h.bins()[i].xMin()*scale  <  pthigh ) :
                     desthisto.bins()[i] += h.bins()[i]
         elif(type(desthisto)==yoda.core.Histo1D) :
             for i in range(0,h.numBins()) :
                 if(h.bins()[i].xMin()*scale  >= ptlow and 
                    h.bins()[i].xMin()*scale  <  pthigh ) :
                     desthisto.bins()[i] += h.bins()[i]
         else :
             logging.error("Can't merge %s, unknown type" % desthisto.path())
             sys.exit(1)
         pthigh=pt
 
 def mergeByMass(hpath, sqrts, scale=1.):
     global inhistos_mass
     global outhistos
     try:
         fillAbove(scale,outhistos[hpath], inhistos_mass[hpath][float(sqrts)])
     except:
         pass
 
 def useOneMass(hpath, sqrts, ptmin):
     global inhistos_mass
     global outhistos
     try:
        ## Find best pT_min match
         ptmins = inhistos_mass[hpath][float(sqrts)].keys()
         closest_ptmin = None
         for ptm in ptmins:
             if closest_ptmin is None or \
                     abs(ptm-float(ptmin)) < abs(closest_ptmin-float(ptmin)):
                 closest_ptmin = ptm
         if closest_ptmin != float(ptmin):
             logging.warning("Inexact match for requested pTmin=%s: " % ptmin + \
                                 "using pTmin=%e instead" % closest_ptmin)
         outhistos[hpath] =  inhistos_mass[hpath][float(sqrts)][closest_ptmin]
     except:
         pass
 
 import sys
 if sys.version_info[:3] < (2,4,0):
     print ("rivet scripts require Python version >= 2.4.0... exiting")
     sys.exit(1)
 
 if __name__ == "__main__":
     import logging
     from optparse import OptionParser, OptionGroup
     parser = OptionParser(usage="%prog base")
     verbgroup = OptionGroup(parser, "Verbosity control")
     verbgroup.add_option("-v", "--verbose", action="store_const", const=logging.DEBUG, dest="LOGLEVEL",
                          default=logging.INFO, help="print debug (very verbose) messages")
     verbgroup.add_option("-q", "--quiet", action="store_const", const=logging.WARNING, dest="LOGLEVEL",
                          default=logging.INFO, help="be very quiet")
     parser.add_option_group(verbgroup)
     (opts, args) = parser.parse_args()
     logging.basicConfig(level=opts.LOGLEVEL, format="%(message)s")
 
     ## Check args
     if len(args) < 1:
         logging.error("Must specify at least the name of the files")
         sys.exit(1)
 
     yodafiles=["-13-Z-e","-13-Z-mu","-Z-HighMass1-e","-Z-HighMass2-e",
                "-8-Z-Mass1-e" ,"-8-Z-Mass1-mu" ,"-8-Z-Mass2-e" ,"-8-Z-Mass2-mu" ,"-8-Z-Mass3-e" ,"-8-Z-Mass3-mu" ,"-8-Z-Mass4-e" ,"-8-Z-Mass4-mu" ,
                "-13-Z-Mass1-e","-13-Z-Mass1-mu","-13-Z-Mass2-e","-13-Z-Mass2-mu","-13-Z-Mass3-e","-13-Z-Mass3-mu","-13-Z-Mass4-e","-13-Z-Mass4-mu",
                "-W-e","-W-mu","-Z-e","-Z-mu","-Z-mu-Short","-Z-LowMass-e","-Z-LowMass-mu",
                "-Z-MedMass-e","8-W-e","8-W-mu",
-               "-WW-emu","-WW-ll","-WZ","-ZZ-ll","-ZZ-lv","-8-WZ","-13-WZ","-8-ZZ-lv","-8-WW-ll",
+               "-WW-emu","-WW-ll","13-W-emu","-WZ","-ZZ-ll","-ZZ-lv","-8-WZ","-13-WZ","-8-ZZ-lv","-8-WW-ll",
                "-7-W-Jet-1-e","-7-W-Jet-2-e","-7-W-Jet-3-e","-7-Z-Jet-1-e","-7-Z-Jet-2-e","-7-Z-Jet-3-e",
                "-7-WGamma-e","-7-WGamma-mu","-7-ZGamma-e","-7-ZGamma-mu"]
     ## Get histos
     outhistos={}
 
     inhistos_mass = {}
     for f in yodafiles:
         file='Rivet-'+args[0]+f+".yoda"
         if not os.access(file, os.R_OK):
             logging.error("%s can not be read" % file)
             continue
         try:
             aos = yoda.read(file)
         except:
             logging.error("%s can not be parsed as yoda" % file)
             continue
         mass=66
         if(file.find("HighMass1")>=0) :
             mass = 116
         elif(file.find("HighMass2")>=0) :
             mass = 400
         elif(file.find("Mass1")>=0) :
             mass = 12
         elif(file.find("Mass2")>=0) :
             mass = 30
         elif(file.find("Mass3")>=0) :
             mass = 66
         elif(file.find("Mass4")>=0) :
             mass = 116
         ## Get histos from this YODA file
         for aopath, ao in aos.items() :
             if("RAW" in aopath) :continue
             if(aopath.find("ATLAS_2010_S8919674")>0) :
                 if((aopath.find("d01")>0 or aopath.find("d05")>0 or 
                     aopath.find("d07")>0) and file.find("-e")>0) : 
                     outhistos[aopath] = ao
                 elif((aopath.find("d02")>0 or aopath.find("d06")>0 or 
                       aopath.find("d08")>0) and file.find("-mu")>0) : 
                     outhistos[aopath] = ao
             elif (aopath.find("ATLAS_2011_S9131140")>0) :
                 if(aopath.find("d01")>0 and file.find("-e")>0) : 
                     outhistos[aopath] = ao
                 elif(aopath.find("d02")>0 and file.find("-mu")>0) : 
                     outhistos[aopath] = ao
             elif (aopath.find("ATLAS_2011_I925932")>0) :
                 if(aopath.find("d01")>0 and file.find("-e")>0) : 
                     outhistos[aopath] = ao
                 elif(aopath.find("d02")>0 and file.find("-mu")>0) : 
                     outhistos[aopath] = ao
             elif (aopath.find("ATLAS_2011_I945498")>0) :
                 if(aopath.find("y01")>0 and file.find("-e")>0) : 
                     outhistos[aopath] = ao
                 elif(aopath.find("y02")>0 and file.find("-mu")>0) : 
                     outhistos[aopath] = ao
                 elif(aopath.find("y03")>0 and file.find("-mu")>0) : 
                     outhistos[aopath] = ao
             elif (aopath.find("ATLAS_2013_I1217867")>0) :
                 if(aopath.find("y01")>0 and file.find("-e")>0) : 
                     outhistos[aopath] = ao
                 elif(aopath.find("y02")>0 and file.find("-mu")>0) : 
                     outhistos[aopath] = ao
             elif (aopath.find("CMS_2012_I941555")>0) :
                 if((aopath.find("y01")>0 or aopath.find("y03")>0 ) and file.find("-mu")>0) : 
                     outhistos[aopath] = ao
                 elif(aopath.find("y02")>0 and file.find("-e")>0) : 
                     outhistos[aopath] = ao
             elif (aopath.find("ATLAS_2014_I1300647" )>0) :
                 if(aopath.find("y01")>0 and file.find("-e")>0) : 
                     outhistos[aopath] = ao
                 elif((not aopath.find("y01")>0) and file.find("-mu")>0) :
                     outhistos[aopath] = ao
             elif (aopath.find("ATLAS_2014_I1288706" )>0) :
                 if(aopath.find("y02")>0 and file.find("-e")>0) : 
                     outhistos[aopath] = ao
                 elif(aopath.find("y01")>0 and file.find("-mu")>0) :
                     outhistos[aopath] = ao
             elif (aopath.find("ATLAS_2012_I1204784" )>0) :
                 if( file.find("-e")>0 and
                     ( aopath.find("d03")>0 or 
                       ((aopath.find("d01")>0 or aopath.find("d02")>0) and aopath.find("y01")>0))) : 
                     outhistos[aopath] = ao
                 elif(file.find("-mu")>0 and
                      ( aopath.find("d04")>0 or 
                        ((aopath.find("d01")>0 or aopath.find("d02")>0) and aopath.find("y02")>0))) : 
                     outhistos[aopath] = ao
             elif (aopath.find("ATLAS_2014_I1312627")>0) :
                 if("EL" in aopath) :
                     if(file.find("W")>0 and aopath.find("x02")>0) :
                         outhistos[aopath] = ao
                     elif(file.find("Z")>0 and aopath.find("x03")>0) :
                         outhistos[aopath] = ao
                 elif ("MU" in aopath) :
                     if(file.find("W")>0 and aopath.find("x02")>0) :
                         outhistos[aopath] = ao
                     elif(file.find("Z")>0 and aopath.find("x03")>0) :
                         outhistos[aopath] = ao
                 else :
                     if(file.find("W")>0 and aopath.find("x02")>0) :
                         outhistos[aopath] = ao
                     elif(file.find("Z")>0 and aopath.find("x03")>0) :
                         outhistos[aopath] = ao
             elif (aopath.find("CMS_2018_I1711625")>0) :
                 if( file.find("-e")>0 and aopath.find("d06-x01-y01") > 0 ):
                     if aopath in outhistos :
                         outhistos[aopath] += ao
                     else :
                         outhistos[aopath]  = ao
                 elif( file.find("-mu")>0 and (aopath.find("d03-x01-y01") > 0 or aopath.find("d05-x01-y01") > 0) ):
                     if aopath in outhistos :
                         outhistos[aopath] += ao
                     else :
                         outhistos[aopath]  = ao
             elif (aopath.find("CMS_2013_I1224539_WJET" )>0) :
                 if(file.find("-1-e")>0 and (aopath.find("d52")>0 or aopath.find("d53")>0 or aopath.find("d56")>0 or aopath.find("d57")>0 or aopath.find("d60")>0 or aopath.find("d61")>0 or aopath.find("d64")>0 or aopath.find("d65")>0 or aopath.find("d68")>0 or aopath.find("d69")>0 or aopath.find("d72")>0)) :
                     outhistos[aopath] = ao
                 elif(file.find("-2-e")>0 and (aopath.find("d54")>0 or aopath.find("d58")>0 or aopath.find("d62")>0 or aopath.find("d66")>0 or aopath.find("d70")>0 or aopath.find("d73")>0)) :
                     outhistos[aopath] = ao
                 elif(file.find("-3-e")>0 and (aopath.find("d55")>0 or aopath.find("d59")>0 or aopath.find("d63")>0 or aopath.find("d67")>0 or aopath.find("d71")>0 or aopath.find("d74")>0)) :
                     outhistos[aopath] = ao
             elif (aopath.find("CMS_2013_I1224539_ZJET" )>0) :
                 if(file.find("-1-e")>0 and (aopath.find("d29")>0 or aopath.find("d30")>0 or aopath.find("d33")>0 or aopath.find("d34")>0 or aopath.find("d37")>0 or aopath.find("d38")>0 or aopath.find("d41")>0 or aopath.find("d42")>0 or aopath.find("d45")>0 or aopath.find("d46")>0 or aopath.find("d49")>0)) :
                     outhistos[aopath] = ao
                 elif(file.find("-2-e")>0 and (aopath.find("d31")>0 or aopath.find("d35")>0 or aopath.find("d39")>0 or aopath.find("d43")>0 or aopath.find("d47")>0 or aopath.find("d50")>0)) :
                     outhistos[aopath] = ao
                 elif(file.find("-3-e")>0 and (aopath.find("d32")>0 or aopath.find("d36")>0 or aopath.find("d40")>0 or aopath.find("d44")>0 or aopath.find("d48")>0 or aopath.find("d51")>0)) :
                     outhistos[aopath] = ao
             elif (aopath.find("CMS_2013_I1258128")>0) :
                 if(aopath.find("d01")>0 or aopath.find("d02")>0 or
                    aopath.find("d03")>0 or aopath.find("d04")>0) :
                     outhistos[aopath] = ao
             elif (aopath.find("CMS_2013_I1209721" )>0 and file.find("-0")>0 ) :
                 outhistos[aopath] = ao
             elif (aopath.find("ATLAS_2011_I928289")>0) :
                 if(file.find("-e")>=0 and (aopath.find("y01")>=0 or aopath.find("y02")>=0)) :
                     outhistos[aopath] = ao
                 elif(file.find("-mu")>=0 and (aopath.find("y03")>=0 or aopath.find("y04")>=0)) :
                     outhistos[aopath] = ao
             elif (aopath.find("CMS_2013_I1122847")>0) :
                 if(file.find("-mu")>=0 and aopath.find("d01")>=0 ) :
                     outhistos[aopath] = ao
                 elif(file.find("-e")>=0 and (aopath.find("d02")>=0 or aopath.find("d03")>=0)) :
                     outhistos[aopath] = ao
             elif (aopath.find("ATLAS_2016_I1424838")>0) :
                 ihist = int(aopath.split("/")[2].split("-")[0].replace("d",""))
                 if(file.find("-mu")>=0 and ihist>30 ) :
                     outhistos[aopath] = ao
                 elif(file.find("-e")>=0 and ihist<=30) :
                     outhistos[aopath] = ao
 
             elif "ATLAS_2016_I1502620" in aopath :
                 newPath = aopath.split(":")[0]+"/"+aopath.split("/")[-1]
                 if newPath in outhistos :
                     continue
                 else :                
                     outhistos[newPath] = ao
                     ao.setPath(newPath)
             elif ("CMS_2015_I1310737" in aopath or "ATLAS_2013_I1219109" in aopath or
                   ("ATLAS_2014_I1319490" in aopath and "y01" in aopath )) :
                 if aopath in outhistos :
                     outhistos[aopath] += ao
                 else :
                     outhistos[aopath] = ao
             elif (aopath.find("ATLAS_2015_I1351916")>=0) :
                 if(aopath.find("-y02")>=0) :
                     pathBase = "/%s/" % aopath.split("/")[1]
                     if("d03" in aopath) :
                         hp = aos[pathBase+"_ncf_pos"]
                         hm = aos[pathBase+"_ncf_neg"]
                     else :
                         hp = aos[pathBase+"_ncc_pos"]
                         hm = aos[pathBase+"_ncc_neg"]
                     ratio = (hp-hm)/(hp+hm)
                     title=""
                     if hasattr(ao, 'title'):
                         title=ao.title()
                     hnew = yoda.core.Scatter2D(aopath,title)
                     hnew.combineWith(ratio)
                     outhistos[aopath] = hnew
                 else :
                     continue
             elif (aopath.find("ATLAS_2014_I1282447")>=0) :
                 if((aopath.find("/ATLAS_2014_I1282447/d02-x01-y01")>=0 or
                     aopath.find("/ATLAS_2014_I1282447/d08-x01-y01")>=0 or 
                     aopath.find("/ATLAS_2014_I1282447/d02-x01-y02")>=0 or 
                     aopath.find("/ATLAS_2014_I1282447/d02-x01-y01")>=0 or
                     aopath.find("/ATLAS_2014_I1282447/d05-x01-y02")>=0 or 
                     aopath.find("/ATLAS_2014_I1282447/d05-x01-y03")>=0 or 
                     aopath.find("/ATLAS_2014_I1282447/d06-x01-y01")>=0 or
                     aopath.find("/ATLAS_2014_I1282447/d06-x01-y02")>=0 or 
                     aopath.find("/ATLAS_2014_I1282447/d06-x01-y03")>=0 or 
                     aopath.find("/ATLAS_2014_I1282447/d06-x01-y04")>=0) and 
                    not (aopath.find("plus")>=0 or aopath.find("minus")>=0 or
                         aopath.find("inc")>=0)) :
                     continue
                 if aopath in outhistos :
                     outhistos[aopath] += ao
                 else :
                     outhistos[aopath] = ao
             elif (aopath.find("ATLAS_2015_I1408516")>=0) :
                 if aopath not in inhistos_mass:
                     inhistos_mass[aopath] = {}
                 tmpE = inhistos_mass[aopath]
                 sqrts=8000
                 if sqrts not in tmpE:
                     tmpE[sqrts] = {}
                 tmpP = tmpE[sqrts]
                 if mass not in tmpP:
                     tmpP[mass] = ao
                 else:
                     raise Exception("A set with mass = %s already exists" % ( mass))
             elif (aopath.find("ATLAS_2013_I1234228")>=0) :
                 if aopath not in inhistos_mass:
                     inhistos_mass[aopath] = {}
                 tmpE = inhistos_mass[aopath]
                 sqrts=7000
                 if sqrts not in tmpE:
                     tmpE[sqrts] = {}
                 tmpP = tmpE[sqrts]
                 if mass not in tmpP:
                     tmpP[mass] = ao
                 else:
                     raise Exception("A set with mass = %s already exists" % ( mass))
             elif (aopath.find("ATLAS_2017_I1514251")>=0) :
                 outhistos[aopath] = ao
                 if(type(ao)==yoda.core.Scatter2D) :
                     ao.scaleY(2.)
                 elif(type(ao)==yoda.core.Histo1D) :
                     ao.scaleW(2.)
             elif ( "2015_041_" in aopath) :
                 aopath=aopath.replace("_EL","").replace("_MU","")
                 ao.setPath(aopath)
                 outhistos[aopath] = ao
             elif "CMS_2019_I1753680" in aopath :
                 if("d26" in aopath or "d27" in aopath or "d28" in aopath) :
                     if ("y01" in aopath and "=MU" in aopath) or ("y02" in aopath and "=EL" in aopath) :
                         outhistos[aopath] = ao
                     elif ("y03" in aopath and "=EMU" in aopath) :
                         if aopath in outhistos :
                             outhistos[aopath] += ao
                         else :
                             outhistos[aopath] = ao
                 elif  "=EMU" in aopath:
                     if aopath in outhistos :
                         outhistos[aopath] += ao
                         if "d29" not in aopath :
                             outhistos[aopath].scaleW(0.5)
                     else :
                         outhistos[aopath]  = ao
             elif "CMS_2018_I1667854" in aopath :
                 if "=EMU" in aopath:
                     if aopath in outhistos :
                         outhistos[aopath] += ao
                     else :
                         outhistos[aopath]  = ao
             else :
                 outhistos[aopath] = ao
     for hpath,hsets in inhistos_mass.items():
         if(hpath!="/ATLAS_2015_I1408516:LMODE=EL/d41-x01-y01" and
            hpath!="/ATLAS_2015_I1408516:LMODE=MU/d41-x01-y02" and
            hpath!="/ATLAS_2013_I1234228/d01-x01-y02" ) :
             continue
         title=""
         path=""
         histo = list(list(hsets.values())[0].values())[0]
         if hasattr(histo, 'title'):
             title=histo.title()
         if hasattr(histo, 'path'):
             path=histo.path()
         if(type(histo)==yoda.core.Scatter2D) :
             outhistos[hpath] = yoda.core.Scatter2D(path,title)
         elif(type(histo)==yoda.core.Profile1D) :
             outhistos[hpath] = yoda.core.Profile1D(path,title)
             for i in range(0,histo.numBins()) :
                 outhistos[hpath].addBin(histo.bins()[i].xMin(),
                                         histo.bins()[i].xMax())
         elif(type(histo)==yoda.core.Histo1D) :
             outhistos[hpath] = yoda.core.Histo1D(path,title)
             for i in range(0,histo.numBins()) :
                 outhistos[hpath].addBin(histo.bins()[i].xMin(),
                                         histo.bins()[i].xMax())
         else :
             logging.error("Histogram %s is of unknown type" % hpath)
             sys.exit(1)
     # sort out mass bins for ATLAS Z-> e,mu at 8 TeV
     for ltype in ["EL","MU"] :
         if(ltype=="EL") :
             y = "y01"
             mergeByMass("/ATLAS_2015_I1408516:LMODE=EL/d41-x01-y01", "8000")
         else :
             y = "y04"
             mergeByMass("/ATLAS_2015_I1408516:LMODE=MU/d41-x01-y02", "8000")
         for d in [2,3,4,14,26,38]:
             useOneMass("/ATLAS_2015_I1408516:LMODE=%s/d%02d-x01-%s" % (ltype,d,y), "8000", "30" )
         for d in [5,6,7,8,9,10,15,17,18,19,20,21,22,27,29,30,31,32,33,34,39]:
             useOneMass("/ATLAS_2015_I1408516:LMODE=%s/d%02d-x01-%s" % (ltype,d,y), "8000", "66" )
         for d in [11,12,13,16,28,40]:
             useOneMass("/ATLAS_2015_I1408516:LMODE=%s/d%02d-x01-%s" % (ltype,d,y), "8000", "116" )
         for d in [23,35]:
             useOneMass("/ATLAS_2015_I1408516:LMODE=%s/d%02d-x01-%s" % (ltype,d,y), "8000", "12" )
         for d in [24,36]:
             useOneMass("/ATLAS_2015_I1408516:LMODE=%s/d%02d-x01-%s" % (ltype,d,y), "8000", "12" )
         for d in [25,37]:
             useOneMass("/ATLAS_2015_I1408516:LMODE=%s/d%02d-x01-%s" % (ltype,d,y), "8000", "30" )
     # sort out ratios for ATLAS W+c
     if("/ATLAS_2014_I1282447/d02-x01-y01_plus" in outhistos and 
        "/ATLAS_2014_I1282447/d02-x01-y01_minus" in outhistos) :
         d02y01_plus  = outhistos["/ATLAS_2014_I1282447/d02-x01-y01_plus"]
         d02y01_minus = outhistos["/ATLAS_2014_I1282447/d02-x01-y01_minus"]
         ratio_d02y01 = d02y01_plus/d02y01_minus
         ratio_d02y01.setPath("/ATLAS_2014_I1282447/d02-x01-y01")
         del outhistos["/ATLAS_2014_I1282447/d02-x01-y01_plus"]
         del outhistos["/ATLAS_2014_I1282447/d02-x01-y01_minus"]
         outhistos["/ATLAS_2014_I1282447/d02-x01-y01"] = ratio_d02y01
     if("/ATLAS_2014_I1282447/d02-x01-y02_plus" in outhistos and 
        "/ATLAS_2014_I1282447/d02-x01-y02_minus" in outhistos) :
         d02y02_plus  = outhistos["/ATLAS_2014_I1282447/d02-x01-y02_plus"]
         d02y02_minus = outhistos["/ATLAS_2014_I1282447/d02-x01-y02_minus"]
         ratio_d02y02 = d02y02_plus/d02y02_minus
         ratio_d02y02.setPath("/ATLAS_2014_I1282447/d02-x01-y02")
         del outhistos["/ATLAS_2014_I1282447/d02-x01-y02_plus"]
         del outhistos["/ATLAS_2014_I1282447/d02-x01-y02_minus"]
         outhistos["/ATLAS_2014_I1282447/d02-x01-y02"] = ratio_d02y02
     if("/ATLAS_2014_I1282447/d08-x01-y01_plus" in outhistos and 
        "/ATLAS_2014_I1282447/d08-x01-y01_minus" in outhistos) :
         d08y01_plus  = outhistos["/ATLAS_2014_I1282447/d08-x01-y01_plus"]
         d08y01_minus = outhistos["/ATLAS_2014_I1282447/d08-x01-y01_minus"]
         ratio_d08y01 = d08y01_plus/d08y01_minus
         ratio_d08y01.setPath("/ATLAS_2014_I1282447/d08-x01-y01")
         del outhistos["/ATLAS_2014_I1282447/d08-x01-y01_plus"]
         del outhistos["/ATLAS_2014_I1282447/d08-x01-y01_minus"]
         outhistos["/ATLAS_2014_I1282447/d08-x01-y01"] = ratio_d08y01
     if ("/ATLAS_2014_I1282447/d05-x01-y01" in outhistos and
         "/ATLAS_2014_I1282447/d01-x01-y02" in outhistos) :
         h_winc = outhistos["/ATLAS_2014_I1282447/d05-x01-y01"]
         h_d    = outhistos["/ATLAS_2014_I1282447/d01-x01-y02"]
         ratio_wd      =  h_d/h_winc
         ratio_wd.setPath("/ATLAS_2014_I1282447/d05-x01-y02")
         outhistos["/ATLAS_2014_I1282447/d05-x01-y02"] = ratio_wd
     if ("/ATLAS_2014_I1282447/d05-x01-y01" in outhistos and
         "/ATLAS_2014_I1282447/d01-x01-y03" in outhistos) :
         h_winc = outhistos["/ATLAS_2014_I1282447/d05-x01-y01"]
         h_dstar= outhistos["/ATLAS_2014_I1282447/d01-x01-y03"]
         ratio_wdstar      =  h_dstar/h_winc
         ratio_wdstar.setPath("/ATLAS_2014_I1282447/d05-x01-y03")
         outhistos["/ATLAS_2014_I1282447/d05-x01-y03"] = ratio_wdstar
     if("/ATLAS_2014_I1282447/d06-x01-y01_winc" in outhistos and
        "/ATLAS_2014_I1282447/d06-x01-y02_winc" in outhistos) :
         h_winc_plus  = outhistos["/ATLAS_2014_I1282447/d06-x01-y01_winc"]
         h_winc_minus = outhistos["/ATLAS_2014_I1282447/d06-x01-y02_winc"]
         if( "/ATLAS_2014_I1282447/d06-x01-y01_wplus" in outhistos ) :
             h_wd_plus      = outhistos["/ATLAS_2014_I1282447/d06-x01-y01_wplus"]
             ratio_wd_plus       =  h_wd_plus/h_winc_plus
             ratio_wd_plus.setPath("/ATLAS_2014_I1282447/d06-x01-y01")
             outhistos["/ATLAS_2014_I1282447/d06-x01-y01"] = ratio_wd_plus
             del outhistos["/ATLAS_2014_I1282447/d06-x01-y01_wplus"]
         if( "/ATLAS_2014_I1282447/d06-x01-y02_wminus" in outhistos ) :
             h_wd_minus     = outhistos["/ATLAS_2014_I1282447/d06-x01-y02_wminus"]
             ratio_wd_minus      =  h_wd_minus/h_winc_minus
             ratio_wd_minus.setPath("/ATLAS_2014_I1282447/d06-x01-y02")
             outhistos["/ATLAS_2014_I1282447/d06-x01-y02"] = ratio_wd_minus
             del outhistos["/ATLAS_2014_I1282447/d06-x01-y02_wminus"]
         if ( "/ATLAS_2014_I1282447/d06-x01-y03_wplus" in outhistos) : 
             h_wdstar_plus  = outhistos["/ATLAS_2014_I1282447/d06-x01-y03_wplus"]
             ratio_wdstar_plus       =  h_wdstar_plus/h_winc_plus
             ratio_wdstar_plus.setPath("/ATLAS_2014_I1282447/d06-x01-y03")
             outhistos["/ATLAS_2014_I1282447/d06-x01-y03"] = ratio_wdstar_plus 
             del outhistos["/ATLAS_2014_I1282447/d06-x01-y03_wplus"]
         if ( "/ATLAS_2014_I1282447/d06-x01-y04_wminus" in outhistos) :
             h_wdstar_minus = outhistos["/ATLAS_2014_I1282447/d06-x01-y04_wminus"]
             ratio_wdstar_minus      =  h_wdstar_minus/h_winc_minus
             ratio_wdstar_minus.setPath("/ATLAS_2014_I1282447/d06-x01-y04")
             outhistos["/ATLAS_2014_I1282447/d06-x01-y04"] = ratio_wdstar_minus
             del outhistos["/ATLAS_2014_I1282447/d06-x01-y04_wminus"]
         del outhistos["/ATLAS_2014_I1282447/d06-x01-y01_winc"]
         del outhistos["/ATLAS_2014_I1282447/d06-x01-y02_winc"]
 
         
     mergeByMass("/ATLAS_2013_I1234228/d01-x01-y02", "7000")
     # ATLAS W/Z ratios
     iy=0
     for suffix in ["",":LMODE=EL",":LMODE=MU"] :
         iy+=1
         basePath = "/ATLAS_2014_I1312627%s/" % suffix
         for ihist in range(1,21) :
             num = "%sd%02d-x02-y%02d" % (basePath,ihist,iy) 
             den = "%sd%02d-x03-y%02d" % (basePath,ihist,iy)
             if(den in outhistos and num in outhistos) :
                 ratio = outhistos[num]/outhistos[den]
                 ratio.setPath("%sd%02d-x01-y%02d" % (basePath,ihist,iy))
                 del outhistos[num]
                 del outhistos[den]
                 outhistos[ "%sd%02d-x01-y%02d" % (basePath,ihist,iy)]=ratio
             elif den in outhistos :
                 del outhistos[den]
             elif num in outhistos :
                 del outhistos[num]
     # Choose output file
     name = args[0]+"-EW.yoda"
     yoda.writeYODA(outhistos,name)
     sys.exit(0)