Rivet analyses


title: ALICE_2015_I1357424

Transverse momentum spectra of pions, kaons and protons in $pp$ collisions at 7 TeV

Experiment: ALICE (LHC)

Inspire ID: 1357424

Status: VALIDATED

Authors: - Andreas Morsch

References: - Eur.Phys.J.C 75 (2015) 5, 226 - arXiv: 1504.00024

Beams: p+ p+

Beam energies: (3500.0, 3500.0)GeV

Run details: - Inelastic pp collisions at sqrt(s) = 7 TeV

Obtaining the transverse momentum spectra of primary pions, kaons and protons in $pp$ collisions at $\sqrt{s} = 7$ TeV with ALICE at the LHC. K/pi and p/pi ratios are also included.

Source code:ALICE_2015_I1357424.cc

```c++ // -- C++ --

include "Rivet/Analysis.hh"

include "Rivet/Projections/ChargedFinalState.hh"

namespace Rivet {

class ALICE_2015_I1357424 : public Analysis { public:

ALICE_2015_I1357424()
    : Analysis("ALICE_2015_I1357424") { }

public:

void init() {
  const ChargedFinalState cfs(Cuts::absrap < 0.5);
  declare(cfs, "CFS");
  //
  // plots from the paper
  book(_histPtPions, "d01-x01-y01");   // pions
  book(_histPtKaons, "d01-x01-y02");   // kaons
  book(_histPtProtons, "d01-x01-y03"); // protons
  book(_histPtKtoPi, "d02-x01-y01");   // K to pi ratio
  book(_histPtPtoPi, "d03-x01-y01");   // p to pi ratio
  //
  // temp histos for ratios
  book(_histPtPionsR1, "TMP/pT_pi1",
       refData(2, 1, 1)); // pi histo compatible with more restricted kaon binning
  book(_histPtPionsR2, "TMP/pT_pi2",
       refData(3, 1, 1)); // pi histo compatible with more restricted proton binning
  book(_histPtKaonsR, "TMP/pT_K", refData(2, 1, 1));   // K histo with more restricted binning
  book(_histPtProtonsR, "TMP/pT_p", refData(3, 1, 1)); // p histo with more restricted binning
}


void analyze(const Event& event) {
  const ChargedFinalState& cfs = apply<ChargedFinalState>(event, "CFS");
  for (const Particle& p : cfs.particles()) {
    // protections against mc generators decaying long-lived particles
    if (!(p.hasAncestorWith(Cuts::pid == 310) || p.hasAncestorWith(Cuts::pid == -310) ||   // K0s
          p.hasAncestorWith(Cuts::pid == 130) || p.hasAncestorWith(Cuts::pid == -130) ||   // K0l
          p.hasAncestorWith(Cuts::pid == 3322) || p.hasAncestorWith(Cuts::pid == -3322) || // Xi0
          p.hasAncestorWith(Cuts::pid == 3122) || p.hasAncestorWith(Cuts::pid == -3122) || // Lambda
          p.hasAncestorWith(Cuts::pid == 3222) || p.hasAncestorWith(Cuts::pid == -3222) || // Sigma+/-
          p.hasAncestorWith(Cuts::pid == 3312) || p.hasAncestorWith(Cuts::pid == -3312) || // Xi-/+
          p.hasAncestorWith(Cuts::pid == 3334) || p.hasAncestorWith(Cuts::pid == -3334)))  // Omega-/+
    {
      switch (abs(p.pid())) {
        case 211: // pi+
          _histPtPions->fill(p.pT() / GeV);
          _histPtPionsR1->fill(p.pT() / GeV);
          _histPtPionsR2->fill(p.pT() / GeV);
          break;
        case 2212: // proton
          _histPtProtons->fill(p.pT() / GeV);
          _histPtProtonsR->fill(p.pT() / GeV);
          break;
        case 321: // K+
          _histPtKaons->fill(p.pT() / GeV);
          _histPtKaonsR->fill(p.pT() / GeV);
          break;
      } // particle switch
    } // primary pi, K, p only
  } // particle loop
}

void finalize() {
  divide(_histPtKaonsR, _histPtPionsR1, _histPtKtoPi);
  divide(_histPtProtonsR, _histPtPionsR2, _histPtPtoPi);

  scale(_histPtPions, 1. / sumOfWeights());
  scale(_histPtProtons, 1. / sumOfWeights());
  scale(_histPtKaons, 1. / sumOfWeights());
}

private:

Histo1DPtr _histPtPions;
Histo1DPtr _histPtProtons;
Histo1DPtr _histPtKaons;

Histo1DPtr _histPtPionsR1;
Histo1DPtr _histPtPionsR2;
Histo1DPtr _histPtProtonsR;
Histo1DPtr _histPtKaonsR;

Estimate1DPtr _histPtKtoPi;
Estimate1DPtr _histPtPtoPi;

};

RIVET_DECLARE_PLUGIN(ALICE_2015_I1357424);

} ```