rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

BELLE_2011_I924618

$B^-\to\bar{p}\Lambda^0D^0$ Differential branching ratio
Experiment: BELLE (KEKB)
Inspire ID: 924618
Status: VALIDATED NOHEPDATA
Authors:
  • Peter Richardson
References:
  • Phys.Rev.D 84 (2011) 071501
Beams: * *
Beam energies: ANY
Run details:
  • Any process producing B+/-, originally e+e- at Upsilon(4S)

Differential branching ratio for $B^-\to\bar{p}\Lambda^0D^0$ as a function of the $\bar{p}\Lambda^0$ mass measured by BELLE.

Source code: BELLE_2011_I924618.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- -> pbar Lambda D0
10  class BELLE_2011_I924618 : public Analysis {
11  public:
12
13    /// Constructor
14    RIVET_DEFAULT_ANALYSIS_CTOR(BELLE_2011_I924618);
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==521);
24      declare(ufs, "UFS");
25      DecayedParticles BP(ufs);
26      BP.addStable( 3122);
27      BP.addStable(-3122);
28      BP.addStable( 421);
29      BP.addStable(-421);
30      declare(BP, "BP");
31      // histos
32      book(_h,1,1,1);
33      book(_c,"TMP/nB");
34    }
35
36
37    /// Perform the per-event analysis
38    void analyze(const Event& event) {
39      static const map<PdgId,unsigned int> & mode   = { {-2212,1},{ 3122,1}, { 421,1}};
40      static const map<PdgId,unsigned int> & modeCC = { { 2212,1},{-3122,1}, {-421,1}};
41      DecayedParticles BP = apply<DecayedParticles>(event, "BP");
42      // loop over particles
43      for(unsigned int ix=0;ix<BP.decaying().size();++ix) {
44	_c->fill();
45      	int sign = 1;
46      	if (BP.decaying()[ix].pid()<0 && BP.modeMatches(ix,3,mode)) {
47      	  sign=1;
48      	}
49      	else if  (BP.decaying()[ix].pid()>0 && BP.modeMatches(ix,3,modeCC)) {
50      	  sign=-1;
51      	}
52      	else
53      	  continue;
54	const Particle & pbar = BP.decayProducts()[ix].at(-sign*2212)[0];
55	const Particle & Lam  = BP.decayProducts()[ix].at( sign*3122)[0];
56	_h->fill((pbar.momentum()+Lam.momentum()).mass());
57      }
58    }
59
60
61    /// Normalise histograms etc., after the run
62    void finalize() {
63      scale(_h, 1e6/ *_c);
64    }
65
66    /// @}
67
68
69    /// @name Histograms
70    /// @{
71    Histo1DPtr _h;
72    CounterPtr _c;
73    /// @}
74
75
76  };
77
78
79  RIVET_DECLARE_PLUGIN(BELLE_2011_I924618);
80
81}