Rivet analyses
Spectra for Λ0 production at 29 GeV
Experiment: HRS (PEP)
Inspire ID: 17781
Status: VALIDATED
Authors: - Peter Richardson
References: - Phys.Rev.Lett. 56 (1986) 1346
Beams: e+ e-
Beam energies: (14.5, 14.5)GeV
Run details: - e+ e- to hadrons
Measurement of the Λ0 and spectra at 29 GeV by the HRS experiment. In addition to the spectra the rapidity of the Λ0 is measured with respect to the thrust axis.
Source
code:HRS_1986_I17781.cc
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/Beam.hh"
#include "Rivet/Projections/Thrust.hh"
#include "Rivet/Projections/UnstableParticles.hh"
#include "Rivet/Projections/ChargedFinalState.hh"
namespace Rivet {
/// @brief Lambda production at 29 GeV
class HRS_1986_I17781 : public Analysis {
public:
/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(HRS_1986_I17781);
/// @name Analysis methods
///@{
/// Book histograms and initialise projections before the run
void init() {
declare(UnstableParticles(), "UFS");
const ChargedFinalState cfs;
declare(cfs, "CFS");
declare(Thrust(cfs), "Thrust");
book(_h_spect,1,1,1);
book(_h_rap ,2,1,1);
book(_h_mult ,3,1,1);
}
/// Perform the per-event analysis
void analyze(const Event& event) {
const ChargedFinalState& cfs = apply<ChargedFinalState>(event, "CFS");
const size_t numParticles = cfs.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");
// Thrust
const Thrust& thrust = apply<Thrust>(event, "Thrust");
UnstableParticles ufs = apply<UnstableParticles>(event,"UFS");
for (const Particle & p : ufs.particles(Cuts::abspid==3122)) {
double xE = 2.*p.E()/sqrtS();
Vector3 mom3 = p.p3();
const double energy = p.E();
double modp = mom3.mod();
double beta = modp/energy;
const double momT = dot(thrust.thrustAxis(), mom3);
const double rapidityT = 0.5 * std::log((energy + momT) / (energy - momT));
_h_spect->fill(xE,1./beta);
_h_rap->fill(abs(rapidityT));
_h_mult->fill(29);
}
}
/// Normalise histograms etc., after the run
void finalize() {
scale( _h_spect, sqr(sqrtS())*crossSection()/nanobarn/sumOfWeights());
scale( _h_rap , 1./sumOfWeights());
scale( _h_mult , 1./sumOfWeights());
}
///@}
/// @name Histograms
///@{
Histo1DPtr _h_spect,_h_rap;
BinnedHistoPtr<int> _h_mult;
///@}
};
RIVET_DECLARE_PLUGIN(HRS_1986_I17781);
}