rivet is hosted by Hepforge, IPPP Durham

## Rivet analyses reference

### STAR_2008_S7869363

Multiplicities and pT spectra from STAR for $pp$ at 200 GeV
Experiment: STAR (RHIC)
Inspire ID: 793126
Status: UNVALIDATED
Authors:
• Holger Schulz
References:
• arXiv: 0808.2041
• http://drupal.star.bnl.gov/STAR/files/starpublications/124/data.html
Beams: p+ p+
Beam energies: (100.0, 100.0) GeV
Run details:
• QCD (pp) events at 200 GeV

Charged multiplicity and identified charged particle spectra

Source code: STAR_2008_S7869363.cc
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/ChargedFinalState.hh" #include "Rivet/Projections/SmearedParticles.hh" namespace Rivet { /// Multiplicities and pT spectra from STAR for pp at 200 GeV class STAR_2008_S7869363 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(STAR_2008_S7869363); /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { const ChargedFinalState cfs(Cuts::abseta < 0.5 && Cuts::pT > 0.2*GeV); const SmearedParticles lfs(cfs, [](const Particle& p) { // Track reconstruction efficiencies for tracks with pT from 0 to 600 MeV // in steps of 50 MeV. The efficiency is assumed to be 0.88 for pT >= 600 MeV const static vector TRKEFF = {0,0,0.38,0.72,0.78,0.81,0.82,0.84,0.85,0.86,0.87,0.88}; const size_t idx = size_t(min(floor(p.pT()/MeV/50), 11.)); return TRKEFF[idx]; }); declare(lfs, "FS"); book(_h_dNch ,1, 1, 1); book(_h_dpT_Pi ,2, 1, 1); book(_h_dpT_Piplus ,2, 1, 2); book(_h_dpT_Kaon ,2, 1, 3); book(_h_dpT_Kaonplus ,2, 1, 4); book(_h_dpT_AntiProton ,2, 1, 5); book(_h_dpT_Proton ,2, 1, 6); // book(nCutsPassed, "nCutsPassed"); // book(nPi, "nPi"); // book(nPiPlus, "nPiPlus"); // book(nKaon, "nKaon"); // book(nKaonPlus, "nKaonPlus"); // book(nProton, "nProton"); // book(nAntiProton, "nAntiProton"); } /// Perform the per-event analysis void analyze(const Event& event) { const ParticleFinder& charged = apply(event, "FS"); // Vertex reconstruction efficiencies as a function of charged multiplicity. // For events with more than 23 reconstructed tracks the efficiency is 100%. double vtxeffs[24] = { 0.000000,0.512667,0.739365,0.847131,0.906946,0.940922,0.959328,0.96997, 0.975838,0.984432,0.988311,0.990327,0.990758,0.995767,0.99412,0.992271, 0.996631,0.994802,0.99635,0.997384,0.998986,0.996441,0.994513,1.000000 }; double vtxeff = 1.0; if (charged.particles().size() < 24) { vtxeff = vtxeffs[charged.particles().size()]; } const double weight = vtxeff; for (const Particle& p : charged.particles()) { double pT = p.pT()/GeV; double y = p.rapidity(); if (fabs(y) < 0.1) { // nCutsPassed->fill(weight); const PdgId id = p.pid(); switch (id) { case -211: _h_dpT_Pi->fill(pT, weight/(TWOPI*pT*0.2)); // nPi->fill(weight); break; case 211: _h_dpT_Piplus->fill(pT, weight/(TWOPI*pT*0.2)); // nPiPlus->fill(weight); break; case -321: _h_dpT_Kaon->fill(pT, weight/(TWOPI*pT*0.2)); // nKaon->fill(weight); break; case 321: _h_dpT_Kaonplus->fill(pT, weight/(TWOPI*pT*0.2)); // nKaonPlus->fill(weight); break; case -2212: _h_dpT_AntiProton->fill(pT, weight/(TWOPI*pT*0.2)); // nAntiProton->fill(weight); break; case 2212: _h_dpT_Proton->fill(pT, weight/(TWOPI*pT*0.2)); // nProton->fill(weight); break; } } else { continue; } } _h_dNch->fill(charged.particles().size(), weight); } /// Normalise histograms etc., after the run void finalize() { //double nTot = nPi + nPiPlus + nKaon + nKaonPlus + nProton + nAntiProton; normalize(_h_dNch); /// @todo Norm to data! normalize(_h_dpT_Pi , 0.389825 ); normalize(_h_dpT_Piplus , 0.396025 ); normalize(_h_dpT_Kaon , 0.03897 ); normalize(_h_dpT_Kaonplus , 0.04046 ); normalize(_h_dpT_AntiProton, 0.0187255); normalize(_h_dpT_Proton , 0.016511 ); } private: Histo1DPtr _h_dNch; Histo1DPtr _h_dpT_Pi, _h_dpT_Piplus; Histo1DPtr _h_dpT_Kaon, _h_dpT_Kaonplus; Histo1DPtr _h_dpT_AntiProton, _h_dpT_Proton; Profile1DPtr _h_pT_vs_Nch; //CounterPtr nCutsPassed, nPi, nPiPlus, nKaon, nKaonPlus, nProton, nAntiProton; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(STAR_2008_S7869363); }