8 #ifndef SRC_INCLUDE_SMASH_DECAYTYPE_H_ 
    9 #define SRC_INCLUDE_SMASH_DECAYTYPE_H_ 
   69   virtual double width(
double m0, 
double G0, 
double m) 
const = 0;
 
   79   virtual double in_width(
double m0, 
double G0, 
double m, 
double m1,
 
  123   virtual double rho(
double mass)
 const {
 
  152   double width(
double m0, 
double G0, 
double m) 
const override;
 
  165   double in_width(
double m0, 
double G0, 
double m, 
double m1,
 
  166                   double m2) 
const override;
 
  169   double rho(
double m) 
const override;
 
  195   double width(
double m0, 
double G0, 
double m) 
const override;
 
  208   double in_width(
double m0, 
double G0, 
double m, 
double m1,
 
  209                   double m2) 
const override;
 
  212   double rho(
double m) 
const override;
 
  249   double width(
double m0, 
double G0, 
double m) 
const override;
 
  250   double in_width(
double m0, 
double G0, 
double m, 
double m1,
 
  251                   double m2) 
const override;
 
  254   double rho(
double m) 
const override;
 
  283   double width(
double m0, 
double G0, 
double m) 
const override;
 
  303   double width(
double m0, 
double G0, 
double m) 
const override;
 
  304   double in_width(
double m0, 
double G0, 
double m, 
double m1,
 
  305                   double m2) 
const override;
 
  345   static double diff_width(
double m_par, 
double m_l, 
double m_dil,
 
  348   double width(
double m0, 
double G0, 
double m) 
const override;
 
DecayType is the abstract base class for all decay types.
 
virtual unsigned int particle_number() const =0
 
DecayType(ParticleTypePtrList part_types, int l)
Construct a DecayType.
 
int L_
angular momentum of the decay
 
virtual double in_width(double m0, double G0, double m, double m1, double m2) const =0
 
virtual bool has_mother(ParticleTypePtr mother) const
 
virtual ~DecayType()=default
Virtual Destructor.
 
virtual bool has_particles(ParticleTypePtrList list) const =0
 
virtual bool is_dilepton_decay() const
 
ParticleTypePtrList particle_types_
final-state particles of the decay
 
const ParticleTypePtrList & particle_types() const
 
int angular_momentum() const
 
virtual double width(double m0, double G0, double m) const =0
 
A pointer-like interface to global references to ParticleType objects.
 
ThreeBodyDecayDilepton represents a decay type with three final-state particles, two of which are lep...
 
ParticleTypePtr mother_
Type of the mother particle.
 
static double diff_width(double m_par, double m_l, double m_dil, double m_other, ParticleTypePtr other, ParticleTypePtr t)
Get the mass-differential width  for a dilepton Dalitz decay, where  is the invariant mass of the lep...
 
bool has_mother(ParticleTypePtr mother) const override
 
double width(double m0, double G0, double m) const override
 
ThreeBodyDecayDilepton(ParticleTypePtr mother, ParticleTypePtrList part_types, int l)
Construct a ThreeBodyDecayDilepton.
 
bool is_dilepton_decay() const override
 
std::unique_ptr< Tabulation > tabulation_
Tabulation of the resonance integrals.
 
ThreeBodyDecay represents a decay type with three final-state particles.
 
double width(double m0, double G0, double m) const override
 
bool has_particles(ParticleTypePtrList list) const override
 
unsigned int particle_number() const override
 
ThreeBodyDecay(ParticleTypePtrList part_types, int l)
Construct a ThreeBodyDecay.
 
double in_width(double m0, double G0, double m, double m1, double m2) const override
 
TwoBodyDecayDilepton represents a decay with a lepton and its antilepton as the final-state particles...
 
double width(double m0, double G0, double m) const override
Get the mass-dependent width of a two-body decay into stable particles according to Manley:1992yb .
 
TwoBodyDecayDilepton(ParticleTypePtrList part_types, int l)
Construct a TwoBodyDecayDilepton.
 
bool is_dilepton_decay() const override
 
TwoBodyDecaySemistable represents a decay type with two final-state particles, one of which is stable...
 
std::unique_ptr< Tabulation > tabulation_
Tabulation of the resonance integrals.
 
double rho(double m) const override
This is a virtual helper method which is used to write the width as Gamma(m) = Gamma_0 * rho(m) / rho...
 
TwoBodyDecaySemistable(ParticleTypePtrList part_types, int l)
Construct a TwoBodyDecaySemistable.
 
double Lambda_
Cut-off parameter Λ for semi-stable decays.
 
double in_width(double m0, double G0, double m, double m1, double m2) const override
Get the mass-dependent in-width for a resonance formation process from one stable and one unstable pa...
 
double width(double m0, double G0, double m) const override
Get the mass-dependent width of a two-body decay into one stable and one unstable particle according ...
 
TwoBodyDecayStable represents a decay type with two stable final-state particles.
 
double width(double m0, double G0, double m) const override
Get the mass-dependent width of a two-body decay into stable particles according to Manley:1992yb .
 
double in_width(double m0, double G0, double m, double m1, double m2) const override
Get the mass-dependent in-width for a resonance formation process from two stable particles according...
 
double rho(double m) const override
This is a virtual helper method which is used to write the width as Gamma(m) = Gamma_0 * rho(m) / rho...
 
TwoBodyDecayStable(ParticleTypePtrList part_types, int l)
Construct a TwoBodyDecayStable.
 
TwoBodyDecayUnstable represents a decay type with two unstable final-state particles.
 
double in_width(double m0, double G0, double m, double m1, double m2) const override
 
double width(double m0, double G0, double m) const override
 
double rho(double m) const override
This is a virtual helper method which is used to write the width as Gamma(m) = Gamma_0 * rho(m) / rho...
 
std::unique_ptr< Tabulation > tabulation_
Tabulation of the resonance integrals.
 
TwoBodyDecayUnstable(ParticleTypePtrList part_types, int l)
Construct a TwoBodyDecayUnstable.
 
double Lambda_
Cut-off parameter Λ for unstable decays.
 
TwoBodyDecay represents a decay type with two final-state particles.
 
unsigned int particle_number() const override
 
virtual double rho(double mass) const
This is a virtual helper method which is used to write the width as Gamma(m) = Gamma_0 * rho(m) / rho...
 
TwoBodyDecay(ParticleTypePtrList part_types, int l)
Construct a TwoBodyDecay.
 
bool has_particles(ParticleTypePtrList list) const override
 
#define SMASH_UNUSED(x)
Mark as unused, silencing compiler warnings.