Rivet analyses
Charm cross sections and spectra at 4.03 and 4.14 GeV
Experiment: BES (BEPC)
Inspire ID: 508349
Status: VALIDATED
Authors: - Peter Richardson
References: - Phys.Rev. D62 (2000) 012002
Beams: e+ e-
Beam energies: (2.0, 2.0); (2.1, 2.1)GeV
Run details: - e+e- to hadrons.
Measurement of the total cvharm cross section, together with the D0, D+ rates and spectra at 4.03 and 4.14 GeV by the BES collaboration.
Source
code:BES_1999_I508349.cc
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/UnstableParticles.hh"
namespace Rivet {
/// @brief charm cross sections
class BES_1999_I508349 : public Analysis {
public:
/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(BES_1999_I508349);
/// @name Analysis methods
/// @{
/// Book histograms and initialise projections before the run
void init() {
declare(UnstableParticles(),"UFS");
for (size_t ix=0; ix<4; ++ix) {
book(_nD[ix], 1, 1, 1+ix);
}
_edge = "4.03";
for (double eVal : allowedEnergies()) {
const string en = toString(round(eVal/MeV));
if (isCompatibleWithSqrtS(eVal)) {
_sqs = en;
if (en == "4140"s) _edge = "4.14";
}
size_t ih = en == "4140"s;
book(_h_D0[en], 2+ih, 1, 1);
book(_h_Dp[en], 2+ih, 1, 2);
}
raiseBeamErrorIf(_sqs.empty());
}
/// Perform the per-event analysis
void analyze(const Event& event) {
double nD0(0),nDp(0),nDs(0);
for(const Particle & p : apply<UnstableParticles>(event, "UFS").particles(Cuts::abspid==411 or
Cuts::abspid==421 or
Cuts::abspid==431)) {
if (p.abspid()==421) {
_h_D0[_sqs]->fill(p.mom().p3().mod());
++nD0;
}
else if (p.abspid()==411) {
_h_Dp[_sqs]->fill(p.mom().p3().mod());
++nDp;
}
else {
++nDs;
}
}
_nD[0]->fill(_edge, 0.5*nD0);
_nD[1]->fill(_edge, 0.5*nDp);
_nD[2]->fill(_edge, 0.5*nDs);
_nD[3]->fill(_edge, 0.5*(nD0+nDp+nDs));
}
/// Normalise histograms etc., after the run
void finalize() {
const double fact = crossSection()/sumOfWeights()/nanobarn;
scale(_h_D0, 0.5*fact);
scale(_h_Dp, 0.5*fact);
scale(_nD,fact);
}
/// @}
/// @name Histograms
/// @{
BinnedHistoPtr<string> _nD[4];
map<string,Histo1DPtr> _h_D0,_h_Dp;
string _sqs = "", _edge = "";
/// @}
};
RIVET_DECLARE_PLUGIN(BES_1999_I508349);
}