[Rivet-svn] rivet: 2 new changesets

Rivet Mercurial rivet at projects.hepforge.org
Thu 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