rivet is hosted by Hepforge, IPPP Durham

## Rivet analyses reference

### ALICE_2013_I1225979

Charged particle production as function of centrality, central events only, in PbPb collisions at 2.76 TeV.
Experiment: ALICE (LHC)
Inspire ID: 1225979
Status: UNVALIDATED
Authors:
• Christian Bierlich
References:
• Phys.Lett.B726(2013)610-622
• DOI:10.1016/j.physletb.2013.09.022
• arXiv: 1304.0347
Beams: 1000822080 1000822080
Beam energies: (287040.0, 287040.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 0-5,5-10,10-20,20-30. 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_2013_I1225979.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 // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/ChargedFinalState.hh" #include "Rivet/Tools/AliceCommon.hh" #include "Rivet/Projections/AliceCommon.hh" namespace Rivet { /// @brief ALICE PbPb at 2.76 TeV eta distributions. class ALICE_2013_I1225979 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(ALICE_2013_I1225979); /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { // Initialise and register projections // Centrality projection. declareCentrality(ALICE::V0MMultiplicity(), "ALICE_2015_PBPBCentrality", "V0M","V0M"); // Projections for the 2-out-of-3 trigger. declare(ChargedFinalState( (Cuts::eta > 2.8 && Cuts::eta < 5.1) && Cuts::pT > 0.1*GeV), "VZERO1"); declare(ChargedFinalState( (Cuts::eta > -3.7 && Cuts::eta < -1.7) && Cuts::pT > 0.1*GeV), "VZERO2"); declare(ChargedFinalState(Cuts::abseta < 1. && Cuts::pT > 0.15*GeV), "SPD"); // Primary particles. declare(ALICE::PrimaryParticles(Cuts::abseta < 5.6),"APRIM"); // The centrality bins upper bin edges. centralityBins = { 5., 10., 20., 30. }; // Centrality histograms and corresponding sow counters. for (int i = 0; i < 4; ++i) { histEta[centralityBins[i]] = bookHisto1D(1, 1, i + 1); sow[centralityBins[i]] = bookCounter("sow_" + toString(i)); } } /// Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); // Trigger projections. const ChargedFinalState& vz1 = applyProjection(event,"VZERO1"); const ChargedFinalState& vz2 = applyProjection(event,"VZERO2"); const ChargedFinalState& spd = applyProjection(event,"SPD"); int fwdTrig = (vz1.particles().size() > 0 ? 1 : 0); int bwdTrig = (vz2.particles().size() > 0 ? 1 : 0); int cTrig = (spd.particles().size() > 0 ? 1 : 0); if (fwdTrig + bwdTrig + cTrig < 2) vetoEvent; // We must have direct acces to the centrality projection. const CentralityProjection& cent = apply(event,"V0M"); double c = cent(); // Find the correct centrality histogram auto hItr = histEta.upper_bound(c); if (hItr == histEta.end()) return; // Find the correct sow. auto sItr = sow.upper_bound(c); if (sItr == sow.end()) return; sItr->second->fill(weight); // Fill the histograms. for ( const auto& p : applyProjection(event,"APRIM").particles() ) if(p.abscharge() > 0) hItr->second->fill(p.eta(), weight); } /// Normalise histograms etc., after the run void finalize() { for (int i = 0; i < 4; ++i) histEta[centralityBins[i]]->scaleW(1./sow[centralityBins[i]]->sumW()); } //@} /// @name Histograms //@{ vector centralityBins; map histEta; map sow; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ALICE_2013_I1225979); }