Rivet analyses referenceALICE_2017_I1512110Invariant 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. 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}
|