rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

ALICE_2017_I1512110

Invariant cross section of neutral pions measured at mid-rapidity in pp collisions at $2.76\,$TeV.
Experiment: ALICE (LHC)
Inspire ID: 1512110
Status: VALIDATED
No authors listed No references listed
Beams: p+ p+
Beam energies: (1380.0, 1380.0) GeV
Run details:
  • Transverse momentum spectra of neutral pions and $\eta$ mesons measured at 0.4<p_T<40 GeV/c and 0.6<p_T<20 GeV/c, respectively, and the ratio $\pi^{0}/\eta$, obtained at mid-rapidity in pp collisions at $\sqrt(s) = 2.76\,$TeV with ALICE at the LHC.

Transverse momentum spectra of neutral pions and $\eta$ mesons measured at 0.4<p_T<40 GeV/c and 0.6<p_T<20 GeV/c, respectively, and the ratio $\pi^{0}/\eta$, obtained at mid-rapidity in pp collisions at $\sqrt(s) = 2.76\,$TeV with ALICE at the LHC.

Source code: ALICE_2017_I1512110.cc
 1//-*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/UnstableParticles.hh"
 4
 5namespace Rivet {
 6
 7
 8  class ALICE_2017_I1512110 : public Analysis {
 9  public:
10
11    /// Constructor
12    ALICE_2017_I1512110()
13      : Analysis("ALICE_2017_I1512110"),
14        _rapmax(0.8)
15    {    }
16
17
18    void init() {
19
20      const UnstableParticles ufs(Cuts::absrap < _rapmax);
21      declare(ufs, "UFS");
22
23      book(_h_pi0, 3,1,1);
24      book(_h_eta, 4,1,1);
25      book(_h_etaToPion, 5,1,1);
26
27      // temporary plots with the binning of _h_etaToPion
28      // to construct the eta/pi0 ratio in the end
29      book(_temp_h_pion, "TMP/h_pion",refData(5,1,1));
30      book(_temp_h_eta , "TMP/h_eta", refData(5,1,1));
31    }
32
33
34    void analyze(const Event& event) {
35
36      const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
37
38      for (const Particle& p : ufs.particles()) {
39
40        if (p.pid() == 111) {
41          // neutral pion; ALICE corrects for pi0 feed-down
42          if ( !(p.hasAncestorWith(Cuts::pid == 310)  || p.hasAncestorWith(Cuts::pid == 130)   || // K0_s, K0_l
43                 p.hasAncestorWith(Cuts::pid == 321)  || p.hasAncestorWith(Cuts::pid == -321)  || // K+,K-
44                 p.hasAncestorWith(Cuts::pid == 3122) || p.hasAncestorWith(Cuts::pid == -3122) || // Lambda, Anti-Lambda
45                 p.hasAncestorWith(Cuts::pid == 3212) || p.hasAncestorWith(Cuts::pid == -3212) || // Sigma0
46                 p.hasAncestorWith(Cuts::pid == 3222) || p.hasAncestorWith(Cuts::pid == -3222) || // Sigmas
47                 p.hasAncestorWith(Cuts::pid == 3112) || p.hasAncestorWith(Cuts::pid == -3112) || // Sigmas
48                 p.hasAncestorWith(Cuts::pid == 3322) || p.hasAncestorWith(Cuts::pid == -3322) || // Cascades
49                 p.hasAncestorWith(Cuts::pid == 3312) || p.hasAncestorWith(Cuts::pid == -3312) )) // Cascades
50            {
51              _h_pi0->fill(p.pT()/GeV, 1.0 /(TWOPI*p.pT()/GeV*2*_rapmax));
52              _temp_h_pion->fill(p.pT()/GeV);
53            }
54        }
55        else if (p.pid() == 221){
56          // eta meson
57          _h_eta->fill(p.pT()/GeV, 1.0 /(TWOPI*p.pT()/GeV*2*_rapmax));
58          _temp_h_eta->fill(p.pT()/GeV);
59        }
60      }
61    }
62
63
64    void finalize() {
65
66      scale(_h_pi0, crossSection()/picobarn/sumOfWeights());
67      scale(_h_eta, crossSection()/picobarn/sumOfWeights());
68      divide(_temp_h_eta, _temp_h_pion, _h_etaToPion);
69
70    }
71
72
73  private:
74
75    double _rapmax;
76    Histo1DPtr _h_pi0;
77    Histo1DPtr _h_eta;
78    Histo1DPtr _temp_h_pion;
79    Histo1DPtr _temp_h_eta;
80    Estimate1DPtr _h_etaToPion;
81
82  };
83
84
85  RIVET_DECLARE_PLUGIN(ALICE_2017_I1512110);
86
87}