182 vector<long long> nuclpdgs;
183 vector<string> nuclnames;
184 vector< vector<long long> > nuclcontent;
186 nuclpdgs.push_back(1000010020);
187 nuclnames.push_back(
"d");
188 nuclcontent.push_back(vector<long long>());
189 nuclcontent[nuclcontent.size() - 1].push_back(2212);
190 nuclcontent[nuclcontent.size() - 1].push_back(2112);
192 nuclpdgs.push_back(1000020030);
193 nuclnames.push_back(
"He3");
194 nuclcontent.push_back(vector<long long>());
195 nuclcontent[nuclcontent.size() - 1].push_back(2212);
196 nuclcontent[nuclcontent.size() - 1].push_back(2212);
197 nuclcontent[nuclcontent.size() - 1].push_back(2112);
199 nuclpdgs.push_back(1010010030);
200 nuclnames.push_back(
"H3La");
201 nuclcontent.push_back(vector<long long>());
202 nuclcontent[nuclcontent.size() - 1].push_back(2212);
203 nuclcontent[nuclcontent.size() - 1].push_back(2112);
204 nuclcontent[nuclcontent.size() - 1].push_back(3122);
206 nuclpdgs.push_back(1000020040);
207 nuclnames.push_back(
"He4");
208 nuclcontent.push_back(vector<long long>());
209 nuclcontent[nuclcontent.size() - 1].push_back(2212);
210 nuclcontent[nuclcontent.size() - 1].push_back(2112);
211 nuclcontent[nuclcontent.size() - 1].push_back(2212);
212 nuclcontent[nuclcontent.size() - 1].push_back(2112);
214 nuclpdgs.push_back(1010000020);
215 nuclnames.push_back(
"LambdaNeutron");
216 nuclcontent.push_back(vector<long long>());
217 nuclcontent[nuclcontent.size() - 1].push_back(2112);
218 nuclcontent[nuclcontent.size() - 1].push_back(3122);
220 nuclpdgs.push_back(1010010020);
221 nuclnames.push_back(
"LambdaProton");
222 nuclcontent.push_back(vector<long long>());
223 nuclcontent[nuclcontent.size() - 1].push_back(2212);
224 nuclcontent[nuclcontent.size() - 1].push_back(3122);
226 nuclpdgs.push_back(1020000020);
227 nuclnames.push_back(
"DiLambda");
228 nuclcontent.push_back(vector<long long>());
229 nuclcontent[nuclcontent.size() - 1].push_back(3122);
230 nuclcontent[nuclcontent.size() - 1].push_back(3122);
232 nuclpdgs.push_back(1000010030);
233 nuclnames.push_back(
"Triton");
234 nuclcontent.push_back(vector<long long>());
235 nuclcontent[nuclcontent.size() - 1].push_back(2212);
236 nuclcontent[nuclcontent.size() - 1].push_back(2112);
237 nuclcontent[nuclcontent.size() - 1].push_back(2112);
239 nuclpdgs.push_back(1010020040);
240 nuclnames.push_back(
"He4La");
241 nuclcontent.push_back(vector<long long>());
242 nuclcontent[nuclcontent.size() - 1].push_back(2212);
243 nuclcontent[nuclcontent.size() - 1].push_back(2112);
244 nuclcontent[nuclcontent.size() - 1].push_back(2212);
245 nuclcontent[nuclcontent.size() - 1].push_back(3122);
247 nuclpdgs.push_back(1010010040);
248 nuclnames.push_back(
"H4La");
249 nuclcontent.push_back(vector<long long>());
250 nuclcontent[nuclcontent.size() - 1].push_back(2212);
251 nuclcontent[nuclcontent.size() - 1].push_back(2112);
252 nuclcontent[nuclcontent.size() - 1].push_back(2112);
253 nuclcontent[nuclcontent.size() - 1].push_back(3122);
255 nuclpdgs.push_back(1010020050);
256 nuclnames.push_back(
"He5La");
257 nuclcontent.push_back(vector<long long>());
258 nuclcontent[nuclcontent.size() - 1].push_back(2212);
259 nuclcontent[nuclcontent.size() - 1].push_back(2112);
260 nuclcontent[nuclcontent.size() - 1].push_back(2212);
261 nuclcontent[nuclcontent.size() - 1].push_back(2112);
262 nuclcontent[nuclcontent.size() - 1].push_back(3122);
264 nuclpdgs.push_back(1020010020);
265 nuclnames.push_back(
"XiProton");
266 nuclcontent.push_back(vector<long long>());
267 nuclcontent[nuclcontent.size() - 1].push_back(3322);
268 nuclcontent[nuclcontent.size() - 1].push_back(2212);
270 nuclpdgs.push_back(1030000020);
271 nuclnames.push_back(
"OmegaProton");
272 nuclcontent.push_back(vector<long long>());
273 nuclcontent[nuclcontent.size() - 1].push_back(3334);
274 nuclcontent[nuclcontent.size() - 1].push_back(2212);
276 nuclpdgs.push_back(1040000020);
277 nuclnames.push_back(
"DiXi0");
278 nuclcontent.push_back(vector<long long>());
279 nuclcontent[nuclcontent.size() - 1].push_back(3322);
280 nuclcontent[nuclcontent.size() - 1].push_back(3322);
283 for (
int i = 0; i < parts.
Particles().size(); ++i) {
286 for (
int j = 0; j < nuclpdgs.size(); ++j) {
287 if (part.
PdgId() == nuclpdgs[j] || part.
PdgId() == -nuclpdgs[j]) {
290 if (part.
PdgId() < 0)
292 std::vector<long long> daughters;
293 for (
int k = 0; k < nuclcontent[j].size(); ++k) {
294 daughters.push_back(sign * nuclcontent[j][k]);
360 std::vector<double> ret(x.size(), 0.);
362 std::vector<double> Chem(m_THM->ThermalModel()->Densities().size(), 0.);
363 for (
int i = 0; i < m_THM->m_EffectiveCharges.size(); ++i) {
364 for (
int is = 0; is < m_THM->m_EffectiveCharges[i].size(); ++is) {
365 Chem[i] += m_THM->m_EffectiveCharges[i][is] * x[is];
373 const double& Vtmp = x[x.size() - 1];
374 m_THM->m_ParametersCurrent.V = Vtmp;
377 const double& Ttmp = x[x.size() - 1];
378 m_THM->m_ParametersCurrent.T = Ttmp;
380 double V = m_THM->m_ParametersCurrent.V;
385 for (
int is = 0; is < m_THM->m_StableComponentsNumber; ++is) {
387 for (
int i = 0; i < m_THM->m_EffectiveCharges.size(); ++i) {
388 totdens += m_THM->m_EffectiveCharges[i][is] * model->Densities()[i];
392 ret[is] = (totdens * V) / (m_THM->m_StableDensitiesInit[is] * m_THM->m_ParametersInit.V) - 1.;
395 ret[ret.size() - 1] = (model->CalculateEntropyDensity() * V) / (m_THM->m_EntropyDensityInit * m_THM->m_ParametersInit.V) - 1.;
Class containing all information about a particle specie.
long long PdgId() const
Particle's Particle Data Group (PDG) ID number.
void SetDecayThresholdMassDynamical(double threshold)
Set the threshold mass manually for use in the eBW scheme.
const ParticleDecaysVector & Decays() const
A vector of particle's decays.
ParticleDecayType::DecayType DecayType() const
Decay type of the particle.
double ResonanceWidth() const
Particle's width at the pole mass (GeV)
bool ZeroWidthEnforced() const
Whether zero-width approximation is enforced for this particle species.
void FillCoefficientsDynamical()
Fills coefficients for mass integration in the eBW scheme.
const std::vector< ThermalParticle > & Particles() const
Returns the vector of all particle species.
std::vector< SingleDecayContribution > DecayContributionsToParticle
A vector of SingleDecayContribution where each element corresponds to a certain resonance species.
const ThermalParticle & Particle(int id) const
ThermalParticle object corresponding to particle species with a provided 0-based index.
void FillResonanceDecays()
Computes the decay contributions of decaying resonances to all particle yields.
Structure containing information about a single decay channel of a particle.