Rivet analyses
title: ALICE_2024_I2848263
Measurement of $\omega$ meson production in pp collisions at $\sqrt{s} = 13$ TeV
Experiment: ALICE (LHC)
Inspire ID: 2848263
Status: VALIDATED
Authors: - Awais Ahmed
References: - arXiv: 2411.09432 - CERN-EP-2024-303
Beams: p+ p+
Beam energies: (6500.0, 6500.0)GeV
Run details: - Minimum-bias inelastic pp collisions at $\sqrt{s} = 13$ TeV. Events selected with a V0 coincidence trigger (V0A $\cap$ V0C). Primary vertex within $|z_{\rm vtx}| < 10$ cm from the nominal interaction point.
Measurement of the $p_{\rm T}$-differential invariant cross section $E\,{\rm d}^3\sigma/{\rm d}p^3$ of inclusive $\omega$ meson production at mid-rapidity ($|y| < 0.5$) in pp collisions at $\sqrt{s} = 13$ TeV with the ALICE detector at the LHC. The $\omega$ meson is reconstructed via its $\omega \to \pi^+\pi^-\pi^0$ decay channel using five different $\pi^0$ reconstruction methods (PCM, PCM-EMC, PCM-PHOS, PHOS, EMC). The measurement covers an unprecedented transverse-momentum range of $1.6 < p_{\rm T} < 50\,{\rm GeV}/c$, extending previous measurements by a factor of three.
Source code:ALICE_2024_I2848263.cc
```c++ // -- C++ --
include "Rivet/Analysis.hh"
include "Rivet/Projections/UnstableParticles.hh"
namespace Rivet {
/// @brief Measurement of omega(782) meson production in pp collisions at 13 TeV class ALICE_2024_I2848263 : public Analysis { public:
/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(ALICE_2024_I2848263);
/// @name Analysis methods
/// @{
/// Initialize projections and book histograms
void init() {
// Midrapidity cut |y| < 0.5
declare(UnstableParticles(Cuts::absrap < 0.5), "UFS");
// Book omega histogram bound directly to reference data (1, 1, 1)
book(_h_omega, 1, 1, 1);
// Book pi0 histogram (temporary, used for ratio calculation)
book(_h_pi0, "TMP/pi0", refData(1, 1, 1));
// Book ratio estimate (2, 1, 1)
book(_s_ratio, 2, 1, 1);
}
/// Perform per-event analysis
void analyze(const Event& event) {
const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
for (const Particle& p : ufs.particles()) {
if (p.pid() == 223) {
_h_omega->fill(p.pT() / GeV);
}
else if (p.pid() == 111) {
_h_pi0->fill(p.pT() / GeV);
}
}
}
/// Normalise histograms and apply pT scaling
void finalize() {
// Normalization: crossSection / (sumOfWeights * 2 * PI * Delta_y)
// Here Delta_y = 1.0 (since |y| < 0.5 means from -0.5 to 0.5)
const double norm = crossSection() / picobarn / sumOfWeights() / (2.0 * M_PI * 1.0);
scale(_h_omega, norm);
scale(_h_pi0, norm);
// Compute ratio BEFORE scaling by 1/pT
divide(_h_omega, _h_pi0, _s_ratio);
// Apply 1/pT invariant yield scaling to _h_omega
for (auto& b : _h_omega->bins()) {
if (b.xMean() > 0) {
b.scaleW(1.0 / b.xMean());
}
}
}
/// @}
private:
/// @name Histograms and Estimates
/// @{
Histo1DPtr _h_omega, _h_pi0;
Estimate1DPtr _s_ratio;
/// @}
};
RIVET_DECLARE_PLUGIN(ALICE_2024_I2848263); } ```