rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

BESIII_2015_I1364494

$\eta^\prime\to e^+e^-\gamma$ decays
Experiment: BESIII (BEPC)
Inspire ID: 1364494
Status: VALIDATED
Authors:
  • Peter Richardson
References:
  • Phys.Rev. D92 (2015) 012001, 2015
Beams: * *
Beam energies: ANY
Run details:
  • Events with eta prime decays, either particle guns or collisions.

Differential decay rates for $\eta^\prime\to e^+e^-\gamma$ decays

Source code: BESIII_2015_I1364494.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' -> gamma e+e-
10  class BESIII_2015_I1364494 : public Analysis {
11  public:
12
13    /// Constructor
14    RIVET_DEFAULT_ANALYSIS_CTOR(BESIII_2015_I1364494);
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==331);
24      declare(ufs, "UFS");
25      DecayedParticles ETA(ufs);
26      ETA.addStable(PID::PI0);
27      declare(ETA, "ETA");
28      // Book histograms
29      book(_h_m, 1, 1, 3);
30      book(_netap, "TMP/netap");
31    }
32
33    /// Perform the per-event analysis
34    void analyze(const Event& event) {
35      static const map<PdgId,unsigned int> & mode0  = { { 22,2} };
36      static const map<PdgId,unsigned int> & mode1  = { {11,1}, {-11,1}, { 22,1} };
37      // Loop over eta' mesons
38      DecayedParticles ETA = apply<DecayedParticles>(event, "ETA");
39      // loop over particles
40      for(unsigned int ix=0;ix<ETA.decaying().size();++ix) {
41        // reference mode for denominator
42        if(ETA.modeMatches(ix,2,mode0))
43           _netap->fill();
44        // select right decay mode
45        else if ( ETA.modeMatches(ix,3,mode1)) {
46          const Particle & ep = ETA.decayProducts()[ix].at( 11)[0];
47          const Particle & em = ETA.decayProducts()[ix].at(-11)[0];
48          _h_m->fill( (em.momentum()+ep.momentum()).mass());
49        }
50      }
51    }
52
53
54    /// Normalise histograms etc., after the run
55    void finalize() {
56
57      // divide by no so BR and mult by bin width
58      // and 100 as in %
59      scale(_h_m,0.1*100./ *_netap);
60
61    }
62
63    /// @}
64
65
66    /// @name Histograms
67    /// @{
68    Histo1DPtr _h_m;
69    CounterPtr _netap;
70    /// @}
71
72
73  };
74
75
76  RIVET_DECLARE_PLUGIN(BESIII_2015_I1364494);
77
78
79}