Version: SMASH-3.1
smash::ThreeBodyDecay Class Reference

#include <decaytype.h>

ThreeBodyDecay represents a decay type with three final-state particles.

Definition at line 295 of file decaytype.h.

Inheritance diagram for smash::ThreeBodyDecay:
smash::DecayType smash::ThreeBodyDecayDilepton

Public Member Functions

 ThreeBodyDecay (ParticleTypePtrList part_types, int l)
 Construct a ThreeBodyDecay. More...
 
unsigned int particle_number () const override
 
bool has_particles (ParticleTypePtrList list) const override
 
double width (double m0, double G0, double m) const override
 
double in_width (double m0, double G0, double m, double m1, double m2) const override
 
- 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 ([[maybe_unused]] ParticleTypePtr mother) const
 
const ParticleTypePtrList & particle_types () const
 
int angular_momentum () const
 
virtual bool is_dilepton_decay () const
 

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

◆ ThreeBodyDecay()

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

Construct a ThreeBodyDecay.

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

Definition at line 274 of file decaytype.cc.

275  : DecayType(sort_particles(part_types), l) {
276  if (part_types.size() != 3) {
277  throw std::runtime_error(
278  "Wrong number of particles in ThreeBodyDecay constructor: " +
279  std::to_string(part_types.size()));
280  }
281 }
DecayType(ParticleTypePtrList part_types, int l)
Construct a DecayType.
Definition: decaytype.h:32
static ParticleTypePtrList sort_particles(ParticleTypePtrList part_types)
sort the particle list
Definition: decaytype.cc:269

Member Function Documentation

◆ particle_number()

unsigned int smash::ThreeBodyDecay::particle_number ( ) const
overridevirtual
Returns
the number of particles in the final state

Implements smash::DecayType.

Definition at line 283 of file decaytype.cc.

283 { return 3; }

◆ has_particles()

bool smash::ThreeBodyDecay::has_particles ( ParticleTypePtrList  list) const
overridevirtual
Returns
if the final state consists of the given particle list.
Parameters
[in]listFinal state particle types to be checked.

Implements smash::DecayType.

Definition at line 285 of file decaytype.cc.

285  {
286  if (list.size() != particle_number()) {
287  return false;
288  }
289  // compare sorted vectors (particle_types_ is already sorted)
290  std::sort(list.begin(), list.end());
291  return particle_types_[0] == list[0] && particle_types_[1] == list[1] &&
292  particle_types_[2] == list[2];
293 }
ParticleTypePtrList particle_types_
final-state particles of the decay
Definition: decaytype.h:86
unsigned int particle_number() const override
Definition: decaytype.cc:283

◆ width()

double smash::ThreeBodyDecay::width ( double  m0,
double  G0,
double  m 
) const
overridevirtual
Returns
the mass-dependent width of the decay.
Parameters
[in]m0Pole mass of the decaying particle [GeV].
[in]G0Partial width at the pole mass [GeV].
[in]mActual mass of the decaying particle [GeV].

Implements smash::DecayType.

Reimplemented in smash::ThreeBodyDecayDilepton.

Definition at line 295 of file decaytype.cc.

295  {
296  return G0; // use on-shell width
297 }

◆ in_width()

double smash::ThreeBodyDecay::in_width ( double  m0,
double  G0,
double  m,
double  m1,
double  m2 
) const
overridevirtual
Returns
The mass-dependent in-width for a resonance formation process.
Parameters
[in]m0Pole mass of the produced resonance [GeV].
[in]G0Partial width at the pole mass [GeV].
[in]mActual mass of the produced resonance [GeV].
[in]m1Actual mass of the first incoming particle [GeV].
[in]m2Actual mass of the second incoming particle [GeV].

Implements smash::DecayType.

Definition at line 299 of file decaytype.cc.

300  {
301  return G0; // use on-shell width
302 }

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