rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

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: 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
 1// -*-C++ - *-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/AliceCommon.hh"
 4
 5namespace Rivet {
 6
 7
 8  /// @brief Charged particle production at 13 TeV
 9  class LHCB_2021_I1889335 : public Analysis {
10  public:
11
12    /// Constructor
13    RIVET_DEFAULT_ANALYSIS_CTOR(LHCB_2021_I1889335);
14
15
16    /// @name Analysis methods
17    //@{
18
19    /// Book histograms and initialise projections before the run
20    void init() {
21
22      // Register projection for primary particles
23      declare(ALICE::PrimaryParticles(Cuts::etaIn(2.0, 4.8) && Cuts::abscharge > 0), "APRIM");
24
25      vector<double> edges = {2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 4.8};
26      book(_h_ppInel_neg, edges);
27      book(_h_ppInel_pos, edges);
28      for (size_t i=0; i < edges.size(); ++i) {
29        book(_h_ppInel_neg->bin(i+1), 1, 1, i+1);
30        book(_h_ppInel_pos->bin(i+1), 2, 1, i+1);
31      }
32    }
33
34
35    void analyze(const Event &event) {
36
37      const Particles cfs = apply<ALICE::PrimaryParticles>(event, "APRIM").particles();
38
39      for (const Particle& myp : cfs) {
40        if (myp.charge() < 0) {
41          _h_ppInel_neg->fill(myp.eta(), myp.pT()/GeV);
42        }
43        else {
44          _h_ppInel_pos->fill(myp.eta(), myp.pT()/GeV);
45        }
46      }
47    }
48
49
50    /// Normalise histograms etc., after the run
51    void finalize() {
52      const double scale_factor = crossSection() / millibarn / sumOfWeights();
53      scale({_h_ppInel_neg, _h_ppInel_pos}, scale_factor);
54      divByGroupWidth({_h_ppInel_neg, _h_ppInel_pos});
55    }
56
57    /// @}
58
59
60  private:
61
62    /// @name Histogram
63    Histo1DGroupPtr _h_ppInel_neg, _h_ppInel_pos;
64
65  };
66
67
68  RIVET_DECLARE_PLUGIN(LHCB_2021_I1889335);
69
70}