Rivet analyses


title: OPAL_1993_I342766

A Measurement of $K^{*\pm}$ (892) production in hadronic Z0 decays

Experiment: OPAL (LEP)

Inspire ID: 342766

Status: VALIDATED

Authors: - Simone Amoroso

References: - Phys.Lett. B305 (1993) 407-414 - DOI: 10.1016/0370-2693(93)91075-X

Beams: e+ e-

Beam energies: (45.6, 45.6)GeV

Run details: - electron positron collisions at the Z0 resonance with hadronic decays

OPAL measurement of the inclusive cross section for $K^{*\pm} (892) $production in hadronic decays of the Z0

Source code:OPAL_1993_I342766.cc

```c++ // -- C++ --

include "Rivet/Analysis.hh"

include "Rivet/Projections/Beam.hh"

include "Rivet/Projections/ChargedFinalState.hh"

include "Rivet/Projections/FinalState.hh"

include "Rivet/Projections/UnstableParticles.hh"

namespace Rivet {

/// @brief A Measurement of K*+- (892) production in hadronic Z0 decays /// @author Simone Amoroso class OPAL_1993_I342766 : public Analysis { public:

/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(OPAL_1993_I342766);


/// @name Analysis methods
/// @{

/// Book histograms and initialise projections before the run
void init() {
  // Initialise and register projections
  declare(Beam(), "Beams");
  declare(ChargedFinalState(), "FS");
  declare(UnstableParticles(), "UFS");
  // Book histograms
  book(_histXeKStar892, 1, 1, 1);
  book(_histMeanKStar892, 2, 1, 1);
}


/// Perform the per-event analysis
void analyze(const Event& event) {

  const FinalState& fs = apply<FinalState>(event, "FS");
  const size_t numParticles = fs.particles().size();

  // Even if we only generate hadronic events, we still need a cut on numCharged >= 2.
  if (numParticles < 2) {
    MSG_DEBUG("Failed leptonic event cut");
    vetoEvent;
  }
  MSG_DEBUG("Passed leptonic event cut");

  // Get beams and average beam momentum
  const ParticlePair& beams = apply<Beam>(event, "Beams").beams();
  const double meanBeamMom = 0.5 * (beams.first.p3().mod() + beams.second.p3().mod());
  MSG_DEBUG("Avg beam momentum = " << meanBeamMom);

  // Final state of unstable particles to get particle spectra
  const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");

  for (const Particle& p : ufs.particles(Cuts::abspid == 323)) {
    const double xp = p.p3().mod() / meanBeamMom;
    _histXeKStar892->fill(xp);
    _histMeanKStar892->fill(Ecm);
  }
}


/// Normalise histograms etc., after the run
void finalize() {
  scale(_histXeKStar892, 1. / sumOfWeights());
  scale(_histMeanKStar892, 1. / sumOfWeights());
}

/// @}

private:

/// @name Histograms
Histo1DPtr _histXeKStar892;
BinnedHistoPtr<string> _histMeanKStar892;
const string Ecm = "91.2";

};

RIVET_DECLARE_PLUGIN(OPAL_1993_I342766);

} ```