Rivet analyses referenceBESII_2009_I835937Cross sections for $e^+e^-\to K^0_SK^-K^-K^+\pi^+$, $K^0_SK^-\pi^+\eta$, $K^0_S K^- \rho^+$, $K^0_SK^-\pi^+\rho^0$ at 3.65 and 3.773 GeVExperiment: BESII (BEPC) Inspire ID: 835937 Status: VALIDATED NOHEPDATA Authors:
Beam energies: (1.8, 1.8); (1.9, 1.9) GeV Run details:
Measurement of the cross sections for $e^+e^-\to K^0_SK^-K^-K^+\pi^+$, $K^0_SK^-\pi^+\eta$, $K^0_S K^- \rho^+$, $K^0_SK^-\pi^+\rho^0$ at 3.65 and 3.773 GeV. Source code: BESII_2009_I835937.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/FinalState.hh"
4#include "Rivet/Projections/UnstableParticles.hh"
5
6namespace Rivet {
7
8
9 /// @brief e+e- > light hadrons including KS0
10 class BESII_2009_I835937 : public Analysis {
11 public:
12
13 /// Constructor
14 RIVET_DEFAULT_ANALYSIS_CTOR(BESII_2009_I835937);
15
16
17 /// @name Analysis methods
18 /// @{
19
20 /// Book histograms and initialise projections before the run
21 void init() {
22 // Initialise and register projections
23 declare(FinalState(), "FS");
24 declare(UnstableParticles(), "UFS");
25 if (isCompatibleWithSqrtS(3.773)) {
26 book(_sigma[1],1,1,2);
27 _ecms="3.773";
28 }
29 else if (isCompatibleWithSqrtS(3.65)) {
30 _ecms = "3.65";
31 }
32 // histograms
33 for (unsigned int ix=0; ix<7; ++ix) {
34 if(ix>0 && ix<5) continue;
35 book(_sigma[ix], 1, 1, 1+ix);
36 }
37 }
38
39 void findChildren(const Particle & p,map<long,int> & nRes, int &ncount) {
40 for (const Particle &child : p.children()) {
41 if (child.children().empty()) {
42 nRes[child.pid()]-=1;
43 --ncount;
44 }
45 else {
46 findChildren(child,nRes,ncount);
47 }
48 }
49 }
50
51 /// Perform the per-event analysis
52 void analyze(const Event& event) {
53 const FinalState& fs = apply<FinalState>(event, "FS");
54
55 map<long,int> nCount;
56 int ntotal(0);
57 for (const Particle& p : fs.particles()) {
58 nCount[p.pid()] += 1;
59 ++ntotal;
60 }
61 const FinalState& ufs = apply<FinalState>(event, "UFS");
62 // first the purely FS particles
63 if (ntotal==5 && nCount[310]==1 &&
64 ((nCount[-321]==2 && nCount[ 321]==1 && nCount[ 211]==1) ||
65 (nCount[ 321]==2 && nCount[-321]==1 && nCount[-211]==1))) {
66 _sigma[0]->fill(_ecms);
67 }
68
69 // loop over unstable particles
70 for (const Particle& p : ufs.particles(Cuts::pid==221 || Cuts::pid==113 || Cuts::abspid==213)) {
71 if (p.children().empty()) continue;
72 map<long,int> nRes = nCount;
73 int ncount = ntotal;
74 findChildren(p,nRes,ncount);
75 // eta /rho0
76 bool matched = false;
77 if (p.pid()==221 || p.pid()==113) {
78 if (ncount==3) {
79 matched = true;
80 for (const auto& val : nRes) {
81 if (abs(val.first)==310) {
82 if (val.second!=1) {
83 matched = false;
84 break;
85 }
86 }
87 else if(abs(val.first)==211) {
88 if (val.second!=1) {
89 matched = false;
90 break;
91 }
92 }
93 else if (abs(val.first)==321) {
94 if (val.second!=1) {
95 matched = false;
96 break;
97 }
98 }
99 else if (val.second!=0) {
100 matched = false;
101 break;
102 }
103 }
104 if (matched) {
105 if (p.pid()==113) _sigma[6]->fill(_ecms);
106 else if (p.pid()==221 &&_sigma[1]) _sigma[1]->fill(_ecms);
107 }
108 }
109 }
110 // rho+/-
111 else if(p.abspid()==213) {
112 if (ncount==2) {
113 int sign = p.pid()>0 ? -1 : 1;
114 matched=true;
115 for (const auto& val : nRes) {
116 if (abs(val.first)==310) {
117 if (val.second!=1) {
118 matched = false;
119 break;
120 }
121 }
122 else if (val.first==321*sign) {
123 if (val.second!=1) {
124 matched = false;
125 break;
126 }
127 }
128 else if(val.second!=0) {
129 matched = false;
130 break;
131 }
132 }
133 if (matched) _sigma[5]->fill(_ecms);
134 }
135 }
136 if (matched) break;
137 }
138 }
139
140
141 /// Normalise histograms etc., after the run
142 void finalize() {
143 const double fact = crossSection()/ sumOfWeights() /picobarn;
144 for (unsigned int ix=0; ix<7; ++ix) {
145 if (_sigma[ix]) scale(_sigma[ix],fact);
146 }
147 }
148
149 /// @}
150
151
152 /// @name Histograms
153 /// @{
154 BinnedHistoPtr<string> _sigma[7];
155 string _ecms;
156 /// @}
157
158
159 };
160
161
162 RIVET_DECLARE_PLUGIN(BESII_2009_I835937);
163
164}
|