#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.
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... | |
IsoParticleType & | operator= (const IsoParticleType &)=delete |
Assignment is not allowed, see copy constructor above. More... | |
IsoParticleType (IsoParticleType &&)=default | |
Move constructor of IsoParticleType (needed for std::sort) More... | |
IsoParticleType & | operator= (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 IsoParticleType * | try_find (const std::string &name) |
Returns the IsoParticleType pointer for the given name . More... | |
static const IsoParticleType & | find (const std::string &name) |
Returns the IsoParticleType object for the given name . More... | |
static IsoParticleType * | find (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 IsoParticleType & | find_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... | |
smash::IsoParticleType::IsoParticleType | ( | const std::string & | n, |
double | m, | ||
double | w, | ||
unsigned int | s, | ||
Parity | p | ||
) |
Creates a fully initialized IsoParticleType object.
n | The name of the multiplet. |
m | The (average) mass of the multiplet. |
w | The (average) width of the multiplet. |
s | Twice the spin of the multiplet. |
p | Parity of the multiplet. |
Definition at line 18 of file isoparticletype.cc.
|
delete |
Copies are not allowed as they break intended use.
Instead use a const-ref or ParticleTypePtr (as returned from operator&).
|
default |
Move constructor of IsoParticleType (needed for std::sort)
|
delete |
Assignment is not allowed, see copy constructor above.
|
default |
Move constructor of IsoParticleType "="-operator (needed for std::sort)
|
inline |
Returns whether the two IsoParticleType objects have the same PDG code for their first state; if so, it is the same iso multiplet.
rhs | The other multiplet. |
Definition at line 59 of file isoparticletype.h.
|
inline |
Returns the name of the multiplet.
Definition at line 64 of file isoparticletype.h.
|
inline |
Returns the (average) multiplet mass.
Definition at line 67 of file isoparticletype.h.
|
inline |
Returns the (average) multiplet width.
Definition at line 70 of file isoparticletype.h.
|
inline |
Returns twice the total isospin of the multiplet.
Definition at line 73 of file isoparticletype.h.
|
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.
|
inline |
Definition at line 84 of file isoparticletype.h.
|
inline |
Definition at line 89 of file isoparticletype.h.
|
inline |
Returns list of states that form part of the multiplet.
Definition at line 92 of file isoparticletype.h.
void smash::IsoParticleType::add_state | ( | const ParticleType & | type | ) |
Add a new state to an existing multiplet (and check if isospin symmetry is fulfilled).
type | The particle state to be added. |
Definition at line 111 of file isoparticletype.cc.
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.
|
static |
Returns a list of all IsoParticleTypes.
Definition at line 22 of file isoparticletype.cc.
|
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.
name | The name of the particle type. |
Definition at line 37 of file isoparticletype.cc.
|
static |
Returns the IsoParticleType object for the given name
.
name | The name of the of the particle type to be found. |
ParticleNotFoundFailure | if name not found. |
Definition at line 41 of file isoparticletype.cc.
|
static |
Returns the IsoParticleType object for the given type
.
type | The particle type to be found. |
ParticleNotFoundFailure | if type not found. |
Definition at line 105 of file isoparticletype.cc.
|
static |
Returns whether the ParticleType with the given pdgcode
exists.
name | The name of the particle type to be found. |
Definition at line 58 of file isoparticletype.cc.
|
static |
Returns the ParticleType object for the given name
, by first finding the correct multiplet and then looking for the desired state.
name | The name of the particle state to be found. |
std::runtime_error | if name is not found. |
Definition at line 95 of file isoparticletype.cc.
|
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.
type | The multiplet to be created. |
Definition at line 130 of file isoparticletype.cc.
double smash::IsoParticleType::get_integral_NR | ( | double | sqrts | ) |
Look up the tabulated resonance integral for the XX -> NR cross section.
sqrts | The center-of-mass energy. |
Definition at line 156 of file isoparticletype.cc.
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.
type_res_2 | Type of the two resonances in the final state. |
sqrts | The center-of-mass energy. |
Definition at line 197 of file isoparticletype.cc.
TabulationPtr smash::IsoParticleType::integrate_RR | ( | ParticleTypePtr & | type_res_2 | ) |
Utility function to help compute various XX->RR spectral integrals.
type_res_2 | Type of the two resonances in the final state. |
Definition at line 209 of file isoparticletype.cc.
double smash::IsoParticleType::get_integral_RK | ( | double | sqrts | ) |
Look up the tabulated resonance integral for the XX -> RK cross section.
sqrts | The center-of-mass energy. |
Definition at line 182 of file isoparticletype.cc.
double smash::IsoParticleType::get_integral_piR | ( | double | sqrts | ) |
Look up the tabulated resonance integral for the XX -> piR cross section.
sqrts | The center-of-mass energy. |
Definition at line 169 of file isoparticletype.cc.
|
staticprivate |
Private version of the 'find' method that returns a non-const reference.
[in] | name | The name of the of the particle type to be found. |
ParticleNotFoundFailure | if name not found. |
Definition at line 49 of file isoparticletype.cc.
|
private |
name of the multiplet
Definition at line 211 of file isoparticletype.h.
|
private |
(average) mass of the multiplet
Definition at line 213 of file isoparticletype.h.
|
private |
(average) width of the multiplet
Definition at line 215 of file isoparticletype.h.
|
private |
twice the spin of the multiplet
Definition at line 217 of file isoparticletype.h.
|
private |
parity of the multiplet
Definition at line 219 of file isoparticletype.h.
|
private |
list of states that are contained in the multiplet
Definition at line 221 of file isoparticletype.h.
|
private |
A tabulation of the spectral integral for the dpi -> d'pi cross sections.
Definition at line 224 of file isoparticletype.h.
|
private |
A tabulation of the spectral integral for the NK -> RK cross sections.
Definition at line 226 of file isoparticletype.h.
|
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.
|
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.
|
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.