Version: SMASH-1.8
wallcrossingaction.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (c) 2016-2019
4  * SMASH Team
5  *
6  * GNU General Public License (GPLv3 or later)
7  *
8  */
9 
10 #ifndef SRC_INCLUDE_WALLCROSSINGACTION_H_
11 #define SRC_INCLUDE_WALLCROSSINGACTION_H_
12 
13 #include "action.h"
14 #include "actionfinderfactory.h"
15 
16 namespace smash {
17 
23 class WallcrossingAction : public Action {
24  public:
33  WallcrossingAction(const ParticleData &in_part, const ParticleData &out_part,
34  const double time_until = 0.0)
35  : Action(in_part, out_part, time_until, ProcessType::Wall) {}
36  double get_total_weight() const override { return 0.0; };
37  double get_partial_weight() const override { return 0.0; };
38  void generate_final_state() override{};
39  void format_debug_output(std::ostream &out) const override {
40  out << "Wall crossing of " << incoming_particles_;
41  }
42 };
43 
51  public:
56  explicit WallCrossActionsFinder(double l) : l_{l, l, l} {};
57 
64  ActionList find_actions_in_cell(
65  const ParticleList &plist, double t_max, const double,
66  const std::vector<FourVector> &) const override;
67 
70  const ParticleList &, const ParticleList &, double,
71  const std::vector<FourVector> &) const override {
72  return {};
73  }
74 
77  const ParticleList &, const Particles &, double,
78  const std::vector<FourVector> &) const override {
79  return {};
80  }
81 
83  ActionList find_final_actions(const Particles &, bool) const override {
84  return {};
85  }
86 
87  private:
89  const std::array<double, 3> l_;
90 };
91 
92 } // namespace smash
93 
94 #endif // SRC_INCLUDE_WALLCROSSINGACTION_H_
smash
Definition: action.h:24
smash::Action::incoming_particles_
ParticleList incoming_particles_
List with data of incoming particles.
Definition: action.h:304
smash::WallCrossActionsFinder::find_actions_with_neighbors
ActionList find_actions_with_neighbors(const ParticleList &, const ParticleList &, double, const std::vector< FourVector > &) const override
Ignore the neighbor searches for wall crossing.
Definition: wallcrossingaction.h:69
smash::ParticleData
Definition: particledata.h:52
smash::WallCrossActionsFinder::find_actions_with_surrounding_particles
ActionList find_actions_with_surrounding_particles(const ParticleList &, const Particles &, double, const std::vector< FourVector > &) const override
Ignore the surrounding searches for wall crossing.
Definition: wallcrossingaction.h:76
smash::WallcrossingAction::format_debug_output
void format_debug_output(std::ostream &out) const override
Definition: wallcrossingaction.h:39
action.h
smash::WallcrossingAction::get_partial_weight
double get_partial_weight() const override
Return the specific weight for the chosen outgoing channel, which is mainly used for the partial weig...
Definition: wallcrossingaction.h:37
smash::ProcessType::Wall
box wall crossing
smash::WallcrossingAction::generate_final_state
void generate_final_state() override
Generate the final state for this action.
Definition: wallcrossingaction.h:38
actionfinderfactory.h
smash::ActionFinderInterface
Definition: actionfinderfactory.h:27
smash::WallCrossActionsFinder::find_final_actions
ActionList find_final_actions(const Particles &, bool) const override
No final actions for wall crossing.
Definition: wallcrossingaction.h:83
smash::WallCrossActionsFinder::l_
const std::array< double, 3 > l_
Periods in x,y,z directions in fm.
Definition: wallcrossingaction.h:89
smash::WallcrossingAction::WallcrossingAction
WallcrossingAction(const ParticleData &in_part, const ParticleData &out_part, const double time_until=0.0)
Construct wallcrossing action.
Definition: wallcrossingaction.h:33
smash::WallCrossActionsFinder
Definition: wallcrossingaction.h:50
smash::WallCrossActionsFinder::WallCrossActionsFinder
WallCrossActionsFinder(double l)
Construct wallcrossing actionfinder.
Definition: wallcrossingaction.h:56
smash::Particles
Definition: particles.h:33
smash::WallcrossingAction::get_total_weight
double get_total_weight() const override
Return the total weight value, which is mainly used for the weight output entry.
Definition: wallcrossingaction.h:36
smash::WallcrossingAction
Definition: wallcrossingaction.h:23
smash::Action
Definition: action.h:35
smash::ProcessType
ProcessType
Process Types are used to identify the type of the process.
Definition: processbranch.h:25
smash::WallCrossActionsFinder::find_actions_in_cell
ActionList find_actions_in_cell(const ParticleList &plist, double t_max, const double, const std::vector< FourVector > &) const override
Find the next wall crossings for every particle before time t_max.
Definition: wallcrossingaction.cc:14