Rivet analyses
Study of J/ψ production and cold nuclear matter effects in pPb collisions at $\sqrt{s_{NN}} = 5$ TeV
Experiment: LHCB (LHC)
Inspire ID: 1251899
Status: VALIDATED
Authors: - Gino Daniels - Lars Kolk - Julian Boelhauve
References: - JHEP 02 (2014) 072 - DOI:10.1007/JHEP02(2014)072 - arXiv: 1308.6729 - CERN-PH-EP-2013-156 - LHCB-PAPER-2013-052
Beams: p+ 1000822080
Beam energies: (4000.0, 328000.0)GeV
Run details: - Minimum-bias proton-lead interactions at 5 TeV centre-of-mass energy.
The production of J/ψ mesons with rapidity 1.5 < y < 4.0 or −5.0 < y < −2.5 and transverse momentum pT < 14 GeV/c is studied with the LHCb detector in proton-lead collisions at a nucleon-nucleon centre-of-mass energy $\sqrt{s_{NN}} = 5\,\mathrm{TeV}$. The J/ψ mesons are renconstructed using the dimuon decay mode. The analysis is based on a data sample corresponding to an integrated luminosity of about 1.6 nb−1. For the first time the nuclear modification factor and forward-backward production ratio are determined separately for prompt J/ψ mesons and J/ψ from b-hadron decays. Clear suppression of prompt J/ψ production with respect to proton-proton collisions at large rapidity is observed, while the production of J/ψ from b-hadron decays is less suppressed. These results show good agreement with available theoretical predictions. The measurement shows that cold nuclear matter effects are important for interpretations of the related quark-gluon plasma signatures in heavy-ion collisions.
Source
code:LHCB_2013_I1251899.cc
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/UnstableParticles.hh"
namespace Rivet
{
/// @brief J/psi production in pPb collisions at $\sqrt{s_{NN}} = 5$ TeV
class LHCB_2013_I1251899 : public Analysis
{
public:
RIVET_DEFAULT_ANALYSIS_CTOR(LHCB_2013_I1251899);
void init()
{
for (size_t i = 0; i < 2; ++i)
{
book(_int_fw_y_pt[i], 1, 1, i + 1);
book(_int_bw_y_pt[i], 2, 1, i + 1);
book(_fw_y_hist[i], 3, 1, i + 1);
book(_bw_y_hist[i], 4, 1, i + 1);
string hname = "d0" + std::to_string(i + 5) + "-x01-y0";
book(_diff_fw_y_pt_hist[i], {1.5, 2.0, 2.5, 3.0, 3.5, 4.0},
{hname + "1", hname + "2", hname + "3", hname + "4", hname + "5"});
book(_fw_bw_ratio[i], 9, 1, i + 1);
// Define temporary histograms with transverse-momentum intervals to compute
// forward-to-backward ratios
book(_fw_red_y_pt_hist[i], "TMP/_fw_red_y_pt_hist" + std::to_string(i+1), refData(9, 1, i + 1));
book(_bw_red_y_pt_hist[i], "TMP/_bw_red_y_pt_hist" + std::to_string(i+1), refData(9, 1, i + 1));
}
// Select J/psi mesons
declare(UnstableParticles(
(Cuts::abspid == PID::JPSI) &&
(Cuts::pT < 14. * GeV) &&
(Cuts::rapIn(1.5, 4.0) || Cuts::rapIn(-5.0, -2.5))),
"UPs");
}
void analyze(const Event &ev)
{
Particles prompt_jpsi_mesons;
Particles from_b_jpsi_mesons;
size_t idx = -1; // 0 for prompt, 1 for from-b
// Apply UnstableParticles projection to get entire decay chain of every particle
const UnstableParticles &unst_parts = apply<UnstableParticles>(ev, "UPs");
for (const Particle &part : unst_parts.particles())
{
double y = part.rapidity();
double pt = part.pT();
idx = (part.fromBottom()) ? 1 : 0; // histogram index depending on promptness
if (y > 0) { // forward region J/psi
_int_fw_y_pt[idx]->fill(pt);
_fw_y_hist[idx]->fill(y);
_diff_fw_y_pt_hist[idx]->fill(y, pt);
_fw_red_y_pt_hist[idx]->fill(pt);
} else { // backward region J/psi
_int_bw_y_pt[idx]->fill(pt);
_bw_y_hist[idx]->fill(y);
_bw_red_y_pt_hist[idx]->fill(pt);
};
}
}
void finalize()
{
// Compute scale factor with inelastic cross-section from input file and sum of
// weights (corresponds to number of events in input file)
const double scale_fact = crossSection() / microbarn / sumOfWeights();
// Apply scale factor (histogram scaled by interval widths when running plotting
// command [results in differential cross-section])
for(size_t i = 0; i < 2; ++i) {
scale(_int_fw_y_pt[i], scale_fact);
scale(_int_bw_y_pt[i], scale_fact);
scale(_fw_y_hist[i], scale_fact);
scale(_bw_y_hist[i], scale_fact);
_diff_fw_y_pt_hist[i]->divByGroupWidth();
_diff_fw_y_pt_hist[i]->scaleW(scale_fact);
// Compute forward-to-backward ratios
divide(_fw_red_y_pt_hist[i], _bw_red_y_pt_hist[i], _fw_bw_ratio[i]);
}
}
Histo1DPtr _int_fw_y_pt[2]; // 0 for prompt, 1 for from-b
Histo1DPtr _int_bw_y_pt[2];
Histo1DPtr _fw_y_hist[2];
Histo1DPtr _bw_y_hist[2];
Histo1DGroupPtr _diff_fw_y_pt_hist[2];
Estimate1DPtr _fw_bw_ratio[2];
Histo1DPtr _fw_red_y_pt_hist[2];
Histo1DPtr _bw_red_y_pt_hist[2];
};
RIVET_DECLARE_PLUGIN(LHCB_2013_I1251899);
}