Rivet analyses referenceBESIII_2012_I1128258Mass distributions in $\chi_{cJ}\to p\bar{n}\pi^-$ and $p\bar{n}\pi^-\pi^0$Experiment: BESIII (BEPC) Inspire ID: 1128258 Status: VALIDATED NOHEPDATA Authors:
Beam energies: ANY Run details:
Measurement of the mass distributions in the decays $\chi_{cJ}\to p\bar{n}\pi^-$ and $p\bar{n}\pi^-\pi^0$. The data were read from the plots in the paper and may not be corrected for backgrounds and efficiency. Source code: BESIII_2012_I1128258.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 -> p nbar pi- p nbar pi- pi0
10 class BESIII_2012_I1128258 : public Analysis {
11 public:
12
13 /// Constructor
14 RIVET_DEFAULT_ANALYSIS_CTOR(BESIII_2012_I1128258);
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::pid==10441 ||
24 Cuts::pid==445 ||
25 Cuts::pid==20444);
26 declare(ufs, "UFS");
27 DecayedParticles chi(ufs);
28 chi.addStable( PID::PI0);
29 declare(chi, "chi");
30 // histograms
31 for(unsigned int ix=0;ix<3;++ix)
32 book(_h[ix],1,1,1+ix);
33 book(_h[3],2,1,1);
34 }
35
36
37 /// Perform the per-event analysis
38 void analyze(const Event& event) {
39 static const map<PdgId,unsigned int> & mode1 = { { 2212,1}, {-2112,1}, {-211,1}};
40 static const map<PdgId,unsigned int> & mode1CC = { {-2212,1}, { 2112,1}, { 211,1}};
41 static const map<PdgId,unsigned int> & mode2 = { { 2212,1}, {-2112,1}, {-211,1}, {111,1}};
42 static const map<PdgId,unsigned int> & mode2CC = { {-2212,1}, { 2112,1}, { 211,1}, {111,1}};
43 DecayedParticles chi = apply<DecayedParticles>(event, "chi");
44 // loop over particles
45 for(unsigned int ix=0;ix<chi.decaying().size();++ix) {
46 int mode=-1,sign=0;
47 if (chi.decaying()[ix].pid()==10441) {
48 if(chi.modeMatches(ix,3,mode1)) {
49 mode=0;
50 sign=1;
51 }
52 else if(chi.modeMatches(ix,3,mode1CC)) {
53 mode= 0;
54 sign=-1;
55 }
56
57
58 }
59 if(mode==0) {
60 const Particle & pim = chi.decayProducts()[ix].at( -211*sign)[0];
61 const Particle & pp = chi.decayProducts()[ix].at( 2212*sign)[0];
62 const Particle & nbar = chi.decayProducts()[ix].at(-2112*sign)[0];
63 _h[0]->fill((pp .momentum()+pim .momentum()).mass());
64 _h[1]->fill((nbar.momentum()+pim .momentum()).mass());
65 _h[2]->fill((pp .momentum()+nbar.momentum()).mass());
66 continue;
67 }
68 else if(chi.modeMatches(ix,4,mode2)) {
69 mode=1;
70 sign=1;
71 }
72 else if(chi.modeMatches(ix,4,mode2CC)) {
73 mode= 1;
74 sign=-1;
75 }
76 else
77 continue;
78 const Particle & pim = chi.decayProducts()[ix].at( -211*sign)[0];
79 const Particle & pi0 = chi.decayProducts()[ix].at( 111 )[0];
80 _h[3]->fill((pim.momentum()+pi0.momentum()).mass());
81 }
82 }
83
84
85 /// Normalise histograms etc., after the run
86 void finalize() {
87 for(unsigned int ix=0;ix<4;++ix)
88 normalize(_h[ix]);
89 }
90
91 /// @}
92
93
94 /// @name Histograms
95 /// @{
96 Histo1DPtr _h[4];
97 /// @}
98
99
100 };
101
102
103 RIVET_DECLARE_PLUGIN(BESIII_2012_I1128258);
104
105}
|