From 3d0bdd7e3eda34ed6748a3a8162afe85a8622f8b Mon Sep 17 00:00:00 2001 From: Piergiulio Date: Wed, 17 Jul 2013 18:45:30 +0200 Subject: [PATCH 1/3] fixes to CMS_EWK_11_021 --- .../RivetInterface/data/CMS_EWK_11_021.aida | 1512 +++++++++-------- .../RivetInterface/data/CMS_EWK_11_021.info | 39 +- .../RivetInterface/data/CMS_EWK_11_021.plot | 262 +-- .../RivetInterface/src/CMS_EWK_11_021.cc | 537 ++---- .../RivetInterface/test/rivetSetup.sh | 6 +- 5 files changed, 964 insertions(+), 1392 deletions(-) diff --git a/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.aida b/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.aida index 36da554b98947..3faa218a14c51 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,1186 @@ - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + 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..5821ac3ee82e1 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.); + normalizeNoOverflows(_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.); + normalizeNoOverflows(_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 From a3301b0204d08dff55ae362b58ccf31d96ec303f Mon Sep 17 00:00:00 2001 From: Piergiulio Date: Fri, 2 Aug 2013 12:30:52 +0200 Subject: [PATCH 2/3] fixes to reference plots to have axis limits consistent with the paper --- .../RivetInterface/data/CMS_EWK_11_021.aida | 42 ------------------- .../RivetInterface/src/CMS_EWK_11_021.cc | 38 ++++++++--------- 2 files changed, 19 insertions(+), 61 deletions(-) diff --git a/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.aida b/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.aida index 3faa218a14c51..c44b2aa7a5d3d 100644 --- a/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.aida +++ b/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.aida @@ -1027,10 +1027,6 @@ - - - - @@ -1118,10 +1114,6 @@ - - - - @@ -1165,10 +1157,6 @@ - - - - @@ -1212,10 +1200,6 @@ - - - - @@ -1259,11 +1243,6 @@ - - - - - @@ -1307,10 +1286,6 @@ - - - - @@ -1354,10 +1329,6 @@ - - - - @@ -1401,10 +1372,6 @@ - - - - @@ -1448,11 +1415,6 @@ - - - - - @@ -1496,10 +1458,6 @@ - - - - diff --git a/GeneratorInterface/RivetInterface/src/CMS_EWK_11_021.cc b/GeneratorInterface/RivetInterface/src/CMS_EWK_11_021.cc index 5821ac3ee82e1..933b6fe1329e9 100644 --- a/GeneratorInterface/RivetInterface/src/CMS_EWK_11_021.cc +++ b/GeneratorInterface/RivetInterface/src/CMS_EWK_11_021.cc @@ -166,7 +166,7 @@ namespace Rivet { } } - void normalizeNoOverflows(AIDA::IHistogram1D* plot, double integral){ + void normalize(AIDA::IHistogram1D* plot, double integral){ double factor=1.; if (plot->sumBinHeights()>0 && plot->sumAllBinHeights()>0) factor = plot->sumAllBinHeights()/plot->sumBinHeights(); @@ -175,25 +175,25 @@ namespace Rivet { void finalize() { - normalizeNoOverflows(_histDeltaPhiZJ1,1.); - normalizeNoOverflows(_histDeltaPhiZJ3,1.); - normalizeNoOverflows(_histDeltaPhiZJ1_2,1.); - normalizeNoOverflows(_histDeltaPhiZJ1_3,1.); - normalizeNoOverflows(_histDeltaPhiZJ2_3,1.); - normalizeNoOverflows(_histDeltaPhiJ1J2_3,1.); - normalizeNoOverflows(_histTransvThrust,1.); - normalizeNoOverflows(_histDeltaPhiJ1J3_3, 1.); - normalizeNoOverflows(_histDeltaPhiJ2J3_3, 1.); + normalize(_histDeltaPhiZJ1,1.); + normalize(_histDeltaPhiZJ3,1.); + normalize(_histDeltaPhiZJ1_2,1.); + normalize(_histDeltaPhiZJ1_3,1.); + normalize(_histDeltaPhiZJ2_3,1.); + normalize(_histDeltaPhiJ1J2_3,1.); + normalize(_histTransvThrust,1.); + normalize(_histDeltaPhiJ1J3_3, 1.); + normalize(_histDeltaPhiJ2J3_3, 1.); // Boosted - normalizeNoOverflows(_histBoostedDeltaPhiZJ1,1.); - normalizeNoOverflows(_histBoostedDeltaPhiZJ3,1.); - normalizeNoOverflows(_histBoostedDeltaPhiZJ1_2,1.); - normalizeNoOverflows(_histBoostedDeltaPhiZJ1_3,1.); - normalizeNoOverflows(_histBoostedDeltaPhiZJ2_3,1.); - normalizeNoOverflows(_histBoostedDeltaPhiJ1J2_3,1.); - normalizeNoOverflows(_histBoostedTransvThrust,1.); - normalizeNoOverflows(_histBoostedDeltaPhiJ1J3_3, 1.); - normalizeNoOverflows(_histBoostedDeltaPhiJ2J3_3, 1.); + normalize(_histBoostedDeltaPhiZJ1,1.); + normalize(_histBoostedDeltaPhiZJ3,1.); + normalize(_histBoostedDeltaPhiZJ1_2,1.); + normalize(_histBoostedDeltaPhiZJ1_3,1.); + normalize(_histBoostedDeltaPhiZJ2_3,1.); + normalize(_histBoostedDeltaPhiJ1J2_3,1.); + normalize(_histBoostedTransvThrust,1.); + normalize(_histBoostedDeltaPhiJ1J3_3, 1.); + normalize(_histBoostedDeltaPhiJ2J3_3, 1.); } From 7bd16e0e6edb4ae4af57b6906441790942fda884 Mon Sep 17 00:00:00 2001 From: Piergiulio Date: Mon, 19 Aug 2013 13:20:28 +0200 Subject: [PATCH 3/3] hopefully final fixes --- .../RivetInterface/data/CMS_EWK_11_021.aida | 32 +++++++++++++++++ .../RivetInterface/src/CMS_EWK_11_021.cc | 34 +++++++++---------- 2 files changed, 49 insertions(+), 17 deletions(-) diff --git a/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.aida b/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.aida index c44b2aa7a5d3d..dfffa110d4390 100644 --- a/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.aida +++ b/GeneratorInterface/RivetInterface/data/CMS_EWK_11_021.aida @@ -1114,6 +1114,10 @@ + + + + @@ -1157,6 +1161,10 @@ + + + + @@ -1200,6 +1208,10 @@ + + + + @@ -1243,6 +1255,10 @@ + + + + @@ -1286,6 +1302,10 @@ + + + + @@ -1329,6 +1349,10 @@ + + + + @@ -1372,6 +1396,10 @@ + + + + @@ -1415,6 +1443,10 @@ + + + + diff --git a/GeneratorInterface/RivetInterface/src/CMS_EWK_11_021.cc b/GeneratorInterface/RivetInterface/src/CMS_EWK_11_021.cc index 933b6fe1329e9..37456d88209d8 100644 --- a/GeneratorInterface/RivetInterface/src/CMS_EWK_11_021.cc +++ b/GeneratorInterface/RivetInterface/src/CMS_EWK_11_021.cc @@ -166,7 +166,7 @@ namespace Rivet { } } - void normalize(AIDA::IHistogram1D* plot, double integral){ + void normalizeNoOverflows(AIDA::IHistogram1D* plot, double integral){ double factor=1.; if (plot->sumBinHeights()>0 && plot->sumAllBinHeights()>0) factor = plot->sumAllBinHeights()/plot->sumBinHeights(); @@ -175,25 +175,25 @@ namespace Rivet { void finalize() { - normalize(_histDeltaPhiZJ1,1.); - normalize(_histDeltaPhiZJ3,1.); - normalize(_histDeltaPhiZJ1_2,1.); - normalize(_histDeltaPhiZJ1_3,1.); - normalize(_histDeltaPhiZJ2_3,1.); - normalize(_histDeltaPhiJ1J2_3,1.); + 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.); - normalize(_histDeltaPhiJ1J3_3, 1.); - normalize(_histDeltaPhiJ2J3_3, 1.); + normalizeNoOverflows(_histDeltaPhiJ1J3_3, 1.); + normalizeNoOverflows(_histDeltaPhiJ2J3_3, 1.); // Boosted - normalize(_histBoostedDeltaPhiZJ1,1.); - normalize(_histBoostedDeltaPhiZJ3,1.); - normalize(_histBoostedDeltaPhiZJ1_2,1.); - normalize(_histBoostedDeltaPhiZJ1_3,1.); - normalize(_histBoostedDeltaPhiZJ2_3,1.); - normalize(_histBoostedDeltaPhiJ1J2_3,1.); + 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.); - normalize(_histBoostedDeltaPhiJ1J3_3, 1.); - normalize(_histBoostedDeltaPhiJ2J3_3, 1.); + normalizeNoOverflows(_histBoostedDeltaPhiJ1J3_3, 1.); + normalizeNoOverflows(_histBoostedDeltaPhiJ2J3_3, 1.); }