Rivet analyses
Production of light-flavor hadrons in pp collisions at 13 TeV
Experiment: ALICE (LHC)
Inspire ID: 1797443
Status: VALIDATED
Authors: - Markus Seidel
References: - Eur. Phys. J. C 81 (2021) 256 - CERN-EP-2020-059 - arXiv: 2005.11120
Beams: p+ p+
Beam energies: (6500.0, 6500.0)GeV
Run details: - Minimum bias events
The production of light and strange hadrons was measured in inelastic proton-proton (pp) collisions at a center-of-mass energy of 13 TeV at midrapidity (|y|<0.5) as a function of transverse momentum (pT) using the ALICE detector at the CERN LHC.
Source
code:ALICE_2020_I1797443.cc
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/UnstableParticles.hh"
namespace Rivet {
/// @brief Production of light-flavor hadrons in pp collisions at 13 TeV
class ALICE_2020_I1797443 : public Analysis {
public:
/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(ALICE_2020_I1797443);
/// @name Analysis methods
/// @{
/// Book histograms and initialise projections before the run
void init() {
// All final-state and unstable particles within
// the given rapidity acceptance
const UnstableParticles up(Cuts::absrap < 0.5);
declare(up, "up");
// Book histograms
book(_h["pi"], 1, 1, 1);
book(_h["k"], 2, 1, 1);
book(_h["k0s"], 3, 1, 1);
book(_h["k*0"], 4, 1, 1);
book(_h["phi"], 5, 1, 1);
book(_h["p"], 6, 1, 1);
book(_h["l0"], 7, 1, 1);
book(_h["xi"], 8, 1, 1);
book(_h["omega"], 9, 1, 1);
// Book ratios
book(_s["k/pi"], 21, 1, 1);
book(_s["k*0/pi"], 22, 1, 1);
book(_s["k0s/pi"], 23, 1, 1);
book(_s["phi/pi"], 24, 1, 1);
book(_s["p/pi"], 42, 1, 1);
book(_s["l0/k0s"], 43, 1, 1);
book(_s["omega/phi"], 44, 1, 1);
book(_s["xi/phi"], 45, 1, 1);
// Book temporary histograms for ratios
book(_h["k_for_k/pi"], "TMP/k_for_k/pi", refData(21, 1, 1));
book(_h["pi_for_k/pi"], "TMP/pi_for_k/pi", refData(21, 1, 1));
book(_h["k*0_for_k*0/pi"], "TMP/k*0_for_k*0/pi", refData(22, 1, 1));
book(_h["pi_for_k*0/pi"], "TMP/pi_for_k*0/pi", refData(22, 1, 1));
book(_h["k0s_for_k0s/pi"], "TMP/k0s_for_k0s/pi", refData(23, 1, 1));
book(_h["pi_for_k0s/pi"], "TMP/pi_for_k0s/pi", refData(23, 1, 1));
book(_h["phi_for_phi/pi"], "TMP/phi_for_phi/pi", refData(24, 1, 1));
book(_h["pi_for_phi/pi"], "TMP/pi_for_phi/pi", refData(24, 1, 1));
book(_h["p_for_p/pi"], "TMP/p_for_p/pi", refData(42, 1, 1));
book(_h["pi_for_p/pi"], "TMP/pi_for_p/pi", refData(42, 1, 1));
book(_h["l0_for_l0/k0s"], "TMP/l0_for_l0/k0s", refData(43, 1, 1));
book(_h["k0s_for_l0/k0s"], "TMP/k0s_for_l0/k0s", refData(43, 1, 1));
book(_h["omega_for_omega/phi"], "TMP/omega_for_omega/phi", refData(44, 1, 1));
book(_h["phi_for_omega/phi"], "TMP/phi_for_omega/phi", refData(44, 1, 1));
book(_h["xi_for_xi/phi"], "TMP/xi_for_xi/phi", refData(45, 1, 1));
book(_h["phi_for_xi/phi"], "TMP/phi_for_xi/phi", refData(45, 1, 1));
}
/// Perform the per-event analysis
void analyze(const Event& event) {
const Particles& up = apply<UnstableParticles>(event, "up").particles();
for (const Particle& p : up) {
if (p.abspid() == 211) {
_h["pi"]->fill(p.pT() / GeV);
_h["pi_for_k/pi"]->fill(p.pT() / GeV);
_h["pi_for_k*0/pi"]->fill(p.pT() / GeV);
_h["pi_for_k0s/pi"]->fill(p.pT() / GeV);
_h["pi_for_phi/pi"]->fill(p.pT() / GeV);
_h["pi_for_p/pi"]->fill(p.pT() / GeV);
}
else if (p.abspid() == 321) {
_h["k"]->fill(p.pT() / GeV);
_h["k_for_k/pi"]->fill(p.pT() / GeV);
}
else if (p.abspid() == 310) {
_h["k0s"]->fill(p.pT() / GeV);
_h["k0s_for_k0s/pi"]->fill(p.pT() / GeV);
_h["k0s_for_l0/k0s"]->fill(p.pT() / GeV);
}
else if (p.abspid() == 2212) {
_h["p"]->fill(p.pT() / GeV);
_h["p_for_p/pi"]->fill(p.pT() / GeV);
}
else if (p.abspid() == 313) {
_h["k*0"]->fill(p.pT() / GeV);
_h["k*0_for_k*0/pi"]->fill(p.pT() / GeV);
}
else if (p.abspid() == 333) {
_h["phi"]->fill(p.pT() / GeV);
_h["phi_for_phi/pi"]->fill(p.pT() / GeV);
_h["phi_for_omega/phi"]->fill(p.pT() / GeV);
_h["phi_for_xi/phi"]->fill(p.pT() / GeV);
}
else if (p.abspid() == 3122) {
_h["l0"]->fill(p.pT() / GeV);
_h["l0_for_l0/k0s"]->fill(p.pT() / GeV);
}
else if (p.abspid() == 3312) {
_h["xi"]->fill(p.pT() / GeV);
_h["xi_for_xi/phi"]->fill(p.pT() / GeV);
}
else if (p.abspid() == 3334) {
_h["omega"]->fill(p.pT() / GeV);
_h["omega_for_omega/phi"]->fill(p.pT() / GeV);
}
}
}
/// Normalise histograms etc., after the run
void finalize() {
scale(_h, 1./sumOfWeights());
scale({_h["k0s_for_k0s/pi"], _h["phi_for_phi/pi"], _h["k0s_for_l0/k0s"]}, 2.);
divide(_h["k_for_k/pi"], _h["pi_for_k/pi"], _s["k/pi"]);
divide(_h["k*0_for_k*0/pi"], _h["pi_for_k*0/pi"], _s["k*0/pi"]);
divide(_h["k0s_for_k0s/pi"], _h["pi_for_k0s/pi"], _s["k0s/pi"]);
divide(_h["phi_for_phi/pi"], _h["pi_for_phi/pi"], _s["phi/pi"]);
divide(_h["p_for_p/pi"], _h["pi_for_p/pi"], _s["p/pi"]);
divide(_h["l0_for_l0/k0s"], _h["k0s_for_l0/k0s"], _s["l0/k0s"]);
divide(_h["omega_for_omega/phi"], _h["phi_for_omega/phi"], _s["omega/phi"]);
divide(_h["xi_for_xi/phi"], _h["phi_for_xi/phi"], _s["xi/phi"]);
}
///@}
/// @name Histograms
///@{
map<string, Histo1DPtr> _h;
map<string, Estimate1DPtr> _s;
///@}
};
RIVET_DECLARE_PLUGIN(ALICE_2020_I1797443);
}