Version: SMASH-3.4
decayactionsfinder.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (c) 2014-2020,2022-2026
4  * SMASH Team
5  *
6  * GNU General Public License (GPLv3 or later)
7  *
8  */
9 
10 #ifndef SRC_INCLUDE_SMASH_DECAYACTIONSFINDER_H_
11 #define SRC_INCLUDE_SMASH_DECAYACTIONSFINDER_H_
12 
13 #include <vector>
14 
15 #include "actionfinderfactory.h"
16 #include "input_keys.h"
17 
18 namespace smash {
19 
20 /**
21  * \ingroup action
22  * A simple decay finder:
23  * Just loops through all particles and checks if they can decay during the next
24  * timestep.
25  */
27  public:
28  /**
29  * Initialize the finder
30  *
31  * \param[in] par parameters from Experiment
32  */
34  : res_lifetime_factor_(par.res_lifetime_factor),
35  ignore_minimum_width_at_end_(par.ignore_minimum_width_at_end),
36  force_decays_at_end_(par.force_decays_at_end),
37  decay_initial_particles_(par.decay_initial_particles),
38  spin_interaction_type_(par.spin_interaction_type),
39  charm_rescattering_method_(par.charm_rescattering) {}
40 
41  /**
42  * Check the whole particle list for decays.
43  *
44  * \param[in] search_list All particles in grid cell.
45  * \param[in] dt Size of timestep [fm]
46  * \return List with the found (Decay)Action objects.
47  */
48  ActionList find_actions_in_cell(
49  const ParticleList &search_list, double dt, const double,
50  const std::vector<FourVector> &) const override;
51 
52  /// Ignore the neighbor searches for decays
54  const ParticleList &, const ParticleList &, double,
55  const std::vector<FourVector> &) const override {
56  return {};
57  }
58 
59  /// Ignore the surrounding searches for decays
61  const ParticleList &, const Particles &, double,
62  const std::vector<FourVector> &) const override {
63  return {};
64  }
65 
66  /**
67  * Force all resonances to decay at the end of the simulation.
68  *
69  * \param[in] search_list All particles at the end of simulation.
70  * \return List with the found (Decay)Action objects.
71  */
72  ActionList find_final_actions(const Particles &search_list) const override;
73 
74  /// Multiplicative factor to be applied to resonance lifetimes
75  const double res_lifetime_factor_ =
77 
78  /// Do all non-strong decays (including weak and electro-magnetic ones)
81 
82  /// Whether to find final decay actions
83  const bool force_decays_at_end_ =
85 
86  /**
87  * Whether to initial state particles can decay. Useful for analyzing
88  * interactions involving one or more resonances.
89  */
92 
93  /// Spin interaction type
96 
97  /// Charm rescattering method
100 };
101 
102 } // namespace smash
103 
104 #endif // SRC_INCLUDE_SMASH_DECAYACTIONSFINDER_H_
ActionFinderInterface is the abstract base class for all action finders, i.e.
A simple decay finder: Just loops through all particles and checks if they can decay during the next ...
const bool ignore_minimum_width_at_end_
Do all non-strong decays (including weak and electro-magnetic ones)
const bool decay_initial_particles_
Whether to initial state particles can decay.
DecayActionsFinder(const ExperimentParameters &par)
Initialize the finder.
const CharmRescattering charm_rescattering_method_
Charm rescattering method.
ActionList find_actions_with_surrounding_particles(const ParticleList &, const Particles &, double, const std::vector< FourVector > &) const override
Ignore the surrounding searches for decays.
const double res_lifetime_factor_
Multiplicative factor to be applied to resonance lifetimes.
const bool force_decays_at_end_
Whether to find final decay actions.
ActionList find_actions_in_cell(const ParticleList &search_list, double dt, const double, const std::vector< FourVector > &) const override
Check the whole particle list for decays.
const SpinInteractionType spin_interaction_type_
Spin interaction type.
ActionList find_actions_with_neighbors(const ParticleList &, const ParticleList &, double, const std::vector< FourVector > &) const override
Ignore the neighbor searches for decays.
ActionList find_final_actions(const Particles &search_list) const override
Force all resonances to decay at the end of the simulation.
default_type default_value() const
Get the default value of the key.
Definition: key.h:217
The Particles class abstracts the storage and manipulation of particles.
Definition: particles.h:33
CharmRescattering
Possible charm scattering options.
SpinInteractionType
Possible spin interaction types.
Definition: action.h:24
Helper structure for Experiment.
static const Key< double > collTerm_resonanceLifetimeModifier
See user guide description for more information.
Definition: input_keys.h:3001
static const Key< CharmRescattering > collTerm_charmRescatteringMethod
See user guide description for more information.
Definition: input_keys.h:2509
static const Key< bool > collTerm_decayInitial
See user guide description for more information.
Definition: input_keys.h:2676
static const Key< bool > collTerm_forceDecaysAtEnd
See user guide description for more information.
Definition: input_keys.h:2659
static const Key< SpinInteractionType > collTerm_spinInteractions
See user guide description for more information.
Definition: input_keys.h:3017
static const Key< bool > collTerm_ignoreDecayWidthAtTheEnd
See user guide description for more information.
Definition: input_keys.h:2770