#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... | |
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... | |
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 IsoParticleType * | anti_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 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 void | tabulate_integrals (sha256::Hash hash, const std::filesystem::path &tabulations_path) |
Tabulate all relevant integrals. 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... | |
Tabulation * | XS_piR_tabulation_ = nullptr |
A tabulation of the spectral integral for the dpi -> d'pi cross sections. More... | |
Tabulation * | XS_RK_tabulation_ = nullptr |
A tabulation of the spectral integral for the NK -> RK cross sections. More... | |
Tabulation * | XS_NR_tabulation_ = nullptr |
A tabulation for the NN -> NR cross sections, where R is a resonance from this multiplet. More... | |
Tabulation * | XS_DeltaR_tabulation_ = nullptr |
A tabulation for the NN -> RΔ cross sections, where R is a resonance from this multiplet. More... | |
Tabulation * | XS_rhoR_tabulation_ = nullptr |
A tabulation for the ρρ integrals. 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 37 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 62 of file isoparticletype.h.
|
inline |
|
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.
|
inline |
|
inline |
|
inline |
|
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.
|
inline |
|
inline |
|
inline |
Returns list of states that form part of the multiplet.
Definition at line 115 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 138 of file isoparticletype.cc.
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.
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.
|
static |
|
static |
Returns a list of all IsoParticleTypes that are baryon resonances.
Definition at line 23 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 56 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 60 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 132 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 77 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 122 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 159 of file isoparticletype.cc.
|
static |
Tabulate all relevant integrals.
hash | The hash of the particle properties. This is used to determine whether a cached tabulation can be reused or not. |
tabulations_path | The path to the directory where the tabulations are cached. |
Definition at line 270 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 308 of file isoparticletype.cc.
double smash::IsoParticleType::get_integral_RR | ( | IsoParticleType * | 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 340 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 324 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 316 of file isoparticletype.cc.
double smash::IsoParticleType::get_integral_rhoR | ( | double | sqrts | ) |
Look up the tabulated resonance integral for the XX -> rhoR cross section.
sqrts | The center-of-mass energy. |
Definition at line 332 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 68 of file isoparticletype.cc.
|
private |
name of the multiplet
Definition at line 256 of file isoparticletype.h.
|
private |
(average) mass of the multiplet
Definition at line 258 of file isoparticletype.h.
|
private |
(average) width of the multiplet
Definition at line 260 of file isoparticletype.h.
|
private |
twice the spin of the multiplet
Definition at line 262 of file isoparticletype.h.
|
private |
parity of the multiplet
Definition at line 264 of file isoparticletype.h.
|
private |
list of states that are contained in the multiplet
Definition at line 266 of file isoparticletype.h.
|
private |
A tabulation of the spectral integral for the dpi -> d'pi cross sections.
Definition at line 269 of file isoparticletype.h.
|
private |
A tabulation of the spectral integral for the NK -> RK cross sections.
Definition at line 271 of file isoparticletype.h.
|
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.
|
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.
|
private |
A tabulation for the ρρ integrals.
Definition at line 285 of file isoparticletype.h.