7 #ifndef SRC_INCLUDE_SMASH_COLLIDERMODUS_H_
8 #define SRC_INCLUDE_SMASH_COLLIDERMODUS_H_
25 struct ExperimentParameters;
75 const std::string &file_name);
105 const double passing_distance =
107 const double passing_time =
143 using ModusDefault::BadInput::BadInput;
187 const std::string &nucleus_type);
259 std::pair<double, double>
get_velocities(
double mandelstam_s,
double m_a,
ColliderModus: Provides a modus for colliding nuclei.
CalculationFrame frame_
Reference frame for the system, as specified from config.
double imp_min_
Minimum value of impact parameter.
double initial_z_displacement_
Initial z-displacement of nuclei.
bool calculation_frame_is_fixed_target() const
double yield_max_
Maximum value of yield. Needed for custom impact parameter sampling.
bool random_reaction_plane_
Whether the reaction plane should be randomized.
void rotate_reaction_plane(double phi, Particles *particles)
Rotate the reaction plane about the angle phi.
std::pair< double, double > get_velocities(double mandelstam_s, double m_a, double m_b)
Get the frame dependent velocity for each nucleus, using the current reference frame.
void sample_impact()
Sample impact parameter.
double impact_parameter() const
std::unique_ptr< Nucleus > projectile_
Projectile.
double nuclei_passing_time() const
Time until nuclei have passed through each other.
std::unique_ptr< InterpolateDataLinear< double > > impact_interpolation_
Pointer to the impact parameter interpolation.
FermiMotion fermi_motion()
FermiMotion fermi_motion_
An option to include Fermi motion ("off", "on", "frozen")
double velocity_target() const
double velocity_projectile_
Beam velocity of the projectile.
Sampling sampling_
Method used for sampling of impact parameter.
std::string custom_file_path(const std::string &file_directory, const std::string &file_name)
Creates full path string consisting of file_directory and file_name Needed to initialize a customnucl...
double total_s_
Center-of-mass energy squared of the nucleus-nucleus collision.
std::unique_ptr< Nucleus > target_
Target.
ColliderModus(Configuration modus_config, const ExperimentParameters ¶meters)
Constructor.
double impact_
Impact parameter.
double sqrt_s_NN_
Center-of-mass energy of a nucleon-nucleon collision.
double initial_conditions(Particles *particles, const ExperimentParameters ¶meters)
Generates initial state of the particles in the system.
bool same_inputfile(Configuration &proj_config, Configuration &targ_config)
Checks if target and projectile are read from the same external file if they are both initialized as ...
double velocity_projectile() const
static std::unique_ptr< DeformedNucleus > create_deformed_nucleus(Configuration &nucleus_cfg, const int ntest, const std::string &nucleus_type)
Configure Deformed Nucleus.
double velocity_target_
Beam velocity of the target.
double imp_max_
Maximum value of impact parameter.
Interface to the SMASH configuration files.
Base class for Modus classes that provides default function implementations.
The Particles class abstracts the storage and manipulation of particles.
FermiMotion
Option to use Fermi Motion.
@ Off
Don't use fermi motion.
Sampling
Possible methods of impact parameter sampling.
@ Quadratic
Sample from areal / quadratic distribution.
CalculationFrame
The calculation frame.
friend std::ostream & operator<<(std::ostream &, const ColliderModus &)
Writes the initial state for the ColliderModus to the output stream.
constexpr double nucleon_mass
Nucleon mass in GeV.
Thrown when either projectile_ or target_ nuclei are empty.
Helper structure for Experiment.