rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

UA5_1989_S1926373

UA5 charged multiplicity measurements
Experiment: UA5 (CERN SPS)
Inspire ID: 267179
Status: VALIDATED
Authors:
  • Holger Schulz
  • Christophe L. J. Vaillant
  • Andy Buckley
References: Beams: p- p+
Beam energies: (100.0, 100.0); (450.0, 450.0) GeV
Run details:
  • Minimum bias events at $\sqrt{s} = 200$ and 900 GeV. Enable single and double diffractive events in addition to non-diffractive processes. Beam energy must be specified as analysis option "ENERGY" (200 or 900 GeV) when rivet-merge'ing samples.

Multiplicity distributions of charged particles produced in non-single-diffractive collisions between protons and antiprotons at centre-of-mass energies of 200 and 900 GeV. The data were recorded in the UA5 streamer chambers at the CERN collider, which was operated in a pulsed mode between the two energies. This analysis confirms the violation of KNO scaling in full phase space found by the UA5 group at an energy of 546 GeV, with similar measurements at 200 and 900 GeV. Beam energy must be specified as analysis option "ENERGY" (200 or 900 GeV) when rivet-merging samples.

Source code: UA5_1989_S1926373.cc
  1// -*- C++ -*-
  2#include "Rivet/Analysis.hh"
  3#include "Rivet/Projections/ChargedFinalState.hh"
  4#include "Rivet/Projections/TriggerUA5.hh"
  5
  6namespace Rivet {
  7
  8
  9  /// UA5 min bias charged multiplicities in central \f$ \eta \f$ ranges
 10  class UA5_1989_S1926373 : public Analysis {
 11  public:
 12
 13    /// Constructor
 14    RIVET_DEFAULT_ANALYSIS_CTOR(UA5_1989_S1926373);
 15
 16
 17    /// @name Analysis methods
 18    /// @{
 19
 20    /// Book histograms and projections
 21    void init() {
 22      declare(TriggerUA5(), "Trigger");
 23      declare(ChargedFinalState((Cuts::etaIn(-0.5, 0.5))), "CFS05");
 24      declare(ChargedFinalState((Cuts::etaIn(-1.5, 1.5))), "CFS15");
 25      declare(ChargedFinalState((Cuts::etaIn(-3.0, 3.0))), "CFS30");
 26      declare(ChargedFinalState((Cuts::etaIn(-5.0, 5.0))), "CFS50");
 27
 28      // NB. _hist_nch and _hist_ncheta50 use the same data but different binning
 29      if (isCompatibleWithSqrtS(200)) {
 30        book(_hist_nch        ,1, 1, 1);
 31        book(_hist_nch_eta05  ,3, 1, 1);
 32        book(_hist_nch_eta15  ,4, 1, 1);
 33        book(_hist_nch_eta30  ,5, 1, 1);
 34        book(_hist_nch_eta50  ,6, 1, 1);
 35        book(_hist_mean_nch   ,11, 1, 1);
 36      } else if (isCompatibleWithSqrtS(900)) {
 37        book(_hist_nch        ,2, 1, 1);
 38        book(_hist_nch_eta05  ,7, 1, 1);
 39        book(_hist_nch_eta15  ,8, 1, 1);
 40        book(_hist_nch_eta30  ,9, 1, 1);
 41        book(_hist_nch_eta50  ,10, 1, 1);
 42        book(_hist_mean_nch   ,12, 1, 1);
 43      }
 44      book(_sumWPassed, "SumW");
 45      /// @todo Moments of distributions
 46    }
 47
 48
 49    /// Do the analysis
 50    void analyze(const Event& event) {
 51      // Trigger
 52      const TriggerUA5& trigger = apply<TriggerUA5>(event, "Trigger");
 53      if (!trigger.nsdDecision()) vetoEvent;
 54
 55      _sumWPassed->fill();
 56
 57      // Count final state particles in several eta regions
 58      const int numP05 = apply<ChargedFinalState>(event, "CFS05").size();
 59      const int numP15 = apply<ChargedFinalState>(event, "CFS15").size();
 60      const int numP30 = apply<ChargedFinalState>(event, "CFS30").size();
 61      const int numP50 = apply<ChargedFinalState>(event, "CFS50").size();
 62
 63      // Fill histograms
 64      _hist_nch->fill(numP50);
 65      _hist_nch_eta05->fill(numP05);
 66      _hist_nch_eta15->fill(numP15);
 67      _hist_nch_eta30->fill(numP30);
 68      _hist_nch_eta50->fill(numP50);
 69      _hist_mean_nch->fill(_hist_mean_nch->bin(0).xMid(), numP50);
 70    }
 71
 72
 73    void finalize() {
 74      scale(_hist_nch, 1.0 / *_sumWPassed);
 75      scale(_hist_nch_eta05, 1.0 / *_sumWPassed);
 76      scale(_hist_nch_eta15, 1.0 / *_sumWPassed);
 77      scale(_hist_nch_eta30, 1.0 / *_sumWPassed);
 78      scale(_hist_nch_eta50, 1.0 / *_sumWPassed);
 79      scale(_hist_mean_nch, 1.0 / *_sumWPassed);
 80    }
 81
 82    /// @}
 83
 84
 85  private:
 86
 87    /// Weight counter
 88    CounterPtr _sumWPassed;
 89
 90    /// @name Histograms
 91    /// @{
 92    Histo1DPtr _hist_nch;
 93    Histo1DPtr _hist_nch_eta05;
 94    Histo1DPtr _hist_nch_eta15;
 95    Histo1DPtr _hist_nch_eta30;
 96    Histo1DPtr _hist_nch_eta50;
 97    Histo1DPtr _hist_mean_nch;
 98    /// @}
 99
100  };
101
102
103
104  RIVET_DECLARE_ALIASED_PLUGIN(UA5_1989_S1926373, UA5_1989_I267179);
105
106}