rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

BELLE_2023_I2655951

$K^-K^0_S$ mass distribution in $B\to D^{(*)}K^-K^0_S$ decays
Experiment: BELLE (KEKB)
Inspire ID: 2655951
Status: VALIDATED NOHEPDATA
Authors:
  • Peter Richardson
References: Beams: * *
Beam energies: ANY
Run details:
  • Any process producing B mesons, originally Upsilon(4S) decays

Measurement of $K^-K^0_S$ mass distribution in $B\to D^{(*)}K^-K^0_S$ decays. The corrected, background subtracted data was read from the figures in the paper.

Source code: BELLE_2023_I2655951.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 -> D(*) K- KS0
10  class BELLE_2023_I2655951 : public Analysis {
11  public:
12
13    /// Constructor
14    RIVET_DEFAULT_ANALYSIS_CTOR(BELLE_2023_I2655951);
15
16
17    /// @name Analysis methods
18    /// @{
19
20    /// Book histograms and initialise projections before the run
21    void init() {
22      UnstableParticles ufs = UnstableParticles(Cuts::abspid==511 or Cuts::abspid==521);
23      declare(ufs, "UFS");
24      DecayedParticles BB(ufs);
25      BB.addStable( 411);
26      BB.addStable(-411);
27      BB.addStable( 421);
28      BB.addStable(-421);
29      BB.addStable( 413);
30      BB.addStable(-413);
31      BB.addStable( 423);
32      BB.addStable(-423);
33      BB.addStable( 310);
34      BB.addStable( 313);
35      BB.addStable(-313);
36      declare(BB, "BB");
37      for(unsigned int ix=0;ix<4;++ix) {
38        book(_h[ix],1,1,1+ix);
39      }
40    }
41
42
43    /// Perform the per-event analysis
44    void analyze(const Event& event) {
45      static const double mDs = 1.96835;
46      static const map<PdgId,unsigned int> modes  [4] = { { {-421,1}, { 321,1}, { 310,1} },
47      							  { {-411,1}, { 321,1}, { 310,1} },
48      							  { {-423,1}, { 321,1}, { 310,1} },
49      							  { {-413,1}, { 321,1}, { 310,1} }};
50      static const map<PdgId,unsigned int> modesCC[4] = { { { 421,1}, {-321,1}, { 310,1} },
51      							  { { 411,1}, {-321,1}, { 310,1} },
52      							  { { 423,1}, {-321,1}, { 310,1} },
53      							  { { 413,1}, {-321,1}, { 310,1} }};
54      DecayedParticles BB = apply<DecayedParticles>(event, "BB");
55      for (unsigned int ix=0;ix<BB.decaying().size();++ix) {
56      	int imode=-1;
57      	for (unsigned int iy=0;iy<4;++iy) {
58      	  if (BB.decaying()[ix].pid()>0 && BB.modeMatches(ix,3,modes[iy])) {
59      	    imode=iy;
60      	    break;
61      	  }
62      	  else if (BB.decaying()[ix].pid()<0 && BB.modeMatches(ix,3,modesCC[iy])) {
63      	    imode=iy;
64      	    break;
65      	  }
66      	}
67      	if (imode<0) continue;
68      	int sign = BB.decaying()[ix].pid()/BB.decaying()[ix].abspid();
69        const Particle & Km = BB.decayProducts()[ix].at( sign*321)[0];
70        const Particle & K0 = BB.decayProducts()[ix].at( 310     )[0];
71        double mKK=(Km.momentum()+K0.momentum()).mass();
72        if (abs(mKK-mDs)<0.02) continue;
73        _h[imode]->fill(mKK);
74      }
75    }
76
77
78    /// Normalise histograms etc., after the run
79    void finalize() {
80      normalize(_h, 1.0,false);
81    }
82
83    /// @}
84
85
86    /// @name Histograms
87    /// @{
88    Histo1DPtr _h[4];
89    /// @}
90
91
92  };
93
94
95  RIVET_DECLARE_PLUGIN(BELLE_2023_I2655951);
96
97}