Rivet analyses


title: LHCB_2021_I1889335

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 $p_T \in [80, 10000)$ MeV$/c$ and $\eta \in [2.0, 4.8)$ and is determined separately for positively and negatively charged particles.

Source code:LHCB_2021_I1889335.cc

```c++ // --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);

} ```