rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

DELPHI_1995_S3137023

Strange baryon production in $Z$ hadronic decays at Delphi
Experiment: DELPHI (LEP 1)
Inspire ID: 394716
Status: VALIDATED
Authors:
  • Hendrik Hoeth
References:
  • Z. Phys. C, 67, 543--554 (1995)
Beams: e+ e-
Beam energies: (45.6, 45.6) GeV
Run details:
  • Hadronic Z decay events generated on the Z pole ($\sqrt{s} = 91.2$ GeV)

Measurement of the $\Xi^-$ and $\Sigma^+(1385)/\Sigma^-(1385)$ scaled momentum distributions by DELPHI at LEP 1. The paper also has the production cross-sections of these particles, but that's not implemented in Rivet.

Source code: DELPHI_1995_S3137023.cc
  1// -*- C++ -*-
  2#include "Rivet/Analysis.hh"
  3#include "Rivet/Projections/Beam.hh"
  4#include "Rivet/Projections/FinalState.hh"
  5#include "Rivet/Projections/ChargedFinalState.hh"
  6#include "Rivet/Projections/UnstableParticles.hh"
  7
  8namespace Rivet {
  9
 10
 11  /// @brief DELPHI strange baryon paper
 12  ///
 13  /// @author Hendrik Hoeth
 14  class DELPHI_1995_S3137023 : public Analysis {
 15  public:
 16
 17    RIVET_DEFAULT_ANALYSIS_CTOR(DELPHI_1995_S3137023);
 18
 19
 20    /// @name Analysis methods
 21    /// @{
 22
 23    void init() {
 24      declare(Beam(), "Beams");
 25      declare(ChargedFinalState(), "FS");
 26      declare(UnstableParticles(), "UFS");
 27
 28      book(_histXpXiMinus       ,2, 1, 1);
 29      book(_histXpSigma1385Plus ,3, 1, 1);
 30      book(_weightedTotalNumXiMinus, "_weightedTotalNumXiMinus");
 31      book(_weightedTotalNumSigma1385Plus, "_weightedTotalNumSigma1385Plus");
 32
 33    }
 34
 35
 36    void analyze(const Event& e) {
 37      // First, veto on leptonic events by requiring at least 4 charged FS particles
 38      const FinalState& fs = apply<FinalState>(e, "FS");
 39      const size_t numParticles = fs.particles().size();
 40
 41      // Even if we only generate hadronic events, we still need a cut on numCharged >= 2.
 42      if (numParticles < 2) {
 43        MSG_DEBUG("Failed leptonic event cut");
 44        vetoEvent;
 45      }
 46      MSG_DEBUG("Passed leptonic event cut");
 47
 48      // Get beams and average beam momentum
 49      const ParticlePair& beams = apply<Beam>(e, "Beams").beams();
 50      const double meanBeamMom = ( beams.first.p3().mod() +
 51                                   beams.second.p3().mod() ) / 2.0;
 52      MSG_DEBUG("Avg beam momentum = " << meanBeamMom);
 53
 54      // Final state of unstable particles to get particle spectra
 55      const UnstableParticles& ufs = apply<UnstableParticles>(e, "UFS");
 56
 57      for (const Particle& p : ufs.particles()) {
 58        const int id = p.abspid();
 59        switch (id) {
 60        case 3312:
 61          _histXpXiMinus->fill(p.p3().mod()/meanBeamMom);
 62          _weightedTotalNumXiMinus->fill();
 63          break;
 64        case 3114: case 3224:
 65          _histXpSigma1385Plus->fill(p.p3().mod()/meanBeamMom);
 66          _weightedTotalNumSigma1385Plus->fill();
 67          break;
 68        }
 69      }
 70
 71    }
 72
 73
 74    /// Finalize
 75    void finalize() {
 76      normalize(_histXpXiMinus       , dbl(*_weightedTotalNumXiMinus)/sumOfWeights());
 77      normalize(_histXpSigma1385Plus , dbl(*_weightedTotalNumSigma1385Plus)/sumOfWeights());
 78    }
 79
 80    /// @}
 81
 82
 83  private:
 84
 85    /// Store the weighted sums of numbers of charged / charged+neutral
 86    /// particles - used to calculate average number of particles for the
 87    /// inclusive single particle distributions' normalisations.
 88    CounterPtr _weightedTotalNumXiMinus;
 89    CounterPtr _weightedTotalNumSigma1385Plus;
 90
 91    Histo1DPtr _histXpXiMinus;
 92    Histo1DPtr _histXpSigma1385Plus;
 93
 94  };
 95
 96
 97
 98  RIVET_DECLARE_ALIASED_PLUGIN(DELPHI_1995_S3137023, DELPHI_1995_I394716);
 99
100}