Version: SMASH-3.4
parametrizations.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (c) 2013-2018,2020,2023-2024,2026
4  * SMASH Team
5  *
6  * GNU General Public License (GPLv3 or later)
7  *
8  */
9 #ifndef SRC_INCLUDE_SMASH_PARAMETRIZATIONS_H_
10 #define SRC_INCLUDE_SMASH_PARAMETRIZATIONS_H_
11 
12 #include <optional>
13 #include <unordered_map>
14 #include <utility>
15 
16 #include "particletype.h"
17 
18 /* All quantities in this file use the same units as the rest of SMASH.
19  * That is: GeV for energies and momenta, fm for distances and time, and mb for
20  * cross-sections. */
21 
22 namespace smash {
23 
24 /**
25  * Checks if supplied codes have existing parametrizations of total cross
26  * sections
27  *
28  * \param[in] pdg_a PDG code of first incoming particle
29  * \param[in] pdg_b PDG code of second incoming particle
30  * \return Whether the parametrization exists
31  */
32 bool parametrization_exists(const PdgCode& pdg_a, const PdgCode& pdg_b);
33 
34 /**
35  * total hadronic cross sections at high energies parametrized in the 2016 PDG
36  * book (http://pdg.lbl.gov/2016/reviews/rpp2016-rev-cross-section-plots.pdf)
37  *
38  * This function is a utility function called from specific parametrizations.
39  *
40  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
41  * \param[in] is_opposite_charge whether the particles being collided have
42  * opposite charges
43  * \param[in] ma mass of first particle [GeV]
44  * \param[in] mb mass of second particle [GeV]
45  * \param[in] P Pomeranchuk's constant term [mb]
46  * \param[in] R1 intensity of the first Regge pole contribution [mb]
47  * \param[in] R2 intensity of the second Regge pole contribution [mb]
48  * \return the parametrized cross-section [mb]
49  */
50 double xs_high_energy(double mandelstam_s, bool is_opposite_charge, double ma,
51  double mb, double P, double R1, double R2);
52 
53 /**
54  * pp total cross section at high energies
55  * \see xs_high_energy
56  *
57  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
58  * \return the parametrized cross-section [mb]
59  */
60 double pp_high_energy(double mandelstam_s);
61 
62 /**
63  * ppbar total cross section at high energies
64  * \see xs_high_energy
65  *
66  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
67  * \return the parametrized cross-section [mb]
68  */
69 double ppbar_high_energy(double mandelstam_s);
70 
71 /**
72  * np total cross section at high energies
73  * \see xs_high_energy
74  *
75  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
76  * \return the parametrized cross-section [mb]
77  */
78 double np_high_energy(double mandelstam_s);
79 
80 /**
81  * npbar total cross section at high energies
82  * \see xs_high_energy
83  *
84  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
85  * \return the parametrized cross-section [mb]
86  */
87 double npbar_high_energy(double mandelstam_s);
88 
89 /**
90  * pi+p total cross section at high energies
91  * \see xs_high_energy
92  *
93  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
94  * \return the parametrized cross-section [mb]
95  */
96 double piplusp_high_energy(double mandelstam_s);
97 
98 /**
99  * pi-p total cross section at high energies
100  * \see xs_high_energy
101  *
102  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
103  * \return the parametrized cross-section [mb]
104  */
105 double piminusp_high_energy(double mandelstam_s);
106 
107 /**
108  * parametrized cross-section for proton-antiproton annihilation
109  * used in the UrQMD model
110  *
111  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
112  * \return the parametrized cross-section [mb]
113  */
114 double xs_ppbar_annihilation(double mandelstam_s);
115 
116 /**
117  * Utility function called by specific other parametrizations
118  * Parametrized hard scattering cross section (with partonic scattering)
119  * This parametrization is a direct fit to cross sections in PYTHIA
120  * See \iref{Sjostrand:1987su}
121  *
122  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
123  * \param[in] xs_0 a fit parameter [mb]
124  * \param[in] e_0 a fit parameter [GeV]
125  * \param[in] lambda_pow a fit parameter
126  * \return the parametrized cross-section [mb]
127  */
128 double xs_string_hard(double mandelstam_s, double xs_0, double e_0,
129  double lambda_pow);
130 
131 /**
132  * nucleon-nucleon hard scattering cross section (with partonic scattering)
133  *
134  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
135  * \return the parametrized cross-section [mb]
136  *
137  * \see xs_string_hard
138  */
139 double NN_string_hard(double mandelstam_s);
140 
141 /**
142  * nucleon-pion hard scattering cross section (with partonic scattering)
143  *
144  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
145  * \return the parametrized cross-section [mb]
146  *
147  * \see xs_string_hard
148  */
149 double Npi_string_hard(double mandelstam_s);
150 
151 /**
152  * pion-pion hard scattering cross section (with partonic scattering)
153  *
154  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
155  * \return the parametrized cross-section [mb]
156  *
157  * \see xs_string_hard
158  */
159 double pipi_string_hard(double mandelstam_s);
160 
161 /**
162  * pi+ pi- total cross section parametrized from PDG2018, smoothed using the
163  * LOWESS algorithm. If the requested energy is out of the interpolation bounds,
164  * the hard string value is returned.
165  *
166  * \param[in] sqrts the rest frame total energy [GeV]
167  * \return the parametrized cross-section [mb]
168  */
169 double pipluspiminus_total(double sqrts);
170 
171 /**
172  * pi0 pi0 total cross section parametrized from PDG2018, smoothed using the
173  * LOWESS algorithm. If the requested energy is out of the interpolation bounds,
174  * the hard string value is returned.
175  *
176  * \param[in] sqrts the rest frame total energy [GeV]
177  * \return the parametrized cross-section [mb]
178  */
179 double pizeropizero_total(double sqrts);
180 
181 /**
182  * pi+ p total cross section parametrized from PDG2018, smoothed using the
183  * LOWESS algorithm. If the requested energy is out of the interpolation bounds,
184  * the high energy cross section is returned.
185  *
186  * \param[in] sqrts the rest frame total energy [GeV]
187  * \return the parametrized cross-section [mb]
188  */
189 double piplusp_total(double sqrts);
190 
191 /**
192  * pi+p elactic cross section parametrization.
193  *
194  * Source: GiBUU:parametrizationBarMes_HighEnergy.f90
195  * Elastic contributions from decays are not subtracted, high energy
196  * parametrization used at all energies (useful for AQM).
197  *
198  * The very low part is replaced by a flat 7.5 mb cross section; used for
199  * meson-meson interactions.
200  *
201  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
202  * \param[in] m1 the mass of the first particle [GeV]
203  * \param[in] m2 the mass of the second particle [GeV]
204  * \return the parametrized cross-section [mb]
205  */
206 double piplusp_elastic_AQM(double mandelstam_s, double m1, double m2);
207 
208 /**
209  * pi+p elastic cross section parametrization, PDG data.
210  * Source: GiBUU:parametrizationBarMes_HighEnergy.f90
211  *
212  * The parametrizations of the elastic pion+nucleon cross sections
213  * are still under tuning. The parametrizaton is employed to give a
214  * non-zero cross section at high energies. To make sure it
215  * doesn't affect the cross section at the low energies, I truncate
216  * the parametrization at p_lab = 8 GeV, which correspons to square
217  * root of s equal to 4 GeV.
218  *
219  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
220  * \return the parametrized cross-section [mb]
221  */
222 double piplusp_elastic(double mandelstam_s);
223 
224 /**
225  * pi+ p to Sigma+ K+ cross section parametrization, PDG data.
226  *
227  * The PDG data is smoothed using the LOWESS algorithm. If more than one
228  * cross section was given for one p_lab value, the corresponding cross sections
229  * are averaged.
230  */
231 double piplusp_sigmapluskplus_pdg(double mandelstam_s);
232 
233 /**
234  * pi- p total cross section parametrized from PDG2018, smoothed using the
235  * LOWESS algorithm. If the requested energy is out of the interpolation bounds,
236  * the high energy cross section is returned.
237  *
238  * \param[in] sqrts the rest frame total energy [GeV]
239  * \return the parametrized cross-section [mb]
240  */
241 double piminusp_total(double sqrts);
242 
243 /**
244  * pi-p elastic cross section parametrization
245  * Source: GiBUU:parametrizationBarMes_HighEnergy.f90
246  *
247  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
248  * \return the parametrized cross-section [mb]
249  */
250 double piminusp_elastic(double mandelstam_s);
251 
252 /**
253  * pi- p -> Lambda K0 cross section parametrization, PDG data.
254  *
255  * The PDG data is smoothed using the LOWESS algorithm. If more than one
256  * cross section was given for one p_lab value, the corresponding cross sections
257  * are averaged.
258  */
259 double piminusp_lambdak0_pdg(double mandelstam_s);
260 
261 /**
262  * pi- p -> Sigma- K+ cross section parametrization, PDG data.
263  *
264  * The PDG data is smoothed using the LOWESS algorithm. If more than one
265  * cross section was given for one p_lab value, the corresponding cross sections
266  * are averaged.
267  */
268 double piminusp_sigmaminuskplus_pdg(double mandelstam_s);
269 
270 /**
271  * pi- p -> Sigma0 K0 cross section parametrization, resonance contribution.
272  *
273  * The data is smoothed using the LOWESS algorithm. If more than one
274  * cross section was given for one sqrts value, the corresponding cross sections
275  * are averaged.
276  */
277 double piminusp_sigma0k0_res(double mandelstam_s);
278 
279 /**
280  * pp elastic cross section parametrization
281  * Source: \iref{Weil:2013mya}, eq. (44)
282  *
283  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
284  * \return the parametrized cross-section [mb]
285  */
286 double pp_elastic(double mandelstam_s);
287 
288 /**
289  * pp elastic cross section parametrization, with only the high
290  * energy part generalized to all energy regimes (used for AQM)
291  * Source: \iref{Weil:2013mya}, eq. (44)
292  *
293  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
294  * \param[in] m1 the mass of the first particle [GeV]
295  * \param[in] m2 the mass of the second particle [GeV]
296  * \return the parametrized cross-section [mb]
297  */
298 double pp_elastic_high_energy(double mandelstam_s, double m1, double m2);
299 
300 /**
301  * pp total cross section parametrization
302  * Sources:
303  * low-p: \iref{Cugnon:1996kh}
304  * highest-p: \iref{Buss:2011mx}
305  *
306  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
307  * \return the parametrized cross-section [mb]
308  */
309 double pp_total(double mandelstam_s);
310 
311 /**
312  * np elastic cross section parametrization
313  * Source: \iref{Weil:2013mya}, eq. (45)
314  *
315  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
316  * \return the parametrized cross-section [mb]
317  */
318 double np_elastic(double mandelstam_s);
319 
320 /**
321  * np total cross section parametrization
322  * Sources:
323  * low-p: \iref{Cugnon:1996kh}
324  * highest-p: \iref{Buss:2011mx}
325  *
326  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
327  * \return the parametrized cross-section [mb]
328  */
329 double np_total(double mandelstam_s);
330 
331 /**
332  * ppbar elastic cross section parametrization
333  * Source: \iref{Bass:1998ca}
334  *
335  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
336  * \return the parametrized cross-section [mb]
337  */
338 double ppbar_elastic(double mandelstam_s);
339 
340 /**
341  * ppbar total cross section parametrization
342  * Source: \iref{Bass:1998ca}
343  *
344  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
345  * \return the parametrized cross-section [mb]
346  */
347 double ppbar_total(double mandelstam_s);
348 
349 /**
350  * Deuteron pion elastic cross-section [mb] parametrized
351  * to fit pi-d elastic scattering data (the data collection
352  * was be obtained from SAID data base, gwdac.phys.gwu.edu)
353  *
354  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
355  * \return the parametrized cross-section [mb]
356  */
357 double deuteron_pion_elastic(double mandelstam_s);
358 
359 /**
360  * Deuteron nucleon elastic cross-section [mb] parametrized
361  * by \iref{Oh:2009gx}.
362  *
363  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
364  * \return the parametrized cross-section [mb]
365  */
366 double deuteron_nucleon_elastic(double mandelstam_s);
367 
368 /**
369  * Parametrization of deuteron-pion inelastic cross section
370  *
371  * \param[in] pion_kinetic_energy pion kinetic energy [GeV]
372  * in the deuteron rest frame
373  * \return cross section [mb]
374  */
375 double deuteron_pion_inelastic(double pion_kinetic_energy);
376 
377 /**
378  * Parametrization of deuteron-nucleon inelastic cross section
379  *
380  * \param[in] N_kinetic_energy Nucleon kinetic energy [GeV]
381  * in the deuteron rest frame
382  * \return cross section [mb]
383  */
384 double deuteron_nucleon_inelastic(double N_kinetic_energy);
385 
386 /**
387  * Parametrization of deuteron-antinucleon inelastic cross section
388  *
389  * \param[in] aN_kinetic_energy [GeV] Anti-nucleon kinetic energy
390  * in the deuteron rest frame
391  * \return cross section [mb]
392  */
393 double deuteron_antinucleon_inelastic(double aN_kinetic_energy);
394 
395 /**
396  * K+ p total cross section parametrization.
397  * Source: \iref{Buss:2011mx}, B.3.8
398  *
399  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
400  * \return the parametrized cross-section [mb]
401  *
402  * \note \anchor KN_note In total parametrizations of KN processes,
403  * if the interaction energy exceeds the bounds of the interpolation,
404  * the last value available is returned, which is desired behavior.
405  */
406 double kplusp_total(double mandelstam_s);
407 
408 /**
409  * K+ n total cross section parametrization.
410  * Source: \iref{Buss:2011mx}, B.3.8
411  *
412  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
413  * \return the parametrized cross-section [mb]
414  *
415  * \note See \ref KN_note "this note" about the return value.
416  */
417 double kplusn_total(double mandelstam_s);
418 
419 /**
420  * K- n total cross section parametrization.
421  * Source: \iref{Buss:2011mx}, B.3.8
422  *
423  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
424  * \return the parametrized cross-section [mb]
425  *
426  * \note See \ref KN_note "this note" about return value.
427  */
428 double kminusn_total(double mandelstam_s);
429 
430 /**
431  * K- p total cross section parametrization.
432  * Source: \iref{Buss:2011mx}, B.3.8
433  *
434  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
435  * \return the parametrized cross-section [mb]
436  *
437  * \note See \ref KN_note "this note" about return value.
438  */
439 double kminusp_total(double mandelstam_s);
440 
441 /**
442  * K+ p elastic background cross section parametrization.
443  * sigma(K+n->K+n) = sigma(K+n->K0p) = 0.5 * sigma(K+p->K+p)
444  * Source: \iref{Buss:2011mx}, B.3.8
445  *
446  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
447  * \return the parametrized cross-section [mb]
448  */
449 double kplusp_elastic_background(double mandelstam_s);
450 
451 /**
452  * K+ n elastic background cross section parametrization
453  * sigma(K+n->K+n) = sigma(K+n->K0p) = 0.5 * sigma(K+p->K+p)
454  * Source: \iref{Buss:2011mx}, B.3.8
455  *
456  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
457  * \return the parametrized cross-section [mb]
458  */
459 double kplusn_elastic_background(double mandelstam_s);
460 
461 /**
462  * K+ n charge exchange cross section parametrization.
463  * sigma(K+n->K+n) = sigma(K+n->K0p) = 0.5 * sigma(K+p->K+p)
464  * Source: \iref{Buss:2011mx}, B.3.8
465  *
466  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
467  * \return the parametrized cross-section [mb]
468  */
469 double kplusn_k0p(double mandelstam_s);
470 
471 /**
472  * K- p elastic background cross section parametrization
473  * Source: \iref{Buss:2011mx}, B.3.9
474  *
475  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
476  * \return the parametrized cross-section [mb]
477  */
478 double kminusp_elastic_background(double mandelstam_s);
479 
480 /**
481  * K- n elastic background cross section parametrization
482  * Source: \iref{Buss:2011mx}, B.3.9
483  *
484  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
485  * \return the parametrized cross-section [mb]
486  */
487 double kminusn_elastic_background(double mandelstam_s);
488 
489 /**
490  * K0 p elastic background cross section parametrization
491  * Source: \iref{Buss:2011mx}, B.3.9
492  *
493  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
494  * \return the parametrized cross-section [mb]
495  */
496 double k0p_elastic_background(double mandelstam_s);
497 
498 /**
499  * K0 n elastic background cross section parametrization
500  * Source: \iref{Buss:2011mx}, B.3.9
501  *
502  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
503  * \return the parametrized cross-section [mb]
504  */
505 double k0n_elastic_background(double mandelstam_s);
506 
507 /**
508  * Kbar0 p elastic background cross section parametrization
509  * Source: \iref{Buss:2011mx}, B.3.9
510  *
511  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
512  * \return the parametrized cross-section [mb]
513  */
514 double kbar0p_elastic_background(double mandelstam_s);
515 
516 /**
517  * Kbar0 n elastic background cross section parametrization
518  * Source: \iref{Buss:2011mx}, B.3.9
519  *
520  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
521  * \return the parametrized cross-section [mb]
522  */
523 double kbar0n_elastic_background(double mandelstam_s);
524 
525 /**
526  * K+ p inelastic background cross section parametrization
527  * Source: \iref{Buss:2011mx}, B.3.8
528  *
529  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
530  * \return the parametrized cross-section [mb]
531  */
532 double kplusp_inelastic_background(double mandelstam_s);
533 
534 /**
535  * K+ n inelastic background cross section parametrization
536  * Source: \iref{Buss:2011mx}, B.3.8
537  *
538  * This interpolates the experimental data of the total cross section and
539  * subtracts the elastic and charge exchange cross section.
540  *
541  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
542  * \return the parametrized cross-section [mb]
543  */
544 double kplusn_inelastic_background(double mandelstam_s);
545 
546 /**
547  * Hash a pair of integers.
548  *
549  * Note that symmetric pairs and permutations yield identical hashes with this
550  * implementation.
551  */
552 struct pair_hash {
553  /// Hashing is done by this operator
554  std::size_t operator()(const std::pair<uint64_t, uint64_t>& p) const {
555  auto h1 = std::hash<uint64_t>{}(p.first);
556  auto h2 = std::hash<uint64_t>{}(p.second);
557 
558  /* In our case the integers are PDG codes. We know they are different
559  * and their order is defined, so we can simply combine the hashes
560  * using XOR. Note that this yields 0 for h1 == h2. Also,
561  * std::swap(h1, h2) does not not change the final hash. */
562  assert(h1 != h2);
563  return h1 ^ h2;
564  }
565 };
566 
567 /**
568  * Calculate and store isospin ratios for K N -> K Delta reactions.
569  *
570  * The ratios are given by the squared Clebsch-Gordan coefficient for the
571  * respective reaction, divided by the sum of the squared coefficients of all
572  * possible isospin-symmetric reactions. They are used when calculating the
573  * corresponding cross sections from the parametrizations of experimental data.
574  */
576  private:
577  /// Internal representation of isospin weights once calculated
578  mutable std::unordered_map<std::pair<uint64_t, uint64_t>, double, pair_hash>
580 
581  public:
582  /// Create an empty K N -> K Delta isospin ratio storage.
584 
585  /**
586  * Return the isospin ratio of the given K N -> K Delta cross section.
587  *
588  * On the first call all ratios are calculated.
589  */
590  double get_ratio(const ParticleType& a, const ParticleType& b,
591  const ParticleType& c, const ParticleType& d) const;
592 };
593 
594 extern /*thread_local (see commit 897d0b8)*/ KaonNucleonRatios
596 
597 /**
598  * K- p <-> Kbar0 n cross section parametrization.
599  * Source: \iref{Buss:2011mx}, B.3.9
600  *
601  * \param[in] mandelstam_s the rest frame total energy squared [GeV^2]
602  * \return the parametrized cross-section [mb]
603  */
604 double kminusp_kbar0n(double mandelstam_s);
605 
606 /**
607  * K- p <-> pi- Sigma+ cross section parametrization
608  * Taken from UrQMD (\iref{Graef:2014mra}).
609  *
610  * \param[in] sqrts the rest frame total energy [GeV]
611  * \return the parametrized cross-section [mb]
612  */
613 double kminusp_piminussigmaplus(double sqrts);
614 
615 /**
616  * K- p <-> pi+ Sigma- cross section parametrization
617  * Taken from UrQMD (\iref{Graef:2014mra}).
618  *
619  * \param[in] sqrts the rest frame total energy [GeV]
620  * \return the parametrized cross-section [mb]
621  */
622 double kminusp_piplussigmaminus(double sqrts);
623 
624 /**
625  * K- p <-> pi0 Sigma0 cross section parametrization
626  * Fit to Landolt-Börnstein instead of UrQMD values
627  *
628  * \param[in] sqrts the rest frame total energy [GeV]
629  * \return the parametrized cross-section [mb]
630  */
631 double kminusp_pi0sigma0(double sqrts);
632 
633 /**
634  * K- p <-> pi0 Lambda cross section parametrization
635  * Fit to Landolt-Börnstein instead of UrQMD values
636  * \todo clarify this
637  *
638  * \param[in] sqrts the rest frame total energy [GeV]
639  * \return the parametrized cross-section [mb]
640  */
641 double kminusp_pi0lambda(double sqrts);
642 
643 /**
644  * K- n <-> pi- Sigma0 cross section parametrization
645  * Follow from the parametrization with the same strange
646  * product via isospin symmetry.
647  * K- n <-> pi0 Sigma- cross section parametrization is
648  * also handled with this.
649  *
650  * \param[in] sqrts the rest frame total energy [GeV]
651  * \return the parametrized cross-section [mb]
652  */
653 double kminusn_piminussigma0(double sqrts);
654 
655 /**
656  * K- n <-> pi- Lambda cross section parametrization
657  * Follow from the parametrization with the same strange
658  * product via isospin symmetry.
659  *
660  * \param[in] sqrts the rest frame total energy [GeV]
661  * \return the parametrized cross-section [mb]
662  */
663 double kminusn_piminuslambda(double sqrts);
664 
665 /**
666  * Lambda Lambda <-> Xi- p cross section parametrization
667  * Two hyperon exchange, based on effective model by Feng Li,
668  * as in UrQMD (\iref{Graef:2014mra}).
669  *
670  * \param[in] sqrts_sqrts0 the rest frame total energy
671  * minus threshold energy [GeV]
672  * \param[in] p_N momentum of outgoing nucleon in center of mass frame [GeV]
673  * \param[in] p_lambda momentum of incoming lambda in center of mass frame [GeV]
674  * \return the parametrized cross-section [mb]
675  */
676 double lambdalambda_ximinusp(double sqrts_sqrts0, double p_N, double p_lambda);
677 
678 /**
679  * Lambda Lambda <-> Xi0 n cross section parametrization
680  * Two hyperon exchange, based on effective model by Feng Li,
681  * as in UrQMD (\iref{Graef:2014mra}).
682  *
683  * \param[in] sqrts_sqrts0 the rest frame total energy
684  * minus threshold energy [GeV]
685  * \param[in] p_N momentum of outgoing nucleon in center of mass frame [GeV]
686  * \param[in] p_lambda momentum of incoming lambda in center of mass frame [GeV]
687  * \return the parametrized cross-section [mb]
688  */
689 double lambdalambda_xi0n(double sqrts_sqrts0, double p_N, double p_lambda);
690 
691 /**
692  * Lambda Sigma+ <-> Xi0 p cross section parametrization
693  * Two hyperon exchange, based on effective model by Feng Li,
694  * as in UrQMD (\iref{Graef:2014mra}).
695  *
696  * \param[in] sqrts_sqrts0 the rest frame total energy
697  * minus threshold energy [GeV]
698  * \return the parametrized cross-section [mb]
699  */
700 double lambdasigmaplus_xi0p(double sqrts_sqrts0);
701 
702 /**
703  * Lambda Sigma- <-> Xi- n cross section parametrization
704  * Two hyperon exchange, based on effective model by Feng Li,
705  * as in UrQMD (\iref{Graef:2014mra}).
706  *
707  * \param[in] sqrts_sqrts0 the rest frame total energy
708  * minus threshold energy [GeV]
709  * \return the parametrized cross-section [mb]
710  */
711 double lambdasigmaminus_ximinusn(double sqrts_sqrts0);
712 
713 /**
714  * Lambda Sigma0 <-> Xi- p cross section parametrization
715  * Two hyperon exchange, based on effective model by Feng Li,
716  * as in UrQMD (\iref{Graef:2014mra}).
717  *
718  * \param[in] sqrts_sqrts0 the rest frame total energy
719  * minus threshold energy [GeV]
720  * \return the parametrized cross-section [mb]
721  */
722 double lambdasigma0_ximinusp(double sqrts_sqrts0);
723 
724 /**
725  * Lambda Sigma0 <-> Xi0 n cross section parametrization
726  * Two hyperon exchange, based on effective model by Feng Li,
727  * as in UrQMD (\iref{Graef:2014mra}).
728  *
729  * \param[in] sqrts_sqrts0 the rest frame total energy
730  * minus threshold energy [GeV]
731  * \return the parametrized cross-section [mb]
732  */
733 double lambdasigma0_xi0n(double sqrts_sqrts0);
734 
735 /**
736  * Sigma0 Sigma0 <-> Xi- p cross section parametrization
737  * Two hyperon exchange, based on effective model by Feng Li,
738  * as in UrQMD (\iref{Graef:2014mra}).
739  *
740  * \param[in] sqrts_sqrts0 the rest frame total energy
741  * minus threshold energy [GeV]
742  * \return the parametrized cross-section [mb]
743  */
744 double sigma0sigma0_ximinusp(double sqrts_sqrts0);
745 
746 /**
747  * Sigma0 Sigma0 <-> Xi0 n cross section parametrization
748  * Two hyperon exchange, based on effective model by Feng Li,
749  * as in UrQMD (\iref{Graef:2014mra}).
750  *
751  * Note that there is a typo in the paper in equation (6):
752  * "Lambda Sigma0 -> Xi0 n" should be "Sigma0 Sigma0 -> Xi0 n".
753  *
754  * \param[in] sqrts_sqrts0 the rest frame total energy
755  * minus threshold energy [GeV]
756  * \return the parametrized cross-section [mb]
757  */
758 double sigma0sigma0_xi0n(double sqrts_sqrts0);
759 
760 /**
761  * Sigma+ Sigma- <-> Xi0 p cross section parametrization
762  * Two hyperon exchange, based on effective model by Feng Li,
763  * as in UrQMD (\iref{Graef:2014mra}).
764  *
765  * \param[in] sqrts_sqrts0 the rest frame total energy
766  * minus threshold energy [GeV]
767  * \return the parametrized cross-section [mb]
768  */
769 double sigmaplussigmaminus_xi0p(double sqrts_sqrts0);
770 
771 /**
772  * Sigma0 Sigma- <-> Xi- n cross section parametrization
773  * Two hyperon exchange, based on effective model by Feng Li,
774  * as in UrQMD (\iref{Graef:2014mra}).
775  *
776  * \param[in] sqrts_sqrts0 the rest frame total energy
777  * minus threshold energy [GeV]
778  * \return the parametrized cross-section [mb]
779  */
780 double sigma0sigmaminus_ximinusn(double sqrts_sqrts0);
781 
782 /**
783  * Sigma+ Sigma- <-> Xi- p cross section parametrization
784  * Two hyperon exchange, based on effective model by Feng Li,
785  * as in UrQMD (\iref{Graef:2014mra}).
786  *
787  * \param[in] sqrts_sqrts0 the rest frame total energy
788  * minus threshold energy [GeV]
789  * \return the parametrized cross-section [mb]
790  */
791 double sigmaplussigmaminus_ximinusp(double sqrts_sqrts0);
792 
793 /**
794  * Sigma+ Sigma- <-> Xi0 n cross section parametrization
795  * Two hyperon exchange, based on effective model by Feng Li,
796  * as in UrQMD (\iref{Graef:2014mra}).
797  *
798  * \param[in] sqrts_sqrts0 the rest frame total energy
799  * minus threshold energy [GeV]
800  * \return the parametrized cross-section [mb]
801  */
802 double sigmaplussigmaminus_xi0n(double sqrts_sqrts0);
803 
804 /**
805  * D⁰π⁺ elastic cross section (\iref{Abreu:2011ic}, data provided by Juan
806  * Torres-Rincon). Charge conjugated cross section D̄⁰π⁻ is also handled with
807  * this function.
808  *
809  * \param[in] sqrts the rest frame total energy [GeV]
810  * \return the parametrized cross-section [mb]
811  */
812 std::optional<double> Dzeropiplus_elastic(double sqrts);
813 
814 /**
815  * D⁰π⁺ -> D⁺π⁰ cross section (\iref{Abreu:2011ic}, data provided by Juan
816  * Torres-Rincon). Charge conjugated cross section D̄⁰π⁻ -> D⁻π⁰ is also handled
817  * with this function.
818  *
819  * \param[in] sqrts the rest frame total energy [GeV]
820  * \return the parametrized cross-section [mb]
821  */
822 double Dzeropiplus_Dpluspizero(double sqrts);
823 
824 /**
825  * D⁰π⁻ elastic cross section (\iref{Abreu:2011ic}, data provided by Juan
826  * Torres-Rincon). Charge conjugated cross section D̄⁰π⁺ is also handled with
827  * this function.
828  *
829  * \param[in] sqrts the rest frame total energy [GeV]
830  * \return the parametrized cross-section [mb]
831  */
832 std::optional<double> Dzeropiminus_elastic(double sqrts);
833 
834 /**
835  * D⁰π⁰ elastic cross section (\iref{Abreu:2011ic}, data provided by Juan
836  * Torres-Rincon). Charge conjugated cross section D̄⁰π⁰ is also handled with
837  * this function.
838  *
839  * \param[in] sqrts the rest frame total energy [GeV]
840  * \return the parametrized cross-section [mb]
841  */
842 std::optional<double> Dzeropizero_elastic(double sqrts);
843 
844 /**
845  * D⁰π⁰ -> D⁺π⁻ cross section (\iref{Abreu:2011ic}, data provided by Juan
846  * Torres-Rincon). Charge conjugated cross section D̄⁰π⁰ -> D⁻π⁺ is also handled
847  * with this function.
848  *
849  * \param[in] sqrts the rest frame total energy [GeV]
850  * \return the parametrized cross-section [mb]
851  */
852 double Dzeropizero_Dpluspiminus(double sqrts);
853 
854 /**
855  * D⁺π⁺ elastic cross section (\iref{Abreu:2011ic}, data provided by Juan
856  * Torres-Rincon). Charge conjugated cross section D⁻π⁻ is also handled with
857  * this function.
858  *
859  * \param[in] sqrts the rest frame total energy [GeV]
860  * \return the parametrized cross-section [mb]
861  */
862 std::optional<double> Dpluspiplus_elastic(double sqrts);
863 
864 /**
865  * D⁺π⁻ elastic cross section (\iref{Abreu:2011ic}, data provided by Juan
866  * Torres-Rincon). Charge conjugated cross section D⁻π⁺ is also handled with
867  * this function.
868  *
869  * \param[in] sqrts the rest frame total energy [GeV]
870  * \return the parametrized cross-section [mb]
871  */
872 std::optional<double> Dpluspiminus_elastic(double sqrts);
873 
874 /**
875  * D⁺π⁻ -> D⁰π⁰ cross section (\iref{Abreu:2011ic}, data provided by Juan
876  * Torres-Rincon). Charge conjugated cross section D⁻π⁺ -> D̄⁰π⁰ is also handled
877  * with this function.
878  *
879  * \param[in] sqrts the rest frame total energy [GeV]
880  * \return the parametrized cross-section [mb]
881  */
882 double Dpluspiminus_Dzeropizero(double sqrts);
883 
884 /**
885  * D⁺π⁰ elastic cross section (\iref{Abreu:2011ic}, data provided by Juan
886  * Torres-Rincon). Charge conjugated cross section D⁻π⁰ is also handled with
887  * this function.
888  *
889  * \param[in] sqrts the rest frame total energy [GeV]
890  * \return the parametrized cross-section [mb]
891  */
892 std::optional<double> Dpluspizero_elastic(double sqrts);
893 
894 /**
895  * D⁺π⁰ -> D⁰π⁺ cross section (\iref{Abreu:2011ic}, data provided by Juan
896  * Torres-Rincon). Charge conjugated cross section D⁻π⁰ -> D̄⁰π⁻ is also handled
897  * with this function.
898  *
899  * \param[in] sqrts the rest frame total energy [GeV]
900  * \return the parametrized cross-section [mb]
901  */
902 double Dpluspizero_Dzeropiplus(double sqrts);
903 
904 /**
905  * D⁺η elastic cross section (\iref{Tolos:2013kva}, data provided by Juan
906  * Torres-Rincon). Charge conjugated cross section D⁻η is also handled with this
907  * function.
908  *
909  * \param[in] sqrts the rest frame total energy [GeV]
910  * \return the parametrized cross-section [mb]
911  */
912 std::optional<double> Dpluseta_elastic(double sqrts);
913 
914 /**
915  * D⁰η elastic cross section (\iref{Tolos:2013kva}, data provided by Juan
916  * Torres-Rincon). Charge conjugated cross section D̄⁰η is also handled with this
917  * function.
918  *
919  * \param[in] sqrts the rest frame total energy [GeV]
920  * \return the parametrized cross-section [mb]
921  */
922 std::optional<double> Dzeroeta_elastic(double sqrts);
923 
924 /**
925  * D⁺K⁺ elastic cross section (\iref{Tolos:2013kva}, data provided by Juan
926  * Torres-Rincon). Charge conjugated cross section D⁻K⁻ is also handled with
927  * this function.
928  *
929  * \param[in] sqrts the rest frame total energy [GeV]
930  * \return the parametrized cross-section [mb]
931  */
932 std::optional<double> DplusKplus_elastic(double sqrts);
933 
934 /**
935  * D⁺K⁰ elastic cross section (\iref{Tolos:2013kva}, data provided by Juan
936  * Torres-Rincon). Charge conjugated cross section D⁻K̄⁰ is also handled with
937  * this function.
938  *
939  * \param[in] sqrts the rest frame total energy [GeV]
940  * \return the parametrized cross-section [mb]
941  */
942 std::optional<double> DplusKzero_elastic(double sqrts);
943 
944 /**
945  * D⁺K⁰ -> D⁰K⁺ cross section (\iref{Tolos:2013kva}, data provided by Juan
946  * Torres-Rincon). Charge conjugated cross section D⁻K̄⁰ -> D̄⁰K⁻ is also handled
947  * with this function.
948  *
949  * \param[in] sqrts the rest frame total energy [GeV]
950  * \return the parametrized cross-section [mb]
951  */
952 double DplusKzero_DzeroKplus(double sqrts);
953 
954 /**
955  * D⁰K⁺ -> D⁺K⁰ cross section (\iref{Tolos:2013kva}, data provided by Juan
956  * Torres-Rincon). Charge conjugated cross section D̄⁰K⁻ -> D⁻K̄⁰ is also handled
957  * with this function.
958  *
959  * \param[in] sqrts the rest frame total energy [GeV]
960  * \return the parametrized cross-section [mb]
961  */
962 double DzeroKplus_DplusKzero(double sqrts);
963 
964 /**
965  * D⁰K⁺ elastic cross section (\iref{Tolos:2013kva}, data provided by Juan
966  * Torres-Rincon). Charge conjugated cross section D̄⁰K⁻ is also handled with
967  * this function.
968  *
969  * \param[in] sqrts the rest frame total energy [GeV]
970  * \return the parametrized cross-section [mb]
971  */
972 std::optional<double> DzeroKplus_elastic(double sqrts);
973 
974 /**
975  * D⁰K⁰ elastic cross section (\iref{Tolos:2013kva}, data provided by Juan
976  * Torres-Rincon). Charge conjugated cross section D̄⁰K̄⁰ is also handled with
977  * this function.
978  *
979  * \param[in] sqrts the rest frame total energy [GeV]
980  * \return the parametrized cross-section [mb]
981  */
982 std::optional<double> DzeroKzero_elastic(double sqrts);
983 
984 /**
985  * D⁺K̄⁰ elastic cross section (\iref{Tolos:2013kva}, data provided by Juan
986  * Torres-Rincon). Charge conjugated cross section D⁻K⁰ is also handled with
987  * this function.
988  *
989  * \param[in] sqrts the rest frame total energy [GeV]
990  * \return the parametrized cross-section [mb]
991  */
992 std::optional<double> DplusKbarzero_elastic(double sqrts);
993 
994 /**
995  * D⁺K⁻ elastic cross section (\iref{Tolos:2013kva}, data provided by Juan
996  * Torres-Rincon). Charge conjugated cross section D⁻K⁺ is also handled with
997  * this function.
998  *
999  * \param[in] sqrts the rest frame total energy [GeV]
1000  * \return the parametrized cross-section [mb]
1001  */
1002 std::optional<double> DplusKminus_elastic(double sqrts);
1003 
1004 /**
1005  * D⁺K⁻ -> D⁰K̄⁰ cross section (\iref{Tolos:2013kva}, data provided by Juan
1006  * Torres-Rincon). Charge conjugated cross section D⁻K⁺ -> D̄⁰K⁰ is also handled
1007  * with this function.
1008  *
1009  * \param[in] sqrts the rest frame total energy [GeV]
1010  * \return the parametrized cross-section [mb]
1011  */
1012 double DplusKminus_DzeroKbarzero(double sqrts);
1013 
1014 /**
1015  * D⁰K̄⁰ -> D⁺K⁻ cross section (\iref{Tolos:2013kva}, data provided by Juan
1016  * Torres-Rincon). Charge conjugated cross section D̄⁰K⁰ -> D⁻K⁺ is also handled
1017  * with this function.
1018  *
1019  * \param[in] sqrts the rest frame total energy [GeV]
1020  * \return the parametrized cross-section [mb]
1021  */
1022 double DzeroKbarzero_DplusKminus(double sqrts);
1023 
1024 /**
1025  * D⁰K̄⁰ elastic cross section (\iref{Tolos:2013kva}, data provided by Juan
1026  * Torres-Rincon). Charge conjugated cross section D̄⁰K⁰ is also handled with
1027  * this function.
1028  *
1029  * \param[in] sqrts the rest frame total energy [GeV]
1030  * \return the parametrized cross-section [mb]
1031  */
1032 std::optional<double> DzeroKbarzero_elastic(double sqrts);
1033 
1034 /**
1035  * D⁰K⁻ elastic cross section (\iref{Tolos:2013kva}, data provided by Juan
1036  * Torres-Rincon). Charge conjugated cross section D̄⁰K⁺ is also handled with
1037  * this function.
1038  *
1039  * \param[in] sqrts the rest frame total energy [GeV]
1040  * \return the parametrized cross-section [mb]
1041  */
1042 std::optional<double> DzeroKminus_elastic(double sqrts);
1043 
1044 /**
1045  * D*(2010)⁺π⁺ elastic cross section (closest reference \iref{Song:2015sfa},
1046  * data provided by Juan Torres-Rincon). Charge conjugated cross section
1047  * D*(2010)⁻π⁻ is also handled with this function.
1048  *
1049  * \param[in] sqrts the rest frame total energy [GeV]
1050  * \return the parametrized cross-section [mb]
1051  */
1052 std::optional<double> Dstarpluspiplus_elastic(double sqrts);
1053 
1054 /**
1055  * D*(2010)⁺π⁻ elastic cross section (closest reference \iref{Song:2015sfa},
1056  * data provided by Juan Torres-Rincon). Charge conjugated cross section
1057  * D*(2010)⁻π⁺ is also handled with this function.
1058  *
1059  * \param[in] sqrts the rest frame total energy [GeV]
1060  * \return the parametrized cross-section [mb]
1061  */
1062 std::optional<double> Dstarpluspiminus_elastic(double sqrts);
1063 
1064 /**
1065  * D*(2010)⁺π⁻ -> D*(2007)⁰π⁰ cross section (closest reference
1066  * \iref{Song:2015sfa}, data provided by Juan Torres-Rincon). Charge conjugated
1067  * cross section D*(2010)⁻π⁺ -> D̄*(2007)⁰π⁰ is also handled with this function.
1068  *
1069  * \param[in] sqrts the rest frame total energy [GeV]
1070  * \return the parametrized cross-section [mb]
1071  */
1072 double Dstarpluspiminus_Dstarzeropizero(double sqrts);
1073 
1074 /**
1075  * D*(2010)⁺π⁰ elastic cross section (closest reference \iref{Song:2015sfa},
1076  * data provided by Juan Torres-Rincon). Charge conjugated cross section
1077  * D*(2010)⁻π⁰ is also handled with this function.
1078  *
1079  * \param[in] sqrts the rest frame total energy [GeV]
1080  * \return the parametrized cross-section [mb]
1081  */
1082 std::optional<double> Dstarpluspizero_elastic(double sqrts);
1083 
1084 /**
1085  * D*(2010)⁺π⁰ -> D*(2007)⁰π⁺ cross section (closest reference
1086  * \iref{Song:2015sfa}, data provided by Juan Torres-Rincon). Charge conjugated
1087  * cross section D*(2010)⁻π⁰ -> D̄*(2007)⁰π⁻ is also handled with this function.
1088  *
1089  * \param[in] sqrts the rest frame total energy [GeV]
1090  * \return the parametrized cross-section [mb]
1091  */
1092 double Dstarpluspizero_Dstarzeropiplus(double sqrts);
1093 
1094 /**
1095  * D*(2007)⁰π⁺ -> D*(2010)⁺π⁰ cross section (closest reference
1096  * \iref{Song:2015sfa}, data provided by Juan Torres-Rincon). Charge conjugated
1097  * cross section D̄*(2007)⁰π⁻ -> D*(2010)⁻π⁰ is also handled with this function.
1098  *
1099  * \param[in] sqrts the rest frame total energy [GeV]
1100  * \return the parametrized cross-section [mb]
1101  */
1102 double Dstarzeropiplus_Dstarpluspizero(double sqrts);
1103 
1104 /**
1105  * D*(2007)⁰π⁺ elastic cross section (closest reference \iref{Song:2015sfa},
1106  * data provided by Juan Torres-Rincon). Charge conjugated cross section
1107  * D̄*(2007)⁰π⁻ is also handled with this function.
1108  *
1109  * \param[in] sqrts the rest frame total energy [GeV]
1110  * \return the parametrized cross-section [mb]
1111  */
1112 std::optional<double> Dstarzeropiplus_elastic(double sqrts);
1113 
1114 /**
1115  * D*(2007)⁰π- elastic cross section (closest reference \iref{Song:2015sfa},
1116  * data provided by Juan Torres-Rincon). Charge conjugated cross section
1117  * D̄*(2007)⁰π⁺ is also handled with this function.
1118  *
1119  * \param[in] sqrts the rest frame total energy [GeV]
1120  * \return the parametrized cross-section [mb]
1121  */
1122 std::optional<double> Dstarzeropiminus_elastic(double sqrts);
1123 
1124 /**
1125  * D*(2007)⁰π⁰ -> D*(2010)⁺π⁻ cross section (closest reference
1126  * \iref{Song:2015sfa}, data provided by Juan Torres-Rincon). Charge conjugated
1127  * cross section D̄*(2007)⁰π⁰ -> D*(2010)⁻π⁺ is also handled with this function.
1128  *
1129  * \param[in] sqrts the rest frame total energy [GeV]
1130  * \return the parametrized cross-section [mb]
1131  */
1132 double Dstarzeropizero_Dstarpluspiminus(double sqrts);
1133 
1134 /**
1135  * D*(2007)⁰π⁰ elastic cross section (closest reference \iref{Song:2015sfa},
1136  * data provided by Juan Torres-Rincon). Charge conjugated cross section
1137  * D̄*(2007)⁰π⁰ is also handled with this function.
1138  *
1139  * \param[in] sqrts the rest frame total energy [GeV]
1140  * \return the parametrized cross-section [mb]
1141  */
1142 std::optional<double> Dstarzeropizero_elastic(double sqrts);
1143 
1144 /**
1145  * D*(2010)⁺η elastic cross section (data provided by Juan Torres-Rincon).
1146  * Charge conjugated cross section D*(2010)⁻η is also handled with this
1147  * function.
1148  *
1149  * \param[in] sqrts the rest frame total energy [GeV]
1150  * \return the parametrized cross-section [mb]
1151  */
1152 std::optional<double> Dstarpluseta_elastic(double sqrts);
1153 
1154 /**
1155  * D*(2007)⁰η elastic cross section (data provided by Juan Torres-Rincon).
1156  * Charge conjugated cross section D̄*(2007)⁰η is also handled with this
1157  * function.
1158  *
1159  * \param[in] sqrts the rest frame total energy [GeV]
1160  * \return the parametrized cross-section [mb]
1161  */
1162 std::optional<double> Dstarzeroeta_elastic(double sqrts);
1163 
1164 /**
1165  * D*(2010)⁺K⁺ elastic cross section (closest reference \iref{Song:2015sfa},
1166  * data provided by Juan Torres-Rincon). Charge conjugated cross section
1167  * D*(2010)⁻K⁻ is also handled with this function.
1168  *
1169  * \param[in] sqrts the rest frame total energy [GeV]
1170  * \return the parametrized cross-section [mb]
1171  */
1172 std::optional<double> DstarplusKplus_elastic(double sqrts);
1173 
1174 /**
1175  * D*(2010)⁺K⁰ elastic cross section (closest reference \iref{Song:2015sfa},
1176  * data provided by Juan Torres-Rincon). Charge conjugated cross section
1177  * D*(2010)⁻K̄⁰ is also handled with this function.
1178  *
1179  * \param[in] sqrts the rest frame total energy [GeV]
1180  * \return the parametrized cross-section [mb]
1181  */
1182 std::optional<double> DstarplusKzero_elastic(double sqrts);
1183 
1184 /**
1185  * D*(2010)⁺K⁰ -> D*(2007)⁰K⁺ cross section (closest reference
1186  * \iref{Song:2015sfa}, data provided by Juan Torres-Rincon). Charge conjugated
1187  * cross section D*(2010)⁻K̄⁰ -> D̄*(2007)⁰K⁻ is also handled with this function.
1188  *
1189  * \param[in] sqrts the rest frame total energy [GeV]
1190  * \return the parametrized cross-section [mb]
1191  */
1192 double DstarplusKzero_DstarzeroKplus(double sqrts);
1193 
1194 /**
1195  * D*(2007)⁰K⁺ -> D*(2010)⁺K⁰ cross section (closest reference
1196  * \iref{Song:2015sfa}, data provided by Juan Torres-Rincon). Charge conjugated
1197  * cross section D̄*(2007)⁰K⁻ -> D*(2010)⁻K̄⁰ is also handled with this function.
1198  *
1199  * \param[in] sqrts the rest frame total energy [GeV]
1200  * \return the parametrized cross-section [mb]
1201  */
1202 double DstarzeroKplus_DstarplusKzero(double sqrts);
1203 
1204 /**
1205  * D*(2007)⁰K⁺ elastic cross section (closest reference \iref{Song:2015sfa},
1206  * data provided by Juan Torres-Rincon). Charge conjugated cross section
1207  * D̄*(2007)⁰K⁻ is also handled with this function.
1208  *
1209  * \param[in] sqrts the rest frame total energy [GeV]
1210  * \return the parametrized cross-section [mb]
1211  */
1212 std::optional<double> DstarzeroKplus_elastic(double sqrts);
1213 
1214 /**
1215  * D*(2007)⁰K⁰ elastic cross section (closest reference \iref{Song:2015sfa},
1216  * data provided by Juan Torres-Rincon). Charge conjugated cross section
1217  * D̄*(2007)⁰K̄⁰ is also handled with this function.
1218  *
1219  * \param[in] sqrts the rest frame total energy [GeV]
1220  * \return the parametrized cross-section [mb]
1221  */
1222 std::optional<double> DstarzeroKzero_elastic(double sqrts);
1223 
1224 /**
1225  * D*(2010)⁺K̄⁰ elastic cross section (closest reference \iref{Song:2015sfa},
1226  * data provided by Juan Torres-Rincon). Charge conjugated cross section
1227  * D*(2010)⁻K⁰ is also handled with this function.
1228  *
1229  * \param[in] sqrts the rest frame total energy [GeV]
1230  * \return the parametrized cross-section [mb]
1231  */
1232 std::optional<double> DstarplusKbarzero_elastic(double sqrts);
1233 
1234 /**
1235  * D*(2010)⁺K⁻ elastic cross section (closest reference \iref{Song:2015sfa},
1236  * data provided by Juan Torres-Rincon). Charge conjugated cross section
1237  * D*(2010)⁻K⁺ is also handled with this function.
1238  *
1239  * \param[in] sqrts the rest frame total energy [GeV]
1240  * \return the parametrized cross-section [mb]
1241  */
1242 std::optional<double> DstarplusKminus_elastic(double sqrts);
1243 
1244 /**
1245  * D*(2010)⁺K⁻ -> D*(2007)⁰K̄⁰ cross section (\iref{Tolos:2013kva}, data provided
1246  * by Juan Torres-Rincon). Charge conjugated cross section
1247  * D*(2010)⁻K⁺ -> D̄*(2007)⁰K⁰ is also handled with this function.
1248  *
1249  * \param[in] sqrts the rest frame total energy [GeV]
1250  * \return the parametrized cross-section [mb]
1251  */
1252 double DstarplusKminus_DstarzeroKbarzero(double sqrts);
1253 
1254 /**
1255  * D*(2007)⁰K̄⁰ -> D*(2010)⁺K⁻ cross section (\iref{Tolos:2013kva}, data provided
1256  * by Juan Torres-Rincon). Charge conjugated cross section
1257  * D̄*(2007)⁰K⁰ -> D*(2010)⁻K⁺ is also handled with this function.
1258  *
1259  * \param[in] sqrts the rest frame total energy [GeV]
1260  * \return the parametrized cross-section [mb]
1261  */
1262 double DstarzeroKbarzero_DstarplusKminus(double sqrts);
1263 
1264 /**
1265  * D*(2007)⁰K̄⁰ elastic cross section (closest reference \iref{Song:2015sfa},
1266  * data provided by Juan Torres-Rincon). Charge conjugated cross section
1267  * D̄*(2007)⁰K⁰ is also handled with this function.
1268  *
1269  * \param[in] sqrts the rest frame total energy [GeV]
1270  * \return the parametrized cross-section [mb]
1271  */
1272 std::optional<double> DstarzeroKbarzero_elastic(double sqrts);
1273 
1274 /**
1275  * D*(2007)⁰K⁻ elastic cross section (closest reference \iref{Song:2015sfa},
1276  * data provided by Juan Torres-Rincon). Charge conjugated cross section
1277  * D̄*(2007)⁰K⁺ is also handled with this function.
1278  *
1279  * \param[in] sqrts the rest frame total energy [GeV]
1280  * \return the parametrized cross-section [mb]
1281  */
1282 std::optional<double> DstarzeroKminus_elastic(double sqrts);
1283 
1284 /**
1285  * D⁺n elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1286  * Torres-Rincon. Charge conjugated cross section D⁻n̄ is also handled with this
1287  * function.
1288  *
1289  * \param[in] sqrts the rest frame total energy [GeV]
1290  * \return the parametrized cross-section [mb]
1291  */
1292 std::optional<double> Dplusn_elastic(double sqrts);
1293 
1294 /**
1295  * D⁺n -> D⁰p cross section (\iref{Tolos:2013kva}), data provided by Juan
1296  * Torres-Rincon. Charge conjugated cross section D⁻n̄ -> D̄⁰p̄ is also handled
1297  * with this function.
1298  *
1299  * \param[in] sqrts the rest frame total energy [GeV]
1300  * \return the parametrized cross-section [mb]
1301  */
1302 double Dplusn_Dzerop(double sqrts);
1303 
1304 /**
1305  * D⁺p elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1306  * Torres-Rincon. Charge conjugated cross section D⁻p̄ is also handled with this
1307  * function.
1308  *
1309  * \param[in] sqrts the rest frame total energy [GeV]
1310  * \return the parametrized cross-section [mb]
1311  */
1312 std::optional<double> Dplusp_elastic(double sqrts);
1313 
1314 /**
1315  * D⁰n elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1316  * Torres-Rincon. Charge conjugated cross section D̄⁰n̄ is also handled with this
1317  * function.
1318  *
1319  * \param[in] sqrts the rest frame total energy [GeV]
1320  * \return the parametrized cross-section [mb]
1321  */
1322 std::optional<double> Dzeron_elastic(double sqrts);
1323 
1324 /**
1325  * D⁰p -> D⁺n cross section (\iref{Tolos:2013kva}), data provided by Juan
1326  * Torres-Rincon. Charge conjugated cross section D̄⁰p̄ -> D⁻n̄ is also handled
1327  * with this function.
1328  *
1329  * \param[in] sqrts the rest frame total energy [GeV]
1330  * \return the parametrized cross-section [mb]
1331  */
1332 double Dzerop_Dplusn(double sqrts);
1333 
1334 /**
1335  * D⁰p elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1336  * Torres-Rincon. Charge conjugated cross section D̄⁰p̄ is also handled with this
1337  * function.
1338  *
1339  * \param[in] sqrts the rest frame total energy [GeV]
1340  * \return the parametrized cross-section [mb]
1341  */
1342 std::optional<double> Dzerop_elastic(double sqrts);
1343 
1344 /**
1345  * D⁻n elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1346  * Torres-Rincon. Charge conjugated cross section D⁺n̄ is also handled with this
1347  * function.
1348  *
1349  * \param[in] sqrts the rest frame total energy [GeV]
1350  * \return the parametrized cross-section [mb]
1351  */
1352 std::optional<double> Dminusn_elastic(double sqrts);
1353 
1354 /**
1355  * D⁻p elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1356  * Torres-Rincon. Charge conjugated cross section D⁺p̄ is also handled with this
1357  * function.
1358  *
1359  * \param[in] sqrts the rest frame total energy [GeV]
1360  * \return the parametrized cross-section [mb]
1361  */
1362 std::optional<double> Dminusp_elastic(double sqrts);
1363 
1364 /**
1365  * D⁻p -> D̄⁰n cross section (\iref{Tolos:2013kva}), data provided by Juan
1366  * Torres-Rincon. Charge conjugated cross section D⁺p̄ -> D⁰n̄ is also handled
1367  * with this function.
1368  *
1369  * \param[in] sqrts the rest frame total energy [GeV]
1370  * \return the parametrized cross-section [mb]
1371  */
1372 double Dminusp_Dbarzeron(double sqrts);
1373 
1374 /**
1375  * D̄⁰n -> D⁻p cross section (\iref{Tolos:2013kva}), data provided by Juan
1376  * Torres-Rincon. Charge conjugated cross section D⁰n̄ -> D⁺p̄ is also handled
1377  * with this function.
1378  *
1379  * \param[in] sqrts the rest frame total energy [GeV]
1380  * \return the parametrized cross-section [mb]
1381  */
1382 double Dbarzeron_Dminusp(double sqrts);
1383 
1384 /**
1385  * D̄⁰n elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1386  * Torres-Rincon. Charge conjugated cross section D⁰n̄ is also handled with this
1387  * function.
1388  *
1389  * \param[in] sqrts the rest frame total energy [GeV]
1390  * \return the parametrized cross-section [mb]
1391  */
1392 std::optional<double> Dbarzeron_elastic(double sqrts);
1393 
1394 /**
1395  * D̄⁰p elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1396  * Torres-Rincon. Charge conjugated cross section D⁰p̄ is also handled with this
1397  * function.
1398  *
1399  * \param[in] sqrts the rest frame total energy [GeV]
1400  * \return the parametrized cross-section [mb]
1401  */
1402 std::optional<double> Dbarzerop_elastic(double sqrts);
1403 
1404 /**
1405  * D⁺Δ⁺ elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1406  * Torres-Rincon. Charge conjugated cross section D⁻Δ̅⁻ is also handled with this
1407  * function.
1408  *
1409  * \param[in] sqrts the rest frame total energy [GeV]
1410  * \return the parametrized cross-section [mb]
1411  */
1412 std::optional<double> DplusDeltaplus_elastic(double sqrts);
1413 
1414 /**
1415  * D⁺Δ⁺ -> D⁰Δ⁺⁺ cross section (\iref{Tolos:2013kva}), data provided by Juan
1416  * Torres-Rincon. Charge conjugated cross section D⁻Δ̅⁻ -> D̄⁰Δ̅⁻⁻ is also handled
1417  * with this function.
1418  *
1419  * \param[in] sqrts the rest frame total energy [GeV]
1420  * \return the parametrized cross-section [mb]
1421  */
1422 double DplusDeltaplus_DzeroDeltaplusplus(double sqrts);
1423 
1424 /**
1425  * D⁺Δ⁺⁺ elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1426  * Torres-Rincon. Charge conjugated cross section D⁻Δ̅⁻⁻ is also handled with
1427  * this function.
1428  *
1429  * \param[in] sqrts the rest frame total energy [GeV]
1430  * \return the parametrized cross-section [mb]
1431  */
1432 std::optional<double> DplusDeltaplusplus_elastic(double sqrts);
1433 
1434 /**
1435  * D⁺Δ⁻ elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1436  * Torres-Rincon. Charge conjugated cross section D⁻Δ̅⁺ is also handled with this
1437  * function.
1438  *
1439  * \param[in] sqrts the rest frame total energy [GeV]
1440  * \return the parametrized cross-section [mb]
1441  */
1442 std::optional<double> DplusDeltaminus_elastic(double sqrts);
1443 
1444 /**
1445  * D⁺Δ⁻ -> D⁰Δ⁰ cross section (\iref{Tolos:2013kva}), data provided by Juan
1446  * Torres-Rincon. Charge conjugated cross section D⁻Δ̅⁺ -> D̄⁰Δ̅⁰ is also handled
1447  * with this function.
1448  *
1449  * \param[in] sqrts the rest frame total energy [GeV]
1450  * \return the parametrized cross-section [mb]
1451  */
1452 double DplusDeltaminus_DzeroDeltazero(double sqrts);
1453 
1454 /**
1455  * D⁺Δ⁰ elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1456  * Torres-Rincon. Charge conjugated cross section D⁻Δ̅⁰ is also handled with this
1457  * function.
1458  *
1459  * \param[in] sqrts the rest frame total energy [GeV]
1460  * \return the parametrized cross-section [mb]
1461  */
1462 std::optional<double> DplusDeltazero_elastic(double sqrts);
1463 
1464 /**
1465  * D⁺Δ⁰ -> D⁰Δ⁺ cross section (\iref{Tolos:2013kva}), data provided by Juan
1466  * Torres-Rincon. Charge conjugated cross section D⁻Δ̅⁰ -> D̄⁰Δ̅⁻ is also handled
1467  * with this function.
1468  *
1469  * \param[in] sqrts the rest frame total energy [GeV]
1470  * \return the parametrized cross-section [mb]
1471  */
1472 double DplusDeltazero_DzeroDeltaplus(double sqrts);
1473 
1474 /**
1475  * D⁰Δ⁺ -> D⁺Δ⁰ cross section (\iref{Tolos:2013kva}), data provided by Juan
1476  * Torres-Rincon. Charge conjugated cross section D̄⁰Δ̅⁻ -> D⁻Δ̅⁰ is also handled
1477  * with this function.
1478  *
1479  * \param[in] sqrts the rest frame total energy [GeV]
1480  * \return the parametrized cross-section [mb]
1481  */
1482 double DzeroDeltaplus_DplusDeltazero(double sqrts);
1483 
1484 /**
1485  * D⁰Δ⁺ elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1486  * Torres-Rincon. Charge conjugated cross section D̄⁰Δ̅⁻ is also handled with this
1487  * function.
1488  *
1489  * \param[in] sqrts the rest frame total energy [GeV]
1490  * \return the parametrized cross-section [mb]
1491  */
1492 std::optional<double> DzeroDeltaplus_elastic(double sqrts);
1493 
1494 /**
1495  * D⁰Δ⁺⁺ -> D⁺Δ⁺ cross section (\iref{Tolos:2013kva}), data provided by Juan
1496  * Torres-Rincon. Charge conjugated cross section D̄⁰Δ̅⁻⁻ -> D⁻Δ̅⁻ is also handled
1497  * with this function.
1498  *
1499  * \param[in] sqrts the rest frame total energy [GeV]
1500  * \return the parametrized cross-section [mb]
1501  */
1502 double DzeroDeltaplusplus_DplusDeltaplus(double sqrts);
1503 
1504 /**
1505  * D⁰Δ⁺⁺ elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1506  * Torres-Rincon. Charge conjugated cross section D̄⁰Δ̅⁻⁻ is also handled with
1507  * this function.
1508  *
1509  * \param[in] sqrts the rest frame total energy [GeV]
1510  * \return the parametrized cross-section [mb]
1511  */
1512 std::optional<double> DzeroDeltaplusplus_elastic(double sqrts);
1513 
1514 /**
1515  * D⁰Δ⁻ elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1516  * Torres-Rincon. Charge conjugated cross section D̄⁰Δ̅⁺ is also handled with this
1517  * function.
1518  *
1519  * \param[in] sqrts the rest frame total energy [GeV]
1520  * \return the parametrized cross-section [mb]
1521  */
1522 std::optional<double> DzeroDeltaminus_elastic(double sqrts);
1523 
1524 /**
1525  * D⁰Δ⁰ -> D⁺Δ⁻ cross section (\iref{Tolos:2013kva}), data provided by Juan
1526  * Torres-Rincon. Charge conjugated cross section D̄⁰Δ̅⁰ -> D⁻Δ̅⁺ is also handled
1527  * with this function.
1528  *
1529  * \param[in] sqrts the rest frame total energy [GeV]
1530  * \return the parametrized cross-section [mb]
1531  */
1532 double DzeroDeltazero_DplusDeltaminus(double sqrts);
1533 
1534 /**
1535  * D⁰Δ⁰ elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1536  * Torres-Rincon. Charge conjugated cross section D̄⁰Δ̅⁰ is also handled with this
1537  * function.
1538  *
1539  * \param[in] sqrts the rest frame total energy [GeV]
1540  * \return the parametrized cross-section [mb]
1541  */
1542 std::optional<double> DzeroDeltazero_elastic(double sqrts);
1543 
1544 /**
1545  * D⁻Δ⁺ elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1546  * Torres-Rincon. Charge conjugated cross section D⁺Δ̅⁻ is also handled with this
1547  * function.
1548  *
1549  * \param[in] sqrts the rest frame total energy [GeV]
1550  * \return the parametrized cross-section [mb]
1551  */
1552 std::optional<double> DminusDeltaplus_elastic(double sqrts);
1553 
1554 /**
1555  * D⁻Δ⁺ -> D̄⁰Δ⁰ cross section (\iref{Tolos:2013kva}), data provided by Juan
1556  * Torres-Rincon. Charge conjugated cross section D⁺Δ̅⁻ -> D⁰Δ̅⁰ is also handled
1557  * with this function.
1558  *
1559  * \param[in] sqrts the rest frame total energy [GeV]
1560  * \return the parametrized cross-section [mb]
1561  */
1562 double DminusDeltaplus_DbarzeroDeltazero(double sqrts);
1563 
1564 /**
1565  * D⁻Δ⁺⁺ elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1566  * Torres-Rincon. Charge conjugated cross section D⁺Δ̅⁻⁻ is also handled with
1567  * this function.
1568  *
1569  * \param[in] sqrts the rest frame total energy [GeV]
1570  * \return the parametrized cross-section [mb]
1571  */
1572 std::optional<double> DminusDeltaplusplus_elastic(double sqrts);
1573 
1574 /**
1575  * D⁻Δ⁺⁺ -> D̄⁰Δ⁺ cross section (\iref{Tolos:2013kva}), data provided by Juan
1576  * Torres-Rincon. Charge conjugated cross section D⁺Δ̅⁻⁻ -> D⁰Δ̅⁻ is also handled
1577  * with this function.
1578  *
1579  * \param[in] sqrts the rest frame total energy [GeV]
1580  * \return the parametrized cross-section [mb]
1581  */
1582 double DminusDeltaplusplus_DbarzeroDeltaplus(double sqrts);
1583 
1584 /**
1585  * D⁻Δ⁻ elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1586  * Torres-Rincon. Charge conjugated cross section D⁺Δ̅⁺ is also handled with this
1587  * function.
1588  *
1589  * \param[in] sqrts the rest frame total energy [GeV]
1590  * \return the parametrized cross-section [mb]
1591  */
1592 std::optional<double> DminusDeltaminus_elastic(double sqrts);
1593 
1594 /**
1595  * D⁻Δ⁰ elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1596  * Torres-Rincon. Charge conjugated cross section D⁺Δ̅⁰ is also handled with this
1597  * function.
1598  *
1599  * \param[in] sqrts the rest frame total energy [GeV]
1600  * \return the parametrized cross-section [mb]
1601  */
1602 std::optional<double> DminusDeltazero_elastic(double sqrts);
1603 
1604 /**
1605  * D⁻Δ⁰ -> D̄⁰Δ⁻ cross section (\iref{Tolos:2013kva}), data provided by Juan
1606  * Torres-Rincon. Charge conjugated cross section D⁺Δ̅⁰ -> D⁰Δ̅⁺ is also handled
1607  * with this function.
1608  *
1609  * \param[in] sqrts the rest frame total energy [GeV]
1610  * \return the parametrized cross-section [mb]
1611  */
1612 double DminusDeltazero_DbarzeroDeltaminus(double sqrts);
1613 
1614 /**
1615  * D̄⁰Δ⁺ -> D⁻Δ⁺⁺ cross section (\iref{Tolos:2013kva}), data provided by Juan
1616  * Torres-Rincon. Charge conjugated cross section D⁰Δ̅⁻ -> D⁺Δ̅⁻⁻ is also handled
1617  * with this function.
1618  *
1619  * \param[in] sqrts the rest frame total energy [GeV]
1620  * \return the parametrized cross-section [mb]
1621  */
1622 double DbarzeroDeltaplus_DminusDeltaplusplus(double sqrts);
1623 
1624 /**
1625  * D̄⁰Δ⁺ elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1626  * Torres-Rincon. Charge conjugated cross section D⁰Δ̅⁻ is also handled with this
1627  * function.
1628  *
1629  * \param[in] sqrts the rest frame total energy [GeV]
1630  * \return the parametrized cross-section [mb]
1631  */
1632 std::optional<double> DbarzeroDeltaplus_elastic(double sqrts);
1633 
1634 /**
1635  * D̄⁰Δ⁺⁺ elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1636  * Torres-Rincon. Charge conjugated cross section D⁰Δ̅⁻⁻ is also handled with
1637  * this function.
1638  *
1639  * \param[in] sqrts the rest frame total energy [GeV]
1640  * \return the parametrized cross-section [mb]
1641  */
1642 std::optional<double> DbarzeroDeltaplusplus_elastic(double sqrts);
1643 
1644 /**
1645  * D̄⁰Δ⁻ -> D⁻Δ⁰ cross section (\iref{Tolos:2013kva}), data provided by Juan
1646  * Torres-Rincon. Charge conjugated cross section D⁰Δ̅⁺ -> D⁺Δ̅⁰ is also handled
1647  * with this function.
1648  *
1649  * \param[in] sqrts the rest frame total energy [GeV]
1650  * \return the parametrized cross-section [mb]
1651  */
1652 double DbarzeroDeltaminus_DminusDeltazero(double sqrts);
1653 
1654 /**
1655  * D̄⁰Δ⁻ elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1656  * Torres-Rincon. Charge conjugated cross section D⁰Δ̅⁺ is also handled with this
1657  * function.
1658  *
1659  * \param[in] sqrts the rest frame total energy [GeV]
1660  * \return the parametrized cross-section [mb]
1661  */
1662 std::optional<double> DbarzeroDeltaminus_elastic(double sqrts);
1663 
1664 /**
1665  * D̄⁰Δ⁰ -> D⁻Δ⁺ cross section (\iref{Tolos:2013kva}), data provided by Juan
1666  * Torres-Rincon. Charge conjugated cross section D⁰Δ̅⁰ -> D⁺Δ̅⁻ is also handled
1667  * with this function.
1668  *
1669  * \param[in] sqrts the rest frame total energy [GeV]
1670  * \return the parametrized cross-section [mb]
1671  */
1672 double DbarzeroDeltazero_DminusDeltaplus(double sqrts);
1673 
1674 /**
1675  * D̄⁰Δ⁰ elastic cross section (\iref{Tolos:2013kva}), data provided by Juan
1676  * Torres-Rincon. Charge conjugated cross section D⁰Δ̅⁰ is also handled with this
1677  * function.
1678  *
1679  * \param[in] sqrts the rest frame total energy [GeV]
1680  * \return the parametrized cross-section [mb]
1681  */
1682 std::optional<double> DbarzeroDeltazero_elastic(double sqrts);
1683 
1684 } // namespace smash
1685 
1686 #endif // SRC_INCLUDE_SMASH_PARAMETRIZATIONS_H_
Calculate and store isospin ratios for K N -> K Delta reactions.
std::unordered_map< std::pair< uint64_t, uint64_t >, double, pair_hash > ratios_
Internal representation of isospin weights once calculated.
double get_ratio(const ParticleType &a, const ParticleType &b, const ParticleType &c, const ParticleType &d) const
Return the isospin ratio of the given K N -> K Delta cross section.
KaonNucleonRatios()
Create an empty K N -> K Delta isospin ratio storage.
constexpr int p
Proton.
constexpr int h1
h₁(1170).
Definition: action.h:24
double kplusn_k0p(double mandelstam_s)
K+ n charge exchange cross section parametrization.
std::optional< double > Dzeron_elastic(double sqrts)
D⁰n elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
std::optional< double > Dplusn_elastic(double sqrts)
D⁺n elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
bool parametrization_exists(const PdgCode &pdg_a, const PdgCode &pdg_b)
Checks if supplied codes have existing parametrizations of total cross sections.
double kplusp_total(double mandelstam_s)
K+ p total cross section parametrization.
std::optional< double > DplusKzero_elastic(double sqrts)
D⁺K⁰ elastic cross section (Tolos:2013kva , data provided by Juan Torres-Rincon).
double deuteron_pion_inelastic(double pion_kinetic_energy)
Parametrization of deuteron-pion inelastic cross section.
double DzeroDeltazero_DplusDeltaminus(double sqrts)
D⁰Δ⁰ -> D⁺Δ⁻ cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
std::optional< double > DstarzeroKzero_elastic(double sqrts)
D*(2007)⁰K⁰ elastic cross section (closest reference Song:2015sfa , data provided by Juan Torres-Rinc...
double pizeropizero_total(double sqrts)
pi0 pi0 total cross section parametrized from PDG2018, smoothed using the LOWESS algorithm.
double kminusp_pi0lambda(double sqrts)
K- p <-> pi0 Lambda cross section parametrization Fit to Landolt-Börnstein instead of UrQMD values.
double Dpluspiminus_Dzeropizero(double sqrts)
D⁺π⁻ -> D⁰π⁰ cross section (Abreu:2011ic , data provided by Juan Torres-Rincon).
double Dstarzeropiplus_Dstarpluspizero(double sqrts)
D*(2007)⁰π⁺ -> D*(2010)⁺π⁰ cross section (closest reference Song:2015sfa , data provided by Juan Torr...
double DplusDeltaplus_DzeroDeltaplusplus(double sqrts)
D⁺Δ⁺ -> D⁰Δ⁺⁺ cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double Dminusp_Dbarzeron(double sqrts)
D⁻p -> D̄⁰n cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double pipluspiminus_total(double sqrts)
pi+ pi- total cross section parametrized from PDG2018, smoothed using the LOWESS algorithm.
double piminusp_sigma0k0_res(double mandelstam_s)
pi- p -> Sigma0 K0 cross section parametrization, resonance contribution.
double ppbar_total(double mandelstam_s)
ppbar total cross section parametrization Source: Bass:1998ca
double np_total(double mandelstam_s)
np total cross section parametrization Sources: low-p: Cugnon:1996kh highest-p: Buss:2011mx
double Dstarzeropizero_Dstarpluspiminus(double sqrts)
D*(2007)⁰π⁰ -> D*(2010)⁺π⁻ cross section (closest reference Song:2015sfa , data provided by Juan Torr...
double DstarplusKzero_DstarzeroKplus(double sqrts)
D*(2010)⁺K⁰ -> D*(2007)⁰K⁺ cross section (closest reference Song:2015sfa , data provided by Juan Torr...
double DstarplusKminus_DstarzeroKbarzero(double sqrts)
D*(2010)⁺K⁻ -> D*(2007)⁰K̄⁰ cross section (Tolos:2013kva , data provided by Juan Torres-Rincon).
double piminusp_elastic(double mandelstam_s)
pi-p elastic cross section parametrization Source: GiBUU:parametrizationBarMes_HighEnergy....
std::optional< double > Dbarzeron_elastic(double sqrts)
D̄⁰n elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
std::optional< double > DzeroDeltaplus_elastic(double sqrts)
D⁰Δ⁺ elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double Dpluspizero_Dzeropiplus(double sqrts)
D⁺π⁰ -> D⁰π⁺ cross section (Abreu:2011ic , data provided by Juan Torres-Rincon).
double npbar_high_energy(double mandelstam_s)
npbar total cross section at high energies
double Dstarpluspiminus_Dstarzeropizero(double sqrts)
D*(2010)⁺π⁻ -> D*(2007)⁰π⁰ cross section (closest reference Song:2015sfa , data provided by Juan Torr...
double kminusn_piminussigma0(double sqrts)
K- n <-> pi- Sigma0 cross section parametrization Follow from the parametrization with the same stran...
double DzeroKbarzero_DplusKminus(double sqrts)
D⁰K̄⁰ -> D⁺K⁻ cross section (Tolos:2013kva , data provided by Juan Torres-Rincon).
double kbar0p_elastic_background(double mandelstam_s)
Kbar0 p elastic background cross section parametrization Source: Buss:2011mx , B.3....
std::optional< double > DplusKplus_elastic(double sqrts)
D⁺K⁺ elastic cross section (Tolos:2013kva , data provided by Juan Torres-Rincon).
double DstarzeroKbarzero_DstarplusKminus(double sqrts)
D*(2007)⁰K̄⁰ -> D*(2010)⁺K⁻ cross section (Tolos:2013kva , data provided by Juan Torres-Rincon).
std::optional< double > DplusDeltazero_elastic(double sqrts)
D⁺Δ⁰ elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
KaonNucleonRatios kaon_nucleon_ratios
double sigma0sigma0_ximinusp(double sqrts_sqrts0)
Sigma0 Sigma0 <-> Xi- p cross section parametrization Two hyperon exchange, based on effective model ...
double ppbar_elastic(double mandelstam_s)
ppbar elastic cross section parametrization Source: Bass:1998ca
std::optional< double > Dbarzerop_elastic(double sqrts)
D̄⁰p elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
std::optional< double > DzeroKplus_elastic(double sqrts)
D⁰K⁺ elastic cross section (Tolos:2013kva , data provided by Juan Torres-Rincon).
std::optional< double > Dstarzeropiminus_elastic(double sqrts)
D*(2007)⁰π- elastic cross section (closest reference Song:2015sfa , data provided by Juan Torres-Rinc...
std::optional< double > Dstarzeroeta_elastic(double sqrts)
D*(2007)⁰η elastic cross section (data provided by Juan Torres-Rincon).
std::optional< double > Dstarpluspizero_elastic(double sqrts)
D*(2010)⁺π⁰ elastic cross section (closest reference Song:2015sfa , data provided by Juan Torres-Rinc...
double lambdasigmaplus_xi0p(double sqrts_sqrts0)
Lambda Sigma+ <-> Xi0 p cross section parametrization Two hyperon exchange, based on effective model ...
double kminusp_elastic_background(double mandelstam_s)
K- p elastic background cross section parametrization Source: Buss:2011mx , B.3.9.
double lambdasigma0_xi0n(double sqrts_sqrts0)
Lambda Sigma0 <-> Xi0 n cross section parametrization Two hyperon exchange, based on effective model ...
double np_high_energy(double mandelstam_s)
np total cross section at high energies
std::optional< double > Dminusn_elastic(double sqrts)
D⁻n elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double pp_elastic_high_energy(double mandelstam_s, double m1, double m2)
pp elastic cross section parametrization, with only the high energy part generalized to all energy re...
double xs_string_hard(double mandelstam_s, double xs_0, double e_0, double lambda_pow)
Utility function called by specific other parametrizations Parametrized hard scattering cross section...
double DstarzeroKplus_DstarplusKzero(double sqrts)
D*(2007)⁰K⁺ -> D*(2010)⁺K⁰ cross section (closest reference Song:2015sfa , data provided by Juan Torr...
double Npi_string_hard(double mandelstam_s)
nucleon-pion hard scattering cross section (with partonic scattering)
double Dstarpluspizero_Dstarzeropiplus(double sqrts)
D*(2010)⁺π⁰ -> D*(2007)⁰π⁺ cross section (closest reference Song:2015sfa , data provided by Juan Torr...
std::optional< double > DzeroDeltaminus_elastic(double sqrts)
D⁰Δ⁻ elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double kminusn_piminuslambda(double sqrts)
K- n <-> pi- Lambda cross section parametrization Follow from the parametrization with the same stran...
double lambdasigmaminus_ximinusn(double sqrts_sqrts0)
Lambda Sigma- <-> Xi- n cross section parametrization Two hyperon exchange, based on effective model ...
std::optional< double > Dpluspiplus_elastic(double sqrts)
D⁺π⁺ elastic cross section (Abreu:2011ic , data provided by Juan Torres-Rincon).
std::optional< double > DplusKbarzero_elastic(double sqrts)
D⁺K̄⁰ elastic cross section (Tolos:2013kva , data provided by Juan Torres-Rincon).
std::optional< double > Dplusp_elastic(double sqrts)
D⁺p elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double ppbar_high_energy(double mandelstam_s)
ppbar total cross section at high energies
std::optional< double > DstarzeroKplus_elastic(double sqrts)
D*(2007)⁰K⁺ elastic cross section (closest reference Song:2015sfa , data provided by Juan Torres-Rinc...
double pp_high_energy(double mandelstam_s)
pp total cross section at high energies
std::optional< double > Dminusp_elastic(double sqrts)
D⁻p elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double Dbarzeron_Dminusp(double sqrts)
D̄⁰n -> D⁻p cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double xs_high_energy(double mandelstam_s, bool is_opposite_charge, double ma, double mb, double P, double R1, double R2)
total hadronic cross sections at high energies parametrized in the 2016 PDG book (http://pdg....
std::optional< double > DzeroKzero_elastic(double sqrts)
D⁰K⁰ elastic cross section (Tolos:2013kva , data provided by Juan Torres-Rincon).
double pipi_string_hard(double mandelstam_s)
pion-pion hard scattering cross section (with partonic scattering)
std::optional< double > Dstarpluspiplus_elastic(double sqrts)
D*(2010)⁺π⁺ elastic cross section (closest reference Song:2015sfa , data provided by Juan Torres-Rinc...
double piplusp_high_energy(double mandelstam_s)
pi+p total cross section at high energies
std::optional< double > Dpluseta_elastic(double sqrts)
D⁺η elastic cross section (Tolos:2013kva , data provided by Juan Torres-Rincon).
double lambdalambda_xi0n(double sqrts_sqrts0, double p_N, double p_lambda)
Lambda Lambda <-> Xi0 n cross section parametrization Two hyperon exchange, based on effective model ...
double kminusp_piminussigmaplus(double sqrts)
K- p <-> pi- Sigma+ cross section parametrization Taken from UrQMD (Graef:2014mra ).
std::optional< double > Dpluspiminus_elastic(double sqrts)
D⁺π⁻ elastic cross section (Abreu:2011ic , data provided by Juan Torres-Rincon).
double lambdalambda_ximinusp(double sqrts_sqrts0, double p_N, double p_lambda)
Lambda Lambda <-> Xi- p cross section parametrization Two hyperon exchange, based on effective model ...
double DplusKminus_DzeroKbarzero(double sqrts)
D⁺K⁻ -> D⁰K̄⁰ cross section (Tolos:2013kva , data provided by Juan Torres-Rincon).
double DbarzeroDeltaminus_DminusDeltazero(double sqrts)
D̄⁰Δ⁻ -> D⁻Δ⁰ cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double DminusDeltaplusplus_DbarzeroDeltaplus(double sqrts)
D⁻Δ⁺⁺ -> D̄⁰Δ⁺ cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
std::optional< double > DminusDeltazero_elastic(double sqrts)
D⁻Δ⁰ elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double piplusp_sigmapluskplus_pdg(double mandelstam_s)
pi+ p to Sigma+ K+ cross section parametrization, PDG data.
double DplusKzero_DzeroKplus(double sqrts)
D⁺K⁰ -> D⁰K⁺ cross section (Tolos:2013kva , data provided by Juan Torres-Rincon).
std::optional< double > DzeroDeltaplusplus_elastic(double sqrts)
D⁰Δ⁺⁺ elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
std::optional< double > DminusDeltaplus_elastic(double sqrts)
D⁻Δ⁺ elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double Dplusn_Dzerop(double sqrts)
D⁺n -> D⁰p cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
std::optional< double > DstarzeroKminus_elastic(double sqrts)
D*(2007)⁰K⁻ elastic cross section (closest reference Song:2015sfa , data provided by Juan Torres-Rinc...
std::optional< double > Dzeropizero_elastic(double sqrts)
D⁰π⁰ elastic cross section (Abreu:2011ic , data provided by Juan Torres-Rincon).
double piminusp_total(double sqrts)
pi- p total cross section parametrized from PDG2018, smoothed using the LOWESS algorithm.
double DzeroDeltaplus_DplusDeltazero(double sqrts)
D⁰Δ⁺ -> D⁺Δ⁰ cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double deuteron_nucleon_elastic(double mandelstam_s)
Deuteron nucleon elastic cross-section [mb] parametrized by Oh:2009gx .
std::optional< double > DplusDeltaminus_elastic(double sqrts)
D⁺Δ⁻ elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
std::optional< double > DzeroKminus_elastic(double sqrts)
D⁰K⁻ elastic cross section (Tolos:2013kva , data provided by Juan Torres-Rincon).
double piminusp_sigmaminuskplus_pdg(double mandelstam_s)
pi- p -> Sigma- K+ cross section parametrization, PDG data.
double piminusp_lambdak0_pdg(double mandelstam_s)
pi- p -> Lambda K0 cross section parametrization, PDG data.
std::optional< double > Dzeropiminus_elastic(double sqrts)
D⁰π⁻ elastic cross section (Abreu:2011ic , data provided by Juan Torres-Rincon).
std::optional< double > Dstarzeropiplus_elastic(double sqrts)
D*(2007)⁰π⁺ elastic cross section (closest reference Song:2015sfa , data provided by Juan Torres-Rinc...
std::optional< double > DplusDeltaplusplus_elastic(double sqrts)
D⁺Δ⁺⁺ elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
std::optional< double > DminusDeltaplusplus_elastic(double sqrts)
D⁻Δ⁺⁺ elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double DplusDeltaminus_DzeroDeltazero(double sqrts)
D⁺Δ⁻ -> D⁰Δ⁰ cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
std::optional< double > DbarzeroDeltaplusplus_elastic(double sqrts)
D̄⁰Δ⁺⁺ elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double deuteron_antinucleon_inelastic(double aN_kinetic_energy)
Parametrization of deuteron-antinucleon inelastic cross section.
double k0p_elastic_background(double mandelstam_s)
K0 p elastic background cross section parametrization Source: Buss:2011mx , B.3.9.
std::optional< double > Dpluspizero_elastic(double sqrts)
D⁺π⁰ elastic cross section (Abreu:2011ic , data provided by Juan Torres-Rincon).
double deuteron_pion_elastic(double mandelstam_s)
Deuteron pion elastic cross-section [mb] parametrized to fit pi-d elastic scattering data (the data c...
std::optional< double > DzeroKbarzero_elastic(double sqrts)
D⁰K̄⁰ elastic cross section (Tolos:2013kva , data provided by Juan Torres-Rincon).
double lambdasigma0_ximinusp(double sqrts_sqrts0)
Lambda Sigma0 <-> Xi- p cross section parametrization Two hyperon exchange, based on effective model ...
double DminusDeltazero_DbarzeroDeltaminus(double sqrts)
D⁻Δ⁰ -> D̄⁰Δ⁻ cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double NN_string_hard(double mandelstam_s)
nucleon-nucleon hard scattering cross section (with partonic scattering)
double Dzerop_Dplusn(double sqrts)
D⁰p -> D⁺n cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double xs_ppbar_annihilation(double mandelstam_s)
parametrized cross-section for proton-antiproton annihilation used in the UrQMD model
double DbarzeroDeltaplus_DminusDeltaplusplus(double sqrts)
D̄⁰Δ⁺ -> D⁻Δ⁺⁺ cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
std::optional< double > DplusDeltaplus_elastic(double sqrts)
D⁺Δ⁺ elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double kplusp_inelastic_background(double mandelstam_s)
K+ p inelastic background cross section parametrization Source: Buss:2011mx , B.3....
std::optional< double > Dzerop_elastic(double sqrts)
D⁰p elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double DminusDeltaplus_DbarzeroDeltazero(double sqrts)
D⁻Δ⁺ -> D̄⁰Δ⁰ cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double sigmaplussigmaminus_xi0n(double sqrts_sqrts0)
Sigma+ Sigma- <-> Xi0 n cross section parametrization Two hyperon exchange, based on effective model ...
double kminusp_pi0sigma0(double sqrts)
K- p <-> pi0 Sigma0 cross section parametrization Fit to Landolt-Börnstein instead of UrQMD values.
double kplusn_elastic_background(double mandelstam_s)
K+ n elastic background cross section parametrization sigma(K+n->K+n) = sigma(K+n->K0p) = 0....
double pp_total(double mandelstam_s)
pp total cross section parametrization Sources: low-p: Cugnon:1996kh highest-p: Buss:2011mx
double DplusDeltazero_DzeroDeltaplus(double sqrts)
D⁺Δ⁰ -> D⁰Δ⁺ cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
std::optional< double > Dstarpluseta_elastic(double sqrts)
D*(2010)⁺η elastic cross section (data provided by Juan Torres-Rincon).
std::optional< double > DplusKminus_elastic(double sqrts)
D⁺K⁻ elastic cross section (Tolos:2013kva , data provided by Juan Torres-Rincon).
double kplusn_total(double mandelstam_s)
K+ n total cross section parametrization.
std::optional< double > DstarplusKzero_elastic(double sqrts)
D*(2010)⁺K⁰ elastic cross section (closest reference Song:2015sfa , data provided by Juan Torres-Rinc...
double np_elastic(double mandelstam_s)
np elastic cross section parametrization Source: Weil:2013mya , eq.
std::optional< double > DbarzeroDeltaminus_elastic(double sqrts)
D̄⁰Δ⁻ elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
std::optional< double > DbarzeroDeltazero_elastic(double sqrts)
D̄⁰Δ⁰ elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double k0n_elastic_background(double mandelstam_s)
K0 n elastic background cross section parametrization Source: Buss:2011mx , B.3.9.
double sigma0sigma0_xi0n(double sqrts_sqrts0)
Sigma0 Sigma0 <-> Xi0 n cross section parametrization Two hyperon exchange, based on effective model ...
double kminusp_piplussigmaminus(double sqrts)
K- p <-> pi+ Sigma- cross section parametrization Taken from UrQMD (Graef:2014mra ).
double kminusp_total(double mandelstam_s)
K- p total cross section parametrization.
double Dzeropiplus_Dpluspizero(double sqrts)
D⁰π⁺ -> D⁺π⁰ cross section (Abreu:2011ic , data provided by Juan Torres-Rincon).
double kbar0n_elastic_background(double mandelstam_s)
Kbar0 n elastic background cross section parametrization Source: Buss:2011mx , B.3....
double kminusp_kbar0n(double mandelstam_s)
K- p <-> Kbar0 n cross section parametrization.
std::optional< double > DstarplusKplus_elastic(double sqrts)
D*(2010)⁺K⁺ elastic cross section (closest reference Song:2015sfa , data provided by Juan Torres-Rinc...
double sigmaplussigmaminus_ximinusp(double sqrts_sqrts0)
Sigma+ Sigma- <-> Xi- p cross section parametrization Two hyperon exchange, based on effective model ...
double DzeroKplus_DplusKzero(double sqrts)
D⁰K⁺ -> D⁺K⁰ cross section (Tolos:2013kva , data provided by Juan Torres-Rincon).
double deuteron_nucleon_inelastic(double N_kinetic_energy)
Parametrization of deuteron-nucleon inelastic cross section.
std::optional< double > DminusDeltaminus_elastic(double sqrts)
D⁻Δ⁻ elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double piplusp_total(double sqrts)
pi+ p total cross section parametrized from PDG2018, smoothed using the LOWESS algorithm.
double piminusp_high_energy(double mandelstam_s)
pi-p total cross section at high energies
std::optional< double > DstarzeroKbarzero_elastic(double sqrts)
D*(2007)⁰K̄⁰ elastic cross section (closest reference Song:2015sfa , data provided by Juan Torres-Rin...
double kminusn_total(double mandelstam_s)
K- n total cross section parametrization.
double kminusn_elastic_background(double mandelstam_s)
K- n elastic background cross section parametrization Source: Buss:2011mx , B.3.9.
std::optional< double > Dzeropiplus_elastic(double sqrts)
D⁰π⁺ elastic cross section (Abreu:2011ic , data provided by Juan Torres-Rincon).
double pp_elastic(double mandelstam_s)
pp elastic cross section parametrization Source: Weil:2013mya , eq.
double DzeroDeltaplusplus_DplusDeltaplus(double sqrts)
D⁰Δ⁺⁺ -> D⁺Δ⁺ cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
std::optional< double > Dstarpluspiminus_elastic(double sqrts)
D*(2010)⁺π⁻ elastic cross section (closest reference Song:2015sfa , data provided by Juan Torres-Rinc...
std::optional< double > DstarplusKbarzero_elastic(double sqrts)
D*(2010)⁺K̄⁰ elastic cross section (closest reference Song:2015sfa , data provided by Juan Torres-Rin...
double Dzeropizero_Dpluspiminus(double sqrts)
D⁰π⁰ -> D⁺π⁻ cross section (Abreu:2011ic , data provided by Juan Torres-Rincon).
double kplusn_inelastic_background(double mandelstam_s)
K+ n inelastic background cross section parametrization Source: Buss:2011mx , B.3....
std::optional< double > DstarplusKminus_elastic(double sqrts)
D*(2010)⁺K⁻ elastic cross section (closest reference Song:2015sfa , data provided by Juan Torres-Rinc...
double DbarzeroDeltazero_DminusDeltaplus(double sqrts)
D̄⁰Δ⁰ -> D⁻Δ⁺ cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double kplusp_elastic_background(double mandelstam_s)
K+ p elastic background cross section parametrization.
std::optional< double > DbarzeroDeltaplus_elastic(double sqrts)
D̄⁰Δ⁺ elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
double piplusp_elastic_AQM(double mandelstam_s, double m1, double m2)
pi+p elactic cross section parametrization.
double piplusp_elastic(double mandelstam_s)
pi+p elastic cross section parametrization, PDG data.
std::optional< double > Dstarzeropizero_elastic(double sqrts)
D*(2007)⁰π⁰ elastic cross section (closest reference Song:2015sfa , data provided by Juan Torres-Rinc...
double sigma0sigmaminus_ximinusn(double sqrts_sqrts0)
Sigma0 Sigma- <-> Xi- n cross section parametrization Two hyperon exchange, based on effective model ...
double sigmaplussigmaminus_xi0p(double sqrts_sqrts0)
Sigma+ Sigma- <-> Xi0 p cross section parametrization Two hyperon exchange, based on effective model ...
std::optional< double > DzeroDeltazero_elastic(double sqrts)
D⁰Δ⁰ elastic cross section (Tolos:2013kva ), data provided by Juan Torres-Rincon.
std::optional< double > Dzeroeta_elastic(double sqrts)
D⁰η elastic cross section (Tolos:2013kva , data provided by Juan Torres-Rincon).
Hash a pair of integers.
std::size_t operator()(const std::pair< uint64_t, uint64_t > &p) const
Hashing is done by this operator.