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
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// -*-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(ETAMIN, ETAMAX) && Cuts::abscharge > 0), "APRIM");

      {Histo1DPtr tmp; _h_ppInel_neg.add(2.0, 2.5, book(tmp, 1, 1, 1));}
      {Histo1DPtr tmp; _h_ppInel_neg.add(2.5, 3.0, book(tmp, 1, 1, 2));}
      {Histo1DPtr tmp; _h_ppInel_neg.add(3.0, 3.5, book(tmp, 1, 1, 3));}
      {Histo1DPtr tmp; _h_ppInel_neg.add(3.5, 4.0, book(tmp, 1, 1, 4));}
      {Histo1DPtr tmp; _h_ppInel_neg.add(4.0, 4.5, book(tmp, 1, 1, 5));}
      {Histo1DPtr tmp; _h_ppInel_neg.add(4.5, 4.8, book(tmp, 1, 1, 6));}
      
      {Histo1DPtr tmp; _h_ppInel_pos.add(2.0, 2.5, book(tmp, 2, 1, 1));}
      {Histo1DPtr tmp; _h_ppInel_pos.add(2.5, 3.0, book(tmp, 2, 1, 2));}
      {Histo1DPtr tmp; _h_ppInel_pos.add(3.0, 3.5, book(tmp, 2, 1, 3));}
      {Histo1DPtr tmp; _h_ppInel_pos.add(3.5, 4.0, book(tmp, 2, 1, 4));}
      {Histo1DPtr tmp; _h_ppInel_pos.add(4.0, 4.5, book(tmp, 2, 1, 5));}
      {Histo1DPtr tmp; _h_ppInel_pos.add(4.5, 4.8, book(tmp, 2, 1, 6));}
    }

    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.pseudorapidity(), myp.momentum().pT());
        }
        else
        {
          _h_ppInel_pos.fill(myp.pseudorapidity(), myp.momentum().pT());
        }
      }
    }

    /// Normalise histograms etc., after the run
    void finalize()
    {
      const double scale_factor = crossSection() / millibarn / sumOfWeights();
      std::vector<double> binWidths = {0.5, 0.5, 0.5, 0.5, 0.5, 0.3};
      for (size_t i = 0; i < binWidths.size(); i++)
      {
        _h_ppInel_neg.histos()[i]->scaleW(scale_factor / binWidths[i]);
        _h_ppInel_pos.histos()[i]->scaleW(scale_factor / binWidths[i]);
      }
    }

    /// @name Histogram
    BinnedHistogram _h_ppInel_neg;
    BinnedHistogram _h_ppInel_pos;

    /// Cut constants
    const double ETAMIN = 2.0, ETAMAX = 4.8;
  };

  RIVET_DECLARE_PLUGIN(LHCB_2021_I1889335);
}