Rivet analyses referenceDELPHI_1996_I424112Delphi MC tuning on event shapes and identified particles.Experiment: DELPHI (LEP 1) Inspire ID: 424112 Status: VALIDATED Authors:
Beam energies: (45.6, 45.6) GeV Run details:
Event shape and charged particle inclusive distributions measured using 750000 decays of Z bosons to hadrons from the DELPHI detector at LEP. This data, combined with identified particle distributions from all LEP experiments, was used for tuning of shower-hadronisation event generators by the original PROFESSOR method. This is a critical analysis for MC event generator tuning of final state radiation and both flavour and kinematic aspects of hadronisation models. Source code: DELPHI_1996_I424112.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/Beam.hh"
4#include "Rivet/Projections/Sphericity.hh"
5#include "Rivet/Projections/Thrust.hh"
6#include "Rivet/Projections/FastJets.hh"
7#include "Rivet/Projections/ParisiTensor.hh"
8#include "Rivet/Projections/Hemispheres.hh"
9#include "Rivet/Projections/FinalState.hh"
10#include "Rivet/Projections/ChargedFinalState.hh"
11#include "Rivet/Projections/UnstableParticles.hh"
12
13namespace Rivet {
14
15
16 /// @brief DELPHI event shapes and identified particle spectra
17 /// @author Andy Buckley
18 /// @author Hendrik Hoeth
19 ///
20 /// This is the paper which was used for the original PROFESSOR MC tuning
21 /// study. It studies a wide range of e+ e- event shape variables, differential
22 /// jet rates in the Durham and JADE schemes, and incorporates identified
23 /// particle spectra, from other LEP analyses.
24 ///
25 /// @par Run conditions
26 ///
27 /// @arg LEP1 beam energy: \f$ \sqrt{s} = \f$ 91.2 GeV
28 /// @arg Run with generic QCD events.
29 /// @arg No \f$ p_\perp^\text{min} \f$ cutoff is required
30 class DELPHI_1996_I424112 : public Analysis {
31 public:
32
33 RIVET_DEFAULT_ANALYSIS_CTOR(DELPHI_1996_I424112);
34
35
36 /// @name Analysis methods
37 /// @{
38
39 void init() {
40 declare(Beam(), "Beams");
41 // Don't try to introduce a pT or eta cut here. It's all corrected
42 // back. (See Section 2 of the paper.)
43 const ChargedFinalState cfs;
44 declare(cfs, "FS");
45 declare(UnstableParticles(), "UFS");
46 declare(FastJets(cfs, JetAlg::JADE, 0.7), "JadeJets");
47 declare(FastJets(cfs, JetAlg::DURHAM, 0.7), "DurhamJets");
48 declare(Sphericity(cfs), "Sphericity");
49 declare(ParisiTensor(cfs), "Parisi");
50 const Thrust thrust(cfs);
51 declare(thrust, "Thrust");
52 declare(Hemispheres(thrust), "Hemispheres");
53
54 book(_histPtTIn, 1, 1, 1);
55 book(_histPtTOut,2, 1, 1);
56 book(_histPtSIn, 3, 1, 1);
57 book(_histPtSOut,4, 1, 1);
58
59 book(_histRapidityT, 5, 1, 1);
60 book(_histRapidityS, 6, 1, 1);
61 book(_histScaledMom, 7, 1, 1);
62 book(_histLogScaledMom, 8, 1, 1);
63
64 book(_histPtTOutVsXp ,9, 1, 1);
65 book(_histPtVsXp ,10, 1, 1);
66
67 book(_hist1MinusT, 11, 1, 1);
68 book(_histTMajor, 12, 1, 1);
69 book(_histTMinor, 13, 1, 1);
70 book(_histOblateness, 14, 1, 1);
71
72 book(_histSphericity, 15, 1, 1);
73 book(_histAplanarity, 16, 1, 1);
74 book(_histPlanarity, 17, 1, 1);
75
76 book(_histCParam, 18, 1, 1);
77 book(_histDParam, 19, 1, 1);
78
79 book(_histHemiMassH, 20, 1, 1);
80 book(_histHemiMassL, 21, 1, 1);
81 book(_histHemiMassD, 22, 1, 1);
82
83 book(_histHemiBroadW, 23, 1, 1);
84 book(_histHemiBroadN, 24, 1, 1);
85 book(_histHemiBroadT, 25, 1, 1);
86 book(_histHemiBroadD, 26, 1, 1);
87
88 // Binned in y_cut
89 book(_histDiffRate2Durham, 27, 1, 1);
90 book(_histDiffRate2Jade, 28, 1, 1);
91 book(_histDiffRate3Durham, 29, 1, 1);
92 book(_histDiffRate3Jade, 30, 1, 1);
93 book(_histDiffRate4Durham, 31, 1, 1);
94 book(_histDiffRate4Jade, 32, 1, 1);
95
96 // Binned in cos(chi)
97 book(_histEEC, 33, 1, 1);
98 book(_histAEEC, 34, 1, 1);
99
100 book(_histMultiCharged, 35, 1, 1);
101
102 book(_histMultiPiPlus, 36, 1, 1);
103 book(_histMultiPi0, 36, 1, 2);
104 book(_histMultiKPlus, 36, 1, 3);
105 book(_histMultiK0, 36, 1, 4);
106 book(_histMultiEta, 36, 1, 5);
107 book(_histMultiEtaPrime, 36, 1, 6);
108 book(_histMultiDPlus, 36, 1, 7);
109 book(_histMultiD0, 36, 1, 8);
110 book(_histMultiBPlus0, 36, 1, 9);
111
112 book(_histMultiF0, 37, 1, 1);
113
114 book(_histMultiRho, 38, 1, 1);
115 book(_histMultiKStar892Plus, 38, 1, 2);
116 book(_histMultiKStar892_0, 38, 1, 3);
117 book(_histMultiPhi, 38, 1, 4);
118 book(_histMultiDStar2010Plus, 38, 1, 5);
119
120 book(_histMultiF2, 39, 1, 1);
121 book(_histMultiK2Star1430_0, 39, 1, 2);
122
123 book(_histMultiP, 40, 1, 1);
124 book(_histMultiLambda0, 40, 1, 2);
125 book(_histMultiXiMinus, 40, 1, 3);
126 book(_histMultiOmegaMinus, 40, 1, 4);
127 book(_histMultiDeltaPlusPlus, 40, 1, 5);
128 book(_histMultiSigma1385Plus, 40, 1, 6);
129 book(_histMultiXi1530_0, 40, 1, 7);
130 book(_histMultiLambdaB0, 40, 1, 8);
131
132 book(_weightedTotalPartNum,"_TotalPartNum");
133 book(_passedCutWeightSum, "_passedCutWeightSum");
134 book(_passedCut3WeightSum, "_passedCut3WeightSum");
135 book(_passedCut4WeightSum, "_passedCut4WeightSum");
136 book(_passedCut5WeightSum, "_passedCut5WeightSum");
137
138 }
139
140
141 void analyze(const Event& e) {
142 // First, veto on leptonic events by requiring at least 4 charged FS particles
143 const FinalState& fs = apply<FinalState>(e, "FS");
144 const size_t numParticles = fs.particles().size();
145 // Even if we only generate hadronic events, we still need a cut on numCharged >= 2.
146 if (numParticles < 2) {
147 MSG_DEBUG("Failed leptonic event cut");
148 vetoEvent;
149 }
150 MSG_DEBUG("Passed leptonic event cut");
151
152 _passedCutWeightSum->fill();
153 _weightedTotalPartNum->fill(numParticles);
154
155 // Get beams and average beam momentum
156 const ParticlePair& beams = apply<Beam>(e, "Beams").beams();
157 const double meanBeamMom = ( beams.first.p3().mod() +
158 beams.second.p3().mod() ) / 2.0;
159 MSG_DEBUG("Avg beam momentum = " << meanBeamMom);
160
161 // Thrusts
162 MSG_DEBUG("Calculating thrust");
163 const Thrust& thrust = apply<Thrust>(e, "Thrust");
164 _hist1MinusT->fill(1 - thrust.thrust());
165 _histTMajor->fill(thrust.thrustMajor());
166 _histTMinor->fill(thrust.thrustMinor());
167 _histOblateness->fill(thrust.oblateness());
168
169 // Jets
170 const FastJets& durjet = apply<FastJets>(e, "DurhamJets");
171 const FastJets& jadejet = apply<FastJets>(e, "JadeJets");
172 if (numParticles >= 3) {
173 _passedCut3WeightSum->fill();
174 if (durjet.clusterSeq()) _histDiffRate2Durham->fill(durjet.clusterSeq()->exclusive_ymerge_max(2));
175 if (jadejet.clusterSeq()) _histDiffRate2Jade->fill(jadejet.clusterSeq()->exclusive_ymerge_max(2));
176 }
177 if (numParticles >= 4) {
178 _passedCut4WeightSum->fill();
179 if (durjet.clusterSeq()) _histDiffRate3Durham->fill(durjet.clusterSeq()->exclusive_ymerge_max(3));
180 if (jadejet.clusterSeq()) _histDiffRate3Jade->fill(jadejet.clusterSeq()->exclusive_ymerge_max(3));
181 }
182 if (numParticles >= 5) {
183 _passedCut5WeightSum->fill();
184 if (durjet.clusterSeq()) _histDiffRate4Durham->fill(durjet.clusterSeq()->exclusive_ymerge_max(4));
185 if (jadejet.clusterSeq()) _histDiffRate4Jade->fill(jadejet.clusterSeq()->exclusive_ymerge_max(4));
186 }
187
188 // Sphericities
189 MSG_DEBUG("Calculating sphericity");
190 const Sphericity& sphericity = apply<Sphericity>(e, "Sphericity");
191 _histSphericity->fill(sphericity.sphericity());
192 _histAplanarity->fill(sphericity.aplanarity());
193 _histPlanarity->fill(sphericity.planarity());
194
195 // C & D params
196 MSG_DEBUG("Calculating Parisi params");
197 const ParisiTensor& parisi = apply<ParisiTensor>(e, "Parisi");
198 _histCParam->fill(parisi.C());
199 _histDParam->fill(parisi.D());
200
201 // Hemispheres
202 MSG_DEBUG("Calculating hemisphere variables");
203 const Hemispheres& hemi = apply<Hemispheres>(e, "Hemispheres");
204 _histHemiMassH->fill(hemi.scaledM2high());
205 _histHemiMassL->fill(hemi.scaledM2low());
206 _histHemiMassD->fill(hemi.scaledM2diff());
207 _histHemiBroadW->fill(hemi.Bmax());
208 _histHemiBroadN->fill(hemi.Bmin());
209 _histHemiBroadT->fill(hemi.Bsum());
210 _histHemiBroadD->fill(hemi.Bdiff());
211
212 // Iterate over all the charged final state particles.
213 double Evis = 0.0;
214 double Evis2 = 0.0;
215 MSG_DEBUG("About to iterate over charged FS particles");
216 for (const Particle& p : fs.particles()) {
217 // Get momentum and energy of each particle.
218 const Vector3 mom3 = p.p3();
219 const double energy = p.E();
220 Evis += energy;
221
222 // Scaled momenta.
223 const double mom = mom3.mod();
224 const double scaledMom = mom/meanBeamMom;
225 const double logInvScaledMom = -std::log(scaledMom);
226 _histLogScaledMom->fill(logInvScaledMom);
227 _histScaledMom->fill(scaledMom);
228
229 // Get momenta components w.r.t. thrust and sphericity.
230 const double momT = dot(thrust.thrustAxis(), mom3);
231 const double momS = dot(sphericity.sphericityAxis(), mom3);
232 const double pTinT = dot(mom3, thrust.thrustMajorAxis());
233 const double pToutT = dot(mom3, thrust.thrustMinorAxis());
234 const double pTinS = dot(mom3, sphericity.sphericityMajorAxis());
235 const double pToutS = dot(mom3, sphericity.sphericityMinorAxis());
236 const double pT = sqrt(pow(pTinT, 2) + pow(pToutT, 2));
237 _histPtTIn->fill(fabs(pTinT/GeV));
238 _histPtTOut->fill(fabs(pToutT/GeV));
239 _histPtSIn->fill(fabs(pTinS/GeV));
240 _histPtSOut->fill(fabs(pToutS/GeV));
241 _histPtVsXp->fill(scaledMom, fabs(pT/GeV));
242 _histPtTOutVsXp->fill(scaledMom, fabs(pToutT/GeV));
243
244 // Calculate rapidities w.r.t. thrust and sphericity.
245 const double rapidityT = 0.5 * std::log((energy + momT) / (energy - momT));
246 const double rapidityS = 0.5 * std::log((energy + momS) / (energy - momS));
247 _histRapidityT->fill(fabs(rapidityT));
248 _histRapidityS->fill(fabs(rapidityS));
249 MSG_TRACE(fabs(rapidityT) << " " << scaledMom/GeV);
250 }
251 Evis2 = Evis*Evis;
252
253 // (A)EEC
254 // Need iterators since second loop starts at current outer loop iterator, i.e. no "for" here!
255 for (Particles::const_iterator p_i = fs.particles().begin(); p_i != fs.particles().end(); ++p_i) {
256 for (Particles::const_iterator p_j = p_i; p_j != fs.particles().end(); ++p_j) {
257 if (p_i == p_j) continue;
258 const Vector3 mom3_i = p_i->momentum().p3();
259 const Vector3 mom3_j = p_j->momentum().p3();
260 const double energy_i = p_i->momentum().E();
261 const double energy_j = p_j->momentum().E();
262 const double cosij = dot(mom3_i.unit(), mom3_j.unit());
263 const double eec = (energy_i*energy_j) / Evis2;
264 _histEEC->fill(cosij, eec);
265 if (cosij < 0)
266 _histAEEC->fill( cosij, eec);
267 else
268 _histAEEC->fill(-cosij, -eec);
269 }
270 }
271
272 _histMultiCharged->fill(Ecm, numParticles);
273
274
275 // Final state of unstable particles to get particle spectra
276 const UnstableParticles& ufs = apply<UnstableParticles>(e, "UFS");
277 for (const Particle& p : ufs.particles()) {
278 int id = p.abspid();
279 switch (id) {
280 case 211:
281 _histMultiPiPlus->fill(Ecm);
282 break;
283 case 111:
284 _histMultiPi0->fill(Ecm);
285 break;
286 case 321:
287 _histMultiKPlus->fill(Ecm);
288 break;
289 case 130:
290 case 310:
291 _histMultiK0->fill(Ecm);
292 break;
293 case 221:
294 _histMultiEta->fill(Ecm);
295 break;
296 case 331:
297 _histMultiEtaPrime->fill(Ecm);
298 break;
299 case 411:
300 _histMultiDPlus->fill(Ecm);
301 break;
302 case 421:
303 _histMultiD0->fill(Ecm);
304 break;
305 case 511:
306 case 521:
307 case 531:
308 _histMultiBPlus0->fill(Ecm);
309 break;
310 case 9010221:
311 _histMultiF0->fill(Ecm);
312 break;
313 case 113:
314 _histMultiRho->fill(Ecm);
315 break;
316 case 323:
317 _histMultiKStar892Plus->fill(Ecm);
318 break;
319 case 313:
320 _histMultiKStar892_0->fill(Ecm);
321 break;
322 case 333:
323 _histMultiPhi->fill(Ecm);
324 break;
325 case 413:
326 _histMultiDStar2010Plus->fill(Ecm);
327 break;
328 case 225:
329 _histMultiF2->fill(Ecm);
330 break;
331 case 315:
332 _histMultiK2Star1430_0->fill(Ecm);
333 break;
334 case 2212:
335 _histMultiP->fill(Ecm);
336 break;
337 case 3122:
338 _histMultiLambda0->fill(Ecm);
339 break;
340 case 3312:
341 _histMultiXiMinus->fill(Ecm);
342 break;
343 case 3334:
344 _histMultiOmegaMinus->fill(Ecm);
345 break;
346 case 2224:
347 _histMultiDeltaPlusPlus->fill(Ecm);
348 break;
349 case 3114:
350 _histMultiSigma1385Plus->fill(Ecm);
351 break;
352 case 3324:
353 _histMultiXi1530_0->fill(Ecm);
354 break;
355 case 5122:
356 _histMultiLambdaB0->fill(Ecm);
357 break;
358 }
359 }
360 }
361
362
363 // Finalize
364 void finalize() {
365 // Normalize inclusive single particle distributions to the average number
366 // of charged particles per event.
367 const double avgNumParts = dbl(*_weightedTotalPartNum / *_passedCutWeightSum);
368
369 normalize(_histPtTIn, avgNumParts);
370 normalize(_histPtTOut, avgNumParts);
371 normalize(_histPtSIn, avgNumParts);
372 normalize(_histPtSOut, avgNumParts);
373
374 normalize(_histRapidityT, avgNumParts);
375 normalize(_histRapidityS, avgNumParts);
376
377 normalize(_histLogScaledMom, avgNumParts);
378 normalize(_histScaledMom, avgNumParts);
379
380 scale(_histEEC, 1.0 / *_passedCutWeightSum);
381 scale(_histAEEC, 1.0 / *_passedCutWeightSum);
382 scale(_histMultiCharged, 1.0 / *_passedCutWeightSum);
383
384 scale(_histMultiPiPlus, 1.0 / *_passedCutWeightSum);
385 scale(_histMultiPi0, 1.0 / *_passedCutWeightSum);
386 scale(_histMultiKPlus, 1.0 / *_passedCutWeightSum);
387 scale(_histMultiK0, 1.0 / *_passedCutWeightSum);
388 scale(_histMultiEta, 1.0 / *_passedCutWeightSum);
389 scale(_histMultiEtaPrime, 1.0 / *_passedCutWeightSum);
390 scale(_histMultiDPlus, 1.0 / *_passedCutWeightSum);
391 scale(_histMultiD0, 1.0 / *_passedCutWeightSum);
392 scale(_histMultiBPlus0, 1.0 / *_passedCutWeightSum);
393
394 scale(_histMultiF0, 1.0 / *_passedCutWeightSum);
395
396 scale(_histMultiRho, 1.0 / *_passedCutWeightSum);
397 scale(_histMultiKStar892Plus, 1.0 / *_passedCutWeightSum);
398 scale(_histMultiKStar892_0, 1.0 / *_passedCutWeightSum);
399 scale(_histMultiPhi, 1.0 / *_passedCutWeightSum);
400 scale(_histMultiDStar2010Plus, 1.0 / *_passedCutWeightSum);
401
402 scale(_histMultiF2, 1.0 / *_passedCutWeightSum);
403 scale(_histMultiK2Star1430_0, 1.0 / *_passedCutWeightSum);
404
405 scale(_histMultiP, 1.0 / *_passedCutWeightSum);
406 scale(_histMultiLambda0, 1.0 / *_passedCutWeightSum);
407 scale(_histMultiXiMinus, 1.0 / *_passedCutWeightSum);
408 scale(_histMultiOmegaMinus, 1.0 / *_passedCutWeightSum);
409 scale(_histMultiDeltaPlusPlus, 1.0 / *_passedCutWeightSum);
410 scale(_histMultiSigma1385Plus, 1.0 / *_passedCutWeightSum);
411 scale(_histMultiXi1530_0, 1.0 / *_passedCutWeightSum);
412 scale(_histMultiLambdaB0, 1.0 / *_passedCutWeightSum);
413
414 scale(_hist1MinusT, 1.0 / *_passedCutWeightSum);
415 scale(_histTMajor, 1.0 / *_passedCutWeightSum);
416 scale(_histTMinor, 1.0 / *_passedCutWeightSum);
417 scale(_histOblateness, 1.0 / *_passedCutWeightSum);
418
419 scale(_histSphericity, 1.0 / *_passedCutWeightSum);
420 scale(_histAplanarity, 1.0 / *_passedCutWeightSum);
421 scale(_histPlanarity, 1.0 / *_passedCutWeightSum);
422
423 scale(_histHemiMassD, 1.0 / *_passedCutWeightSum);
424 scale(_histHemiMassH, 1.0 / *_passedCutWeightSum);
425 scale(_histHemiMassL, 1.0 / *_passedCutWeightSum);
426
427 scale(_histHemiBroadW, 1.0 / *_passedCutWeightSum);
428 scale(_histHemiBroadN, 1.0 / *_passedCutWeightSum);
429 scale(_histHemiBroadT, 1.0 / *_passedCutWeightSum);
430 scale(_histHemiBroadD, 1.0 / *_passedCutWeightSum);
431
432 scale(_histCParam, 1.0 / *_passedCutWeightSum);
433 scale(_histDParam, 1.0 / *_passedCutWeightSum);
434
435 scale(_histDiffRate2Durham, 1.0 / *_passedCut3WeightSum);
436 scale(_histDiffRate2Jade, 1.0 / *_passedCut3WeightSum);
437 scale(_histDiffRate3Durham, 1.0 / *_passedCut4WeightSum);
438 scale(_histDiffRate3Jade, 1.0 / *_passedCut4WeightSum);
439 scale(_histDiffRate4Durham, 1.0 / *_passedCut5WeightSum);
440 scale(_histDiffRate4Jade, 1.0 / *_passedCut5WeightSum);
441 }
442
443 /// @}
444
445
446 private:
447
448 /// Store the weighted sums of numbers of charged / charged+neutral
449 /// particles - used to calculate average number of particles for the
450 /// inclusive single particle distributions' normalisations.
451 CounterPtr _weightedTotalPartNum;
452
453 /// @name Sums of weights past various cuts
454 /// @{
455 CounterPtr _passedCutWeightSum;
456 CounterPtr _passedCut3WeightSum;
457 CounterPtr _passedCut4WeightSum;
458 CounterPtr _passedCut5WeightSum;
459 /// @}
460
461 /// @name Histograms
462 /// @{
463 Histo1DPtr _histPtTIn;
464 Histo1DPtr _histPtTOut;
465 Histo1DPtr _histPtSIn;
466 Histo1DPtr _histPtSOut;
467
468 Histo1DPtr _histRapidityT;
469 Histo1DPtr _histRapidityS;
470
471 Histo1DPtr _histScaledMom, _histLogScaledMom;
472
473 Profile1DPtr _histPtTOutVsXp, _histPtVsXp;
474
475 Histo1DPtr _hist1MinusT;
476 Histo1DPtr _histTMajor;
477 Histo1DPtr _histTMinor;
478 Histo1DPtr _histOblateness;
479
480 Histo1DPtr _histSphericity;
481 Histo1DPtr _histAplanarity;
482 Histo1DPtr _histPlanarity;
483
484 Histo1DPtr _histCParam;
485 Histo1DPtr _histDParam;
486
487 Histo1DPtr _histHemiMassD;
488 Histo1DPtr _histHemiMassH;
489 Histo1DPtr _histHemiMassL;
490
491 Histo1DPtr _histHemiBroadW;
492 Histo1DPtr _histHemiBroadN;
493 Histo1DPtr _histHemiBroadT;
494 Histo1DPtr _histHemiBroadD;
495
496 Histo1DPtr _histDiffRate2Durham;
497 Histo1DPtr _histDiffRate2Jade;
498 Histo1DPtr _histDiffRate3Durham;
499 Histo1DPtr _histDiffRate3Jade;
500 Histo1DPtr _histDiffRate4Durham;
501 Histo1DPtr _histDiffRate4Jade;
502
503 Histo1DPtr _histEEC, _histAEEC;
504
505 BinnedHistoPtr<string> _histMultiCharged;
506
507 BinnedHistoPtr<string> _histMultiPiPlus;
508 BinnedHistoPtr<string> _histMultiPi0;
509 BinnedHistoPtr<string> _histMultiKPlus;
510 BinnedHistoPtr<string> _histMultiK0;
511 BinnedHistoPtr<string> _histMultiEta;
512 BinnedHistoPtr<string> _histMultiEtaPrime;
513 BinnedHistoPtr<string> _histMultiDPlus;
514 BinnedHistoPtr<string> _histMultiD0;
515 BinnedHistoPtr<string> _histMultiBPlus0;
516
517 BinnedHistoPtr<string> _histMultiF0;
518
519 BinnedHistoPtr<string> _histMultiRho;
520 BinnedHistoPtr<string> _histMultiKStar892Plus;
521 BinnedHistoPtr<string> _histMultiKStar892_0;
522 BinnedHistoPtr<string> _histMultiPhi;
523 BinnedHistoPtr<string> _histMultiDStar2010Plus;
524
525 BinnedHistoPtr<string> _histMultiF2;
526 BinnedHistoPtr<string> _histMultiK2Star1430_0;
527
528 BinnedHistoPtr<string> _histMultiP;
529 BinnedHistoPtr<string> _histMultiLambda0;
530 BinnedHistoPtr<string> _histMultiXiMinus;
531 BinnedHistoPtr<string> _histMultiOmegaMinus;
532 BinnedHistoPtr<string> _histMultiDeltaPlusPlus;
533 BinnedHistoPtr<string> _histMultiSigma1385Plus;
534 BinnedHistoPtr<string> _histMultiXi1530_0;
535 BinnedHistoPtr<string> _histMultiLambdaB0;
536
537 const string Ecm = "91.2";
538 /// @}
539
540 };
541
542
543
544 RIVET_DECLARE_ALIASED_PLUGIN(DELPHI_1996_I424112, DELPHI_1996_S3430090);
545
546}
|