#include <hypersurfacecrossingaction.h>
Hypersurfacecrossingaction is a special action which indicates that a particle has crossed a hypersurface of given proper time.
This can be used to generate initial conditions for hybrid models. If this action is performed the incoming particles are removed from the evolution.
Definition at line 25 of file hypersurfacecrossingaction.h.
Public Member Functions | |
HypersurfacecrossingAction (const ParticleData &in_part, const ParticleData &out_part, const double time_until) | |
Construct hypersurfacecrossing action. More... | |
double | get_total_weight () const override |
Return the total weight value, which is mainly used for the weight output entry. More... | |
double | get_partial_weight () const override |
Return the specific weight for the chosen outgoing channel, which is mainly used for the partial weight output entry. More... | |
void | format_debug_output (std::ostream &out) const override |
Writes information about this action to the out stream. More... | |
void | generate_final_state () override |
Generate the final state of the hypersurface crossing particles. More... | |
void | check_conservation (const uint32_t id_process) const override |
Check various conservation laws. More... | |
![]() | |
Action (const ParticleList &in_part, double time) | |
Construct an action object with incoming particles and relative time. More... | |
Action (const ParticleData &in_part, const ParticleData &out_part, double time, ProcessType type) | |
Construct an action object with the incoming particles, relative time, and the already known outgoing particles and type of the process. More... | |
Action (const ParticleList &in_part, const ParticleList &out_part, double absolute_execution_time, ProcessType type) | |
Construct an action object with the incoming particles, absolute time, and the already known outgoing particles and type of the process. More... | |
Action (const Action &)=delete | |
Copying is disabled. Use pointers or create a new Action. More... | |
virtual | ~Action () |
Virtual Destructor. More... | |
bool | operator< (const Action &rhs) const |
Determine whether one action takes place before another in time. More... | |
virtual ProcessType | get_type () const |
Get the process type. More... | |
template<typename Branch > | |
void | add_process (ProcessBranchPtr< Branch > &p, ProcessBranchList< Branch > &subprocesses, double &total_weight) |
Add a new subprocess. More... | |
template<typename Branch > | |
void | add_processes (ProcessBranchList< Branch > pv, ProcessBranchList< Branch > &subprocesses, double &total_weight) |
Add several new subprocesses at once. More... | |
virtual void | perform (Particles *particles, uint32_t id_process) |
Actually perform the action, e.g. More... | |
bool | is_valid (const Particles &particles) const |
Check whether the action still applies. More... | |
bool | is_pauli_blocked (const Particles &particles, const PauliBlocker &p_bl) const |
Check if the action is Pauli-blocked. More... | |
const ParticleList & | incoming_particles () const |
Get the list of particles that go into the action. More... | |
void | update_incoming (const Particles &particles) |
Update the incoming particles that are stored in this action to the state they have in the global particle list. More... | |
const ParticleList & | outgoing_particles () const |
Get the list of particles that resulted from the action. More... | |
double | time_of_execution () const |
Get the time at which the action is supposed to be performed. More... | |
double | sqrt_s () const |
Determine the total energy in the center-of-mass frame [GeV]. More... | |
FourVector | total_momentum_of_outgoing_particles () const |
Calculate the total kinetic momentum of the outgoing particles. More... | |
FourVector | get_interaction_point () const |
Get the interaction point. More... | |
std::pair< FourVector, FourVector > | get_potential_at_interaction_point () const |
Get the skyrme and asymmetry potential at the interaction point. More... | |
Additional Inherited Members | |
![]() | |
FourVector | total_momentum () const |
Sum of 4-momenta of incoming particles. More... | |
template<typename Branch > | |
const Branch * | choose_channel (const ProcessBranchList< Branch > &subprocesses, double total_weight) |
Decide for a particular final-state channel via Monte-Carlo and return it as a ProcessBranch. More... | |
virtual std::pair< double, double > | sample_masses (double kinetic_energy_cm) const |
Sample final-state masses in general X->2 processes (thus also fixing the absolute c.o.m. More... | |
virtual void | sample_angles (std::pair< double, double > masses, double kinetic_energy_cm) |
Sample final-state momenta in general X->2 processes (here: using an isotropical angular distribution). More... | |
void | sample_2body_phasespace () |
Sample the full 2-body phase-space (masses, momenta, angles) in the center-of-mass frame for the final state particles. More... | |
virtual void | sample_3body_phasespace () |
Sample the full 3-body phase-space (masses, momenta, angles) in the center-of-mass frame for the final state particles. More... | |
![]() | |
ParticleList | incoming_particles_ |
List with data of incoming particles. More... | |
ParticleList | outgoing_particles_ |
Initially this stores only the PDG codes of final-state particles. More... | |
const double | time_of_execution_ |
Time at which the action is supposed to be performed (absolute time in the lab frame in fm/c). More... | |
ProcessType | process_type_ |
type of process More... | |
|
inline |
Construct hypersurfacecrossing action.
[in] | in_part | Data of incoming particle. |
[in] | out_part | Data of particles leaving hypersurface |
[in] | time_until | Time when the crossing takes place[fm] |
Definition at line 33 of file hypersurfacecrossingaction.h.
|
inlineoverridevirtual |
Return the total weight value, which is mainly used for the weight output entry.
It has different meanings depending of the type of action. It is the total cross section in case of a ScatterAction, the total decay width in case of a DecayAction and the shining weight in case of a DecayActionDilepton.
Prefer to use a more specific function. If there is no weight for the action type, 0 should be returned.
Implements smash::Action.
Definition at line 38 of file hypersurfacecrossingaction.h.
|
inlineoverridevirtual |
Return the specific weight for the chosen outgoing channel, which is mainly used for the partial weight output entry.
For scatterings it will be the partial cross section, for decays (including dilepton decays) the partial decay width.
If there is no weight for the action type, 0 should be returned.
Implements smash::Action.
Definition at line 39 of file hypersurfacecrossingaction.h.
|
inlineoverridevirtual |
Writes information about this action to the out
stream.
[out] | out | out stream to be written to |
Implements smash::Action.
Definition at line 40 of file hypersurfacecrossingaction.h.
|
overridevirtual |
Generate the final state of the hypersurface crossing particles.
Removes all particles crossing the hypersurface from the evolution.
Implements smash::Action.
Definition at line 19 of file hypersurfacecrossingaction.cc.
|
overridevirtual |
Check various conservation laws.
[in] | id_process | process id only used for debugging output |
Reimplemented from smash::Action.
Definition at line 32 of file hypersurfacecrossingaction.cc.