32 double time_last_coll,
33 const ParticleList &plist) {
81 double time_of_interest =
position_.
x0() + delta_time;
83 double scaling_factor;
113 return scaling_factor;
118 return out <<
p.type().name() <<
" (" << std::setw(5) <<
p.type().pdgcode()
119 <<
")" << std::right <<
"{id:" << field<6> <<
p.id()
120 <<
", process:" << field<4> <<
p.id_process()
121 <<
", pos [fm]:" <<
p.position() <<
", mom [GeV]:" <<
p.momentum()
122 <<
", formation time [fm]:" <<
p.formation_time()
123 <<
", cross section scaling factor:" <<
p.xsec_scaling_factor()
127 std::ostream &
operator<<(std::ostream &out,
const ParticleList &particle_list) {
128 auto column = out.tellp();
130 for (
const auto &
p : particle_list) {
131 if (out.tellp() - column >= 201) {
133 column = out.tellp();
136 out << std::setw(5) << std::setprecision(3) <<
p.momentum().abs3()
146 for (
const auto &
p : particle_list.
list) {
double abs() const
calculate the lorentz invariant absolute value
ParticleData contains the dynamic information of a certain particle.
double formation_time_
Formation time at which the particle is fully formed given as an absolute value in the computational ...
double begin_formation_time_
time when the cross section scaling factor starts to increase to 1
double xsec_scaling_factor(double delta_time=0.) const
Return the cross section scaling factor at a given time.
void set_history(int ncoll, uint32_t pid, ProcessType pt, double time_of_or, const ParticleList &plist)
Store history information.
static double formation_power_
Power with which the cross section scaling factor grows in time.
const FourVector & momentum() const
Get the particle's 4-momentum.
double initial_xsec_scaling_factor_
Initial cross section scaling factor.
double effective_mass() const
Get the particle's effective mass.
FourVector position_
position in space: x0, x1, x2, x3 as t, x, y, z
double pole_mass() const
Get the particle's pole mass ("on-shell").
HistoryData history_
history information
Collection of useful constants that are known at compile time.
std::ostream & operator<<(std::ostream &out, const ActionPtr &action)
Convenience: dereferences the ActionPtr to Action.
ProcessType
Process Types are used to identify the type of the process.
@ FailedString
Soft String NNbar annihilation process can fail by lack of energy.
@ TwoToOne
resonance formation (2->1)
@ MultiParticleThreeToTwo
@ StringSoftDoubleDiffractive
double diffractive. Two strings are formed, one from A and one from B.
@ Bremsstrahlung
bremsstrahlung process: a + b -> a + b + photon
@ Thermalization
forced thermalization, many particles are replaced by a thermalized ensemble
@ TwoToFive
2->5 scattering
@ StringSoftSingleDiffractiveXB
single diffractive AB->XB.
@ TwoToTwo
2->2 inelastic scattering
@ Elastic
elastic scattering: particles remain the same, only momenta change
@ StringSoftAnnihilation
a special case of baryon-antibaryon annihilation.
@ MultiParticleThreeMesonsToOne
multi particle scattering
@ StringSoftNonDiffractive
non-diffractive. Two strings are formed both have ends in A and B.
@ StringSoftSingleDiffractiveAX
(41-45) soft string excitations.
@ StringHard
hard string process involving 2->2 QCD process by PYTHIA.
@ HyperSurfaceCrossing
Hypersurface crossing Particles are removed from the evolution and printed to a separate output to se...
@ TwoToThree
2->3 scattering
constexpr double really_small
Numerical error tolerance.
double time_last_collision
Time of the last action (excluding walls), time of kinetic freeze_out for HBT analysis this time shou...
int32_t id_process
id of the last action
PdgCode p2
PdgCode of the second parent particles.
PdgCode p1
PdgCode of the first parent particles.
int32_t collisions_per_particle
Collision counter per particle, zero only for initially present particles.
ProcessType process_type
type of the last action
const ParticleList & list
Particle list.