rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

STAR_2006_I722757

Strange particle production in pp at 200 GeV
Experiment: STAR (RHIC pp 200 GeV)
Inspire ID: 722757
Status: VALIDATED
Authors:
  • Hendrik Hoeth
References:
  • Phys. Rev. C75, 064901
  • nucl-ex/0607033
Beams: p+ p+
Beam energies: (100.0, 100.0) GeV
Run details:
  • pp at 200 GeV

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 3124: // 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}