Rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

DELPHI_2011_I890503

Study of the b-quark fragmentation function at LEP 1
Experiment: DELPHI (LEP1)
Inspire ID: 890503
Status: VALIDATED
Authors:
• Holger Schulz
References:
• 10.1140/epjc/s10052-011-1557-x
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 $b$-quark fragmentation function by DELPHI using 1994 LEP 1 data. The fragmentation function for weakly decaying $b$-quarks has been determined in a model independent way. Note --- this analysis supersedes DELPHI_2002_069_CONF_603.

Source code: DELPHI_2011_I890503.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 // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" #include "Rivet/Projections/UnstableFinalState.hh" namespace Rivet { class DELPHI_2011_I890503 : public Analysis { public: /// Constructor DELPHI_2011_I890503() : Analysis("DELPHI_2011_I890503") { } /// Book projections and histograms void init() { declare(Beam(), "Beams"); declare(ChargedFinalState(), "FS"); declare(UnstableFinalState(), "UFS"); _histXbweak = bookHisto1D(1, 1, 1); _histMeanXbweak = bookProfile1D(2, 1, 1); } void analyze(const Event& e) { // Even if we only generate hadronic events, we still need a cut on numCharged >= 2. if (apply(e, "FS").particles().size() < 2) { MSG_DEBUG("Failed ncharged cut"); vetoEvent; } MSG_DEBUG("Passed ncharged cut"); // Get event weight for histo filling const double weight = e.weight(); // Get beams and average beam momentum const ParticlePair& beams = apply(e, "Beams").beams(); const double meanBeamMom = ( beams.first.p3().mod() + beams.second.p3().mod() ) / 2.0; MSG_DEBUG("Avg beam momentum = " << meanBeamMom); const UnstableFinalState& ufs = apply(e, "UFS"); // Get Bottom hadrons const Particles bhads = filter_select(ufs.particles(), isBottomHadron); for (const Particle& bhad : bhads) { // Check for weak decay, i.e. no more bottom present in children if (bhad.children(lastParticleWith(hasBottom)).empty()) { const double xp = bhad.E()/meanBeamMom; _histXbweak->fill(xp, weight); _histMeanXbweak->fill(_histMeanXbweak->bin(0).xMid(), xp, weight); } } } // Finalize void finalize() { normalize(_histXbweak); } private: Histo1DPtr _histXbweak; Profile1DPtr _histMeanXbweak; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(DELPHI_2011_I890503); }