Rivet analyses
Differential meson cross sections in e+e− at $\sqrt{s}=10.58$GeV
Experiment: BELLE (KEKB)
Inspire ID: 2849895
Status: VALIDATED NOHEPDATA
Authors: - Peter Richardson
References: - Phys.Rev.D 111 (2025) 5, 052003 - arXiv: 2411.12216
Beams: e+ e-
Beam energies: (5.3, 5.3)GeV
Run details: - e+ e- to hadrons
Differential cross sections vs scaled momentum fraction for D+, D0, Ds+, D*+, D*0, Ds*+, ρ+, ρ0, ω, K*+, K*0, ϕ, η, KS0, f0 mesons at $\sqrt{s}=10.58$GeV by the BELLE collaboration.
Source
code:BELLE_2025_I2849895.cc
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/UnstableParticles.hh"
namespace Rivet {
/// @brief meson spectra at 10.58 GeV
class BELLE_2025_I2849895 : public Analysis {
public:
/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(BELLE_2025_I2849895);
/// @name Analysis methods
/// @{
/// Book histograms and initialise projections before the run
void init() {
declare(UnstableParticles(),"UFS");
for(unsigned int ix=0;ix<6;++ix)
book(_h[ix],1,1,1+ix);
for(unsigned int ix=0;ix<9;++ix)
book(_h[6+ix],2,1,1+ix);
}
/// Perform the per-event analysis
void analyze(const Event& event) {
// apply projection
const UnstableParticles & ufs = apply<UnstableParticles>(event, "UFS");
// fill single particle histos
for (const Particle& p : ufs.particles()) {
// remove particles from radiation/mixing
bool self=false;
for(const Particle & child : p.children())
self |= p.abspid()==child.pid();
if(self) continue;
const double xp = 2.*p.momentum().p3().mod()/sqrtS();
switch (p.abspid()) {
case 411:
_h[0]->fill(xp);
break;
case 421:
_h[1]->fill(xp);
break;
case 431:
_h[2]->fill(xp);
break;
case 413:
_h[3]->fill(xp);
break;
case 423:
_h[4]->fill(xp);
break;
case 433:
_h[5]->fill(xp);
break;
case 213:
if(p.pid()>0) _h[6]->fill(xp);
break;
case 113:
_h[7]->fill(xp);
break;
case 223:
_h[8]->fill(xp);
break;
case 323:
_h[9]->fill(xp);
break;
case 313:
_h[10]->fill(xp);
break;
case 333:
_h[11]->fill(xp);
break;
case 221:
_h[12]->fill(xp);
break;
case PID::K0S:
_h[13]->fill(xp);
break;
case 9010221:
_h[14]->fill(xp);
break;
default:
break;
}
}
}
/// Normalise histograms etc., after the run
void finalize() {
scale(_h,crossSection()/picobarn/sumOfWeights());
}
/// @}
/// @name Histograms
/// @{
Histo1DPtr _h[15];
/// @}
};
RIVET_DECLARE_PLUGIN(BELLE_2025_I2849895);
}