rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

CLEO_1995_I396711

Mass spectrum in hadronic $\tau$ decays
Experiment: CLEO (CESR)
Inspire ID: 396711
Status: VALIDATED NOHEPDATA
Authors:
  • Peter Richardson
References:
  • Phys.Lett.B 356 (1995) 580-588
Beams: * *
Beam energies: ANY
Run details:
  • Tau production, can be any process but original data was in $e^+ e^-$ at the $\Upsilon(4S)$ resonance

Measurement of the mass spectrum in hadronic $\tau$ decays. The decay were read from figure 1 in the paper which is fully corrected.

Source code: CLEO_1995_I396711.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/UnstableParticles.hh"
 4
 5namespace Rivet {
 6
 7
 8  /// @brieftau -> hadrons
 9  class CLEO_1995_I396711 : public Analysis {
10  public:
11
12    /// Constructor
13    RIVET_DEFAULT_ANALYSIS_CTOR(CLEO_1995_I396711);
14
15
16    /// @name Analysis methods
17    /// @{
18
19    /// Book histograms and initialise projections before the run
20    void init() {
21      declare(UnstableParticles(Cuts::abspid==PID::TAU), "UFS");
22      book(_h, 1, 1, 1);
23    }
24
25
26    void findDecayProducts(const Particle& mother, Particles& hadrons) {
27      for (const Particle& p : mother.children()) {
28        long id = p.abspid();
29        if (id == PID::PI0 || id==311 || id==310 || id==130) {
30          hadrons.push_back(p);
31        }
32        else if (!p.children().empty()) {
33          findDecayProducts(p, hadrons);
34        }
35        else if (id>16) {
36          hadrons.push_back(p);
37        }
38      }
39    }
40
41    /// Perform the per-event analysis
42    void analyze(const Event& event) {
43      const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
44      for (const Particle& p : ufs.particles(Cuts::abspid==PID::TAU)) {
45        Particles hadrons;
46        // find the decay products we want
47        findDecayProducts(p, hadrons);
48        if (hadrons.size()<=1) continue;
49        FourMomentum ptotal;
50        for (const Particle& p2 : hadrons) ptotal+=p2.momentum();
51        _h->fill(ptotal.mass2());
52      }
53    }
54
55
56    /// Normalise histograms etc., after the run
57    void finalize() {
58      normalize(_h,1.,false);
59    }
60
61    /// @}
62
63
64    /// @name Histograms
65    /// @{
66    Histo1DPtr _h;
67    /// @}
68
69
70  };
71
72
73  RIVET_DECLARE_PLUGIN(CLEO_1995_I396711);
74
75}