diff --git a/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.aida b/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.aida
index 36da554b98947..dfffa110d4390 100644
--- a/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.aida
+++ b/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.aida
@@ -6,304 +6,257 @@
path="/REF/CMS_EWK_11_021" title="Unfold Response aux \rightarrow aux">
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
@@ -430,1135 +383,1176 @@
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.info b/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.info
index 02b8388d34d11..6e83d1bcdd1b3 100644
--- a/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.info
+++ b/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.info
@@ -1,24 +1,27 @@
Name: CMS_EWK_11_021
Year: 2011
-Summary: Azimuthal correlations and event shapes in Z + jets in pp collisions at sqrt(s) = 7 TeV
-
+Summary: 'Azimuthal correlations and event shapes in Z + jets in pp collisions at sqrt(s) = 7 TeV'
Experiment: CMS
Collider: LHC
-SpiresID:
+SpiresID: 1209721
Status: UNVALIDATED
Authors:
- Io Odderskov
References:
- http://cms.cern.ch/iCMS/analysisadmin/cadi?ancode=EWK-11-021
+ - https://cds.cern.ch/record/1503578
+ - http://inspirehep.net/record/1209721
+ - arXiv:1301.1646 [hep-ex] (http://arxiv.org/abs/arXiv:1301.1646)
+ - Submitted to Phys. Lett. B
RunInfo:
Run MC generators with Z decaying to leptonic modes at 7TeV comEnergy
NumEvents: 100k
Beams: [p+, p+]
Energies: [7000]
PtCuts:
- leptons Pt>20GeV and |leptons_eta|<2.4,| Jets>50GeV
+ leptons Pt>20GeV and |leptons_eta|<2.4, Jets>50GeV
Description:
- Measurements are presented of event shapes and azimuthal correlations in the inclu-
+ 'Measurements are presented of event shapes and azimuthal correlations in the inclu-
sive production of a Z boson in association with jets in proton-proton collisions. The
data correspond to an integrated luminosity of 5.0 fb1, collected with the CMS detec-
tor at the CERN LHC at sqrt(s) = 7 TeV. This to test perturbative QCD predictions
@@ -28,11 +31,21 @@ Description:
Carlo event generators that include leading-order multiparton matrix-element (with
up to four hard partons in the final state) and next-to-leading-order simulations of
Z + 1-jet events. The results are corrected for detector effects, and can therefore be
- used as input to improve models for describing these processes.
-BibKey:
- ''
-BibTeX:
- ''
-ToDo:
- - update reference when paper published
-
+ used as input to improve models for describing these processes.'
+BibKey: 'Chatrchyan:2013tna'
+BibTeX: '@article{Chatrchyan:2013tna,
+ author = "Chatrchyan, Serguei and others",
+ title = "{Event shapes and azimuthal correlations in $Z$ + jets
+ events in $pp$ collisions at $\sqrt{s}=7$ TeV}",
+ collaboration = "CMS Collaboration",
+ journal = "Phys.Lett.",
+ volume = "B722",
+ pages = "238-261",
+ doi = "10.1016/j.physletb.2013.04.025",
+ year = "2013",
+ eprint = "1301.1646",
+ archivePrefix = "arXiv",
+ primaryClass = "hep-ex",
+ reportNumber = "CMS-EWK-11-021, CERN-PH-EP-2013-001",
+ SLACcitation = "%%CITATION = ARXIV:1301.1646;%%",
+}'
diff --git a/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.plot b/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.plot
index 7463b8b38769a..487e29bcef8f2 100644
--- a/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.plot
+++ b/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.plot
@@ -1,256 +1,88 @@
-# BEGIN PLOT /CMS_EWK_11_021/Mll
-Title=CMS $\text{M}_{ll}$, $\sqrt{s}=7$~TeV
-XLabel=$\text{M}_{ll}$ [GeV]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{dM}$
+# BEGIN PLOT /CMS_EWK_11_021/d
FullRange=1
-LogY=1
-LegendXPos=0.1
-# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/Njets
-Title=CMS Number of jets, $\sqrt{s}=7$~TeV
-XLabel=#Jets$(50\text{GeV})$
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{dN}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
-# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/Ptll
-Title=CMS $\text{P}_T^{ll}$, $\sqrt{s}=7$~TeV
-XLabel=$\text{P}_T^{ll}$ [GeV]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{dP_t}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
-# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/Mjj
-Title=CMS $\text{M}_{jj}$, $\sqrt{s}=7$~TeV
-XLabel=$\text{M}_{jj}$ [GeV]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{dM}$
-FullRange=1
-LogY=1
LegendXPos=0.1
# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/PtJet1
-Title=CMS $\text{P}_T^{1\text{st jet}}$, $\sqrt{s}=7$~TeV
-XLabel=$\text{P}_T^{1\text{st jet}}$ [GeV]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{dP_t}$
-FullRange=1
+
+# BEGIN PLOT /CMS_EWK_11_021/d(0[1-8]|1[0-7])
+YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
LogY=1
-LegendXPos=0.1
# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/PtJet2
-Title=CMS $\text{P}_T^{2\text{nd jet}}$, $\sqrt{s}=7$~TeV
-XLabel=$\text{P}_T^{2\text{nd jet}}$ [GeV]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{dP_t}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
+
+# BEGIN PLOT /CMS_EWK_11_021/d(09|18)
+XLabel=$\ln{\tau_{\perp}}$
+YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\ln{\tau_{\perp}}}$
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /CMS_EWK_11_021/d(0[14]|1[0134])
+XLabel=$\Delta\phi(\text{Z},\text{J1})$ [rad]
+# END PLOT
+# BEGIN PLOT /CMS_EWK_11_021/d(03|12)
+XLabel=$\Delta\phi(\text{Z},\text{J3})$ [rad]
+# END PLOT
+# BEGIN PLOT /CMS_EWK_11_021/d(06|15)
+XLabel=$\Delta\phi(\text{J1},\text{J2})$ [rad]
# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/PtJet3
-Title=CMS $\text{P}_T^{3\text{rd jet}}$, $\sqrt{s}=7$~TeV
-XLabel=$\text{P}_T^{3\text{rd jet}}$ [GeV]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{dP_t}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
+# BEGIN PLOT /CMS_EWK_11_021/d(07|16)
+XLabel=$\Delta\phi(\text{J1},\text{J3})$ [rad]
# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/PtJet4
-Title=CMS $\text{P}_T^{4\text{th jet}}$, $\sqrt{s}=7$~TeV
-XLabel=$\text{P}_T^{4\text{th jet}}$ [GeV]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{dP_t}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
+# BEGIN PLOT /CMS_EWK_11_021/d(08|17)
+XLabel=$\Delta\phi(\text{J2},\text{J3})$ [rad]
# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/d10-x01-y01
+
+# BEGIN PLOT /CMS_EWK_11_021/d01-x01-y01
Title=CMS, $\Delta\phi(\text{Z},\text{J1})$, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi(\text{Z},\text{J1})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/DeltaPhiZJ2
-Title=CMS, $\Delta\phi(\text{Z},\text{J2})$, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi(\text{Z},\text{J2})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
+# BEGIN PLOT /CMS_EWK_11_021/d02-x01-y01
+Title=CMS, $\Delta\phi(\text{Z},\text{J1})$, $\geq$ 2 Jets, $\sqrt{s}=7$~TeV
+XLabel=$\Delta\phi(\text{Z}\text{J1})$ [rad]
# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/d04-x01-y01
+# BEGIN PLOT /CMS_EWK_11_021/d03-x01-y01
Title=CMS, $\Delta\phi(\text{Z},\text{J3})$, $\geq$ 3 Jets, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi(\text{Z},\text{J3})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/d01-x01-y01
-Title=CMS, $\Delta\phi(\text{Z},\text{J1})$, $\geq$ 2 Jets, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi(\text{Z}\text{J1})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
-# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/d08-x01-y01
+# BEGIN PLOT /CMS_EWK_11_021/d04-x01-y01
Title=CMS, $\Delta\phi(\text{Z},\text{J1})$, $\geq$ 3 Jets, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi(\text{Z},\text{J1})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/d14-x01-y01
+# BEGIN PLOT /CMS_EWK_11_021/d05-x01-y01
Title=CMS, $\Delta\phi(\text{Z},\text{J2})$, $\geq$ 3 Jets, $\sqrt{s}=7$~TeV
XLabel=$\Delta\phi(\text{Z},\text{J2})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
-# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/DeltaPhiJ1J2_2
-Title=CMS, $\Delta\phi(\text{J1},\text{J2})$, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi(\text{J1},\text{J2})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/d03-x01-y01
+# BEGIN PLOT /CMS_EWK_11_021/d06-x01-y01
Title=CMS, $\Delta\phi(\text{J1},\text{J2})$, $\geq$ 3 Jets, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi(\text{J1},\text{J2})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/SumDeltaPhi
-Title=CMS, $\Sigma\Delta\phi$, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi(\text{J1},\text{J2})+\Delta\phi(\text{J1},\text{J3})+\Delta\phi(\text{J2},\text{J3})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
+# BEGIN PLOT /CMS_EWK_11_021/d07-x01-y01
+Title=CMS, $\Delta\phi(\text{J1},\text{J3})$, $\geq$ 3 Jets, $\sqrt{s}=7$~TeV
# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/d17-x01-y01
-Title=CMS, Thrust, $\sqrt{s}=7$~TeV
-XLabel=$\ln{\tau_{\perp}}$
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\ln{\tau_{\perp}}}$
-FullRange=1
-LogY=0
-LegendXPos=0.1
+# BEGIN PLOT /CMS_EWK_11_021/d08-x01-y01
+Title=CMS, $\Delta\phi(\text{J2},\text{J3})$, $\geq$ 3 Jets, $\sqrt{s}=7$~TeV
# END PLOT
# BEGIN PLOT /CMS_EWK_11_021/d09-x01-y01
+Title=CMS, Thrust, $\sqrt{s}=7$~TeV
+# END PLOT
+# BEGIN PLOT /CMS_EWK_11_021/d10-x01-y01
Title=CMS, $\Delta\phi(\text{Z},\text{J1})$, Boosted regime, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi(\text{Z},\text{J1})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/BoostedDeltaPhiZJ2
-Title=CMS, $\Delta\phi(\text{Z},\text{J2})$, Boosted regime, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi(\text{Z},\text{J2})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
+# BEGIN PLOT /CMS_EWK_11_021/d11-x01-y01
+Title=CMS, $\Delta\phi(\text{Z},\text{J1})$, $\geq$ 2 Jets, Boosted regime, $\sqrt{s}=7$~TeV
# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/d18-x01-y01
+# BEGIN PLOT /CMS_EWK_11_021/d12-x01-y01
Title=CMS, $\Delta\phi(\text{Z},\text{J3})$, $\geq$ 3 Jets, Boosted regime, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi(\text{Z},\text{J3})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
-# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/d02-x01-y01
-Title=CMS, $\Delta\phi(\text{Z},\text{J1})$, $\geq$ 2 Jets, Boosted regime, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi(\text{Z},\text{J1})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/d06-x01-y01
+# BEGIN PLOT /CMS_EWK_11_021/d13-x01-y01
Title=CMS, $\Delta\phi(\text{Z},\text{J1})$, $\geq$ 3 Jets, Boosted regime, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi(\text{Z},\text{J1})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/d07-x01-y01
+# BEGIN PLOT /CMS_EWK_11_021/d14-x01-y01
Title=CMS, $\Delta\phi(\text{Z},\text{J2})$, $\geq$ 3 Jets, Boosted regime, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi(\text{Z},\text{J1})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
-# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/BoostedDeltaPhiJ1J2_2
-Title=CMS, $\Delta\phi(\text{J1},\text{J2})$, $\geq$ 2 Jets, Boosted regime, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi(\text{J1},\text{J2})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
# END PLOT
# BEGIN PLOT /CMS_EWK_11_021/d15-x01-y01
Title=CMS, $\Delta\phi(\text{J1},\text{J2})$, $\geq$ 3 Jets, Boosted regime, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi(\text{J1},\text{J2})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
-# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/BoostedSumDeltaPhi
-Title=CMS, $\Sigma\Delta\phi$, Boosted regime, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi\text{J1}\text{J2}+\Delta\phi\text{J1}\text{J3}+\Delta\phi\text{J2}\text{J3}$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
# END PLOT
# BEGIN PLOT /CMS_EWK_11_021/d16-x01-y01
-Title=CMS, Thrust, Boosted regime, $\sqrt{s}=7$~TeV
-XLabel=$\ln{\tau_{\perp}}$
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\ln{\tau_{\perp}}}$
-FullRange=1
-LogY=0
-LegendXPos=0.1
-# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/d13-x01-y01
Title=CMS, $\Delta\phi(\text{J1}\text{J3})$, $\geq$ 3 Jets, Boosted regime, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi(\text{J1},\text{J3})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/d05-x01-y01
-Title=CMS, $\Delta\phi(\text{J1},\text{J3})$, $\geq$ 3 Jets, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi(\text{J1},\text{J3})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
-# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/d11-x01-y01
+# BEGIN PLOT /CMS_EWK_11_021/d17-x01-y01
Title=CMS, $\Delta\phi(\text{J2},{J3})$, $\geq$ 3 Jets, Boosted regime, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi(\text{J2},\text{J3})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
# END PLOT
-# BEGIN PLOT /CMS_EWK_11_021/d12-x01-y01
-Title=CMS, $\Delta\phi(\text{J2},\text{J3})$, $\geq$ 3 Jets, $\sqrt{s}=7$~TeV
-XLabel=$\Delta\phi(\text{J2},\text{J3})$ [rad]
-YLabel=$\frac{1}{\sigma}\frac{d\sigma}{d\phi}$
-FullRange=1
-LogY=1
-LegendXPos=0.1
+# BEGIN PLOT /CMS_EWK_11_021/d18-x01-y01
+Title=CMS, Thrust, Boosted regime, $\sqrt{s}=7$~TeV
# END PLOT
diff --git a/GeneratorInterface/RivetInterface/src/CMS_EWK_11_021.cc b/GeneratorInterface/RivetInterface/src/CMS_EWK_11_021.cc
index 9eb9081f514a7..37456d88209d8 100644
--- a/GeneratorInterface/RivetInterface/src/CMS_EWK_11_021.cc
+++ b/GeneratorInterface/RivetInterface/src/CMS_EWK_11_021.cc
@@ -4,8 +4,7 @@
#include "Rivet/Tools/BinnedHistogram.hh"
#include "Rivet/Projections/FinalState.hh"
#include "Rivet/Projections/FastJets.hh"
-#include "Rivet/Projections/ChargedFinalState.hh"
-#include "Rivet/Projections/InvMassFinalState.hh"
+#include "Rivet/Projections/ZFinder.hh"
#include "Rivet/Tools/ParticleIdUtils.hh"
#include "Rivet/Math/Vector4.hh"
#include "Rivet/Projections/Thrust.hh"
@@ -27,467 +26,195 @@ namespace Rivet {
void init()
{
+ //full final state
const FinalState fs(-5.0,5.0);
addProjection(fs, "FS");
-
- // Histograms without data
- _histMll = bookHistogram1D("Mll", 60, 50., 130.);
- _histNjets = bookHistogram1D("Njets", 5, -0.5, 4.5);
- _histPtll = bookHistogram1D("Ptll", 50, 0., 1000.);
- _histMjj = bookHistogram1D("Mjj", 70, 0., 1400.);
- _histPtJet1 = bookHistogram1D("PtJet1", 45, 50., 500.);
- _histPtJet2 = bookHistogram1D("PtJet2", 45, 50., 500.);
- _histPtJet3 = bookHistogram1D("PtJet3", 45, 50., 500.);
- _histPtJet4 = bookHistogram1D("PtJet4", 45, 50., 500.);
- _histDeltaPhiZJ2 = bookHistogram1D("DeltaPhiZJ2", 32, 0., 3.15);
- _histDeltaPhiJ1J2_2 = bookHistogram1D("DeltaPhiJ1J2_2", 32, 0., 3.15);
- _histSumDeltaPhi = bookHistogram1D("SumDeltaPhi", 32, 0, 6.30);
- // Boosted regime
- _histBoostedDeltaPhiZJ2 = bookHistogram1D("BoostedDeltaPhiZJ2", 32, 0., 3.15);
- _histBoostedDeltaPhiJ1J2_2 = bookHistogram1D("BoostedDeltaPhiJ1J2_2", 32, 0., 3.15);
- _histBoostedSumDeltaPhi = bookHistogram1D("BoostedSumDeltaPhi", 32, 0, 6.30);
-
+ //Z finders for electrons and muons
+ const ZFinder zfe(fs, -2.4, 2.4, 20*GeV, 11, 71*GeV, 111.*GeV, 0.1, true, false);
+ const ZFinder zfm(fs, -2.4, 2.4, 20*GeV, 13, 71*GeV, 111.*GeV, 0.1, true, false);
+ addProjection(zfe, "ZFE");
+ addProjection(zfm, "ZFM");
+ //jets
+ const FastJets jets(fs, FastJets::ANTIKT, 0.5);
+ addProjection(jets, "JETS");
//Histograms with data
- _histDeltaPhiZJ1 = bookHistogram1D(10, 1, 1);
- _histDeltaPhiZJ3 = bookHistogram1D(4, 1, 1);
- _histDeltaPhiZJ1_2 = bookHistogram1D(1, 1, 1);
- _histDeltaPhiZJ1_3 = bookHistogram1D(8, 1, 1);
- _histDeltaPhiZJ2_3 = bookHistogram1D(14, 1, 1);
- _histDeltaPhiJ1J2_3 = bookHistogram1D(3, 1, 1);
- _histDeltaPhiJ1J3_3 = bookHistogram1D(5, 1, 1);
- _histDeltaPhiJ2J3_3 = bookHistogram1D(12, 1, 1);
- _histTransvThrust = bookHistogram1D(17, 1, 1);
+ _histDeltaPhiZJ1 = bookHistogram1D(1, 1, 1); //10, 1, 1);
+ _histDeltaPhiZJ1_2 = bookHistogram1D(2, 1, 1); //1, 1, 1);
+ _histDeltaPhiZJ3 = bookHistogram1D(3, 1, 1); //4, 1, 1);
+ _histDeltaPhiZJ1_3 = bookHistogram1D(4, 1, 1); //8, 1, 1);
+ _histDeltaPhiZJ2_3 = bookHistogram1D(5, 1, 1); //14, 1, 1);
+ _histDeltaPhiJ1J2_3 = bookHistogram1D(6, 1, 1); //3, 1, 1);
+ _histDeltaPhiJ1J3_3 = bookHistogram1D(7, 1, 1); //5, 1, 1);
+ _histDeltaPhiJ2J3_3 = bookHistogram1D(8, 1, 1); //12, 1, 1);
+ _histTransvThrust = bookHistogram1D(9, 1, 1); //17, 1, 1);
// Boosted regime
- _histBoostedDeltaPhiZJ1 = bookHistogram1D(9, 1, 1);
- _histBoostedDeltaPhiZJ3 = bookHistogram1D(18, 1, 1);
- _histBoostedDeltaPhiZJ1_2 = bookHistogram1D(2, 1, 1);
- _histBoostedDeltaPhiZJ1_3 = bookHistogram1D(6, 1, 1);
- _histBoostedDeltaPhiZJ2_3 = bookHistogram1D(7, 1, 1);
- _histBoostedDeltaPhiJ1J2_3 = bookHistogram1D(15, 1, 1);
- _histBoostedDeltaPhiJ1J3_3 = bookHistogram1D(13, 1, 1);
- _histBoostedDeltaPhiJ2J3_3 = bookHistogram1D(11, 1, 1);
- _histBoostedTransvThrust = bookHistogram1D(16, 1, 1);
-
- }
-
- // Function that finds all photons, and particles and antiparticles of a specified type:
- void FindPhoParParbar(ParticleVector FPtcls, int Par, vector& PhoIndex, vector& ParIndex, vector& ParbarIndex)
- {
- for(unsigned int i(0); i!=FPtcls.size(); ++i)
- {
- FourMomentum p(FPtcls[i].momentum());
- double eta = p.eta();
- int Id = FPtcls[i].pdgId();
-
- if( Id==22 ) PhoIndex.push_back(i);
- if( Id==Par && fabs(eta) < 2.4 ) ParIndex.push_back(i); // && (fabs(eta) < 1.4442 || fabs(eta) > 1.5660)
- if( Id==-Par && fabs(eta) < 2.4 ) ParbarIndex.push_back(i); // && (fabs(eta) < 1.4442 || fabs(eta) > 1.5660)
- }
- return;
- }
-
-
-
- //Function that convolutes a particle (or antiparticle) with the surrounding photons:
- void ConvPar(vector PhoIndex, vector ParIndex, FourMomentum& par_conv, vector& par_del, ParticleVector FPtcls, bool& is_par)
- {
-
- vector tmp_par_del;
- FourMomentum tmp_par_conv;
- FourMomentum tmp_test_conv;
-
- for(unsigned int i(0); i != ParIndex.size(); ++i)
- {
- double R;
- double mass;
- FourMomentum par_4p (FPtcls.at( ParIndex[i]).momentum());
- double par_eta (par_4p.eta());
- double par_phi (par_4p.phi());
-
- tmp_par_del.clear();
- tmp_par_del.push_back(ParIndex[i]);
- tmp_par_conv = par_4p;
- tmp_test_conv = par_4p;
-
- for(unsigned int j(0); j != PhoIndex.size(); ++j)
- {
- FourMomentum pho_4p (FPtcls.at(PhoIndex[j]).momentum());
- double pho_eta (pho_4p.eta());
- double pho_phi (pho_4p.phi());
-
- if (fabs(par_eta) < 1.4442) R = 0.05;
- else R=0.07;
-
- if (sqrt( (par_eta-pho_eta)*(par_eta-pho_eta) + (par_phi-pho_phi)*(par_phi-pho_phi)) < R )
- {
- tmp_par_conv += pho_4p;
- tmp_par_del.push_back( PhoIndex[j]);
-
- if (tmp_test_conv.mass2() < 0. ) mass = 0;
- else mass = tmp_test_conv.mass();
-
- double E_sum = tmp_test_conv.E() + pho_4p.E();
- double px_tmp = tmp_test_conv.px() * sqrt( E_sum*E_sum - mass*mass) / tmp_test_conv.p().mod();
- double py_tmp = tmp_test_conv.py() * sqrt( E_sum*E_sum - mass*mass) / tmp_test_conv.p().mod();
- double pz_tmp = tmp_test_conv.pz() * sqrt( E_sum*E_sum - mass*mass) / tmp_test_conv.p().mod();
-
- tmp_test_conv.setPx(px_tmp);
- tmp_test_conv.setPy(py_tmp);
- tmp_test_conv.setPz(pz_tmp);
- tmp_test_conv.setE(E_sum);
- }
- }
+ _histBoostedDeltaPhiZJ1 = bookHistogram1D(10, 1, 1); //9, 1, 1);
+ _histBoostedDeltaPhiZJ1_2 = bookHistogram1D(11, 1, 1); //2, 1, 1);
+ _histBoostedDeltaPhiZJ3 = bookHistogram1D(12, 1, 1); //18, 1, 1);
+ _histBoostedDeltaPhiZJ1_3 = bookHistogram1D(13, 1, 1); //6, 1, 1);
+ _histBoostedDeltaPhiZJ2_3 = bookHistogram1D(14, 1, 1); //7, 1, 1);
+ _histBoostedDeltaPhiJ1J2_3 = bookHistogram1D(15, 1, 1); //15, 1, 1);
+ _histBoostedDeltaPhiJ1J3_3 = bookHistogram1D(16, 1, 1); //13, 1, 1);
+ _histBoostedDeltaPhiJ2J3_3 = bookHistogram1D(17, 1, 1); //11, 1, 1);
+ _histBoostedTransvThrust = bookHistogram1D(18, 1, 1); //16, 1, 1);
- if ((tmp_par_conv.pT() > 20.0) && (tmp_par_conv.pT() > par_conv.pT()))
- {
- par_conv = tmp_par_conv;
- par_del = tmp_par_del;
- is_par = true;
- }
- }
- return;
}
-
- void GetPtEtaPhi(FourMomentum p1, double& pt, double& eta, double& phi)
- {
- pt = p1.pT();
- eta = p1.eta();
- phi = p1.phi();
- return;
- }
-
-
- void analyze(const Event& event)
- {
+ void analyze(const Event& event){
const double weight = event.weight();
- bool is_ele = false;
- bool is_pos = false;
- bool is_mu = false;
- bool is_mubar = false;
- bool Zee = false;
- bool Zmm = false;
- bool is_boosted = false;
-
- vector pho_index;
-
- vector ele_index;
- vector pos_index;
- vector ele_del;
- vector pos_del;
-
- vector mu_index;
- vector mubar_index;
- vector mu_del;
- vector mubar_del;
-
- vector total_del;
-
-
- FourMomentum ele_conv (0,0,0,0);
- FourMomentum pos_conv (0,0,0,0);
-
- FourMomentum mu_conv (0,0,0,0);
- FourMomentum mubar_conv (0,0,0,0);
-
- ParticleVector final_ptcls;
- std::vector vecs;
-
- const FinalState& fs = applyProjection(event, "FS");
- final_ptcls = fs.particlesByPt();
-
- // Find all electrons (muons), positrons (antimuons) and photons
- FindPhoParParbar(final_ptcls, 11, pho_index, ele_index, pos_index);
- pho_index.clear();
- FindPhoParParbar(final_ptcls, 13, pho_index, mu_index, mubar_index);
-
- // Convolute electrons with surrounding photons
- ConvPar(pho_index, ele_index, ele_conv, ele_del, final_ptcls, is_ele);
- // Convolute muons with surrounding photons
- ConvPar(pho_index, mu_index, mu_conv, mu_del, final_ptcls, is_mu);
+ //apply the Z finders
+ const ZFinder& zfe = applyProjection(event, "ZFE");
+ const ZFinder& zfm = applyProjection(event, "ZFM");
- if ((!is_ele) && (!is_mu)) vetoEvent;
+ //if no Z found, veto
+ if (zfe.empty() && zfm.empty())
+ vetoEvent;
- // Convolute positrons with surrounding photons
- ConvPar(pho_index, pos_index, pos_conv, pos_del, final_ptcls, is_pos);
- // Convolute anti muons with surrounding photons
- ConvPar(pho_index, mubar_index, mubar_conv, mubar_del, final_ptcls, is_mubar);
-
-
- if ((!is_pos) && (!is_mubar)) vetoEvent;
-
- FourMomentum Z_momentum;
- FourMomentum Zee_momentum(add(pos_conv, ele_conv));
- FourMomentum Zmm_momentum(add(mubar_conv, mu_conv));
-
- if (Zee_momentum.mass2() >= 0. )
- {
- if (Zee_momentum.mass() > 71.11 && Zee_momentum.mass() < 111.) { Z_momentum = Zee_momentum; Zee = true; }
- }
-
- if ( (!Zee) && Zmm_momentum.mass2() >= 0. )
- {
- if ( Zmm_momentum.mass() > 71.11 && Zmm_momentum.mass() < 111.) { Z_momentum = Zmm_momentum; Zmm = true; }
- else vetoEvent;
- }
+ //Choose the Z candidate
+ const ParticleVector& z = !zfm.empty() ? zfm.bosons() : zfe.bosons();
+ const ParticleVector& clusteredConstituents = !zfm.empty() ? zfm.constituents() : zfe.constituents();
- if ( (!Zee) && (!Zmm) ) vetoEvent;
-
- if (Z_momentum.pT() > 150) is_boosted = true;
-
- double par_pt, par_eta, par_phi;
- double parbar_pt, parbar_eta, parbar_phi;
-
- if (Zee)
- {
- GetPtEtaPhi(ele_conv, par_pt, par_eta, par_phi);
- GetPtEtaPhi(pos_conv, parbar_pt, parbar_eta, parbar_phi);
-
- total_del.reserve(ele_del.size()+pos_del.size() );
- total_del.insert(total_del.end(), ele_del.begin(), ele_del.end());
- total_del.insert(total_del.end(), pos_del.begin(), pos_del.end());
- sort(total_del.begin(), total_del.end());
- }
-
- if (Zmm)
- {
- GetPtEtaPhi(mu_conv, par_pt, par_eta, par_phi);
- GetPtEtaPhi(mubar_conv, parbar_pt, parbar_eta, parbar_phi);
-
- total_del.reserve(mu_del.size()+mubar_del.size() );
- total_del.insert(total_del.end(), mu_del.begin(), mu_del.end());
- total_del.insert(total_del.end(), mubar_del.begin(), mubar_del.end());
- sort(total_del.begin(), total_del.end());
- }
-
- for(unsigned int i(total_del.size()); i !=0; --i)
- final_ptcls.erase(final_ptcls.begin()+total_del.at(i-1));
-
- _histMll->fill( Z_momentum.mass(), weight);
-
-
- for(unsigned int i(0); i != final_ptcls.size(); ++i)
- {
- if (fabs(final_ptcls[i].pdgId()) == 12 || fabs(final_ptcls[i].pdgId()) == 14 || fabs(final_ptcls[i].pdgId()) == 16 ) continue;
- if (PID::threeCharge (final_ptcls[i].pdgId()) != 0)
- {
- if (final_ptcls[i].momentum().E() < 0.25) continue;
- }
-
- fastjet::PseudoJet pseudoJet(final_ptcls[i].momentum().px(), final_ptcls[i].momentum().py(), final_ptcls[i].momentum().pz(), final_ptcls[i].momentum().E());
- pseudoJet.set_user_index(i);
- vecs.push_back(pseudoJet);
- }
-
- vector jet_list;
- fastjet::ClusterSequence cseq(vecs, fastjet::JetDefinition(fastjet::antikt_algorithm, 0.5));
- vector jets = sorted_by_pt(cseq.inclusive_jets(50.0)); // In draft, the jet-treshold is 50 GeV
-
- for(unsigned int i(0); i 50.0)
- {
- if (deltaR(par_pt, par_phi, j_eta, j_phi) > 0.4 && deltaR(parbar_pt, parbar_phi, j_eta, j_phi) > 0.4)
- jet_list.push_back(jets[i]);
- continue;
- }
+ //determine whether we are in boosted regime
+ bool is_boosted = false;
+ if (z[0].momentum().pT()>150*GeV)
+ is_boosted = true;
+
+ //build the jets
+ const FastJets& jetfs = applyProjection(event, "JETS");
+ Jets jets = jetfs.jetsByPt(50.*GeV, MAXDOUBLE, -2.5, 2.5);
+
+ //clean the jets against the lepton candidates, as in the paper, with a DeltaR cut of 0.4 against the clustered leptons
+ std::vector cleanedJets;
+ for (unsigned int i = 0; i < jets.size(); ++i){
+ bool isolated = true;
+ for (unsigned j = 0; j < clusteredConstituents.size(); ++j){
+ if (deltaR(clusteredConstituents[j].momentum().vector3(), jets[i].momentum().vector3()) < 0.4){
+ isolated=false;
+ break;
}
}
+ if (isolated)
+ cleanedJets.push_back(&jets[i]);
+ }
- double Njets = jet_list.size();
-
- if (Njets)
- {
-
- // Collect Z and jets transverse momenta to calculate transverse thrust
- std::vector momenta;
- momenta.clear();
- Vector3 mom = Z_momentum.p();
- mom.setZ(0.0);
- momenta.push_back(mom);
-
- for (unsigned int i(0); i != jet_list.size(); ++i)
- {
- double momX = 0;
- double momY = 0;
- for (unsigned int j(0); j != cseq.constituents(jet_list[i]).size(); ++j)
- {
- std::valarray mom_4 = cseq.constituents(jet_list[i])[j].four_mom();
- momX += mom_4[0];
- momY += mom_4[1];
- }
- mom.setX(momX);
- mom.setY(momY);
- mom.setZ(0.0);
- momenta.push_back(mom);
- }
-
- if (momenta.size() <= 2)
- {
- // We need to use a ghost so that Thrust.calc() doesn't return 1.
- momenta.push_back(Vector3(0.0000001,0.0000001,0.0000001));
- }
+ unsigned int Njets = cleanedJets.size();
+ //require at least 1 jet
+ if (Njets < 1)
+ vetoEvent;
+
+ //now compute Thrust
+ // Collect Z and jets transverse momenta to calculate transverse thrust
+ std::vector momenta;
+ momenta.clear();
+ Vector3 mom = z[0].momentum().p();
+ mom.setZ(0.0);
+ momenta.push_back(mom);
+
+ for (unsigned int i = 0; i < cleanedJets.size(); ++i){
+ Vector3 mj = cleanedJets[i]->momentum().vector3();
+ mj.setZ(0.0);
+ momenta.push_back(mj);
+ }
+ if (momenta.size() <= 2){
+ // We need to use a ghost so that Thrust.calc() doesn't return 1.
+ momenta.push_back(Vector3(0.0000001,0.0000001,0.));
+ }
- Thrust thrust;
- thrust.calc(momenta);
- _histTransvThrust->fill(max(log( 1-thrust.thrust() ), -14.), weight); // d17
+ Thrust thrust;
+ thrust.calc(momenta);
+ _histTransvThrust->fill(max(log( 1-thrust.thrust() ), -14.), weight); // d17
- if (is_boosted) _histBoostedTransvThrust->fill(max(log( 1-thrust.thrust() ), -14.), weight); // d16
+ if (is_boosted) _histBoostedTransvThrust->fill(max(log( 1-thrust.thrust() ), -14.), weight); // d16
- double Ptll = Z_momentum.pT();
- double PhiZ = Z_momentum.phi();
- double PtJet1 = jet_list[0].pt();
- double PhiJet1 = jet_list[0].phi();
+ double PhiZ = z[0].momentum().phi();
+ double PhiJet1 = cleanedJets[0]->phi();
- _histNjets->fill(Njets, weight);
- _histPtll->fill(Ptll, weight);
- _histPtJet1->fill(PtJet1, weight);
- _histDeltaPhiZJ1->fill(deltaPhi(PhiJet1,PhiZ), weight); // d10 300*0.10472*
+ _histDeltaPhiZJ1->fill(deltaPhi(PhiJet1,PhiZ), weight); // d10 300*0.10472*
- if (is_boosted) _histBoostedDeltaPhiZJ1->fill(deltaPhi(PhiJet1,PhiZ), weight); // d09 300*0.10472*
+ if (is_boosted) _histBoostedDeltaPhiZJ1->fill(deltaPhi(PhiJet1,PhiZ), weight); // d09 300*0.10472*
- if (Njets > 1)
- {
- FourMomentum J1_4p (jet_list[0].E(), jet_list[0].px(), jet_list[0].py(), jet_list[0].pz());
- FourMomentum J2_4p (jet_list[1].E(), jet_list[1].px(), jet_list[1].py(), jet_list[1].pz());
- FourMomentum pJ1J2(add(J1_4p,J2_4p));
+ if (Njets > 1){
+ double PhiJet2 = cleanedJets[1]->phi();
- double Mjj;
- //if (pJ1J2.mass2() < 0. ) Mjj = 0;
- //else
- Mjj = pJ1J2.mass(); // pJ1J2.mass() gives error message.
- double PtJet2 = jet_list[1].pt();
- double PhiJet2 = jet_list[1].phi();
+ _histDeltaPhiZJ1_2->fill(deltaPhi(PhiJet1,PhiZ), weight); // d01 10*0.10472
- _histMjj->fill(Mjj, weight);
- _histPtJet2->fill(PtJet2, weight);
- _histDeltaPhiZJ2->fill(deltaPhi(PhiJet2, PhiZ), weight);
- _histDeltaPhiZJ1_2->fill(deltaPhi(PhiJet1,PhiZ), weight); // d01 10*0.10472
- _histDeltaPhiJ1J2_2->fill(deltaPhi(PhiJet1,PhiJet2), weight);
+ if (is_boosted){
+ _histBoostedDeltaPhiZJ1_2->fill(deltaPhi(PhiJet1,PhiZ), weight); // d02 30*0.10472*
+ }
- if (is_boosted)
- {
- _histBoostedDeltaPhiZJ2->fill(deltaPhi(PhiJet2, PhiZ), weight);
- _histBoostedDeltaPhiZJ1_2->fill(deltaPhi(PhiJet1,PhiZ), weight); // d02 30*0.10472*
- _histBoostedDeltaPhiJ1J2_2->fill(deltaPhi(PhiJet1,PhiJet2), weight);
- }
+ if (Njets > 2){
+ double PhiJet3 = cleanedJets[2]->phi();
+ _histDeltaPhiZJ1_3->fill(deltaPhi(PhiJet1,PhiZ), weight); // d08 0.10472*
+ _histDeltaPhiZJ2_3->fill(deltaPhi(PhiJet2,PhiZ), weight); // d14 10*0.10472*
+ _histDeltaPhiJ1J2_3->fill(deltaPhi(PhiJet1,PhiJet2), weight); // d03 100*0.10472*
+ _histDeltaPhiJ1J3_3->fill(deltaPhi(PhiJet1,PhiJet3), weight); // d05 10*0.10472*
+ _histDeltaPhiJ2J3_3->fill(deltaPhi(PhiJet2,PhiJet3), weight); // d12 0.10472*
+ _histDeltaPhiZJ3->fill(deltaPhi(PhiZ,PhiJet3), weight); // d04 0.10472*
- if (Njets > 2)
- {
- double PtJet3 = jet_list[2].pt();
- double PhiJet3 = jet_list[2].phi();
- double SumDeltaPhi = deltaPhi(PhiJet1,PhiJet2) + deltaPhi(PhiJet1,PhiJet3) + deltaPhi(PhiJet2,PhiJet3);
- _histPtJet3->fill(PtJet3, weight);
- _histDeltaPhiZJ1_3->fill(deltaPhi(PhiJet1,PhiZ), weight); // d08 0.10472*
- _histDeltaPhiZJ2_3->fill(deltaPhi(PhiJet2,PhiZ), weight); // d14 10*0.10472*
- _histDeltaPhiJ1J2_3->fill(deltaPhi(PhiJet1,PhiJet2), weight); // d03 100*0.10472*
- _histDeltaPhiJ1J3_3->fill(deltaPhi(PhiJet1,PhiJet3), weight); // d05 10*0.10472*
- _histDeltaPhiJ2J3_3->fill(deltaPhi(PhiJet2,PhiJet3), weight); // d12 0.10472*
- _histDeltaPhiZJ3->fill(deltaPhi(PhiZ,PhiJet3), weight); // d04 0.10472*
- _histSumDeltaPhi->fill(SumDeltaPhi, weight);
-
- if (is_boosted)
- {
+ if (is_boosted) {
_histBoostedDeltaPhiZJ1_3->fill(deltaPhi(PhiJet1,PhiZ), weight); // d06 0.21416*
_histBoostedDeltaPhiZJ2_3->fill(deltaPhi(PhiJet2,PhiZ), weight); // d07 10*0.21416*
_histBoostedDeltaPhiJ1J2_3->fill(deltaPhi(PhiJet1,PhiJet2), weight); // d15 100*0.21416*
_histBoostedDeltaPhiJ1J3_3->fill(deltaPhi(PhiJet1,PhiJet3), weight); // d13 10*0.21416*
_histBoostedDeltaPhiJ2J3_3->fill(deltaPhi(PhiJet2,PhiJet3), weight); // d11 0.21416*
_histBoostedDeltaPhiZJ3->fill(deltaPhi(PhiZ,PhiJet3), weight); // d18 0.21416*
- _histBoostedSumDeltaPhi->fill(SumDeltaPhi, weight);
-
- }
-
- if(Njets>3)
- {
- double PtJet4 = jet_list[3].pt();
- _histPtJet4->fill(PtJet4, weight);
-
- }
- }
- }
}
+ }
}
+ }
+
+ void normalizeNoOverflows(AIDA::IHistogram1D* plot, double integral){
+ double factor=1.;
+ if (plot->sumBinHeights()>0 && plot->sumAllBinHeights()>0)
+ factor = plot->sumAllBinHeights()/plot->sumBinHeights();
+ normalize(plot, factor*integral);
+ }
void finalize()
{
- normalize(_histMll,1.);
- normalize(_histNjets,1.);
- normalize(_histPtll,1.);
- normalize(_histMjj,1.);
- normalize(_histPtJet1,1.);
- normalize(_histPtJet2,1.);
- normalize(_histPtJet3,1.);
- normalize(_histPtJet4,1.);
- normalize(_histDeltaPhiZJ1,1.); // d10 300.
- normalize(_histDeltaPhiZJ2,1.);
- normalize(_histDeltaPhiZJ3,1.); // d04
- normalize(_histDeltaPhiZJ1_2,1.); // d01 10.
- normalize(_histDeltaPhiZJ1_3,1.); // d08 100.
- normalize(_histDeltaPhiZJ2_3,1.); // d14
- normalize(_histDeltaPhiJ1J2_2,1.);
- normalize(_histDeltaPhiJ1J2_3,1.); // d03 100.
- normalize(_histSumDeltaPhi,1.);
- normalize(_histTransvThrust,1); // d17. They have apparently remembered to multiply by the binsize.
- normalize(_histDeltaPhiJ1J3_3, 1.); // d05 10.
- normalize(_histDeltaPhiJ2J3_3, 1.); // d12
+ normalizeNoOverflows(_histDeltaPhiZJ1,1.);
+ normalizeNoOverflows(_histDeltaPhiZJ3,1.);
+ normalizeNoOverflows(_histDeltaPhiZJ1_2,1.);
+ normalizeNoOverflows(_histDeltaPhiZJ1_3,1.);
+ normalizeNoOverflows(_histDeltaPhiZJ2_3,1.);
+ normalizeNoOverflows(_histDeltaPhiJ1J2_3,1.);
+ normalize(_histTransvThrust,1.);
+ normalizeNoOverflows(_histDeltaPhiJ1J3_3, 1.);
+ normalizeNoOverflows(_histDeltaPhiJ2J3_3, 1.);
// Boosted
- normalize(_histBoostedDeltaPhiZJ1,1.); // d09 300.
- normalize(_histBoostedDeltaPhiZJ2,1.);
- normalize(_histBoostedDeltaPhiZJ3,1.); // d18
- normalize(_histBoostedDeltaPhiZJ1_2,1.); // d02 30.
- normalize(_histBoostedDeltaPhiZJ1_3,1.); // d06 300.
- normalize(_histBoostedDeltaPhiZJ2_3,1.); // d07 10.
- normalize(_histBoostedDeltaPhiJ1J2_2,1.);
- normalize(_histBoostedDeltaPhiJ1J2_3,1.); // d15 100.
- normalize(_histBoostedSumDeltaPhi,1.);
- normalize(_histBoostedTransvThrust,1); // d16. They have apparently remembered to multiply by the binsize.
- normalize(_histBoostedDeltaPhiJ1J3_3, 1.); // d13 10.
- normalize(_histBoostedDeltaPhiJ2J3_3, 1.); // d11
+ normalizeNoOverflows(_histBoostedDeltaPhiZJ1,1.);
+ normalizeNoOverflows(_histBoostedDeltaPhiZJ3,1.);
+ normalizeNoOverflows(_histBoostedDeltaPhiZJ1_2,1.);
+ normalizeNoOverflows(_histBoostedDeltaPhiZJ1_3,1.);
+ normalizeNoOverflows(_histBoostedDeltaPhiZJ2_3,1.);
+ normalizeNoOverflows(_histBoostedDeltaPhiJ1J2_3,1.);
+ normalize(_histBoostedTransvThrust,1.);
+ normalizeNoOverflows(_histBoostedDeltaPhiJ1J3_3, 1.);
+ normalizeNoOverflows(_histBoostedDeltaPhiJ2J3_3, 1.);
}
private:
- AIDA::IHistogram1D* _histMll;
- AIDA::IHistogram1D* _histNjets;
- AIDA::IHistogram1D* _histPtll;
- AIDA::IHistogram1D* _histMjj;
- AIDA::IHistogram1D* _histPtJet1;
- AIDA::IHistogram1D* _histPtJet2;
- AIDA::IHistogram1D* _histPtJet3;
- AIDA::IHistogram1D* _histPtJet4;
AIDA::IHistogram1D* _histDeltaPhiZJ1;
- AIDA::IHistogram1D* _histDeltaPhiZJ2;
AIDA::IHistogram1D* _histDeltaPhiZJ3;
AIDA::IHistogram1D* _histDeltaPhiZJ1_2;
AIDA::IHistogram1D* _histDeltaPhiZJ1_3;
AIDA::IHistogram1D* _histDeltaPhiZJ2_3;
- AIDA::IHistogram1D* _histDeltaPhiJ1J2_2;
AIDA::IHistogram1D* _histDeltaPhiJ1J2_3;
- AIDA::IHistogram1D* _histSumDeltaPhi;
AIDA::IHistogram1D* _histTransvThrust;
AIDA::IHistogram1D* _histDeltaPhiJ1J3_3;
AIDA::IHistogram1D* _histDeltaPhiJ2J3_3;
// Boosted
AIDA::IHistogram1D* _histBoostedDeltaPhiZJ1;
- AIDA::IHistogram1D* _histBoostedDeltaPhiZJ2;
AIDA::IHistogram1D* _histBoostedDeltaPhiZJ3;
AIDA::IHistogram1D* _histBoostedDeltaPhiZJ1_2;
AIDA::IHistogram1D* _histBoostedDeltaPhiZJ1_3;
AIDA::IHistogram1D* _histBoostedDeltaPhiZJ2_3;
- AIDA::IHistogram1D* _histBoostedDeltaPhiJ1J2_2;
AIDA::IHistogram1D* _histBoostedDeltaPhiJ1J2_3;
- AIDA::IHistogram1D* _histBoostedSumDeltaPhi;
AIDA::IHistogram1D* _histBoostedTransvThrust;
AIDA::IHistogram1D* _histBoostedDeltaPhiJ1J3_3;
AIDA::IHistogram1D* _histBoostedDeltaPhiJ2J3_3;
@@ -496,7 +223,3 @@ namespace Rivet {
AnalysisBuilder plugin_CMS_EWK_11_021;
}
-
-
-
-
diff --git a/GeneratorInterface/RivetInterface/test/rivetSetup.sh b/GeneratorInterface/RivetInterface/test/rivetSetup.sh
index b7273c6ba3fc1..d70c0d70c1d01 100755
--- a/GeneratorInterface/RivetInterface/test/rivetSetup.sh
+++ b/GeneratorInterface/RivetInterface/test/rivetSetup.sh
@@ -1,4 +1,4 @@
#!/bin/bash
-export RIVET_REF_PATH=$CMSSW_BASE/src/GeneratorInterface/RivetInterface/data:$CMSSW_RELEASE_BASE/src/GeneratorInterface/RivetInterface/data
-export RIVET_INFO_PATH=$CMSSW_BASE/src/GeneratorInterface/RivetInterface/data:$CMSSW_RELEASE_BASE/src/GeneratorInterface/RivetInterface/data
-export RIVET_PLOT_PATH=$CMSSW_BASE/src/GeneratorInterface/RivetInterface/data:$CMSSW_RELEASE_BASE/src/GeneratorInterface/RivetInterface/data
+export RIVET_REF_PATH=$CMSSW_BASE/src/GeneratorInterface/RivetInterface/data
+export RIVET_INFO_PATH=$CMSSW_BASE/src/GeneratorInterface/RivetInterface/data
+export RIVET_PLOT_PATH=$CMSSW_BASE/src/GeneratorInterface/RivetInterface/data