Rivet analyses referenceBABAR_2018_I1679886Mass spectrum for $K^-K_S^0$ decays of the $\tau^-$ leptonExperiment: BABAR (PEP-II) Inspire ID: 1679886 Status: VALIDATED Authors:
Beam energies: ANY Run details:
Mass spectra for $K^-K_S^0$ in tau decays measured by BaBar. Useful for testing models of the hadronic current in $\tau$ decays. Source code: BABAR_2018_I1679886.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/UnstableParticles.hh"
4
5namespace Rivet {
6
7
8 /// @brief Add a short analysis description here
9 class BABAR_2018_I1679886 : public Analysis {
10 public:
11
12 /// Constructor
13 RIVET_DEFAULT_ANALYSIS_CTOR(BABAR_2018_I1679886);
14
15
16 /// @name Analysis methods
17 /// @{
18
19 /// Book histograms and initialise projections before the run
20 void init() {
21
22 declare(UnstableParticles(), "UFS");
23 book(_h_KK, 1, 1, 1);
24
25 }
26
27 void findDecayProducts(const Particle & mother, unsigned int & nstable,
28 unsigned int & nK0, unsigned int & nKp,
29 unsigned int & nKm, FourMomentum & ptot) {
30 for(const Particle & p : mother.children()) {
31 int id = p.pid();
32 if ( id == PID::KPLUS ) {
33 ++nKp;
34 ++nstable;
35 ptot += p.momentum();
36 }
37 else if (id == PID::KMINUS ) {
38 ++nKm;
39 ++nstable;
40 ptot += p.momentum();
41 }
42 else if (id == PID::K0S) {
43 ++nK0;
44 ++nstable;
45 ptot += p.momentum();
46 }
47 else if (id == PID::PI0 || id == PID::PIPLUS || id == PID::PIMINUS) {
48 ++nstable;
49 }
50 else if ( !p.children().empty() ) {
51 findDecayProducts(p, nstable, nK0, nKp, nKm, ptot);
52 }
53 else
54 ++nstable;
55 }
56 }
57
58 /// Perform the per-event analysis
59 void analyze(const Event& event) {
60
61 // Loop over taus
62 for(const Particle& tau : apply<UnstableParticles>(event, "UFS").particles(Cuts::abspid==PID::TAU)) {
63 unsigned int nstable(0),nK0(0),nKp(0),nKm(0);
64 FourMomentum p_tot(0,0,0,0);
65 findDecayProducts(tau, nstable, nK0, nKp, nKm, p_tot);
66 if (tau.pid() < 0) {
67 swap(nKp,nKm);
68 }
69 if(nstable!=3) continue;
70 if(nKm==1 && nK0==1 )
71 _h_KK->fill(p_tot.mass());
72 }
73
74
75 }
76
77
78 /// Normalise histograms etc., after the run
79 void finalize() {
80 normalize(_h_KK);
81 }
82
83 /// @}
84
85
86 /// @name Histograms
87 /// @{
88 Histo1DPtr _h_KK;
89 /// @}
90
91
92 };
93
94
95 RIVET_DECLARE_PLUGIN(BABAR_2018_I1679886);
96
97
98}
|