Processing math: 100%
rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

BABAR_2008_I766290

Mass distribution in BΛ+cˉΛcK
Experiment: BABAR (PEP-II)
Inspire ID: 766290
Status: VALIDATED NOHEPDATA
Authors:
  • Peter Richardson
References:
  • Phys.Rev.D 77 (2008) 031101
Beams: * *
Beam energies: ANY
Run details:
  • Any process producing B+/-, orignally Upsilon(4S) decays

Measurement of mass distributions in BΛ+cˉΛcK decays. The data was read from plots in the paper, the data is not corrected for efficiency/acceptance although the sideband backgrounds given in the paper have been subtracted.

Source code: BABAR_2008_I766290.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- -> Lambda_c+ Lambdabar_c- K-
10  class BABAR_2008_I766290 : public Analysis {
11  public:
12
13    /// Constructor
14    RIVET_DEFAULT_ANALYSIS_CTOR(BABAR_2008_I766290);
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==PID::BPLUS);
24      declare(ufs, "UFS");
25      DecayedParticles BP(ufs);
26      BP.addStable( 4122);
27      BP.addStable(-4122);
28      declare(BP,"BP");
29      // histos
30      for(unsigned int ix=0;ix<2;++ix)
31	book(_h[ix],1,1,1+ix);
32    }
33
34
35    /// Perform the per-event analysis
36    void analyze(const Event& event) {
37      static const map<PdgId,unsigned int> & mode   = { { 4122,1}, {-4122,1}, { 321,1} };
38      static const map<PdgId,unsigned int> & modeCC = { { 4122,1}, {-4122,1}, {-321,1} };
39      DecayedParticles BP = apply<DecayedParticles>(event, "BP");
40      for(unsigned int ix=0;ix<BP.decaying().size();++ix) {
41	// select right decay mode
42	int sign = 1;
43	if      (BP.decaying()[ix].pid()>0 && BP.modeMatches(ix,3,mode  )) sign = 1;
44	else if (BP.decaying()[ix].pid()<0 && BP.modeMatches(ix,3,modeCC)) sign =-1;
45	else continue;
46	const Particle & lam  = BP.decayProducts()[ix].at( 4122*sign)[0];
47	const Particle & lbar = BP.decayProducts()[ix].at(-4122*sign)[0];
48	const Particle & Kp   = BP.decayProducts()[ix].at(  321*sign)[0];
49	_h[0]->fill((lbar.momentum()+Kp  .momentum()).mass());
50	_h[1]->fill((lam .momentum()+lbar.momentum()).mass());
51      }
52    }
53
54
55    /// Normalise histograms etc., after the run
56    void finalize() {
57      for(unsigned int ix=0;ix<2;++ix)
58	normalize(_h[ix],1.,false);
59    }
60
61    /// @}
62
63
64    /// @name Histograms
65    /// @{
66    Histo1DPtr _h[2];
67    /// @}
68
69
70  };
71
72
73  RIVET_DECLARE_PLUGIN(BABAR_2008_I766290);
74
75}