rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

LHCB_2020_I1763898

Prompt and non-prompt $\eta_c$ production at 13 TeV
Experiment: LHCB (LHC)
Inspire ID: 1763898
Status: VALIDATED
Authors:
  • Peter Richardson
References:
  • Eur.Phys.J.C 80 (2020) 3, 191
Beams: p+ p+
Beam energies: (6500.0, 6500.0) GeV
Run details:
  • hadronic events with eta_c and J/psi production

Measurement of the differential cross section with respect to $p_\perp$ of $\eta_c$ production at 13 TeV by the LHCb collaboration.

Source code: LHCB_2020_I1763898.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/UnstableParticles.hh"
 4
 5namespace Rivet {
 6
 7
 8  /// @brief eta_c production at 13 TeV
 9  class LHCB_2020_I1763898 : public Analysis {
10  public:
11
12    /// Constructor
13    RIVET_DEFAULT_ANALYSIS_CTOR(LHCB_2020_I1763898);
14
15
16    /// @name Analysis methods
17    /// @{
18
19    /// Book histograms and initialise projections before the run
20    void init() {
21      declare(UnstableParticles(), "UFS");
22      for(unsigned int ix=0;ix<2;++ix) {
23	book(_h_etac[ix],2+2*ix,1,1);
24	book(_h_Jpsi[ix],"TMP/Jpsi"+toString(ix),refData(2+2*ix,1,1));
25      }
26    }
27
28
29    /// Perform the per-event analysis
30    void analyze(const Event& event) {
31
32      // Final state of unstable particles to get particle spectra
33      const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
34
35      for (const Particle& p : ufs.particles(Cuts::pid==441|| Cuts::pid==443)) {
36	// prompt/non-prompt
37	bool nonPrompt = p.fromBottom();
38        double absrap = p.absrap();
39        double xp = p.perp();
40	if(absrap>2. && absrap<4.5) {
41	  if(p.pid()==441)
42	    _h_etac[nonPrompt]->fill(xp);
43	  else
44	    _h_Jpsi[nonPrompt]->fill(xp);
45	}
46      }
47    }
48
49
50    /// Normalise histograms etc., after the run
51    void finalize() {
52      // 1/2 due rapidity folding +/-
53      double factor = 0.5*crossSection()/nanobarn/sumOfWeights();
54      for(unsigned int ix=0;ix<2;++ix) {
55	scale(_h_etac[ix],factor);
56	scale(_h_Jpsi[ix],factor);
57	Estimate1DPtr tmp;
58	book(tmp,1+2*ix,1,1);
59	divide(_h_etac[ix],_h_Jpsi[ix],tmp);
60      }
61    }
62
63    /// @}
64
65
66    /// @name Histograms
67    /// @{
68    Histo1DPtr _h_etac[2],_h_Jpsi[2];
69    /// @}
70
71
72  };
73
74
75  RIVET_DECLARE_PLUGIN(LHCB_2020_I1763898);
76
77}