rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

BELLE_2005_I686014

Rates and Spectra for Charm hadrons in $\Upsilon(4S)$ decays and the continuum
Experiment: BELLE (KEKB)
Inspire ID: 686014
Status: VALIDATED
Authors:
  • Peter Richardson
No references listed
Beams: e+ e-
Beam energies: (5.3, 5.3); (5.3, 5.3) GeV
Run details:
  • e+e- to hadrons at the Upsilon 4S and nearby continuum. Beam energy must be specified as analysis option "ENERGY" when rivet-merging samples.

Measurement of the cross section and scaled momentum spectrum for the production of charm hadrons, $D^0$, $D^+$, $D_s^+$, $\Lambda_c^+$, $D^{*0}$ and $D^{*+}$. The cross section and spectra in the continuum together with the branching ratio and spectra in $\Upsilon(4S)$ decays are measured. Beam energy must be specified as analysis option "ENERGY" when rivet-merging samples.

Source code: BELLE_2005_I686014.cc
  1// -*- C++ -*-
  2#include "Rivet/Analysis.hh"
  3#include "Rivet/Projections/FinalState.hh"
  4#include "Rivet/Projections/FastJets.hh"
  5#include "Rivet/Projections/DressedLeptons.hh"
  6#include "Rivet/Projections/MissingMomentum.hh"
  7#include "Rivet/Projections/PromptFinalState.hh"
  8#include "Rivet/Projections/UnstableParticles.hh"
  9
 10namespace Rivet {
 11
 12
 13  /// @brief charm hadron production
 14  class BELLE_2005_I686014 : public Analysis {
 15  public:
 16
 17    /// Constructor
 18    RIVET_DEFAULT_ANALYSIS_CTOR(BELLE_2005_I686014);
 19
 20
 21    /// @name Analysis methods
 22    ///@{
 23
 24    /// Book histograms and initialise projections before the run
 25    void init() {
 26      // projections
 27      declare(UnstableParticles(),"UFS");
 28      // histos
 29      if(isCompatibleWithSqrtS(10.52))
 30        _mode=1;
 31      else if(isCompatibleWithSqrtS(10.58,1e-4))
 32        _mode=2;
 33      else
 34        MSG_ERROR("Beam energy not supported!");
 35      for(unsigned int ix=0;ix<7;++ix) {
 36	if(_mode==1)
 37	  book(_r[ix],2,1,ix+1);
 38	else
 39	  book(_r[ix],1,1,ix+1);
 40	book(_h[ix],2+_mode,1,ix+1);
 41      }
 42      book(_c,"TMP/wgt");
 43    }
 44
 45    /// Perform the per-event analysis
 46    void analyze(const Event& event) {
 47      // unstable particles
 48      const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
 49      if(_mode==2 && ufs.particles(Cuts::pid==300553).size()!=1)
 50	vetoEvent;
 51      _c->fill();
 52      for(const Particle & p : ufs.particles(Cuts::abspid==411 ||
 53					     Cuts::abspid==421 ||
 54					     Cuts::abspid==431 ||
 55					     Cuts::abspid==413 ||
 56					     Cuts::abspid==423 ||
 57					     Cuts::abspid==4122 )) {
 58	double pmax = sqrt(0.25*sqr(sqrtS())-sqr(p.mass()));
 59	double xp = p.momentum().p3().mod()/pmax;
 60	if(p.abspid()==421) {
 61	  _r[0]->fill(0.5);
 62	  _h[0]->fill(xp);
 63	}
 64	else if(p.abspid()==421) {
 65	  _r[0]->fill(0.5);
 66	  _h[0]->fill(xp);
 67	}
 68	else if(p.abspid()==411) {
 69	  _r[1]->fill(0.5);
 70	  _h[1]->fill(xp);
 71	}
 72	else if(p.abspid()==431) {
 73	  _r[2]->fill(0.5);
 74	  _h[2]->fill(xp);
 75	}
 76	else if(p.abspid()==4122) {
 77	  _r[3]->fill(0.5);
 78	  _h[3]->fill(xp);
 79	}
 80	else if(p.abspid()==413) {
 81	  _r[4]->fill(0.5);
 82	  _h[4]->fill(xp);
 83	  _r[5]->fill(0.5);
 84	  _h[5]->fill(xp);
 85	}
 86	else if(p.abspid()==423) {
 87	  _r[6]->fill(0.5);
 88	  _h[6]->fill(xp);
 89	}
 90      }
 91    }
 92
 93
 94    /// Normalise histograms etc., after the run
 95    void finalize() {
 96      if(_mode==1) {
 97	for(unsigned int ix=0;ix<7;++ix) {
 98	  scale(_r[ix],crossSection()/picobarn/sumOfWeights());
 99	  scale(_h[ix],crossSection()/nanobarn/sumOfWeights());
100	}
101      }
102      else {
103	for(unsigned int ix=0;ix<7;++ix) {
104	  scale(_r[ix], 0.5/ *_c);
105	  scale(_h[ix],crossSection()/nanobarn/sumOfWeights());
106	}
107      }
108    }
109
110    ///@}
111
112
113    /// @name Histograms
114    ///@{
115    Histo1DPtr _h[7];
116    Histo1DPtr _r[7];
117    CounterPtr _c;
118    unsigned int _mode=0;
119    ///@}
120
121
122  };
123
124
125  RIVET_DECLARE_PLUGIN(BELLE_2005_I686014);
126
127}