Rivet analyses referenceBESIII_2021_I1870388$\chi_{c(0,1,2)}\to n K^0_S\bar{\Lambda}^0$ + c.cExperiment: BESIII (BEPC) Inspire ID: 1870388 Status: VALIDATED NOHEPDATA Authors:
Beam energies: ANY Run details:
Measurement of the mass distributions in the decays $\chi_{c(0,1,2)}\to n K^0_S\bar{\Lambda}^0$ + c.c. The data were read from the plots in the paper and may not be corrected for efficiency or background. Source code: BESIII_2021_I1870388.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 -> n K0S Lambdabar +cc
10 class BESIII_2021_I1870388 : public Analysis {
11 public:
12
13 /// Constructor
14 RIVET_DEFAULT_ANALYSIS_CTOR(BESIII_2021_I1870388);
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 or
23 Cuts::pid==445 or
24 Cuts::pid==10441);
25 declare(ufs, "UFS");
26 DecayedParticles chi(ufs);
27 chi.addStable( PID::PI0);
28 chi.addStable( PID::K0S);
29 chi.addStable( PID::ETA);
30 chi.addStable( PID::ETAPRIME);
31 chi.addStable( PID::LAMBDA);
32 chi.addStable(-PID::LAMBDA);
33 declare(chi, "chi");
34 // histograms
35 for(unsigned int ix=0;ix<3;++ix) {
36 book(_dalitz[ix], "dalitz_"+toString(ix+1),50,2.,7.,50,2.,6.2);
37 for(unsigned int iy=0;iy<3;++iy)
38 book(_h[ix][iy],ix+1,1,iy+1);
39 }
40 }
41
42
43 /// Perform the per-event analysis
44 void analyze(const Event& event) {
45 static const map<PdgId,unsigned int> & mode = { { 2112,1}, {-3122,1}, { 310,1} };
46 static const map<PdgId,unsigned int> & modeCC = { {-2112,1}, { 3122,1}, { 310,1} };
47 DecayedParticles chi = apply<DecayedParticles>(event, "chi");
48 // loop over particles
49 for(unsigned int ix=0;ix<chi.decaying().size();++ix) {
50 int sign=1;
51 if(chi.modeMatches(ix,3,mode)) {
52 sign = 1;
53 }
54 else if(chi.modeMatches(ix,3,modeCC)) {
55 sign = -1;
56 }
57 else continue;
58 unsigned int iloc = chi.decaying()[ix].pid()==10441 ? 0 : chi.decaying()[ix].pid()==445 ? 2 : 1;
59 const Particle & KS0 = chi.decayProducts()[ix].at( 310)[0];
60 const Particle & nn = chi.decayProducts()[ix].at( sign*2112)[0];
61 const Particle & lbar = chi.decayProducts()[ix].at(-sign*3122)[0];
62 double mnLam = (nn .momentum()+lbar.momentum()).mass2();
63 double mnK = (nn .momentum()+ KS0.momentum()).mass2();
64 double mKLam = (lbar.momentum()+ KS0.momentum()).mass2();
65 _h[iloc][0]->fill(sqrt(mnLam));
66 _h[iloc][1]->fill(sqrt(mnK ));
67 _h[iloc][2]->fill(sqrt(mKLam));
68 _dalitz[iloc]->fill(mKLam,mnK);
69 }
70 }
71
72
73 /// Normalise histograms etc., after the run
74 void finalize() {
75 for(unsigned int ix=0;ix<3;++ix) {
76 normalize(_dalitz[ix]);
77 for(unsigned int iy=0;iy<3;++iy)
78 normalize(_h[ix][iy]);
79 }
80 }
81
82 /// @}
83
84
85 /// @name Histograms
86 /// @{
87 Histo1DPtr _h[3][3];
88 Histo2DPtr _dalitz[3];
89 /// @}
90
91
92 };
93
94
95 RIVET_DECLARE_PLUGIN(BESIII_2021_I1870388);
96
97}
|