Rivet analyses referenceLHCB_2021_I1889335Measurement of $pp$ inelastic cross-section at 13 TeV using prompt, long-lived particles in the LHCb fiducial phase-spaceExperiment: LHCB (LHC) Inspire ID: 1889335 Status: VALIDATED Authors:
Beam energies: (6500.0, 6500.0) GeV Run details:
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=1; i < edges.size(); ++i) {
29 book(_h_ppInel_neg->bin(i), 1, 1, i);
30 book(_h_ppInel_pos->bin(i), 2, 1, i);
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}
|