Rivet analyses referenceALICE_2010_I880049Centrality dependence of the charged-particle multiplicity density at mid-rapidity in Pb--Pb collisions at $\sqrt{s_{\mathrm{NN}}} = 2.76$ TeVExperiment: ALICE (LHC) Inspire ID: 880049 Status: VALIDATED Authors:
Beam energies: (287040.0, 287040.0) GeV
The centrality dependence of the charged-particle multiplicity density at mid-rapidity in Pb-Pb collisions at $\sqrt{s_{NN}} = 2.76$ TeV is presented. The charged-particle density normalized per participating nucleon pair increases by about a factor 2 from peripheral (70-80%) to central (0-5%) collisions. The centrality dependence is found to be similar to that observed at lower collision energies. The data are compared with models based on different mechanisms for particle production in nuclear collisions. Source code: ALICE_2010_I880049.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/ChargedFinalState.hh"
4#include "Rivet/Tools/Cuts.hh"
5#include "Rivet/Projections/SingleValueProjection.hh"
6#include "Rivet/Analyses/AliceCommon.hh"
7#include "Rivet/Projections/HepMCHeavyIon.hh"
8
9namespace Rivet {
10
11 /// @brief ALICE PbPb at 2.76 TeV multiplicity at mid-rapidity
12 class ALICE_2010_I880049 : public Analysis {
13 public:
14
15 /// Constructor
16 RIVET_DEFAULT_ANALYSIS_CTOR(ALICE_2010_I880049);
17
18 /// @name Analysis methods
19 /// @{
20
21 /// Book histograms and initialise projections before the run
22 void init() {
23
24 // Declare centrality projection
25 declareCentrality(ALICE::V0MMultiplicity(),
26 "ALICE_2015_CENT_PBPB", "V0M", "V0M");
27
28 // Trigger projections
29 declare(ChargedFinalState((Cuts::eta > 2.8 && Cuts::eta < 5.1) &&
30 Cuts::pT > 0.1*GeV), "VZERO1");
31 declare(ChargedFinalState((Cuts::eta > -3.7 && Cuts::eta < -1.7) &&
32 Cuts::pT > 0.1*GeV), "VZERO2");
33 declare(ChargedFinalState(Cuts::abseta < 1. && Cuts::pT > 0.15*GeV),
34 "SPD");
35
36 // Charged, primary particles with |eta| < 0.5 and pT > 50 MeV
37 declare(ALICE::PrimaryParticles(Cuts::abseta < 0.5 &&
38 Cuts::pT > 50*MeV && Cuts::abscharge > 0), "APRIM");
39
40 // Access the HepMC heavy ion info
41 declare(HepMCHeavyIon(), "HepMC");
42
43 // Histograms and variables initialization
44 book(_histNchVsCentr, 1, 1, 1);
45 book(_histNpartVsCentr, 1, 1, 2);
46
47 }
48
49
50 /// Perform the per-event analysis
51 void analyze(const Event& event) {
52
53 // Charged, primary particles with at least pT = 50 MeV
54 // in eta range of |eta| < 0.5
55 Particles chargedParticles =
56 apply<ALICE::PrimaryParticles>(event,"APRIM").particles();
57
58 // Trigger projections
59 const ChargedFinalState& vz1 =
60 apply<ChargedFinalState>(event,"VZERO1");
61 const ChargedFinalState& vz2 =
62 apply<ChargedFinalState>(event,"VZERO2");
63 const ChargedFinalState& spd =
64 apply<ChargedFinalState>(event,"SPD");
65 int fwdTrig = (vz1.particles().size() > 0 ? 1 : 0);
66 int bwdTrig = (vz2.particles().size() > 0 ? 1 : 0);
67 int cTrig = (spd.particles().size() > 0 ? 1 : 0);
68
69 if (fwdTrig + bwdTrig + cTrig < 2) vetoEvent;
70
71 const CentralityProjection& centrProj =
72 apply<CentralityProjection>(event, "V0M");
73 double centr = centrProj();
74 if (centr > 80) vetoEvent;
75 // Calculate number of charged particles and fill histogram
76 double nch = chargedParticles.size();
77 _histNchVsCentr->fill(centr, nch);
78
79 // Attempt to extract Npart form GenEvent.
80 if (event.genEvent()->heavy_ion()) {
81 const HepMCHeavyIon & hi = apply<HepMCHeavyIon>(event, "HepMC");
82 _histNpartVsCentr->fill(centr, hi.Npart_proj() + hi.Npart_targ());
83 }
84 }
85
86
87 /// Normalise histograms etc., after the run
88 //void finalize() { }
89
90 /// @}
91
92
93 private:
94
95 /// @name Histograms
96 /// @{
97 Profile1DPtr _histNchVsCentr;
98 Profile1DPtr _histNpartVsCentr;
99 /// @}
100
101 };
102
103
104 RIVET_DECLARE_PLUGIN(ALICE_2010_I880049);
105
106}
|