Rivet analyses referenceCMS_2019_I1705068Measurement of associated production of a W boson and a charm quark in proton-proton collisions at 13 TeVExperiment: CMS (LHC) Inspire ID: 1705068 Status: VALIDATED Authors:
Beam energies: (6500.0, 6500.0) GeV Run details:
Measurements are presented of associated production of a W boson and a charm quark (W+c) in proton-proton collisions at a center-of-mass energy of 13 TeV. The data correspond to an integrated luminosity of $35.7 fb^{-1}$ collected by the CMS experiment at the CERN LHC. The W bosons are identified by their decay into a muon and a neutrino. The charm quarks are tagged via the full reconstruction of $D*(2010)^{\pm}$ mesons that decay via $D*(2010)^{\pm} \to D^{0} + \pi^{pm} \to K^{\mp} + \pi^{pm} + \pi^{pm}$. A parton-level cross section is measured in the fiducial region defined by the muon transverse momentum $\p_{T}^{\mu} > 26 GeV$, muon pseudorapidity $\abs{\eta^{\mu}} < 2.4$, and charm quark transverse momentum $p_{T}^{c} > 5\text{GeV}$. The cross section is also measured differentially as a function of the pseudorapidity of the muon from the W boson decay. A particle-level cross section is measured in the fiducial region defined by the muon transverse momentum $\p_{T}^{\mu} > 26 GeV$, muon pseudorapidity $\abs{\eta^{\mu}} < 2.4$, D*(2010)^{\pm} transverse momentum $p_{T}^{D*} > 5\text{GeV}$ and D*(2010)^{\pm} pseudorapidity $\abs{\eta^{D*}} < 2.4$. The particle-level cross section has been implemented in the Rivet plugin. Source code: CMS_2019_I1705068.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/FinalState.hh"
4#include "Rivet/Projections/FastJets.hh"
5#include "Rivet/Projections/WFinder.hh"
6#include "Rivet/Projections/UnstableParticles.hh"
7
8namespace Rivet {
9
10
11 // Measurement of associated production of a W boson and a charm quark in proton-proton collisions at 13 TeV
12 class CMS_2019_I1705068 : public Analysis {
13 public:
14
15 RIVET_DEFAULT_ANALYSIS_CTOR(CMS_2019_I1705068);
16
17
18 void init() {
19
20 // Projections
21 FinalState fs;
22 WFinder wfinder_mu(fs, Cuts::abseta < 2.4 && Cuts::pT > 0*GeV, PID::MUON,
23 0*GeV, 1000000*GeV, 0*GeV, 0.1, WFinder::ChargedLeptons::PROMPT,
24 WFinder::ClusterPhotons::NODECAY, WFinder::AddPhotons::NO, WFinder::MassWindow::MT);
25 declare(wfinder_mu, "WFinder_mu");
26
27 UnstableParticles dst(Cuts::pT > 5*GeV && Cuts::abseta < 2.4);
28 declare(dst, "Dstar");
29
30 // Particle-Level histograms from the paper:
31 book(_hist_WplusMinus_MuAbseta, "d04-x01-y01");
32 book(_hist_Wplus_MuAbseta, "d05-x01-y01");
33 book(_hist_Wminus_MuAbseta, "d06-x01-y01");
34
35 }
36
37
38 void analyze(const Event& event) {
39
40 // Get the reconstructed W
41 const WFinder& wfinder_mu = applyProjection<WFinder>(event, "WFinder_mu");
42 if (wfinder_mu.bosons().size() != 1) vetoEvent;
43
44 // No Missing Energy or MT cut at generator level:
45 const FourMomentum& lepton0 = wfinder_mu.constituentLeptons()[0].momentum();
46 double pt0 = lepton0.pT();
47 double eta0 = fabs( lepton0.eta() );
48 if ( (eta0 > 2.4) || (pt0 < 26.0*GeV) ) vetoEvent;
49
50 int muID = wfinder_mu.constituentLeptons()[0].pid();
51
52
53 // D* selection:
54 // OS = W boson and D* Meson have Opposite (charge) Signs
55 // SS = W Boson and D* Meson have Same (charge) Signs
56 // Associated W+c only has OS contributions,
57 // W+ccbar (ccbar from gluon splitting) has equal probability to be OS or SS
58 // OS-SS to remove the gluon splitting background
59
60 const UnstableParticles& dst = applyProjection<UnstableParticles>(event, "Dstar");
61 for (auto p: dst.particles()) {
62 if (muID == -13 && p.pid() == -413) { // OS
63 _hist_Wplus_MuAbseta->fill(eta0);
64 _hist_WplusMinus_MuAbseta->fill(eta0);
65 }
66 else if (muID == 13 && p.pid() == 413) { // OS
67 _hist_Wminus_MuAbseta->fill(eta0);
68 _hist_WplusMinus_MuAbseta->fill(eta0);
69 }
70 else if (muID == -13 && p.pid() == 413) { // SS
71 _hist_Wplus_MuAbseta->fill(eta0*-1);
72 _hist_WplusMinus_MuAbseta->fill(eta0*-1);
73 }
74 else if (muID == 13 && p.pid() == -413) { // SS
75 _hist_Wminus_MuAbseta->fill(eta0*-1);
76 _hist_WplusMinus_MuAbseta->fill(eta0*-1);
77 }
78 }
79
80 }
81
82
83 void finalize() {
84 scale(_hist_Wplus_MuAbseta, crossSection()/picobarn/sumOfWeights());
85 scale(_hist_Wminus_MuAbseta, crossSection()/picobarn/sumOfWeights());
86 scale(_hist_WplusMinus_MuAbseta, crossSection()/picobarn/sumOfWeights());
87 }
88
89
90 Histo1DPtr _hist_Wplus_MuAbseta;
91 Histo1DPtr _hist_Wminus_MuAbseta;
92 Histo1DPtr _hist_WplusMinus_MuAbseta;
93
94 };
95
96
97
98 RIVET_DECLARE_PLUGIN(CMS_2019_I1705068);
99
100}
|