Version: SMASH-3.1
smash::IsoParticleType Class Reference

#include <isoparticletype.h>

IsoParticleType is a class to represent isospin multiplets.

It is similar to ParticleType, but refers to whole multiplets instead of single particle states.

Definition at line 29 of file isoparticletype.h.

Classes

struct  ParticleNotFoundFailure
 Throw when requested particle could not be found. More...
 

Public Member Functions

 IsoParticleType (const std::string &n, double m, double w, unsigned int s, Parity p)
 Creates a fully initialized IsoParticleType object. More...
 
 IsoParticleType (const IsoParticleType &)=delete
 Copies are not allowed as they break intended use. More...
 
IsoParticleTypeoperator= (const IsoParticleType &)=delete
 Assignment is not allowed, see copy constructor above. More...
 
 IsoParticleType (IsoParticleType &&)=default
 Move constructor of IsoParticleType (needed for std::sort) More...
 
IsoParticleTypeoperator= (IsoParticleType &&)=default
 Move constructor of IsoParticleType "="-operator (needed for std::sort) More...
 
bool operator== (const IsoParticleType &rhs) const
 Returns whether the two IsoParticleType objects have the same PDG code for their first state; if so, it is the same iso multiplet. More...
 
const std::string & name () const
 Returns the name of the multiplet. More...
 
const std::string name_filtered_prime () const
 Returns the name of the multiplet, after replacing "'" with "_prime". More...
 
double mass () const
 Returns the (average) multiplet mass. More...
 
double width () const
 Returns the (average) multiplet width. More...
 
int isospin () const
 Returns twice the total isospin of the multiplet. More...
 
unsigned int spin () const
 Returns twice the spin of the multiplet. More...
 
Parity parity () const
 
bool is_hadron () const
 
ParticleTypePtrList get_states () const
 Returns list of states that form part of the multiplet. More...
 
void add_state (const ParticleType &type)
 Add a new state to an existing multiplet (and check if isospin symmetry is fulfilled). More...
 
const IsoParticleTypeanti_multiplet () const
 Return a multiplet of antiparticles, if it is different from the original multiplet. More...
 
bool has_anti_multiplet () const
 Check if there is a multiplet of antiparticles, which is different from the original multiplet. More...
 
double get_integral_NR (double sqrts)
 Look up the tabulated resonance integral for the XX -> NR cross section. More...
 
double get_integral_RR (IsoParticleType *type_res_2, double sqrts)
 Look up the tabulated resonance integral for the XX -> RR cross section. More...
 
double get_integral_RK (double sqrts)
 Look up the tabulated resonance integral for the XX -> RK cross section. More...
 
double get_integral_piR (double sqrts)
 Look up the tabulated resonance integral for the XX -> piR cross section. More...
 
double get_integral_rhoR (double sqrts)
 Look up the tabulated resonance integral for the XX -> rhoR cross section. More...
 

Static Public Member Functions

static const IsoParticleTypeList & list_all ()
 Returns a list of all IsoParticleTypes. More...
 
static const std::vector< const IsoParticleType * > list_baryon_resonances ()
 Returns a list of all IsoParticleTypes that are baryon resonances. More...
 
static const IsoParticleTypetry_find (const std::string &name)
 Returns the IsoParticleType pointer for the given name. More...
 
static const IsoParticleTypefind (const std::string &name)
 Returns the IsoParticleType object for the given name. More...
 
static IsoParticleTypefind (const ParticleType &type)
 Returns the IsoParticleType object for the given type. More...
 
static bool exists (const std::string &name)
 Returns whether the ParticleType with the given pdgcode exists. More...
 
static const ParticleTypePtr find_state (const std::string &name)
 Returns the ParticleType object for the given name, by first finding the correct multiplet and then looking for the desired state. More...
 
static void create_multiplet (const ParticleType &type)
 Add a new multiplet to the global list of IsoParticleTypes, which contains type. More...
 
static void tabulate_integrals (sha256::Hash hash, const std::filesystem::path &tabulations_path)
 Tabulate all relevant integrals. More...
 

Static Private Member Functions

static IsoParticleTypefind_private (const std::string &name)
 Private version of the 'find' method that returns a non-const reference. More...
 

Private Attributes

std::string name_
 name of the multiplet More...
 
double mass_
 (average) mass of the multiplet More...
 
double width_
 (average) width of the multiplet More...
 
unsigned int spin_
 twice the spin of the multiplet More...
 
Parity parity_
 parity of the multiplet More...
 
ParticleTypePtrList states_
 list of states that are contained in the multiplet More...
 
TabulationXS_piR_tabulation_ = nullptr
 A tabulation of the spectral integral for the dpi -> d'pi cross sections. More...
 
TabulationXS_RK_tabulation_ = nullptr
 A tabulation of the spectral integral for the NK -> RK cross sections. More...
 
TabulationXS_NR_tabulation_ = nullptr
 A tabulation for the NN -> NR cross sections, where R is a resonance from this multiplet. More...
 
TabulationXS_DeltaR_tabulation_ = nullptr
 A tabulation for the NN -> RΔ cross sections, where R is a resonance from this multiplet. More...
 
TabulationXS_rhoR_tabulation_ = nullptr
 A tabulation for the ρρ integrals. More...
 

Constructor & Destructor Documentation

◆ IsoParticleType() [1/3]

smash::IsoParticleType::IsoParticleType ( const std::string &  n,
double  m,
double  w,
unsigned int  s,
Parity  p 
)

Creates a fully initialized IsoParticleType object.

Parameters
nThe name of the multiplet.
mThe (average) mass of the multiplet.
wThe (average) width of the multiplet.
sTwice the spin of the multiplet.
pParity of the multiplet.

Definition at line 37 of file isoparticletype.cc.

39  : name_(n), mass_(m), width_(w), spin_(s), parity_(p) {}
double mass_
(average) mass of the multiplet
double width_
(average) width of the multiplet
Parity parity_
parity of the multiplet
std::string name_
name of the multiplet
unsigned int spin_
twice the spin of the multiplet
constexpr int p
Proton.
constexpr int n
Neutron.

◆ IsoParticleType() [2/3]

smash::IsoParticleType::IsoParticleType ( const IsoParticleType )
delete

Copies are not allowed as they break intended use.

Instead use a const-ref or ParticleTypePtr (as returned from operator&).

◆ IsoParticleType() [3/3]

smash::IsoParticleType::IsoParticleType ( IsoParticleType &&  )
default

Move constructor of IsoParticleType (needed for std::sort)

Member Function Documentation

◆ operator=() [1/2]

IsoParticleType& smash::IsoParticleType::operator= ( const IsoParticleType )
delete

Assignment is not allowed, see copy constructor above.

◆ operator=() [2/2]

IsoParticleType& smash::IsoParticleType::operator= ( IsoParticleType &&  )
default

Move constructor of IsoParticleType "="-operator (needed for std::sort)

◆ operator==()

bool smash::IsoParticleType::operator== ( const IsoParticleType rhs) const
inline

Returns whether the two IsoParticleType objects have the same PDG code for their first state; if so, it is the same iso multiplet.

Parameters
rhsThe other multiplet.

Definition at line 62 of file isoparticletype.h.

62  {
63  return states_[0]->pdgcode() == rhs.states_[0]->pdgcode();
64  }
ParticleTypePtrList states_
list of states that are contained in the multiplet

◆ name()

const std::string& smash::IsoParticleType::name ( ) const
inline

Returns the name of the multiplet.

Definition at line 67 of file isoparticletype.h.

67 { return name_; }

◆ name_filtered_prime()

const std::string smash::IsoParticleType::name_filtered_prime ( ) const
inline

Returns the name of the multiplet, after replacing "'" with "_prime".

This function is meant to be used when creating file names. The motivation of this replacement is that handling files whose names contain an apostrophe "'" can be problematic, especially for administrators of computer clusters that rely on a set of well tested scripts to copy or move large amount of data between different storage devices.

Definition at line 79 of file isoparticletype.h.

79  {
80  std::string tmp_s = name_;
81  std::size_t found_position = tmp_s.find("'");
82  if (found_position != std::string::npos) {
83  tmp_s.erase(found_position, 1);
84  tmp_s.insert(found_position, "_prime");
85  }
86  return tmp_s;
87  }

◆ mass()

double smash::IsoParticleType::mass ( ) const
inline

Returns the (average) multiplet mass.

Definition at line 90 of file isoparticletype.h.

90 { return mass_; }

◆ width()

double smash::IsoParticleType::width ( ) const
inline

Returns the (average) multiplet width.

Definition at line 93 of file isoparticletype.h.

93 { return width_; }

◆ isospin()

int smash::IsoParticleType::isospin ( ) const
inline

Returns twice the total isospin of the multiplet.

Definition at line 96 of file isoparticletype.h.

96 { return states_.size() - 1; }

◆ spin()

unsigned int smash::IsoParticleType::spin ( ) const
inline

Returns twice the spin of the multiplet.

All particles in the multiplet are required to have the same spin.

Definition at line 102 of file isoparticletype.h.

102 { return spin_; }

◆ parity()

Parity smash::IsoParticleType::parity ( ) const
inline
Returns
The parity of the multiplet.

Definition at line 107 of file isoparticletype.h.

107 { return parity_; }

◆ is_hadron()

bool smash::IsoParticleType::is_hadron ( ) const
inline
Returns
Is this a hadron multiplet?

Definition at line 112 of file isoparticletype.h.

112 { return states_[0]->is_hadron(); }

◆ get_states()

ParticleTypePtrList smash::IsoParticleType::get_states ( ) const
inline

Returns list of states that form part of the multiplet.

Definition at line 115 of file isoparticletype.h.

115 { return states_; }

◆ add_state()

void smash::IsoParticleType::add_state ( const ParticleType type)

Add a new state to an existing multiplet (and check if isospin symmetry is fulfilled).

Parameters
typeThe particle state to be added.

Definition at line 138 of file isoparticletype.cc.

138  {
139  states_.push_back(&type);
140 
141  // check if isospin symmetry is fulfilled
142  if (std::abs(mass() - type.mass()) > really_small) {
143  logg[LParticleType].warn()
144  << "Isospin symmetry is broken by mass of " << type.name() << ": "
145  << type.mass() << " vs. " << mass();
146  }
147  if (std::abs(width() - type.width_at_pole()) > really_small) {
148  logg[LParticleType].warn()
149  << "Isospin symmetry is broken by width of " << type.name() << ": "
150  << type.width_at_pole() << " vs. " << width();
151  }
152  if (spin() != type.spin()) {
153  logg[LParticleType].error()
154  << "Isospin symmetry is broken by spin of " << type.name() << ": "
155  << type.spin() << " vs. " << spin();
156  }
157 }
double width() const
Returns the (average) multiplet width.
double mass() const
Returns the (average) multiplet mass.
unsigned int spin() const
Returns twice the spin of the multiplet.
std::array< einhard::Logger<>, std::tuple_size< LogArea::AreaTuple >::value > logg
An array that stores all pre-configured Logger objects.
Definition: logging.cc:39
constexpr double really_small
Numerical error tolerance.
Definition: constants.h:37
static constexpr int LParticleType

◆ anti_multiplet()

const IsoParticleType * smash::IsoParticleType::anti_multiplet ( ) const

Return a multiplet of antiparticles, if it is different from the original multiplet.

Otherwise, return a nullptr.

Definition at line 105 of file isoparticletype.cc.

105  {
106  if (states_[0]->has_antiparticle()) {
107  ParticleTypePtr anti = states_[0]->get_antiparticle();
108  if (states_[0]->name() != multiplet_name(anti->name())) {
109  return anti->iso_multiplet();
110  } else {
111  return nullptr;
112  }
113  } else {
114  return nullptr;
115  }
116 }
const std::string & name() const
Returns the name of the multiplet.
static std::string multiplet_name(std::string name)
Construct the name-string for an isospin multiplet from the given name-string for the particle.

◆ has_anti_multiplet()

bool smash::IsoParticleType::has_anti_multiplet ( ) const

Check if there is a multiplet of antiparticles, which is different from the original multiplet.

Definition at line 118 of file isoparticletype.cc.

118  {
119  return anti_multiplet() != nullptr;
120 }
const IsoParticleType * anti_multiplet() const
Return a multiplet of antiparticles, if it is different from the original multiplet.

◆ list_all()

const IsoParticleTypeList & smash::IsoParticleType::list_all ( )
static

Returns a list of all IsoParticleTypes.

Definition at line 41 of file isoparticletype.cc.

41 { return iso_type_list; }
static IsoParticleTypeList iso_type_list

◆ list_baryon_resonances()

const std::vector< const IsoParticleType * > smash::IsoParticleType::list_baryon_resonances ( )
static

Returns a list of all IsoParticleTypes that are baryon resonances.

Definition at line 23 of file isoparticletype.cc.

23  {
24  if (iso_baryon_resonances.empty()) {
25  // Initialize.
26  for (const auto &res : IsoParticleType::list_all()) {
27  const auto baryon_number = res.states_[0]->pdgcode().baryon_number();
28  if (res.states_[0]->is_stable() || (baryon_number <= 0)) {
29  continue;
30  }
31  iso_baryon_resonances.push_back(&res);
32  }
33  }
34  return iso_baryon_resonances;
35 }
static const IsoParticleTypeList & list_all()
Returns a list of all IsoParticleTypes.
static std::vector< const IsoParticleType * > iso_baryon_resonances

◆ try_find()

const IsoParticleType * smash::IsoParticleType::try_find ( const std::string &  name)
static

Returns the IsoParticleType pointer for the given name.

If the particle type is not found, an invalid pointer is returned. You can convert the pointer to a bool to check whether it is valid.

Parameters
nameThe name of the particle type.
Note
The complexity of the search is \(\mathcal O(\log N)\).

Definition at line 56 of file isoparticletype.cc.

56  {
57  return try_find_private(name);
58 }
static IsoParticleType * try_find_private(const std::string &name)
Helper function for IsoParticleType::try_find and friends.

◆ find() [1/2]

const IsoParticleType & smash::IsoParticleType::find ( const std::string &  name)
static

Returns the IsoParticleType object for the given name.

Parameters
nameThe name of the of the particle type to be found.
Exceptions
ParticleNotFoundFailureif name not found.
Note
The complexity of the search is \(\mathcal O(\log N)\).

Definition at line 60 of file isoparticletype.cc.

60  {
61  const auto found = try_find_private(name);
62  if (!found) {
63  throw ParticleNotFoundFailure("Isospin multiplet " + name + " not found!");
64  }
65  return *found;
66 }

◆ find() [2/2]

IsoParticleType * smash::IsoParticleType::find ( const ParticleType type)
static

Returns the IsoParticleType object for the given type.

Parameters
typeThe particle type to be found.
Exceptions
ParticleNotFoundFailureif type not found.
Note
The complexity of the search is \(\mathcal O(\log N)\).

Definition at line 132 of file isoparticletype.cc.

132  {
133  std::string multiname = multiplet_name(type.name());
134  IsoParticleType &multiplet = find_private(multiname);
135  return &multiplet;
136 }
static IsoParticleType & find_private(const std::string &name)
Private version of the 'find' method that returns a non-const reference.
IsoParticleType(const std::string &n, double m, double w, unsigned int s, Parity p)
Creates a fully initialized IsoParticleType object.

◆ exists()

bool smash::IsoParticleType::exists ( const std::string &  name)
static

Returns whether the ParticleType with the given pdgcode exists.

Parameters
nameThe name of the particle type to be found.
Note
The complexity of the search is \(\mathcal O(\log N)\).

Definition at line 77 of file isoparticletype.cc.

77  {
78  const auto found = try_find_private(name);
79  return found;
80 }

◆ find_state()

const ParticleTypePtr smash::IsoParticleType::find_state ( const std::string &  name)
static

Returns the ParticleType object for the given name, by first finding the correct multiplet and then looking for the desired state.

Parameters
nameThe name of the particle state to be found.
Exceptions
std::runtime_errorif name is not found.

Definition at line 122 of file isoparticletype.cc.

122  {
124  auto found = std::find_if(multiplet.states_.begin(), multiplet.states_.end(),
125  [&n](ParticleTypePtr p) { return p->name() == n; });
126  if (found == multiplet.states_.end()) {
127  throw std::runtime_error("Isospin state " + n + " not found!");
128  }
129  return *found;
130 }
static const IsoParticleType & find(const std::string &name)
Returns the IsoParticleType object for the given name.

◆ create_multiplet()

void smash::IsoParticleType::create_multiplet ( const ParticleType type)
static

Add a new multiplet to the global list of IsoParticleTypes, which contains type.

If the multiplet exists already, the type will be added to it.

Parameters
typeThe multiplet to be created.

Definition at line 159 of file isoparticletype.cc.

159  {
160  // create multiplet if it does not exist yet
161  std::string multiname = multiplet_name(type.name());
162  if (!exists(multiname)) {
163  iso_type_list.emplace_back(multiname, type.mass(), type.width_at_pole(),
164  type.spin(), type.parity());
165  logg[LParticleType].debug()
166  << "Creating isospin multiplet " << multiname
167  << " [ m = " << type.mass() << ", Γ = " << type.width_at_pole() << " ]";
168  }
169 
170  // sort the iso-type list by name
171  std::sort(iso_type_list.begin(), iso_type_list.end(),
172  [](const IsoParticleType &l, const IsoParticleType &r) {
173  return l.name() < r.name();
174  });
175 
176  // add the specific type to the multiplet
177  IsoParticleType &multiplet = find_private(multiname);
178  multiplet.add_state(type);
179 }
static bool exists(const std::string &name)
Returns whether the ParticleType with the given pdgcode exists.

◆ tabulate_integrals()

void smash::IsoParticleType::tabulate_integrals ( sha256::Hash  hash,
const std::filesystem::path &  tabulations_path 
)
static

Tabulate all relevant integrals.

Parameters
hashThe hash of the particle properties. This is used to determine whether a cached tabulation can be reused or not.
tabulations_pathThe path to the directory where the tabulations are cached.

Definition at line 270 of file isoparticletype.cc.

271  {
272  // To avoid race conditions, make sure we are the only ones currently storing
273  // tabulations. Otherwise, we ignore any stored tabulations and don't store
274  // our results.
275  FileLock lock(tabulations_path / "tabulations.lock");
276  const std::filesystem::path &dir = lock.acquire() ? tabulations_path : "";
277 
278  const auto nuc = IsoParticleType::try_find("N");
279  const auto pion = IsoParticleType::try_find("π");
280  const auto kaon = IsoParticleType::try_find("K");
281  const auto delta = IsoParticleType::try_find("Δ");
282  const auto rho = IsoParticleType::try_find("ρ");
283  const auto h1 = IsoParticleType::try_find("h₁(1170)");
284  for (const auto &res : IsoParticleType::list_baryon_resonances()) {
285  const auto antires = res->anti_multiplet();
286  if (nuc) {
287  cache_integral(NR_tabulations, dir, hash, *nuc, *res, antires, false);
288  }
289  if (pion) {
290  cache_integral(piR_tabulations, dir, hash, *pion, *res, antires, false);
291  }
292  if (kaon) {
293  cache_integral(RK_tabulations, dir, hash, *kaon, *res, antires, false);
294  }
295  if (delta) {
296  cache_integral(DeltaR_tabulations, dir, hash, *delta, *res, antires,
297  true);
298  }
299  }
300  if (rho) {
301  cache_integral(rhoR_tabulations, dir, hash, *rho, *rho, nullptr, true);
302  }
303  if (rho && h1) {
304  cache_integral(rhoR_tabulations, dir, hash, *rho, *h1, nullptr, true);
305  }
306 }
static const IsoParticleType * try_find(const std::string &name)
Returns the IsoParticleType pointer for the given name.
static const std::vector< const IsoParticleType * > list_baryon_resonances()
Returns a list of all IsoParticleTypes that are baryon resonances.
constexpr int h1
h₁(1170).
static std::unordered_map< std::string, Tabulation > NR_tabulations
Tabulation of all N R integrals.
static std::unordered_map< std::string, Tabulation > RK_tabulations
Tabulation of all K R integrals.
static std::unordered_map< std::string, Tabulation > piR_tabulations
Tabulation of all pi R integrals.
static std::unordered_map< std::string, Tabulation > DeltaR_tabulations
Tabulation of all Delta R integrals.
static std::unordered_map< std::string, Tabulation > rhoR_tabulations
Tabulation of all rho rho integrals.
void cache_integral(std::unordered_map< std::string, Tabulation > &tabulations, const std::filesystem::path &dir, sha256::Hash hash, const IsoParticleType &part, const IsoParticleType &res, const IsoParticleType *antires, bool unstable)

◆ get_integral_NR()

double smash::IsoParticleType::get_integral_NR ( double  sqrts)

Look up the tabulated resonance integral for the XX -> NR cross section.

Parameters
sqrtsThe center-of-mass energy.

Definition at line 308 of file isoparticletype.cc.

308  {
309  if (XS_NR_tabulation_ == nullptr) {
310  const auto res = states_[0]->iso_multiplet();
311  XS_NR_tabulation_ = &NR_tabulations.at(res->name());
312  }
313  return XS_NR_tabulation_->get_value_linear(sqrts);
314 }
Tabulation * XS_NR_tabulation_
A tabulation for the NN -> NR cross sections, where R is a resonance from this multiplet.
double get_value_linear(double x, Extrapolation extrapolation=Extrapolation::Linear) const
Look up a value from the tabulation using linear interpolation.
Definition: tabulation.cc:38

◆ get_integral_RR()

double smash::IsoParticleType::get_integral_RR ( IsoParticleType type_res_2,
double  sqrts 
)

Look up the tabulated resonance integral for the XX -> RR cross section.

Parameters
type_res_2Type of the two resonances in the final state.
sqrtsThe center-of-mass energy.

Definition at line 340 of file isoparticletype.cc.

341  {
342  const auto res = states_[0]->iso_multiplet();
343  if (type_res_2->states_[0]->is_Delta()) {
344  if (XS_DeltaR_tabulation_ == nullptr) {
345  XS_DeltaR_tabulation_ = &DeltaR_tabulations.at(res->name());
346  }
348  }
349  if (type_res_2->name() == "ρ") {
350  if (XS_rhoR_tabulation_ == nullptr) {
351  XS_rhoR_tabulation_ = &rhoR_tabulations.at(res->name());
352  }
353  return XS_rhoR_tabulation_->get_value_linear(sqrts);
354  }
355  if (type_res_2->name() == "h₁(1170)") {
356  if (XS_rhoR_tabulation_ == nullptr) {
357  XS_rhoR_tabulation_ = &rhoR_tabulations.at(res->name());
358  }
359  return XS_rhoR_tabulation_->get_value_linear(sqrts);
360  }
361  std::stringstream err;
362  err << "RR=" << name() << type_res_2->name() << " is not implemented";
363  throw std::runtime_error(err.str());
364 }
Tabulation * XS_rhoR_tabulation_
A tabulation for the ρρ integrals.
Tabulation * XS_DeltaR_tabulation_
A tabulation for the NN -> RΔ cross sections, where R is a resonance from this multiplet.

◆ get_integral_RK()

double smash::IsoParticleType::get_integral_RK ( double  sqrts)

Look up the tabulated resonance integral for the XX -> RK cross section.

Parameters
sqrtsThe center-of-mass energy.

Definition at line 324 of file isoparticletype.cc.

324  {
325  if (XS_RK_tabulation_ == nullptr) {
326  const auto res = states_[0]->iso_multiplet();
327  XS_RK_tabulation_ = &RK_tabulations.at(res->name());
328  }
329  return XS_RK_tabulation_->get_value_linear(sqrts);
330 }
Tabulation * XS_RK_tabulation_
A tabulation of the spectral integral for the NK -> RK cross sections.

◆ get_integral_piR()

double smash::IsoParticleType::get_integral_piR ( double  sqrts)

Look up the tabulated resonance integral for the XX -> piR cross section.

Parameters
sqrtsThe center-of-mass energy.

Definition at line 316 of file isoparticletype.cc.

316  {
317  if (XS_piR_tabulation_ == nullptr) {
318  const auto res = states_[0]->iso_multiplet();
319  XS_piR_tabulation_ = &piR_tabulations.at(res->name());
320  }
321  return XS_piR_tabulation_->get_value_linear(sqrts);
322 }
Tabulation * XS_piR_tabulation_
A tabulation of the spectral integral for the dpi -> d'pi cross sections.

◆ get_integral_rhoR()

double smash::IsoParticleType::get_integral_rhoR ( double  sqrts)

Look up the tabulated resonance integral for the XX -> rhoR cross section.

Parameters
sqrtsThe center-of-mass energy.

Definition at line 332 of file isoparticletype.cc.

332  {
333  if (XS_rhoR_tabulation_ == nullptr) {
334  const auto res = states_[0]->iso_multiplet();
335  XS_rhoR_tabulation_ = &rhoR_tabulations.at(res->name());
336  }
337  return XS_rhoR_tabulation_->get_value_linear(sqrts);
338 }

◆ find_private()

IsoParticleType & smash::IsoParticleType::find_private ( const std::string &  name)
staticprivate

Private version of the 'find' method that returns a non-const reference.

Parameters
[in]nameThe name of the of the particle type to be found.
Exceptions
ParticleNotFoundFailureif name not found.

Definition at line 68 of file isoparticletype.cc.

68  {
69  auto found = try_find_private(name);
70  if (!found) {
71  throw ParticleNotFoundFailure("Isospin multiplet " + name +
72  " not found (privately)!");
73  }
74  return *found;
75 }

Member Data Documentation

◆ name_

std::string smash::IsoParticleType::name_
private

name of the multiplet

Definition at line 256 of file isoparticletype.h.

◆ mass_

double smash::IsoParticleType::mass_
private

(average) mass of the multiplet

Definition at line 258 of file isoparticletype.h.

◆ width_

double smash::IsoParticleType::width_
private

(average) width of the multiplet

Definition at line 260 of file isoparticletype.h.

◆ spin_

unsigned int smash::IsoParticleType::spin_
private

twice the spin of the multiplet

Definition at line 262 of file isoparticletype.h.

◆ parity_

Parity smash::IsoParticleType::parity_
private

parity of the multiplet

Definition at line 264 of file isoparticletype.h.

◆ states_

ParticleTypePtrList smash::IsoParticleType::states_
private

list of states that are contained in the multiplet

Definition at line 266 of file isoparticletype.h.

◆ XS_piR_tabulation_

Tabulation* smash::IsoParticleType::XS_piR_tabulation_ = nullptr
private

A tabulation of the spectral integral for the dpi -> d'pi cross sections.

Definition at line 269 of file isoparticletype.h.

◆ XS_RK_tabulation_

Tabulation* smash::IsoParticleType::XS_RK_tabulation_ = nullptr
private

A tabulation of the spectral integral for the NK -> RK cross sections.

Definition at line 271 of file isoparticletype.h.

◆ XS_NR_tabulation_

Tabulation* smash::IsoParticleType::XS_NR_tabulation_ = nullptr
private

A tabulation for the NN -> NR cross sections, where R is a resonance from this multiplet.

Definition at line 276 of file isoparticletype.h.

◆ XS_DeltaR_tabulation_

Tabulation* smash::IsoParticleType::XS_DeltaR_tabulation_ = nullptr
private

A tabulation for the NN -> RΔ cross sections, where R is a resonance from this multiplet.

Definition at line 281 of file isoparticletype.h.

◆ XS_rhoR_tabulation_

Tabulation* smash::IsoParticleType::XS_rhoR_tabulation_ = nullptr
private

A tabulation for the ρρ integrals.

Definition at line 285 of file isoparticletype.h.


The documentation for this class was generated from the following files: