Rivet analyses referenceBESIII_2023_I2630813Mass distributions in the decay $D_s^+\to\omega\pi^+\eta$Experiment: BESIII (BEPC) Inspire ID: 2630813 Status: VALIDATED NOHEPDATA Authors:
Beam energies: ANY Run details:
Measurement of mass distributions in the decay $D_s^+\to\omega\pi^+\eta$ by the BESIII collaboration. The data were read from the plots in the paper and the backgrounds given subtracted. Source code: BESIII_2023_I2630813.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 D_s+ -> omega eta pi+
10 class BESIII_2023_I2630813 : public Analysis {
11 public:
12
13 /// Constructor
14 RIVET_DEFAULT_ANALYSIS_CTOR(BESIII_2023_I2630813);
15
16
17 /// @name Analysis methods
18 /// @{
19
20 /// Book histograms and initialise projections before the run
21 void init() {
22 // projections
23 UnstableParticles ufs = UnstableParticles(Cuts::abspid==431);
24 declare(ufs, "UFS");
25 DecayedParticles DS(ufs);
26 DS.addStable(PID::PI0);
27 DS.addStable(PID::K0S);
28 DS.addStable(PID::ETA);
29 DS.addStable(PID::OMEGA);
30 DS.addStable(PID::ETAPRIME);
31 declare(DS, "DS");
32 // histograms
33 for (unsigned int ix=0; ix<3; ++ix) {
34 book(_h[ix], 1, 1, 1+ix);
35 }
36 }
37
38
39 /// Perform the per-event analysis
40 void analyze(const Event& event) {
41 DecayedParticles DS = apply<DecayedParticles>(event, "DS");
42 // loop over particles
43 for (unsigned int ix=0; ix<DS.decaying().size(); ++ix) {
44 int sign = 1;
45 if (DS.decaying()[ix].pid()>0 && DS.modeMatches(ix,3,mode)) {
46 sign=1;
47 }
48 else if (DS.decaying()[ix].pid()<0 && DS.modeMatches(ix,3,modeCC)) {
49 sign=-1;
50 }
51 else {
52 continue;
53 }
54 const Particle& eta = DS.decayProducts()[ix].at( 221)[0];
55 const Particle& omega = DS.decayProducts()[ix].at( 223)[0];
56 const Particle& pip = DS.decayProducts()[ix].at(sign*211)[0];
57 _h[0]->fill(( eta.mom()+pip.mom()).mass());
58 _h[1]->fill((omega.mom()+pip.mom()).mass());
59 _h[2]->fill((omega.mom()+eta.mom()).mass());
60 }
61 }
62
63
64 /// Normalise histograms etc., after the run
65 void finalize() {
66 normalize(_h, 1.0, false);
67 }
68
69 /// @}
70
71
72 /// @name Histograms
73 /// @{
74 Histo1DPtr _h[3];
75 const map<PdgId,unsigned int> mode = { { 211,1},{ 221,1}, { 223,1}};
76 const map<PdgId,unsigned int> modeCC = { {-211,1},{ 221,1}, { 223,1}};
77 /// @}
78
79
80 };
81
82
83 RIVET_DECLARE_PLUGIN(BESIII_2023_I2630813);
84
85}
|