|
Rivet analyses reference
ALICE_2022_I2088201
Sigma(1385) resonance production in PbPb collisions at 5.02 TeV
Experiment: ALICE (LHC)
Inspire ID: 2088201
Status: VALIDATED
Authors:
References:
- Eur. Phys. J. C (2023) 83:351
- DOI:10.1140/epjc/s10052-023-11475-1
- arXiv: 2205.13998
- Public page: ALICE-7190
Beams: 1000822080 1000822080
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
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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214 | // -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/Beam.hh"
#include "Rivet/Projections/FinalState.hh"
#include "Rivet/Projections/UnstableParticles.hh"
#include "Rivet/Projections/SingleValueProjection.hh"
#include "Rivet/Projections/AliceCommon.hh"
#include "Rivet/Tools/AliceCommon.hh"
#include "Rivet/Projections/HepMCHeavyIon.hh"
namespace Rivet {
// @brief Sigma(1385) resonance production in PbPb collisions at 5.02 TeV
class ALICE_2022_I2088201 : public Analysis {
public:
/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(ALICE_2022_I2088201);
/// Book histograms and initialise projections before the run
void init() {
// Access the HepMC heavy ion info
declare(HepMCHeavyIon(), "HepMC");
// Declare centrality projection
declareCentrality(ALICE::V0MMultiplicity(), "ALICE_2015_PBPBCentrality", "V0M", "V0M");
// Centrality regions keeping boundaries for a certain region.
_centrality_regions.clear();
_centrality_regions = {{0., 10.}, {30., 50.}, {50., 90.}};
// Charged, primary particles with |y| < 0.5
declare(ALICE::PrimaryParticles(Cuts::absrap < 0.5 && Cuts::abscharge > 0), "APRIM");
// Resonances
declare(UnstableParticles(Cuts::absrap<0.5), "RSN");
//----------------------------------------------------------------------------------
//----------------------------------------------------------------------------------
// Loop over all histograms
for (size_t ihist = 0; ihist < NHISTOS; ++ihist) {
std::string nameCounterPbPb = "/TMP/counter." + std::to_string(ihist);
book(_counterSOW[ihist], nameCounterPbPb); // Sum of weights counter
// SigmaStarPlus+cc pt spectra in PbPb (Tables 1-3 in HEPData)
book(_hist_SigmaStarPlus[ihist], ihist+1, 1, 1);
// SigmaStarMinus+cc pt spectra in PbPb (Tables 4-6 in HEPData)
book(_hist_SigmaStarMinus[ihist], ihist+4, 1, 1);
} // end loop
book(_hist_cent, "/TMP/cent", refData(7, 1, 1));
book(_hist_ySigmaStarPlus, "/TMP/SigmaStarPlus", refData(7, 1, 1));
book(_hist_ySigmaStarMinus, "/TMP/SigmaStarMinus", refData(8, 1, 1));
book(_hist_integrated_yield_SigmaStarPlus, 7, 1, 1);
book(_hist_integrated_yield_SigmaStarMinus, 8, 1, 1);
book(_hist_mean_pt_SigmaStarPlus, 9, 1, 1);
book(_hist_mean_pt_SigmaStarMinus, 10, 1, 1);
book(_hist_integrated_yield_pion, "/TMP/integrated_yield_pion", refData( 11, 1, 1));
book(_hist_integrated_yield_SigmaStar, "/TMP/integrated_yield_SigmaStar", refData( 11, 1, 1));
book(_hist_integrated_SigmaStar_pion_ratio, 11, 1, 1);
} // end init
/// Perform the per-event analysis
void analyze(const Event& event) {
// Charged, primary particles in eta range of |eta| < 0.5
Particles chargedParticles = apply<ALICE::PrimaryParticles>(event,"APRIM").particlesByPt();
// Resonances
const UnstableParticles &rsn = apply<UnstableParticles>(event, "RSN");
const HepMCHeavyIon & hi = apply<HepMCHeavyIon>(event, "HepMC");
if (!hi.ok()) {
MSG_WARNING("HEPMC Heavy ion container needed for this analysis, "
"but not found for this event. Skipping.");
vetoEvent;
}
// Prepare centrality projection and value
const CentralityProjection& centrProj = apply<CentralityProjection>(event, "V0M");
double centr = centrProj();
// Veto event for too large centralities since those are not used
// in the analysis at all
if ( (centr < 0.) || ((centr > 10.) && (centr < 30.)) || (centr > 90.)) vetoEvent;
// Fill histograms and add weights based on centrality value
for (size_t ihist = 0; ihist < NHISTOS; ++ihist) {
const double low_edge_SigmaStarPlus = _hist_SigmaStarPlus[ihist]->xMin();
const double high_edge_SigmaStarPlus = _hist_SigmaStarPlus[ihist]->xMax();
const double low_edge_SigmaStarMinus = _hist_SigmaStarMinus[ihist]->xMin();
const double high_edge_SigmaStarMinus = _hist_SigmaStarMinus[ihist]->xMax();
if (inRange(centr, _centrality_regions[ihist].first, _centrality_regions[ihist].second)) {
_counterSOW[ihist]->fill();
_hist_cent->fillBin(ihist,1.);
for (const Particle &p : rsn.particles()) {
int pid = abs(p.pid());
if (pid==3224) {
_hist_ySigmaStarPlus->fillBin(ihist, 1.);
_hist_integrated_yield_SigmaStar->fillBin(2-ihist, 1.);
double pT = p.pT()/GeV;
_hist_mean_pt_SigmaStarPlus->fillBin(ihist, pT);
if (pT > low_edge_SigmaStarPlus && pT < high_edge_SigmaStarPlus) {
_hist_SigmaStarPlus[ihist]->fill(pT);
} // condition on pT
} // is SigmaStarPlus or cc
else if (pid==3114) {
_hist_ySigmaStarMinus->fillBin(ihist, 1.);
_hist_integrated_yield_SigmaStar->fillBin(2-ihist, 1.);
const double pT = p.pT()/GeV;
_hist_mean_pt_SigmaStarMinus->fillBin(ihist, pT);
if ( (pT > low_edge_SigmaStarMinus) && (pT < high_edge_SigmaStarMinus)) {
_hist_SigmaStarMinus[ihist]->fill(pT);
} // condition on pT
} // is SigmaStarMinus or cc
} // end loop over resonances
for (const Particle& p : chargedParticles) {
int pid = abs(p.pid());
if (pid==211) {
_hist_integrated_yield_pion->fillBin(2-ihist, 1.);
} // is charged pion
} // end loop over charged primary particles
} // centrality
} // histo loop
} // end analyze
/// Normalise histograms etc., after the run
void finalize() {
for (size_t ihist = 0; ihist < NHISTOS; ++ihist) {
if (_counterSOW[ihist]->sumW() > 0.) {
scale(_hist_SigmaStarPlus[ihist], (1. / _counterSOW[ihist]->sumW() ));
scale(_hist_SigmaStarMinus[ihist], (1. / _counterSOW[ihist]->sumW() ));
}
} // end loop
if ( _hist_cent->numEntries() > 0. ) {
divide(_hist_ySigmaStarPlus, _hist_cent, _hist_integrated_yield_SigmaStarPlus);
divide(_hist_ySigmaStarMinus, _hist_cent, _hist_integrated_yield_SigmaStarMinus);
}
scale( _hist_integrated_yield_SigmaStar, 0.5);
if ( _hist_integrated_yield_pion->numEntries() > 0. ) {
divide( _hist_integrated_yield_SigmaStar, _hist_integrated_yield_pion,
_hist_integrated_SigmaStar_pion_ratio);
}
} // end finalize
static const int NHISTOS = 3;
Histo1DPtr _hist_SigmaStarPlus[NHISTOS];
Histo1DPtr _hist_SigmaStarMinus[NHISTOS];
CounterPtr _counterSOW[NHISTOS];
Histo1DPtr _hist_cent;
Histo1DPtr _hist_ySigmaStarPlus;
Histo1DPtr _hist_ySigmaStarMinus;
Scatter2DPtr _hist_integrated_yield_SigmaStarPlus;
Scatter2DPtr _hist_integrated_yield_SigmaStarMinus;
Histo1DPtr _hist_integrated_yield_SigmaStar;
Histo1DPtr _hist_integrated_yield_pion;
Scatter2DPtr _hist_integrated_SigmaStar_pion_ratio;
Profile1DPtr _hist_mean_pt_SigmaStarPlus;
Profile1DPtr _hist_mean_pt_SigmaStarMinus;
std::vector<std::pair<double, double>> _centrality_regions;
};
RIVET_DECLARE_PLUGIN(ALICE_2022_I2088201);
}
|
|