Rivet analyses referenceOPAL_1997_I421978Strange baryon production in $Z$ hadronic decays at OPALExperiment: OPAL (LEP 1) Inspire ID: 421978 Status: VALIDATED Authors:
Beam energies: (45.6, 45.6) GeV Run details:
Measurement of the $\Xi^-$, $\Lambda^0$, $\Sigma^+(1385)$, $\Sigma^-(1385)$, $\Xi^0(1530)$ and $\Lambda^0(1520)$ scaled momentum distributions by OPAL at LEP 1. The paper also has the production cross-sections of these particles, but that is not implemented in Rivet. Source code: OPAL_1997_I421978.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/Beam.hh"
4#include "Rivet/Projections/FinalState.hh"
5#include "Rivet/Projections/ChargedFinalState.hh"
6#include "Rivet/Projections/UnstableParticles.hh"
7
8namespace Rivet {
9
10
11 /// @brief OPAL strange baryon paper
12 ///
13 /// @author Peter Richardson
14 class OPAL_1997_I421978 : public Analysis {
15 public:
16
17 RIVET_DEFAULT_ANALYSIS_CTOR(OPAL_1997_I421978);
18
19
20 /// @name Analysis methods
21 /// @{
22
23 void init() {
24 declare(Beam(), "Beams");
25 declare(ChargedFinalState(), "FS");
26 declare(UnstableParticles(), "UFS");
27
28 book(_histXpLambda , 1, 1, 1);
29 book(_histXiLambda , 2, 1, 1);
30 book(_histXpXiMinus , 3, 1, 1);
31 book(_histXiXiMinus , 4, 1, 1);
32 book(_histXpSigma1385Plus , 5, 1, 1);
33 book(_histXiSigma1385Plus , 6, 1, 1);
34 book(_histXpSigma1385Minus , 7, 1, 1);
35 book(_histXiSigma1385Minus , 8, 1, 1);
36 book(_histXpXi1530 , 9, 1, 1);
37 book(_histXiXi1530 ,10, 1, 1);
38 book(_histXpLambda1520 ,11, 1, 1);
39 book(_histXiLambda1520 ,12, 1, 1);
40 }
41
42
43 void analyze(const Event& e) {
44 // First, veto on leptonic events by requiring at least 4 charged FS particles
45 const FinalState& fs = apply<FinalState>(e, "FS");
46 const size_t numParticles = fs.particles().size();
47
48 // Even if we only generate hadronic events, we still need a cut on numCharged >= 2.
49 if (numParticles < 2) {
50 MSG_DEBUG("Failed leptonic event cut");
51 vetoEvent;
52 }
53 MSG_DEBUG("Passed leptonic event cut");
54
55 // Get beams and average beam momentum
56 const ParticlePair& beams = apply<Beam>(e, "Beams").beams();
57 const double meanBeamMom = ( beams.first.p3().mod() +
58 beams.second.p3().mod() ) / 2.0;
59 MSG_DEBUG("Avg beam momentum = " << meanBeamMom);
60
61 // Final state of unstable particles to get particle spectra
62 const UnstableParticles& ufs = apply<UnstableParticles>(e, "UFS");
63
64 for (const Particle& p : ufs.particles()) {
65 const int id = p.abspid();
66 if (!inRange(id, 3000, 3999)&&id!=102134) continue;
67
68 const double xE = p.E()/meanBeamMom;
69 const double xp = p.p3().mod()/(2*meanBeamMom);
70 const double xi = -log(xp);
71
72 switch (id) {
73 case 3312:
74 _histXpXiMinus->fill(xE);
75 _histXiXiMinus->fill(xi);
76 break;
77 case 3224:
78 _histXpSigma1385Plus->fill(xE);
79 _histXiSigma1385Plus->fill(xi);
80 break;
81 case 3114:
82 _histXpSigma1385Minus->fill(xE);
83 _histXiSigma1385Minus->fill(xi);
84 break;
85 case 3122:
86 _histXpLambda->fill(xE);
87 _histXiLambda->fill(xi);
88 break;
89 case 3324:
90 _histXpXi1530->fill(xE);
91 _histXiXi1530->fill(xi);
92 break;
93 case 102134:
94 _histXpLambda1520->fill(xE);
95 _histXiLambda1520->fill(xi);
96 break;
97 }
98 }
99 }
100
101
102 /// Finalize
103 void finalize() {
104 double fact=1./sumOfWeights();
105 scale(_histXpLambda , fact);
106 scale(_histXiLambda , fact);
107 scale(_histXpXiMinus , fact);
108 scale(_histXiXiMinus , fact);
109 scale(_histXpSigma1385Plus , fact);
110 scale(_histXiSigma1385Plus , fact);
111 scale(_histXpSigma1385Minus, fact);
112 scale(_histXiSigma1385Minus, fact);
113 scale(_histXpXi1530 , fact);
114 scale(_histXiXi1530 , fact);
115 scale(_histXpLambda1520 , fact);
116 scale(_histXiLambda1520 , fact);
117 }
118
119 /// @}
120
121
122 private:
123
124 /// @name Histograms
125 /// @{
126 Histo1DPtr _histXpLambda;
127 Histo1DPtr _histXiLambda;
128 Histo1DPtr _histXpXiMinus;
129 Histo1DPtr _histXiXiMinus;
130 Histo1DPtr _histXpSigma1385Plus;
131 Histo1DPtr _histXiSigma1385Plus;
132 Histo1DPtr _histXpSigma1385Minus;
133 Histo1DPtr _histXiSigma1385Minus;
134 Histo1DPtr _histXpXi1530;
135 Histo1DPtr _histXiXi1530;
136 Histo1DPtr _histXpLambda1520;
137 Histo1DPtr _histXiLambda1520;
138 /// @}
139
140 };
141
142
143
144 RIVET_DECLARE_ALIASED_PLUGIN(OPAL_1997_I421978, OPAL_1997_S3396100);
145
146}
|