Version: SMASH-1.5
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 26 of file isoparticletype.h.

Collaboration diagram for smash::IsoParticleType:
[legend]

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...
 
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...
 
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 (const ParticleType &type_res_2, double sqrts)
 Look up the tabulated resonance integral for the XX -> RR cross section. More...
 
TabulationPtr integrate_RR (ParticleTypePtr &type_res_2)
 Utility function to help compute various XX->RR spectral integrals. 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...
 

Static Public Member Functions

static const IsoParticleTypeList & list_all ()
 Returns a list of all IsoParticleTypes. 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 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...
 
TabulationPtr XS_piR_tabulation_
 A tabulation of the spectral integral for the dpi -> d'pi cross sections. More...
 
TabulationPtr XS_RK_tabulation_
 A tabulation of the spectral integral for the NK -> RK cross sections. More...
 
TabulationPtr XS_NR_tabulation_
 A tabulation for the NN -> NR cross sections, where R is a resonance from this multiplet. More...
 
TabulationPtr XS_DR_tabulation_
 A tabulation for the NN -> DR cross sections, where R is a resonance from this multiplet. More...
 
std::unordered_map< IsoParticleType *, TabulationPtr > XS_RR_tabulations
 A tabulation list for the NN -> RR' cross sections, where R is this multiplet and R' is a baryon resonance, associated with a list of resonances R' for the NN -> RR' cross sections; used to calculate every multiplet spectral function only once. 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 18 of file isoparticletype.cc.

20  : name_(n), mass_(m), width_(w), spin_(s), parity_(p) {}
double mass_
(average) mass of the multiplet
unsigned int spin_
twice the spin of the multiplet
double width_
(average) width of the multiplet
std::string name_
name of the multiplet
Parity parity_
parity 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 59 of file isoparticletype.h.

59  {
60  return states_[0]->pdgcode() == rhs.states_[0]->pdgcode();
61  }
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 64 of file isoparticletype.h.

64 { return name_; }
std::string name_
name of the multiplet
Here is the caller graph for this function:

◆ mass()

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

Returns the (average) multiplet mass.

Definition at line 67 of file isoparticletype.h.

67 { return mass_; }
double mass_
(average) mass of the multiplet
Here is the caller graph for this function:

◆ width()

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

Returns the (average) multiplet width.

Definition at line 70 of file isoparticletype.h.

70 { return width_; }
double width_
(average) width of the multiplet
Here is the caller graph for this function:

◆ isospin()

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

Returns twice the total isospin of the multiplet.

Definition at line 73 of file isoparticletype.h.

73 { return states_.size() - 1; }
ParticleTypePtrList states_
list of states that are contained in the multiplet
Here is the caller graph for this function:

◆ 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 79 of file isoparticletype.h.

79 { return spin_; }
unsigned int spin_
twice the spin of the multiplet
Here is the caller graph for this function:

◆ parity()

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

Definition at line 84 of file isoparticletype.h.

84 { return parity_; }
Parity parity_
parity of the multiplet
Here is the caller graph for this function:

◆ is_hadron()

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

Definition at line 89 of file isoparticletype.h.

89 { return states_[0]->is_hadron(); }
ParticleTypePtrList states_
list of states that are contained in the multiplet
Here is the caller graph for this function:

◆ get_states()

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

Returns list of states that form part of the multiplet.

Definition at line 92 of file isoparticletype.h.

92 { return states_; }
ParticleTypePtrList states_
list of states that are contained in the multiplet
Here is the caller graph for this function:

◆ 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 111 of file isoparticletype.cc.

111  {
112  states_.push_back(&type);
113 
114  // check if isospin symmetry is fulfilled
115  const auto &log = logger<LogArea::ParticleType>();
116  if (std::abs(mass() - type.mass()) > really_small) {
117  log.warn() << "Isospin symmetry is broken by mass of " << type.name()
118  << ": " << type.mass() << " vs. " << mass();
119  }
120  if (std::abs(width() - type.width_at_pole()) > really_small) {
121  log.warn() << "Isospin symmetry is broken by width of " << type.name()
122  << ": " << type.width_at_pole() << " vs. " << width();
123  }
124  if (spin() != type.spin()) {
125  log.error() << "Isospin symmetry is broken by spin of " << type.name()
126  << ": " << type.spin() << " vs. " << spin();
127  }
128 }
constexpr double really_small
Numerical error tolerance.
Definition: constants.h:34
double width() const
Returns the (average) multiplet width.
unsigned int spin() const
Returns twice the spin of the multiplet.
ParticleTypePtrList states_
list of states that are contained in the multiplet
double mass() const
Returns the (average) multiplet mass.
Here is the call graph for this function:

◆ 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 86 of file isoparticletype.cc.

86  {
87  if (states_[0]->has_antiparticle()) {
88  ParticleTypePtr anti = states_[0]->get_antiparticle();
89  return multiplet_name(states_[0]->name()) != multiplet_name(anti->name());
90  } else {
91  return false;
92  }
93 }
static std::string multiplet_name(std::string name)
Construct the name-string for an isospin multiplet from the given name-string for the particle...
ParticleTypePtrList states_
list of states that are contained in the multiplet
const std::string & name() const
Returns the name of the multiplet.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ list_all()

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

Returns a list of all IsoParticleTypes.

Definition at line 22 of file isoparticletype.cc.

22 { return iso_type_list; }
static IsoParticleTypeList iso_type_list
Here is the caller graph for this function:

◆ 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 37 of file isoparticletype.cc.

37  {
38  return try_find_private(name);
39 }
static IsoParticleType * try_find_private(const std::string &name)
Helper function for IsoParticleType::try_find and friends.
const std::string & name() const
Returns the name of the multiplet.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ 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 41 of file isoparticletype.cc.

41  {
42  const auto found = try_find_private(name);
43  if (!found) {
44  throw ParticleNotFoundFailure("Isospin multiplet " + name + " not found!");
45  }
46  return *found;
47 }
static IsoParticleType * try_find_private(const std::string &name)
Helper function for IsoParticleType::try_find and friends.
const std::string & name() const
Returns the name of the multiplet.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ 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 105 of file isoparticletype.cc.

105  {
106  std::string multiname = multiplet_name(type.name());
107  IsoParticleType &multiplet = find_private(multiname);
108  return &multiplet;
109 }
static IsoParticleType & find_private(const std::string &name)
Private version of the &#39;find&#39; method that returns a non-const reference.
static std::string multiplet_name(std::string name)
Construct the name-string for an isospin multiplet from the given name-string for the particle...
IsoParticleType(const std::string &n, double m, double w, unsigned int s, Parity p)
Creates a fully initialized IsoParticleType object.
Here is the call graph for this function:

◆ 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 58 of file isoparticletype.cc.

58  {
59  const auto found = try_find_private(name);
60  return found;
61 }
static IsoParticleType * try_find_private(const std::string &name)
Helper function for IsoParticleType::try_find and friends.
const std::string & name() const
Returns the name of the multiplet.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ 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 95 of file isoparticletype.cc.

95  {
97  auto found = std::find_if(multiplet.states_.begin(), multiplet.states_.end(),
98  [&n](ParticleTypePtr p) { return p->name() == n; });
99  if (found == multiplet.states_.end()) {
100  throw std::runtime_error("Isospin state " + n + " not found!");
101  }
102  return *found;
103 }
static const IsoParticleType & find(const std::string &name)
Returns the IsoParticleType object for the given name.
static std::string multiplet_name(std::string name)
Construct the name-string for an isospin multiplet from the given name-string for the particle...
constexpr int p
Proton.
IsoParticleType(const std::string &n, double m, double w, unsigned int s, Parity p)
Creates a fully initialized IsoParticleType object.
constexpr int n
Neutron.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ 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 130 of file isoparticletype.cc.

130  {
131  const auto &log = logger<LogArea::ParticleType>();
132 
133  // create multiplet if it does not exist yet
134  std::string multiname = multiplet_name(type.name());
135  if (!exists(multiname)) {
136  iso_type_list.emplace_back(multiname, type.mass(), type.width_at_pole(),
137  type.spin(), type.parity());
138  log.debug() << "Creating isospin multiplet " << multiname
139  << " [ m = " << type.mass() << ", Γ = " << type.width_at_pole()
140  << " ]";
141  }
142 
143  // sort the iso-type list by name
144  std::sort(iso_type_list.begin(), iso_type_list.end(),
145  [](const IsoParticleType &l, const IsoParticleType &r) {
146  return l.name() < r.name();
147  });
148 
149  // add the specific type to the multiplet
150  IsoParticleType &multiplet = find_private(multiname);
151  multiplet.add_state(type);
152 }
static IsoParticleType & find_private(const std::string &name)
Private version of the &#39;find&#39; method that returns a non-const reference.
static std::string multiplet_name(std::string name)
Construct the name-string for an isospin multiplet from the given name-string for the particle...
static IsoParticleTypeList iso_type_list
static bool exists(const std::string &name)
Returns whether the ParticleType with the given pdgcode exists.
IsoParticleType(const std::string &n, double m, double w, unsigned int s, Parity p)
Creates a fully initialized IsoParticleType object.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ 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 156 of file isoparticletype.cc.

156  {
157  if (XS_NR_tabulation_ == nullptr) {
158  // initialize tabulation
159  /* TODO(weil): Move this lazy init to a global initialization function,
160  * in order to avoid race conditions in multi-threading. */
161  ParticleTypePtr type_res = states_[0];
162  ParticleTypePtr nuc = IsoParticleType::find("N").get_states()[0];
164  spectral_integral_semistable(integrate, *type_res, *nuc, 2.0);
165  }
166  return XS_NR_tabulation_->get_value_linear(sqrts);
167 }
static const IsoParticleType & find(const std::string &name)
Returns the IsoParticleType object for the given name.
ParticleTypePtrList get_states() const
Returns list of states that form part of the multiplet.
std::unique_ptr< Tabulation > spectral_integral_semistable(Integrator &integrate, const ParticleType &resonance, const ParticleType &stable, double range)
Create a table for the spectral integral of a resonance and a stable particle.
Definition: tabulation.h:156
ParticleTypePtrList states_
list of states that are contained in the multiplet
TabulationPtr XS_NR_tabulation_
A tabulation for the NN -> NR cross sections, where R is a resonance from this multiplet.
static Integrator integrate
Definition: decaytype.cc:147
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_integral_RR()

double smash::IsoParticleType::get_integral_RR ( const ParticleType 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 197 of file isoparticletype.cc.

198  {
199  auto search = XS_RR_tabulations.find(find(type_res_2));
200  if (search != XS_RR_tabulations.end()) {
201  return search->second->get_value_linear(sqrts);
202  }
203  IsoParticleType *key = find(type_res_2);
204  XS_RR_tabulations.emplace(key,
205  integrate_RR(find(type_res_2)->get_states()[0]));
206  return XS_RR_tabulations.at(key)->get_value_linear(sqrts);
207 }
static const IsoParticleType & find(const std::string &name)
Returns the IsoParticleType object for the given name.
ParticleTypePtrList get_states() const
Returns list of states that form part of the multiplet.
std::unordered_map< IsoParticleType *, TabulationPtr > XS_RR_tabulations
A tabulation list for the NN -> RR&#39; cross sections, where R is this multiplet and R&#39; is a baryon reso...
IsoParticleType(const std::string &n, double m, double w, unsigned int s, Parity p)
Creates a fully initialized IsoParticleType object.
TabulationPtr integrate_RR(ParticleTypePtr &type_res_2)
Utility function to help compute various XX->RR spectral integrals.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ integrate_RR()

TabulationPtr smash::IsoParticleType::integrate_RR ( ParticleTypePtr type_res_2)

Utility function to help compute various XX->RR spectral integrals.

Parameters
type_res_2Type of the two resonances in the final state.

Definition at line 209 of file isoparticletype.cc.

209  {
210  ParticleTypePtr res1 = states_[0];
211  const double m1_min = res1->min_mass_kinematic();
212  const double m2_min = res2->min_mass_kinematic();
213  return make_unique<Tabulation>(m1_min + m2_min, 3., 125, [&](double srts) {
214  const double m1_max = srts - m2_min;
215  const double m2_max = srts - m1_min;
216  const auto result =
217  integrate2d(m1_min, m1_max, m2_min, m2_max, [&](double m1, double m2) {
218  return spec_func_integrand_2res(srts, m1, m2, *res1, *res2);
219  });
220  return result.value();
221  });
222 }
static Integrator2dCuhre integrate2d(1E7)
double spec_func_integrand_2res(double sqrts, double res_mass_1, double res_mass_2, const ParticleType &t1, const ParticleType &t2)
Spectral function integrand for GSL integration, with two resonances in the final state...
Definition: tabulation.h:132
ParticleTypePtrList states_
list of states that are contained in the multiplet
Here is the call graph for this function:
Here is the caller graph for this function:

◆ 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 182 of file isoparticletype.cc.

182  {
183  if (XS_RK_tabulation_ == nullptr) {
184  // initialize tabulation
185  /* TODO(weil): Move this lazy init to a global initialization function,
186  * in order to avoid race conditions in multi-threading. */
187  ParticleTypePtr type_res = states_[0];
188  ParticleTypePtr kaon = IsoParticleType::find("K").get_states()[0];
190  spectral_integral_semistable(integrate, *type_res, *kaon, 2.0);
191  }
192  return XS_RK_tabulation_->get_value_linear(sqrts);
193 }
static const IsoParticleType & find(const std::string &name)
Returns the IsoParticleType object for the given name.
ParticleTypePtrList get_states() const
Returns list of states that form part of the multiplet.
std::unique_ptr< Tabulation > spectral_integral_semistable(Integrator &integrate, const ParticleType &resonance, const ParticleType &stable, double range)
Create a table for the spectral integral of a resonance and a stable particle.
Definition: tabulation.h:156
TabulationPtr XS_RK_tabulation_
A tabulation of the spectral integral for the NK -> RK cross sections.
ParticleTypePtrList states_
list of states that are contained in the multiplet
static Integrator integrate
Definition: decaytype.cc:147
Here is the call graph for this function:
Here is the caller graph for this function:

◆ 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 169 of file isoparticletype.cc.

169  {
170  if (XS_piR_tabulation_ == nullptr) {
171  // initialize tabulation
172  /* TODO(weil): Move this lazy init to a global initialization function,
173  * in order to avoid race conditions in multi-threading. */
174  ParticleTypePtr type_res = states_[0];
175  ParticleTypePtr pion = IsoParticleType::find("π").get_states()[0];
177  spectral_integral_semistable(integrate, *type_res, *pion, 2.0);
178  }
179  return XS_piR_tabulation_->get_value_linear(sqrts);
180 }
static const IsoParticleType & find(const std::string &name)
Returns the IsoParticleType object for the given name.
ParticleTypePtrList get_states() const
Returns list of states that form part of the multiplet.
std::unique_ptr< Tabulation > spectral_integral_semistable(Integrator &integrate, const ParticleType &resonance, const ParticleType &stable, double range)
Create a table for the spectral integral of a resonance and a stable particle.
Definition: tabulation.h:156
ParticleTypePtrList states_
list of states that are contained in the multiplet
TabulationPtr XS_piR_tabulation_
A tabulation of the spectral integral for the dpi -> d&#39;pi cross sections.
static Integrator integrate
Definition: decaytype.cc:147
Here is the call graph for this function:

◆ 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 49 of file isoparticletype.cc.

49  {
50  auto found = try_find_private(name);
51  if (!found) {
52  throw ParticleNotFoundFailure("Isospin multiplet " + name +
53  " not found (privately)!");
54  }
55  return *found;
56 }
static IsoParticleType * try_find_private(const std::string &name)
Helper function for IsoParticleType::try_find and friends.
const std::string & name() const
Returns the name of the multiplet.
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ name_

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

name of the multiplet

Definition at line 211 of file isoparticletype.h.

◆ mass_

double smash::IsoParticleType::mass_
private

(average) mass of the multiplet

Definition at line 213 of file isoparticletype.h.

◆ width_

double smash::IsoParticleType::width_
private

(average) width of the multiplet

Definition at line 215 of file isoparticletype.h.

◆ spin_

unsigned int smash::IsoParticleType::spin_
private

twice the spin of the multiplet

Definition at line 217 of file isoparticletype.h.

◆ parity_

Parity smash::IsoParticleType::parity_
private

parity of the multiplet

Definition at line 219 of file isoparticletype.h.

◆ states_

ParticleTypePtrList smash::IsoParticleType::states_
private

list of states that are contained in the multiplet

Definition at line 221 of file isoparticletype.h.

◆ XS_piR_tabulation_

TabulationPtr smash::IsoParticleType::XS_piR_tabulation_
private

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

Definition at line 224 of file isoparticletype.h.

◆ XS_RK_tabulation_

TabulationPtr smash::IsoParticleType::XS_RK_tabulation_
private

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

Definition at line 226 of file isoparticletype.h.

◆ XS_NR_tabulation_

TabulationPtr smash::IsoParticleType::XS_NR_tabulation_
private

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

Definition at line 231 of file isoparticletype.h.

◆ XS_DR_tabulation_

TabulationPtr smash::IsoParticleType::XS_DR_tabulation_
private

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

Definition at line 236 of file isoparticletype.h.

◆ XS_RR_tabulations

std::unordered_map<IsoParticleType *, TabulationPtr> smash::IsoParticleType::XS_RR_tabulations
private

A tabulation list for the NN -> RR' cross sections, where R is this multiplet and R' is a baryon resonance, associated with a list of resonances R' for the NN -> RR' cross sections; used to calculate every multiplet spectral function only once.

Definition at line 243 of file isoparticletype.h.


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