rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

BESIII_2015_I1352828

Mass distributions in $\chi_c\to\phi K K \pi$ decays
Experiment: BESIII (BEPC)
Inspire ID: 1352828
Status: VALIDATED NOHEPDATA
Authors:
  • Peter Richardson
References:
  • Phys.Rev.D 91 (2015) 11, 112008
Beams: * *
Beam energies: ANY
Run details:
  • Any process producing chi_cJ, originally e+e-

Measurements of mass distributions in $\chi_c\to\phi K K \pi$ decays. The data were read from the plots in the paper and may not be corrected for efficiency

Source code: BESIII_2015_I1352828.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 chi_c -> phi K K pi
10  class BESIII_2015_I1352828 : public Analysis {
11  public:
12
13    /// Constructor
14    RIVET_DEFAULT_ANALYSIS_CTOR(BESIII_2015_I1352828);
15
16
17    /// @name Analysis methods
18    /// @{
19
20    /// Book histograms and initialise projections before the run
21    void init() {
22      UnstableParticles ufs = UnstableParticles(Cuts::pid==10441 or
23						Cuts::pid==20443 or
24						Cuts::pid==445);
25      declare(ufs, "UFS");
26      DecayedParticles chi(ufs);
27      chi.addStable( PID::PHI);
28      chi.addStable( PID::K0S);
29      chi.addStable( PID::PI0);
30      declare(chi, "chi");
31      // histos
32      for(unsigned int iy=0;iy<2;++iy)
33	for(unsigned int ix=0;ix<3;++ix)
34	  book(_h[iy][ix],1,1+iy,1+ix);
35    }
36
37
38    /// Perform the per-event analysis
39    void analyze(const Event& event) {
40      static const map<PdgId,unsigned int> & mode1   = { { 333,1}, { 310,1}, { 321,1}, {-211,1} };
41      static const map<PdgId,unsigned int> & mode1CC = { { 333,1}, { 310,1}, {-321,1}, { 211,1} };
42      static const map<PdgId,unsigned int> & mode2   = { { 333,1}, { 321,1}, {-321,1}, { 111,1} };
43      DecayedParticles chi = apply<DecayedParticles>(event, "chi");
44      for(unsigned int ix=0;ix<chi.decaying().size();++ix) {
45	int imode = 0;
46	if(chi.modeMatches(ix,4,mode1) ||
47	   chi.modeMatches(ix,4,mode1CC))    imode=0;
48	else if(chi.modeMatches(ix,4,mode2)) imode=1;
49	else continue;
50	unsigned int ichi = 0;
51	if     (chi.decaying()[ix].pid()==20443) ichi=1;
52	else if(chi.decaying()[ix].pid()==  445) ichi=2;
53	const Particle & phi = chi.decayProducts()[ix].at(333)[0];
54	double mass = (chi.decaying()[ix].momentum()-phi.momentum()).mass();
55	_h[imode][ichi]->fill(mass);
56      }
57    }
58
59
60    /// Normalise histograms etc., after the run
61    void finalize() {
62      for(unsigned int iy=0;iy<2;++iy)
63	for(unsigned int ix=0;ix<3;++ix)
64	  normalize(_h[iy][ix],1.,false);
65    }
66
67    /// @}
68
69
70    /// @name Histograms
71    /// @{
72    Histo1DPtr _h[2][3];
73    /// @}
74
75
76  };
77
78
79  RIVET_DECLARE_PLUGIN(BESIII_2015_I1352828);
80
81}