Version: SMASH-3.3
decayactionsfinder.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (c) 2014-2020,2022-2025
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 
27  public:
38  double res_lifetime_factor, bool do_non_strong_decays,
39  bool force_decays_at_end,
40  SpinInteractionType spin_interaction_type = SpinInteractionType::Off)
41  : res_lifetime_factor_(res_lifetime_factor),
42  do_final_non_strong_decays_(do_non_strong_decays),
43  find_final_decays_(force_decays_at_end),
44  spin_interaction_type_(spin_interaction_type) {}
45 
53  ActionList find_actions_in_cell(
54  const ParticleList &search_list, double dt, const double,
55  const std::vector<FourVector> &) const override;
56 
59  const ParticleList &, const ParticleList &, double,
60  const std::vector<FourVector> &) const override {
61  return {};
62  }
63 
66  const ParticleList &, const Particles &, double,
67  const std::vector<FourVector> &) const override {
68  return {};
69  }
70 
77  ActionList find_final_actions(const Particles &search_list) const override;
78 
80  const double res_lifetime_factor_ = 1.;
81 
84 
86  const bool find_final_decays_;
87 
90 
97 };
98 
99 } // namespace smash
100 
101 #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 decay_initial_particles_
Whether to initial state particles can decay.
const bool find_final_decays_
Whether to find final decay actions.
const bool do_final_non_strong_decays_
Do all non-strong decays (including weak and electro-magnetic ones)
SpinInteractionType spin_interaction_type_
Spin interaction type.
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.
DecayActionsFinder(double res_lifetime_factor, bool do_non_strong_decays, bool force_decays_at_end, SpinInteractionType spin_interaction_type=SpinInteractionType::Off)
Initialize the finder.
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.
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:251
The Particles class abstracts the storage and manipulation of particles.
Definition: particles.h:33
SpinInteractionType
Possible spin interaction types.
@ Off
No spin interactions.
Definition: action.h:24
static const Key< bool > collTerm_decayInitial
See user guide description for more information.
Definition: input_keys.h:2248