 |
Version: SMASH-2.0
|
|
Go to the documentation of this file.
7 #ifndef SRC_INCLUDE_SMASH_PARTICLEDATA_H_
8 #define SRC_INCLUDE_SMASH_PARTICLEDATA_H_
64 :
id_(unique_id),
type_(&particle_type) {}
70 int32_t
id()
const {
return id_; }
146 const ParticleList &plist);
220 p.position_[1] += delta[0];
221 p.position_[2] += delta[1];
222 p.position_[3] += delta[2];
418 unsigned index_ = std::numeric_limits<unsigned>::max();
429 static_assert(
sizeof(
bool) <= 2,
"");
470 std::ostream &
operator<<(std::ostream &out,
const ParticleList &particle_list);
497 const PrintParticleListDetailed &particle_list);
501 #endif // SRC_INCLUDE_SMASH_PARTICLEDATA_H_
ParticleData translated(const ThreeVector &delta) const
Translate the particle position.
void set_3momentum(const ThreeVector &mom)
Set the momentum of the particle without modifying the energy.
const ParticleList & list
Particle list.
int32_t id_
Each particle has a unique identifier.
void set_4momentum(double mass, double px, double py, double pz)
Set the momentum of the particle.
double xsec_scaling_factor(double delta_time=0.) const
Return the cross section scaling factor at a given time.
bool operator<(int id_a) const
Check whether the particle's id is smaller than the given id.
ParticleData(const ParticleType &particle_type, int unique_id=-1)
Create a new particle with the given particle_type and optionally a specific unique_id.
const FourVector & momentum() const
Get the particle's 4-momentum.
PdgCode p1
PdgCode of the first parent particles.
HistoryData history_
history information
int32_t collisions_per_particle
Collision counter per particle, zero only for initially present particles.
double pole_mass() const
Get the particle's pole mass ("on-shell").
const double & initial_xsec_scaling_factor() const
Get the initially assigned cross section scaling factor.
ParticleTypePtr type_
A reference to the ParticleType object for this particle (this contains all the static information).
int32_t id() const
Get the id of the particle.
double inverse_gamma() const
Get the inverse of the gamma factor from the current velocity of the particle.
void boost(const ThreeVector &v)
Apply a full Lorentz boost of momentum and position.
void set_id(int i)
Set id of the particle.
void set_slow_formation_times(double begin_form_time, double form_time)
Set the time, when the cross section scaling factor begins, and finishes to increase from the given c...
ParticleData()=default
Default constructor.
double begin_formation_time() const
Get the absolute time, where the cross section scaling factor slowly starts increasing from the given...
double effective_mass() const
Get the particle's effective mass.
A structure to hold information about the history of the particle, e.g.
HistoryData get_history() const
Get history information.
double formation_time_
Formation time at which the particle is fully formed given as an absolute value in the computational ...
std::ostream & operator<<(std::ostream &out, const ActionPtr &action)
PdgCode pdgcode() const
Get the pdgcode of the particle.
uint32_t id_process() const
Get the id of the last action.
ProcessType process_type
type of the last action
void set_4momentum(const FourVector &momentum_vector)
Set the particle's 4-momentum directly.
ParticleData(const ParticleType &ptype, int uid, int index)
Construct a particle with the given type, id and index in Particles.
double time_last_collision
Time of the last action (excluding walls), time of kinetic freeze_out for HBT analysis this time shou...
bool operator<(const ParticleData &a) const
Check if this particle has a smaller id than another particle.
double formation_time() const
Get the absolute formation time of the particle.
void set_3position(const ThreeVector &pos)
Set particle's 3-position.
double initial_xsec_scaling_factor_
Initial cross section scaling factor.
void set_formation_time(const double &form_time)
Set the absolute formation time.
void boost_momentum(const ThreeVector &v)
Apply a Lorentz-boost to only the momentum.
bool hole_
If true, the object is an entry in Particles::data_ and does not hold valid particle data.
const FourVector & position() const
Get the particle's position in Minkowski space.
FourVector position_
position in space: x0, x1, x2, x3 as t, x, y, z
double begin_formation_time_
time when the cross section scaling factor starts to increase to 1
FourVector momentum_
momenta of the particle: x0, x1, x2, x3 as E, px, py, pz
bool operator==(int id_a) const
Check if the particle has a given id.
void copy_to(ParticleData &dst) const
Copies some information of the particle to the given particle dst.
static double formation_power_
Power with which the cross section scaling factor grows in time.
int32_t id_process
id of the last action
PdgCode p2
PdgCode of the second parent particles.
ThreeVector velocity() const
Get the velocity (3-vector divided by zero component).
bool operator==(const ParticleData &a) const
Check whether two particles have the same id.
void set_4momentum(double mass, const ThreeVector &mom)
Set the momentum of the particle given its mass and momentum three-vector.
void set_cross_section_scaling_factor(const double &xsec_scal)
Set the particle's initial cross_section_scaling_factor.
void set_history(int ncoll, uint32_t pid, ProcessType pt, double time_of_or, const ParticleList &plist)
Store history information.
PrintParticleListDetailed detailed(const ParticleList &list)
void set_4position(const FourVector &pos)
Set the particle's 4-position directly.
FourVector lorentz_boost(const ThreeVector &v) const
Returns the FourVector boosted with velocity v.
double sqr3() const
calculate the square of the spatial three-vector
const ParticleType & type() const
Get the type of the particle.
ThreeVector velocity() const
Get the velocity 3-vector.
unsigned index_
Internal index in the Particles list.
ProcessType
Process Types are used to identify the type of the process.