rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

BESIII_2013_I1126137

Photon Spectrum in $J/\psi\to3\gamma$ decays
Experiment: BESIII (BEPC)
Inspire ID: 1126137
Status: VALIDATED NOHEPDATA
Authors:
  • Peter Richardson
References:
  • Phys.Rev.D 87 (2013) 3, 032003
Beams: * *
Beam energies: ANY
Run details:
  • Any process producing J/psi mesons, originally e+e- collisions

Measurement of the photon pectrum in $J/\psi\to3\gamma$ decays by BES. The data was read from the figure in the paper but is corrected.

Source code: BESIII_2013_I1126137.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/UnstableParticles.hh"
 4
 5namespace Rivet {
 6
 7
 8  /// @brief J/psi -> 3 gamma
 9  class BESIII_2013_I1126137 : public Analysis {
10  public:
11
12    /// Constructor
13    RIVET_DEFAULT_ANALYSIS_CTOR(BESIII_2013_I1126137);
14
15
16    /// @name Analysis methods
17    /// @{
18
19    /// Book histograms and initialise projections before the run
20    void init() {
21      // projections
22      declare(UnstableParticles(Cuts::pid==443), "UFS");
23      // histos
24      book(_h,1,1,1);
25      book(_c,"TMP/nJPsi");
26    }
27
28
29    /// Perform the per-event analysis
30    void analyze(const Event& event) {
31      // Find the J/psi among the unstables
32      for (const Particle& psi : apply<UnstableParticles>(event, "UFS").particles()) {
33	_c->fill();
34	unsigned int nhadron(0);
35	Particles photons;
36	for(const Particle & child : psi.children()) {
37	  if(PID::isHadron(child.pid()))
38	    ++nhadron;
39	  else if(child.pid()==PID::PHOTON)
40	    photons.push_back(child);
41	}
42	if(nhadron==0 && photons.size()==3) {
43	  LorentzTransform boost;
44	  if (psi.p3().mod() > 1*MeV)
45	    boost = LorentzTransform::mkFrameTransformFromBeta(psi.momentum().betaVec());
46	  for(const Particle & gamma:photons)
47	    _h->fill(2.*boost.transform(gamma.momentum()).E()/psi.mass());
48	}
49      }
50    }
51
52
53    /// Normalise histograms etc., after the run
54    void finalize() {
55      scale(_h, 1e6/3. / *_c);
56    }
57
58    /// @}
59
60
61    /// @name Histograms
62    /// @{
63    Histo1DPtr _h;
64    CounterPtr _c;
65    /// @}
66
67
68  };
69
70
71  RIVET_DECLARE_PLUGIN(BESIII_2013_I1126137);
72
73}