Rivet Analyses Reference

ALICE_2014_I1243865

Multi-Strange Baryon production at mid rapidity in Pb--Pb at 2.76 TeV/nn
Experiment: ALICE (LHC)
Inspire ID: 1243865
Status: UNVALIDATED
Authors:
  • Cody B Duncan
  • Patrick Kirchgaesser
  • Johannes Bellm
References:
  • Phys.Lett. B728 (2014) 216-227
  • 10.1016/j.physletb.2013.11.048
  • arXiv: 1307.5543
Beams: 1000822080 1000822080
Beam energies: (287040.0, 287040.0) GeV
Run details:
  • Analysis of multi-strange baryon production at $\sqrt{s} = 2.76 \mathrm{TeV}$ for Pb-Pb collisions.

Measurements of transverse momentum (pT) spectra for charged Xi and Omega hyperon production at mid-rapidity in several centrality intervals for Pb-Pb collisions at sqrt(sNN) = 2.76 TeV recorded in 2010. Mid-rapidity yields, integrated over pT, have also been determined, together with the enhancements with respect to pp collisions and the hyperon-to-pion production ratios

Source code: ALICE_2014_I1243865.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
140
141
142
143
144
145
146
147
148
149
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/CentralityProjection.hh"
#include "Rivet/Projections/AliceCommon.hh"
#include "Rivet/Projections/HepMCHeavyIon.hh"
#include "Rivet/Tools/AliceCommon.hh"
#include "Rivet/Tools/Cuts.hh"

namespace Rivet {

  class ALICE_2014_I1243865 : public Analysis {

  // @brief Multi-strange baryon production at mid-rapidity in 2.76 TeV Pb--Pb collisions
  public:

    /// Constructor
    RIVET_DEFAULT_ANALYSIS_CTOR(ALICE_2014_I1243865);

    
    // Book histograms and projections etc.
    void init() {
      // Particles of interest.
      declare(ALICE::PrimaryParticles(Cuts::absrap < 0.5),"CFS");

      // The event trigger.
      declare(ALICE::V0AndTrigger(), "V0-AND");

      // The centrality projection.
      declareCentrality(ALICE::V0MMultiplicity(),
           "ALICE_2015_PBPBCentrality", "V0M", "V0M");

      // Access the HepMC heavy ion info
      declare(HepMCHeavyIon(), "HepMC");

      // Xi Baryons.
      size_t ixi = 0;
      _histPtXi.resize(5);
      _histPtXi_bar.resize(5);
      for (string str : {"d01-","d02-","d03-","d04-","d05-"}){
        book(_histPtXi[ixi], str+"x01-y01");
        book(_histPtXi_bar[ixi], str+"x01-y02");
        ixi += 1;
      }

      // Omega Baryons.
      size_t iom = 0;
      _histPtOmega.resize(5);
      _histPtOmega_bar.resize(5);
      for (string str : {"d06-","d07-","d08-","d09-","d10-"}){
        book(_histPtOmega[iom], str+"x01-y01");
        book(_histPtOmega_bar[iom], str+"x01-y02");
        iom += 1;
      }

      // Sum of weights for the centrality intervals.
      sow.resize(_histPtOmega.size());
      for (int i = 0, N = _histPtOmega.size(); i < N; ++i) {
        book(sow[i], "sow_" + toString(i));
      }

      book(_histXitoPi, "d14-x01-y01");
      book(_histOmegatoPi, "d14-x01-y02");
    }


    void analyze(const Event& event) {
      // Event trigger.
      if (!apply<ALICE::V0AndTrigger>(event, "V0-AND")() ) vetoEvent;

      // Centrality.
      const CentralityProjection& cent = apply<CentralityProjection>(event,"V0M");
      const double c = cent();

      int centralityclass = -1;
      if(c > 0. && c <= 10) centralityclass = 0;
      if(c > 10. && c <= 20) centralityclass = 1;
      if(c > 20. && c <= 40) centralityclass = 2;
      if(c > 40. && c <= 60) centralityclass = 3;
      if(c > 60. && c <= 80) centralityclass = 4;
      if (centralityclass == -1) vetoEvent;
      // Fill sum of weights
      sow[centralityclass]->fill();
      int nPions = 0;
      int nXi = 0;
      int nOmega = 0;
      for (const Particle& p : apply<ALICE::PrimaryParticles>(event,"CFS").particles()) {
        const double pT = p.pT() / GeV;
        switch (p.pid()){
	  case 211:
	    nPions++;
	    break;
           case 3312:
	     _histPtXi[centralityclass]->fill(pT);
	     nXi++;
	     break;
	   case -3312:
	     _histPtXi_bar[centralityclass]->fill(pT);
	     nXi++;
	     break;
	   case 3334:
	     _histPtOmega[centralityclass]->fill(pT);
	     nOmega++;
	   break;
	     case -3334:
	     _histPtOmega_bar[centralityclass]->fill(pT);
	     nOmega++;
	   break;
         }
       }
       // Extract Npart form GenEvent. TODO: Unclear how to do
       // this in HepMC3
      const HepMCHeavyIon & hi = apply<HepMCHeavyIon>(event, "HepMC");
       if ( nPions != 0){
	 const double npart = hi.Npart_proj() + hi.Npart_targ();
         if (nXi != 0) 
           _histXitoPi->fill(npart, double(nXi) / double(nPions));
         if (nOmega != 0) 
	   _histOmegatoPi->fill(npart, double(nOmega) / double(nPions));
	}
     }

    void finalize() {
      for (int i = 0, N = _histPtOmega.size(); i < N; ++i) {
        const double s = 1./sow[i]->sumW();
        _histPtXi[i]->scaleW(s);
        _histPtXi_bar[i]->scaleW(s);
        _histPtOmega[i]->scaleW(s);
        _histPtOmega_bar[i]->scaleW(s);
      }
   }


  private:

    vector<Histo1DPtr> _histPtXi;
    vector<Histo1DPtr> _histPtXi_bar;
    vector<Histo1DPtr> _histPtOmega;
    vector<Histo1DPtr> _histPtOmega_bar;
    vector<CounterPtr> sow;
    Profile1DPtr _histXitoPi;
    Profile1DPtr _histOmegatoPi;

  };


  // The hook for the plugin system
  RIVET_DECLARE_PLUGIN(ALICE_2014_I1243865);

}