diff --git a/analyses/pluginATLAS/ATLAS_2015_I1408516.plot b/analyses/pluginATLAS/ATLAS_2015_I1408516.plot --- a/analyses/pluginATLAS/ATLAS_2015_I1408516.plot +++ b/analyses/pluginATLAS/ATLAS_2015_I1408516.plot @@ -1,430 +1,435 @@ # BEGIN PLOT /ATLAS_2015_I1408516/d.. XTwosidedTicks=1 YTwosidedTicks=1 LegendYPos=0.3 LegendXPos=0.05 LogX=1 YLabel=$1/\sigma$ $\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ XLabel=$p_\text{T}^{\ell\ell}$ [GeV] # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d0[2-9] YLabel=$1/\sigma$ $\text{d}\sigma/\text{d}\phi^\ast_\eta$ XLabel=$\phi^\ast_\eta$ XMin=0.001 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d1[0-6] YLabel=$1/\sigma$ $\text{d}\sigma/\text{d}\phi^\ast_\eta$ XLabel=$\phi^\ast_\eta$ XMin=0.001 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d02 Title=$Z\rightarrow ee$, dressed level, $46\,\text{GeV}\leq m_{\ell\ell} < 66\,\text{GeV}$, $|y_{\ell\ell}| < 0.8$ # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d03 Title=$Z\rightarrow ee$, dressed level, $46\,\text{GeV}\leq m_{\ell\ell} < 66\,\text{GeV}$, $0.8\leq |y_{\ell\ell}| < 1.6$ # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d04 Title=$Z\rightarrow ee$, dressed level, $46\,\text{GeV}\leq m_{\ell\ell} < 66\,\text{GeV}$, $1.6\leq |y_{\ell\ell}| < 2.4$ # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d05 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $|y_{\ell\ell}| < 0.4$ # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d06 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $0.4\leq |y_{\ell\ell}| < 0.8$ # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d07 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $0.8\leq |y_{\ell\ell}| < 1.2$ # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d08 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $1.2\leq |y_{\ell\ell}| < 1.6$ # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d09 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $1.6\leq |y_{\ell\ell}| < 2.0$ # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d10 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $2.0\leq |y_{\ell\ell}| < 2.4$ # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d11 Title=$Z\rightarrow ee$, dressed level, $116\,\text{GeV}\leq m_{\ell\ell} < 150\,\text{GeV}$, $|y_{\ell\ell}| < 0.8$ # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d12 Title=$Z\rightarrow ee$, dressed level, $116\,\text{GeV}\leq m_{\ell\ell} < 150\,\text{GeV}$, $0.8\leq |y_{\ell\ell}| < 1.6$ # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d13 Title=$Z\rightarrow ee$, dressed level, $116\,\text{GeV}\leq m_{\ell\ell} < 150\,\text{GeV}$, $1.6\leq |y_{\ell\ell}| < 2.4$ # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d14 Title=$Z\rightarrow ee$, dressed level, $46\,\text{GeV}\leq m_{\ell\ell} < 66\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d15 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d16 Title=$Z\rightarrow ee$, dressed level, $116\,\text{GeV}\leq m_{\ell\ell} < 150\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d17 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $|y_{\ell\ell}| < 0.4$ XMin=0.9 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d18 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $0.4 \leq |y_{\ell\ell}| < 0.8$ XMin=0.9 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d19 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $0.8 \leq |y_{\ell\ell}| < 1.2$ XMin=0.9 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d20 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $1.2 \leq |y_{\ell\ell}| < 1.6$ XMin=0.9 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d21 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $1.6 \leq |y_{\ell\ell}| < 2.0$ XMin=0.9 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d22 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $2.0 \leq |y_{\ell\ell}| < 2.4$ XMin=0.9 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d23 Title=$Z\rightarrow ee$, dressed level, $12\,\text{GeV}\leq m_{\ell\ell} < 20\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d24 Title=$Z\rightarrow ee$, dressed level, $20\,\text{GeV}\leq m_{\ell\ell} < 30\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d25 Title=$Z\rightarrow ee$, dressed level, $30\,\text{GeV}\leq m_{\ell\ell} < 46\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d26 Title=$Z\rightarrow ee$, dressed level, $46\,\text{GeV}\leq m_{\ell\ell} < 66\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ XMin=0.9 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d27 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ XMin=0.9 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d28 Title=$Z\rightarrow ee$, dressed level, $116\,\text{GeV}\leq m_{\ell\ell} < 150\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ XMin=0.9 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d29 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $|y_{\ell\ell}| < 0.4$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] XMin=0.9 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d30 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $0.4 \leq |y_{\ell\ell}| < 0.8$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] XMin=0.9 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d31 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $0.8 \leq |y_{\ell\ell}| < 1.2$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] XMin=0.9 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d32 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $1.2 \leq |y_{\ell\ell}| < 1.6$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] XMin=0.9 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d33 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $1.6 \leq |y_{\ell\ell}| < 2.0$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] XMin=0.9 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d34 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $2.0 \leq |y_{\ell\ell}| < 2.4$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] XMin=0.9 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d35 Title=$Z\rightarrow ee$, dressed level, $12\,\text{GeV}\leq m_{\ell\ell} < 20\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] RatioPlotYMax=3.0 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d36 Title=$Z\rightarrow ee$, dressed level, $20\,\text{GeV}\leq m_{\ell\ell} < 30\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] RatioPlotYMax=3.0 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d37 Title=$Z\rightarrow ee$, dressed level, $30\,\text{GeV}\leq m_{\ell\ell} < 46\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] RatioPlotYMax=3.0 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d38 Title=$Z\rightarrow ee$, dressed level, $46\,\text{GeV}\leq m_{\ell\ell} < 66\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] XMin=0.9 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d39 Title=$Z\rightarrow ee$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] XMin=0.9 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d40 Title=$Z\rightarrow ee$, dressed level, $116\,\text{GeV}\leq m_{\ell\ell} < 150\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] XMin=0.9 # END PLOT # BEGIN PLOT /ATLAS_2015_I1408516/d41 Title=$Z\rightarrow ee$, dressed level XLabel=$m_{\ell\ell}$ [GeV] YLabel=$\sigma$ [pb] LogX=0 LegendYPos=0.95 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d0[2-9]..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d0[2-9]-x01-y04 YLabel=$1/\sigma$ $\text{d}\sigma/\text{d}\phi^\ast_\eta$ XLabel=$\phi^\ast_\eta$ XMin=0.001 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d1[0-6]..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d1[0-6]-x01-y04 YLabel=$1/\sigma$ $\text{d}\sigma/\text{d}\phi^\ast_\eta$ XLabel=$\phi^\ast_\eta$ XMin=0.001 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d02..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d02-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $46\,\text{GeV}\leq m_{\ell\ell} < 66\,\text{GeV}$, $|y_{\ell\ell}| < 0.8$ # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d03..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d02-x01-y04 +Title=$Z\rightarrow \mu\mu$, dressed level, $46\,\text{GeV}\leq m_{\ell\ell} < 66\,\text{GeV}$, $|y_{\ell\ell}| < 0.8$ +# END PLOT + + +# BEGIN PLOT /ATLAS_2015_I1408516/d03-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $46\,\text{GeV}\leq m_{\ell\ell} < 66\,\text{GeV}$, $0.8\leq |y_{\ell\ell}| < 1.6$ # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d04..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d04-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $46\,\text{GeV}\leq m_{\ell\ell} < 66\,\text{GeV}$, $1.6\leq |y_{\ell\ell}| < 2.4$ # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d05..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d05-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $|y_{\ell\ell}| < 0.4$ # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d06..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d06-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $0.4\leq |y_{\ell\ell}| < 0.8$ # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d07..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d07-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $0.8\leq |y_{\ell\ell}| < 1.2$ # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d08..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d08-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $1.2\leq |y_{\ell\ell}| < 1.6$ # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d09..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d09-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $1.6\leq |y_{\ell\ell}| < 2.0$ # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d10..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d10-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $2.0\leq |y_{\ell\ell}| < 2.4$ # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d11..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d11-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $116\,\text{GeV}\leq m_{\ell\ell} < 150\,\text{GeV}$, $|y_{\ell\ell}| < 0.8$ # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d12..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d12-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $116\,\text{GeV}\leq m_{\ell\ell} < 150\,\text{GeV}$, $0.8\leq |y_{\ell\ell}| < 1.6$ # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d13..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d13-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $116\,\text{GeV}\leq m_{\ell\ell} < 150\,\text{GeV}$, $1.6\leq |y_{\ell\ell}| < 2.4$ # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d14..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d14-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $46\,\text{GeV}\leq m_{\ell\ell} < 66\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d15..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d15-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d16..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d16-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $116\,\text{GeV}\leq m_{\ell\ell} < 150\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d17..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d17-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $|y_{\ell\ell}| < 0.4$ XMin=0.9 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d18..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d18-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $0.4 \leq |y_{\ell\ell}| < 0.8$ XMin=0.9 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d19..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d19-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $0.8 \leq |y_{\ell\ell}| < 1.2$ XMin=0.9 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d20..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d20-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $1.2 \leq |y_{\ell\ell}| < 1.6$ XMin=0.9 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d21..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d21-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $1.6 \leq |y_{\ell\ell}| < 2.0$ XMin=0.9 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d22..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d22-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $2.0 \leq |y_{\ell\ell}| < 2.4$ XMin=0.9 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d23..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d23-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $12\,\text{GeV}\leq m_{\ell\ell} < 20\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d24..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d24-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $20\,\text{GeV}\leq m_{\ell\ell} < 30\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d25..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d25-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $30\,\text{GeV}\leq m_{\ell\ell} < 46\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d26..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d26-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $46\,\text{GeV}\leq m_{\ell\ell} < 66\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ XMin=0.9 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d27..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d27-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ XMin=0.9 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d28..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d28-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $116\,\text{GeV}\leq m_{\ell\ell} < 150\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ XMin=0.9 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d29..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d29-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $|y_{\ell\ell}| < 0.4$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] XMin=0.9 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d30..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d30-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $0.4 \leq |y_{\ell\ell}| < 0.8$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] XMin=0.9 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d31..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d31-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $0.8 \leq |y_{\ell\ell}| < 1.2$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] XMin=0.9 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d32..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d32-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $1.2 \leq |y_{\ell\ell}| < 1.6$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] XMin=0.9 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d33..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d33-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $1.6 \leq |y_{\ell\ell}| < 2.0$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] XMin=0.9 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d34..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d34-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $2.0 \leq |y_{\ell\ell}| < 2.4$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] XMin=0.9 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d35..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d35-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $12\,\text{GeV}\leq m_{\ell\ell} < 20\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] RatioPlotYMax=3.0 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d36..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d36-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $20\,\text{GeV}\leq m_{\ell\ell} < 30\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] RatioPlotYMax=3.0 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d37..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d37-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $30\,\text{GeV}\leq m_{\ell\ell} < 46\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] RatioPlotYMax=3.0 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d38..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d38-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $46\,\text{GeV}\leq m_{\ell\ell} < 66\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] XMin=0.9 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d39..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d39-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $66\,\text{GeV}\leq m_{\ell\ell} < 116\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] XMin=0.9 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d40..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d40-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level, $116\,\text{GeV}\leq m_{\ell\ell} < 150\,\text{GeV}$, $|y_{\ell\ell}| < 2.4$ YLabel=$\text{d}\sigma/\text{d} p_\text{T}^{\ell\ell}$ [pb GeV$^{-1}$] XMin=0.9 # END PLOT -# BEGIN PLOT /ATLAS_2015_I1408516/d41..y04 +# BEGIN PLOT /ATLAS_2015_I1408516/d41-x01-y04 Title=$Z\rightarrow \mu\mu$, dressed level XLabel=$m_{\ell\ell}$ [GeV] YLabel=$\sigma$ [pb] LogX=0 LegendYPos=0.95 # END PLOT diff --git a/analyses/pluginATLAS/ATLAS_2016_I1448301.cc b/analyses/pluginATLAS/ATLAS_2016_I1448301.cc --- a/analyses/pluginATLAS/ATLAS_2016_I1448301.cc +++ b/analyses/pluginATLAS/ATLAS_2016_I1448301.cc @@ -1,317 +1,370 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/FastJets.hh" #include "Rivet/Projections/VetoedFinalState.hh" #include "Rivet/Projections/IdentifiedFinalState.hh" #include "Rivet/Projections/DressedLeptons.hh" #include "Rivet/Projections/PromptFinalState.hh" #include "Rivet/Projections/VisibleFinalState.hh" namespace Rivet { /// @brief Z/gamma cross section measurement at 8 TeV class ATLAS_2016_I1448301 : public Analysis { public: /// Constructor - ATLAS_2016_I1448301(const string name="ATLAS_2016_I1448301", size_t channel = 0, - const string ref_data="ATLAS_2016_I1448301") : Analysis(name) { - _mode = channel; // pick electron channel by default - setRefDataName(ref_data); - setNeedsCrossSection(true); - } + DEFAULT_RIVET_ANALYSIS_CTOR(ATLAS_2016_I1448301); /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { + // Get options from the new option system + // Default tries to fill everything + // NU fills only the MET plots + // EL fills only the Electron plots and combined plots assuming lepton univerality + // MU fills only the Muon plots and combined plots assuming lepton univerality + // LL fills electron and Muon plots and combined plots from correct average + _mode = 0; + if ( getOption("LMODE") == "NU" ) _mode = 1; + if ( getOption("LMODE") == "EL" ) _mode = 2; + if ( getOption("LMODE") == "MU" ) _mode = 3; + if ( getOption("LMODE") == "LL" ) _mode = 4; + // Prompt photons const Cut photoncut = Cuts::abspid == PID::PHOTON && Cuts::pT > 15*GeV && Cuts::abseta < 2.37; PromptFinalState photon_fs(photoncut); declare(photon_fs, "Photons"); // Prompt leptons - const PromptFinalState barelepton_fs = _mode ? Cuts::abspid == PID::MUON : Cuts::abspid == PID::ELECTRON; + const PromptFinalState bareelectron_fs = Cuts::abspid == PID::ELECTRON; + const PromptFinalState baremuon_fs = Cuts::abspid == PID::MUON; // Dressed leptons const IdentifiedFinalState allphoton_fs(PID::PHOTON); // photons used for lepton dressing const Cut leptoncut = Cuts::pT > 25*GeV && Cuts::abseta < 2.47; - const DressedLeptons dressedlepton_fs(allphoton_fs, barelepton_fs, 0.1, leptoncut, true); // use *all* photons for lepton dressing - declare(dressedlepton_fs, "Leptons"); + const DressedLeptons dressedelectron_fs(allphoton_fs, bareelectron_fs, 0.1, leptoncut, true); // use *all* photons for lepton dressing + const DressedLeptons dressedmuon_fs(allphoton_fs, baremuon_fs, 0.1, leptoncut, true); // use *all* photons for lepton dressing + + declare(dressedelectron_fs, "Electrons"); + declare(dressedmuon_fs, "Muons"); // MET (prompt neutrinos) VetoedFinalState ivfs; ivfs.addVetoOnThisFinalState(VisibleFinalState()); declare(PromptFinalState(ivfs), "MET"); // Jets VetoedFinalState jet_fs; jet_fs.vetoNeutrinos(); jet_fs.addVetoPairId(PID::MUON); const FastJets fastjets(jet_fs, FastJets::ANTIKT, 0.4); declare(fastjets, "Jets"); + // Histograms - // Histograms - if (_mode == 2) { - _h["vvg"] = bookHisto1D( 2, 1, 1); - _h["vvgg"] = bookHisto1D( 4, 1, 1); - _h["pT"] = bookHisto1D( 7, 1, 1); - _h["pT_0jet"] = bookHisto1D( 8, 1, 1); - } else { - const size_t ch = 1 + bool(_mode); - _h["llg"] = bookHisto1D( 1, 1, ch); - _h["llg_comb"] = bookHisto1D( 1, 1, 3); - _h["llgg"] = bookHisto1D( 3, 1, ch); - _h["llgg_comb"] = bookHisto1D( 3, 1, 3); - // - _h["pT"] = bookHisto1D( 5, 1, 1); - _h["pT_0jet"] = bookHisto1D( 6, 1, 1); - _h["M"] = bookHisto1D( 9, 1, 1); - _h["M_0jet"] = bookHisto1D(10, 1, 1); - _h["Njets"] = bookHisto1D(11, 1, 1); + // MET + if (_mode == 0 || _mode == 1){ + _h["vvg"] = bookHisto1D( 2, 1, 1); + _h["vvgg"] = bookHisto1D( 4, 1, 1); + _h["pT"] = bookHisto1D( 7, 1, 1); + _h["pT_0jet"] = bookHisto1D( 8, 1, 1); + } + + if (_mode == 0 || _mode == 2 || _mode == 4){ + // electron + _h["eeg"] = bookHisto1D( 1, 1, 1); + _h["eegg"] = bookHisto1D( 3, 1, 1); + } + + + // muon + if (_mode == 0 || _mode == 3 || _mode == 4){ + _h["mmg"] = bookHisto1D( 1, 1, 2); + _h["mmgg"] = bookHisto1D( 3, 1, 2); + } + + // combined + if (_mode != 1){ + + _h["llgg"] = bookHisto1D( 3, 1, 3); + _h["llg"] = bookHisto1D( 1, 1, 3); + _h["pT"] = bookHisto1D( 5, 1, 1); + _h["pT_0jet"] = bookHisto1D( 6, 1, 1); + _h["M"] = bookHisto1D( 9, 1, 1); + _h["M_0jet"] = bookHisto1D(10, 1, 1); + _h["Njets"] = bookHisto1D(11, 1, 1); } } /// Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); // Get objects - vector leptons = apply(event, "Leptons").dressedLeptons(); + vector electrons = apply(event, "Electrons").dressedLeptons(); + vector muons = apply(event, "Muons").dressedLeptons(); + const Particles& photons = apply(event, "Photons").particlesByPt(); const Jets jets = apply(event, "Jets").jetsByPt(); - if (_mode == 2) { - const FinalState& metfs = apply(event, "MET"); - Vector3 met_vec; - for (const Particle& p : metfs.particles()) met_vec += p.mom().perpVec(); + const FinalState& metfs = apply(event, "MET"); + Vector3 met_vec; + for (const Particle& p : metfs.particles()) met_vec += p.mom().perpVec(); + + if (met_vec.mod() >= 100*GeV && !photons.empty() && _mode < 2){ - if (met_vec.mod() < 100*GeV) vetoEvent; - if (photons.empty()) vetoEvent; + if (photons.size() > 1) { // nu nu y y + + bool yy_veto = false; + yy_veto |= photons[0].pT() < 22*GeV; + yy_veto |= photons[1].pT() < 22*GeV; + yy_veto |= met_vec.mod() < 110*GeV; + const double yyPhi = (photons[0].momentum() + photons[1].momentum()).phi(); + yy_veto |= fabs(yyPhi - met_vec.phi()) < 2.62 || fabs(yyPhi - met_vec.phi()) > 3.66; + yy_veto |= deltaR(photons[0], photons[1]) < 0.4; + + // Photon isolation calculated by jets, count jets + Jet ph0_jet, ph1_jet; + double min_dR_ph0_jet = 999., min_dR_ph1_jet = 999.; + size_t njets = 0; + for (const Jet& j : jets) { + if (j.pT() > 30*GeV && j.abseta() < 4.5) { + if (deltaR(j, photons[0]) > 0.3 && deltaR(j, photons[1]) > 0.3) ++njets; + } + if (deltaR(j, photons[0]) < min_dR_ph0_jet) { + min_dR_ph0_jet = deltaR(j, photons[0]); + ph0_jet = j; + } + if (deltaR(j, photons[1]) < min_dR_ph1_jet) { + min_dR_ph1_jet = deltaR(j, photons[1]); + ph1_jet = j; + } + } + double photon0iso = 0., photon1iso = 0.; + if (min_dR_ph0_jet < 0.4) photon0iso = ph0_jet.pT() - photons[0].pT(); + if (min_dR_ph1_jet < 0.4) photon1iso = ph1_jet.pT() - photons[1].pT(); + yy_veto |= photon0iso/photons[0].pT() > 0.5; + yy_veto |= photon1iso/photons[1].pT() > 0.5; + + if (!yy_veto) { + _h["vvgg"]->fill(0.5, weight); + if (!njets) _h["vvgg"]->fill(1.5, weight); + } + } // end of nu nu y y section + + + if ((photons[0].pT() >= 130*GeV) && + (fabs(fabs(deltaPhi(photons[0], met_vec)) - 3.14) >= 1.57)) { + + // Photon isolation calculated by jets, count jets + Jet ph_jet; + double min_dR_ph_jet = 999.; + size_t njets = 0; + for (const Jet& j : jets) { + if (j.pT() > 30*GeV && j.abseta() < 4.5) { + if (deltaR(j, photons[0]) > 0.3) ++njets; + } + if (deltaR(j, photons[0]) < min_dR_ph_jet) { + min_dR_ph_jet = deltaR(j, photons[0]); + ph_jet = j; + } + } + double photoniso = 0; + if (min_dR_ph_jet < 0.4) photoniso = ph_jet.pT() - photons[0].pT(); + if (photoniso/photons[0].pT() > 0.5) vetoEvent; + + const double pTgamma = photons[0].pT()/GeV; + _h["pT"]->fill(pTgamma, weight); + _h["vvg"]->fill(0.5, weight); + if (!njets) { + _h["vvg"]->fill(1.5, weight); + _h["pT_0jet"]->fill(pTgamma, weight); + } + + } + } // end of nu nu y (y) section - if (photons.size() > 1) { // nu nu y y + // Dilepton candidate + bool el = false; + if ( (_mode != 1) && + (( electrons.size() >= 2 && _mode != 3 ) || + ( muons.size() >= 2 && _mode != 2 ) )) { - bool yy_veto = false; - yy_veto |= photons[0].pT() < 22*GeV; - yy_veto |= photons[1].pT() < 22*GeV; - yy_veto |= met_vec.mod() < 110*GeV; - const double yyPhi = (photons[0].momentum() + photons[1].momentum()).phi(); - yy_veto |= fabs(yyPhi - met_vec.phi()) < 2.62 || fabs(yyPhi - met_vec.phi()) > 3.66; - yy_veto |= deltaR(photons[0], photons[1]) < 0.4; + vector lep_p, lep_m; - // Photon isolation calculated by jets, count jets - Jet ph0_jet, ph1_jet; - double min_dR_ph0_jet = 999., min_dR_ph1_jet = 999.; - size_t njets = 0; - for (const Jet& j : jets) { - if (j.pT() > 30*GeV && j.abseta() < 4.5) { - if (deltaR(j, photons[0]) > 0.3 && deltaR(j, photons[1]) > 0.3) ++njets; - } - if (deltaR(j, photons[0]) < min_dR_ph0_jet) { - min_dR_ph0_jet = deltaR(j, photons[0]); - ph0_jet = j; - } - if (deltaR(j, photons[1]) < min_dR_ph1_jet) { - min_dR_ph1_jet = deltaR(j, photons[1]); - ph1_jet = j; - } - } - double photon0iso = 0., photon1iso = 0.; - if (min_dR_ph0_jet < 0.4) photon0iso = ph0_jet.pT() - photons[0].pT(); - if (min_dR_ph1_jet < 0.4) photon1iso = ph1_jet.pT() - photons[1].pT(); - yy_veto |= photon0iso/photons[0].pT() > 0.5; - yy_veto |= photon1iso/photons[1].pT() > 0.5; + // Sort the dressed leptons by pt + if (electrons.size() >= 2) { + el = true; + std::sort(electrons.begin(), electrons.end(), cmpMomByPt); + for (const DressedLepton& lep : electrons) { + if (lep.charge() > 0.) lep_p.push_back(lep); + if (lep.charge() < 0.) lep_m.push_back(lep); + } + } else { + std::sort(muons.begin(), muons.end(), cmpMomByPt); + for (const DressedLepton& lep : muons) { + if (lep.charge() > 0.) lep_p.push_back(lep); + if (lep.charge() < 0.) lep_m.push_back(lep); + } + } + - if (!yy_veto) { - _h["vvgg"]->fill(0.5, weight); - if (!njets) _h["vvgg"]->fill(1.5, weight); - } - } // end of nu nu y y section + if (!lep_p.empty() && !lep_m.empty() && + (lep_p[0].abspid() == lep_m[0].abspid()) && + ((lep_p[0].momentum() + lep_m[0].momentum()).mass() >= 40*GeV)){ + // Photon lepton overlap removal + if (photons.empty()) vetoEvent; + + if (photons.size() > 1) { + + bool veto = false; + veto |= deltaR(photons[0], lep_p[0]) < 0.4; + veto |= deltaR(photons[0], lep_m[0]) < 0.4; + veto |= deltaR(photons[1], lep_p[0]) < 0.4; + veto |= deltaR(photons[1], lep_m[0]) < 0.4; + veto |= deltaR(photons[0], photons[1]) < 0.4; + + Jet ph0_jet, ph1_jet; + double min_dR_ph0_jet = 999., min_dR_ph1_jet=999.; + int njets = 0; + for (const Jet& j : jets){ + if (j.pT() > 30*GeV && j.abseta() < 4.5) { + if (deltaR(j, lep_p[0]) > 0.3 && deltaR(j, lep_m[0]) > 0.3) { + if (deltaR(j, photons[0]) > 0.3 && deltaR(j, photons[1]) > 0.3 ) ++njets; + } + } + if (deltaR(j, photons[0]) < min_dR_ph0_jet) { + min_dR_ph0_jet = deltaR(j, photons[0]); + ph0_jet = j; + } + if (deltaR(j, photons[1]) < min_dR_ph1_jet) { + min_dR_ph1_jet = deltaR(j, photons[1]); + ph1_jet = j; + } + } + double photon0iso = 0, photon1iso = 0; + if (min_dR_ph0_jet < 0.4) photon0iso = ph0_jet.pT() - photons[0].pT(); + if (min_dR_ph1_jet < 0.4) photon1iso = ph1_jet.pT() - photons[1].pT(); + veto |= photon0iso/photons[0].pT() > 0.5; + veto |= photon1iso/photons[1].pT() > 0.5; + + // Fill plots + // ee and mm need doing. + if (!veto) { + _h["llgg"]->fill(0.5, weight); + if (el) { + _h["eegg"]->fill(0.5, weight); + } else { + _h["mmgg"]->fill(0.5, weight); + } - if (photons[0].pT() < 130*GeV) vetoEvent; - if (fabs(fabs(deltaPhi(photons[0], met_vec)) - 3.14) > 1.57) vetoEvent; + if (!njets) { + _h["llgg"]->fill(1.5, weight); + if (el) { + _h["eegg"]->fill(1.5, weight); + } else { + _h["mmgg"]->fill(1.5, weight); + } + } + } + } + + if (deltaR(photons[0], lep_p[0]) < 0.7) vetoEvent; + if (deltaR(photons[0], lep_m[0]) < 0.7) vetoEvent; + + // Photon isolation calculated by jets, count jets + Jet ph_jet; + double min_dR_ph_jet = 999.; + size_t njets = 0; + for (const Jet& j : jets) { + if (j.pT() > 30*GeV && j.abseta() < 4.5) { + if (deltaR(j, lep_p[0]) > 0.3 && deltaR(j, lep_m[0]) > 0.3 && deltaR(j, photons[0]) > 0.3) ++njets; + } + if (deltaR(j, photons[0]) < min_dR_ph_jet) { + min_dR_ph_jet = deltaR(j, photons[0]); + ph_jet = j; + } + } + + double photoniso = 0; + if (min_dR_ph_jet < 0.4) photoniso = ph_jet.pT() - photons[0].pT(); + if (photoniso/photons[0].pT() > 0.5) vetoEvent; + + + // Fill plots + const double pTgamma = photons[0].pT()/GeV; + const double mllgamma = (lep_p[0].momentum() + lep_m[0].momentum() + photons[0].momentum()).mass()/GeV; + + _h["pT"]->fill(pTgamma, weight); + _h["M"]->fill(mllgamma, weight); + _h["Njets"]->fill(njets < 3? njets : 3, weight); + + _h["llg"]->fill(0.5, weight); + if (el) { + _h["eeg"]->fill(0.5, weight); + } else { + _h["eeg"]->fill(0.5, weight); + } - // Photon isolation calculated by jets, count jets - Jet ph_jet; - double min_dR_ph_jet = 999.; - size_t njets = 0; - for (const Jet& j : jets) { - if (j.pT() > 30*GeV && j.abseta() < 4.5) { - if (deltaR(j, photons[0]) > 0.3) ++njets; - } - if (deltaR(j, photons[0]) < min_dR_ph_jet) { - min_dR_ph_jet = deltaR(j, photons[0]); - ph_jet = j; - } - } - double photoniso = 0; - if (min_dR_ph_jet < 0.4) photoniso = ph_jet.pT() - photons[0].pT(); - if (photoniso/photons[0].pT() > 0.5) vetoEvent; - - const double pTgamma = photons[0].pT()/GeV; - _h["pT"]->fill(pTgamma, weight); - _h["vvg"]->fill(0.5, weight); - if (!njets) { - _h["vvg"]->fill(1.5, weight); - _h["pT_0jet"]->fill(pTgamma, weight); - } - } // end of nu nu y (y) section - - - else { - - // Dilepton candidate - if (leptons.size() < 2) vetoEvent; - - // Sort the dressed leptons by pt - std::sort(leptons.begin(), leptons.end(), cmpMomByPt); - - vector lep_p, lep_m; - for (const DressedLepton& lep : leptons) { - if (lep.charge() > 0.) lep_p.push_back(lep); - if (lep.charge() < 0.) lep_m.push_back(lep); - } - - if (lep_p.empty() || lep_m.empty()) vetoEvent; - if (lep_p[0].abspid() != lep_m[0].abspid()) vetoEvent; - if ((lep_p[0].momentum() + lep_m[0].momentum()).mass() < 40*GeV) vetoEvent; - - // Photon lepton overlap removal - if (photons.empty()) vetoEvent; - - if (photons.size() > 1) { - bool veto = false; - veto |= deltaR(photons[0], lep_p[0]) < 0.4; - veto |= deltaR(photons[0], lep_m[0]) < 0.4; - veto |= deltaR(photons[1], lep_p[0]) < 0.4; - veto |= deltaR(photons[1], lep_m[0]) < 0.4; - veto |= deltaR(photons[0], photons[1]) < 0.4; - - Jet ph0_jet, ph1_jet; - double min_dR_ph0_jet = 999., min_dR_ph1_jet=999.; - int njets = 0; - for (const Jet& j : jets){ - if (j.pT() > 30*GeV && j.abseta() < 4.5) { - if (deltaR(j, lep_p[0]) > 0.3 && deltaR(j, lep_m[0]) > 0.3) { - if (deltaR(j, photons[0]) > 0.3 && deltaR(j, photons[1]) > 0.3 ) ++njets; - } - } - if (deltaR(j, photons[0]) < min_dR_ph0_jet) { - min_dR_ph0_jet = deltaR(j, photons[0]); - ph0_jet = j; - } - if (deltaR(j, photons[1]) < min_dR_ph1_jet) { - min_dR_ph1_jet = deltaR(j, photons[1]); - ph1_jet = j; - } - } - double photon0iso = 0, photon1iso = 0; - if (min_dR_ph0_jet < 0.4) photon0iso = ph0_jet.pT() - photons[0].pT(); - if (min_dR_ph1_jet < 0.4) photon1iso = ph1_jet.pT() - photons[1].pT(); - veto |= photon0iso/photons[0].pT() > 0.5; - veto |= photon1iso/photons[1].pT() > 0.5; - - // Fill plots - if (!veto) { - _h["llgg"]->fill(0.5, weight); - _h["llgg_comb"]->fill(0.5, weight); - if (!njets) { - _h["llgg"]->fill(1.5, weight); - _h["llgg_comb"]->fill(1.5, weight); - } - } - } - - if (deltaR(photons[0], lep_p[0]) < 0.7) vetoEvent; - if (deltaR(photons[0], lep_m[0]) < 0.7) vetoEvent; - - // Photon isolation calculated by jets, count jets - Jet ph_jet; - double min_dR_ph_jet = 999.; - size_t njets = 0; - for (const Jet& j : jets) { - if (j.pT() > 30*GeV && j.abseta() < 4.5) { - if (deltaR(j, lep_p[0]) > 0.3 && deltaR(j, lep_m[0]) > 0.3 && deltaR(j, photons[0]) > 0.3) ++njets; - } - if (deltaR(j, photons[0]) < min_dR_ph_jet) { - min_dR_ph_jet = deltaR(j, photons[0]); - ph_jet = j; - } - } - double photoniso = 0; - if (min_dR_ph_jet < 0.4) photoniso = ph_jet.pT() - photons[0].pT(); - if (photoniso/photons[0].pT() > 0.5) vetoEvent; - - - // Fill plots - const double pTgamma = photons[0].pT()/GeV; - const double mllgamma = (lep_p[0].momentum() + lep_m[0].momentum() + photons[0].momentum()).mass()/GeV; - - _h["pT"]->fill(pTgamma, weight); - _h["M"]->fill(mllgamma, weight); - _h["Njets"]->fill(njets < 3? njets : 3, weight); - - _h["llg"]->fill(0.5, weight); - _h["llg_comb"]->fill(0.5, weight); - - if (!njets) { - _h["pT_0jet"]->fill(pTgamma, weight); - _h["M_0jet"]->fill(mllgamma, weight); - _h["llg"]->fill(1.5, weight); - _h["llg_comb"]->fill(1.5, weight); - } - } // end of _mode check + if (!njets) { + _h["pT_0jet"]->fill(pTgamma, weight); + _h["M_0jet"]->fill(mllgamma, weight); + _h["llg"]->fill(1.5, weight); + if (el) { + _h["eeg"]->fill(1.5, weight); + } else { + _h["mmg"]->fill(1.5, weight); + } + } + } + } } // end of analysis /// Normalise histograms etc., after the run void finalize() { const double sf = crossSection()/femtobarn/sumOfWeights(); for (const auto& kv : _h) scale(kv.second, sf); + // if we are running both e and mu, the combined lepton histos + // need to be divided by two to get the average + if (_mode == 0 || _mode == 4){ + scale(_h["llgg"], 0.5); + scale(_h["llg"], 0.5); + scale(_h["pT"], 0.5); + scale(_h["pT_0jet"], 0.5); + scale(_h["M"], 0.5); + scale(_h["M_0jet"], 0.5); + scale(_h["Njets"], 0.5); + } } //@} protected: // Data members like post-cuts event weight counters go here size_t _mode; private: /// Histograms map _h; }; - struct ATLAS_2016_I1448301_EL : public ATLAS_2016_I1448301 { - ATLAS_2016_I1448301_EL() : ATLAS_2016_I1448301("ATLAS_2016_I1448301_EL", 0) { } - }; - - struct ATLAS_2016_I1448301_MU : public ATLAS_2016_I1448301 { - ATLAS_2016_I1448301_MU() : ATLAS_2016_I1448301("ATLAS_2016_I1448301_MU", 1) { } - }; - - struct ATLAS_2016_I1448301_NU : public ATLAS_2016_I1448301 { - ATLAS_2016_I1448301_NU() : ATLAS_2016_I1448301("ATLAS_2016_I1448301_NU", 2) { } - }; - - // The hook for the plugin system DECLARE_RIVET_PLUGIN(ATLAS_2016_I1448301); - DECLARE_RIVET_PLUGIN(ATLAS_2016_I1448301_EL); - DECLARE_RIVET_PLUGIN(ATLAS_2016_I1448301_MU); - DECLARE_RIVET_PLUGIN(ATLAS_2016_I1448301_NU); } diff --git a/analyses/pluginATLAS/ATLAS_2016_I1448301.info b/analyses/pluginATLAS/ATLAS_2016_I1448301.info --- a/analyses/pluginATLAS/ATLAS_2016_I1448301.info +++ b/analyses/pluginATLAS/ATLAS_2016_I1448301.info @@ -1,63 +1,69 @@ Name: ATLAS_2016_I1448301 Year: 2016 Summary: $Z \gamma (\gamma)$ cross sections at 8 TeV Experiment: ATLAS Collider: LHC InspireID: 1448301 Status: VALIDATED Authors: - Hulin Wang - Evgeny Soldatov - Christian Gutschow References: - Phys.Rev. D93 (2016) no.11, 112002 - doi:10.1103/PhysRevD.93.112002 - arXiv:1604.05232 [hep-ex] Keywords: - multiboson - 2boson - diboson - 3boson - triboson - 2photon - diphoton - photon - zboson RunInfo: p + p -> e+ e- gamma (gamma) at 8 TeV Luminosity_fb: 20.3 Beams: [p+, p+] Energies: [8000] PtCuts: [25,25,15] +NeedCrossSection: True +Options: + - LMODE=EL,MU,NU,LL Description: 'The production of $Z$ bosons with one or two isolated high-energy photons is studied using pp collisions at $\sqrt{s}=8$ TeV. The analyses use a data sample with an integrated luminosity of 20.3 fb${}^{-1}$ collected by the ATLAS detector during the 2012 LHC data taking. The $Z\gamma$ and $Z\gamma\gamma$ production cross sections are measured with leptonic ($e^+e^-$, $\mu^+\mu^-$, $\nu\bar{\nu}$) decays of the Z boson, in extended fiducial regions defined in terms of the lepton and photon acceptance. They are then compared to cross-section predictions from the Standard Model, where the sources of the photons are radiation off initial-state quarks and radiative Z-boson decay to charged leptons, and from fragmentation of final-state quarks and gluons into photons. The yields of events with photon transverse energy $E_\text{T}>250$ GeV from $\ell^+\ell^-\gamma$ events and with $E_\text{T}>400$ GeV from $\nu\bar{\nu}\gamma$ events are used to search for anomalous triple gauge-boson couplings $ZZ\gamma$ and $Z\gamma\gamma$. The yields of events with diphoton invariant mass $m_{\gamma\gamma}>200$ GeV from $\ell^+\ell^-\gamma\gamma$ events and with $m_{\gamma\gamma}>300$ GeV from $\nu\bar{\nu}\gamma\gamma$ events are used to search for anomalous quartic gauge-boson couplings $ZZ\gamma\gamma$ and $Z\gamma\gamma\gamma$. No deviations from Standard Model predictions are observed and limits are placed on parameters used to describe anomalous triple and quartic gauge-boson couplings. - The lepton channel can be specified by using the relevant plugins (_EL, _MU, _NU). The default plugin uses the electron channel.' + The lepton channel can be specified by using the relevant LMODE (EL, MU, NU, LL). The default plugin will fill all of them + with any events passing the cuts. NU will do only the MET channels, EL & MU will do only the electron or muon and will + populate the combined plots assuming charged lepton universality. LL with do on the electron and muon but will populate + the combined plots with the average of the two.' BibKey: Aad:2016sau BibTeX: '@article{Aad:2016sau, author = "Aad, Georges and others", title = "{Measurements of $Z\gamma$ and $Z\gamma\gamma$ production in $pp$ collisions at $\sqrt{s}=$ 8 TeV with the ATLAS detector}", collaboration = "ATLAS", journal = "Phys. Rev.", volume = "D93", year = "2016", number = "11", pages = "112002", doi = "10.1103/PhysRevD.93.112002", eprint = "1604.05232", archivePrefix = "arXiv", primaryClass = "hep-ex", reportNumber = "CERN-EP-2016-049", SLACcitation = "%%CITATION = ARXIV:1604.05232;%%" }' diff --git a/analyses/pluginATLAS/ATLAS_2016_I1448301.plot b/analyses/pluginATLAS/ATLAS_2016_I1448301.plot --- a/analyses/pluginATLAS/ATLAS_2016_I1448301.plot +++ b/analyses/pluginATLAS/ATLAS_2016_I1448301.plot @@ -1,67 +1,98 @@ # BEGIN PLOT /ATLAS_2016_I1448301/* LogY=1 LogX=1 XTwosidedTicks=1 YTwosidedTicks=1 LegendAlign=r LegendXPos=0.95 # END PLOT # BEGIN PLOT /ATLAS_2016_I1448301/d0[1-3] LogY=0 LogX=0 YLabel=Fiducial Cross section [fb] XLabel=$N_\text{jets}$ XCustomMajorTicks=1.0 $\geq0$ 2.0 $=0$ LegendYPos=0.3 # END PLOT # BEGIN PLOT /ATLAS_2016_I1448301/d01-x01-y01 Title=$Z(\to ee)+\gamma$ data # END PLOT +# BEGIN PLOT /ATLAS_2016_I1448301/d01-x01-y02 +Title=$Z(\to \mu\mu)+\gamma$ data +# END PLOT + # BEGIN PLOT /ATLAS_2016_I1448301/d01-x01-y03 -Title=$Z(\to \ell\ell)+\gamma$ data +Title=$Z(\to \ell\ell)+\gamma$ # END PLOT # BEGIN PLOT /ATLAS_2016_I1448301/d03-x01-y01 Title=$Z(\to ee)+\gamma +\gamma$ data # END PLOT +BEGIN PLOT /ATLAS_2016_I1448301/d03-x01-y02 +Title=$Z(\to \mu\mu)+\gamma +\gamma$ data +# END PLOT + # BEGIN PLOT /ATLAS_2016_I1448301/d03-x01-y03 -Title=$Z(\to \ell\ell)+\gamma +\gamma$ data +Title=$Z(\to \ell\ell)+\gamma +\gamma$ # END PLOT # BEGIN PLOT /ATLAS_2016_I1448301/d05-x01-y01 -Title=$N_\text{jets} \ge 0$ +Title=$N_\text{jets} \ge 0$ XLabel=$E_\text{T}^\gamma$ [GeV] YLabel=$\text{d}\sigma / \text{d} E_\text{T}^\gamma$ [fb/GeV] # END PLOT # BEGIN PLOT /ATLAS_2016_I1448301/d06-x01-y01 -Title=$N_\text{jets} = 0$ +Title=$N_\text{jets} = 0$ XLabel=$E_\text{T}^\gamma$ [GeV] YLabel=$\text{d}\sigma / \text{d} E_\text{T}^\gamma$ [fb/GeV] # END PLOT # BEGIN PLOT /ATLAS_2016_I1448301/d09-x01-y01 -Title=$N_\text{jets} \ge 0$ +Title=$N_\text{jets} \ge 0$ XLabel=$m_{\ell\ell\gamma}$ [GeV] YLabel=$\text{d}\sigma / \text{d} m_{\ell\ell\gamma}$ [fb/GeV] # END PLOT # BEGIN PLOT /ATLAS_2016_I1448301/d10-x01-y01 -Title=$N_\text{jets} = 0$ +Title=$N_\text{jets} = 0$ XLabel=$m_{\ell\ell\gamma}$ [GeV] YLabel=$\text{d}\sigma / \text{d} m_{\ell\ell\gamma}$ [fb/GeV] # END PLOT # BEGIN PLOT /ATLAS_2016_I1448301/d11-x01-y01 LogX=0 -Title=extended phase space +Title=extended phase space XLabel=$N_\text{jets}$ YLabel=$\text{d}\sigma / \text{d} N_\text{jets}$ [fb] XCustomMajorTicks=1.0 $=0$ 2.0 $=1$ 3.0 $=2$ 4.0 $\geq3$ # END PLOT +# BEGIN PLOT /ATLAS_2016_I1448301/d02 +Title=$Z(\to \nu\nu)+\gamma$ data +XCustomMajorTicks=1.0 $\geq0$ 2.0 $=0$ +# END PLOT +# BEGIN PLOT /ATLAS_2016_I1448301/d04 +Title=$Z(\to \nu\nu)+\gamma +\gamma$ data +XCustomMajorTicks=1.0 $\geq0$ 2.0 $=0$ +# END PLOT + +# BEGIN PLOT /ATLAS_2016_I1448301/d07-x01-y01 +LogY=1 +Title=$N_\text{jets} \ge 0$ +XLabel=$E_\text{T}^\gamma$ [GeV] +YLabel=$\text{d}\sigma / \text{d} E_\text{T}^\gamma$ [fb/GeV] +# END PLOT + +# BEGIN PLOT /ATLAS_2016_I1448301/d08-x01-y01 +LogY=1 +Title=$N_\text{jets} = 0$ +XLabel=$E_\text{T}^\gamma$ [GeV] +YLabel=$\text{d}\sigma / \text{d} E_\text{T}^\gamma$ [fb/GeV] +# END PLOT + diff --git a/analyses/pluginATLAS/ATLAS_2016_I1448301_EL.info b/analyses/pluginATLAS/ATLAS_2016_I1448301_EL.info deleted file mode 100644 --- a/analyses/pluginATLAS/ATLAS_2016_I1448301_EL.info +++ /dev/null @@ -1,63 +0,0 @@ -Name: ATLAS_2016_I1448301_EL -Year: 2016 -Summary: $Z \gamma (\gamma)$ cross-sections at 8 TeV -Experiment: ATLAS -Collider: LHC -InspireID: 1448301 -Status: VALIDATED -Authors: - - Hulin Wang - - Evgeny Soldatov - - Christian Gutschow -References: - - Phys.Rev. D93 (2016) no.11, 112002 - - doi:10.1103/PhysRevD.93.112002 - - arXiv:1604.05232 [hep-ex] -Keywords: - - multiboson - - 2boson - - 3boson - - diboson - - triboson - - 2photon - - diphoton - - photon - - zboson -RunInfo: p + p -> e+ e- gamma (gamma) at 8 TeV -Luminosity_fb: 20.3 -Beams: [p+, p+] -Energies: [8000] -PtCuts: [25,25,15] -Description: - 'The production of $Z$ bosons with one or two isolated high-energy photons is studied using pp collisions at $\sqrt{s}=8$ TeV. - The analyses use a data sample with an integrated luminosity of 20.3 fb${}^{-1}$ collected by the ATLAS detector during the - 2012 LHC data taking. The $Z\gamma$ and $Z\gamma\gamma$ production cross sections are measured with leptonic ($e^+e^-$, - $\mu^+\mu^-$, $\nu\bar{\nu}$) decays of the Z boson, in extended fiducial regions defined in terms of the lepton and photon - acceptance. They are then compared to cross-section predictions from the Standard Model, where the sources of the photons are - radiation off initial-state quarks and radiative Z-boson decay to charged leptons, and from fragmentation of final-state quarks - and gluons into photons. The yields of events with photon transverse energy $E_\text{T}>250$ GeV from $\ell^+\ell^-\gamma$ events - and with $E_\text{T}>400$ GeV from $\nu\bar{\nu}\gamma$ events are used to search for anomalous triple gauge-boson couplings - $ZZ\gamma$ and $Z\gamma\gamma$. The yields of events with diphoton invariant mass $m_{\gamma\gamma}>200$ GeV from - $\ell^+\ell^-\gamma\gamma$ events and with $m_{\gamma\gamma}>300$ GeV from $\nu\bar{\nu}\gamma\gamma$ events are used to search - for anomalous quartic gauge-boson couplings $ZZ\gamma\gamma$ and $Z\gamma\gamma\gamma$. No deviations from Standard Model predictions - are observed and limits are placed on parameters used to describe anomalous triple and quartic gauge-boson couplings. - The lepton channel can be specified by using the relevant plugins (_EL, _MU, _NU). The default plugin uses the electron channel.' -BibKey: Aad:2016sau -BibTeX: '@article{Aad:2016sau, - author = "Aad, Georges and others", - title = "{Measurements of $Z\gamma$ and $Z\gamma\gamma$ production - in $pp$ collisions at $\sqrt{s}=$ 8 TeV with the ATLAS - detector}", - collaboration = "ATLAS", - journal = "Phys. Rev.", - volume = "D93", - year = "2016", - number = "11", - pages = "112002", - doi = "10.1103/PhysRevD.93.112002", - eprint = "1604.05232", - archivePrefix = "arXiv", - primaryClass = "hep-ex", - reportNumber = "CERN-EP-2016-049", - SLACcitation = "%%CITATION = ARXIV:1604.05232;%%" -}' diff --git a/analyses/pluginATLAS/ATLAS_2016_I1448301_EL.plot b/analyses/pluginATLAS/ATLAS_2016_I1448301_EL.plot deleted file mode 100644 --- a/analyses/pluginATLAS/ATLAS_2016_I1448301_EL.plot +++ /dev/null @@ -1,67 +0,0 @@ -# BEGIN PLOT /ATLAS_2016_I1448301_EL/* -LogY=1 -LogX=1 -XTwosidedTicks=1 -YTwosidedTicks=1 -LegendAlign=r -LegendXPos=0.95 -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_EL/d0[1-3] -LogY=0 -LogX=0 -YLabel=Fiducial Cross section [fb] -XLabel=$N_\text{jets}$ -XCustomMajorTicks=1.0 $\geq0$ 2.0 $=0$ -LegendYPos=0.3 -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_EL/d01-x01-y01 -Title=$Z(\to ee)+\gamma$ data -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_EL/d01-x01-y03 -Title=$Z(\to \ell\ell)+\gamma$ data -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_EL/d03-x01-y01 -Title=$Z(\to ee)+\gamma +\gamma$ data -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_EL/d03-x01-y03 -Title=$Z(\to \ell\ell)+\gamma +\gamma$ data -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_EL/d05-x01-y01 -Title=$N_\text{jets} \ge 0$ -XLabel=$E_\text{T}^\gamma$ [GeV] -YLabel=$\text{d}\sigma / \text{d} E_\text{T}^\gamma$ [fb/GeV] -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_EL/d06-x01-y01 -Title=$N_\text{jets} = 0$ -XLabel=$E_\text{T}^\gamma$ [GeV] -YLabel=$\text{d}\sigma / \text{d} E_\text{T}^\gamma$ [fb/GeV] -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_EL/d09-x01-y01 -Title=$N_\text{jets} \ge 0$ -XLabel=$m_{\ell\ell\gamma}$ [GeV] -YLabel=$\text{d}\sigma / \text{d} m_{\ell\ell\gamma}$ [fb/GeV] -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_EL/d10-x01-y01 -Title=$N_\text{jets} = 0$ -XLabel=$m_{\ell\ell\gamma}$ [GeV] -YLabel=$\text{d}\sigma / \text{d} m_{\ell\ell\gamma}$ [fb/GeV] -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_EL/d11-x01-y01 -LogX=0 -Title=extended phase space -XLabel=$N_\text{jets}$ -YLabel=$\text{d}\sigma / \text{d} N_\text{jets}$ [fb] -XCustomMajorTicks=1.0 $=0$ 2.0 $=1$ 3.0 $=2$ 4.0 $\geq3$ -# END PLOT - - diff --git a/analyses/pluginATLAS/ATLAS_2016_I1448301_MU.info b/analyses/pluginATLAS/ATLAS_2016_I1448301_MU.info deleted file mode 100644 --- a/analyses/pluginATLAS/ATLAS_2016_I1448301_MU.info +++ /dev/null @@ -1,62 +0,0 @@ -Name: ATLAS_2016_I1448301_MU -Year: 2016 -Summary: $Z \gamma (\gamma)$ cross sections at 8 TeV -Experiment: ATLAS -Collider: LHC -InspireID: 1448301 -Status: VALIDATED -Authors: - - Hulin Wang - - Evgeny Soldatov - - Christian Gutschow -References: - - Phys.Rev. D93 (2016) no.11, 112002 - - doi:10.1103/PhysRevD.93.112002 - - arXiv:1604.05232 [hep-ex] -Keywords: - - multiboson - - 3boson - - triboson - - 2boson - - diphoton - - 2photon - - photon - - zboson -RunInfo: p + p -> mu+ mu- gamma (gamma) at 8 TeV -Luminosity_fb: 20.3 -Beams: [p+, p+] -Energies: [8000] -PtCuts: [25,25,15] -Description: - 'The production of $Z$ bosons with one or two isolated high-energy photons is studied using pp collisions at $\sqrt{s}=8$ TeV. - The analyses use a data sample with an integrated luminosity of 20.3 fb${}^{-1}$ collected by the ATLAS detector during the - 2012 LHC data taking. The $Z\gamma$ and $Z\gamma\gamma$ production cross sections are measured with leptonic ($e^+e^-$, - $\mu^+\mu^-$, $\nu\bar{\nu}$) decays of the Z boson, in extended fiducial regions defined in terms of the lepton and photon - acceptance. They are then compared to cross-section predictions from the Standard Model, where the sources of the photons are - radiation off initial-state quarks and radiative Z-boson decay to charged leptons, and from fragmentation of final-state quarks - and gluons into photons. The yields of events with photon transverse energy $E_\text{T}>250$ GeV from $\ell^+\ell^-\gamma$ events - and with $E_\text{T}>400$ GeV from $\nu\bar{\nu}\gamma$ events are used to search for anomalous triple gauge-boson couplings - $ZZ\gamma$ and $Z\gamma\gamma$. The yields of events with diphoton invariant mass $m_{\gamma\gamma}>200$ GeV from - $\ell^+\ell^-\gamma\gamma$ events and with $m_{\gamma\gamma}>300$ GeV from $\nu\bar{\nu}\gamma\gamma$ events are used to search - for anomalous quartic gauge-boson couplings $ZZ\gamma\gamma$ and $Z\gamma\gamma\gamma$. No deviations from Standard Model predictions - are observed and limits are placed on parameters used to describe anomalous triple and quartic gauge-boson couplings. - The lepton channel can be specified by using the relevant plugins (_EL, _MU, _NU). The default plugin uses the electron channel.' -BibKey: Aad:2016sau -BibTeX: '@article{Aad:2016sau, - author = "Aad, Georges and others", - title = "{Measurements of $Z\gamma$ and $Z\gamma\gamma$ production - in $pp$ collisions at $\sqrt{s}=$ 8 TeV with the ATLAS - detector}", - collaboration = "ATLAS", - journal = "Phys. Rev.", - volume = "D93", - year = "2016", - number = "11", - pages = "112002", - doi = "10.1103/PhysRevD.93.112002", - eprint = "1604.05232", - archivePrefix = "arXiv", - primaryClass = "hep-ex", - reportNumber = "CERN-EP-2016-049", - SLACcitation = "%%CITATION = ARXIV:1604.05232;%%" -}' diff --git a/analyses/pluginATLAS/ATLAS_2016_I1448301_MU.plot b/analyses/pluginATLAS/ATLAS_2016_I1448301_MU.plot deleted file mode 100644 --- a/analyses/pluginATLAS/ATLAS_2016_I1448301_MU.plot +++ /dev/null @@ -1,67 +0,0 @@ -# BEGIN PLOT /ATLAS_2016_I1448301_MU/* -LogY=1 -LogX=1 -XTwosidedTicks=1 -YTwosidedTicks=1 -LegendAlign=r -LegendXPos=0.95 -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_MU/d0[1-3] -LogY=0 -LogX=0 -YLabel=Fiducial Cross section [fb] -XLabel=$N_\text{jets}$ -XCustomMajorTicks=1.0 $\geq0$ 2.0 $=0$ -LegendYPos=0.3 -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_MU/d01-x01-y02 -Title=$Z(\to \mu\mu)+\gamma$ data -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_MU/d01-x01-y03 -Title=$Z(\to \ell\ell)+\gamma$ data -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_MU/d03-x01-y01 -Title=$Z(\to \mu\mu)+\gamma +\gamma$ data -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_MU/d03-x01-y03 -Title=$Z(\to \ell\ell)+\gamma +\gamma$ data -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_MU/d05-x01-y01 -Title=$N_\text{jets} \ge 0$ -XLabel=$E_\text{T}^\gamma$ [GeV] -YLabel=$\text{d}\sigma / \text{d} E_\text{T}^\gamma$ [fb/GeV] -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_MU/d06-x01-y01 -Title=$N_\text{jets} = 0$ -XLabel=$E_\text{T}^\gamma$ [GeV] -YLabel=$\text{d}\sigma / \text{d} E_\text{T}^\gamma$ [fb/GeV] -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_MU/d09-x01-y01 -Title=$N_\text{jets} \ge 0$ -XLabel=$m_{\ell\ell\gamma}$ [GeV] -YLabel=$\text{d}\sigma / \text{d} m_{\ell\ell\gamma}$ [fb/GeV] -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_MU/d10-x01-y01 -Title=$N_\text{jets} = 0$ -XLabel=$m_{\ell\ell\gamma}$ [GeV] -YLabel=$\text{d}\sigma / \text{d} m_{\ell\ell\gamma}$ [fb/GeV] -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_MU/d11-x01-y01 -LogX=0 -Title=extended phase space -XLabel=$N_\text{jets}$ -YLabel=$\text{d}\sigma / \text{d} N_\text{jets}$ [fb] -XCustomMajorTicks=1.0 $=0$ 2.0 $=1$ 3.0 $=2$ 4.0 $\geq3$ -# END PLOT - - diff --git a/analyses/pluginATLAS/ATLAS_2016_I1448301_NU.info b/analyses/pluginATLAS/ATLAS_2016_I1448301_NU.info deleted file mode 100644 --- a/analyses/pluginATLAS/ATLAS_2016_I1448301_NU.info +++ /dev/null @@ -1,63 +0,0 @@ -Name: ATLAS_2016_I1448301_NU -Year: 2016 -Summary: $Z \gamma (\gamma)$ cross sections at 8 TeV -Experiment: ATLAS -Collider: LHC -InspireID: 1448301 -Status: VALIDATED -Authors: - - Hulin Wang - - Evgeny Soldatov - - Christian Gutschow -References: - - Phys.Rev. D93 (2016) no.11, 112002 - - doi:10.1103/PhysRevD.93.112002 - - arXiv:1604.05232 [hep-ex] -Keywords: - - multiboson - - 2boson - - diboson - - 3boson - - triboson - - 2photon - - diphoton - - photon - - zboson -RunInfo: p + p -> MET gamma (gamma) at 8 TeV -Luminosity_fb: 20.3 -Beams: [p+, p+] -Energies: [8000] -PtCuts: [25,25,15] -Description: - 'The production of $Z$ bosons with one or two isolated high-energy photons is studied using pp collisions at $\sqrt{s}=8$ TeV. - The analyses use a data sample with an integrated luminosity of 20.3 fb${}^{-1}$ collected by the ATLAS detector during the - 2012 LHC data taking. The $Z\gamma$ and $Z\gamma\gamma$ production cross sections are measured with leptonic ($e^+e^-$, - $\mu^+\mu^-$, $\nu\bar{\nu}$) decays of the Z boson, in extended fiducial regions defined in terms of the lepton and photon - acceptance. They are then compared to cross-section predictions from the Standard Model, where the sources of the photons are - radiation off initial-state quarks and radiative Z-boson decay to charged leptons, and from fragmentation of final-state quarks - and gluons into photons. The yields of events with photon transverse energy $E_\text{T}>250$ GeV from $\ell^+\ell^-\gamma$ events - and with $E_\text{T}>400$ GeV from $\nu\bar{\nu}\gamma$ events are used to search for anomalous triple gauge-boson couplings - $ZZ\gamma$ and $Z\gamma\gamma$. The yields of events with diphoton invariant mass $m_{\gamma\gamma}>200$ GeV from - $\ell^+\ell^-\gamma\gamma$ events and with $m_{\gamma\gamma}>300$ GeV from $\nu\bar{\nu}\gamma\gamma$ events are used to search - for anomalous quartic gauge-boson couplings $ZZ\gamma\gamma$ and $Z\gamma\gamma\gamma$. No deviations from Standard Model predictions - are observed and limits are placed on parameters used to describe anomalous triple and quartic gauge-boson couplings. - The lepton channel can be specified by using the relevant plugins (_EL, _MU, _NU). The default plugin uses the electron channel.' -BibKey: Aad:2016sau -BibTeX: '@article{Aad:2016sau, - author = "Aad, Georges and others", - title = "{Measurements of $Z\gamma$ and $Z\gamma\gamma$ production - in $pp$ collisions at $\sqrt{s}=$ 8 TeV with the ATLAS - detector}", - collaboration = "ATLAS", - journal = "Phys. Rev.", - volume = "D93", - year = "2016", - number = "11", - pages = "112002", - doi = "10.1103/PhysRevD.93.112002", - eprint = "1604.05232", - archivePrefix = "arXiv", - primaryClass = "hep-ex", - reportNumber = "CERN-EP-2016-049", - SLACcitation = "%%CITATION = ARXIV:1604.05232;%%" -}' diff --git a/analyses/pluginATLAS/ATLAS_2016_I1448301_NU.plot b/analyses/pluginATLAS/ATLAS_2016_I1448301_NU.plot deleted file mode 100644 --- a/analyses/pluginATLAS/ATLAS_2016_I1448301_NU.plot +++ /dev/null @@ -1,34 +0,0 @@ -# BEGIN PLOT /ATLAS_2016_I1448301_NU/* -LogY=0 -LogX=0 -XTwosidedTicks=1 -YTwosidedTicks=1 -LegendAlign=r -LegendXPos=0.95 -YLabel=Fiducial Cross section [fb] -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_NU/d02 -Title=$Z(\to \nu\nu)+\gamma$ data -XCustomMajorTicks=1.0 $\geq0$ 2.0 $=0$ -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_NU/d04 -Title=$Z(\to \nu\nu)+\gamma +\gamma$ data -XCustomMajorTicks=1.0 $\geq0$ 2.0 $=0$ -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_NU/d07-x01-y01 -LogY=1 -Title=$N_\text{jets} \ge 0$ -XLabel=$E_\text{T}^\gamma$ [GeV] -YLabel=$\text{d}\sigma / \text{d} E_\text{T}^\gamma$ [fb/GeV] -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1448301_NU/d08-x01-y01 -LogY=1 -Title=$N_\text{jets} = 0$ -XLabel=$E_\text{T}^\gamma$ [GeV] -YLabel=$\text{d}\sigma / \text{d} E_\text{T}^\gamma$ [fb/GeV] -# END PLOT - diff --git a/analyses/pluginATLAS/ATLAS_2016_I1467454.cc b/analyses/pluginATLAS/ATLAS_2016_I1467454.cc --- a/analyses/pluginATLAS/ATLAS_2016_I1467454.cc +++ b/analyses/pluginATLAS/ATLAS_2016_I1467454.cc @@ -1,108 +1,95 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ZFinder.hh" #include "Rivet/Tools/BinnedHistogram.hh" namespace Rivet { /// @brief High-mass Drell-Yan at 8 TeV class ATLAS_2016_I1467454 : public Analysis { public: /// Constructor - ATLAS_2016_I1467454(const string& name="ATLAS_2016_I1467454", size_t channel = 0, - const string& ref_data="ATLAS_2016_I1467454") : Analysis(name) { - _mode = 0; // use electron channel by default - setRefDataName(ref_data); - } + DEFAULT_RIVET_ANALYSIS_CTOR(ATLAS_2016_I1467454); + //@} /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { + // Get options from the new option system + _mode = 0; + if ( getOption("LMODE") == "EL" ) _mode = 0; + if ( getOption("LMODE") == "MU" ) _mode = 1; + const FinalState fs; Cut cuts = Cuts::abseta < 2.5 && Cuts::pT > 30*GeV; ZFinder zfinder(fs, cuts, _mode? PID::MUON : PID::ELECTRON, 116*GeV, 1500*GeV, 0.1); declare(zfinder, "ZFinder"); size_t ch = _mode? 11 : 0; // offset _hist_mll = bookHisto1D(18 + ch, 1, 1); vector mll_bins = { 116., 150., 200., 300., 500., 1500. }; for (size_t i = 0; i < (mll_bins.size() - 1); ++i) { _hist_rap.addHistogram( mll_bins[i], mll_bins[i+1], bookHisto1D(19 + ch + i, 1, 1)); _hist_deta.addHistogram(mll_bins[i], mll_bins[i+1], bookHisto1D(24 + ch + i, 1, 1)); } } /// Perform the per-event analysis void analyze(const Event& event) { const ZFinder& zfinder = apply(event, "ZFinder"); if (zfinder.bosons().size() != 1) vetoEvent; const Particle z0 = zfinder.bosons()[0]; /// @todo Could use z0.constituents() const Particle el1 = zfinder.constituentLeptons()[0]; const Particle el2 = zfinder.constituentLeptons()[1]; if (el1.pT() > 40*GeV || el2.pT() > 40*GeV) { const double mass = z0.mass(); const double weight = event.weight(); _hist_mll->fill(mass/GeV, weight); _hist_rap. fill(mass/GeV, z0.absrap(), weight); _hist_deta.fill(mass/GeV, deltaEta(el1,el2), weight); } } /// Normalise histograms etc., after the run void finalize() { const double sf = crossSection()/sumOfWeights(); scale(_hist_mll, sf); _hist_rap.scale(sf*0.5, this); _hist_deta.scale(sf*0.5, this); } //@} /// Choose to work in electron or muon mode size_t _mode; /// @name Histograms //@{ Histo1DPtr _hist_mll; BinnedHistogram _hist_rap, _hist_deta; //@} }; - - /// High-mass Drell-Yan at 8 TeV, electron channel - struct ATLAS_2016_I1467454_EL : public ATLAS_2016_I1467454 { - ATLAS_2016_I1467454_EL() : ATLAS_2016_I1467454("ATLAS_2016_I1467454_EL", 0) { } - }; - - - /// High-mass Drell-Yan at 8 TeV, muon channel - struct ATLAS_2016_I1467454_MU : public ATLAS_2016_I1467454 { - ATLAS_2016_I1467454_MU() : ATLAS_2016_I1467454("ATLAS_2016_I1467454_MU", 1) { } - }; - - DECLARE_RIVET_PLUGIN(ATLAS_2016_I1467454); - DECLARE_RIVET_PLUGIN(ATLAS_2016_I1467454_EL); - DECLARE_RIVET_PLUGIN(ATLAS_2016_I1467454_MU); } diff --git a/analyses/pluginATLAS/ATLAS_2016_I1467454.info b/analyses/pluginATLAS/ATLAS_2016_I1467454.info --- a/analyses/pluginATLAS/ATLAS_2016_I1467454.info +++ b/analyses/pluginATLAS/ATLAS_2016_I1467454.info @@ -1,52 +1,55 @@ Name: ATLAS_2016_I1467454 Year: 2016 Summary: High-mass Drell-Yan at 8 TeV Experiment: ATLAS Collider: LHC InspireID: 1467454 Status: VALIDATED Authors: - Markus Zinser References: - JHEP 1608 (2016) 009 - doi:10.1007/JHEP08(2016)009 - arXiv:1606.01736 [hep-ex] Keywords: - drellyan - vjets RunInfo: Drell-Yan production in $pp$ collisons at 8 TeV, leptonic $Z$ decays Luminosity_fb: 20.3 Beams: [p+, p+] Energies: [8000] NeedCrossSection: yes +Options: + - LMODE=EL,MU Description: 'This paper presents a measurement of the double-differential cross section for the Drell-Yan $Z/\gamma^\ast \rightarrow \ell^+\ell^-$ and photon-induced $\gamma\gamma \rightarrow \ell^+\ell^-$ processes where $\ell$ is an electron or muon. The measurement is performed for invariant masses of the lepton pairs, $m_{\ell\ell}$, between 116 GeV and 1500 GeV using a sample of 20.3 fb$^{-1}$ of pp collisions data at centre-of-mass energy of $\sqrt{s} = 8$ TeV collected by the ATLAS detector at the LHC in 2012. The data are presented double differentially in invariant mass and absolute dilepton rapidity as well as in invariant mass and absolute pseudorapidity separation of the lepton pair. The single-differential cross section as a function of $m_{\ell\ell}$ is also reported. The electron and muon channel measurements are combined and a total experimental precision of better than 1\% is achieved at low $m_{\ell\ell}$. A comparison to next-to-next-to-leading order perturbative QCD predictions using several recent parton distribution functions and including next-to-leading order electroweak effects indicates the potential of the data to - constrain parton distribution functions. In particular, a large impact of the data on the photon PDF is demonstrated.' + constrain parton distribution functions. In particular, a large impact of the data on the photon PDF is demonstrated. + Decay channel (e or mu) is selected by LMODE=EL,MU' BibKey: Aad:2016zzw BibTeX: '@article{Aad:2016zzw, author = "Aad, Georges and others", title = "{Measurement of the double-differential high-mass Drell-Yan cross section in pp collisions at $ \sqrt{s}=8 $ TeV with the ATLAS detector}", collaboration = "ATLAS", journal = "JHEP", volume = "08", year = "2016", pages = "009", doi = "10.1007/JHEP08(2016)009", eprint = "1606.01736", archivePrefix = "arXiv", primaryClass = "hep-ex", reportNumber = "CERN-EP-2016-079", SLACcitation = "%%CITATION = ARXIV:1606.01736;%%" }' diff --git a/analyses/pluginATLAS/ATLAS_2016_I1467454_EL.info b/analyses/pluginATLAS/ATLAS_2016_I1467454_EL.info deleted file mode 100644 --- a/analyses/pluginATLAS/ATLAS_2016_I1467454_EL.info +++ /dev/null @@ -1,52 +0,0 @@ -Name: ATLAS_2016_I1467454_EL -Year: 2016 -Summary: High-mass Drell-Yan at 8 TeV, electron channel -Experiment: ATLAS -Collider: LHC -InspireID: 1467454 -Status: VALIDATED -Authors: - - Markus Zinser -References: - - JHEP 1608 (2016) 009 - - doi:10.1007/JHEP08(2016)009 - - arXiv:1606.01736 [hep-ex] -Keywords: - - drellyan - - vjets -RunInfo: - Drell-Yan production in $pp$ collisons at 8 TeV, $Z$ decaying to muons -Luminosity_fb: 20.3 -Beams: [p+, p+] -Energies: [8000] -NeedCrossSection: yes -Description: - 'This paper presents a measurement of the double-differential cross section for the Drell-Yan - $Z/\gamma^\ast \rightarrow \ell^+\ell^-$ and photon-induced $\gamma\gamma \rightarrow \ell^+\ell^-$ processes where - $\ell$ is an electron or muon. The measurement is performed for invariant masses of the lepton pairs, $m_{\ell\ell}$, - between 116 GeV and 1500 GeV using a sample of 20.3 fb$^{-1}$ of pp collisions data at centre-of-mass energy of - $\sqrt{s} = 8$ TeV collected by the ATLAS detector at the LHC in 2012. The data are presented double differentially - in invariant mass and absolute dilepton rapidity as well as in invariant mass and absolute pseudorapidity separation - of the lepton pair. The single-differential cross section as a function of $m_{\ell\ell}$ is also reported. The electron - and muon channel measurements are combined and a total experimental precision of better than 1\% is achieved at low - $m_{\ell\ell}$. A comparison to next-to-next-to-leading order perturbative QCD predictions using several recent parton - distribution functions and including next-to-leading order electroweak effects indicates the potential of the data to - constrain parton distribution functions. In particular, a large impact of the data on the photon PDF is demonstrated.' -BibKey: Aad:2016zzw -BibTeX: '@article{Aad:2016zzw, - author = "Aad, Georges and others", - title = "{Measurement of the double-differential high-mass - Drell-Yan cross section in pp collisions at $ \sqrt{s}=8 $ - TeV with the ATLAS detector}", - collaboration = "ATLAS", - journal = "JHEP", - volume = "08", - year = "2016", - pages = "009", - doi = "10.1007/JHEP08(2016)009", - eprint = "1606.01736", - archivePrefix = "arXiv", - primaryClass = "hep-ex", - reportNumber = "CERN-EP-2016-079", - SLACcitation = "%%CITATION = ARXIV:1606.01736;%%" -}' diff --git a/analyses/pluginATLAS/ATLAS_2016_I1467454_EL.plot b/analyses/pluginATLAS/ATLAS_2016_I1467454_EL.plot deleted file mode 100644 --- a/analyses/pluginATLAS/ATLAS_2016_I1467454_EL.plot +++ /dev/null @@ -1,59 +0,0 @@ -# BEGIN PLOT /ATLAS_2016_I1467454_EL/* -LogY=1 -XTwosidedTicks=1 -YTwosidedTicks=1 -LeftMargin=1.6 -LegendAlign=r -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_EL/d18 -XLabel=$m_{ee}$ [GeV] -YLabel=$\frac{\text{d}\sigma}{\text{d} m_{ee}}$ [pb/GeV] -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_EL/d19 -XLabel=$|y_{ee}|$ -YLabel=$\frac{\text{d}^2\sigma}{\text{d} m_{ee} \text{d}y_{ee}}$ [pb/GeV] -Title=116 GeV $< m_{ee} <$ 150 GeV -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_EL/d2[0-3] -XLabel=$|y_{ee}|$ -YLabel=$\frac{\text{d}^2\sigma}{\text{d} m_{ee} \text{d}y_{ee}}$ [pb/GeV] -Title=150 GeV $< m_{ee} <$ 200 GeV -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_EL/d21 -Title=200 GeV $< m_{ee} <$ 300 GeV -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_EL/d22 -Title=300 GeV $< m_{ee} <$ 500 GeV -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_EL/d23 -Title=500 GeV $< m_{ee} <$ 1500 GeV -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_EL/d2[4-8] -XLabel=$|\Delta\eta_{ee}|$ -YLabel=$\frac{\text{d}^2\sigma}{\text{d} m_{ee} \text{d}\Delta\eta_{ee}}$ [pb/GeV] -Title=116 GeV $< m_{ee} <$ 150 GeV -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_EL/d25 -Title=150 GeV $< m_{ee} <$ 200 GeV -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_EL/d26 -Title=200 GeV $< m_{ee} <$ 300 GeV -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_EL/d27 -Title=300 GeV $< m_{ee} <$ 500 GeV -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_EL/d28 -Title=500 GeV $< m_{ee} <$ 1500 GeV -# END PLOT - diff --git a/analyses/pluginATLAS/ATLAS_2016_I1467454_MU.info b/analyses/pluginATLAS/ATLAS_2016_I1467454_MU.info deleted file mode 100644 --- a/analyses/pluginATLAS/ATLAS_2016_I1467454_MU.info +++ /dev/null @@ -1,52 +0,0 @@ -Name: ATLAS_2016_I1467454_MU -Year: 2016 -Summary: High-mass Drell-Yan at 8 TeV, muon channel -Experiment: ATLAS -Collider: LHC -InspireID: 1467454 -Status: VALIDATED -Authors: - - Markus Zinser -References: - - JHEP 1608 (2016) 009 - - doi:10.1007/JHEP08(2016)009 - - arXiv:1606.01736 [hep-ex] -Keywords: - - drellyan - - vjets -RunInfo: - Drell-Yan production in $pp$ collisons at 8 TeV, $Z$ decaying to muons -Luminosity_fb: 20.3 -Beams: [p+, p+] -Energies: [8000] -NeedCrossSection: yes -Description: - 'This paper presents a measurement of the double-differential cross section for the Drell-Yan - $Z/\gamma^\ast \rightarrow \ell^+\ell^-$ and photon-induced $\gamma\gamma \rightarrow \ell^+\ell^-$ processes where - $\ell$ is an electron or muon. The measurement is performed for invariant masses of the lepton pairs, $m_{\ell\ell}$, - between 116 GeV and 1500 GeV using a sample of 20.3 fb$^{-1}$ of pp collisions data at centre-of-mass energy of - $\sqrt{s} = 8$ TeV collected by the ATLAS detector at the LHC in 2012. The data are presented double differentially - in invariant mass and absolute dilepton rapidity as well as in invariant mass and absolute pseudorapidity separation - of the lepton pair. The single-differential cross section as a function of $m_{\ell\ell}$ is also reported. The electron - and muon channel measurements are combined and a total experimental precision of better than 1\% is achieved at low - $m_{\ell\ell}$. A comparison to next-to-next-to-leading order perturbative QCD predictions using several recent parton - distribution functions and including next-to-leading order electroweak effects indicates the potential of the data to - constrain parton distribution functions. In particular, a large impact of the data on the photon PDF is demonstrated.' -BibKey: Aad:2016zzw -BibTeX: '@article{Aad:2016zzw, - author = "Aad, Georges and others", - title = "{Measurement of the double-differential high-mass - Drell-Yan cross section in pp collisions at $ \sqrt{s}=8 $ - TeV with the ATLAS detector}", - collaboration = "ATLAS", - journal = "JHEP", - volume = "08", - year = "2016", - pages = "009", - doi = "10.1007/JHEP08(2016)009", - eprint = "1606.01736", - archivePrefix = "arXiv", - primaryClass = "hep-ex", - reportNumber = "CERN-EP-2016-079", - SLACcitation = "%%CITATION = ARXIV:1606.01736;%%" -}' diff --git a/analyses/pluginATLAS/ATLAS_2016_I1467454_MU.plot b/analyses/pluginATLAS/ATLAS_2016_I1467454_MU.plot deleted file mode 100644 --- a/analyses/pluginATLAS/ATLAS_2016_I1467454_MU.plot +++ /dev/null @@ -1,59 +0,0 @@ -# BEGIN PLOT /ATLAS_2016_I1467454_MU/* -LogY=1 -XTwosidedTicks=1 -YTwosidedTicks=1 -LeftMargin=1.6 -LegendAlign=r -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_MU/d29 -XLabel=$m_{\mu\mu}$ [GeV] -YLabel=$\frac{\text{d}\sigma}{\text{d} m_{\mu\mu}}$ [pb/GeV] -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_MU/d30 -XLabel=$|y_{\mu\mu}|$ -YLabel=$\frac{\text{d}^2\sigma}{\text{d} m_{\mu\mu} \text{d}y_{\mu\mu}}$ [pb/GeV] -Title=116 GeV $< m_{\mu\mu} <$ 150 GeV -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_MU/d3[1-4] -XLabel=$|y_{\mu\mu}|$ -YLabel=$\frac{\text{d}^2\sigma}{\text{d} m_{\mu\mu} \text{d}y_{\mu\mu}}$ [pb/GeV] -Title=150 GeV $< m_{\mu\mu} <$ 200 GeV -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_MU/d35 -Title=200 GeV $< m_{\mu\mu} <$ 300 GeV -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_MU/d36 -Title=300 GeV $< m_{\mu\mu} <$ 500 GeV -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_MU/d34 -Title=500 GeV $< m_{\mu\mu} <$ 1500 GeV -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_MU/d3[5-9] -XLabel=$|\Delta\eta_{\mu\mu}|$ -YLabel=$\frac{\text{d}^2\sigma}{\text{d} m_{\mu\mu} \text{d}\Delta\eta_{\mu\mu}}$ [pb/GeV] -Title=116 GeV $< m_{\mu\mu} <$ 150 GeV -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_MU/d36 -Title=150 GeV $< m_{\mu\mu} <$ 200 GeV -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_MU/d37 -Title=200 GeV $< m_{\mu\mu} <$ 300 GeV -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_MU/d38 -Title=300 GeV $< m_{\mu\mu} <$ 500 GeV -# END PLOT - -# BEGIN PLOT /ATLAS_2016_I1467454_MU/d39 -Title=500 GeV $< m_{\mu\mu} <$ 1500 GeV -# END PLOT - diff --git a/analyses/pluginATLAS/ATLAS_2016_I1492320.cc b/analyses/pluginATLAS/ATLAS_2016_I1492320.cc new file mode 100644 --- /dev/null +++ b/analyses/pluginATLAS/ATLAS_2016_I1492320.cc @@ -0,0 +1,243 @@ +// -*- C++ -* +#include "Rivet/Analysis.hh" +#include "Rivet/Projections/FinalState.hh" +#include "Rivet/Projections/FastJets.hh" +#include "Rivet/Projections/VetoedFinalState.hh" +#include "Rivet/Projections/MissingMomentum.hh" +#include "Rivet/Projections/DressedLeptons.hh" +#include "Rivet/Projections/PromptFinalState.hh" + +namespace Rivet { + + + /// @brief WWW cross-section at 8 TeV, 3L mode + class ATLAS_2016_I1492320 : public Analysis { + public: + + // Default constructor + DEFAULT_RIVET_ANALYSIS_CTOR(ATLAS_2016_I1492320); + + /// @name Analysis methods + //@{ + + /// Book histograms and initialise projections before the run + void init() { + + // Get options from the new option system + _mode = 0; + if ( getOption("LMODE") == "3L" ) _mode = 1; + if ( getOption("LMODE") == "2L2J" ) _mode = 2; + + + // Charged leptons within acceptance + const PromptFinalState chLep_fid = PromptFinalState(Cuts::abspid == PID::ELECTRON || Cuts::abspid == PID::MUON); + const PromptFinalState photon_fs = PromptFinalState(Cuts::abspid == PID::PHOTON); + const DressedLeptons dressed_leps(photon_fs, chLep_fid, 0.1, Cuts::pT > 20*GeV && Cuts::abseta < 2.5); + declare(dressed_leps, "DressedLeptons"); + + const DressedLeptons dressed_leps2(photon_fs, chLep_fid, 0.1, Cuts::pT > 10*GeV); + declare(dressed_leps2, "DressedLeptons2"); + + + // Jets, anti-kt 0.4 + VetoedFinalState fsJets(FinalState(Cuts::abseta < 7.0)); //final state for jet finding: veto leptons and neutrinos + fsJets.vetoNeutrinos(); + fsJets.addVetoOnThisFinalState(photon_fs); + fsJets.addVetoOnThisFinalState(chLep_fid); + declare(FastJets(fsJets, FastJets::ANTIKT, 0.4), "Jets"); + + // b hadrons for b-tagging + declare(HeavyHadrons(Cuts::abseta < 2.5 && Cuts::pT > 5*GeV), "Bhadrons"); + + // Missing momentum + declare(MissingMomentum(), "MET"); + + // Histograms + if (_mode != 2){ + _h_fiducial_3l = bookCounter("d01-x01-y01"); + } + if (_mode != 1){ + _h_2l2j = bookCounter("d01-x01-y02"); + } + } + + + /// Perform the per-event analysis + void analyze(const Event& event) { + + // Get the dressed leptons, sorted by pT of their constituent bare lepton (!!) + vector _vbs_lep = apply(event, "DressedLeptons").dressedLeptons(); + if (_vbs_lep.size() == 3 && _mode != 2) { + std::sort(_vbs_lep.begin(), _vbs_lep.end(), [](const DressedLepton& l1, const DressedLepton& l2) { + return (l1.constituentLepton().pT() > l2.constituentLepton().pT()); + }); + + // Get the jets + const Jets& _vbs_jets = apply(event, "Jets").jetsByPt(Cuts::pT > 25*GeV && Cuts::abseta < 4.5); + if (_vbs_jets.size() <= 1) { + + // Determine nsfos pairs for channel classification + int nSFOS = 0; + for (size_t i = 0; i < _vbs_lep.size(); ++i) { + const double ch_l0 = _vbs_lep[i].charge(); + for (size_t j = i + 1; j < _vbs_lep.size(); ++j) { + const double ch_l1 = _vbs_lep[j].charge(); + if (_vbs_lep[i].abspid() == _vbs_lep[j].abspid() && ch_l0*ch_l1 < 0) ++nSFOS; + } + } + + double minDRll = DBL_MAX, mSFOS_MinDiff = DBL_MAX, meeSS_MinDiff = DBL_MAX, mSF_min = DBL_MAX; + for (size_t i = 0; i < _vbs_lep.size(); ++i) { + const double ch_l0 = _vbs_lep[i].charge(); + for (size_t j = i + 1; j < _vbs_lep.size(); ++j) { + const double ch_l1 = _vbs_lep[j].charge(); + const bool samesign = ch_l0*ch_l1 > 0; + + // Update min dR between leptons + minDRll = min(minDRll, deltaR(_vbs_lep[i], _vbs_lep[j])); + + // Require same flavour + if (_vbs_lep[i].abspid() != _vbs_lep[j].abspid()) continue; + + // SF dilepton mass (used several times) + const double mSF = (_vbs_lep[i].momentum() + _vbs_lep[j].momentum()).mass(); + + // Determine min for all same-flavor pairs + mSF_min = min(mSF, mSF_min); + + // Determine min for all m_ee same-sign pairs + if (_vbs_lep[i].abspid() == PID::ELECTRON && samesign) { + if (fabs(mSF-ZMASS) < fabs(meeSS_MinDiff-ZMASS)) meeSS_MinDiff = mSF; + } + + // Determine min for all mSFOS pairs + if (!samesign && fabs(mSF-ZMASS) < abs(mSFOS_MinDiff-ZMASS)) mSFOS_MinDiff = mSF; + } + } + + bool setVeto = false; + if (minDRll < 0.1) setVeto = true; + if (nSFOS == 0 && mSF_min < 20*GeV) setVeto = true; + if (nSFOS == 0 && fabs(meeSS_MinDiff - ZMASS) < 15*GeV) setVeto = true; + if (nSFOS == 1 && ((ZMASS - mSFOS_MinDiff) < 35*GeV && (mSFOS_MinDiff - ZMASS) < 20*GeV)) setVeto = true; + if (nSFOS == 2 && fabs(mSFOS_MinDiff - ZMASS) < 20*GeV) setVeto = true; + + if (!setVeto) { + const Vector3& met = -1.0 * apply(event, "MET").vectorEt(); + if (nSFOS == 1 && met.mod() < 45*GeV) setVeto = true; + if (nSFOS == 2 && met.mod() < 55*GeV) setVeto = true; + + if (!setVeto) { + const double dPhi = deltaPhi((_vbs_lep[0].momentum() + _vbs_lep[1].momentum() + _vbs_lep[2].momentum()), met); + if (dPhi < 2.5) setVeto = true; + } + // Fill histo + if (!setVeto) { + _h_fiducial_3l->fill(event.weight()); + } + } + } + } + + if (_mode != 1){ + // Get leptons + vector leps = apply(event, "DressedLeptons").dressedLeptons(); + if (leps.size() >= 2) { + // Sort the dressed leptons by pt of their constituent lepton (bare lepton pt) + std::sort(leps.begin(), leps.end() , + [](const DressedLepton& l1, const DressedLepton& l2) { + return (l1.constituentLepton().pT() > l2.constituentLepton().pT()); }); + if (leps[0].pT() < 30*GeV || leps[0].abseta() > 2.5) vetoEvent; + if (leps[1].pT() < 30*GeV || leps[1].abseta() > 2.5) vetoEvent; + + // Get jets + const Jets& jets = apply(event, "Jets").jetsByPt(Cuts::pT > 15*GeV); + + // Find min dilepton DR and mass + double minDRll = DBL_MAX, mll = DBL_MAX; + for (size_t i = 0; i < leps.size(); ++i) { + for (size_t j = i + 1; j < leps.size(); ++j) { + minDRll = min(minDRll, deltaR(leps[i], leps[j])); + mll = min(mll, (leps[i].momentum() + leps[j].momentum()).mass()); + } + } + if (minDRll < 0.1) vetoEvent; + if (mll < 40*GeV) vetoEvent; + + // Require same-sign leading leptons + if (leps[0].charge()*leps[0].charge() < 0) vetoEvent; + + // Veto di-electron combinations within 10 GeV of the Z mass + if (fabs(mll - 91.188*GeV) < 10*GeV && leps[0].abspid() == PID::ELECTRON && leps[1].abspid() == PID::ELECTRON) vetoEvent; + + // Now jet cuts + if (jets.size() < 2) vetoEvent; + if (jets[0].pT() < 30*GeV || jets[0].abseta() > 2.5) vetoEvent; + if (jets[1].pT() < 20*GeV || jets[1].abseta() > 2.5) vetoEvent; + + // Find closest jet/lepton pair and veto if too close in phi or too far in eta + double minDRLepJets = DBL_MAX; + for (const Jet& jet : jets) { + for (const Particle& lep : leps) minDRLepJets = min(minDRLepJets, deltaR(lep, jet)); + } + if (minDRLepJets < 0.3) vetoEvent; + if (fabs(deltaEta(jets[0], jets[1])) > 1.5) vetoEvent; + + // Dijet mass requirement + double mjj = (jets[0].momentum() + jets[1].momentum()).mass(); + if (mjj < 65 || mjj > 105) vetoEvent; + if (!inRange(mjj, 65*GeV, 105*GeV)) vetoEvent; + + // Veto if any good jets are b-jets + const Particles& bhadrons = apply(event, "Bhadrons").bHadrons(); + for (const Jet& j : jets) { + if (j.abseta() > 2.5) continue; // outside acceptance of b-tagging + const bool isbJet = any(bhadrons, deltaRLess(j, 0.3)); + if (isbJet) vetoEvent; + } + + // MET vetoing for non-muon events + const MissingMomentum& met = apply(event, "MET"); + if (met.vectorEt().mod() < 55*GeV && (leps[0].abspid() != PID::MUON || leps[1].abspid() != PID::MUON)) vetoEvent; + + // Fill counter + _h_2l2j->fill(event.weight()); + } + } + } + + + + /// Normalise histograms etc., after the run + void finalize() { + if (_mode != 2){ + scale(_h_fiducial_3l, crossSection()/sumOfWeights()/femtobarn); + } + if (_mode != 1){ + scale(_h_2l2j, crossSection()/sumOfWeights()/femtobarn); + } + } + + //@} + + protected: + + size_t _mode; + + + private: + + /// @name Histograms + //@{ + const double ZMASS = 91.1876*GeV; + CounterPtr _h_fiducial_3l; + CounterPtr _h_2l2j; + //@} + + }; + + + // Hook for the plugin system + DECLARE_RIVET_PLUGIN(ATLAS_2016_I1492320); + +} diff --git a/analyses/pluginATLAS/ATLAS_2016_I1492320.info b/analyses/pluginATLAS/ATLAS_2016_I1492320.info new file mode 100644 --- /dev/null +++ b/analyses/pluginATLAS/ATLAS_2016_I1492320.info @@ -0,0 +1,53 @@ +Name: ATLAS_2016_I1492320 +Year: 2016 +Summary: WWW production at 8 TeV, 2L2J mode +Experiment: ATLAS +Collider: LHC +InspireID: 1492320 +Status: VALIDATED +Authors: + - Alex Long + - Ismet Siral + - Louis Helary + - Christian Gutschow +References: + - arXiv:1610.05088 [hep-ex] +Keywords: + - 3boson + - triboson + - multiboson + - 2lepton + - 3lepton + - jets +RunInfo: + pp -> WWW production at 8 TeV +Luminosity_fb: 20.3 +Beams: [p+, p+] +Energies: [8000] +PtCuts: [30,30,30,20] +Options: + - LMODE=3L,2L2J +Description: + 'This paper reports a search for triboson $W^\pm W^\pm W^\mp$ production in two decay channels + ($W^\pm W^\pm W^\mp \to \ell^\pm\nu \ell^\pm\nu \ell^\mp\nu$) and ($W^\pm W^\pm W^\mp \to \ell^\pm\nu \ell^\pm\nu jj$ with + $\ell = e,\mu$) in proton-proton collision data corresponding to an integrated luminosity of 20.3 fb${}^{-1}$ at a + centre-of-mass energy of 8 TeV with the ATLAS detector at the Large Hadron Collider. Events with exactly three charged + leptons, or two leptons with the same electric charge in association with two jets, are selected. The total number of events + observed in data is consistent with the Standard Model (SM) predictions. The observed 95 % confidence level upper limit on the SM + $W^\pm W^\pm W^\mp$ production cross section is found to be 730 fb with an expected limit of 560 fb in the absence of + SM $W^\pm W^\pm W^\mp$ production. Limits are also set on $WWWW$ anomalous quartic gauge couplings. Default will make both plots. Use + options 2L2J or 3J to make just one.' +BibKey: Aaboud:2016ftt +BibTeX: '@article{Aaboud:2016ftt, + author = "Aaboud, Morad and others", + title = "{Search for triboson $W^{\pm}W^{\pm}W^{\mp}$ production + in $pp$ collisions at $\sqrt{s}=8$ TeV with the ATLAS + detector}", + collaboration = "ATLAS", + year = "2016", + eprint = "1610.05088", + archivePrefix = "arXiv", + primaryClass = "hep-ex", + reportNumber = "CERN-EP-2016-172", + SLACcitation = "%%CITATION = ARXIV:1610.05088;%%" +}' diff --git a/analyses/pluginATLAS/ATLAS_2016_I1492320.plot b/analyses/pluginATLAS/ATLAS_2016_I1492320.plot new file mode 100644 --- /dev/null +++ b/analyses/pluginATLAS/ATLAS_2016_I1492320.plot @@ -0,0 +1,16 @@ +# BEGIN PLOT /ATLAS_2016_I1492320/d01-x01-y01 +Title=3 lepton +LogY=0 +YLabel=Fiducial Cross section [fb] +LegendAlign=r +# END PLOT + + +# BEGIN PLOT /ATLAS_2016_I1492320/d01-x01-y02 +Title=dilepton + dijet +LogY=0 +YLabel=Fiducial Cross section [fb] +LegendAlign=r +# END PLOT + + diff --git a/analyses/pluginATLAS/ATLAS_2016_I1492320_2l2j.cc b/analyses/pluginATLAS/ATLAS_2016_I1492320_2l2j.cc deleted file mode 100644 --- a/analyses/pluginATLAS/ATLAS_2016_I1492320_2l2j.cc +++ /dev/null @@ -1,143 +0,0 @@ -// -*- C++ -* -#include "Rivet/Analysis.hh" -#include "Rivet/Projections/FinalState.hh" -#include "Rivet/Projections/FastJets.hh" -#include "Rivet/Projections/HeavyHadrons.hh" -#include "Rivet/Projections/VetoedFinalState.hh" -#include "Rivet/Projections/MissingMomentum.hh" -#include "Rivet/Projections/DressedLeptons.hh" -#include "Rivet/Projections/PromptFinalState.hh" - -namespace Rivet { - - - /// @brief WWW cross-section at 8 TeV, 2L2J mode - class ATLAS_2016_I1492320_2l2j : public Analysis { - public: - - // Default constructor - ATLAS_2016_I1492320_2l2j() : Analysis("ATLAS_2016_I1492320_2l2j") { - setRefDataName("ATLAS_2016_I1492320"); - } - - - /// @name Analysis methods - //@{ - - /// Book histograms and initialise projections before the run - void init() { - - // Charged leptons within acceptance - const PromptFinalState chLep_fid = PromptFinalState(Cuts::abspid == PID::ELECTRON || Cuts::abspid == PID::MUON); - const PromptFinalState photon_fs = PromptFinalState(Cuts::abspid == PID::PHOTON); - const DressedLeptons dressed_leps(photon_fs, chLep_fid, 0.1, Cuts::pT > 10*GeV); - declare(dressed_leps, "DressedLeptons"); - - // Jets, anti-kt 0.4 - VetoedFinalState fsJets(FinalState(Cuts::abseta < 7.0)); //final state for jet finding: veto leptons and neutrinos - fsJets.vetoNeutrinos(); - fsJets.addVetoOnThisFinalState(photon_fs); - fsJets.addVetoOnThisFinalState(chLep_fid); - declare(FastJets(fsJets, FastJets::ANTIKT, 0.4), "Jets"); - - // b hadrons for b-tagging - declare(HeavyHadrons(Cuts::abseta < 2.5 && Cuts::pT > 5*GeV), "Bhadrons"); - - // Missing momentum - declare(MissingMomentum(), "MET"); - - // Histograms - _h_2l2j = bookCounter("d01-x01-y02"); - } - - - /// Perform the per-event analysis - void analyze(const Event& event) { - - // Get leptons - vector leps = apply(event, "DressedLeptons").dressedLeptons(); - if (leps.size() < 2) vetoEvent; - // Sort the dressed leptons by pt of their constituent lepton (bare lepton pt) - std::sort(leps.begin(), leps.end() , - [](const DressedLepton& l1, const DressedLepton& l2) { - return (l1.constituentLepton().pT() > l2.constituentLepton().pT()); }); - if (leps[0].pT() < 30*GeV || leps[0].abseta() > 2.5) vetoEvent; - if (leps[1].pT() < 30*GeV || leps[1].abseta() > 2.5) vetoEvent; - - // Get jets - const Jets& jets = apply(event, "Jets").jetsByPt(Cuts::pT > 15*GeV); - - // Find min dilepton DR and mass - double minDRll = DBL_MAX, mll = DBL_MAX; - for (size_t i = 0; i < leps.size(); ++i) { - for (size_t j = i + 1; j < leps.size(); ++j) { - minDRll = min(minDRll, deltaR(leps[i], leps[j])); - mll = min(mll, (leps[i].momentum() + leps[j].momentum()).mass()); - } - } - if (minDRll < 0.1) vetoEvent; - if (mll < 40*GeV) vetoEvent; - - // Require same-sign leading leptons - if (leps[0].charge()*leps[0].charge() < 0) vetoEvent; - - // Veto di-electron combinations within 10 GeV of the Z mass - if (fabs(mll - 91.188*GeV) < 10*GeV && leps[0].abspid() == PID::ELECTRON && leps[1].abspid() == PID::ELECTRON) vetoEvent; - - // Now jet cuts - if (jets.size() < 2) vetoEvent; - if (jets[0].pT() < 30*GeV || jets[0].abseta() > 2.5) vetoEvent; - if (jets[1].pT() < 20*GeV || jets[1].abseta() > 2.5) vetoEvent; - - // Find closest jet/lepton pair and veto if too close in phi or too far in eta - double minDRLepJets = DBL_MAX; - for (const Jet& jet : jets) { - for (const Particle& lep : leps) minDRLepJets = min(minDRLepJets, deltaR(lep, jet)); - } - if (minDRLepJets < 0.3) vetoEvent; - if (fabs(deltaEta(jets[0], jets[1])) > 1.5) vetoEvent; - - // Dijet mass requirement - double mjj = (jets[0].momentum() + jets[1].momentum()).mass(); - if (mjj < 65 || mjj > 105) vetoEvent; - if (!inRange(mjj, 65*GeV, 105*GeV)) vetoEvent; - - // Veto if any good jets are b-jets - const Particles& bhadrons = apply(event, "Bhadrons").bHadrons(); - for (const Jet& j : jets) { - if (j.abseta() > 2.5) continue; // outside acceptance of b-tagging - const bool isbJet = any(bhadrons, deltaRLess(j, 0.3)); - if (isbJet) vetoEvent; - } - - // MET vetoing for non-muon events - const MissingMomentum& met = apply(event, "MET"); - if (met.vectorEt().mod() < 55*GeV && (leps[0].abspid() != PID::MUON || leps[1].abspid() != PID::MUON)) vetoEvent; - - // Fill counter - _h_2l2j->fill(event.weight()); - } - - - /// Normalise histograms etc., after the run - void finalize() { - scale(_h_2l2j, crossSection()/sumOfWeights()/femtobarn); - } - - //@} - - - private: - - /// @name Histograms - //@{ - CounterPtr _h_2l2j; - //@} - - }; - - - // Hook for the plugin system - DECLARE_RIVET_PLUGIN(ATLAS_2016_I1492320_2l2j); - -} diff --git a/analyses/pluginATLAS/ATLAS_2016_I1492320_2l2j.info b/analyses/pluginATLAS/ATLAS_2016_I1492320_2l2j.info deleted file mode 100644 --- a/analyses/pluginATLAS/ATLAS_2016_I1492320_2l2j.info +++ /dev/null @@ -1,50 +0,0 @@ -Name: ATLAS_2016_I1492320_2l2j -Year: 2016 -Summary: WWW production at 8 TeV, 2L2J mode -Experiment: ATLAS -Collider: LHC -InspireID: 1492320 -Status: VALIDATED -Authors: - - Alex Long - - Ismet Siral - - Louis Helary - - Christian Gutschow -References: - - arXiv:1610.05088 [hep-ex] -Keywords: - - 3boson - - triboson - - multiboson - - 2lepton - - 3lepton - - jets -RunInfo: - pp -> WWW production at 8 TeV -Luminosity_fb: 20.3 -Beams: [p+, p+] -Energies: [8000] -PtCuts: [30,30,30,20] -Description: - 'This paper reports a search for triboson $W^\pm W^\pm W^\mp$ production in two decay channels - ($W^\pm W^\pm W^\mp \to \ell^\pm\nu \ell^\pm\nu \ell^\mp\nu$) and ($W^\pm W^\pm W^\mp \to \ell^\pm\nu \ell^\pm\nu jj$ with - $\ell = e,\mu$) in proton-proton collision data corresponding to an integrated luminosity of 20.3 fb${}^{-1}$ at a - centre-of-mass energy of 8 TeV with the ATLAS detector at the Large Hadron Collider. Events with exactly three charged - leptons, or two leptons with the same electric charge in association with two jets, are selected. The total number of events - observed in data is consistent with the Standard Model (SM) predictions. The observed 95 % confidence level upper limit on the SM - $W^\pm W^\pm W^\mp$ production cross section is found to be 730 fb with an expected limit of 560 fb in the absence of - SM $W^\pm W^\pm W^\mp$ production. Limits are also set on $WWWW$ anomalous quartic gauge couplings.' -BibKey: Aaboud:2016ftt -BibTeX: '@article{Aaboud:2016ftt, - author = "Aaboud, Morad and others", - title = "{Search for triboson $W^{\pm}W^{\pm}W^{\mp}$ production - in $pp$ collisions at $\sqrt{s}=8$ TeV with the ATLAS - detector}", - collaboration = "ATLAS", - year = "2016", - eprint = "1610.05088", - archivePrefix = "arXiv", - primaryClass = "hep-ex", - reportNumber = "CERN-EP-2016-172", - SLACcitation = "%%CITATION = ARXIV:1610.05088;%%" -}' diff --git a/analyses/pluginATLAS/ATLAS_2016_I1492320_2l2j.plot b/analyses/pluginATLAS/ATLAS_2016_I1492320_2l2j.plot deleted file mode 100644 --- a/analyses/pluginATLAS/ATLAS_2016_I1492320_2l2j.plot +++ /dev/null @@ -1,6 +0,0 @@ -# BEGIN PLOT /ATLAS_2016_I1492320_2l2j/d.. -LogY=0 -YLabel=Fiducial Cross section [fb] -LegendAlign=r -# END PLOT - diff --git a/analyses/pluginATLAS/ATLAS_2016_I1492320_3l.cc b/analyses/pluginATLAS/ATLAS_2016_I1492320_3l.cc deleted file mode 100644 --- a/analyses/pluginATLAS/ATLAS_2016_I1492320_3l.cc +++ /dev/null @@ -1,143 +0,0 @@ -// -*- C++ -* -#include "Rivet/Analysis.hh" -#include "Rivet/Projections/FinalState.hh" -#include "Rivet/Projections/FastJets.hh" -#include "Rivet/Projections/VetoedFinalState.hh" -#include "Rivet/Projections/MissingMomentum.hh" -#include "Rivet/Projections/DressedLeptons.hh" -#include "Rivet/Projections/PromptFinalState.hh" - -namespace Rivet { - - - /// @brief WWW cross-section at 8 TeV, 3L mode - class ATLAS_2016_I1492320_3l : public Analysis { - public: - - // Default constructor - ATLAS_2016_I1492320_3l() : Analysis("ATLAS_2016_I1492320_3l") { - setRefDataName("ATLAS_2016_I1492320"); - } - - /// @name Analysis methods - //@{ - - /// Book histograms and initialise projections before the run - void init() { - - // Charged leptons within acceptance - const PromptFinalState chLep_fid = PromptFinalState(Cuts::abspid == PID::ELECTRON || Cuts::abspid == PID::MUON); - const PromptFinalState photon_fs = PromptFinalState(Cuts::abspid == PID::PHOTON); - const DressedLeptons dressed_leps(photon_fs, chLep_fid, 0.1, Cuts::pT > 20*GeV && Cuts::abseta < 2.5); - declare(dressed_leps, "DressedLeptons"); - - // Jets, anti-kt 0.4 - VetoedFinalState fsJets(FinalState(Cuts::abseta < 7.0)); //final state for jet finding: veto leptons and neutrinos - fsJets.vetoNeutrinos(); - fsJets.addVetoOnThisFinalState(photon_fs); - fsJets.addVetoOnThisFinalState(chLep_fid); - declare(FastJets(fsJets, FastJets::ANTIKT, 0.4), "Jets"); - - // Missing momentum - declare(MissingMomentum(), "MET"); - - // Histograms - _h_fiducial_3l = bookCounter("d01-x01-y01"); - } - - - /// Perform the per-event analysis - void analyze(const Event& event) { - - // Get the dressed leptons, sorted by pT of their constituent bare lepton (!!) - vector _vbs_lep = apply(event, "DressedLeptons").dressedLeptons(); - if (_vbs_lep.size() != 3) vetoEvent; - std::sort(_vbs_lep.begin(), _vbs_lep.end(), [](const DressedLepton& l1, const DressedLepton& l2) { - return (l1.constituentLepton().pT() > l2.constituentLepton().pT()); - }); - - // Get the jets - const Jets& _vbs_jets = apply(event, "Jets").jetsByPt(Cuts::pT > 25*GeV && Cuts::abseta < 4.5); - if (_vbs_jets.size() > 1) vetoEvent; - - // Determine nsfos pairs for channel classification - int nSFOS = 0; - for (size_t i = 0; i < _vbs_lep.size(); ++i) { - const double ch_l0 = _vbs_lep[i].charge(); - for (size_t j = i + 1; j < _vbs_lep.size(); ++j) { - const double ch_l1 = _vbs_lep[j].charge(); - if (_vbs_lep[i].abspid() == _vbs_lep[j].abspid() && ch_l0*ch_l1 < 0) ++nSFOS; - } - } - - double minDRll = DBL_MAX, mSFOS_MinDiff = DBL_MAX, meeSS_MinDiff = DBL_MAX, mSF_min = DBL_MAX; - for (size_t i = 0; i < _vbs_lep.size(); ++i) { - const double ch_l0 = _vbs_lep[i].charge(); - for (size_t j = i + 1; j < _vbs_lep.size(); ++j) { - const double ch_l1 = _vbs_lep[j].charge(); - const bool samesign = ch_l0*ch_l1 > 0; - - // Update min dR between leptons - minDRll = min(minDRll, deltaR(_vbs_lep[i], _vbs_lep[j])); - - // Require same flavour - if (_vbs_lep[i].abspid() != _vbs_lep[j].abspid()) continue; - - // SF dilepton mass (used several times) - const double mSF = (_vbs_lep[i].momentum() + _vbs_lep[j].momentum()).mass(); - - // Determine min for all same-flavor pairs - mSF_min = min(mSF, mSF_min); - - // Determine min for all m_ee same-sign pairs - if (_vbs_lep[i].abspid() == PID::ELECTRON && samesign) { - if (fabs(mSF-ZMASS) < fabs(meeSS_MinDiff-ZMASS)) meeSS_MinDiff = mSF; - } - - // Determine min for all mSFOS pairs - if (!samesign && fabs(mSF-ZMASS) < abs(mSFOS_MinDiff-ZMASS)) mSFOS_MinDiff = mSF; - } - } - - if (minDRll < 0.1) vetoEvent; - if (nSFOS == 0 && mSF_min < 20*GeV) vetoEvent; - if (nSFOS == 0 && fabs(meeSS_MinDiff - ZMASS) < 15*GeV) vetoEvent; - if (nSFOS == 1 && ((ZMASS - mSFOS_MinDiff) < 35*GeV && (mSFOS_MinDiff - ZMASS) < 20*GeV)) vetoEvent; - if (nSFOS == 2 && fabs(mSFOS_MinDiff - ZMASS) < 20*GeV) vetoEvent; - - const Vector3& met = -1.0 * apply(event, "MET").vectorEt(); - if (nSFOS == 1 && met.mod() < 45*GeV) vetoEvent; - if (nSFOS == 2 && met.mod() < 55*GeV) vetoEvent; - - const double dPhi = deltaPhi((_vbs_lep[0].momentum() + _vbs_lep[1].momentum() + _vbs_lep[2].momentum()), met); - if (dPhi < 2.5) vetoEvent; - - // Fill histo - _h_fiducial_3l->fill(event.weight()); - } - - - /// Normalise histograms etc., after the run - void finalize() { - scale(_h_fiducial_3l, crossSection()/sumOfWeights()/femtobarn); - } - - //@} - - - private: - - /// @name Histograms - //@{ - const double ZMASS = 91.1876*GeV; - CounterPtr _h_fiducial_3l; - - //@} - - }; - - - // Hook for the plugin system - DECLARE_RIVET_PLUGIN(ATLAS_2016_I1492320_3l); - -} diff --git a/analyses/pluginATLAS/ATLAS_2016_I1492320_3l.info b/analyses/pluginATLAS/ATLAS_2016_I1492320_3l.info deleted file mode 100644 --- a/analyses/pluginATLAS/ATLAS_2016_I1492320_3l.info +++ /dev/null @@ -1,49 +0,0 @@ -Name: ATLAS_2016_I1492320_3l -Year: 2016 -Summary: WWW production at 8 TeV, 3L mode -Experiment: ATLAS -Collider: LHC -InspireID: 1492320 -Status: VALIDATED -Authors: - - Alex Long - - Ismet Siral - - Louis Helary - - Christian Gutschow -References: - - arXiv:1610.05088 [hep-ex] -Keywords: - - 3boson - - triboson - - multiboson - - 2lepton - - 3lepton -RunInfo: - pp -> WWW production at 8 TeV -Luminosity_fb: 20.3 -Beams: [p+, p+] -Energies: [8000] -PtCuts: [20,20,20] -Description: - 'This paper reports a search for triboson $W^\pm W^\pm W^\mp$ production in two decay channels - ($W^\pm W^\pm W^\mp \to \ell^\pm\nu \ell^\pm\nu \ell^\mp\nu$) and ($W^\pm W^\pm W^\mp \to \ell^\pm\nu \ell^\pm\nu jj$ with - $\ell = e,\mu$) in proton-proton collision data corresponding to an integrated luminosity of 20.3 fb${}^{-1}$ at a - centre-of-mass energy of 8 TeV with the ATLAS detector at the Large Hadron Collider. Events with exactly three charged - leptons, or two leptons with the same electric charge in association with two jets, are selected. The total number of events - observed in data is consistent with the Standard Model (SM) predictions. The observed 95 % confidence level upper limit on the SM - $W^\pm W^\pm W^\mp$ production cross section is found to be 730 fb with an expected limit of 560 fb in the absence of - SM $W^\pm W^\pm W^\mp$ production. Limits are also set on $WWWW$ anomalous quartic gauge couplings.' -BibKey: Aaboud:2016ftt -BibTeX: '@article{Aaboud:2016ftt, - author = "Aaboud, Morad and others", - title = "{Search for triboson $W^{\pm}W^{\pm}W^{\mp}$ production - in $pp$ collisions at $\sqrt{s}=8$ TeV with the ATLAS - detector}", - collaboration = "ATLAS", - year = "2016", - eprint = "1610.05088", - archivePrefix = "arXiv", - primaryClass = "hep-ex", - reportNumber = "CERN-EP-2016-172", - SLACcitation = "%%CITATION = ARXIV:1610.05088;%%" -}' diff --git a/analyses/pluginATLAS/ATLAS_2016_I1492320_3l.plot b/analyses/pluginATLAS/ATLAS_2016_I1492320_3l.plot deleted file mode 100644 --- a/analyses/pluginATLAS/ATLAS_2016_I1492320_3l.plot +++ /dev/null @@ -1,6 +0,0 @@ -# BEGIN PLOT /ATLAS_2016_I1492320_3l/d.. -LogY=0 -YLabel=Fiducial Cross section [fb] -LegendAlign=r -# END PLOT -