Rivet analyses referenceBES_1998_I482964Mass distributions in $J/\psi\to\gamma K^+K^-\pi^0$Experiment: BES (BEPC) Inspire ID: 482964 Status: VALIDATED NOHEPDATA Authors:
Beam energies: ANY Run details:
Measurement of mass distributions in $J/\psi\to\gamma K^+K^-\pi^0$. The data were read from the plots in the paper and are not corrected. Source code: BES_1998_I482964.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 J/psi -> gamma K+K-pi0
10 class BES_1998_I482964 : public Analysis {
11 public:
12
13 /// Constructor
14 RIVET_DEFAULT_ANALYSIS_CTOR(BES_1998_I482964);
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==443);
24 declare(ufs, "UFS");
25 DecayedParticles PSI(ufs);
26 PSI.addStable(PID::K0S);
27 PSI.addStable(PID::PI0);
28 declare(PSI, "PSI");
29 // histos
30 for (unsigned int ix=0; ix<3; ++ix) {
31 book(_h[ix],1,1,1+ix);
32 }
33 }
34
35
36 /// Perform the per-event analysis
37 void analyze(const Event& event) {
38 // find the J/psi decays
39 static const map<PdgId,unsigned int> & mode1 = { { 321,1}, { 321,1}, { 111,1}, { 22,1}};
40 DecayedParticles PSI = apply<DecayedParticles>(event, "PSI");
41 // loop over particles
42 for (unsigned int ix=0;ix<PSI.decaying().size();++ix) {
43 if (!PSI.modeMatches(ix,4,mode1)) continue;
44 const Particle& Kp = PSI.decayProducts()[0].at( 321)[0];
45 const Particle& Km = PSI.decayProducts()[0].at(-321)[0];
46 const Particle& pi0 = PSI.decayProducts()[0].at( 111)[0];
47 FourMomentum pKK = Kp.mom()+Km.mom();
48 _h[0]->fill((pKK+pi0.mom()).mass()/GeV);
49 _h[1]->fill((Kp.mom()+pi0.mom()).mass()/GeV);
50 _h[1]->fill((Km.mom()+pi0.mom()).mass()/GeV);
51 _h[2]->fill(pKK.mass()/GeV);
52 }
53 }
54
55
56 /// Normalise histograms etc., after the run
57 void finalize() {
58 normalize(_h, 1.0, false);
59 }
60
61 /// @}
62
63
64 /// @name Histograms
65 /// @{
66 Histo1DPtr _h[3];
67 /// @}
68
69
70 };
71
72
73 RIVET_DECLARE_PLUGIN(BES_1998_I482964);
74
75}
|