|
[Rivet-svn] rivet: 2 new changesetsRivet Mercurial rivet at projects.hepforge.orgThu Jul 2 15:45:02 BST 2015
details: https://rivet.hepforge.org/hg//rivet/rev/d55ca62dd025 branches: changeset: 4787:d55ca62dd025 user: David Grellscheid <david.grellscheid at durham.ac.uk> date: Thu Jul 02 15:32:51 2015 +0100 description: notification tests done details: https://rivet.hepforge.org/hg//rivet/rev/d53f110e3fb1 branches: changeset: 4788:d53f110e3fb1 user: Holger Schulz <holger.schulz at durham.ac.uk> date: Thu Jul 02 15:37:17 2015 +0100 description: Add ATLAS W+c analysis diffs (1164 lines): --- a/ChangeLog Thu Jul 02 15:24:26 2015 +0100 +++ b/ChangeLog Thu Jul 02 15:37:17 2015 +0100 @@ -4,6 +4,7 @@ * Add ALICE kaon, pion analysis (ALICE_2015_I1357424) * Add ALICE strange baryon analysis (ALICE_2014_I1300380) * Add CDF ZpT measurement in Z->ee events analysis (CDF_2012_I1124333) + * Add validated ATLAS W+charm measurement (ATLAS_2014_I1282447) 2015-07-01 Andy Buckley <andy.buckley at cern.ch> --- a/README Thu Jul 02 15:24:26 2015 +0100 +++ b/README Thu Jul 02 15:37:17 2015 +0100 @@ -1,7 +1,7 @@ Rivet quickstart guide ---------------------- - Assuming you've got a copy of Rivet installed on your machine, you'll now want +Assuming you've got a copy of Rivet installed on your machine, you'll now want to know how to use it. Here's an example session with the 'rivet' command, which should be illustrative. --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/anainfo/ATLAS_2014_I1282447.info Thu Jul 02 15:37:17 2015 +0100 @@ -0,0 +1,56 @@ +Name: ATLAS_2014_I1282447 +Year: 2014 +Summary: W + charm production at 7 TeV +Experiment: ATLAS +Collider: LHC +InspireID: 1282447 +Status: VALIDATED +Authors: + - Kristin Lohwasser <kristin.lohwasser at cern.ch> +References: + - JHEP 1405 (2014) 068 + - doi:10.1007/JHEP05(2014)068 + - arXiv:1402.6263 [hep-ex] +RunInfo: + W+c and inclusive double production in pp collisions +NumEvents: 1000000 +Beams: [p+, p+] +Energies: [7000] +PtCuts: [20,25,5] +NeedCrossSection: True +Description: + This routine implements the measurement of $W$ boson production in association with a single charm quark with $4.6~\text{fb}^{-1}$ + of $pp$ collision data at $\sqrt{s} = 7$~TeV collected with the ATLAS detector at the Large Hadron Collider. + Results are quoted for the $W$ boson production decaying into either an electron or muon and the charm quark being identified as + any charmed hadron above 5~GeV inside $\Delta R = 0.4$ of a jet with more than 25~GeV. Alternatively the presence of the charm quark + is indicated by the presence of a $D$ or a $D^*$ meson with a $p_\text{T}$ above 8~GeV. The cross sections are quoted for the number + of opposite sign minus same sign events, where the signs under consideration are the charge of the $W$ boson and the charmed hadrons + tagging the event. Given are the integrated and differential cross sections as a function of the pseudorapidity of the lepton from + the $W$-boson decay are measured. Additionally, the cross-section ratios $\sigma(W^+ + bar{c}) / \sigma(W^- + c)$ as well as the + $p_\text{T}$ dependent cross sections of the $D$/$D^*$ mesons normalized to the $W$ inclusive cross sections are published. The + measured data is unfolded to the Born level. One should therefore take care to run on samples without QED radiation off of the electrons. + IMPORTANT NOTICE --- For the MC predictions in the paper, the branching fractions to $D$ and $D^*$ mesons have been adapted to be + 0.2256 ($D$) and 0.2287 ($D^*$) (LEP/HERA combination). Some suggestion on how to do post-processing -- in case separate samples for + $W^+ + c$ and $W^- + c$ and inclusive $W$ are used -- are included in the cc-file. This post-processing is needed to properly + display the histograms for the cross section ratio plots $\sigma(W^+ + bar{c}) / \sigma(W^- + c)$ as well as for the cross section + ratios of $W + D^{(*)}$ production over inclusive $W$ production ($\sigma(W^{+/-} D^{(*)}) / \sigma(W^{+/-})$) as a function of + the $D^{(*)}$ meson transverse momentum. +BibKey: Aad:2014xca +BibTeX: '@article{Aad:2014xca, + author = "Aad, Georges and others", + title = "{Measurement of the production of a $W$ boson in + association with a charm quark in $pp$ collisions at + $\sqrt{s} =$ 7 TeV with the ATLAS detector}", + collaboration = "ATLAS Collaboration", + journal = "JHEP", + volume = "1405", + pages = "068", + doi = "10.1007/JHEP05(2014)068", + year = "2014", + eprint = "1402.6263", + archivePrefix = "arXiv", + primaryClass = "hep-ex", + reportNumber = "CERN-PH-EP-2014-007", + SLACcitation = "%%CITATION = ARXIV:1402.6263;%%", +}' + --- a/data/anainfo/Makefile.am Thu Jul 02 15:24:26 2015 +0100 +++ b/data/anainfo/Makefile.am Thu Jul 02 15:37:17 2015 +0100 @@ -126,6 +126,7 @@ ATLAS_2015_I1364361.info \ ATLAS_2013_I1216670.info \ ATLAS_2013_I1244522.info \ + ATLAS_2014_I1282447.info \ BABAR_2003_I593379.info \ BABAR_2005_S6181155.info \ BABAR_2007_S6895344.info \ --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/plotinfo/ATLAS_2014_I1282447.plot Thu Jul 02 15:37:17 2015 +0100 @@ -0,0 +1,131 @@ +# BEGIN PLOT /ATLAS_2014_I1282447/d01-.* +XLabel=$W$-boson charge [$e$] +XCustomMajorTicks=-1 -1 1 1 +YLabel=$\sigma_\text{fid}^\text{OS-SS}$ [pb] +LogY=0 +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d01-x01-y01 +Title=$Wc$-jet +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d01-x01-y02 +Title=$WD$ +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d01-x01-y03 +Title=$WD^*$ +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d02-x01-y0[1-2] +XLabel= +XMinorTickMarks=0 +LogY=0 +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d02-x01-y01 +Title=$Wc$-jet +YLabel=$\sigma_\text{fid}^\text{OS-SS} (W^+ \bar{c}\text{-jet}) / \sigma_\text{fid}^\text{OS-SS}(W^- c\text{-jet})$ +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d02-x01-y02 +Title=$WD^{(*)}$ +YLabel=$\sigma_\text{fid}^\text{OS-SS} ($W^+ D^{(*)-}) / \sigma_\text{fid}^\text{OS-SS}(W^- D^{(*)+}$ +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d0[34]-.* +XLabel=Lepton $|\eta|$ +YLabel=$\mathrm{d} \sigma_\text{fid}^\text{OS-SS} / \mathrm{d} |\eta|$ [pb] +LogY=0 +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d03-x01-y01 +Title=$W^+ + \bar{c}$-jet +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d03-x01-y02 +Title=$W^- + c$-jet +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d04-x01-y01 +Title=$W^+ + D^-$ +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d04-x01-y02 +Title=$W^- + D^+$ +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d04-x01-y03 +Title=$W^+ + D^{*-}$ +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d04-x01-y04 +Title=$W^- + D^{*+}$ +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d05-x01-y01 +Title=$W D$ over inclusive $W$ +XLabel=$W$-boson charge [$e$] +XMinorTickMarks=0 +XCustomMajorTicks=-1 -1 1 1 +YLabel=$\sigma_\text{fid}^\text{OS-SS} (W D) / \sigma_\text{fid} (W)$ [\%] +LogY=0 +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d05-x01-y02 +Title=$W D^*$ over inclusive $W$ +XLabel=$W$-boson charge [$e$] +XMinorTickMarks=0 +XCustomMajorTicks=-1 -1 1 1 +YLabel=$\sigma_\text{fid}^\text{OS-SS} (W D^*) / \sigma_\text{fid} (W)$ [\%] +LogY=0 +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d06-x01-y0[1-2] +XLabel=$D$-meson $p_\text{T}$ [GeV] +YLabel=$\sigma_\text{fid}^\text{OS-SS} (W D) / \sigma_\text{fid} (W)$ [\%] +LogY=0 +LogX=1 +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d06-x01-y01 +Title=$W^+ D^-$ over inclusive $W^+$ +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d06-x01-y02 +Title=$W^- D^+$ over inclusive $W^-$ +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d06-x01-y0[3-4] +XLabel=$D^*$-meson $p_\text{T}$ [GeV] +YLabel=$\sigma_\text{fid}^\text{OS-SS} (W D^*) / \sigma_\text{fid} (W)$ [\%] +LogY=0 +LogX=1 +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d06-x01-y03 +Title=$W^+ D^{*-}$ over inclusive $W^+$ +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d06-x01-y04 +Title=$W^- D^{*+}$ over inclusive $W^-$ +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d07-x01-y01 +Title=$W + c$-jet +XLabel=Jet multiplicity +XMinorTickMarks=0 +XCustomMajorTicks=0 1 jet 1 2 jets +YLabel=$\sigma_\text{fid}^\text{OS-SS}$ [pb] +LogY=0 +# END PLOT + +# BEGIN PLOT /ATLAS_2014_I1282447/d08-x01-y01 +Title=$R^\pm_c$ +XLabel=Jet multiplicity +XMinorTickMarks=0 +XCustomMajorTicks=0 1 jet 1 2 jets +YLabel=$\sigma_\text{fid}^\text{OS-SS}(W^+ \bar{c}\text{-jet}) / \sigma_\text{fid}^\text{OS-SS}(W^- c\text{-jet})$ +LogY=0 +# END PLOT + --- a/data/plotinfo/Makefile.am Thu Jul 02 15:24:26 2015 +0100 +++ b/data/plotinfo/Makefile.am Thu Jul 02 15:37:17 2015 +0100 @@ -122,6 +122,7 @@ ATLAS_2015_I1364361.plot \ ATLAS_2013_I1216670.plot \ ATLAS_2013_I1244522.plot \ + ATLAS_2014_I1282447.plot \ BABAR_2003_I593379.plot \ BABAR_2005_S6181155.plot \ BABAR_2007_S6895344.plot \ --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/refdata/ATLAS_2014_I1282447.yoda Thu Jul 02 15:37:17 2015 +0100 @@ -0,0 +1,306 @@ +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d01-x01-y01 +Path=/REF/ATLAS_2014_I1282447/d01-x01-y01 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.0 0.5 0.5 33.6 2.012461179749811 2.012461179749811 +-1.0 0.5 0.5 37.3 2.0615528128088303 2.0615528128088303 +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d01-x01-y02 +Path=/REF/ATLAS_2014_I1282447/d01-x01-y02 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.0 0.5 0.5 17.8 2.0615528128088303 2.0615528128088303 +-1.0 0.5 0.5 22.4 2.0591260281974 2.0591260281974 +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d01-x01-y03 +Path=/REF/ATLAS_2014_I1282447/d01-x01-y03 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.0 0.5 0.5 21.2 1.3453624047073711 1.3453624047073711 +-1.0 0.5 0.5 22.1 1.2806248474865698 1.2806248474865698 +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d02-x01-y01 +Path=/REF/ATLAS_2014_I1282447/d02-x01-y01 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +0.0 0.5 0.5 0.9 0.03605551275463989 0.03605551275463989 +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d02-x01-y01_plus +Path=/REF/ATLAS_2014_I1282447/d02-x01-y01_plus +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +0.0 0.5 0.5 33.6 2.012461179749811 2.012461179749811 +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d02-x01-y01_minus +Path=/REF/ATLAS_2014_I1282447/d02-x01-y01_minus +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +0.0 0.5 0.5 37.3 2.0615528128088303 2.0615528128088303 +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d02-x01-y02 +Path=/REF/ATLAS_2014_I1282447/d02-x01-y02 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +0.0 0.5 0.5 0.92 0.050990195135927854 0.050990195135927854 +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d02-x01-y02_minus +Path=/REF/ATLAS_2014_I1282447/d02-x01-y02_minus +Type=Scatter2D +# # xval xerr- xerr+ yval yerr- yerr+ +0.0 0.5 0.5 44.5 3.3 3.3 +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d02-x01-y02_plus +Path=/REF/ATLAS_2014_I1282447/d02-x01-y02_plus +Type=Scatter2D +# # xval xerr- xerr+ yval yerr- yerr+ +0.0 0.5 0.5 39.0 3.4 3.4 +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d03-x01-y01 +Path=/REF/ATLAS_2014_I1282447/d03-x01-y01 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +0.105 0.105 0.105 19.86 2.023561217260303 2.023561217260303 +0.315 0.105 0.105 18.67 1.7846568297574747 1.7846568297574747 +0.525 0.105 0.105 18.38 2.4137315509393336 2.4137315509393336 +0.735 0.105 0.105 18.1 1.8183783984638622 1.8183783984638622 +0.945 0.105 0.105 16.0 1.6633099530754936 1.6633099530754936 +1.21 0.160 0.160 14.91 1.4355835050598764 1.4355835050598764 +1.445 0.075 0.075 14.4 2.552214724508892 2.552214724508892 +1.63 0.110 0.110 11.59 1.4601369798755184 1.4601369798755184 +1.845 0.105 0.105 9.43 1.3984634424967997 1.3984634424967997 +2.065 0.115 0.115 7.74 1.2264175471673586 1.2264175471673586 +2.34 0.160 0.160 6.75 1.2868954891520912 1.2868954891520912 +# END YODA_SCATTER2D + + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d03-x01-y02 +Path=/REF/ATLAS_2014_I1282447/d03-x01-y02 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +0.105 0.105 0.105 19.52 1.78932948335403 1.78932948335403 +0.315 0.105 0.105 20.24 1.7846568297574747 1.7846568297574747 +0.525 0.105 0.105 20.1 1.7517134468856486 1.7517134468856486 +0.735 0.105 0.105 20.57 1.9258764238652488 1.9258764238652488 +0.945 0.105 0.105 19.52 2.2354417907876734 2.2354417907876734 +1.21 0.160 0.160 16.44 1.3970325694127537 1.3970325694127537 +1.445 0.075 0.075 13.2 2.923850201361212 2.923850201361212 +1.63 0.110 0.110 12.18 1.4159802258506295 1.4159802258506295 +1.845 0.105 0.105 11.52 1.2868954891520912 1.2868954891520912 +2.065 0.115 0.115 7.7 1.1729023829799308 1.1729023829799308 +2.34 0.160 0.160 7.91 1.1244998888394788 1.1244998888394788 +# END YODA_SCATTER2D + + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d04-x01-y01 +Path=/REF/ATLAS_2014_I1282447/d04-x01-y01 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +0.21 0.21 0.21 12.33 1.9698730923589975 1.9698730923589975 +0.735 0.315 0.315 7.38 1.523975065412817 1.523975065412817 +1.395 0.345 0.345 7.12 1.3634148304899725 1.3634148304899725 +2.12 0.380 0.380 4.39 1.1343720729989786 1.1343720729989786 +# END YODA_SCATTER2D + + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d04-x01-y02 +Path=/REF/ATLAS_2014_I1282447/d04-x01-y02 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +0.21 0.21 0.21 9.79 1.8117670931993437 1.8117670931993437 +0.735 0.315 0.315 10.33 1.438923208513922 1.438923208513922 +1.395 0.345 0.345 8.35 1.2404031602668546 1.2404031602668546 +2.12 0.380 0.380 6.7 0.9741663102366044 0.9741663102366044 +# END YODA_SCATTER2D + + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d04-x01-y03 +Path=/REF/ATLAS_2014_I1282447/d04-x01-y03 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +0.21 0.21 0.21 11.0 0.979438614717635 0.979438614717635 +0.735 0.315 0.315 11.02 0.8420213774008354 0.8420213774008354 +1.395 0.345 0.345 7.55 0.7169379331573968 0.7169379331573968 +2.12 0.380 0.380 5.68 0.6264982043070834 0.6264982043070834 +# END YODA_SCATTER2D + + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d04-x01-y04 +Path=/REF/ATLAS_2014_I1282447/d04-x01-y04 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +0.21 0.21 0.21 11.79 0.9790812019439451 0.9790812019439451 +0.735 0.315 0.315 9.86 0.7720103626247513 0.7720103626247513 +1.395 0.345 0.345 8.49 0.6906518659932803 0.6906518659932803 +2.12 0.380 0.380 6.14 0.5693856338194704 0.5693856338194704 +# END YODA_SCATTER2D + + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d05-x01-y01 +Path=/REF/ATLAS_2014_I1282447/d05-x01-y01 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.0 0.5 0.5 0.55 0.06324555320336758 0.06324555320336758 +-1.0 0.5 0.5 1.06 0.08944271909999159 0.08944271909999159 +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d05-x01-y02 +Path=/REF/ATLAS_2014_I1282447/d05-x01-y02 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.0 0.5 0.5 0.55 0.06324555320336758 0.06324555320336758 +-1.0 0.5 0.5 1.06 0.08944271909999159 0.08944271909999159 +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d05-x01-y03 +Path=/REF/ATLAS_2014_I1282447/d05-x01-y03 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.0 0.5 0.5 0.66 0.042426406871192854 0.042426406871192854 +-1.0 0.5 0.5 1.05 0.06403124237432849 0.06403124237432849 +# END YODA_SCATTER2D + + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d06-x01-y01 +Path=/REF/ATLAS_2014_I1282447/d06-x01-y01 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +10.0 2.0 2.0 0.17 0.022360679774997897 0.022360679774997897 +16.0 4.0 4.0 0.21 0.022360679774997897 0.022360679774997897 +30.0 10.0 10.0 0.14 0.01414213562373095 0.01414213562373095 +60.0 20.0 6940.0 0.037 0.004472135954999579 0.004472135954999579 +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d06-x01-y01_wplus +Path=/REF/ATLAS_2014_I1282447/d06-x01-y01_wplus +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +10.0 2.0 2.0 0. 0. 0. +16.0 4.0 4.0 0. 0. 0. +30.0 10.0 10.0 0. 0. 0. +60.0 20.0 6940.0 0. 0. 0. +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d06-x01-y01_winc +Path=/REF/ATLAS_2014_I1282447/d06-x01-y01_winc +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +10.0 2.0 2.0 0. 0. 0. +16.0 4.0 4.0 0. 0. 0. +30.0 10.0 10.0 0. 0. 0. +60.0 20.0 6940.0 0 0. 0. +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d06-x01-y02 +Path=/REF/ATLAS_2014_I1282447/d06-x01-y02 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +10.0 2.0 2.0 0.4 0.06324555320336758 0.06324555320336758 +16.0 4.0 4.0 0.31 0.050990195135927854 0.050990195135927854 +30.0 10.0 10.0 0.26 0.03162277660168379 0.03162277660168379 +60.0 20.0 6940.0 0.094 0.01676305461424021 0.01676305461424021 +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d06-x01-y02_winc +Path=/REF/ATLAS_2014_I1282447/d06-x01-y02_winc +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +10.0 2.0 2.0 0. 0. 0. +16.0 4.0 4.0 0. 0. 0. +30.0 10.0 10.0 0. 0. 0. +60.0 20.0 6940.0 0. 0. 0. +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d06-x01-y02_wminus +Path=/REF/ATLAS_2014_I1282447/d06-x01-y02_wminus +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +10.0 2.0 2.0 0. 0. 0. +16.0 4.0 4.0 0. 0. 0. +30.0 10.0 10.0 0. 0. 0. +60.0 20.0 6940.0 0. 0. 0. +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d06-x01-y03 +Path=/REF/ATLAS_2014_I1282447/d06-x01-y03 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +10.0 2.0 2.0 0.23 0.01414213562373095 0.01414213562373095 +16.0 4.0 4.0 0.24 0.01414213562373095 0.01414213562373095 +30.0 10.0 10.0 0.14 0.01414213562373095 0.01414213562373095 +60.0 20.0 6940.0 0.045 0.004242640687119285 0.004242640687119285 +# END YODA_SCATTER2D + + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d06-x01-y03_wplus +Path=/REF/ATLAS_2014_I1282447/d06-x01-y03_wplus +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +10.0 2.0 2.0 0. 0. 0. +16.0 4.0 4.0 0. 0. 0. +30.0 10.0 10.0 0. 0. 0. +60.0 20.0 6940.0 0. 0. 0. +# END YODA_SCATTER2D + + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d06-x01-y04 +Path=/REF/ATLAS_2014_I1282447/d06-x01-y04 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +10.0 2.0 2.0 0.38 0.03605551275463989 0.03605551275463989 +16.0 4.0 4.0 0.35 0.0282842712474619 0.0282842712474619 +30.0 10.0 10.0 0.23 0.01414213562373095 0.01414213562373095 +60.0 20.0 6940.0 0.085 0.009433981132056603 0.009433981132056603 +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d06-x01-y04_wminus +Path=/REF/ATLAS_2014_I1282447/d06-x01-y04_wminus +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +10.0 2.0 2.0 0. 0. 0. +16.0 4.0 4.0 0. 0. 0. +30.0 10.0 10.0 0. 0. 0. +60.0 20.0 6940.0 0. 0. 0. +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d07-x01-y01 +Path=/REF/ATLAS_2014_I1282447/d07-x01-y01 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +0.0 0.5 0.5 52.9 3.132091952673165 3.132091952673165 +1.0 0.5 0.5 14.2 1.3416407864998738 1.3416407864998738 +# END YODA_SCATTER2D + + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d08-x01-y01 +Path=/REF/ATLAS_2014_I1282447/d08-x01-y01 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +0.0 0.5 0.5 0.91 0.03605551275463989 0.03605551275463989 +1.0 0.5 0.5 0.87 0.08246211251235322 0.08246211251235322 +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d08-x01-y01_minus +Path=/REF/ATLAS_2014_I1282447/d08-x01-y01_minus +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +0.0 0.5 0.5 0. 0. 0. +1.0 0.5 0.5 0. 0. 0. +# END YODA_SCATTER2D + +# BEGIN YODA_SCATTER2D /REF/ATLAS_2014_I1282447/d08-x01-y01_plus +Path=/REF/ATLAS_2014_I1282447/d08-x01-y01_plus +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +0.0 0.5 0.5 0. 0. 0. +1.0 0.5 0.5 0. 0. 0. +# END YODA_SCATTER2D + --- a/data/refdata/Makefile.am Thu Jul 02 15:24:26 2015 +0100 +++ b/data/refdata/Makefile.am Thu Jul 02 15:37:17 2015 +0100 @@ -104,6 +104,7 @@ ATLAS_2013_I1244522.yoda \ ATLAS_2011_I928289_W.yoda \ ATLAS_2011_I928289_Z.yoda \ + ATLAS_2014_I1282447.yoda \ BABAR_2003_I593379.yoda \ BABAR_2005_S6181155.yoda \ BABAR_2006_S6511112.yoda \ --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/Analyses/ATLAS_2014_I1282447.cc Thu Jul 02 15:37:17 2015 +0100 @@ -0,0 +1,596 @@ +// -*- C++ -*- +// ATLAS W+c analysis + +////////////////////////////////////////////////////////////////////////// +/* +Description of rivet analysis ATLAS_2014_I1282447 W+c production + +This rivet routine implements the ATLAS W+c analysis. +Apart from those histograms, described and published on HEP Data, here +are some helper histograms defined, these are: + +d02-x01-y01, d02-x01-y02 and d08-x01-y01 are ratios, the nominator ("_plus") +and denominator ("_minus") histograms are also given, so that the ratios can +be reconstructed if need be (e.g. when running on separate samples). + +d05 and d06 are ratios over inclusive W production. +The routine has to be run on a sample for inclusive W production in order to +make sure the denominator ("_winc") is correctly filled. + +The ratios can be constructed using the following sample code: +python divideWCharm.py + +import yoda +hists_wc = yoda.read("Rivet_Wc.yoda") +hists_winc = yoda.read("Rivet_Winc.yoda") + +## division histograms --> ONLY for different plus minus runs +# (merge before using yodamerge Rivet_plus.yoda Rivet_minus.yoda > Rivet_Wc.yoda) + +d02y01_plus = hists_wc["/ATLAS_2014_I1282447/d02-x01-y01_plus"] +d02y01_minus = hists_wc["/ATLAS_2014_I1282447/d02-x01-y01_minus"] +ratio_d02y01 = d02y01_plus.divide(d02y01_minus) +ratio_d02y01.path = "/ATLAS_2014_I1282447/d02-x01-y01" + +d02y02_plus = hists_wc["/ATLAS_2014_I1282447/d02-x01-y02_plus"] +d02y02_minus = hists_wc["/ATLAS_2014_I1282447/d02-x01-y02_minus"] +ratio_d02y02= d02y02_plus.divide(d02y02_minus) +ratio_d02y02.path = "/ATLAS_2014_I1282447/d02-x01-y02" + +d08y01_plus = hists_wc["/ATLAS_2014_I1282447/d08-x01-y01_plus"] +d08y01_minus = hists_wc["/ATLAS_2014_I1282447/d08-x01-y01_minus"] +ratio_d08y01= d08y01_plus.divide(d08y01_minus) +ratio_d08y01.path = "/ATLAS_2014_I1282447/d08-x01-y01" + +# inclusive cross section +h_winc = hists_winc["/ATLAS_2014_I1282447/d05-x01-y01"] +h_d = hists_wc["/ATLAS_2014_I1282447/d01-x01-y02"] +h_dstar= hists_wc["/ATLAS_2014_I1282447/d01-x01-y03"] + +ratio_wd = h_d.divide(h_winc) +ratio_wd.path = "/ATLAS_2014_I1282447/d05-x01-y02" + +ratio_wdstar = h_d.divide(h_winc) +ratio_wdstar.path = "/ATLAS_2014_I1282447/d05-x01-y03" + +# pT differential +h_winc_plus = hists_winc["/ATLAS_2014_I1282447/d06-x01-y01_winc"] +h_winc_minus = hists_winc["/ATLAS_2014_I1282447/d06-x01-y02_winc"] + +h_wd_plus = hists_wc["/ATLAS_2014_I1282447/d06-x01-y01_wplus"] +h_wd_minus = hists_wc["/ATLAS_2014_I1282447/d06-x01-y02_wminus"] +h_wdstar_plus = hists_wc["/ATLAS_2014_I1282447/d06-x01-y03_wplus"] +h_wdstar_minus = hists_wc["/ATLAS_2014_I1282447/d06-x01-y04_wminus"] + +ratio_wd_plus = h_wd_plus.divide(h_winc_plus) +ratio_wd_plus.path = "/ATLAS_2014_I1282447/d06-x01-y01" +ratio_wd_minus = h_wd_plus.divide(h_winc_minus) +ratio_wd_minus.path = "/ATLAS_2014_I1282447/d06-x01-y02" + +ratio_wdstar_plus = h_wdstar_plus.divide(h_winc_plus) +ratio_wdstar_plus.path = "/ATLAS_2014_I1282447/d06-x01-y03" +ratio_wdstar_minus = h_wdstar_plus.divide(h_winc_minus) +ratio_wdstar_minus.path = "/ATLAS_2014_I1282447/d06-x01-y04" + +ratio_wd_plus = h_wd_plus.divide(h_winc_plus) +ratio_wd_plus.path = "/ATLAS_2014_I1282447/d06-x01-y01" +ratio_wd_minus = h_wd_plus.divide(h_winc_minus) +ratio_wd_minus.path = "/ATLAS_2014_I1282447/d06-x01-y02" + +h_winc_plus= hists_winc["/ATLAS_2014_I1282447/d06-x01-y01_winc"] +h_winc_minus= hists_winc["/ATLAS_2014_I1282447/d06-x01-y02_winc"] + +## copy other histograms for plotting + +d01x01y01= hists_wc["/ATLAS_2014_I1282447/d01-x01-y01"] +d01x01y01.path = "/ATLAS_2014_I1282447/d01-x01-y01" + +d01x01y02= hists_wc["/ATLAS_2014_I1282447/d01-x01-y02"] +d01x01y02.path = "/ATLAS_2014_I1282447/d01-x01-y02" + +d01x01y03= hists_wc["/ATLAS_2014_I1282447/d01-x01-y03"] +d01x01y03.path = "/ATLAS_2014_I1282447/d01-x01-y03" + +d03x01y01= hists_wc["/ATLAS_2014_I1282447/d03-x01-y01"] +d03x01y01.path = "/ATLAS_2014_I1282447/d03-x01-y01" + +d03x01y02= hists_wc["/ATLAS_2014_I1282447/d03-x01-y02"] +d03x01y02.path = "/ATLAS_2014_I1282447/d03-x01-y02" + +d04x01y01= hists_wc["/ATLAS_2014_I1282447/d04-x01-y01"] +d04x01y01.path = "/ATLAS_2014_I1282447/d04-x01-y01" + +d04x01y02= hists_wc["/ATLAS_2014_I1282447/d04-x01-y02"] +d04x01y02.path = "/ATLAS_2014_I1282447/d04-x01-y02" + +d04x01y03= hists_wc["/ATLAS_2014_I1282447/d04-x01-y03"] +d04x01y03.path = "/ATLAS_2014_I1282447/d04-x01-y03" + +d04x01y04= hists_wc["/ATLAS_2014_I1282447/d04-x01-y04"] +d04x01y04.path = "/ATLAS_2014_I1282447/d04-x01-y04" + +d07x01y01= hists_wc["/ATLAS_2014_I1282447/d07-x01-y01"] +d07x01y01.path = "/ATLAS_2014_I1282447/d07-x01-y01" + +yoda.write([ratio_d02y01,ratio_d02y02,ratio_d08y01, ratio_wd ,ratio_wdstar,ratio_wd_plus,ratio_wd_minus ,ratio_wdstar_plus,ratio_wdstar_minus,d01x01y01,d01x01y02,d01x01y03,d03x01y01,d03x01y02,d04x01y01,d04x01y02,d04x01y03,d04x01y04,d07x01y01],"validation.yoda") + +*/ +////////////////////////////////////////////////////////////////////////// + +#include "Rivet/Analysis.hh" +#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/ZFinder.hh" +#include "Rivet/Projections/WFinder.hh" +#include "Rivet/Projections/FastJets.hh" + +#include "Rivet/Projections/ChargedFinalState.hh" +#include "Rivet/Projections/VetoedFinalState.hh" + +namespace Rivet { + + class ATLAS_2014_I1282447 : public Analysis { + + public: + + /// Constructor + ATLAS_2014_I1282447() : Analysis("ATLAS_2014_I1282447") + { + setNeedsCrossSection(true); + } + + public: + + /// @name Analysis methods + //@{ + + /// Book histograms and initialise projections before the run + void init() { + + /// @todo Initialise and register projections here + UnstableFinalState fs; + + Cut cuts = Cuts::etaIn(-2.5, 2.5) & (Cuts::pT > 20*GeV); + + /// should use sample WITHOUT QED radiation off the electron + WFinder wfinder_born_el(fs, cuts, PID::ELECTRON, 25*GeV, 8000*GeV, 15*GeV, 0.1, WFinder::CLUSTERALL, WFinder::TRACK); + addProjection(wfinder_born_el, "WFinder_born_el"); + + WFinder wfinder_born_mu(fs, cuts, PID::MUON , 25*GeV, 8000*GeV, 15*GeV, 0.1, WFinder::CLUSTERALL, WFinder::TRACK); + addProjection(wfinder_born_mu, "WFinder_born_mu"); + + // all hadrons that could be coming from a charm decay -- + // -- for safety, use region -3.5 - 3.5 + addProjection(UnstableFinalState(Cuts::abseta <3.5), "hadrons"); + + // Input for the jets: no neutrinos, no muons, and no electron which passed the electron cuts + // also: NO electron, muon or tau (needed due to ATLAS jet truth reconstruction feature) + VetoedFinalState veto; + + veto.addVetoOnThisFinalState(wfinder_born_el); + veto.addVetoOnThisFinalState(wfinder_born_mu); + veto.addVetoPairId(PID::ELECTRON); + veto.addVetoPairId(PID::MUON); + veto.addVetoPairId(PID::TAU); + + FastJets jets(veto, FastJets::ANTIKT, 0.4); + addProjection(jets, "jets"); + + // Book histograms + + // charge separated integrated cross sections + _hist_wcjet_charge = bookHisto1D("d01-x01-y01"); + _hist_wd_charge = bookHisto1D("d01-x01-y02"); + _hist_wdstar_charge = bookHisto1D("d01-x01-y03"); + + // charge integrated total cross sections + _hist_wcjet_ratio = bookScatter2D("d02-x01-y01"); + _hist_wd_ratio = bookScatter2D("d02-x01-y02"); + + _hist_wcjet_minus = bookHisto1D("d02-x01-y01_minus"); + _hist_wd_minus = bookHisto1D("d02-x01-y02_minus"); + + _hist_wcjet_plus = bookHisto1D("d02-x01-y01_plus"); + _hist_wd_plus = bookHisto1D("d02-x01-y02_plus"); + + // eta distributions + _hist_wplus_wcjet_eta_lep = bookHisto1D("d03-x01-y01"); + _hist_wminus_wcjet_eta_lep = bookHisto1D("d03-x01-y02"); + + _hist_wplus_wdminus_eta_lep = bookHisto1D("d04-x01-y01"); + _hist_wminus_wdplus_eta_lep = bookHisto1D("d04-x01-y02"); + _hist_wplus_wdstar_eta_lep = bookHisto1D("d04-x01-y03"); + _hist_wminus_wdstar_eta_lep = bookHisto1D("d04-x01-y04"); + + // ratio of cross section (WD over W inclusive) // postprocess! + _hist_w_inc = bookHisto1D("d05-x01-y01"); + _hist_wd_winc_ratio = bookScatter2D("d05-x01-y02"); + _hist_wdstar_winc_ratio = bookScatter2D("d05-x01-y03"); + + // ratio of cross section (WD over W inclusive -- function of pT of D meson) + _hist_wplusd_wplusinc_pt_ratio = bookScatter2D("d06-x01-y01"); + _hist_wminusd_wminusinc_pt_ratio = bookScatter2D("d06-x01-y02"); + _hist_wplusdstar_wplusinc_pt_ratio = bookScatter2D("d06-x01-y03"); + _hist_wminusdstar_wminusinc_pt_ratio = bookScatter2D("d06-x01-y04"); + + // could use for postprocessing! + _hist_wplusd_wplusinc_pt = bookHisto1D("d06-x01-y01_wplus"); + _hist_wminusd_wminusinc_pt = bookHisto1D("d06-x01-y02_wminus"); + _hist_wplusdstar_wplusinc_pt = bookHisto1D("d06-x01-y03_wplus"); + _hist_wminusdstar_wminusinc_pt = bookHisto1D("d06-x01-y04_wminus"); + + _hist_wplus_winc = bookHisto1D("d06-x01-y01_winc"); + _hist_wminus_winc = bookHisto1D("d06-x01-y02_winc"); + + // jet multiplicity of charge integrated W+cjet cross section (+0 or +1 jet in addition to the charm jet) + _hist_wcjet_jets = bookHisto1D("d07-x01-y01"); + + // jet multiplicity of W+cjet cross section ratio (+0 or +1 jet in addition to the charm jet) + _hist_wcjet_jets_ratio = bookScatter2D("d08-x01-y01"); + _hist_wcjet_jets_plus = bookHisto1D("d08-x01-y01_plus"); + _hist_wcjet_jets_minus = bookHisto1D("d08-x01-y01_minus"); + + } + + + /// Perform the per-event analysis + void analyze(const Event& event) { + + const double weight = event.weight(); + + double charge_weight = 0; // account for OS/SS events + + int lepton_charge = 0; + double lepton_eta = 0.; + + /// Find leptons + const WFinder& wfinder_born_el = applyProjection<WFinder>(event, "WFinder_born_el"); + const WFinder& wfinder_born_mu = applyProjection<WFinder>(event, "WFinder_born_mu"); + + if(wfinder_born_el.empty() && wfinder_born_mu.empty() ) { + MSG_DEBUG("No W bosons found"); + vetoEvent; + } + + bool keepevent = false; + + //check electrons + if(!wfinder_born_el.empty()) { + const FourMomentum& nu = wfinder_born_el.constituentNeutrinos()[0].momentum(); + if(wfinder_born_el.mT() > 40*GeV && nu.pT() > 25*GeV) { + keepevent = true; + lepton_charge = wfinder_born_el.constituentLeptons()[0].charge(); + lepton_eta = fabs(wfinder_born_el.constituentLeptons()[0].pseudorapidity()); + } + } + + //check muons + if(!wfinder_born_mu.empty()) { + const FourMomentum& nu = wfinder_born_mu.constituentNeutrinos()[0].momentum(); + if(wfinder_born_mu.mT() > 40*GeV && nu.pT() > 25*GeV) { + keepevent = true; + lepton_charge = wfinder_born_mu.constituentLeptons()[0].charge(); + lepton_eta = fabs(wfinder_born_mu.constituentLeptons()[0].pseudorapidity()); + } + } + + if(!keepevent) { + MSG_DEBUG("event does not pass mT and MET cuts"); + vetoEvent; + } + + if (lepton_charge > 0) { + _hist_wplus_winc->fill(10., weight); + _hist_wplus_winc->fill(16., weight); + _hist_wplus_winc->fill(30., weight); + _hist_wplus_winc->fill(60., weight); + _hist_w_inc->fill(+1, weight); + } + else if (lepton_charge < 0) { + _hist_wminus_winc->fill(10., weight); + _hist_wminus_winc->fill(16., weight); + _hist_wminus_winc->fill(30., weight); + _hist_wminus_winc->fill(60., weight); + _hist_w_inc->fill(-1, weight); + } + + // Find hadrons in the event + const UnstableFinalState& fs = applyProjection<UnstableFinalState>(event, "hadrons"); + + /// FIND Different channels + // 1: wcjet + // get jets + const Jets& jets = applyProjection<FastJets>(event, "jets").jetsByPt(Cuts::pT>25.0*GeV && Cuts::abseta<2.5); + // loop over jets to select jets used to match to charm + Jets js; + int matched_charmHadron = 0; + double charm_charge = 0.; + int njets = 0; + int nj = 0; + bool mat_jet = false; + + double ptcharm = 0; + + if(matched_charmHadron > -1) { + foreach(const Jet& j, jets) { + mat_jet = false; + njets++; + foreach(const Particle& p, fs.particles()) { + const GenParticle* part = p.genParticle(); + if(p.hasCharm()) { + //if(isFromBDecay(p)) continue; + if(p.fromBottom()) continue; + if(p.pT() < 5*GeV ) continue; + if(hasCharmedChildren(part)) continue; + if(deltaR(p, j) < 0.3) { + mat_jet = true; + if(p.pT() > ptcharm) { + charm_charge = part->pdg_id(); + ptcharm = p.pT(); + } + } + } + } + if(mat_jet) nj++; + } + + if (charm_charge * lepton_charge > 0) charge_weight = -1; + else charge_weight = +1; + + if(nj == 1) { + if (lepton_charge > 0) { + _hist_wcjet_charge ->fill( 1, weight*charge_weight); + _hist_wcjet_plus ->fill( 0, weight*charge_weight); + _hist_wplus_wcjet_eta_lep ->fill(lepton_eta, weight*charge_weight); + _hist_wcjet_jets_plus ->fill(njets-1 , weight*charge_weight); + } + else if (lepton_charge < 0) { + _hist_wcjet_charge ->fill( -1, weight*charge_weight); + _hist_wcjet_minus ->fill( 0, weight*charge_weight); + _hist_wminus_wcjet_eta_lep->fill(lepton_eta, weight*charge_weight); + _hist_wcjet_jets_minus ->fill(njets-1 , weight*charge_weight); + } + + _hist_wcjet_jets->fill(njets-1, weight*charge_weight); + } + } + + // // 1/2: w+d(*) meson + + foreach(const Particle& p, fs.particles()) { + + const GenParticle* part = p.genParticle(); + if(p.pT() < 8*GeV) continue; + if(fabs(p.eta()) > 2.2) continue; + + // W+D + if(fabs(part->pdg_id()) == 411) { + if(lepton_charge * part->pdg_id() > 0) charge_weight = -1; + else charge_weight = +1; + + // fill histos + if (lepton_charge > 0) { + _hist_wd_charge ->fill( 1, weight*charge_weight); + _hist_wd_plus ->fill( 0, weight*charge_weight); + _hist_wplus_wdminus_eta_lep->fill(lepton_eta, weight*charge_weight); + _hist_wplusd_wplusinc_pt ->fill( p.pT(), weight*charge_weight); + } + else if (lepton_charge < 0) { + _hist_wd_charge ->fill( -1, weight*charge_weight); + _hist_wd_minus ->fill( 0, weight*charge_weight); + _hist_wminus_wdplus_eta_lep->fill(lepton_eta, weight*charge_weight); + _hist_wminusd_wminusinc_pt ->fill(p.pT() , weight*charge_weight); + } + } + + // W+Dstar + if( fabs(part->pdg_id()) == 413 ) { + if (lepton_charge*part->pdg_id() > 0) charge_weight = -1; + else charge_weight = +1; + + if (lepton_charge > 0) { + _hist_wdstar_charge->fill(+1, weight*charge_weight); + _hist_wd_plus->fill( 0, weight*charge_weight); + _hist_wplus_wdstar_eta_lep->fill( lepton_eta, weight*charge_weight); + _hist_wplusdstar_wplusinc_pt->fill( p.pT(), weight*charge_weight); + } + else if (lepton_charge < 0) { + _hist_wdstar_charge->fill(-1, weight*charge_weight); + _hist_wd_minus->fill(0, weight*charge_weight); + _hist_wminus_wdstar_eta_lep->fill(lepton_eta, weight*charge_weight); + _hist_wminusdstar_wminusinc_pt->fill(p.pT(), weight*charge_weight); + } + } + } + }// end of analyse function + + + /// Normalise histograms etc., after the run + void finalize() { + + /// @todo Normalise, scale and otherwise manipulate histograms here + const double sf( crossSection() / sumOfWeights() ); + + // norm to cross section + // d01 + scale(_hist_wcjet_charge, sf); + scale(_hist_wd_charge, sf); + scale(_hist_wdstar_charge, sf); + + //d02 + scale(_hist_wcjet_plus, sf); + scale(_hist_wcjet_minus, sf); + scale(_hist_wd_plus, sf); + scale(_hist_wd_minus, sf); + + divide(_hist_wcjet_plus, _hist_wcjet_minus, _hist_wcjet_ratio); + divide(_hist_wd_plus, _hist_wd_minus, _hist_wd_ratio ); + + //d03 + scale(_hist_wplus_wcjet_eta_lep, sf); + scale(_hist_wminus_wcjet_eta_lep, sf); + + //d04 + scale(_hist_wplus_wdminus_eta_lep, crossSection()/sumOfWeights()); + scale(_hist_wminus_wdplus_eta_lep, crossSection()/sumOfWeights()); + + scale(_hist_wplus_wdstar_eta_lep , crossSection()/sumOfWeights()); + scale(_hist_wminus_wdstar_eta_lep, crossSection()/sumOfWeights()); + + //d05 + scale(_hist_w_inc, 0.01 * sf); // in percent --> /100 + divide(_hist_wd_charge, _hist_w_inc, _hist_wd_winc_ratio ); + divide(_hist_wdstar_charge, _hist_w_inc, _hist_wdstar_winc_ratio); + + //d06, in percentage! + scale(_hist_wplusd_wplusinc_pt, sf); + scale(_hist_wminusd_wminusinc_pt, sf); + scale(_hist_wplusdstar_wplusinc_pt, sf); + scale(_hist_wminusdstar_wminusinc_pt, sf); + + scale(_hist_wplus_winc, 0.01 * sf); // in percent --> /100 + scale(_hist_wminus_winc, 0.01 * sf); // in percent --> /100 + + divide(_hist_wplusd_wplusinc_pt, _hist_wplus_winc , _hist_wplusd_wplusinc_pt_ratio ); + divide(_hist_wminusd_wminusinc_pt, _hist_wminus_winc, _hist_wminusd_wminusinc_pt_ratio ); + divide(_hist_wplusdstar_wplusinc_pt, _hist_wplus_winc , _hist_wplusdstar_wplusinc_pt_ratio ); + divide(_hist_wminusdstar_wminusinc_pt, _hist_wminus_winc, _hist_wminusdstar_wminusinc_pt_ratio); + + + //d07 + scale(_hist_wcjet_jets, sf); + + //d08 + scale(_hist_wcjet_jets_minus, sf); + scale(_hist_wcjet_jets_plus, sf); + divide(_hist_wcjet_jets_plus, _hist_wcjet_jets_minus , _hist_wcjet_jets_ratio); + } + + //@} + + + private: + + // Data members like post-cuts event weight counters go here + + // Check whether particle comes from b-decay + bool isFromBDecay(const Particle& p) { + + bool isfromB = false; + + if(p.genParticle() == NULL) return false; + + const GenParticle* part = p.genParticle(); + GenVertex* ivtx = part->production_vertex(); + while(ivtx) { + if(ivtx->particles_in_size() < 1) { + isfromB = false; + break; + } + const HepMC::GenVertex::particles_in_const_iterator iPart_invtx = ivtx->particles_in_const_begin(); + part = (*iPart_invtx); + if(!part) { + isfromB = false; + break; + } + isfromB = PID::hasBottom(part->pdg_id()); + if(isfromB == true) break; + ivtx = part->production_vertex(); + if( part->pdg_id() == 2212 || !ivtx ) break; // reached beam + } + return isfromB; + } + + + // Check whether particle has charmed children + bool hasCharmedChildren(const GenParticle *part) { + + bool hasCharmedChild = false; + if(part == NULL) return false; + + GenVertex* ivtx = part->end_vertex(); + if(ivtx == NULL) return false; + + // if (ivtx->particles_out_size() < 2) return false; + HepMC::GenVertex::particles_out_const_iterator iPart_invtx = ivtx->particles_out_const_begin(); + HepMC::GenVertex::particles_out_const_iterator end_invtx = ivtx->particles_out_const_end(); + + for( ; iPart_invtx != end_invtx; iPart_invtx++ ) { + const GenParticle* p2 = (*iPart_invtx); + if( p2 == part) continue; + hasCharmedChild = PID::hasCharm(p2->pdg_id()); + if(hasCharmedChild == true) break; + hasCharmedChild = hasCharmedChildren(p2); + if(hasCharmedChild == true) break; + } + return hasCharmedChild; + } + + + private: + + /// @name Histograms + //@{ + + //d01-x01- + Histo1DPtr _hist_wcjet_charge; + Histo1DPtr _hist_wd_charge; + Histo1DPtr _hist_wdstar_charge; + + //d02-x01- + Scatter2DPtr _hist_wcjet_ratio; + Scatter2DPtr _hist_wd_ratio; + Histo1DPtr _hist_wcjet_plus; + Histo1DPtr _hist_wd_plus; + + Histo1DPtr _hist_wcjet_minus; + Histo1DPtr _hist_wd_minus; + + //d03-x01- + Histo1DPtr _hist_wplus_wcjet_eta_lep; + Histo1DPtr _hist_wminus_wcjet_eta_lep; + + //d04-x01- + Histo1DPtr _hist_wplus_wdminus_eta_lep; + Histo1DPtr _hist_wminus_wdplus_eta_lep; + + //d05-x01- + Histo1DPtr _hist_wplus_wdstar_eta_lep; + Histo1DPtr _hist_wminus_wdstar_eta_lep; + + + // postprocessing histos + //d05-x01 + Histo1DPtr _hist_w_inc; + Scatter2DPtr _hist_wd_winc_ratio; + Scatter2DPtr _hist_wdstar_winc_ratio; + + //d06-x01 + Histo1DPtr _hist_wplus_winc; + Histo1DPtr _hist_wminus_winc; + + Scatter2DPtr _hist_wplusd_wplusinc_pt_ratio; + Scatter2DPtr _hist_wminusd_wminusinc_pt_ratio; + Scatter2DPtr _hist_wplusdstar_wplusinc_pt_ratio; + Scatter2DPtr _hist_wminusdstar_wminusinc_pt_ratio; + + Histo1DPtr _hist_wplusd_wplusinc_pt ; + Histo1DPtr _hist_wminusd_wminusinc_pt; + Histo1DPtr _hist_wplusdstar_wplusinc_pt; + Histo1DPtr _hist_wminusdstar_wminusinc_pt; + + // d07-x01 + Histo1DPtr _hist_wcjet_jets ; + + //d08-x01 + Scatter2DPtr _hist_wcjet_jets_ratio ; + Histo1DPtr _hist_wcjet_jets_plus ; + Histo1DPtr _hist_wcjet_jets_minus; + //@} + + }; + + + // The hook for the plugin system + DECLARE_RIVET_PLUGIN(ATLAS_2014_I1282447); + +} --- a/src/Analyses/Makefile.am Thu Jul 02 15:24:26 2015 +0100 +++ b/src/Analyses/Makefile.am Thu Jul 02 15:37:17 2015 +0100 @@ -126,7 +126,8 @@ ATLAS_2014_I1306615.cc \ ATLAS_2013_I1216670.cc \ ATLAS_2013_I1244522.cc \ - ATLAS_2015_I1364361.cc + ATLAS_2015_I1364361.cc \ + ATLAS_2014_I1282447.cc if ENABLE_PRELIMINARY RivetATLASAnalyses_la_SOURCES += \ ATLAS_2012_CONF_2012_001.cc
More information about the Rivet-svn mailing list |