Rivet analyses referenceSTAR_2006_I722757Strange particle production in pp at 200 GeVExperiment: STAR (RHIC pp 200 GeV) Inspire ID: 722757 Status: VALIDATED Authors:
Beam energies: (100.0, 100.0) GeV Run details:
pT distributions of identified strange particles in pp collisions at $\sqrt{s} = 200$ GeV, measured by the STAR experiment at RHIC in non-single-diffractive minbias events. WARNING The $\langle pT \rangle$ vs. particle mass plot is not validated yet and might be wrong. Source code: STAR_2006_I722757.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/ChargedFinalState.hh"
4#include "Rivet/Projections/IdentifiedFinalState.hh"
5#include "Rivet/Projections/UnstableParticles.hh"
6
7namespace Rivet {
8
9
10 /// STAR strange particle spectra in pp at 200 GeV
11 class STAR_2006_I722757 : public Analysis {
12 public:
13
14 RIVET_DEFAULT_ANALYSIS_CTOR(STAR_2006_I722757);
15
16 /// Book projections and histograms
17 void init() {
18 ChargedFinalState bbc1(Cuts::etaIn(-5.0, -3.5)); // beam-beam-counter trigger
19 ChargedFinalState bbc2(Cuts::etaIn( 3.5, 5.0)); // beam-beam-counter trigger
20 declare(bbc1, "BBC1");
21 declare(bbc2, "BBC2");
22
23 UnstableParticles ufs(Cuts::abseta < 2.5);
24 declare(ufs, "UFS");
25
26 book(_h_pT_k0s ,1, 1, 1);
27 book(_h_pT_kminus ,1, 2, 1);
28 book(_h_pT_kplus ,1, 3, 1);
29 book(_h_pT_lambda ,1, 4, 1);
30 book(_h_pT_lambdabar ,1, 5, 1);
31 book(_h_pT_ximinus ,1, 6, 1);
32 book(_h_pT_xiplus ,1, 7, 1);
33 //book(_h_pT_omega ,1, 8, 1);
34 book(_h_antibaryon_baryon_ratio, 2, 1, 1);
35 book(_h_lambar_lam, 2, 2, 1);
36 book(_h_xiplus_ximinus, 2, 3, 1);
37 book(_h_pT_vs_mass ,3, 1, 1);
38
39 for (size_t i = 0; i < 4; i++) {
40 book(_nWeightedBaryon[i], "TMP/nWeightedBaryon"+to_str(i));
41 book(_nWeightedAntiBaryon[i], "TMP/nWeightedAntiBaryon"+to_str(i));
42 }
43 book(_sumWeightSelected, "sumWselected");
44 }
45
46
47 /// Do the analysis
48 void analyze(const Event& event) {
49 const ChargedFinalState& bbc1 = apply<ChargedFinalState>(event, "BBC1");
50 const ChargedFinalState& bbc2 = apply<ChargedFinalState>(event, "BBC2");
51 if (bbc1.size() < 1 || bbc2.size() < 1) {
52 MSG_DEBUG("Failed beam-beam-counter trigger");
53 vetoEvent;
54 }
55 _sumWeightSelected->fill();
56
57 const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
58 for (const Particle& p : ufs.particles()) {
59 if (p.absrap() < 0.5) {
60 const PdgId pid = p.pid();
61 const double pT = p.pT() / GeV;
62 switch (abs(pid)) {
63 case PID::PIPLUS:
64 if (pid < 0) _h_pT_vs_mass->fill(0.1396, pT);
65 break;
66 case PID::PROTON:
67 if (pid < 0) _h_pT_vs_mass->fill(0.9383, pT);
68 if (pT > 0.4) {
69 pid > 0 ? _nWeightedBaryon[0]->fill() : _nWeightedAntiBaryon[0]->fill();
70 }
71 break;
72 case PID::K0S:
73 if (pT > 0.2) {
74 _h_pT_k0s->fill(pT, 1.0/pT);
75 }
76 _h_pT_vs_mass->fill(0.5056, pT);
77 break;
78 case PID::K0L:
79 _h_pT_vs_mass->fill(0.5056, pT);
80 break;
81 case 113: // rho0(770)
82 _h_pT_vs_mass->fill(0.7755, pT);
83 break;
84 case 313: // K0*(892)
85 _h_pT_vs_mass->fill(0.8960, pT);
86 break;
87 case 333: // phi(1020)
88 _h_pT_vs_mass->fill(1.0190, pT);
89 break;
90 case 3214: // Sigma(1385)
91 _h_pT_vs_mass->fill(1.3840, pT);
92 break;
93 case 102134: // Lambda(1520)
94 _h_pT_vs_mass->fill(1.5200, pT);
95 break;
96 case PID::KPLUS:
97 if (pid < 0) _h_pT_vs_mass->fill(0.4856, pT);
98 if (pT > 0.2) {
99 pid > 0 ? _h_pT_kplus->fill(pT, 1.0/pT) : _h_pT_kminus->fill(pT, 1.0/pT);
100 }
101 break;
102 case PID::LAMBDA:
103 pid > 0 ? _h_pT_vs_mass->fill(1.1050, pT) : _h_pT_vs_mass->fill(1.1250, pT);
104 if (pT > 0.3) {
105 pid > 0 ? _h_pT_lambda->fill(pT, 1.0/pT) : _h_pT_lambdabar->fill(pT, 1.0/pT);
106 pid > 0 ? _nWeightedBaryon[1]->fill() : _nWeightedAntiBaryon[1]->fill();
107 }
108 break;
109 case PID::XIMINUS:
110 pid > 0 ? _h_pT_vs_mass->fill(1.3120, pT) : _h_pT_vs_mass->fill(1.3320, pT);
111 if (pT > 0.5) {
112 pid > 0 ? _h_pT_ximinus->fill(pT, 1.0/pT) : _h_pT_xiplus->fill(pT, 1.0/pT);
113 pid > 0 ? _nWeightedBaryon[2]->fill() : _nWeightedAntiBaryon[2]->fill();
114 }
115 break;
116 case PID::OMEGAMINUS:
117 _h_pT_vs_mass->fill(1.6720, pT);
118 if (pT > 0.5) {
119 //_h_pT_omega->fill(pT, 1.0/pT);
120 pid > 0 ? _nWeightedBaryon[3]->fill() : _nWeightedAntiBaryon[3]->fill();
121 }
122 break;
123 }
124
125 }
126 }
127 }
128
129
130 /// Finalize
131 void finalize() {
132 for (size_t i=0 ; i<4 ; i++) {
133 if (_nWeightedBaryon[i]->val() && _nWeightedAntiBaryon[i]->val()) {
134 double y = safediv(_nWeightedAntiBaryon[i]->val(), _nWeightedBaryon[i]->val(), 0.);
135 double dy = sqrt( safediv(1., _nWeightedAntiBaryon[i]->numEntries(), 0.) + safediv(1., _nWeightedBaryon[i]->numEntries(), 0.) );
136 _h_antibaryon_baryon_ratio->bin(i+1).set(y, y*dy);
137 }
138 }
139
140 divide(_h_pT_lambdabar,_h_pT_lambda, _h_lambar_lam);
141 divide(_h_pT_xiplus,_h_pT_ximinus, _h_xiplus_ximinus);
142
143 const double factor = ((1./(2.0 * M_PI)) / _sumWeightSelected->val());
144 scale(_h_pT_k0s, factor);
145 scale(_h_pT_kminus, factor);
146 scale(_h_pT_kplus, factor);
147 scale(_h_pT_lambda, factor);
148 scale(_h_pT_lambdabar, factor);
149 scale(_h_pT_ximinus, factor);
150 scale(_h_pT_xiplus, factor);
151 //scale(_h_pT_omega, 1./(2*M_PI*_sumWeightSelected));
152 }
153
154 private:
155
156 CounterPtr _sumWeightSelected;
157 array<CounterPtr, 4> _nWeightedBaryon;
158 array<CounterPtr, 4> _nWeightedAntiBaryon;
159
160 Histo1DPtr _h_pT_k0s, _h_pT_kminus, _h_pT_kplus, _h_pT_lambda, _h_pT_lambdabar, _h_pT_ximinus, _h_pT_xiplus;
161 //Histo1DPtr _h_pT_omega;
162 Estimate1DPtr _h_antibaryon_baryon_ratio;
163 Profile1DPtr _h_pT_vs_mass;
164 Estimate1DPtr _h_lambar_lam;
165 Estimate1DPtr _h_xiplus_ximinus;
166
167 };
168
169
170 RIVET_DECLARE_ALIASED_PLUGIN(STAR_2006_I722757, STAR_2006_S6860818);
171
172}
|