rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

SFM_1984_I196601

Charged multiplicity distribution in $pp$ interactions at CERN ISR energies
Experiment: SFM (CERN ISR)
Inspire ID: 196601
Status: UNVALIDATED
Authors:
  • Holger Schulz
  • Andy Buckley
References:
  • Phys.Rev.D30:528,1984
Beams: p+ p+
Beam energies: (15.2, 15.2); (22.2, 22.2); (26.1, 26.1); (31.1, 31.1) GeV
Run details:
  • QCD events, double-diffractive events. Beam energy must be specified as analysis option "ENERGY" when rivet-merging samples.

WARNING - implemented to the best of abilities, no theory curve in the publication to compare to. Charged multiplicities are measured at $\sqrt{s} = 30.4$, 44.5, 52.2 and 62.2 GeV using a minimum-bias trigger. The data is sub-divided into inelastic as well as non-single-diffractive events. Beeam energy must be specified as analysis option "ENERGY" when rivet-merging samples.

Source code: SFM_1984_I196601.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/ChargedFinalState.hh"
 4
 5namespace Rivet {
 6
 7
 8  /// @brief SFM charged multiplicities in NSD and inelastic minbias events
 9  class SFM_1984_I196601 : public Analysis {
10  public:
11
12    /// Constructor
13    RIVET_DEFAULT_ANALYSIS_CTOR(SFM_1984_I196601);
14
15
16    /// @name Analysis methods
17    /// @{
18
19    void init() {
20      // Projections
21      //
22      declare(ChargedFinalState(Cuts::absrap<5 && Cuts::pT>250*MeV && Cuts::pT<3*GeV), "FS");
23
24      // Histograms
25      if (isCompatibleWithSqrtS(30.4*GeV, 1E-1)) {
26        book(_hist_multiplicity_inel ,1, 1, 1);
27        book(_hist_multiplicity_nsd ,2, 1, 1);
28      } else if (isCompatibleWithSqrtS(44.5*GeV, 1E-1)) {
29        book(_hist_multiplicity_inel ,1, 1, 2);
30        book(_hist_multiplicity_nsd ,2, 1, 2);
31      } else if (isCompatibleWithSqrtS(52.2*GeV, 1E-1)) {
32        book(_hist_multiplicity_inel ,1, 1, 3);
33        book(_hist_multiplicity_nsd ,2, 1, 3);
34      } else if (isCompatibleWithSqrtS(62.2*GeV, 1E-1)) {
35        book(_hist_multiplicity_inel ,1, 1, 4);
36        book(_hist_multiplicity_nsd ,2, 1, 4);
37      }
38
39    }
40
41
42    // Analyse each event
43    void analyze(const Event& event) {
44      const ChargedFinalState& fs = apply<ChargedFinalState>(event, "FS");
45
46      // Trigger
47      if (fs.particles().size() <1 ) vetoEvent;
48
49      // Event classification:
50      int n_left(0), n_right(0), n_large_x(0);
51      for (const Particle& p : fs.particles()) {
52        // Calculate the particles' Feynman x
53        const double x_feyn = 2.0 * fabs(p.pz())/sqrtS();
54        if (x_feyn > 0.8 ) n_large_x += 1;
55
56        // Pseudorapidity
57        const double eta = p.eta();
58        if (eta > 0.0) n_right += 1;
59        else if (eta < 0.0) n_left += 1;
60      }
61      MSG_DEBUG("N_left: " << n_left << ", "
62                << "N_right: " << n_right << ", "
63                << "N_large_x: " << n_large_x);
64
65
66      // Single diffractive: either one large x particle or 0 particles in the one hemisphere but more than 7 in the other hemisphere
67      bool isDiffractive = (n_large_x == 1) ||  ( ((n_left==0) && (fs.particles().size() < 7)) || ((n_right==0) && (fs.particles().size() < 7)) );
68
69
70      _hist_multiplicity_inel->fill(fs.particles().size());
71      if (!isDiffractive) _hist_multiplicity_nsd->fill(fs.particles().size());
72    }
73
74
75    void finalize() {
76      normalize(_hist_multiplicity_inel);
77      normalize(_hist_multiplicity_nsd);
78    }
79
80    /// @}
81
82
83  private:
84
85
86    /// @name Histograms
87    /// @{
88    Histo1DPtr _hist_multiplicity_inel;
89    Histo1DPtr _hist_multiplicity_nsd;
90    /// @}
91
92  };
93
94
95
96  RIVET_DECLARE_ALIASED_PLUGIN(SFM_1984_I196601, SFM_1984_S1178091);
97
98}