Version: SMASH-3.4
thermalizationaction.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (c) 2017-2018,2020,2022-2023
4  * SMASH Team
5  *
6  * GNU General Public License (GPLv3 or later)
7  *
8  */
9 
10 #ifndef SRC_INCLUDE_SMASH_THERMALIZATIONACTION_H_
11 #define SRC_INCLUDE_SMASH_THERMALIZATIONACTION_H_
12 
13 #include "action.h"
14 #include "grandcan_thermalizer.h"
15 
16 namespace smash {
17 
18 /**
19  * \ingroup action
20  * ThermalizationAction implements forced thermalization as an Action class.
21  * Particles before thermalization are treated as incoming, after
22  * thermalization as outgoing. This is an N->M action.
23  */
24 class ThermalizationAction : public Action {
25  public:
26  /**
27  * The inherited class
28  * \param[in] gct The thermalization object taking care of removing and
29  * sampling new particles \see GrandCanThermalizer.
30  * \param[in] absolute_labframe_time Current time in the computational frame.
31  */
33  double absolute_labframe_time);
34  /// No need to do anything, because outgoing particles are set in constructor
35  void generate_final_state() override {}
36  double get_total_weight() const override { return 0.0; }
37  double get_partial_weight() const override { return 0.0; }
38  /// This method checks, if there are particles in the region to be thermalized
40  return (incoming_particles_.size() > 0);
41  }
42  /**
43  * Function for debug output of incoming and outgoing particles from
44  * thermalization action
45  * \param[in] out Location of the output stream
46  */
47  void format_debug_output(std::ostream& out) const override {
48  out << " Thermalization action of " << incoming_particles_.size() << " to "
49  << outgoing_particles_.size() << " particles.";
50  }
51 };
52 
53 } // namespace smash
54 
55 #endif // SRC_INCLUDE_SMASH_THERMALIZATIONACTION_H_
Action is the base class for a generic process that takes a number of incoming particles and transfor...
Definition: action.h:35
ParticleList outgoing_particles_
Initially this stores only the PDG codes of final-state particles.
Definition: action.h:363
ParticleList incoming_particles_
List with data of incoming particles.
Definition: action.h:355
The GrandCanThermalizer class implements the following functionality:
ThermalizationAction implements forced thermalization as an Action class.
void generate_final_state() override
No need to do anything, because outgoing particles are set in constructor.
void format_debug_output(std::ostream &out) const override
Function for debug output of incoming and outgoing particles from thermalization action.
ThermalizationAction(const GrandCanThermalizer &gct, double absolute_labframe_time)
The inherited class.
double get_total_weight() const override
Return the total weight value, which is mainly used for the weight output entry.
bool any_particles_thermalized() const
This method checks, if there are particles in the region to be thermalized.
double get_partial_weight() const override
Return the specific weight for the chosen outgoing channel, which is mainly used for the partial weig...
Definition: action.h:24