Rivet analyses referenceBESIII_2015_I1352828Mass distributions in $\chi_c\to\phi K K \pi$ decaysExperiment: BESIII (BEPC) Inspire ID: 1352828 Status: VALIDATED NOHEPDATA Authors:
Beam energies: ANY Run details:
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}
|