Rivet analyses referenceCLEOII_1996_I415408Mass Distributions in $\tau$ decays with $K^0_S$ mesonsExperiment: CLEOII (CESR) Inspire ID: 415408 Status: VALIDATED NOHEPDATA Authors:
Beam energies: ANY Run details:
Mass distributions in the decays $\tau\to\nu_\tau+K^0_S\pi^-$, $K^-K^0_S$, $K^0_S\pi^-\pi^0$, $K^0_SK^-\pi^0$ and $K^0_SK^0_S\pi^-$. The background subtracted data were read from the figures in the paper. Source code: CLEOII_1996_I415408.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/UnstableParticles.hh"
4#include "Rivet/Projections/DecayedParticles.hh"
5
6
7namespace Rivet {
8
9
10 /// @brief tau -> hadrons with KS0
11 class CLEOII_1996_I415408 : public Analysis {
12 public:
13
14 /// Constructor
15 RIVET_DEFAULT_ANALYSIS_CTOR(CLEOII_1996_I415408);
16
17
18 /// @name Analysis methods
19 /// @{
20
21 /// Book histograms and initialise projections before the run
22 void init() {
23 // Initialise and register projections
24 UnstableParticles ufs = UnstableParticles(Cuts::abspid==15);
25 declare(ufs, "UFS");
26 DecayedParticles TAU(ufs);
27 TAU.addStable(310);
28 TAU.addStable(111);
29 declare(TAU, "TAU");
30 // histos
31 for (unsigned int ix=0; ix<4; ++ix) {
32 book(_h[ix], 1+ix, 1, 1);
33 if(ix > 1) continue;
34 book(_h[4+ix], 5, 1, 1+ix);
35 book(_h[6+ix], 6+ix, 1, 1);
36 }
37 }
38
39
40 /// Perform the per-event analysis
41 void analyze(const Event& event) {
42 DecayedParticles TAU = apply<DecayedParticles>(event, "TAU");
43 // loop over particles
44 for (unsigned int ix=0; ix<TAU.decaying().size(); ++ix) {
45 int sign = TAU.decaying()[ix].pid()>0 ? 1 : -1;
46 if ((TAU.modeMatches(ix,3,mode1 ) || TAU.modeMatches(ix,3,mode1CC))) {
47 const Particle & pim = TAU.decayProducts()[ix].at(-211*sign)[0];
48 const Particle & K0 = TAU.decayProducts()[ix].at( 310 )[0];
49 _h[0]->fill((pim.mom()+K0.mom()).mass());
50 }
51 else if (TAU.modeMatches(ix,3,mode2 ) || TAU.modeMatches(ix,3,mode2CC)) {
52 const Particle & Km = TAU.decayProducts()[ix].at(-321*sign)[0];
53 const Particle & K0 = TAU.decayProducts()[ix].at( 310 )[0];
54 _h[1]->fill((Km.mom()+K0.mom()).mass());
55 }
56 else if (TAU.modeMatches(ix,4,mode3 ) || TAU.modeMatches(ix,4,mode3CC)) {
57 const Particle & pim = TAU.decayProducts()[ix].at(-211*sign)[0];
58 const Particle & K0 = TAU.decayProducts()[ix].at( 310 )[0];
59 const Particle & pi0 = TAU.decayProducts()[ix].at( 111 )[0];
60 _h[2]->fill((pim.mom()+K0.mom()+pi0.mom()).mass());
61 }
62 else if (TAU.modeMatches(ix,4,mode4 ) || TAU.modeMatches(ix,4,mode4CC)) {
63 const Particle & Km = TAU.decayProducts()[ix].at(-321*sign)[0];
64 const Particle & K0 = TAU.decayProducts()[ix].at( 310 )[0];
65 const Particle & pi0 = TAU.decayProducts()[ix].at( 111 )[0];
66 _h[3]->fill((Km.mom()+K0.mom()+pi0.mom()).mass());
67 _h[4]->fill((Km.mom()+pi0.mom()).mass());
68 _h[5]->fill((K0.mom()+pi0.mom()).mass());
69 }
70 else if (TAU.modeMatches(ix,4,mode5 ) || TAU.modeMatches(ix,4,mode5CC)) {
71 const Particle & pim = TAU.decayProducts()[ix].at(-211*sign)[0];
72 const Particles & K0 = TAU.decayProducts()[ix].at( 310 );
73 _h[6]->fill((pim.mom()+K0[0].mom()+K0[1].mom()).mass());
74 _h[7]->fill((pim.mom()+K0[0].mom()).mass());
75 _h[7]->fill((pim.mom()+K0[1].mom()).mass());
76 }
77 }
78 }
79
80
81 /// Normalise histograms etc., after the run
82 void finalize() {
83 normalize(_h, 1.0, false);
84 }
85
86 /// @}
87
88
89 /// @name Histograms
90 /// @{
91 Histo1DPtr _h[8];
92 const map<PdgId,unsigned int> mode1 = { { 310,1},{-211,1},{ 16,1}};
93 const map<PdgId,unsigned int> mode1CC = { { 310,1},{ 211,1},{-16,1}};
94 const map<PdgId,unsigned int> mode2 = { { 310,1},{-321,1},{ 16,1}};
95 const map<PdgId,unsigned int> mode2CC = { { 310,1},{ 321,1},{-16,1}};
96 const map<PdgId,unsigned int> mode3 = { { 310,1},{-211,1},{ 111,1},{ 16,1}};
97 const map<PdgId,unsigned int> mode3CC = { { 310,1},{ 211,1},{ 111,1},{-16,1}};
98 const map<PdgId,unsigned int> mode4 = { { 310,1},{-321,1},{ 111,1},{ 16,1}};
99 const map<PdgId,unsigned int> mode4CC = { { 310,1},{ 321,1},{ 111,1},{-16,1}};
100 const map<PdgId,unsigned int> mode5 = { { 310,2},{-211,1},{ 16,1}};
101 const map<PdgId,unsigned int> mode5CC = { { 310,2},{ 211,1},{-16,1}};
102 /// @}
103
104
105 };
106
107
108 RIVET_DECLARE_PLUGIN(CLEOII_1996_I415408);
109
110}
|