rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

CDF_2002_S4796047

CDF Run 1 charged multiplicity measurement
Experiment: CDF (Tevatron Run 1)
Inspire ID: 567774
Status: VALIDATED
Authors:
  • Hendrik Hoeth
References: Beams: p- p+
Beam energies: (315.0, 315.0); (900.0, 900.0) GeV
Run details:
  • QCD events at $\sqrt{s} = 630$ and 1800 GeV.

A study of $p\bar{p}$ collisions at $\sqrt{s} = 1800$ and 630 GeV collected using a minimum bias trigger in which the data set is divided into two classes corresponding to `soft' and `hard' interactions. For each subsample, the analysis includes measurements of the multiplicity, transverse momentum (pT) spectra, and the average pT and event-by-event pT dispersion as a function of multiplicity. A comparison of results shows distinct differences in the behavior of the two samples as a function of the center of mass energy. The properties of the soft sample are invariant as a function of c.m. energy. It should be noticed that minimum bias tunings of PYTHIA made by ATLAS in early 2010, which used this among all other available data from CDF and from ATLAS at 900 GeV and 7 TeV, found an unavoidable tension between this data and the rest. Accordingly, this data was excluded from the fits. Whether this reflects a problem with this dataset or with the PYTHIA MPI model is a judgement for users to make!

Source code: CDF_2002_S4796047.cc
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/Beam.hh"
#include "Rivet/Projections/ChargedFinalState.hh"
#include "Rivet/Projections/TriggerCDFRun0Run1.hh"

namespace Rivet {


  /// @brief CDF Run I charged multiplicity measurement
  /// @author Hendrik Hoeth
  ///
  /// This analysis measures the charged multiplicity distribution
  /// in minimum bias events at two different center-of-mass energies:
  /// \f$ \sqrt{s} = \f$ 630 and 1800 GeV.
  ///
  /// Particles with c*tau > 10 mm are considered stable, i.e. they
  /// are reconstructed and their decay products removed. Selection
  /// cuts are |eta|<1 and pT>0.4 GeV.
  ///
  /// @par Run conditions
  ///
  /// @arg Two different beam energies: \f$ \sqrt{s} = \$f 630 & 1800 GeV
  /// @arg Run with generic QCD events.
  /// @arg Set particles with c*tau > 10 mm stable
  class CDF_2002_S4796047 : public Analysis {
  public:

    /// Constructor
    CDF_2002_S4796047()
      : Analysis("CDF_2002_S4796047")
    {
      _sumWTrig = 0;
    }


    /// @name Analysis methods
    //@{

    /// Book projections and histograms
    void init() {
      declare(TriggerCDFRun0Run1(), "Trigger");
      const ChargedFinalState cfs(-1.0, 1.0, 0.4*GeV);
      declare(cfs, "FS");

      // Histos
      if (fuzzyEquals(sqrtS()/GeV, 630)) {
        _hist_multiplicity  = bookHisto1D(1, 1, 1);
        _hist_pt_vs_multiplicity  = bookProfile1D(3, 1, 1);
      } else if (fuzzyEquals(sqrtS()/GeV, 1800)) {
        _hist_multiplicity = bookHisto1D(2, 1, 1);
        _hist_pt_vs_multiplicity = bookProfile1D(4, 1, 1);
      }
    }


    /// Do the analysis
    void analyze(const Event& evt) {
      // Trigger
      const bool trigger = apply<TriggerCDFRun0Run1>(evt, "Trigger").minBiasDecision();
      if (!trigger) vetoEvent;
      const double weight = evt.weight();
      _sumWTrig += weight;

      // Get beam energy and tracks
      const ChargedFinalState& fs = apply<ChargedFinalState>(evt, "FS");
      const size_t numParticles = fs.particles().size();

      // Fill histos of charged multiplicity distributions
      _hist_multiplicity->fill(numParticles, weight);

      // Fill histos for <pT> vs. charged multiplicity
      foreach (const Particle& p, fs.particles()) {
        const double pT = p.pT();
        _hist_pt_vs_multiplicity->fill(numParticles, pT/GeV, weight);
      }

    }


    void finalize() {
      // This normalisation is NOT a cross-section.
      // In the paper the x-axes (!) of the histograms are
      // scaled such that they can put both energies in the
      // same plot. Of course this affects the area, too.
      // Since we want to plot the actual multiplicity, we
      // scale the x-axes back and have to adjust the areas
      // accordingly. The scale factors are given in the
      // legend of the plot in the paper. Have a look at
      // figure 1 and everything immediately becomes clear.
      // DON'T TRY TO REPAIR THIS, YOU WILL BREAK IT.
      if (fuzzyEquals(sqrtS()/GeV, 630)) {
        normalize(_hist_multiplicity, 3.21167); // fixed norm OK
      } else if (fuzzyEquals(sqrtS()/GeV, 1800)) {
        normalize(_hist_multiplicity, 4.19121); // fixed norm OK
      }
    }

    //@}


  private:

    /// @name Counter
    //@{
    double _sumWTrig;
    //@}

    /// @name Histos
    //@{
    Histo1DPtr _hist_multiplicity;
    Profile1DPtr _hist_pt_vs_multiplicity;
    //@}

  };



  // The hook for the plugin system
  DECLARE_RIVET_PLUGIN(CDF_2002_S4796047);

}