Rivet analyses
$_c^ 0 $ production at 5.02 TeV
Experiment: ALICE (LHC)
Inspire ID: 1863039
Status: VALIDATED
Authors: - Peter Richardson
References: - JHEP 10 (2021) 159
Beams: p+ p+
Beam energies: (2510.0, 2510.0)GeV
Run details: - hadronic events
Differential cross section in p⟂ for prompt Ξc0 production at 5 TeV
Source
code:ALICE_2021_I1863039.cc
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/UnstableParticles.hh"
namespace Rivet {
/// @brief Xi_c0 at 5 TeV
class ALICE_2021_I1863039 : public Analysis {
public:
/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(ALICE_2021_I1863039);
/// @name Analysis methods
/// @{
/// Book histograms and initialise projections before the run
void init() {
// projection
declare(UnstableParticles(Cuts::pid == 4132 || Cuts::pid == 421), "UFS");
for (unsigned int ix = 0; ix < 2; ++ix) {
book(_h_Xi_pT[ix], 1 + ix, 1, 1);
book(_h_D0_pT[ix], "TMP/pT_D0_" + toString(ix), refData(3 + ix, 1, 1));
}
book(_h_Xi_pT[2], "TMP/pT_Xi", refData(4, 1, 1));
book(_h_sig, 5, 1, 1);
book(_c_D0, "TMP/c_D0");
book(_c_Xi, "TMP/c_Xi");
}
/// 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()) {
// no mixing
if (p.children().size() == 1 || p.children()[0].abspid() == p.abspid()) continue;
// rapidity cut
if (p.absrap() > 0.5) continue;
const double pT = p.perp();
if (p.pid() == 421) {
// only prompt
if (!p.fromBottom()) {
_h_D0_pT[0]->fill(pT);
_h_D0_pT[1]->fill(pT);
}
_c_D0->fill();
}
else {
// prompt
if (!p.fromBottom()) {
_c_Xi->fill();
_h_sig->fill("$>$ 0.0"s);
_h_Xi_pT[0]->fill(pT);
}
// inclusive
_h_Xi_pT[1]->fill(pT);
_h_Xi_pT[2]->fill(pT);
}
}
}
/// Normalise histograms etc., after the run
void finalize() {
const double factor = crossSection() / microbarn / sumOfWeights();
scale(_h_Xi_pT, factor);
scale(_h_D0_pT, factor);
scale(_h_sig, factor);
// ratio prompt Xi0/D0
Estimate1DPtr tmp;
book(tmp, 3, 1, 1);
divide(_h_Xi_pT[0], _h_D0_pT[0], tmp);
// ratio inclusive Xi0/D0
book(tmp, 4, 1, 1);
divide(_h_Xi_pT[2], _h_D0_pT[1], tmp);
// ratio Xi0_D0 integrated
Estimate0D e0d = *_c_Xi / *_c_D0;
BinnedEstimatePtr<string> ratio;
book(ratio, 6, 1, 1);
auto& b = ratio->bin(1);
b.setVal(e0d.val());
b.setErr(e0d.err());
}
/// @}
/// @name Histograms
/// @{
Histo1DPtr _h_Xi_pT[3], _h_D0_pT[2];
BinnedHistoPtr<string> _h_sig;
CounterPtr _c_D0, _c_Xi;
/// @}
};
RIVET_DECLARE_PLUGIN(ALICE_2021_I1863039);
}