rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

BELLE_2009_I820737

Mass distributions in $\bar{B}^0\to K^-\pi^+\psi(2S)$ and $B^+\to K^0_S\pi^+\psi(2S)$
Experiment: BELLE (KEKB)
Inspire ID: 820737
Status: VALIDATED NOHEPDATA
Authors:
  • Peter Richardson
References:
  • Phys.Rev.D 80 (2009) 031104
Beams: * *
Beam energies: ANY
Run details:
  • Any process producing B+ and B0 mesons, originally Upsilon(4S) decays

Measurement of mass distributions in $\bar{B}^0\to K^-\pi^+\psi(2S)$ and $B^+\to K^0_S\pi^+\psi(2S)$ decays, only the average of the two modes is measured. The data were read from the plots in the paper and may not be corrected for efficiency/acceptance, however the backgrounds given in the paper have been subtracted.

Source code: BELLE_2009_I820737.cc
  1// -*- C++ -*-
  2#include "Rivet/Analysis.hh"
  3#include "Rivet/Projections/UnstableParticles.hh"
  4#include "Rivet/Projections/DecayedParticles.hh"
  5
  6namespace Rivet {
  7
  8
  9  /// @brief  B-> K pi psi(2S)
 10  class BELLE_2009_I820737 : public Analysis {
 11  public:
 12
 13    /// Constructor
 14    RIVET_DEFAULT_ANALYSIS_CTOR(BELLE_2009_I820737);
 15
 16
 17    /// @name Analysis methods
 18    /// @{
 19
 20    /// Book histograms and initialise projections before the run
 21    void init() {
 22      // Initialise and register projections
 23      UnstableParticles ufs = UnstableParticles(Cuts::abspid==511 || Cuts::abspid==521);
 24      declare(ufs, "UFS");
 25      DecayedParticles BB(ufs);
 26      BB.addStable(310);
 27      BB.addStable(100443);
 28      declare(BB, "BB");
 29      // histograms
 30      const vector<double> bins1 = {0,sqr(0.796),sqr(0.996),sqr(1.332),sqr(1.532),3};
 31      const vector<double> bins2 = {0,19.0,20.5,23};
 32      book(_h_piPsi, bins1, {"d01-x01-y01","d01-x01-y02","d01-x01-y03","d01-x01-y04","d01-x01-y05"});
 33      book(_h_Kpi, bins2, {"d02-x01-y01","d02-x01-y02","d02-x01-y03"});
 34      book(_h_veto,3,1,1);
 35      book(_c,"TMP/nB");
 36    }
 37
 38
 39    /// Perform the per-event analysis
 40    void analyze(const Event& event) {
 41      static const map<PdgId,unsigned int> & mode1   = { { 321,1},{-211,1}, { 100443,1}};
 42      static const map<PdgId,unsigned int> & mode1CC = { {-321,1},{ 211,1}, { 100443,1}};
 43      static const map<PdgId,unsigned int> & mode2   = { { 310,1},{-211,1}, { 100443,1}};
 44      static const map<PdgId,unsigned int> & mode2CC = { { 310,1},{ 211,1}, { 100443,1}};
 45      DecayedParticles BB = apply<DecayedParticles>(event, "BB");
 46      // loop over particles
 47      for (unsigned int ix=0; ix<BB.decaying().size(); ++ix) {
 48      	int sign = 1,iK(0);
 49        if (BB.decaying()[ix].pid()>0 && BB.modeMatches(ix,3,mode1)) {
 50          sign=1; iK = 321;
 51        }
 52      	else if  (BB.decaying()[ix].pid()<0 && BB.modeMatches(ix,3,mode1CC)) {
 53       	  sign=-1; iK=-321;
 54       	}
 55        else if (BB.decaying()[ix].pid()<0 && BB.modeMatches(ix,3,mode2)) {
 56          sign=1; iK = 310;
 57        }
 58      	else if  (BB.decaying()[ix].pid()>0 && BB.modeMatches(ix,3,mode2CC)) {
 59       	  sign=-1; iK= 310;
 60       	}
 61      	else {
 62      	  continue;
 63        }
 64        _c->fill();
 65       	const Particle & Kp  = BB.decayProducts()[ix].at( iK)[0];
 66       	const Particle & pim = BB.decayProducts()[ix].at(-211*sign)[0];
 67       	const Particle & psi = BB.decayProducts()[ix].at( 100443  )[0];
 68       	double m2Kpi  = (Kp .momentum()+pim.momentum()).mass2();
 69      	double m2Psipi= (psi.momentum()+pim.momentum()).mass2();
 70        _h_piPsi->fill(m2Kpi, m2Psipi);
 71        _h_Kpi->fill(m2Psipi, m2Kpi);
 72        if(m2Kpi<sqr(0.796) || (m2Kpi>sqr(0.996)&&m2Kpi<sqr(1.332)) ||
 73           m2Kpi>sqr(1.532)) _h_veto->fill(m2Psipi);
 74      }
 75    }
 76
 77
 78    /// Normalise histograms etc., after the run
 79    void finalize() {
 80      scale(_h_piPsi, 1./ *_c);
 81      scale(_h_Kpi, 1./ *_c);
 82      normalize(_h_veto, 1.0, false);
 83    }
 84
 85    /// @}
 86
 87
 88    /// @name Histograms
 89    /// @{
 90    Histo1DGroupPtr _h_piPsi, _h_Kpi;
 91    CounterPtr _c;
 92    Histo1DPtr _h_veto;
 93    /// @}
 94
 95
 96  };
 97
 98
 99  RIVET_DECLARE_PLUGIN(BELLE_2009_I820737);
100
101}