Rivet analyses
Prompt and non-prompt ηc production at 13 TeV
Experiment: LHCB (LHC)
Inspire ID: 1763898
Status: VALIDATED
Authors: - Peter Richardson
References: - Eur.Phys.J.C 80 (2020) 3, 191
Beams: p+ p+
Beam energies: (6500.0, 6500.0)GeV
Run details: - hadronic events with eta_c and J/psi production
Measurement of the differential cross section with respect to p⟂ of ηc production at 13 TeV by the LHCb collaboration.
Source
code:LHCB_2020_I1763898.cc
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/UnstableParticles.hh"
namespace Rivet {
/// @brief eta_c production at 13 TeV
class LHCB_2020_I1763898 : public Analysis {
public:
/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(LHCB_2020_I1763898);
/// @name Analysis methods
/// @{
/// Book histograms and initialise projections before the run
void init() {
declare(UnstableParticles(), "UFS");
for (unsigned int ix = 0; ix < 2; ++ix) {
book(_h_etac[ix], 2 + 2 * ix, 1, 1);
book(_h_Jpsi[ix], "TMP/Jpsi" + toString(ix), refData(2 + 2 * ix, 1, 1));
}
}
/// Perform the per-event analysis
void analyze(const Event& event) {
// Final state of unstable particles to get particle spectra
const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
for (const Particle& p : ufs.particles(Cuts::pid == 441 || Cuts::pid == 443)) {
// prompt/non-prompt
bool nonPrompt = p.fromBottom();
double absrap = p.absrap();
double xp = p.perp();
if (absrap > 2. && absrap < 4.5) {
if (p.pid() == 441)
_h_etac[nonPrompt]->fill(xp);
else
_h_Jpsi[nonPrompt]->fill(xp);
}
}
}
/// Normalise histograms etc., after the run
void finalize() {
// 1/2 due rapidity folding +/-
double factor = 0.5 * crossSection() / nanobarn / sumOfWeights();
for (unsigned int ix = 0; ix < 2; ++ix) {
scale(_h_etac[ix], factor);
scale(_h_Jpsi[ix], factor);
Estimate1DPtr tmp;
book(tmp, 1 + 2 * ix, 1, 1);
divide(_h_etac[ix], _h_Jpsi[ix], tmp);
}
}
/// @}
/// @name Histograms
/// @{
Histo1DPtr _h_etac[2], _h_Jpsi[2];
/// @}
};
RIVET_DECLARE_PLUGIN(LHCB_2020_I1763898);
}