rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

BESIII_2023_I2633025

Kinematic distributions in $\eta\to\pi^+\pi^-\pi^0$ and $3\pi^0$ decays
Experiment: BESIII (BEPC)
Inspire ID: 2633025
Status: VALIDATED NOHEPDATA
Authors:
  • Peter Richardson
References: Beams: * *
Beam energies: ANY
Run details:
  • Any process producing eta mesons, originally e+e-

Kinematic distributions in $\eta\to\pi^+\pi^-\pi^0$ and $3\pi^0$ decays. The data were read from the plots in the paper

Source code: BESIII_2023_I2633025.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 eta -> 3 pions
 10  class BESIII_2023_I2633025 : public Analysis {
 11  public:
 12
 13    /// Constructor
 14    RIVET_DEFAULT_ANALYSIS_CTOR(BESIII_2023_I2633025);
 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::pid==PID::ETA);
 24      declare(ufs, "UFS");
 25      DecayedParticles ETA(ufs);
 26      ETA.addStable(PID::PI0);
 27      ETA.addStable(PID::K0S);
 28      declare(ETA, "ETA");
 29      vector<double> bins = {-1.,-0.9,-0.8,-0.7,-0.6,-0.5,-0.4,-0.3,-0.2,-0.1,
 30                             0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9};
 31      // histograms
 32      for (unsigned int ix=0; ix<2; ++ix) {
 33        book(_d[ix],bins);
 34        book(_c[ix],"TMP/c_"+toString(ix));
 35        for(unsigned int iy=0;iy<19;++iy) {
 36          book(_d[ix]->bin(iy+1),3+ix,1,1+iy);
 37        }
 38      }
 39    }
 40
 41
 42    /// Perform the per-event analysis
 43    void analyze(const Event& event) {
 44      DecayedParticles ETA = apply<DecayedParticles>(event, "ETA");
 45      // loop over particles
 46      for (unsigned int ix=0; ix<ETA.decaying().size(); ++ix) {
 47        if (ETA.modeMatches(ix,3,mode1)) {
 48          const Particle& pi0 = ETA.decayProducts()[ix].at( 111)[0];
 49          const Particle& pip = ETA.decayProducts()[ix].at( 211)[0];
 50          const Particle& pim = ETA.decayProducts()[ix].at(-211)[0];
 51          double s1 = (pi0.mom()+pim.mom()).mass2();
 52          double s2 = (pi0.mom()+pip.mom()).mass2();
 53          double s3 = (pip.mom()+pim.mom()).mass2();
 54          double mOut = pi0.mass()+pip.mass()+pim.mass();
 55          double Q = ETA.decaying()[ix].mass()-mOut;
 56          double X = sqrt(3.)/2./ETA.decaying()[ix].mass()/Q*(s1-s2);
 57          double Y = 3.*(sqr(ETA.decaying()[ix].mass()-pi0.mass())-s3)/2./ETA.decaying()[ix].mass()/Q-1.;
 58          _d[0]->fill(Y,X);
 59          _c[0]->fill();
 60        }
 61        else if (ETA.modeMatches(ix,3,mode2)) {
 62          const Particles& pi0 = ETA.decayProducts()[ix].at(111);
 63          double s1 = (pi0[2].mom()+pi0[1].mom()).mass2();
 64          double s2 = (pi0[2].mom()+pi0[0].mom()).mass2();
 65          double s3 = (pi0[0].mom()+pi0[1].mom()).mass2();
 66          double mOut = pi0[2].mass()+pi0[0].mass()+pi0[1].mass();
 67          double Q = ETA.decaying()[ix].mass()-mOut;
 68          double X = sqrt(3.)/2./ETA.decaying()[ix].mass()/Q*(s1-s2);
 69          double Y = 3.*(sqr(ETA.decaying()[ix].mass()-pi0[2].mass())-s3)/2./ETA.decaying()[ix].mass()/Q-1.;
 70          _d[1]->fill(Y,X);
 71          _c[1]->fill();
 72        }
 73      }
 74    }
 75
 76
 77    /// Normalise histograms etc., after the run
 78    void finalize() {
 79      for(unsigned int ix=0;ix<2;++ix) {
 80        scale(_d[ix],1./ *_c[ix]);
 81        divByGroupWidth(_d[ix]);
 82      }
 83    }
 84
 85    /// @}
 86
 87
 88    /// @name Histograms
 89    /// @{
 90    Histo1DGroupPtr _d[2];
 91    CounterPtr _c[2];
 92    const map<PdgId,unsigned int> mode1 = { {211,1}, {-211,1}, {111,1} };
 93    const map<PdgId,unsigned int> mode2 = { {111,3} };
 94    /// @}
 95
 96
 97  };
 98
 99
100  RIVET_DECLARE_PLUGIN(BESIII_2023_I2633025);
101
102}