rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

ALICE_2016_I1507090

Charged particle production as function of centrality in PbPb collisions at 5.02 TeV.
Experiment: ALICE (LHC)
Inspire ID: 1507090
Status: UNVALIDATED
Authors:
  • Christian Bierlich
References:
  • Phys.Lett.B772(2017)567-577
  • DOI:10.1016/j.physletb.2017.07.017
  • arXiv: 1612.08966
Beams: 1000822080 1000822080
Beam energies: (522392.0, 522392.0) GeV
Run details:
  • PbPb minimum bias events. The analysis holds the Primary Particle definition, so don't limit decays on generator level.

Charged particle pseudorapidity density in centrality classes. Measurements cover a wide $\eta$ range from -3.5 to 5. Centrality classes refer to forward V0 spectrum, as also measured by ALICE, can be modified to use a user definition instead.

Source code: ALICE_2016_I1507090.cc
  1// -*- C++ -*-
  2#include "Rivet/Analysis.hh"
  3#include "Rivet/Projections/ChargedFinalState.hh"
  4#include "Rivet/Analyses/AliceCommon.hh"
  5
  6namespace Rivet {
  7
  8
  9  /// @brief ALICE PbPb at 5.02 TeV eta distributions.
 10  class ALICE_2016_I1507090 : public Analysis {
 11  public:
 12
 13    /// Constructor
 14    RIVET_DEFAULT_ANALYSIS_CTOR(ALICE_2016_I1507090);
 15
 16
 17    /// @name Analysis methods
 18    /// @{
 19
 20    /// Book histograms and initialise projections before the run
 21    void init() {
 22      // Initialise and register projections
 23      // Centrality projection.
 24      declareCentrality(ALICE::V0MMultiplicity(), "ALICE_2015_CENT_PBPB",
 25        "V0M","V0M");
 26      // Projections for the 2-out-of-3 trigger.
 27      declare(ChargedFinalState( (Cuts::eta > 2.8 && Cuts::eta < 5.1) &&
 28         Cuts::pT > 0.1*GeV), "VZERO1");
 29      declare(ChargedFinalState( (Cuts::eta > -3.7 && Cuts::eta < -1.7) &&
 30	 Cuts::pT > 0.1*GeV), "VZERO2");
 31      declare(ChargedFinalState(Cuts::abseta < 1. && Cuts::pT > 0.15*GeV),
 32        "SPD");
 33
 34      // Primary particles.
 35      declare(ALICE::PrimaryParticles(Cuts::abseta < 5.6),"APRIM");
 36
 37      // The centrality bins and the corresponding histograms.
 38      centralityBins =
 39      { 5, 10, 20, 30, 40, 50, 60, 70, 80, 90 };
 40      for (int i = 0, N = centralityBins.size(); i < N; ++i) {
 41        book(histEta[centralityBins[i]], 1, 1, i + 1);
 42        book(sow[centralityBins[i]], "sow_" + toString(i));
 43      }
 44    }
 45
 46
 47    /// Perform the per-event analysis
 48    void analyze(const Event& event) {
 49      // Trigger projections.
 50      const ChargedFinalState& vz1 =
 51        apply<ChargedFinalState>(event,"VZERO1");
 52      const ChargedFinalState& vz2 =
 53        apply<ChargedFinalState>(event,"VZERO2");
 54      const ChargedFinalState& spd =
 55        apply<ChargedFinalState>(event,"SPD");
 56      int fwdTrig = (vz1.particles().size() > 0 ? 1 : 0);
 57      int bwdTrig = (vz2.particles().size() > 0 ? 1 : 0);
 58      int cTrig = (spd.particles().size() > 0 ? 1 : 0);
 59
 60      if (fwdTrig + bwdTrig + cTrig < 2) vetoEvent;
 61      const CentralityProjection& cent = apply<CentralityProjection>(event,"V0M");
 62      double c = cent();
 63      // Find the correct centrality histogram
 64      auto hItr = histEta.upper_bound(c);
 65      if (hItr == histEta.end()) return;
 66      // Find the correct sow.
 67      auto sItr = sow.upper_bound(c);
 68      if (sItr == sow.end()) return;
 69      sItr->second->fill();
 70
 71      // Fill the histograms.
 72      for ( const auto& p :
 73        apply<ALICE::PrimaryParticles>(event,"APRIM").particles() )
 74	if(p.abscharge() > 0) hItr->second->fill(p.eta());
 75
 76    }
 77
 78
 79    /// Normalise histograms etc., after the run
 80    void finalize() {
 81      for (int i = 0, N = centralityBins.size(); i < N; ++i)
 82        histEta[centralityBins[i]]->scaleW(1./sow[centralityBins[i]]->sumW());
 83
 84    }
 85
 86    /// @}
 87
 88
 89    /// @name Histograms
 90    /// @{
 91    vector<double> centralityBins;
 92    map<double,Histo1DPtr> histEta;
 93    map<double, CounterPtr> sow;
 94    /// @}
 95
 96
 97  };
 98
 99
100  RIVET_DECLARE_PLUGIN(ALICE_2016_I1507090);
101
102
103}