Rivet analyses referenceARGUS_1994_I354224$K^0_s$ production in B decaysExperiment: ARGUS (DORIS) Inspire ID: 354224 Status: VALIDATED Authors:
Beam energies: ANY Run details:
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(_est_K, 1, 1, 1);
28 book(_h_K, "_hK", refData(1, 1, 1));
29 book(_nB, "TMP/nB");
30 }
31
32 void analyzeDecay(Particle mother, Particles & kaons) {
33 for (const Particle & p : mother.children()) {
34 if (p.pid()==310) {
35 kaons.push_back(p);
36 }
37 else if (!p.children().empty()) {
38 analyzeDecay(p,kaons);
39 }
40 }
41 }
42
43 /// Perform the per-event analysis
44 void analyze(const Event& event) {
45 for (const Particle& p : apply<UnstableParticles>(event, "UFS").particles(Cuts::abspid==511 or Cuts::abspid==521)) {
46 if (!p.children().empty()) {
47 if (p.children()[0].pid()==p.pid()) continue;
48 }
49 FourMomentum pB = p.momentum();
50 const LorentzTransform B_boost = LorentzTransform::mkFrameTransformFromBeta(pB.betaVec());
51 _nB->fill();
52 Particles kaons;
53 analyzeDecay(p,kaons);
54 for (const Particle& kaon : kaons) {
55 FourMomentum pKaon = B_boost.transform(kaon.momentum());
56 _h_K->fill(pKaon.p3().mod());
57 }
58 }
59 }
60
61
62 /// Normalise histograms etc., after the run
63 void finalize() {
64
65 scale(_h_K, 1./ *_nB);
66 barchart(_h_K, _est_K);
67
68 }
69
70 /// @}
71
72
73 /// @name Histograms
74 /// @{
75 Histo1DPtr _h_K;
76 Estimate1DPtr _est_K;
77 CounterPtr _nB;
78 /// @}
79
80
81 };
82
83
84 RIVET_DECLARE_PLUGIN(ARGUS_1994_I354224);
85
86
87}
|