10 #ifndef SRC_INCLUDE_SCATTERACTIONSFINDER_H_ 11 #define SRC_INCLUDE_SCATTERACTIONSFINDER_H_ 58 const std::vector<bool> &nucleon_has_interacted,
59 int N_tot,
int N_proj);
86 const double dv_times_e1e2_sqr = dv_times_e1e2.
sqr();
91 return -(dr * dv_times_e1e2) *
107 double dt)
const override;
120 const ParticleList &neighbors_list,
121 double dt)
const override;
133 const ParticleList &search_list,
const Particles &surrounding_list,
134 double dt)
const override;
141 bool =
false)
const override {
173 testparticles *
fm2_mb * M_1_PI;
194 double m_a,
double m_b,
bool final_state)
const;
262 #endif // SRC_INCLUDE_SCATTERACTIONSFINDER_H_ StringProcess * get_process_string_ptr()
static double collision_time(const ParticleData &p1, const ParticleData &p2)
Determine the collision time of the two particles.
The ThreeVector class represents a physical three-vector with the components .
const int testparticles_
Number of test particles.
constexpr double really_small
Numerical error tolerance.
String excitation processes used in SMASH.
const ReactionsBitSet incl_set_
List of included 2<->2 reactions.
const bool two_to_one_
Enable 2->1 processes.
const double low_snn_cut_
Elastic collsions between two nucleons with sqrt_s below low_snn_cut_ are excluded.
const double string_formation_time_
Parameter for formation time.
Collection of useful constants that are known at compile time.
const bool strings_with_probability_
Decide whether to implement string fragmentation based on a probability.
ActionList find_final_actions(const Particles &, bool=false) const override
Find some final collisions at the end of the simulation.
double max_transverse_distance_sqr(int testparticles) const
The maximal distance over which particles can interact, related to the number of test particles and t...
ActionPtr check_collision(const ParticleData &data_a, const ParticleData &data_b, double dt) const
Check for a single pair of particles (id_a, id_b) if a collision will happen in the next timestep and...
constexpr double fm2_mb
mb <-> fm^2 conversion factor.
const FourVector & momentum() const
Get the particle's 4-momentum.
const std::vector< bool > & nucleon_has_interacted_
Parameter to record whether the nucleon has experienced a collision or not.
Interface to the SMASH configuration files.
constexpr double maximum_cross_section
The maximal cross section (in mb) for which it is guaranteed that all collisions with this cross sect...
NNbarTreatment
Treatment of N Nbar Annihilation.
std::unique_ptr< StringProcess > string_process_interface_
Class that deals with strings, interfacing Pythia.
const bool strings_switch_
Switch to turn off string excitation.
ActionList find_actions_in_cell(const ParticleList &search_list, double dt) const override
Search for all the possible collisions within one cell.
ThreeVector threevec() const
static const ParticleTypeList & list_all()
const FourVector & position() const
Get the particle's position in Minkowski space.
Particle type contains the static properties of a particle species.
ScatterActionsFinder(Configuration config, const ExperimentParameters ¶meters, const std::vector< bool > &nucleon_has_interacted, int N_tot, int N_proj)
Constructor of the finder with the given parameters.
void dump_cross_sections(const ParticleType &a, const ParticleType &b, double m_a, double m_b, bool final_state) const
Print out partial cross-sections of all processes that can occur in the collision of a(mass = m_a) an...
A simple scatter finder: Just loops through all particles and checks each pair for a collision...
const NNbarTreatment nnbar_treatment_
Switch for NNbar reactions.
std::bitset< 6 > ReactionsBitSet
Container for the 2 to 2 reactions in the code.
void dump_reactions() const
Prints out all the 2-> n (n > 1) reactions with non-zero cross-sections between all possible pairs of...
bool is_constant_elastic_isotropic() const
If there is only one particle sort, no decays (only elastic scatterings are possible), scatterings are isotropic and cross-section fixed to elastic_parameter_ independently on momenta, then maximal cross-section is elastic_parameter_.
const bool use_AQM_
Switch to control whether to use AQM or not.
const int N_proj_
Record the number of the nucleons in the projectile.
const bool isotropic_
Do all collisions isotropically.
const int N_tot_
Record the total number of the nucleons in the two colliding nuclei.
ActionFinderInterface is the abstract base class for all action finders, i.e.
The Particles class abstracts the storage and manipulation of particles.
ActionList find_actions_with_surrounding_particles(const ParticleList &search_list, const Particles &surrounding_list, double dt) const override
Search for all the possible secondary collisions between the outgoing particles and the rest...
Helper structure for Experiment.
ParticleData contains the dynamic information of a certain particle.
const double elastic_parameter_
Elastic cross section parameter (in mb).
ActionList find_actions_with_neighbors(const ParticleList &search_list, const ParticleList &neighbors_list, double dt) const override
Search for all the possible collisions among the neighboring cells.