rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

DELPHI_2000_I524693

Hadronization properties of $b$ quarks compared to light quarks in $e^+ e^-\to q \bar{q}$ from 183 GeV to 200 GeV
Experiment: OPAL (LEP 2)
Inspire ID: 524693
Status: VALIDATED
Authors:
  • Peter Richardson
References:
  • Phys.Lett.B479:118-128,2000
  • hep-ex/0103022
  • DELPHI 2002-052 CONF 586
Beams: e+ e-
Beam energies: (91.5, 91.5); (94.5, 94.5); (96.0, 96.0); (98.0, 98.0); (100.0, 100.0); (103.0, 103.0) GeV
Run details:
  • Hadronic Z decay events generated on the Z pole ($\sqrt{s} = 91.2$ GeV)

Measurements of the mean charged multiplicities separately for $b\bar b$, $c\bar{c}$ and light quark ($uds$) initiated events in $e^+e^-$ interactions at energies above the $Z^0$ mass. In addition to the energy points in the original paper one additional point at 206;GeV is included from a later preliminary result.

Source code: DELPHI_2000_I524693.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/Sphericity.hh"
  7#include "Rivet/Projections/Thrust.hh"
  8#include "Rivet/Projections/FastJets.hh"
  9#include "Rivet/Projections/ParisiTensor.hh"
 10#include "Rivet/Projections/Hemispheres.hh"
 11#include <cmath>
 12
 13#define I_KNOW_THE_INITIAL_QUARKS_PROJECTION_IS_DODGY_BUT_NEED_TO_USE_IT
 14#include "Rivet/Projections/InitialQuarks.hh"
 15
 16namespace Rivet {
 17
 18
 19  /// @brief DELPHI multiplicities at various energies
 20  ///
 21  /// @author Peter Richardson
 22  class DELPHI_2000_I524693 : public Analysis {
 23  public:
 24
 25    RIVET_DEFAULT_ANALYSIS_CTOR(DELPHI_2000_I524693);
 26
 27
 28    /// @name Analysis methods
 29    /// @{
 30
 31    void init() {
 32      // Projections
 33      declare(Beam(), "Beams");
 34      declare(ChargedFinalState(), "CFS");
 35      declare(InitialQuarks(), "IQF");
 36
 37      // Histograms
 38      book(_hLight,  1,1,3);
 39      book(_hCharm,  1,1,2);
 40      book(_hBottom, 1,1,1);
 41
 42    }
 43
 44
 45    void analyze(const Event& event) {
 46      // Even if we only generate hadronic events, we still need a cut on numCharged >= 2.
 47      const FinalState& cfs = apply<FinalState>(event, "CFS");
 48      if (cfs.size() < 2) vetoEvent;
 49
 50
 51      int flavour = 0;
 52      const InitialQuarks& iqf = apply<InitialQuarks>(event, "IQF");
 53
 54      // If we only have two quarks (qqbar), just take the flavour.
 55      // If we have more than two quarks, look for the highest energetic q-qbar pair.
 56      if (iqf.particles().size() == 2) {
 57        flavour = iqf.particles().front().abspid();
 58      }
 59      else {
 60        map<int, double> quarkmap;
 61        for (const Particle& p : iqf.particles()) {
 62          if (quarkmap[p.pid()] < p.E()) {
 63            quarkmap[p.pid()] = p.E();
 64          }
 65        }
 66        double maxenergy = 0.;
 67        for (int i = 1; i <= 5; ++i) {
 68          if (quarkmap[i]+quarkmap[-i] > maxenergy) {
 69            flavour = i;
 70          }
 71        }
 72      }
 73      const size_t numParticles = cfs.particles().size();
 74      switch (flavour) {
 75      case 1: case 2: case 3:
 76        _hLight ->fill(int(sqrtS()),numParticles);
 77        break;
 78      case 4:
 79        _hCharm ->fill(int(sqrtS()),numParticles);
 80        break;
 81      case 5:
 82        _hBottom->fill(int(sqrtS()),numParticles);
 83        break;
 84      }
 85    }
 86
 87
 88    void finalize() {
 89      BinnedEstimatePtr<int> hDiff;
 90      book(hDiff,1,1,4);
 91      for(unsigned int ix=0;ix<hDiff->numBins();++ix) {
 92        if(_hBottom->bin(ix+1).numEntries()>0 &&
 93           _hLight ->bin(ix+1).numEntries()>0) {
 94          double val = _hBottom->bin(ix+1).mean(2) - _hLight->bin(ix+1).mean(2);
 95          double err = sqrt(sqr(_hBottom->bin(ix+1).stdErr(2)) +
 96                            sqr(_hLight ->bin(ix+1).stdErr(2)));
 97          hDiff->bin(ix+1).set(val,err);
 98        }
 99      }
100    }
101
102    /// @}
103
104
105  private:
106
107    vector<Estimate1DPtr> _mult;
108
109    /// @name Multiplicities
110    /// @{
111    BinnedProfilePtr<int>  _hLight,_hCharm,_hBottom;
112    /// @}
113
114  };
115
116
117
118  RIVET_DECLARE_ALIASED_PLUGIN(DELPHI_2000_I524693, DELPHI_2000_S4328825);
119
120}