Rivet analyses referenceALICE_2022_I2088201Sigma(1385) resonance production in PbPb collisions at 5.02 TeVExperiment: ALICE (LHC) Inspire ID: 2088201 Status: VALIDATED Authors:
Beam energies: (261196.0, 261196.0); (261196.0, 261196.0) GeV
Hadronic resonances are used to probe the hadron gas produced in the late stage of heavy-ion collisions since they decay on the same timescale, of the order of 1 to 10 fm/$c$, as the decoupling time of the system. In the hadron gas, (pseudo)elastic scatterings among the products of resonances that decayed before the kinetic freeze-out and regeneration processes counteract each other, the net effect depending on the resonance lifetime, the duration of the hadronic phase, and the hadronic cross sections at play. In this context, the $\Sigma(1385)^\pm$ particle is of particular interest as models predict that regeneration dominates over rescattering despite its relatively short lifetime of about 5.5 fm/$c$. The first measurement of the $\Sigma(1385)^\pm$ resonance production at mid-rapidity in Pb-Pb collisions at $\sqrt{s_\text{NN}}= 5.02$ TeV with the ALICE detector is presented in this Letter. The resonances are reconstructed via their hadronic decay channel, $\Lambda\pi$, as a function of the transverse momentum ($p_\text{T}$) and the collision centrality. The results are discussed in comparison with the measured yield of pions and with expectations from the statistical hadronization model as well as commonly employed event generators, including Angantyr and EPOS3 coupled to the UrQMD hadronic cascade afterburner. None of the models can describe the data. For $\Sigma(1385)^\pm$, a similar behaviour as $\text{K}^\ast(892)^{0}$ is observed in data unlike the predictions of EPOS3 with afterburner. Source code: ALICE_2022_I2088201.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/Beam.hh"
4#include "Rivet/Projections/FinalState.hh"
5#include "Rivet/Projections/UnstableParticles.hh"
6#include "Rivet/Projections/SingleValueProjection.hh"
7#include "Rivet/Projections/AliceCommon.hh"
8#include "Rivet/Tools/AliceCommon.hh"
9#include "Rivet/Projections/HepMCHeavyIon.hh"
10
11namespace Rivet {
12
13
14 // @brief Sigma(1385) resonance production in PbPb collisions at 5.02 TeV
15 class ALICE_2022_I2088201 : public Analysis {
16 public:
17
18 /// Constructor
19 RIVET_DEFAULT_ANALYSIS_CTOR(ALICE_2022_I2088201);
20
21 /// Book histograms and initialise projections before the run
22 void init() {
23
24 // Access the HepMC heavy ion info
25 declare(HepMCHeavyIon(), "HepMC");
26
27 // Declare centrality projection
28 declareCentrality(ALICE::V0MMultiplicity(), "ALICE_2015_CENT_PBPB", "V0M", "V0M");
29
30 // Charged, primary particles with |y| < 0.5
31 declare(ALICE::PrimaryParticles(Cuts::absrap < 0.5 && Cuts::abscharge > 0), "APRIM");
32
33 // Resonances
34 declare(UnstableParticles(Cuts::absrap<0.5), "RSN");
35 //----------------------------------------------------------------------------------
36
37 //----------------------------------------------------------------------------------
38 // Loop over all histograms
39 for (size_t ihist = 0; ihist < NHISTOS; ++ihist) {
40
41 std::string nameCounterPbPb = "/TMP/counter." + std::to_string(ihist);
42 book(_counterSOW[ihist], nameCounterPbPb); // Sum of weights counter
43
44 // SigmaStarPlus+cc pt spectra in PbPb (Tables 1-3 in HEPData)
45 book(_hist_SigmaStarPlus[ihist], ihist+1, 1, 1);
46
47 // SigmaStarMinus+cc pt spectra in PbPb (Tables 4-6 in HEPData)
48 book(_hist_SigmaStarMinus[ihist], ihist+4, 1, 1);
49
50 } // end loop
51
52
53 book(_hist_cent, "/TMP/cent", refData(7, 1, 1));
54 book(_hist_ySigmaStarPlus, "/TMP/SigmaStarPlus", refData(7, 1, 1));
55 book(_hist_ySigmaStarMinus, "/TMP/SigmaStarMinus", refData(8, 1, 1));
56
57 book(_hist_integrated_yield_SigmaStarPlus, 7, 1, 1);
58 book(_hist_integrated_yield_SigmaStarMinus, 8, 1, 1);
59
60 book(_hist_mean_pt_SigmaStarPlus, 9, 1, 1);
61 book(_hist_mean_pt_SigmaStarMinus, 10, 1, 1);
62
63 book(_hist_integrated_yield_pion, "/TMP/integrated_yield_pion", refData( 11, 1, 1));
64 book(_hist_integrated_yield_SigmaStar, "/TMP/integrated_yield_SigmaStar", refData( 11, 1, 1));
65 book(_hist_integrated_SigmaStar_pion_ratio, 11, 1, 1);
66
67
68 } // end init
69
70 /// Perform the per-event analysis
71 void analyze(const Event& event) {
72
73 if (int_edges.empty()) {
74 int_edges.push_back(_hist_integrated_yield_pion->bin(1).xMid());
75 int_edges.push_back(_hist_integrated_yield_pion->bin(3).xMid());
76 int_edges.push_back(_hist_integrated_yield_pion->bin(5).xMid());
77 }
78
79 // Charged, primary particles in eta range of |eta| < 0.5
80 Particles chargedParticles = apply<ALICE::PrimaryParticles>(event,"APRIM").particlesByPt();
81
82 // Resonances
83 const UnstableParticles &rsn = apply<UnstableParticles>(event, "RSN");
84
85 const HepMCHeavyIon & hi = apply<HepMCHeavyIon>(event, "HepMC");
86 if (!hi.ok()) {
87 MSG_WARNING("HEPMC Heavy ion container needed for this analysis, "
88 "but not found for this event. Skipping.");
89 vetoEvent;
90 }
91
92 // Prepare centrality projection and value
93 const CentralityProjection& centrProj = apply<CentralityProjection>(event, "V0M");
94 double centr = centrProj();
95 // Veto event for too large centralities since those are not used
96 // in the analysis at all
97 if ( (centr < 0.) || ((centr > 10.) && (centr < 30.)) || (centr > 90.)) vetoEvent;
98
99
100 // Fill histograms and add weights based on centrality value
101 size_t ihist = 0;
102 for (const auto& cent_bin : _hist_cent->bins()) {
103
104 if (cent_bin.isMasked()) continue;
105
106 const double low_edge_SigmaStarPlus = _hist_SigmaStarPlus[ihist]->xMin();
107 const double high_edge_SigmaStarPlus = _hist_SigmaStarPlus[ihist]->xMax();
108 const double low_edge_SigmaStarMinus = _hist_SigmaStarMinus[ihist]->xMin();
109 const double high_edge_SigmaStarMinus = _hist_SigmaStarMinus[ihist]->xMax();
110 const double cent_edge = cent_bin.xMid();
111
112 if (inRange(centr, cent_bin.xMin(), cent_bin.xMax())) {
113
114 _counterSOW[ihist]->fill();
115 _hist_cent->fill(cent_edge);
116
117 for (const Particle &p : rsn.particles()) {
118
119 int pid = p.abspid();
120 if (pid==3224) {
121
122 _hist_ySigmaStarPlus->fill(cent_edge);
123 _hist_integrated_yield_SigmaStar->fill(int_edges[2-ihist]);
124
125 double pT = p.pT()/GeV;
126 _hist_mean_pt_SigmaStarPlus->fill(cent_edge, pT);
127
128 if (pT > low_edge_SigmaStarPlus && pT < high_edge_SigmaStarPlus) {
129 _hist_SigmaStarPlus[ihist]->fill(pT);
130 } // condition on pT
131
132 } // is SigmaStarPlus or cc
133 else if (pid==3114) {
134
135 _hist_ySigmaStarMinus->fill(cent_edge);
136 _hist_integrated_yield_SigmaStar->fill(int_edges[2-ihist]);
137
138 const double pT = p.pT()/GeV;
139 _hist_mean_pt_SigmaStarMinus->fill(cent_edge, pT);
140
141 if ( (pT > low_edge_SigmaStarMinus) && (pT < high_edge_SigmaStarMinus)) {
142 _hist_SigmaStarMinus[ihist]->fill(pT);
143 } // condition on pT
144
145 } // is SigmaStarMinus or cc
146
147 } // end loop over resonances
148
149 for (const Particle& p : chargedParticles) {
150 if (p.abspid() == PID::PIPLUS) {
151 _hist_integrated_yield_pion->fill(int_edges[2-ihist]);
152 }
153 }
154
155 } // centrality
156 ++ihist;
157
158 } // histo loop
159
160 } // end analyze
161
162
163 /// Normalise histograms etc., after the run
164 void finalize() {
165
166 for (size_t ihist = 0; ihist < NHISTOS; ++ihist) {
167
168 if (_counterSOW[ihist]->sumW() > 0.) {
169
170 scale(_hist_SigmaStarPlus[ihist], (1. / _counterSOW[ihist]->sumW() ));
171 scale(_hist_SigmaStarMinus[ihist], (1. / _counterSOW[ihist]->sumW() ));
172
173 }
174 } // end loop
175
176 if ( _hist_cent->numEntries() > 0. ) {
177 divide(_hist_ySigmaStarPlus, _hist_cent, _hist_integrated_yield_SigmaStarPlus);
178 divide(_hist_ySigmaStarMinus, _hist_cent, _hist_integrated_yield_SigmaStarMinus);
179 }
180
181 scale( _hist_integrated_yield_SigmaStar, 0.5);
182 if ( _hist_integrated_yield_pion->numEntries() > 0. ) {
183 divide( _hist_integrated_yield_SigmaStar, _hist_integrated_yield_pion,
184 _hist_integrated_SigmaStar_pion_ratio);
185 }
186
187 } // end finalize
188
189 static const int NHISTOS = 3;
190
191 Histo1DPtr _hist_SigmaStarPlus[NHISTOS];
192 Histo1DPtr _hist_SigmaStarMinus[NHISTOS];
193 CounterPtr _counterSOW[NHISTOS];
194
195 Histo1DPtr _hist_cent;
196
197 Histo1DPtr _hist_ySigmaStarPlus;
198 Histo1DPtr _hist_ySigmaStarMinus;
199 Estimate1DPtr _hist_integrated_yield_SigmaStarPlus;
200 Estimate1DPtr _hist_integrated_yield_SigmaStarMinus;
201
202 Histo1DPtr _hist_integrated_yield_SigmaStar;
203 Histo1DPtr _hist_integrated_yield_pion;
204 Estimate1DPtr _hist_integrated_SigmaStar_pion_ratio;
205
206 Profile1DPtr _hist_mean_pt_SigmaStarPlus;
207 Profile1DPtr _hist_mean_pt_SigmaStarMinus;
208 vector<double> int_edges;
209
210 };
211
212
213 RIVET_DECLARE_PLUGIN(ALICE_2022_I2088201);
214
215}
|