Rivet analyses referenceBESIII_2019_I1691850Analysis of $J/\psi$ decays to $\Lambda^0\bar\Lambda^0$Experiment: BESIII (BEPC) Inspire ID: 1691850 Status: VALIDATED Authors:
Beam energies: (1.6, 1.6) GeV Run details:
Analysis of the angular distribution of the baryons, and decay products, produced in $e^+e^-\to J/\psi \to \Lambda^0\bar\Lambda^0$. Gives information about the decay and is useful for testing correlations in hadron decays. N.B. the moment data is not corrected and should only be used qualatively. Source code: BESIII_2019_I1691850.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/Beam.hh"
4#include "Rivet/Projections/FinalState.hh"
5#include "Rivet/Projections/UnstableParticles.hh"
6
7namespace Rivet {
8
9
10 /// @brief JPsi > Lambda, Lambdabar
11 class BESIII_2019_I1691850 : public Analysis {
12 public:
13
14 /// Constructor
15 RIVET_DEFAULT_ANALYSIS_CTOR(BESIII_2019_I1691850);
16
17 /// @name Analysis methods
18 /// @{
19
20 /// Book histograms and initialise projections before the run
21 void init() {
22
23 // Initialise and register projections
24 declare(Beam(), "Beams");
25 declare(UnstableParticles(), "UFS");
26 declare(FinalState(), "FS");
27
28 // Book histograms
29 book(_h_T1_p, "T1_p",20,-1.,1.);
30 book(_h_T2_p, "T2_p",20,-1.,1.);
31 book(_h_T3_p, "T3_p",20,-1.,1.);
32 book(_h_T4_p, "T4_p",20,-1.,1.);
33 book(_h_T5_p, "T5_p",20,-1.,1.);
34
35 book(_h_T1_n, "T1_n",20,-1.,1.);
36 book(_h_T2_n, "T2_n",20,-1.,1.);
37 book(_h_T3_n, "T3_n",20,-1.,1.);
38 book(_h_T4_n, "T4_n",20,-1.,1.);
39 book(_h_T5_n, "T5_n",20,-1.,1.);
40
41 book(_h_cThetaL,"cThetaL",20,-1.,1.);
42
43 book(_h_mu_p, 2,1,1);
44 book(_h_mu_n, 2,1,2);
45 book(_wsum_p,"TMP/wsum_p");
46 book(_wsum_n,"TMP/wsum_n");
47 }
48
49
50 void findChildren(const Particle & p,map<long,int> & nRes, int &ncount) {
51 for( const Particle &child : p.children()) {
52 if (child.children().empty()) {
53 nRes[child.pid()]-=1;
54 --ncount;
55 } else {
56 findChildren(child,nRes,ncount);
57 }
58 }
59 }
60
61
62 /// Perform the per-event analysis
63 void analyze(const Event& event) {
64 // get the axis, direction of incoming electron
65 const ParticlePair& beams = apply<Beam>(event, "Beams").beams();
66 Vector3 axis;
67 if(beams.first.pid()>0)
68 axis = beams.first .momentum().p3().unit();
69 else
70 axis = beams.second.momentum().p3().unit();
71 // types of final state particles
72 const FinalState& fs = apply<FinalState>(event, "FS");
73 map<long,int> nCount;
74 int ntotal(0);
75 for (const Particle& p : fs.particles()) {
76 nCount[p.pid()] += 1;
77 ++ntotal;
78 }
79 // loop over lambda0 baryons
80 const UnstableParticles & ufs = apply<UnstableParticles>(event, "UFS");
81 Particle Lambda,LamBar;
82 bool matched(false);
83 for (const Particle& p : ufs.particles(Cuts::abspid==3122)) {
84 if(p.children().empty()) continue;
85 map<long,int> nRes=nCount;
86 int ncount = ntotal;
87 findChildren(p,nRes,ncount);
88 matched=false;
89 // check for antiparticle
90 for (const Particle& p2 : ufs.particles(Cuts::pid==-p.pid())) {
91 if(p2.children().empty()) continue;
92 map<long,int> nRes2=nRes;
93 int ncount2 = ncount;
94 findChildren(p2,nRes2,ncount2);
95 if(ncount2==0) {
96 matched = true;
97 for(auto const & val : nRes2) {
98 if(val.second!=0) {
99 matched = false;
100 break;
101 }
102 }
103 // found baryon and antibaryon
104 if(matched) {
105 if(p.pid()>0) {
106 Lambda = p;
107 LamBar = p2;
108 }
109 else {
110 Lambda = p2;
111 LamBar = p;
112 }
113 break;
114 }
115 }
116 }
117 if(matched) break;
118 }
119 if(!matched) vetoEvent;
120 Particle proton;
121 matched = false;
122 for (const Particle & p : Lambda.children()) {
123 if(p.pid()==2212) {
124 matched=true;
125 proton=p;
126 }
127 else if(p.pid()==PID::PHOTON)
128 vetoEvent;
129 }
130 if(!matched) vetoEvent;
131 Particle baryon;
132 int mode(-1);
133 for (const Particle & p : LamBar.children()) {
134 if(p.pid()==-2212) {
135 baryon=p;
136 mode=0;
137 }
138 else if(p.pid()==-2112) {
139 baryon=p;
140 mode=1;
141 }
142 else if(p.pid()==PID::PHOTON)
143 vetoEvent;
144 }
145 if(mode<0) vetoEvent;
146 // boost to the Lambda rest frame
147 LorentzTransform boost1 = LorentzTransform::mkFrameTransformFromBeta(Lambda.momentum().betaVec());
148 Vector3 e1z = Lambda.momentum().p3().unit();
149 Vector3 e1y = e1z.cross(axis).unit();
150 Vector3 e1x = e1y.cross(e1z).unit();
151 Vector3 axis1 = boost1.transform(proton.momentum()).p3().unit();
152 double n1x(e1x.dot(axis1)),n1y(e1y.dot(axis1)),n1z(e1z.dot(axis1));
153 // boost to the Lambda bar
154 LorentzTransform boost2 = LorentzTransform::mkFrameTransformFromBeta(LamBar.momentum().betaVec());
155 Vector3 axis2 = boost2.transform(baryon.momentum()).p3().unit();
156 double n2x(e1x.dot(axis2)),n2y(e1y.dot(axis2)),n2z(e1z.dot(axis2));
157 double cosL = axis.dot(Lambda.momentum().p3().unit());
158 double sinL = sqrt(1.-sqr(cosL));
159 double T1 = sqr(sinL)*n1x*n2x+sqr(cosL)*n1z*n2z;
160 double T2 = -sinL*cosL*(n1x*n2z+n1z*n2x);
161 double T3 = -sinL*cosL*n1y;
162 double T4 = -sinL*cosL*n2y;
163 double T5 = n1z*n2z-sqr(sinL)*n1y*n2y;
164 double mu = n1y-n2y;
165 if(mode==0) {
166 _h_T1_p->fill(cosL,T1);
167 _h_T2_p->fill(cosL,T2);
168 _h_T3_p->fill(cosL,T3);
169 _h_T4_p->fill(cosL,T4);
170 _h_T5_p->fill(cosL,T5);
171 _h_mu_p->fill(cosL,mu);
172 _wsum_p->fill();
173 }
174 else {
175 _h_T1_n->fill(cosL,T1);
176 _h_T2_n->fill(cosL,T2);
177 _h_T3_n->fill(cosL,T3);
178 _h_T4_n->fill(cosL,T4);
179 _h_T5_n->fill(cosL,T5);
180 _h_mu_n->fill(cosL,mu);
181 _wsum_n->fill();
182 }
183 _h_cThetaL->fill(cosL);
184 }
185
186
187 pair<double,pair<double,double> > calcAlpha0(Histo1DPtr hist) {
188 if(hist->numEntries()==0.) return make_pair(0.,make_pair(0.,0.));
189 double d = 3./(pow(hist->xMax(),3)-pow(hist->xMin(),3));
190 double c = 3.*(hist->xMax()-hist->xMin())/(pow(hist->xMax(),3)-pow(hist->xMin(),3));
191 double sum1(0.),sum2(0.),sum3(0.),sum4(0.),sum5(0.);
192 for (auto& bin : hist->bins() ) {
193 double Oi = bin.sumW();
194 if(Oi==0.) continue;
195 double a = d*(bin.xMax() - bin.xMin());
196 double b = d/3.*(pow(bin.xMax(),3) - pow(bin.xMin(),3));
197 double Ei = bin.errW();
198 sum1 += a*Oi/sqr(Ei);
199 sum2 += b*Oi/sqr(Ei);
200 sum3 += sqr(a)/sqr(Ei);
201 sum4 += sqr(b)/sqr(Ei);
202 sum5 += a*b/sqr(Ei);
203 }
204 // calculate alpha
205 double alpha = (-c*sum1 + sqr(c)*sum2 + sum3 - c*sum5)/(sum1 - c*sum2 + c*sum4 - sum5);
206 // and error
207 double cc = -pow((sum3 + sqr(c)*sum4 - 2*c*sum5),3);
208 double bb = -2*sqr(sum3 + sqr(c)*sum4 - 2*c*sum5)*(sum1 - c*sum2 + c*sum4 - sum5);
209 double aa = sqr(sum1 - c*sum2 + c*sum4 - sum5)*(-sum3 - sqr(c)*sum4 + sqr(sum1 - c*sum2 + c*sum4 - sum5) + 2*c*sum5);
210 double dis = sqr(bb)-4.*aa*cc;
211 if(dis>0.) {
212 dis = sqrt(dis);
213 return make_pair(alpha,make_pair(0.5*(-bb+dis)/aa,-0.5*(-bb-dis)/aa));
214 }
215 else {
216 return make_pair(alpha,make_pair(0.,0.));
217 }
218 }
219
220
221 pair<double,double> calcCoeff(unsigned int imode,Histo1DPtr hist) {
222 if(hist->numEntries()==0.) return make_pair(0.,0.);
223 double sum1(0.),sum2(0.);
224 for (const auto& bin : hist->bins() ) {
225 double Oi = bin.sumW();
226 if(Oi==0.) continue;
227 double ai(0.),bi(0.);
228 if(imode==0) {
229 bi = (pow(1.-sqr(bin.xMin()),1.5) - pow(1.-sqr(bin.xMax()),1.5))/3.;
230 }
231 else if(imode>=2 && imode<=4) {
232 bi = ( pow(bin.xMin(),3)*( -5. + 3.*sqr(bin.xMin())) +
233 pow(bin.xMax(),3)*( 5. - 3.*sqr(bin.xMax())))/15.;
234 }
235 else
236 assert(false);
237 double Ei = bin.errW();
238 sum1 += sqr(bi/Ei);
239 sum2 += bi/sqr(Ei)*(Oi-ai);
240 }
241 return make_pair(sum2/sum1,sqrt(1./sum1));
242 }
243
244
245 /// Normalise histograms etc., after the run
246 void finalize() {
247 normalize(_h_cThetaL);
248 scale(_h_T1_p,1./ *_wsum_p);
249 scale(_h_T2_p,1./ *_wsum_p);
250 scale(_h_T3_p,1./ *_wsum_p);
251 scale(_h_T4_p,1./ *_wsum_p);
252 scale(_h_T5_p,1./ *_wsum_p);
253 scale(_h_mu_p,0.04/ *_wsum_p);
254
255 scale(_h_T1_n,1./ *_wsum_n);
256 scale(_h_T2_n,1./ *_wsum_n);
257 scale(_h_T3_n,1./ *_wsum_n);
258 scale(_h_T4_n,1./ *_wsum_n);
259 scale(_h_T5_n,1./ *_wsum_n);
260 scale(_h_mu_n,0.04/ *_wsum_n);
261
262 // calculate alpha0
263 pair<double,pair<double,double> > alpha0 = calcAlpha0(_h_cThetaL);
264 Estimate1DPtr _h_alpha0;
265 book(_h_alpha0,1,1,1);
266 _h_alpha0->bin(1).set(alpha0.first, alpha0.second);
267 double s2 = -1. + sqr(alpha0.first);
268 double s3 = 3 + alpha0.first;
269 double s1 = sqr(s3);
270 // alpha- and alpha+ from proton data
271 pair<double,double> c_T2_p = calcCoeff(2,_h_T2_p);
272 pair<double,double> c_T3_p = calcCoeff(3,_h_T3_p);
273 pair<double,double> c_T4_p = calcCoeff(4,_h_T4_p);
274 double s4 = sqr(c_T2_p.first);
275 double s5 = sqr(c_T3_p.first);
276 double s6 = sqr(c_T4_p.first);
277 double disc = s1*s5*s6*(-9.*s2*s4 + 4.*s1*s5*s6);
278 if(disc>=0.) {
279 disc = sqrt(disc);
280 double aM = sqrt(-1./s2/s6*(2.*s1*s5*s6+disc));
281 double aP = c_T4_p.first/c_T3_p.first*aM;
282 double aM_M = (2*(alpha0.first*c_T4_p.first*alpha0.second.first + c_T4_p.second*s2)*(disc + 2*s1*s5*s6)
283 - c_T4_p.first*s2*(4*s3*c_T3_p.first*c_T4_p.first*(c_T3_p.first*c_T4_p.first*alpha0.second.first +s3*c_T4_p.first*c_T3_p.second +s3*c_T3_p.first*c_T4_p.second) +
284 (disc*(- 9*s2*s3*c_T2_p.first*c_T3_p.first*c_T4_p.first* c_T2_p.second
285 + 9*((1 - alpha0.first*(3 + 2*alpha0.first))* c_T3_p.first*c_T4_p.first*alpha0.second.first - s2*s3*c_T4_p.first*c_T3_p.second
286 - s2*s3*c_T3_p.first*c_T4_p.second)* s4
287 + 8*(c_T3_p.first*c_T4_p.first*alpha0.second.first + s3*c_T4_p.first*c_T3_p.second + s3*c_T3_p.first*c_T4_p.second)* s1*s5*s6))
288 /(4*pow(3 + alpha0.first,3)*pow(c_T3_p.first,3)*pow(c_T4_p.first,3) -9*s2*s3*c_T3_p.first*c_T4_p.first*s4)))/
289 (2.*pow(c_T4_p.first,3)*pow(s2,2)*sqrt(-((disc + 2*s1*s5*s6)/(s2*s6))));
290 double aM_P = (2*(alpha0.first*c_T4_p.first*alpha0.second.second + c_T4_p.second*s2)*(disc + 2*s1*s5*s6)
291 - c_T4_p.first*s2*(4*s3*c_T3_p.first*c_T4_p.first*(c_T3_p.first*c_T4_p.first*alpha0.second.second +s3*c_T4_p.first*c_T3_p.second +s3*c_T3_p.first*c_T4_p.second) +
292 (disc*(- 9*s2*s3*c_T2_p.first*c_T3_p.first*c_T4_p.first* c_T2_p.second
293 + 9*((1 - alpha0.first*(3 + 2*alpha0.first))* c_T3_p.first*c_T4_p.first*alpha0.second.second - s2*s3*c_T4_p.first*c_T3_p.second
294 - s2*s3*c_T3_p.first*c_T4_p.second)* s4
295 + 8*(c_T3_p.first*c_T4_p.first*alpha0.second.second + s3*c_T4_p.first*c_T3_p.second + s3*c_T3_p.first*c_T4_p.second)* s1*s5*s6))
296 /(4*pow(3 + alpha0.first,3)*pow(c_T3_p.first,3)*pow(c_T4_p.first,3) -9*s2*s3*c_T3_p.first*c_T4_p.first*s4)))/
297 (2.*pow(c_T4_p.first,3)*pow(s2,2)*sqrt(-((disc + 2*s1*s5*s6)/(s2*s6))));
298 double aP_M = (c_T4_p.first*sqrt(-((disc + 2*s1*s5*s6)/ (s2*s6)))*
299 (-2*c_T3_p.second - (2*alpha0.first*c_T3_p.first*alpha0.second.first)/s2 + (c_T3_p.first*(4*s3*c_T3_p.first*c_T4_p.first*(c_T3_p.first*c_T4_p.first*alpha0.second.first + s3*c_T4_p.first*c_T3_p.second + s3*c_T3_p.first*c_T4_p.second)
300 + (disc*(-9*s2*s3*c_T2_p.first*c_T3_p.first*c_T4_p.first* c_T2_p.second
301 + 9*((1 - alpha0.first*(3 + 2*alpha0.first))* c_T3_p.first*c_T4_p.first*alpha0.second.first - s2*s3*c_T4_p.first*c_T3_p.second
302 - s2*s3*c_T3_p.first*c_T4_p.second)* s4 +
303 8*(c_T3_p.first*c_T4_p.first*alpha0.second.first + s3*c_T4_p.first*c_T3_p.second + s3*c_T3_p.first*c_T4_p.second)* s1*s5*s6))/
304 (4* pow(3 + alpha0.first,3)* pow(c_T3_p.first,3)* pow(c_T4_p.first,3) - 9*s2*s3*c_T3_p.first*c_T4_p.first*s4)))/
305 (disc + 2*s1*s5*s6)))/(2.*pow(c_T3_p.first,2));
306 double aP_P = (c_T4_p.first*sqrt(-((disc + 2*s1*s5*s6)/ (s2*s6)))*
307 (-2*c_T3_p.second - (2*alpha0.first*c_T3_p.first*alpha0.second.second)/s2 + (c_T3_p.first*(4*s3*c_T3_p.first*c_T4_p.first*(c_T3_p.first*c_T4_p.first*alpha0.second.second + s3*c_T4_p.first*c_T3_p.second + s3*c_T3_p.first*c_T4_p.second)
308 + (disc*(-9*s2*s3*c_T2_p.first*c_T3_p.first*c_T4_p.first* c_T2_p.second
309 + 9*((1 - alpha0.first*(3 + 2*alpha0.first))* c_T3_p.first*c_T4_p.first*alpha0.second.second - s2*s3*c_T4_p.first*c_T3_p.second
310 - s2*s3*c_T3_p.first*c_T4_p.second)* s4 +
311 8*(c_T3_p.first*c_T4_p.first*alpha0.second.second + s3*c_T4_p.first*c_T3_p.second + s3*c_T3_p.first*c_T4_p.second)* s1*s5*s6))/
312 (4* pow(3 + alpha0.first,3)* pow(c_T3_p.first,3)* pow(c_T4_p.first,3) - 9*s2*s3*c_T3_p.first*c_T4_p.first*s4)))/
313 (disc + 2*s1*s5*s6)))/(2.*pow(c_T3_p.first,2));
314 Estimate1DPtr _h_alphaM;
315 book(_h_alphaM,1,3,1);
316 _h_alphaM->bin(1).set(aM, make_pair(-aM_M , -aM_P ));
317
318 Estimate1DPtr _h_alphaP;
319 book(_h_alphaP,1,4,1);
320 _h_alphaP->bin(1).set(aP, make_pair(-aP_M , -aP_P ));
321 // now for Delta
322 double sDelta = (-2.*(3. + alpha0.first)*c_T3_p.first)/(aM*sqrt(1 - sqr(alpha0.first)));
323 double cDelta = (-3*(3 + alpha0.first)*c_T2_p.first)/(aM*aP*sqrt(1 - sqr(alpha0.first)));
324
325 double Delta = asin(sDelta);
326 if(cDelta<0.) Delta = M_PI-Delta;
327 double ds_P = (-9*c_T2_p.first*((-1 + alpha0.first)*(1 + alpha0.first)* (3 + alpha0.first)*c_T3_p.first*c_T4_p.first*c_T2_p.second + c_T2_p.first*c_T4_p.first*(c_T3_p.first*(alpha0.second.first + 3*alpha0.first*alpha0.second.first) -(-1 + alpha0.first)*(1 + alpha0.first)*(3 + alpha0.first)*c_T3_p.second)
328 - (-1 + alpha0.first)*(1 + alpha0.first)* (3 + alpha0.first)*c_T2_p.first*c_T3_p.first*c_T4_p.second)*disc)/
329 (pow(1 - pow(alpha0.first,2),1.5)*pow(c_T4_p.first,3)*pow(-((disc + 2*s1*s5*s6)/ (s2*s6)),1.5)*(-9*s2*s4 + 4*s1*s5*s6));
330 double ds_M = (-9*c_T2_p.first*((-1 + alpha0.first)*(1 + alpha0.first)* (3 + alpha0.first)*c_T3_p.first*c_T4_p.first*c_T2_p.second + c_T2_p.first*c_T4_p.first*(c_T3_p.first*(alpha0.second.second + 3*alpha0.first*alpha0.second.second) -(-1 + alpha0.first)*(1 + alpha0.first)*(3 + alpha0.first)*c_T3_p.second)
331 - (-1 + alpha0.first)*(1 + alpha0.first)* (3 + alpha0.first)*c_T2_p.first*c_T3_p.first*c_T4_p.second)*disc)/
332 (pow(1 - pow(alpha0.first,2),1.5)*pow(c_T4_p.first,3)*pow(-((disc + 2*s1*s5*s6)/ (s2*s6)),1.5)*(-9*s2*s4 + 4*s1*s5*s6));
333 ds_P /= sqrt(1.-sqr(sDelta));
334 ds_M /= sqrt(1.-sqr(sDelta));
335 Estimate1DPtr _h_sin;
336 book(_h_sin,1,2,1);
337 _h_sin->bin(1).set(Delta/M_PI*180., make_pair( -ds_P/M_PI*180., -ds_M/M_PI*180. ));
338 }
339 // alpha 0
340 pair<double,double> c_T2_n = calcCoeff(2,_h_T2_n);
341 pair<double,double> c_T3_n = calcCoeff(3,_h_T3_n);
342 pair<double,double> c_T4_n = calcCoeff(4,_h_T4_n);
343 s4 = sqr(c_T2_n.first);
344 s5 = sqr(c_T3_n.first);
345 s6 = sqr(c_T4_n.first);
346 disc = s1*s5*s6*(-9.*s2*s4 + 4.*s1*s5*s6);
347 if(disc>=0.) {
348 disc = sqrt(disc);
349 double aM = sqrt(-1./s2/s6*(2.*s1*s5*s6+disc));
350 double a0 = c_T4_n.first/c_T3_n.first*aM;
351 double a0_M = (c_T4_n.first*sqrt(-((disc + 2*s1*s5*s6)/ (s2*s6)))*
352 (-2*c_T3_n.second - (2*alpha0.first*c_T3_n.first*alpha0.second.first)/s2 + (c_T3_n.first*(4*s3*c_T3_n.first*c_T4_n.first*(c_T3_n.first*c_T4_n.first*alpha0.second.first + s3*c_T4_n.first*c_T3_n.second + s3*c_T3_n.first*c_T4_n.second)
353 + (disc*(-9*s2*s3*c_T2_n.first*c_T3_n.first*c_T4_n.first* c_T2_n.second
354 + 9*((1 - alpha0.first*(3 + 2*alpha0.first))* c_T3_n.first*c_T4_n.first*alpha0.second.first - s2*s3*c_T4_n.first*c_T3_n.second
355 - s2*s3*c_T3_n.first*c_T4_n.second)* s4 +
356 8*(c_T3_n.first*c_T4_n.first*alpha0.second.first + s3*c_T4_n.first*c_T3_n.second + s3*c_T3_n.first*c_T4_n.second)* s1*s5*s6))/
357 (4* pow(3 + alpha0.first,3)* pow(c_T3_n.first,3)* pow(c_T4_n.first,3) - 9*s2*s3*c_T3_n.first*c_T4_n.first*s4)))/
358 (disc + 2*s1*s5*s6)))/(2.*pow(c_T3_n.first,2));
359 double a0_P = (c_T4_n.first*sqrt(-((disc + 2*s1*s5*s6)/ (s2*s6)))*
360 (-2*c_T3_n.second - (2*alpha0.first*c_T3_n.first*alpha0.second.second)/s2 + (c_T3_n.first*(4*s3*c_T3_n.first*c_T4_n.first*(c_T3_n.first*c_T4_n.first*alpha0.second.second + s3*c_T4_n.first*c_T3_n.second + s3*c_T3_n.first*c_T4_n.second)
361 + (disc*(-9*s2*s3*c_T2_n.first*c_T3_n.first*c_T4_n.first* c_T2_n.second
362 + 9*((1 - alpha0.first*(3 + 2*alpha0.first))* c_T3_n.first*c_T4_n.first*alpha0.second.second - s2*s3*c_T4_n.first*c_T3_n.second
363 - s2*s3*c_T3_n.first*c_T4_n.second)* s4 +
364 8*(c_T3_n.first*c_T4_n.first*alpha0.second.second + s3*c_T4_n.first*c_T3_n.second + s3*c_T3_n.first*c_T4_n.second)* s1*s5*s6))/
365 (4* pow(3 + alpha0.first,3)* pow(c_T3_n.first,3)* pow(c_T4_n.first,3) - 9*s2*s3*c_T3_n.first*c_T4_n.first*s4)))/
366 (disc + 2*s1*s5*s6)))/(2.*pow(c_T3_n.first,2));
367 Estimate1DPtr _h_alpha0;
368 book(_h_alpha0,1,5,1);
369 _h_alpha0->bin(1).set(a0, make_pair(-a0_M , -a0_P)); // @todo Should there really be a minus sign for both of them?
370 }
371 }
372
373 /// @}
374
375 /// @name Histograms
376 /// @{
377 Histo1DPtr _h_T1_p,_h_T2_p,_h_T3_p,_h_T4_p,_h_T5_p;
378 Histo1DPtr _h_T1_n,_h_T2_n,_h_T3_n,_h_T4_n,_h_T5_n;
379 Histo1DPtr _h_cThetaL;
380 Histo1DPtr _h_mu_p,_h_mu_n;
381 CounterPtr _wsum_p,_wsum_n;
382 /// @}
383
384 };
385
386
387 RIVET_DECLARE_PLUGIN(BESIII_2019_I1691850);
388
389}
|