Version: SMASH-2.0
smash::TwoBodyDecayStable Class Reference

#include <decaytype.h>

TwoBodyDecayStable represents a decay type with two stable final-state particles.

Definition at line 130 of file decaytype.h.

Inheritance diagram for smash::TwoBodyDecayStable:
[legend]
Collaboration diagram for smash::TwoBodyDecayStable:
[legend]

Public Member Functions

 TwoBodyDecayStable (ParticleTypePtrList part_types, int l)
 Construct a TwoBodyDecayStable. More...
 
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 [32]. More...
 
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 to Manley:1992yb [32], see also Effenberger:1999wlg [18], eq. More...
 
- Public Member Functions inherited from smash::TwoBodyDecay
 TwoBodyDecay (ParticleTypePtrList part_types, int l)
 Construct a TwoBodyDecay. More...
 
unsigned int particle_number () const override
 
bool has_particles (ParticleTypePtrList list) const override
 
double threshold () const
 
- Public Member Functions inherited from smash::DecayType
 DecayType (ParticleTypePtrList part_types, int l)
 Construct a DecayType. More...
 
virtual ~DecayType ()=default
 Virtual Destructor. More...
 
virtual bool has_mother (ParticleTypePtr mother) const
 
const ParticleTypePtrList & particle_types () const
 
int angular_momentum () const
 

Protected Member Functions

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(m_0). More...
 

Additional Inherited Members

- Protected Attributes inherited from smash::DecayType
ParticleTypePtrList particle_types_
 final-state particles of the decay More...
 
int L_
 angular momentum of the decay More...
 

Constructor & Destructor Documentation

◆ TwoBodyDecayStable()

smash::TwoBodyDecayStable::TwoBodyDecayStable ( ParticleTypePtrList  part_types,
int  l 
)

Construct a TwoBodyDecayStable.

Parameters
[in]part_typesFinal-state particles of the decay.
[in]lAngular momentum of the decay.
Returns
The constructed object.

Definition at line 73 of file decaytype.cc.

74  : TwoBodyDecay(part_types, l) {
75  if (!(part_types[0]->is_stable() && part_types[1]->is_stable())) {
76  throw std::runtime_error(
77  "Error: Unstable particle in TwoBodyDecayStable constructor: " +
78  part_types[0]->pdgcode().string() + " " +
79  part_types[1]->pdgcode().string());
80  }
81 }

Member Function Documentation

◆ width()

double smash::TwoBodyDecayStable::width ( double  m0,
double  G0,
double  m 
) const
overridevirtual

Get the mass-dependent width of a two-body decay into stable particles according to Manley:1992yb [32].

Parameters
m0Pole mass of the decaying particle [GeV].
G0Partial width at the pole mass [GeV].
mActual mass of the decaying particle [GeV].

Implements smash::DecayType.

Reimplemented in smash::TwoBodyDecayDilepton.

Definition at line 91 of file decaytype.cc.

91  {
92  assert(rho(m0) != 0);
93  return (m <= threshold()) ? 0. : G0 * rho(m) / rho(m0);
94 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ in_width()

double smash::TwoBodyDecayStable::in_width ( double  m0,
double  G0,
double  m,
double  m1,
double  m2 
) const
overridevirtual

Get the mass-dependent in-width for a resonance formation process from two stable particles according to Manley:1992yb [32], see also Effenberger:1999wlg [18], eq.

(2.77).

Parameters
m0Pole mass of the produced resonance [GeV].
G0Partial width at the pole mass [GeV].
mActual mass of the produced resonance [GeV].
m1Actual mass of the first incoming particle [GeV].
m2Actual mass of the second incoming particle [GeV].

Implements smash::DecayType.

Definition at line 96 of file decaytype.cc.

97  {
98  // in-width = out-width
99  return width(m0, G0, m);
100 }
Here is the call graph for this function:

◆ rho()

double smash::TwoBodyDecayStable::rho ( double  mass) const
overrideprotectedvirtual

This is a virtual helper method which is used to write the width as Gamma(m) = Gamma_0 * rho(m) / rho(m_0).

This ensures that the width is properly normalized at the pole mass to Gamma(m_0) = Gamma_0. By default rho simply equals one, which corresponds to a constant width.

Parameters
[in]massResonance mass of the decay.
Returns
Width of the decay at the given mass.

Reimplemented from smash::TwoBodyDecay.

Definition at line 83 of file decaytype.cc.

83  {
84  // Determine momentum of outgoing particles in rest frame of the resonance
85  const double p_ab =
86  pCM(m, particle_types_[0]->mass(), particle_types_[1]->mass());
87  // determine rho(m)
88  return p_ab / m * blatt_weisskopf_sqr(p_ab, L_);
89 }
Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following files:
smash::TwoBodyDecay::TwoBodyDecay
TwoBodyDecay(ParticleTypePtrList part_types, int l)
Construct a TwoBodyDecay.
Definition: decaytype.cc:52
smash::TwoBodyDecay::threshold
double threshold() const
Definition: decaytype.h:105
smash::DecayType::L_
int L_
angular momentum of the decay
Definition: decaytype.h:86
smash::TwoBodyDecayStable::rho
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...
Definition: decaytype.cc:83
smash::blatt_weisskopf_sqr
double blatt_weisskopf_sqr(const double p_ab, const int L)
Definition: formfactors.h:33
smash::DecayType::particle_types_
ParticleTypePtrList particle_types_
final-state particles of the decay
Definition: decaytype.h:84
smash::pCM
T pCM(const T sqrts, const T mass_a, const T mass_b) noexcept
Definition: kinematics.h:79
smash::TwoBodyDecayStable::width
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 .
Definition: decaytype.cc:91