rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

BESIII_2019_I1709205

$J/\psi$ and $\psi(2S)\to p \bar{p}\eta^\prime$
Experiment: BESIII (BEPC)
Inspire ID: 1709205
Status: VALIDATED NOHEPDATA
Authors:
  • Peter Richardson
References:
  • Phys.Rev.D 99 (2019) 3, 032006
Beams: * *
Beam energies: ANY
Run details:
  • Any process producing J/psi or psi(2S) originally e+e-

Measurement of the mass distributions in the decay $J/\psi$ or $\psi(2S)\to p \bar{p}\eta^\prime$. The data were read from the plots in the paper. It is also not clear that any resolution effects have been unfolded.

Source code: BESIII_2019_I1709205.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 J/psi psi(2S) -> p pbar eta'
11  class BESIII_2019_I1709205 : public Analysis {
12  public:
13
14    /// Constructor
15    RIVET_DEFAULT_ANALYSIS_CTOR(BESIII_2019_I1709205);
16
17
18    /// @name Analysis methods
19    /// @{
20
21    /// Book histograms and initialise projections before the run
22    void init() {
23      UnstableParticles ufs = UnstableParticles(Cuts::pid==443 or Cuts::pid==100443);
24      declare(ufs, "UFS");
25      DecayedParticles psi(ufs);
26      psi.addStable(PID::PI0);
27      psi.addStable(PID::K0S);
28      psi.addStable(PID::ETA);
29      psi.addStable(PID::ETAPRIME);
30      declare(psi, "psi");
31      for(unsigned int ix=0;ix<2;++ix) {
32	for(unsigned int iy=0;iy<6;++iy) {
33	  book(_h[ix][iy],1+ix,1,1+iy);
34	}
35      }
36      book(_dalitz[0], "dalitz_1",50,3.,8.,50,3.,8.);
37      book(_dalitz[1], "dalitz_2",50,3.5,5.,50,3.5,5.);
38    }
39
40
41    /// Perform the per-event analysis
42    void analyze(const Event& event) {
43      static const map<PdgId,unsigned int> & mode   = { { 2212,1}, {-2212,1}, { 331,1} };
44      DecayedParticles psi = apply<DecayedParticles>(event, "psi");
45      // loop over particles
46      for(unsigned int ix=0;ix<psi.decaying().size();++ix) {
47	if(!psi.modeMatches(ix,3,mode)) continue;
48	const Particles & etap = psi.decayProducts()[ix].at( 331);
49	const Particles & pp   = psi.decayProducts()[ix].at( 2212);
50	const Particles & pbar = psi.decayProducts()[ix].at(-2212);
51	double mminus = (pbar[0].momentum()+etap[0].momentum()).mass2();
52	double mplus  = (pp  [0].momentum()+etap[0].momentum()).mass2();
53	double mneut  = (pp  [0].momentum()+pbar[0].momentum()).mass2();
54	unsigned int iloc = psi.decaying()[ix].pid()==443 ? 1 : 0;
55	for(unsigned int ix=0;ix<4;ix+=3) {
56	  _h[iloc][ix+2]->fill(sqrt(mneut ));
57	  _h[iloc][ix+0]->fill(sqrt(mplus ));
58	  _h[iloc][ix+1]->fill(sqrt(mminus));
59	}
60	_dalitz[iloc]->fill(mplus,mminus);
61      }
62    }
63
64
65    /// Normalise histograms etc., after the run
66    void finalize() {
67      for(unsigned int ix=0;ix<2;++ix) {
68	normalize(_dalitz[ix]);
69	for(unsigned int iy=0;iy<6;++iy) {
70	  normalize(_h[ix][iy]);
71	}
72      }
73    }
74
75    /// @}
76
77
78    /// @name Histograms
79    /// @{
80    Histo1DPtr _h[2][6];
81    Histo2DPtr _dalitz[2];
82    /// @}
83
84
85  };
86
87
88  RIVET_DECLARE_PLUGIN(BESIII_2019_I1709205);
89
90}