rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

LHCB_2012_I1107645

$\chi_{c}$ production at 7 TeV
Experiment: LHCB (LHC)
Inspire ID: 1107645
Status: VALIDATED
Authors:
  • Peter Richardson
References:
  • Phys.Lett.B 718 (2012) 431-440
Beams: p+ p+
Beam energies: (3500.0, 3500.0) GeV
Run details:
  • chi_C production

Differential cross section for the production of $\chi_{c(0,1,2)}$ production using their decay to J/$\psi$ and a photon.

Source code: LHCB_2012_I1107645.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/UnstableParticles.hh"
 4
 5namespace Rivet {
 6
 7
 8  /// @brief chi_c production at 7 TeV
 9  class LHCB_2012_I1107645 : public Analysis {
10  public:
11
12    /// Constructor
13    RIVET_DEFAULT_ANALYSIS_CTOR(LHCB_2012_I1107645);
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_pT[ix],"TMP/pT_"+toString(ix),refData(1,1,1));
24      }
25    }
26
27
28    /// Perform the per-event analysis
29    void analyze(const Event& event) {
30
31      // Final state of unstable particles to get particle spectra
32      const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
33
34      for (const Particle& p : ufs.particles(Cuts::pid==443 ||
35					     Cuts::pid==10441 ||
36					     Cuts::pid==20443 ||
37					     Cuts::pid==445)) {
38	// prompt only
39	if(p.fromBottom()) continue;
40	// J/psi as a reference
41	if(p.pid()==443) {
42	  double absrap=p.absrap();
43	  if(absrap>2. && absrap<4.5) _h_pT[1]->fill(p.perp());
44	}
45	else {
46	  Particle Jpsi;
47	  if(p.children()[0].pid()==22 && p.children()[1].pid()==443) {
48	    Jpsi=p.children()[1];
49	  }
50	  else if(p.children()[1].pid()==22 && p.children()[0].pid()==443) {
51	    Jpsi=p.children()[0];
52	  }
53	  else
54	    continue;
55	  double absrap=Jpsi.absrap();
56	  if(absrap<2. || absrap>4.5) continue;
57	  _h_pT[0]->fill(Jpsi.perp());
58	}
59      }
60    }
61
62
63    /// Normalise histograms etc., after the run
64    void finalize() {
65      // compute fraction
66      Estimate1DPtr tmp;
67      book(tmp,1,1,1);
68      efficiency(_h_pT[0],_h_pT[1],tmp);
69    }
70
71    /// @}
72
73
74    /// @name Histograms
75    /// @{
76    Histo1DPtr _h_pT[2];
77    /// @}
78
79
80  };
81
82
83  RIVET_DECLARE_PLUGIN(LHCB_2012_I1107645);
84
85}