rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

CLEOII_1996_I415408

Mass Distributions in $\tau$ decays with $K^0_S$ mesons
Experiment: CLEOII (CESR)
Inspire ID: 415408
Status: VALIDATED NOHEPDATA
Authors:
  • Peter Richardson
References:
  • Phys.Rev.D 53 (1996) 6037-6053
Beams: * *
Beam energies: ANY
Run details:
  • Any process producing tau leptons, originally e+e-

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}