rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

ARGUS_1994_I354224

$K^0_s$ production in B decays
Experiment: ARGUS (DORIS)
Inspire ID: 354224
Status: VALIDATED
Authors:
  • Peter Richardson
References:
  • Z.Phys. C62 (1994) 371-382, 1994
Beams: * *
Beam energies: ANY
Run details:
  • In principle any process producing $B^\pm$ and $B^0,\bar{B}^0$, bot original at Upsilon 4S

Measurement of the spectrum for $K^0_S$ production in $B$ decays. The original measurement was done by ARGUS at the $\Upsilon(4S)$ resonance and therefore represents that admixture of $B^\pm$ and $B^0,\bar{B}^0$.

Source code: ARGUS_1994_I354224.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/FinalState.hh"
 4#include "Rivet/Projections/UnstableParticles.hh"
 5
 6namespace Rivet {
 7
 8
 9  /// @brief k0s in b decays
10  class ARGUS_1994_I354224 : public Analysis {
11  public:
12
13    /// Constructor
14    RIVET_DEFAULT_ANALYSIS_CTOR(ARGUS_1994_I354224);
15
16
17    /// @name Analysis methods
18    //@{
19
20    /// Book histograms and initialise projections before the run
21    void init() {
22
23      // Initialise and register projections
24      declare(UnstableParticles(), "UFS");
25
26      // Book histograms
27      book(_h_K, 1, 1, 1);
28      book(_nB,"TMP/nB");
29    }
30
31    void analyzeDecay(Particle mother, Particles & kaons) {
32      for(const Particle & p : mother.children()) {
33	if(p.pid()==310) {
34	  kaons.push_back(p);
35	}
36	else if(!p.children().empty()) {
37	  analyzeDecay(p,kaons);
38	} 
39      }
40    }
41
42    /// Perform the per-event analysis
43    void analyze(const Event& event) {
44      for(const Particle& p : apply<UnstableParticles>(event, "UFS").particles(Cuts::abspid==511 or Cuts::abspid==521)) {
45	if(!p.children().empty()) {
46	  if(p.children()[0].pid()==p.pid()) continue;
47	}
48	FourMomentum pB = p.momentum();
49	const LorentzTransform B_boost = LorentzTransform::mkFrameTransformFromBeta(pB.betaVec());
50	_nB->fill();
51	Particles kaons;
52	analyzeDecay(p,kaons);
53	for(const Particle & kaon : kaons) {
54	  FourMomentum pKaon = B_boost.transform(kaon.momentum());
55	  _h_K->fill(pKaon.p3().mod());
56	}
57      }
58    }
59
60
61    /// Normalise histograms etc., after the run
62    void finalize() {
63
64      scale(_h_K, 1./ *_nB);
65
66    }
67
68    //@}
69
70
71    /// @name Histograms
72    //@{
73    Histo1DPtr _h_K;
74    CounterPtr _nB;
75    //@}
76
77
78  };
79
80
81  // The hook for the plugin system
82  RIVET_DECLARE_PLUGIN(ARGUS_1994_I354224);
83
84
85}