rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

CLEOC_2011_I929693

$\chi_{c1}\to \eta^{(\prime)}\pi^+\pi^-$
Experiment: CLEOC (CESR)
Inspire ID: 929693
Status: VALIDATED NOHEPDATA
Authors:
  • Peter Richardson
References:
  • Phys.Rev.D 84 (2011) 112009
Beams: * *
Beam energies: ANY
    No run details listed

Measurement of the mass distributions in the decays $\chi_{c1}\to \eta^{(\prime)}\pi^+\pi^-$. The data were read from the plots in the paper and may not be corrected for efficiency.

Source code: CLEOC_2011_I929693.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_c1 -> eta(') pi+-pi
10  class CLEOC_2011_I929693 : public Analysis {
11  public:
12
13    /// Constructor
14    RIVET_DEFAULT_ANALYSIS_CTOR(CLEOC_2011_I929693);
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==20443);
23      declare(ufs, "UFS");
24      DecayedParticles chi(ufs);
25      chi.addStable( PID::PI0);
26      chi.addStable( PID::K0S);
27      chi.addStable( PID::ETA);
28      chi.addStable( PID::ETAPRIME);
29      declare(chi, "chi");
30      for(unsigned int ix=0;ix<2;++ix)
31	for(unsigned int iy=0;iy<2;++iy)
32	  book(_h[ix][iy],ix+1,1,iy+1);
33      book(_dalitz[0],"dalitz_1",50,0.,12.,50,0., 9.);
34      book(_dalitz[1],"dalitz_2",50,0.,12.,50,0., 7.);
35    }
36
37
38    /// Perform the per-event analysis
39    void analyze(const Event& event) {
40      static const map<PdgId,unsigned int> & mode1 = { { 221,1}, { 211,1}, {-211,1} };
41      static const map<PdgId,unsigned int> & mode2 = { { 331,1}, { 211,1}, {-211,1} };
42      DecayedParticles chi = apply<DecayedParticles>(event, "chi");
43      // loop over particles
44      for(unsigned int ix=0;ix<chi.decaying().size();++ix) {
45	if(chi.modeMatches(ix,3,mode1)) {
46	  const Particle & eta = chi.decayProducts()[ix].at( 221)[0];
47	  const Particle & pim = chi.decayProducts()[ix].at(-211)[0];
48	  const Particle & pip = chi.decayProducts()[ix].at( 211)[0];
49	  double m1 = (pip.momentum()+pim.momentum()).mass2();
50	  double m2 = (eta.momentum()+pip.momentum()).mass2();
51	  double m3 = (eta.momentum()+pim.momentum()).mass2();
52	  _dalitz[0]->fill(m2,m1);
53	  _h[0][1]->fill(sqrt(m1));
54	  _h[0][0]->fill(sqrt(m2));
55	  _h[0][0]->fill(sqrt(m3));
56	}
57	else if(chi.modeMatches(ix,3,mode2)) {
58	  const Particle & eta = chi.decayProducts()[ix].at( 331)[0];
59	  const Particle & pim = chi.decayProducts()[ix].at(-211)[0];
60	  const Particle & pip = chi.decayProducts()[ix].at( 211)[0];
61	  double m1 = (pip.momentum()+pim.momentum()).mass2();
62	  double m2 = (eta.momentum()+pip.momentum()).mass2();
63	  double m3 = (eta.momentum()+pim.momentum()).mass2();
64	  _dalitz[1]->fill(m2,m1);
65	  _h[1][1]->fill(sqrt(m1));
66	  _h[1][0]->fill(sqrt(m2));
67	  _h[1][0]->fill(sqrt(m3));
68	}
69      }
70    }
71
72
73    /// Normalise histograms etc., after the run
74    void finalize() {
75      for(unsigned int ix=0;ix<2;++ix) {
76	normalize(_dalitz[ix]);
77	for(unsigned int iy=0;iy<2;++iy)
78	  normalize(_h[ix][iy]);
79      }
80    }
81
82    /// @}
83
84
85    /// @name Histograms
86    /// @{
87    Histo1DPtr _h[2][2];
88    Histo2DPtr _dalitz[2];
89    /// @}
90
91
92  };
93
94
95  RIVET_DECLARE_PLUGIN(CLEOC_2011_I929693);
96
97}