Rivet analyses referenceCLEOII_1997_I444745$\pi^+\pi^-\pi^-\eta$ mass in $\tau\to\pi^+\pi^-\pi^-\eta\nu_\tau$Experiment: CLEOII (CESR) Inspire ID: 444745 Status: VALIDATED NOHEPDATA Authors:
Beam energies: ANY Run details:
Measurement of the hadronic mass in $\tau\to\pi^+\pi^-\pi^-\eta\nu_\tau$ decays, excluding the $f_1$ contribution. The background subtracted data were read from figure 4 in the paper. Source code: CLEOII_1997_I444745.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/UnstableParticles.hh"
4#include "Rivet/Projections/DecayedParticles.hh"
5
6namespace Rivet {
7
8
9 /// @brief tau -> pi+ pi- pi- eta nu_tau
10 class CLEOII_1997_I444745 : public Analysis {
11 public:
12
13 /// Constructor
14 RIVET_DEFAULT_ANALYSIS_CTOR(CLEOII_1997_I444745);
15
16
17 /// @name Analysis methods
18 /// @{
19
20 /// Book histograms and initialise projections before the run
21 void init() {
22 // Initialise and register projections
23 UnstableParticles ufs = UnstableParticles(Cuts::abspid==15);
24 declare(ufs, "UFS");
25 DecayedParticles TAU(ufs);
26 TAU.addStable(310);
27 TAU.addStable(111);
28 TAU.addStable(221);
29 declare(TAU, "TAU");
30 // histogram
31 book(_h,1,1,1);
32 }
33
34
35 /// Perform the per-event analysis
36 void analyze(const Event& event) {
37 DecayedParticles TAU = apply<DecayedParticles>(event, "TAU");
38 // loop over particles
39 for(unsigned int ix=0;ix<TAU.decaying().size();++ix) {
40 int sign = TAU.decaying()[ix].pid()>0 ? 1 : -1;
41 if ( !(TAU.modeMatches(ix,5,mode) || TAU.modeMatches(ix,5,modeCC)) ) continue;
42 const Particle& pip = TAU.decayProducts()[ix].at( 211*sign)[0];
43 const Particles& pim = TAU.decayProducts()[ix].at(-211*sign);
44 const Particle& eta = TAU.decayProducts()[ix].at( 221)[0];
45 FourMomentum phad = pip.mom()+eta.mom();
46 bool hasF1=false;
47 for (unsigned int iy=0; iy<2; ++iy) {
48 double mf1 = (phad+pim[iy].mom()).mass();
49 hasF1 |= abs(mf1-1.2819) < 0.036;
50 }
51 if (hasF1) continue;
52 phad += pim[0].mom() + pim[1].mom();
53 _h->fill(phad.mass());
54 }
55 }
56
57
58 /// Normalise histograms etc., after the run
59 void finalize() {
60 normalize(_h, 1.0, false);
61 }
62
63 /// @}
64
65
66 /// @name Histograms
67 /// @{
68 Histo1DPtr _h;
69 const map<PdgId,unsigned int> mode = { { 221,1}, { 211,1},{-211,2},{ 16,1}};
70 const map<PdgId,unsigned int> modeCC = { { 221,1}, {-211,1},{ 211,2},{-16,1}};
71 /// @}
72
73
74 };
75
76
77 RIVET_DECLARE_PLUGIN(CLEOII_1997_I444745);
78
79}
|