rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

CMSTOTEM_2014_I1294140

Charged particle pseudorapidity distribution at $\sqrt{s}$=8 TeV
Experiment: CMS, TOTEM (LHC)
Inspire ID: 1294140
Status: VALIDATED
Authors:
  • Panos Katsas
References:
  • CERN-PH-EP-2014-063
  • arXiv: 1405.0722
  • Submitted to EPJ C
Beams: p+ p+
Beam energies: (4000.0, 4000.0) GeV
Run details:
  • Inclusive, NSD-enhanced and SD-enhanced pp events.

The pseudorapidity distribution of charged particles produced in proton-proton collisions at a centre-of-mass energy of 8 TeV are measured in the ranges $|\eta| < 2.2$ and $5.3 < |\eta| < 6.4$, with the CMS and TOTEM detectors, respectively. The measurement is performed with a one-side TOTEM trigger, which is sensitive to 99\% of non-diffractive interactions and diffractive interactions with masses above 3.6 GeV, for three different event selections. An inclusive sample with the least selection bias, a sample enhanced in non-single diffractive events, and a sample enhanced in single-diffractive events were selected.

Source code: CMSTOTEM_2014_I1294140.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/ChargedFinalState.hh"
 4#include "Rivet/Projections/Beam.hh"
 5
 6namespace Rivet {
 7
 8
 9  class CMSTOTEM_2014_I1294140 : public Analysis {
10  public:
11
12    RIVET_DEFAULT_ANALYSIS_CTOR(CMSTOTEM_2014_I1294140);
13
14    void init() {
15      ChargedFinalState cfs(Cuts::abseta < 7.0);
16      declare(cfs, "CFS");
17
18      book(_Nevt_after_cuts_or, "Nevt_or");
19      book(_Nevt_after_cuts_and, "Nevt_and");
20      book(_Nevt_after_cuts_xor, "Nevt_xor");
21      book(_h_dNch_dEta_OR,  1, 1, 1);
22      book(_h_dNch_dEta_AND, 2, 1, 1);
23      book(_h_dNch_dEta_XOR, 3, 1, 1);
24    }
25
26
27    void analyze(const Event& event) {
28      // Count forward and backward charged particles
29      const ChargedFinalState& charged = apply<ChargedFinalState>(event, "CFS");
30      int count_plus = 0, count_minus = 0;
31      for (const Particle& p : charged.particles()) {
32        if (inRange(p.eta(),  5.3,  6.5))  ++count_plus;
33        if (inRange(p.eta(), -6.5, -5.3))  ++count_minus;
34      }
35
36      // Cut combinations
37      const bool cutsor  = (count_plus || count_minus);
38      const bool cutsand = (count_plus && count_minus);
39      const bool cutsxor = (count_plus && !count_minus) || (!count_plus && count_minus);
40
41      // Increment counters and fill histos
42      if (cutsor)   _Nevt_after_cuts_or->fill();
43      if (cutsand)  _Nevt_after_cuts_and->fill();
44      if (cutsxor)  _Nevt_after_cuts_xor->fill();
45      for (const Particle& p : charged.particles()) {
46        if (cutsor)   _h_dNch_dEta_OR->fill(p.abseta());
47        if (cutsand)  _h_dNch_dEta_AND->fill(p.abseta());
48        if (cutsxor)  _h_dNch_dEta_XOR->fill(p.abseta());
49      }
50
51    }
52
53
54    void finalize() {
55      scale(_h_dNch_dEta_OR,  0.5 / *_Nevt_after_cuts_or);
56      scale(_h_dNch_dEta_AND, 0.5 / *_Nevt_after_cuts_and);
57      scale(_h_dNch_dEta_XOR, 0.5 / *_Nevt_after_cuts_xor);
58    }
59
60
61  private:
62
63    Histo1DPtr _h_dNch_dEta_OR, _h_dNch_dEta_AND, _h_dNch_dEta_XOR;
64    CounterPtr _Nevt_after_cuts_or, _Nevt_after_cuts_and, _Nevt_after_cuts_xor;
65
66  };
67
68
69  RIVET_DECLARE_PLUGIN(CMSTOTEM_2014_I1294140);
70
71}