Rivet analyses
Measurement of pp inelastic cross-section at 13 TeV using prompt, long-lived particles in the LHCb fiducial phase-space
Experiment: LHCB (LHC)
Inspire ID: 1889335
Status: VALIDATED
Authors: - Lars Kolk
References: - JHEP 01 (2022) 166 - DOI:10.1007/JHEP01(2022)166 - arXiv: 2107.10090 - Expt page: LHCb-PAPER-2021-010 - CERN-EP-2021-110
Beams: p+ p+
Beam energies: (6500.0, 6500.0)GeV
Run details: - Proton-proton interactions at 13 TeV centre-of-mass energy. LHCb minimum bias, inelastic events.
The differential cross-section of prompt inclusive production of long-lived charged particles in proton-proton collisions is measured using a data sample recorded by the LHCb experiment at a centre-of-mass energy of $\sqrt{s} = 13$ TeV. The data sample, collected with an unbiased trigger, corresponds to an integrated luminosity of 5.4 nb−1. The differential cross-section is measured as a function of transverse momentum and pseudorapidity in the ranges pT ∈ [80, 10000) MeV/c and η ∈ [2.0, 4.8) and is determined separately for positively and negatively charged particles.
Source
code:LHCB_2021_I1889335.cc
// -*-C++ - *-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/AliceCommon.hh"
namespace Rivet {
/// @brief Charged particle production at 13 TeV
class LHCB_2021_I1889335 : public Analysis {
public:
/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(LHCB_2021_I1889335);
/// @name Analysis methods
//@{
/// Book histograms and initialise projections before the run
void init() {
// Register projection for primary particles
declare(ALICE::PrimaryParticles(Cuts::etaIn(2.0, 4.8) && Cuts::abscharge > 0), "APRIM");
vector<double> edges = {2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 4.8};
book(_h_ppInel_neg, edges);
book(_h_ppInel_pos, edges);
for (size_t i=1; i < edges.size(); ++i) {
book(_h_ppInel_neg->bin(i), 1, 1, i);
book(_h_ppInel_pos->bin(i), 2, 1, i);
}
}
void analyze(const Event &event) {
const Particles cfs = apply<ALICE::PrimaryParticles>(event, "APRIM").particles();
for (const Particle& myp : cfs) {
if (myp.charge() < 0) {
_h_ppInel_neg->fill(myp.eta(), myp.pT()/GeV);
}
else {
_h_ppInel_pos->fill(myp.eta(), myp.pT()/GeV);
}
}
}
/// Normalise histograms etc., after the run
void finalize() {
const double scale_factor = crossSection() / millibarn / sumOfWeights();
scale({_h_ppInel_neg, _h_ppInel_pos}, scale_factor);
divByGroupWidth({_h_ppInel_neg, _h_ppInel_pos});
}
/// @}
private:
/// @name Histogram
Histo1DGroupPtr _h_ppInel_neg, _h_ppInel_pos;
};
RIVET_DECLARE_PLUGIN(LHCB_2021_I1889335);
}